typekro 0.1.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/LICENSE +185 -0
- package/README.md +1137 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/alchemy/deployers.d.ts +39 -0
- package/dist/alchemy/deployers.d.ts.map +1 -0
- package/dist/alchemy/deployers.js +194 -0
- package/dist/alchemy/deployers.js.map +1 -0
- package/dist/alchemy/deployment.d.ts +12 -0
- package/dist/alchemy/deployment.d.ts.map +1 -0
- package/dist/alchemy/deployment.js +12 -0
- package/dist/alchemy/deployment.js.map +1 -0
- package/dist/alchemy/index.d.ts +17 -0
- package/dist/alchemy/index.d.ts.map +1 -0
- package/dist/alchemy/index.js +20 -0
- package/dist/alchemy/index.js.map +1 -0
- package/dist/alchemy/resolver.d.ts +127 -0
- package/dist/alchemy/resolver.d.ts.map +1 -0
- package/dist/alchemy/resolver.js +341 -0
- package/dist/alchemy/resolver.js.map +1 -0
- package/dist/alchemy/resource-registration.d.ts +22 -0
- package/dist/alchemy/resource-registration.d.ts.map +1 -0
- package/dist/alchemy/resource-registration.js +218 -0
- package/dist/alchemy/resource-registration.js.map +1 -0
- package/dist/alchemy/type-inference.d.ts +13 -0
- package/dist/alchemy/type-inference.d.ts.map +1 -0
- package/dist/alchemy/type-inference.js +67 -0
- package/dist/alchemy/type-inference.js.map +1 -0
- package/dist/alchemy/types.d.ts +92 -0
- package/dist/alchemy/types.d.ts.map +1 -0
- package/dist/alchemy/types.js +8 -0
- package/dist/alchemy/types.js.map +1 -0
- package/dist/alchemy/utilities.d.ts +12 -0
- package/dist/alchemy/utilities.d.ts.map +1 -0
- package/dist/alchemy/utilities.js +16 -0
- package/dist/alchemy/utilities.js.map +1 -0
- package/dist/alchemy/wrapper.d.ts +16 -0
- package/dist/alchemy/wrapper.d.ts.map +1 -0
- package/dist/alchemy/wrapper.js +23 -0
- package/dist/alchemy/wrapper.js.map +1 -0
- package/dist/core/composition/composition.d.ts +94 -0
- package/dist/core/composition/composition.d.ts.map +1 -0
- package/dist/core/composition/composition.js +230 -0
- package/dist/core/composition/composition.js.map +1 -0
- package/dist/core/composition/index.d.ts +12 -0
- package/dist/core/composition/index.d.ts.map +1 -0
- package/dist/core/composition/index.js +12 -0
- package/dist/core/composition/index.js.map +1 -0
- package/dist/core/composition/typekro-runtime/index.d.ts +3 -0
- package/dist/core/composition/typekro-runtime/index.d.ts.map +1 -0
- package/dist/core/composition/typekro-runtime/index.js +2 -0
- package/dist/core/composition/typekro-runtime/index.js.map +1 -0
- package/dist/core/composition/typekro-runtime/typekro-runtime.d.ts +39 -0
- package/dist/core/composition/typekro-runtime/typekro-runtime.d.ts.map +1 -0
- package/dist/core/composition/typekro-runtime/typekro-runtime.js +100 -0
- package/dist/core/composition/typekro-runtime/typekro-runtime.js.map +1 -0
- package/dist/core/composition/typekro-runtime/types.d.ts +16 -0
- package/dist/core/composition/typekro-runtime/types.d.ts.map +1 -0
- package/dist/core/composition/typekro-runtime/types.js +12 -0
- package/dist/core/composition/typekro-runtime/types.js.map +1 -0
- package/dist/core/composition/types.d.ts +264 -0
- package/dist/core/composition/types.d.ts.map +1 -0
- package/dist/core/composition/types.js +2 -0
- package/dist/core/composition/types.js.map +1 -0
- package/dist/core/constants/brands.d.ts +42 -0
- package/dist/core/constants/brands.d.ts.map +1 -0
- package/dist/core/constants/brands.js +51 -0
- package/dist/core/constants/brands.js.map +1 -0
- package/dist/core/dependencies/graph.d.ts +67 -0
- package/dist/core/dependencies/graph.d.ts.map +1 -0
- package/dist/core/dependencies/graph.js +220 -0
- package/dist/core/dependencies/graph.js.map +1 -0
- package/dist/core/dependencies/index.d.ts +7 -0
- package/dist/core/dependencies/index.d.ts.map +1 -0
- package/dist/core/dependencies/index.js +8 -0
- package/dist/core/dependencies/index.js.map +1 -0
- package/dist/core/dependencies/resolver.d.ts +53 -0
- package/dist/core/dependencies/resolver.d.ts.map +1 -0
- package/dist/core/dependencies/resolver.js +167 -0
- package/dist/core/dependencies/resolver.js.map +1 -0
- package/dist/core/dependencies/type-guards.d.ts +17 -0
- package/dist/core/dependencies/type-guards.d.ts.map +1 -0
- package/dist/core/dependencies/type-guards.js +35 -0
- package/dist/core/dependencies/type-guards.js.map +1 -0
- package/dist/core/deployment/deployment-strategies.d.ts +12 -0
- package/dist/core/deployment/deployment-strategies.d.ts.map +1 -0
- package/dist/core/deployment/deployment-strategies.js +11 -0
- package/dist/core/deployment/deployment-strategies.js.map +1 -0
- package/dist/core/deployment/direct-factory.d.ts +111 -0
- package/dist/core/deployment/direct-factory.d.ts.map +1 -0
- package/dist/core/deployment/direct-factory.js +627 -0
- package/dist/core/deployment/direct-factory.js.map +1 -0
- package/dist/core/deployment/engine.d.ts +128 -0
- package/dist/core/deployment/engine.d.ts.map +1 -0
- package/dist/core/deployment/engine.js +1408 -0
- package/dist/core/deployment/engine.js.map +1 -0
- package/dist/core/deployment/index.d.ts +14 -0
- package/dist/core/deployment/index.d.ts.map +1 -0
- package/dist/core/deployment/index.js +14 -0
- package/dist/core/deployment/index.js.map +1 -0
- package/dist/core/deployment/kro-factory.d.ts +143 -0
- package/dist/core/deployment/kro-factory.d.ts.map +1 -0
- package/dist/core/deployment/kro-factory.js +837 -0
- package/dist/core/deployment/kro-factory.js.map +1 -0
- package/dist/core/deployment/readiness.d.ts +54 -0
- package/dist/core/deployment/readiness.d.ts.map +1 -0
- package/dist/core/deployment/readiness.js +175 -0
- package/dist/core/deployment/readiness.js.map +1 -0
- package/dist/core/deployment/rollback-manager.d.ts +63 -0
- package/dist/core/deployment/rollback-manager.d.ts.map +1 -0
- package/dist/core/deployment/rollback-manager.js +225 -0
- package/dist/core/deployment/rollback-manager.js.map +1 -0
- package/dist/core/deployment/shared-utilities.d.ts +41 -0
- package/dist/core/deployment/shared-utilities.d.ts.map +1 -0
- package/dist/core/deployment/shared-utilities.js +100 -0
- package/dist/core/deployment/shared-utilities.js.map +1 -0
- package/dist/core/deployment/status-hydrator.d.ts +86 -0
- package/dist/core/deployment/status-hydrator.d.ts.map +1 -0
- package/dist/core/deployment/status-hydrator.js +262 -0
- package/dist/core/deployment/status-hydrator.js.map +1 -0
- package/dist/core/deployment/strategies/alchemy-strategy.d.ts +107 -0
- package/dist/core/deployment/strategies/alchemy-strategy.d.ts.map +1 -0
- package/dist/core/deployment/strategies/alchemy-strategy.js +446 -0
- package/dist/core/deployment/strategies/alchemy-strategy.js.map +1 -0
- package/dist/core/deployment/strategies/base-strategy.d.ts +50 -0
- package/dist/core/deployment/strategies/base-strategy.d.ts.map +1 -0
- package/dist/core/deployment/strategies/base-strategy.js +82 -0
- package/dist/core/deployment/strategies/base-strategy.js.map +1 -0
- package/dist/core/deployment/strategies/direct-strategy.d.ts +29 -0
- package/dist/core/deployment/strategies/direct-strategy.d.ts.map +1 -0
- package/dist/core/deployment/strategies/direct-strategy.js +80 -0
- package/dist/core/deployment/strategies/direct-strategy.js.map +1 -0
- package/dist/core/deployment/strategies/index.d.ts +12 -0
- package/dist/core/deployment/strategies/index.d.ts.map +1 -0
- package/dist/core/deployment/strategies/index.js +12 -0
- package/dist/core/deployment/strategies/index.js.map +1 -0
- package/dist/core/deployment/strategies/kro-strategy.d.ts +41 -0
- package/dist/core/deployment/strategies/kro-strategy.d.ts.map +1 -0
- package/dist/core/deployment/strategies/kro-strategy.js +270 -0
- package/dist/core/deployment/strategies/kro-strategy.js.map +1 -0
- package/dist/core/direct-deployment.d.ts +8 -0
- package/dist/core/direct-deployment.d.ts.map +1 -0
- package/dist/core/direct-deployment.js +9 -0
- package/dist/core/direct-deployment.js.map +1 -0
- package/dist/core/errors.d.ts +73 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +250 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/evaluation/cel-optimizer.d.ts +48 -0
- package/dist/core/evaluation/cel-optimizer.d.ts.map +1 -0
- package/dist/core/evaluation/cel-optimizer.js +176 -0
- package/dist/core/evaluation/cel-optimizer.js.map +1 -0
- package/dist/core/factory.d.ts +12 -0
- package/dist/core/factory.d.ts.map +1 -0
- package/dist/core/factory.js +13 -0
- package/dist/core/factory.js.map +1 -0
- package/dist/core/kubernetes/api.d.ts +43 -0
- package/dist/core/kubernetes/api.d.ts.map +1 -0
- package/dist/core/kubernetes/api.js +209 -0
- package/dist/core/kubernetes/api.js.map +1 -0
- package/dist/core/kubernetes/client-provider.d.ts +204 -0
- package/dist/core/kubernetes/client-provider.d.ts.map +1 -0
- package/dist/core/kubernetes/client-provider.js +421 -0
- package/dist/core/kubernetes/client-provider.js.map +1 -0
- package/dist/core/logging/config.d.ts +14 -0
- package/dist/core/logging/config.d.ts.map +1 -0
- package/dist/core/logging/config.js +57 -0
- package/dist/core/logging/config.js.map +1 -0
- package/dist/core/logging/index.d.ts +4 -0
- package/dist/core/logging/index.d.ts.map +1 -0
- package/dist/core/logging/index.js +4 -0
- package/dist/core/logging/index.js.map +1 -0
- package/dist/core/logging/logger.d.ts +26 -0
- package/dist/core/logging/logger.d.ts.map +1 -0
- package/dist/core/logging/logger.js +114 -0
- package/dist/core/logging/logger.js.map +1 -0
- package/dist/core/logging/types.d.ts +93 -0
- package/dist/core/logging/types.d.ts.map +1 -0
- package/dist/core/logging/types.js +2 -0
- package/dist/core/logging/types.js.map +1 -0
- package/dist/core/readiness/cluster-state.d.ts +229 -0
- package/dist/core/readiness/cluster-state.d.ts.map +1 -0
- package/dist/core/readiness/cluster-state.js +360 -0
- package/dist/core/readiness/cluster-state.js.map +1 -0
- package/dist/core/readiness/index.d.ts +5 -0
- package/dist/core/readiness/index.d.ts.map +1 -0
- package/dist/core/readiness/index.js +5 -0
- package/dist/core/readiness/index.js.map +1 -0
- package/dist/core/readiness/registry.d.ts +45 -0
- package/dist/core/readiness/registry.d.ts.map +1 -0
- package/dist/core/readiness/registry.js +62 -0
- package/dist/core/readiness/registry.js.map +1 -0
- package/dist/core/references/cel-evaluator.d.ts +102 -0
- package/dist/core/references/cel-evaluator.d.ts.map +1 -0
- package/dist/core/references/cel-evaluator.js +288 -0
- package/dist/core/references/cel-evaluator.js.map +1 -0
- package/dist/core/references/cel.d.ts +75 -0
- package/dist/core/references/cel.d.ts.map +1 -0
- package/dist/core/references/cel.js +213 -0
- package/dist/core/references/cel.js.map +1 -0
- package/dist/core/references/external-refs.d.ts +37 -0
- package/dist/core/references/external-refs.d.ts.map +1 -0
- package/dist/core/references/external-refs.js +53 -0
- package/dist/core/references/external-refs.js.map +1 -0
- package/dist/core/references/index.d.ts +15 -0
- package/dist/core/references/index.d.ts.map +1 -0
- package/dist/core/references/index.js +19 -0
- package/dist/core/references/index.js.map +1 -0
- package/dist/core/references/resolver.d.ts +117 -0
- package/dist/core/references/resolver.d.ts.map +1 -0
- package/dist/core/references/resolver.js +554 -0
- package/dist/core/references/resolver.js.map +1 -0
- package/dist/core/references/schema-proxy.d.ts +38 -0
- package/dist/core/references/schema-proxy.d.ts.map +1 -0
- package/dist/core/references/schema-proxy.js +163 -0
- package/dist/core/references/schema-proxy.js.map +1 -0
- package/dist/core/serialization/core.d.ts +15 -0
- package/dist/core/serialization/core.d.ts.map +1 -0
- package/dist/core/serialization/core.js +169 -0
- package/dist/core/serialization/core.js.map +1 -0
- package/dist/core/serialization/index.d.ts +9 -0
- package/dist/core/serialization/index.d.ts.map +1 -0
- package/dist/core/serialization/index.js +12 -0
- package/dist/core/serialization/index.js.map +1 -0
- package/dist/core/serialization/schema.d.ts +14 -0
- package/dist/core/serialization/schema.d.ts.map +1 -0
- package/dist/core/serialization/schema.js +33 -0
- package/dist/core/serialization/schema.js.map +1 -0
- package/dist/core/serialization/validation.d.ts +18 -0
- package/dist/core/serialization/validation.d.ts.map +1 -0
- package/dist/core/serialization/validation.js +165 -0
- package/dist/core/serialization/validation.js.map +1 -0
- package/dist/core/serialization/yaml.d.ts +10 -0
- package/dist/core/serialization/yaml.d.ts.map +1 -0
- package/dist/core/serialization/yaml.js +63 -0
- package/dist/core/serialization/yaml.js.map +1 -0
- package/dist/core/types/common.d.ts +41 -0
- package/dist/core/types/common.d.ts.map +1 -0
- package/dist/core/types/common.js +9 -0
- package/dist/core/types/common.js.map +1 -0
- package/dist/core/types/dependencies.d.ts +14 -0
- package/dist/core/types/dependencies.d.ts.map +1 -0
- package/dist/core/types/dependencies.js +5 -0
- package/dist/core/types/dependencies.js.map +1 -0
- package/dist/core/types/deployment.d.ts +265 -0
- package/dist/core/types/deployment.d.ts.map +1 -0
- package/dist/core/types/deployment.js +20 -0
- package/dist/core/types/deployment.js.map +1 -0
- package/dist/core/types/index.d.ts +19 -0
- package/dist/core/types/index.d.ts.map +1 -0
- package/dist/core/types/index.js +15 -0
- package/dist/core/types/index.js.map +1 -0
- package/dist/core/types/kubernetes.d.ts +352 -0
- package/dist/core/types/kubernetes.d.ts.map +1 -0
- package/dist/core/types/kubernetes.js +5 -0
- package/dist/core/types/kubernetes.js.map +1 -0
- package/dist/core/types/references.d.ts +54 -0
- package/dist/core/types/references.d.ts.map +1 -0
- package/dist/core/types/references.js +14 -0
- package/dist/core/types/references.js.map +1 -0
- package/dist/core/types/resource-graph.d.ts +93 -0
- package/dist/core/types/resource-graph.d.ts.map +1 -0
- package/dist/core/types/resource-graph.js +8 -0
- package/dist/core/types/resource-graph.js.map +1 -0
- package/dist/core/types/serialization.d.ts +210 -0
- package/dist/core/types/serialization.d.ts.map +1 -0
- package/dist/core/types/serialization.js +5 -0
- package/dist/core/types/serialization.js.map +1 -0
- package/dist/core/types/yaml.d.ts +92 -0
- package/dist/core/types/yaml.d.ts.map +1 -0
- package/dist/core/types/yaml.js +2 -0
- package/dist/core/types/yaml.js.map +1 -0
- package/dist/core/types.d.ts +8 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +9 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/validation/cel-validator.d.ts +47 -0
- package/dist/core/validation/cel-validator.d.ts.map +1 -0
- package/dist/core/validation/cel-validator.js +200 -0
- package/dist/core/validation/cel-validator.js.map +1 -0
- package/dist/core/yaml/index.d.ts +5 -0
- package/dist/core/yaml/index.d.ts.map +1 -0
- package/dist/core/yaml/index.js +5 -0
- package/dist/core/yaml/index.js.map +1 -0
- package/dist/core/yaml/path-resolver.d.ts +122 -0
- package/dist/core/yaml/path-resolver.d.ts.map +1 -0
- package/dist/core/yaml/path-resolver.js +556 -0
- package/dist/core/yaml/path-resolver.js.map +1 -0
- package/dist/core.d.ts +30 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +59 -0
- package/dist/core.js.map +1 -0
- package/dist/factories/flux/git-repository.d.ts +62 -0
- package/dist/factories/flux/git-repository.d.ts.map +1 -0
- package/dist/factories/flux/git-repository.js +34 -0
- package/dist/factories/flux/git-repository.js.map +1 -0
- package/dist/factories/flux/index.d.ts +10 -0
- package/dist/factories/flux/index.d.ts.map +1 -0
- package/dist/factories/flux/index.js +11 -0
- package/dist/factories/flux/index.js.map +1 -0
- package/dist/factories/flux/kustomize/index.d.ts +4 -0
- package/dist/factories/flux/kustomize/index.d.ts.map +1 -0
- package/dist/factories/flux/kustomize/index.js +3 -0
- package/dist/factories/flux/kustomize/index.js.map +1 -0
- package/dist/factories/flux/kustomize/kustomization.d.ts +178 -0
- package/dist/factories/flux/kustomize/kustomization.d.ts.map +1 -0
- package/dist/factories/flux/kustomize/kustomization.js +108 -0
- package/dist/factories/flux/kustomize/kustomization.js.map +1 -0
- package/dist/factories/flux/kustomize/readiness-evaluators.d.ts +9 -0
- package/dist/factories/flux/kustomize/readiness-evaluators.d.ts.map +1 -0
- package/dist/factories/flux/kustomize/readiness-evaluators.js +71 -0
- package/dist/factories/flux/kustomize/readiness-evaluators.js.map +1 -0
- package/dist/factories/flux/kustomize/types.d.ts +2 -0
- package/dist/factories/flux/kustomize/types.d.ts.map +1 -0
- package/dist/factories/flux/kustomize/types.js +2 -0
- package/dist/factories/flux/kustomize/types.js.map +1 -0
- package/dist/factories/helm/helm-release.d.ts +139 -0
- package/dist/factories/helm/helm-release.d.ts.map +1 -0
- package/dist/factories/helm/helm-release.js +180 -0
- package/dist/factories/helm/helm-release.js.map +1 -0
- package/dist/factories/helm/helm-repository.d.ts +24 -0
- package/dist/factories/helm/helm-repository.d.ts.map +1 -0
- package/dist/factories/helm/helm-repository.js +57 -0
- package/dist/factories/helm/helm-repository.js.map +1 -0
- package/dist/factories/helm/index.d.ts +8 -0
- package/dist/factories/helm/index.d.ts.map +1 -0
- package/dist/factories/helm/index.js +8 -0
- package/dist/factories/helm/index.js.map +1 -0
- package/dist/factories/helm/readiness-evaluators.d.ts +55 -0
- package/dist/factories/helm/readiness-evaluators.d.ts.map +1 -0
- package/dist/factories/helm/readiness-evaluators.js +295 -0
- package/dist/factories/helm/readiness-evaluators.js.map +1 -0
- package/dist/factories/helm/types.d.ts +21 -0
- package/dist/factories/helm/types.d.ts.map +1 -0
- package/dist/factories/helm/types.js +2 -0
- package/dist/factories/helm/types.js.map +1 -0
- package/dist/factories/index.d.ts +12 -0
- package/dist/factories/index.d.ts.map +1 -0
- package/dist/factories/index.js +31 -0
- package/dist/factories/index.js.map +1 -0
- package/dist/factories/kro/index.d.ts +11 -0
- package/dist/factories/kro/index.d.ts.map +1 -0
- package/dist/factories/kro/index.js +10 -0
- package/dist/factories/kro/index.js.map +1 -0
- package/dist/factories/kro/kro-crd.d.ts +14 -0
- package/dist/factories/kro/kro-crd.d.ts.map +1 -0
- package/dist/factories/kro/kro-crd.js +51 -0
- package/dist/factories/kro/kro-crd.js.map +1 -0
- package/dist/factories/kro/kro-custom-resource.d.ts +23 -0
- package/dist/factories/kro/kro-custom-resource.d.ts.map +1 -0
- package/dist/factories/kro/kro-custom-resource.js +153 -0
- package/dist/factories/kro/kro-custom-resource.js.map +1 -0
- package/dist/factories/kro/resource-graph-definition.d.ts +12 -0
- package/dist/factories/kro/resource-graph-definition.d.ts.map +1 -0
- package/dist/factories/kro/resource-graph-definition.js +94 -0
- package/dist/factories/kro/resource-graph-definition.js.map +1 -0
- package/dist/factories/kubernetes/admission/index.d.ts +9 -0
- package/dist/factories/kubernetes/admission/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/admission/index.js +9 -0
- package/dist/factories/kubernetes/admission/index.js.map +1 -0
- package/dist/factories/kubernetes/admission/mutating-webhook-configuration.d.ts +5 -0
- package/dist/factories/kubernetes/admission/mutating-webhook-configuration.d.ts.map +1 -0
- package/dist/factories/kubernetes/admission/mutating-webhook-configuration.js +10 -0
- package/dist/factories/kubernetes/admission/mutating-webhook-configuration.js.map +1 -0
- package/dist/factories/kubernetes/admission/validating-webhook-configuration.d.ts +5 -0
- package/dist/factories/kubernetes/admission/validating-webhook-configuration.d.ts.map +1 -0
- package/dist/factories/kubernetes/admission/validating-webhook-configuration.js +10 -0
- package/dist/factories/kubernetes/admission/validating-webhook-configuration.js.map +1 -0
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.d.ts +6 -0
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.d.ts.map +1 -0
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.js +35 -0
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.js.map +1 -0
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.d.ts +6 -0
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.d.ts.map +1 -0
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.js +31 -0
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.js.map +1 -0
- package/dist/factories/kubernetes/autoscaling/index.d.ts +9 -0
- package/dist/factories/kubernetes/autoscaling/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/autoscaling/index.js +9 -0
- package/dist/factories/kubernetes/autoscaling/index.js.map +1 -0
- package/dist/factories/kubernetes/certificates/certificate-signing-request.d.ts +6 -0
- package/dist/factories/kubernetes/certificates/certificate-signing-request.d.ts.map +1 -0
- package/dist/factories/kubernetes/certificates/certificate-signing-request.js +48 -0
- package/dist/factories/kubernetes/certificates/certificate-signing-request.js.map +1 -0
- package/dist/factories/kubernetes/certificates/index.d.ts +8 -0
- package/dist/factories/kubernetes/certificates/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/certificates/index.js +8 -0
- package/dist/factories/kubernetes/certificates/index.js.map +1 -0
- package/dist/factories/kubernetes/config/config-map.d.ts +5 -0
- package/dist/factories/kubernetes/config/config-map.d.ts.map +1 -0
- package/dist/factories/kubernetes/config/config-map.js +16 -0
- package/dist/factories/kubernetes/config/config-map.js.map +1 -0
- package/dist/factories/kubernetes/config/index.d.ts +9 -0
- package/dist/factories/kubernetes/config/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/config/index.js +9 -0
- package/dist/factories/kubernetes/config/index.js.map +1 -0
- package/dist/factories/kubernetes/config/secret.d.ts +5 -0
- package/dist/factories/kubernetes/config/secret.d.ts.map +1 -0
- package/dist/factories/kubernetes/config/secret.js +16 -0
- package/dist/factories/kubernetes/config/secret.js.map +1 -0
- package/dist/factories/kubernetes/coordination/index.d.ts +8 -0
- package/dist/factories/kubernetes/coordination/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/coordination/index.js +8 -0
- package/dist/factories/kubernetes/coordination/index.js.map +1 -0
- package/dist/factories/kubernetes/coordination/lease.d.ts +5 -0
- package/dist/factories/kubernetes/coordination/lease.d.ts.map +1 -0
- package/dist/factories/kubernetes/coordination/lease.js +10 -0
- package/dist/factories/kubernetes/coordination/lease.js.map +1 -0
- package/dist/factories/kubernetes/core/component-status.d.ts +4 -0
- package/dist/factories/kubernetes/core/component-status.d.ts.map +1 -0
- package/dist/factories/kubernetes/core/component-status.js +25 -0
- package/dist/factories/kubernetes/core/component-status.js.map +1 -0
- package/dist/factories/kubernetes/core/index.d.ts +11 -0
- package/dist/factories/kubernetes/core/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/core/index.js +11 -0
- package/dist/factories/kubernetes/core/index.js.map +1 -0
- package/dist/factories/kubernetes/core/namespace.d.ts +9 -0
- package/dist/factories/kubernetes/core/namespace.d.ts.map +1 -0
- package/dist/factories/kubernetes/core/namespace.js +48 -0
- package/dist/factories/kubernetes/core/namespace.js.map +1 -0
- package/dist/factories/kubernetes/core/node.d.ts +6 -0
- package/dist/factories/kubernetes/core/node.d.ts.map +1 -0
- package/dist/factories/kubernetes/core/node.js +34 -0
- package/dist/factories/kubernetes/core/node.js.map +1 -0
- package/dist/factories/kubernetes/core/pod.d.ts +6 -0
- package/dist/factories/kubernetes/core/pod.d.ts.map +1 -0
- package/dist/factories/kubernetes/core/pod.js +44 -0
- package/dist/factories/kubernetes/core/pod.js.map +1 -0
- package/dist/factories/kubernetes/extensions/custom-resource-definition.d.ts +6 -0
- package/dist/factories/kubernetes/extensions/custom-resource-definition.d.ts.map +1 -0
- package/dist/factories/kubernetes/extensions/custom-resource-definition.js +45 -0
- package/dist/factories/kubernetes/extensions/custom-resource-definition.js.map +1 -0
- package/dist/factories/kubernetes/extensions/custom-resource.d.ts +12 -0
- package/dist/factories/kubernetes/extensions/custom-resource.d.ts.map +1 -0
- package/dist/factories/kubernetes/extensions/custom-resource.js +17 -0
- package/dist/factories/kubernetes/extensions/custom-resource.js.map +1 -0
- package/dist/factories/kubernetes/extensions/index.d.ts +9 -0
- package/dist/factories/kubernetes/extensions/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/extensions/index.js +9 -0
- package/dist/factories/kubernetes/extensions/index.js.map +1 -0
- package/dist/factories/kubernetes/index.d.ts +24 -0
- package/dist/factories/kubernetes/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/index.js +75 -0
- package/dist/factories/kubernetes/index.js.map +1 -0
- package/dist/factories/kubernetes/networking/endpoint-slice.d.ts +4 -0
- package/dist/factories/kubernetes/networking/endpoint-slice.d.ts.map +1 -0
- package/dist/factories/kubernetes/networking/endpoint-slice.js +10 -0
- package/dist/factories/kubernetes/networking/endpoint-slice.js.map +1 -0
- package/dist/factories/kubernetes/networking/endpoints.d.ts +4 -0
- package/dist/factories/kubernetes/networking/endpoints.d.ts.map +1 -0
- package/dist/factories/kubernetes/networking/endpoints.js +39 -0
- package/dist/factories/kubernetes/networking/endpoints.js.map +1 -0
- package/dist/factories/kubernetes/networking/index.d.ts +13 -0
- package/dist/factories/kubernetes/networking/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/networking/index.js +13 -0
- package/dist/factories/kubernetes/networking/index.js.map +1 -0
- package/dist/factories/kubernetes/networking/ingress-class.d.ts +5 -0
- package/dist/factories/kubernetes/networking/ingress-class.d.ts.map +1 -0
- package/dist/factories/kubernetes/networking/ingress-class.js +16 -0
- package/dist/factories/kubernetes/networking/ingress-class.js.map +1 -0
- package/dist/factories/kubernetes/networking/ingress.d.ts +5 -0
- package/dist/factories/kubernetes/networking/ingress.d.ts.map +1 -0
- package/dist/factories/kubernetes/networking/ingress.js +33 -0
- package/dist/factories/kubernetes/networking/ingress.js.map +1 -0
- package/dist/factories/kubernetes/networking/network-policy.d.ts +5 -0
- package/dist/factories/kubernetes/networking/network-policy.d.ts.map +1 -0
- package/dist/factories/kubernetes/networking/network-policy.js +17 -0
- package/dist/factories/kubernetes/networking/network-policy.js.map +1 -0
- package/dist/factories/kubernetes/networking/service.d.ts +5 -0
- package/dist/factories/kubernetes/networking/service.d.ts.map +1 -0
- package/dist/factories/kubernetes/networking/service.js +64 -0
- package/dist/factories/kubernetes/networking/service.js.map +1 -0
- package/dist/factories/kubernetes/policy/index.d.ts +10 -0
- package/dist/factories/kubernetes/policy/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/policy/index.js +10 -0
- package/dist/factories/kubernetes/policy/index.js.map +1 -0
- package/dist/factories/kubernetes/policy/limit-range.d.ts +5 -0
- package/dist/factories/kubernetes/policy/limit-range.d.ts.map +1 -0
- package/dist/factories/kubernetes/policy/limit-range.js +17 -0
- package/dist/factories/kubernetes/policy/limit-range.js.map +1 -0
- package/dist/factories/kubernetes/policy/pod-disruption-budget.d.ts +6 -0
- package/dist/factories/kubernetes/policy/pod-disruption-budget.d.ts.map +1 -0
- package/dist/factories/kubernetes/policy/pod-disruption-budget.js +55 -0
- package/dist/factories/kubernetes/policy/pod-disruption-budget.js.map +1 -0
- package/dist/factories/kubernetes/policy/resource-quota.d.ts +6 -0
- package/dist/factories/kubernetes/policy/resource-quota.d.ts.map +1 -0
- package/dist/factories/kubernetes/policy/resource-quota.js +43 -0
- package/dist/factories/kubernetes/policy/resource-quota.js.map +1 -0
- package/dist/factories/kubernetes/rbac/cluster-role-binding.d.ts +4 -0
- package/dist/factories/kubernetes/rbac/cluster-role-binding.d.ts.map +1 -0
- package/dist/factories/kubernetes/rbac/cluster-role-binding.js +17 -0
- package/dist/factories/kubernetes/rbac/cluster-role-binding.js.map +1 -0
- package/dist/factories/kubernetes/rbac/cluster-role.d.ts +4 -0
- package/dist/factories/kubernetes/rbac/cluster-role.d.ts.map +1 -0
- package/dist/factories/kubernetes/rbac/cluster-role.js +17 -0
- package/dist/factories/kubernetes/rbac/cluster-role.js.map +1 -0
- package/dist/factories/kubernetes/rbac/index.d.ts +12 -0
- package/dist/factories/kubernetes/rbac/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/rbac/index.js +12 -0
- package/dist/factories/kubernetes/rbac/index.js.map +1 -0
- package/dist/factories/kubernetes/rbac/role-binding.d.ts +4 -0
- package/dist/factories/kubernetes/rbac/role-binding.d.ts.map +1 -0
- package/dist/factories/kubernetes/rbac/role-binding.js +17 -0
- package/dist/factories/kubernetes/rbac/role-binding.js.map +1 -0
- package/dist/factories/kubernetes/rbac/role.d.ts +4 -0
- package/dist/factories/kubernetes/rbac/role.d.ts.map +1 -0
- package/dist/factories/kubernetes/rbac/role.js +17 -0
- package/dist/factories/kubernetes/rbac/role.js.map +1 -0
- package/dist/factories/kubernetes/rbac/service-account.d.ts +4 -0
- package/dist/factories/kubernetes/rbac/service-account.d.ts.map +1 -0
- package/dist/factories/kubernetes/rbac/service-account.js +17 -0
- package/dist/factories/kubernetes/rbac/service-account.js.map +1 -0
- package/dist/factories/kubernetes/scheduling/index.d.ts +9 -0
- package/dist/factories/kubernetes/scheduling/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/scheduling/index.js +9 -0
- package/dist/factories/kubernetes/scheduling/index.js.map +1 -0
- package/dist/factories/kubernetes/scheduling/priority-class.d.ts +4 -0
- package/dist/factories/kubernetes/scheduling/priority-class.d.ts.map +1 -0
- package/dist/factories/kubernetes/scheduling/priority-class.js +16 -0
- package/dist/factories/kubernetes/scheduling/priority-class.js.map +1 -0
- package/dist/factories/kubernetes/scheduling/runtime-class.d.ts +5 -0
- package/dist/factories/kubernetes/scheduling/runtime-class.d.ts.map +1 -0
- package/dist/factories/kubernetes/scheduling/runtime-class.js +10 -0
- package/dist/factories/kubernetes/scheduling/runtime-class.js.map +1 -0
- package/dist/factories/kubernetes/storage/csi-driver.d.ts +5 -0
- package/dist/factories/kubernetes/storage/csi-driver.d.ts.map +1 -0
- package/dist/factories/kubernetes/storage/csi-driver.js +16 -0
- package/dist/factories/kubernetes/storage/csi-driver.js.map +1 -0
- package/dist/factories/kubernetes/storage/csi-node.d.ts +5 -0
- package/dist/factories/kubernetes/storage/csi-node.d.ts.map +1 -0
- package/dist/factories/kubernetes/storage/csi-node.js +10 -0
- package/dist/factories/kubernetes/storage/csi-node.js.map +1 -0
- package/dist/factories/kubernetes/storage/index.d.ts +13 -0
- package/dist/factories/kubernetes/storage/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/storage/index.js +13 -0
- package/dist/factories/kubernetes/storage/index.js.map +1 -0
- package/dist/factories/kubernetes/storage/persistent-volume-claim.d.ts +6 -0
- package/dist/factories/kubernetes/storage/persistent-volume-claim.d.ts.map +1 -0
- package/dist/factories/kubernetes/storage/persistent-volume-claim.js +30 -0
- package/dist/factories/kubernetes/storage/persistent-volume-claim.js.map +1 -0
- package/dist/factories/kubernetes/storage/persistent-volume.d.ts +6 -0
- package/dist/factories/kubernetes/storage/persistent-volume.d.ts.map +1 -0
- package/dist/factories/kubernetes/storage/persistent-volume.js +47 -0
- package/dist/factories/kubernetes/storage/persistent-volume.js.map +1 -0
- package/dist/factories/kubernetes/storage/storage-class.d.ts +4 -0
- package/dist/factories/kubernetes/storage/storage-class.d.ts.map +1 -0
- package/dist/factories/kubernetes/storage/storage-class.js +17 -0
- package/dist/factories/kubernetes/storage/storage-class.js.map +1 -0
- package/dist/factories/kubernetes/storage/volume-attachment.d.ts +6 -0
- package/dist/factories/kubernetes/storage/volume-attachment.d.ts.map +1 -0
- package/dist/factories/kubernetes/storage/volume-attachment.js +10 -0
- package/dist/factories/kubernetes/storage/volume-attachment.js.map +1 -0
- package/dist/factories/kubernetes/types.d.ts +8 -0
- package/dist/factories/kubernetes/types.d.ts.map +1 -0
- package/dist/factories/kubernetes/types.js +8 -0
- package/dist/factories/kubernetes/types.js.map +1 -0
- package/dist/factories/kubernetes/workloads/cron-job.d.ts +6 -0
- package/dist/factories/kubernetes/workloads/cron-job.d.ts.map +1 -0
- package/dist/factories/kubernetes/workloads/cron-job.js +53 -0
- package/dist/factories/kubernetes/workloads/cron-job.js.map +1 -0
- package/dist/factories/kubernetes/workloads/daemon-set.d.ts +6 -0
- package/dist/factories/kubernetes/workloads/daemon-set.d.ts.map +1 -0
- package/dist/factories/kubernetes/workloads/daemon-set.js +32 -0
- package/dist/factories/kubernetes/workloads/daemon-set.js.map +1 -0
- package/dist/factories/kubernetes/workloads/deployment.d.ts +5 -0
- package/dist/factories/kubernetes/workloads/deployment.d.ts.map +1 -0
- package/dist/factories/kubernetes/workloads/deployment.js +59 -0
- package/dist/factories/kubernetes/workloads/deployment.js.map +1 -0
- package/dist/factories/kubernetes/workloads/index.d.ts +14 -0
- package/dist/factories/kubernetes/workloads/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/workloads/index.js +14 -0
- package/dist/factories/kubernetes/workloads/index.js.map +1 -0
- package/dist/factories/kubernetes/workloads/job.d.ts +6 -0
- package/dist/factories/kubernetes/workloads/job.d.ts.map +1 -0
- package/dist/factories/kubernetes/workloads/job.js +105 -0
- package/dist/factories/kubernetes/workloads/job.js.map +1 -0
- package/dist/factories/kubernetes/workloads/replica-set.d.ts +6 -0
- package/dist/factories/kubernetes/workloads/replica-set.d.ts.map +1 -0
- package/dist/factories/kubernetes/workloads/replica-set.js +33 -0
- package/dist/factories/kubernetes/workloads/replica-set.js.map +1 -0
- package/dist/factories/kubernetes/workloads/replication-controller.d.ts +6 -0
- package/dist/factories/kubernetes/workloads/replication-controller.d.ts.map +1 -0
- package/dist/factories/kubernetes/workloads/replication-controller.js +56 -0
- package/dist/factories/kubernetes/workloads/replication-controller.js.map +1 -0
- package/dist/factories/kubernetes/workloads/stateful-set.d.ts +6 -0
- package/dist/factories/kubernetes/workloads/stateful-set.d.ts.map +1 -0
- package/dist/factories/kubernetes/workloads/stateful-set.js +81 -0
- package/dist/factories/kubernetes/workloads/stateful-set.js.map +1 -0
- package/dist/factories/kubernetes/yaml/index.d.ts +6 -0
- package/dist/factories/kubernetes/yaml/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/yaml/index.js +6 -0
- package/dist/factories/kubernetes/yaml/index.js.map +1 -0
- package/dist/factories/kubernetes/yaml/yaml-directory.d.ts +54 -0
- package/dist/factories/kubernetes/yaml/yaml-directory.d.ts.map +1 -0
- package/dist/factories/kubernetes/yaml/yaml-directory.js +178 -0
- package/dist/factories/kubernetes/yaml/yaml-directory.js.map +1 -0
- package/dist/factories/kubernetes/yaml/yaml-file.d.ts +54 -0
- package/dist/factories/kubernetes/yaml/yaml-file.d.ts.map +1 -0
- package/dist/factories/kubernetes/yaml/yaml-file.js +181 -0
- package/dist/factories/kubernetes/yaml/yaml-file.js.map +1 -0
- package/dist/factories/shared.d.ts +11 -0
- package/dist/factories/shared.d.ts.map +1 -0
- package/dist/factories/shared.js +364 -0
- package/dist/factories/shared.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +49 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/helpers.d.ts +69 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +405 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +11 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/type-guards.d.ts +34 -0
- package/dist/utils/type-guards.d.ts.map +1 -0
- package/dist/utils/type-guards.js +66 -0
- package/dist/utils/type-guards.js.map +1 -0
- package/package.json +109 -0
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enhanced error handling for TypeKro
|
|
3
|
+
* Provides detailed, actionable error messages with context
|
|
4
|
+
*/
|
|
5
|
+
export class TypeKroError extends Error {
|
|
6
|
+
code;
|
|
7
|
+
context;
|
|
8
|
+
constructor(message, code, context) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.code = code;
|
|
11
|
+
this.context = context;
|
|
12
|
+
this.name = 'TypeKroError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class ValidationError extends TypeKroError {
|
|
16
|
+
resourceKind;
|
|
17
|
+
resourceName;
|
|
18
|
+
field;
|
|
19
|
+
suggestions;
|
|
20
|
+
constructor(message, resourceKind, resourceName, field, suggestions) {
|
|
21
|
+
super(message, 'VALIDATION_ERROR', {
|
|
22
|
+
resourceKind,
|
|
23
|
+
resourceName,
|
|
24
|
+
field,
|
|
25
|
+
suggestions,
|
|
26
|
+
});
|
|
27
|
+
this.resourceKind = resourceKind;
|
|
28
|
+
this.resourceName = resourceName;
|
|
29
|
+
this.field = field;
|
|
30
|
+
this.suggestions = suggestions;
|
|
31
|
+
this.name = 'ValidationError';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export class TypeKroReferenceError extends TypeKroError {
|
|
35
|
+
fromResource;
|
|
36
|
+
toResource;
|
|
37
|
+
fieldPath;
|
|
38
|
+
suggestions;
|
|
39
|
+
constructor(message, fromResource, toResource, fieldPath, suggestions) {
|
|
40
|
+
super(message, 'REFERENCE_ERROR', {
|
|
41
|
+
fromResource,
|
|
42
|
+
toResource,
|
|
43
|
+
fieldPath,
|
|
44
|
+
suggestions,
|
|
45
|
+
});
|
|
46
|
+
this.fromResource = fromResource;
|
|
47
|
+
this.toResource = toResource;
|
|
48
|
+
this.fieldPath = fieldPath;
|
|
49
|
+
this.suggestions = suggestions;
|
|
50
|
+
this.name = 'TypeKroReferenceError';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export class CircularDependencyError extends TypeKroError {
|
|
54
|
+
cycle;
|
|
55
|
+
suggestions;
|
|
56
|
+
constructor(message, cycle, suggestions) {
|
|
57
|
+
super(message, 'CIRCULAR_DEPENDENCY', {
|
|
58
|
+
cycle,
|
|
59
|
+
suggestions,
|
|
60
|
+
});
|
|
61
|
+
this.cycle = cycle;
|
|
62
|
+
this.suggestions = suggestions;
|
|
63
|
+
this.name = 'CircularDependencyError';
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Format Arktype validation errors with helpful context and suggestions
|
|
68
|
+
*/
|
|
69
|
+
export function formatArktypeError(error, resourceKind, resourceName, _spec) {
|
|
70
|
+
const problems = error.problems || [];
|
|
71
|
+
if (problems.length === 0) {
|
|
72
|
+
return new ValidationError(`Invalid ${resourceKind} spec: ${error.summary}`, resourceKind, resourceName, undefined, ['Check the resource specification against the schema']);
|
|
73
|
+
}
|
|
74
|
+
// Get the first problem for detailed error
|
|
75
|
+
const firstProblem = problems[0];
|
|
76
|
+
const fieldPath = firstProblem.path?.join('.') || 'root';
|
|
77
|
+
const expectedType = firstProblem.expected || 'unknown';
|
|
78
|
+
const actualValue = firstProblem.actual;
|
|
79
|
+
let message = `Invalid ${resourceKind} '${resourceName}' at field '${fieldPath}':`;
|
|
80
|
+
message += `\n Expected: ${expectedType}`;
|
|
81
|
+
message += `\n Received: ${typeof actualValue} (${JSON.stringify(actualValue)})`;
|
|
82
|
+
const suggestions = [];
|
|
83
|
+
// Add specific suggestions based on the error type
|
|
84
|
+
if (firstProblem.code === 'missing') {
|
|
85
|
+
suggestions.push(`Add the required field '${fieldPath}' to your ${resourceKind} spec`);
|
|
86
|
+
suggestions.push(`Example: { ${fieldPath}: ${getExampleValue(expectedType)} }`);
|
|
87
|
+
}
|
|
88
|
+
else if (firstProblem.code === 'type') {
|
|
89
|
+
suggestions.push(`Change '${fieldPath}' to be of type ${expectedType}`);
|
|
90
|
+
if (expectedType.includes('|')) {
|
|
91
|
+
const options = expectedType.split('|').map((s) => s.trim());
|
|
92
|
+
suggestions.push(`Valid options: ${options.join(', ')}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else if (firstProblem.code === 'format') {
|
|
96
|
+
suggestions.push(`Ensure '${fieldPath}' matches the expected format: ${expectedType}`);
|
|
97
|
+
}
|
|
98
|
+
// Add all problems if there are multiple
|
|
99
|
+
if (problems.length > 1) {
|
|
100
|
+
message += `\n\nAdditional validation errors:`;
|
|
101
|
+
problems.slice(1).forEach((problem, index) => {
|
|
102
|
+
const path = problem.path?.join('.') || 'root';
|
|
103
|
+
message += `\n ${index + 2}. ${path}: ${problem.message}`;
|
|
104
|
+
});
|
|
105
|
+
suggestions.push(`Fix all ${problems.length} validation errors listed above`);
|
|
106
|
+
}
|
|
107
|
+
return new ValidationError(message, resourceKind, resourceName, fieldPath, suggestions);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Generate example values for common types
|
|
111
|
+
*/
|
|
112
|
+
function getExampleValue(expectedType) {
|
|
113
|
+
if (expectedType.includes('string'))
|
|
114
|
+
return '"example-value"';
|
|
115
|
+
if (expectedType.includes('number'))
|
|
116
|
+
return '42';
|
|
117
|
+
if (expectedType.includes('boolean'))
|
|
118
|
+
return 'true';
|
|
119
|
+
if (expectedType.includes('array'))
|
|
120
|
+
return '[]';
|
|
121
|
+
if (expectedType.includes('object'))
|
|
122
|
+
return '{}';
|
|
123
|
+
if (expectedType.includes('|')) {
|
|
124
|
+
const options = expectedType.split('|').map((s) => s.trim());
|
|
125
|
+
return options[0] || '"value"';
|
|
126
|
+
}
|
|
127
|
+
return '"value"';
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Format reference resolution errors with helpful context
|
|
131
|
+
*/
|
|
132
|
+
export function formatReferenceError(fromResourceId, toResourceId, fieldPath, availableResources) {
|
|
133
|
+
const message = `Resource reference failed: '${fromResourceId}' tried to reference '${toResourceId}.${fieldPath}' but resource '${toResourceId}' was not found in the resource graph.`;
|
|
134
|
+
const suggestions = [];
|
|
135
|
+
// Suggest similar resource names
|
|
136
|
+
const similarResources = availableResources.filter((id) => id.includes(toResourceId) ||
|
|
137
|
+
toResourceId.includes(id) ||
|
|
138
|
+
levenshteinDistance(id, toResourceId) <= 2);
|
|
139
|
+
if (similarResources.length > 0) {
|
|
140
|
+
suggestions.push(`Did you mean one of these resources? ${similarResources.join(', ')}`);
|
|
141
|
+
}
|
|
142
|
+
suggestions.push(`Available resources: ${availableResources.join(', ')}`);
|
|
143
|
+
suggestions.push(`Make sure the referenced resource is included in your toResourceGraph() call`);
|
|
144
|
+
suggestions.push(`Check that the resource name and namespace are correct`);
|
|
145
|
+
return new TypeKroReferenceError(message, fromResourceId, toResourceId, fieldPath, suggestions);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Format circular dependency errors with helpful context
|
|
149
|
+
*/
|
|
150
|
+
export function formatCircularDependencyError(cycle) {
|
|
151
|
+
const cycleStr = `${cycle.join(' → ')} → ${cycle[0]}`;
|
|
152
|
+
const message = `Circular dependency detected in resource graph: ${cycleStr}`;
|
|
153
|
+
const suggestions = [
|
|
154
|
+
'Remove one of the dependencies to break the cycle',
|
|
155
|
+
"Consider using a different approach that doesn't require circular references",
|
|
156
|
+
'Use external configuration or environment variables instead of cross-resource references',
|
|
157
|
+
"Split the resources into separate resource graphs if they don't need to be deployed together",
|
|
158
|
+
];
|
|
159
|
+
return new CircularDependencyError(message, cycle, suggestions);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Simple Levenshtein distance calculation for suggesting similar resource names
|
|
163
|
+
*/
|
|
164
|
+
function levenshteinDistance(str1, str2) {
|
|
165
|
+
const matrix = Array(str2.length + 1)
|
|
166
|
+
.fill(null)
|
|
167
|
+
.map(() => Array(str1.length + 1).fill(0));
|
|
168
|
+
for (let i = 0; i <= str1.length; i++)
|
|
169
|
+
matrix[0][i] = i;
|
|
170
|
+
for (let j = 0; j <= str2.length; j++)
|
|
171
|
+
matrix[j][0] = j;
|
|
172
|
+
for (let j = 1; j <= str2.length; j++) {
|
|
173
|
+
for (let i = 1; i <= str1.length; i++) {
|
|
174
|
+
const indicator = str1[i - 1] === str2[j - 1] ? 0 : 1;
|
|
175
|
+
matrix[j][i] = Math.min(matrix[j]?.[i - 1] + 1, matrix[j - 1]?.[i] + 1, matrix[j - 1]?.[i - 1] + indicator);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return matrix[str2.length]?.[str1.length];
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
|
|
182
|
+
* Error thrown when ResourceGraphDefinition deployment fails
|
|
183
|
+
*/
|
|
184
|
+
export class ResourceGraphFactoryError extends TypeKroError {
|
|
185
|
+
factoryName;
|
|
186
|
+
operation;
|
|
187
|
+
cause;
|
|
188
|
+
constructor(message, factoryName, operation, cause) {
|
|
189
|
+
super(message, 'RESOURCE_GRAPH_FACTORY_ERROR', {
|
|
190
|
+
factoryName,
|
|
191
|
+
operation,
|
|
192
|
+
cause: cause?.message,
|
|
193
|
+
});
|
|
194
|
+
this.factoryName = factoryName;
|
|
195
|
+
this.operation = operation;
|
|
196
|
+
this.cause = cause;
|
|
197
|
+
this.name = 'ResourceGraphFactoryError';
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Error thrown when CRD instance operations fail
|
|
202
|
+
*/
|
|
203
|
+
export class CRDInstanceError extends TypeKroError {
|
|
204
|
+
apiVersion;
|
|
205
|
+
kind;
|
|
206
|
+
instanceName;
|
|
207
|
+
operation;
|
|
208
|
+
cause;
|
|
209
|
+
constructor(message, apiVersion, kind, instanceName, operation, cause) {
|
|
210
|
+
super(message, 'CRD_INSTANCE_ERROR', {
|
|
211
|
+
apiVersion,
|
|
212
|
+
kind,
|
|
213
|
+
instanceName,
|
|
214
|
+
operation,
|
|
215
|
+
cause: cause?.message,
|
|
216
|
+
});
|
|
217
|
+
this.apiVersion = apiVersion;
|
|
218
|
+
this.kind = kind;
|
|
219
|
+
this.instanceName = instanceName;
|
|
220
|
+
this.operation = operation;
|
|
221
|
+
this.cause = cause;
|
|
222
|
+
this.name = 'CRDInstanceError';
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Error thrown when schema validation fails for Kro compatibility
|
|
227
|
+
*/
|
|
228
|
+
export class KroSchemaValidationError extends TypeKroError {
|
|
229
|
+
schemaType;
|
|
230
|
+
fieldPath;
|
|
231
|
+
expectedType;
|
|
232
|
+
actualType;
|
|
233
|
+
suggestions;
|
|
234
|
+
constructor(message, schemaType, fieldPath, expectedType, actualType, suggestions) {
|
|
235
|
+
super(message, 'KRO_SCHEMA_VALIDATION_ERROR', {
|
|
236
|
+
schemaType,
|
|
237
|
+
fieldPath,
|
|
238
|
+
expectedType,
|
|
239
|
+
actualType,
|
|
240
|
+
suggestions,
|
|
241
|
+
});
|
|
242
|
+
this.schemaType = schemaType;
|
|
243
|
+
this.fieldPath = fieldPath;
|
|
244
|
+
this.expectedType = expectedType;
|
|
245
|
+
this.actualType = actualType;
|
|
246
|
+
this.suggestions = suggestions;
|
|
247
|
+
this.name = 'KroSchemaValidationError';
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CEL Expression Optimizer for Compile-time Resolution
|
|
3
|
+
*
|
|
4
|
+
* This module performs compile-time optimization of CEL expressions and resource references.
|
|
5
|
+
* It does NOT evaluate CEL expressions at runtime - that's handled by:
|
|
6
|
+
* - Kro operator (for Kro mode deployment)
|
|
7
|
+
* - ReferenceResolver (for Direct mode deployment)
|
|
8
|
+
*
|
|
9
|
+
* Purpose:
|
|
10
|
+
* - Resolve known resource references to concrete values when possible
|
|
11
|
+
* - Optimize CEL expressions by substituting known values
|
|
12
|
+
* - Prepare expressions for serialization to ResourceGraphDefinitions
|
|
13
|
+
*
|
|
14
|
+
* When to use:
|
|
15
|
+
* - During ResourceGraphDefinition generation
|
|
16
|
+
* - For status mapping optimization before serialization
|
|
17
|
+
* - When preparing CEL expressions for Kro operator consumption
|
|
18
|
+
*/
|
|
19
|
+
import type { CelExpression, KubernetesResource } from '../types.js';
|
|
20
|
+
export interface EvaluationContext {
|
|
21
|
+
resources: Record<string, KubernetesResource>;
|
|
22
|
+
schema?: Record<string, unknown>;
|
|
23
|
+
}
|
|
24
|
+
export interface EvaluationResult {
|
|
25
|
+
expression: string;
|
|
26
|
+
wasOptimized: boolean;
|
|
27
|
+
optimizations: string[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Optimizes a CEL expression by resolving known values at compile time
|
|
31
|
+
*
|
|
32
|
+
* NOTE: This does NOT evaluate CEL expressions at runtime. It only performs
|
|
33
|
+
* compile-time optimizations by substituting known resource values.
|
|
34
|
+
*/
|
|
35
|
+
export declare function optimizeCelExpression(expression: CelExpression<unknown> | string, context: EvaluationContext): EvaluationResult;
|
|
36
|
+
/**
|
|
37
|
+
* Optimizes all CEL expressions in a status mapping object for serialization
|
|
38
|
+
*
|
|
39
|
+
* This prepares status mappings for ResourceGraphDefinition serialization by:
|
|
40
|
+
* - Resolving known resource references to concrete values
|
|
41
|
+
* - Optimizing CEL expressions where possible
|
|
42
|
+
* - Preserving KubernetesRef objects for proper CEL string generation
|
|
43
|
+
*/
|
|
44
|
+
export declare function optimizeStatusMappings(statusMappings: Record<string, any>, context: EvaluationContext): {
|
|
45
|
+
mappings: Record<string, any>;
|
|
46
|
+
optimizations: string[];
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=cel-optimizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cel-optimizer.d.ts","sourceRoot":"","sources":["../../../src/core/evaluation/cel-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAiB,MAAM,aAAa,CAAC;AAKpF,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AA2CD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,MAAM,EAC3C,OAAO,EAAE,iBAAiB,GACzB,gBAAgB,CA4DlB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,OAAO,EAAE,iBAAiB,GACzB;IAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CAyD5D"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CEL Expression Optimizer for Compile-time Resolution
|
|
3
|
+
*
|
|
4
|
+
* This module performs compile-time optimization of CEL expressions and resource references.
|
|
5
|
+
* It does NOT evaluate CEL expressions at runtime - that's handled by:
|
|
6
|
+
* - Kro operator (for Kro mode deployment)
|
|
7
|
+
* - ReferenceResolver (for Direct mode deployment)
|
|
8
|
+
*
|
|
9
|
+
* Purpose:
|
|
10
|
+
* - Resolve known resource references to concrete values when possible
|
|
11
|
+
* - Optimize CEL expressions by substituting known values
|
|
12
|
+
* - Prepare expressions for serialization to ResourceGraphDefinitions
|
|
13
|
+
*
|
|
14
|
+
* When to use:
|
|
15
|
+
* - During ResourceGraphDefinition generation
|
|
16
|
+
* - For status mapping optimization before serialization
|
|
17
|
+
* - When preparing CEL expressions for Kro operator consumption
|
|
18
|
+
*/
|
|
19
|
+
import { isCelExpression, isKubernetesRef } from '../../utils/type-guards.js';
|
|
20
|
+
import { getInnerCelPath } from '../../utils/helpers.js';
|
|
21
|
+
import { CEL_EXPRESSION_BRAND } from '../constants/brands.js';
|
|
22
|
+
/**
|
|
23
|
+
* Attempts to resolve a resource reference to its actual value if known at compile time
|
|
24
|
+
*/
|
|
25
|
+
function resolveResourceReference(ref, context) {
|
|
26
|
+
const { resourceId, fieldPath } = ref;
|
|
27
|
+
// Handle schema references
|
|
28
|
+
if (resourceId === '__schema__') {
|
|
29
|
+
return `schema.${fieldPath}`;
|
|
30
|
+
}
|
|
31
|
+
// Find the resource
|
|
32
|
+
const resource = Object.values(context.resources).find(r => r.id === resourceId);
|
|
33
|
+
if (!resource) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
// Try to resolve the field path to a known value
|
|
37
|
+
const pathParts = fieldPath.split('.');
|
|
38
|
+
let current = resource;
|
|
39
|
+
for (const part of pathParts) {
|
|
40
|
+
if (current && typeof current === 'object' && part in current) {
|
|
41
|
+
current = current[part];
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
// Can't resolve further, return the CEL reference
|
|
45
|
+
return `${resourceId}.${fieldPath}`;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// If we resolved to a concrete value, return it
|
|
49
|
+
if (typeof current === 'string') {
|
|
50
|
+
return `"${current}"`;
|
|
51
|
+
}
|
|
52
|
+
else if (typeof current === 'number' || typeof current === 'boolean') {
|
|
53
|
+
return String(current);
|
|
54
|
+
}
|
|
55
|
+
// Otherwise, return the CEL reference
|
|
56
|
+
return `${resourceId}.${fieldPath}`;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Optimizes a CEL expression by resolving known values at compile time
|
|
60
|
+
*
|
|
61
|
+
* NOTE: This does NOT evaluate CEL expressions at runtime. It only performs
|
|
62
|
+
* compile-time optimizations by substituting known resource values.
|
|
63
|
+
*/
|
|
64
|
+
export function optimizeCelExpression(expression, context) {
|
|
65
|
+
const optimizations = [];
|
|
66
|
+
let wasOptimized = false;
|
|
67
|
+
if (typeof expression === 'string') {
|
|
68
|
+
return {
|
|
69
|
+
expression,
|
|
70
|
+
wasOptimized: false,
|
|
71
|
+
optimizations: []
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
if (!isCelExpression(expression)) {
|
|
75
|
+
return {
|
|
76
|
+
expression: String(expression),
|
|
77
|
+
wasOptimized: false,
|
|
78
|
+
optimizations: []
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
let optimizedExpression = expression.expression;
|
|
82
|
+
// Pattern 1: Simple string concatenation with known values
|
|
83
|
+
// Example: "http://" + resourceName where resourceName is known
|
|
84
|
+
const concatPattern = /"([^"]*)" \+ ([a-zA-Z][a-zA-Z0-9]*\.metadata\.name)/g;
|
|
85
|
+
optimizedExpression = optimizedExpression.replace(concatPattern, (match, prefix, resourceRef) => {
|
|
86
|
+
// Extract resource ID from the reference
|
|
87
|
+
const resourceId = resourceRef.split('.')[0];
|
|
88
|
+
const resource = Object.values(context.resources).find(r => r.id === resourceId);
|
|
89
|
+
if (resource?.metadata?.name) {
|
|
90
|
+
optimizations.push(`Resolved ${resourceRef} to "${resource.metadata.name}"`);
|
|
91
|
+
wasOptimized = true;
|
|
92
|
+
return `"${prefix}${resource.metadata.name}"`;
|
|
93
|
+
}
|
|
94
|
+
return match;
|
|
95
|
+
});
|
|
96
|
+
// Pattern 2: Conditional expressions with known boolean values
|
|
97
|
+
// Example: condition ? "value1" : "value2" where condition can be evaluated
|
|
98
|
+
const conditionalPattern = /([a-zA-Z][a-zA-Z0-9]*\.[a-zA-Z0-9.]*) ([><=!]+) (\d+) \? "([^"]*)" : "([^"]*)"/g;
|
|
99
|
+
optimizedExpression = optimizedExpression.replace(conditionalPattern, (match, leftSide, _operator, _rightSide, _trueValue, _falseValue) => {
|
|
100
|
+
// For now, we can't evaluate the condition at compile time without actual resource status
|
|
101
|
+
// But we can validate that the reference exists
|
|
102
|
+
const resourceId = leftSide.split('.')[0];
|
|
103
|
+
const resource = Object.values(context.resources).find(r => r.id === resourceId);
|
|
104
|
+
if (!resource) {
|
|
105
|
+
optimizations.push(`Warning: Referenced resource '${resourceId}' not found`);
|
|
106
|
+
}
|
|
107
|
+
return match; // Return unchanged for now
|
|
108
|
+
});
|
|
109
|
+
return {
|
|
110
|
+
expression: optimizedExpression,
|
|
111
|
+
wasOptimized,
|
|
112
|
+
optimizations
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Optimizes all CEL expressions in a status mapping object for serialization
|
|
117
|
+
*
|
|
118
|
+
* This prepares status mappings for ResourceGraphDefinition serialization by:
|
|
119
|
+
* - Resolving known resource references to concrete values
|
|
120
|
+
* - Optimizing CEL expressions where possible
|
|
121
|
+
* - Preserving KubernetesRef objects for proper CEL string generation
|
|
122
|
+
*/
|
|
123
|
+
export function optimizeStatusMappings(statusMappings, context) {
|
|
124
|
+
const optimizedMappings = {};
|
|
125
|
+
const allOptimizations = [];
|
|
126
|
+
function evaluateValue(value, path) {
|
|
127
|
+
if (isKubernetesRef(value)) {
|
|
128
|
+
const resolved = resolveResourceReference(value, context);
|
|
129
|
+
if (resolved) {
|
|
130
|
+
allOptimizations.push(`Resolved reference at ${path}: ${getInnerCelPath(value)} -> ${resolved}`);
|
|
131
|
+
// For status field serialization, preserve KubernetesRef objects instead of converting to strings
|
|
132
|
+
// The serializeStatusMappingsToCel function expects KubernetesRef objects to generate proper CEL expressions
|
|
133
|
+
if (resolved === `${value.resourceId}.${value.fieldPath}`) {
|
|
134
|
+
// If the resolved value is the same as the original reference, preserve the KubernetesRef
|
|
135
|
+
return value;
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
// If the resolved value is different (e.g., a concrete value), convert to CelExpression
|
|
139
|
+
return {
|
|
140
|
+
[CEL_EXPRESSION_BRAND]: true,
|
|
141
|
+
expression: resolved.startsWith('"') ? resolved.slice(1, -1) : resolved
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return value;
|
|
146
|
+
}
|
|
147
|
+
if (isCelExpression(value)) {
|
|
148
|
+
const result = optimizeCelExpression(value, context);
|
|
149
|
+
if (result.wasOptimized) {
|
|
150
|
+
allOptimizations.push(`Optimized CEL expression at ${path}: ${value.expression} -> ${result.expression}`);
|
|
151
|
+
allOptimizations.push(...result.optimizations.map(opt => ` ${opt}`));
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
[CEL_EXPRESSION_BRAND]: true,
|
|
155
|
+
expression: result.expression,
|
|
156
|
+
...((value.__isTemplate) && { __isTemplate: true })
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
160
|
+
const optimizedObject = {};
|
|
161
|
+
for (const [key, nestedValue] of Object.entries(value)) {
|
|
162
|
+
optimizedObject[key] = evaluateValue(nestedValue, `${path}.${key}`);
|
|
163
|
+
}
|
|
164
|
+
return optimizedObject;
|
|
165
|
+
}
|
|
166
|
+
return value;
|
|
167
|
+
}
|
|
168
|
+
for (const [fieldName, fieldValue] of Object.entries(statusMappings)) {
|
|
169
|
+
optimizedMappings[fieldName] = evaluateValue(fieldValue, fieldName);
|
|
170
|
+
}
|
|
171
|
+
return {
|
|
172
|
+
mappings: optimizedMappings,
|
|
173
|
+
optimizations: allOptimizations
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=cel-optimizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cel-optimizer.js","sourceRoot":"","sources":["../../../src/core/evaluation/cel-optimizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Factory - Legacy factory functions (to be moved to organized structure)
|
|
3
|
+
*
|
|
4
|
+
* This file contains the old factory functions that should be moved to the new
|
|
5
|
+
* organized structure in src/factories/. It's kept temporarily for backward compatibility.
|
|
6
|
+
*
|
|
7
|
+
* @deprecated Use the organized factory functions from src/factories/ instead
|
|
8
|
+
*/
|
|
9
|
+
export * from '../factories/index.js';
|
|
10
|
+
export { createResource } from '../factories/shared.js';
|
|
11
|
+
export type * from './types/kubernetes.js';
|
|
12
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/core/factory.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,mBAAmB,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Factory - Legacy factory functions (to be moved to organized structure)
|
|
3
|
+
*
|
|
4
|
+
* This file contains the old factory functions that should be moved to the new
|
|
5
|
+
* organized structure in src/factories/. It's kept temporarily for backward compatibility.
|
|
6
|
+
*
|
|
7
|
+
* @deprecated Use the organized factory functions from src/factories/ instead
|
|
8
|
+
*/
|
|
9
|
+
// Re-export all factory functions from the organized structure
|
|
10
|
+
export * from '../factories/index.js';
|
|
11
|
+
// Re-export the shared utilities from the new location
|
|
12
|
+
export { createResource } from '../factories/shared.js';
|
|
13
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/core/factory.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,+DAA+D;AAC/D,cAAc,uBAAuB,CAAC;AACtC,uDAAuD;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A Kubernetes API client that reads configuration from environment variables.
|
|
3
|
+
* This client provides basic apply, get, and delete operations for Kubernetes resources.
|
|
4
|
+
*/
|
|
5
|
+
export declare class KubernetesApi {
|
|
6
|
+
private kc;
|
|
7
|
+
private k8sApi;
|
|
8
|
+
private logger;
|
|
9
|
+
constructor();
|
|
10
|
+
/**
|
|
11
|
+
* Loads Kubernetes API configuration from environment variables.
|
|
12
|
+
* @throws Error if KUBERNETES_API_SERVER or KUBERNETES_API_TOKEN are not set.
|
|
13
|
+
*/
|
|
14
|
+
private loadConfigFromEnv;
|
|
15
|
+
/**
|
|
16
|
+
* Validate TLS configuration and provide actionable error messages
|
|
17
|
+
*/
|
|
18
|
+
private validateTLSConfiguration;
|
|
19
|
+
/**
|
|
20
|
+
* Applies a Kubernetes manifest (YAML or JSON string) to the cluster.
|
|
21
|
+
* This method handles both creation and updates of resources.
|
|
22
|
+
* @param manifestString The Kubernetes YAML or JSON manifest as a string.
|
|
23
|
+
*/
|
|
24
|
+
apply(manifestString: string): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Retrieves a Kubernetes resource.
|
|
27
|
+
* @param apiVersion The apiVersion of the resource (e.g., "apps/v1").
|
|
28
|
+
* @param kind The kind of the resource (e.g., "Deployment").
|
|
29
|
+
* @param name The name of the resource.
|
|
30
|
+
* @param namespace The namespace of the resource.
|
|
31
|
+
* @returns The retrieved resource object.
|
|
32
|
+
*/
|
|
33
|
+
get(_apiVersion: string, kind: string, name: string, namespace?: string): Promise<any>;
|
|
34
|
+
/**
|
|
35
|
+
* Deletes a Kubernetes resource.
|
|
36
|
+
* @param apiVersion The apiVersion of the resource (e.g., "apps/v1").
|
|
37
|
+
* @param kind The kind of the resource (e.g., "Deployment").
|
|
38
|
+
* @param name The name of the resource.
|
|
39
|
+
* @param namespace The namespace of the resource.
|
|
40
|
+
*/
|
|
41
|
+
delete(apiVersion: string, kind: string, name: string, namespace?: string): Promise<void>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/core/kubernetes/api.ts"],"names":[],"mappings":"AAmCA;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAAwC;;IAyBtD;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAiCzB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAiChC;;;;OAIG;IACU,KAAK,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsDzD;;;;;;;OAOG;IACU,GAAG,CACd,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,MAAkB,GAC5B,OAAO,CAAC,GAAG,CAAC;IAcf;;;;;;OAMG;IACU,MAAM,CACjB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,MAAkB,GAC5B,OAAO,CAAC,IAAI,CAAC;CAsBjB"}
|