typekro 0.2.2 → 0.3.1
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/README.md +4 -3
- package/dist/.tsbuildinfo +1 -1
- package/dist/core/composition/imperative.d.ts.map +1 -1
- package/dist/core/composition/imperative.js +15 -2
- package/dist/core/composition/imperative.js.map +1 -1
- package/dist/core/composition/typekro-runtime/typekro-runtime.d.ts.map +1 -1
- package/dist/core/composition/typekro-runtime/typekro-runtime.js +24 -25
- package/dist/core/composition/typekro-runtime/typekro-runtime.js.map +1 -1
- package/dist/core/dependencies/type-guards.d.ts.map +1 -1
- package/dist/core/dependencies/type-guards.js +7 -2
- package/dist/core/dependencies/type-guards.js.map +1 -1
- package/dist/core/deployment/engine.d.ts +13 -1
- package/dist/core/deployment/engine.d.ts.map +1 -1
- package/dist/core/deployment/engine.js +48 -3
- package/dist/core/deployment/engine.js.map +1 -1
- package/dist/core/errors.d.ts +85 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +135 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/evaluation/cel-optimizer.d.ts.map +1 -1
- package/dist/core/evaluation/cel-optimizer.js +7 -13
- package/dist/core/evaluation/cel-optimizer.js.map +1 -1
- package/dist/core/expressions/analyzer.d.ts +584 -0
- package/dist/core/expressions/analyzer.d.ts.map +1 -0
- package/dist/core/expressions/analyzer.js +2956 -0
- package/dist/core/expressions/analyzer.js.map +1 -0
- package/dist/core/expressions/cache.d.ts +136 -0
- package/dist/core/expressions/cache.d.ts.map +1 -0
- package/dist/core/expressions/cache.js +347 -0
- package/dist/core/expressions/cache.js.map +1 -0
- package/dist/core/expressions/cel-conversion-engine.d.ts +126 -0
- package/dist/core/expressions/cel-conversion-engine.d.ts.map +1 -0
- package/dist/core/expressions/cel-conversion-engine.js +293 -0
- package/dist/core/expressions/cel-conversion-engine.js.map +1 -0
- package/dist/core/expressions/compile-time-validation.d.ts +270 -0
- package/dist/core/expressions/compile-time-validation.d.ts.map +1 -0
- package/dist/core/expressions/compile-time-validation.js +506 -0
- package/dist/core/expressions/compile-time-validation.js.map +1 -0
- package/dist/core/expressions/composition-integration.d.ts +315 -0
- package/dist/core/expressions/composition-integration.d.ts.map +1 -0
- package/dist/core/expressions/composition-integration.js +936 -0
- package/dist/core/expressions/composition-integration.js.map +1 -0
- package/dist/core/expressions/conditional-expression-processor.d.ts +154 -0
- package/dist/core/expressions/conditional-expression-processor.d.ts.map +1 -0
- package/dist/core/expressions/conditional-expression-processor.js +479 -0
- package/dist/core/expressions/conditional-expression-processor.js.map +1 -0
- package/dist/core/expressions/conditional-integration.d.ts +133 -0
- package/dist/core/expressions/conditional-integration.d.ts.map +1 -0
- package/dist/core/expressions/conditional-integration.js +293 -0
- package/dist/core/expressions/conditional-integration.js.map +1 -0
- package/dist/core/expressions/conditional-validation.d.ts +181 -0
- package/dist/core/expressions/conditional-validation.d.ts.map +1 -0
- package/dist/core/expressions/conditional-validation.js +460 -0
- package/dist/core/expressions/conditional-validation.js.map +1 -0
- package/dist/core/expressions/context-aware-generator.d.ts +127 -0
- package/dist/core/expressions/context-aware-generator.d.ts.map +1 -0
- package/dist/core/expressions/context-aware-generator.js +500 -0
- package/dist/core/expressions/context-aware-generator.js.map +1 -0
- package/dist/core/expressions/context-detector.d.ts +148 -0
- package/dist/core/expressions/context-detector.d.ts.map +1 -0
- package/dist/core/expressions/context-detector.js +546 -0
- package/dist/core/expressions/context-detector.js.map +1 -0
- package/dist/core/expressions/context-switcher.d.ts +185 -0
- package/dist/core/expressions/context-switcher.d.ts.map +1 -0
- package/dist/core/expressions/context-switcher.js +515 -0
- package/dist/core/expressions/context-switcher.js.map +1 -0
- package/dist/core/expressions/context-validator.d.ts +176 -0
- package/dist/core/expressions/context-validator.d.ts.map +1 -0
- package/dist/core/expressions/context-validator.js +452 -0
- package/dist/core/expressions/context-validator.js.map +1 -0
- package/dist/core/expressions/custom-context-manager.d.ts +194 -0
- package/dist/core/expressions/custom-context-manager.d.ts.map +1 -0
- package/dist/core/expressions/custom-context-manager.js +390 -0
- package/dist/core/expressions/custom-context-manager.js.map +1 -0
- package/dist/core/expressions/expression-proxy.d.ts +80 -0
- package/dist/core/expressions/expression-proxy.d.ts.map +1 -0
- package/dist/core/expressions/expression-proxy.js +227 -0
- package/dist/core/expressions/expression-proxy.js.map +1 -0
- package/dist/core/expressions/factory-integration.d.ts +132 -0
- package/dist/core/expressions/factory-integration.d.ts.map +1 -0
- package/dist/core/expressions/factory-integration.js +327 -0
- package/dist/core/expressions/factory-integration.js.map +1 -0
- package/dist/core/expressions/factory-pattern-handler.d.ts +88 -0
- package/dist/core/expressions/factory-pattern-handler.d.ts.map +1 -0
- package/dist/core/expressions/factory-pattern-handler.js +336 -0
- package/dist/core/expressions/factory-pattern-handler.js.map +1 -0
- package/dist/core/expressions/field-hydration-processor.d.ts +188 -0
- package/dist/core/expressions/field-hydration-processor.d.ts.map +1 -0
- package/dist/core/expressions/field-hydration-processor.js +562 -0
- package/dist/core/expressions/field-hydration-processor.js.map +1 -0
- package/dist/core/expressions/imperative-analyzer.d.ts +21 -0
- package/dist/core/expressions/imperative-analyzer.d.ts.map +1 -0
- package/dist/core/expressions/imperative-analyzer.js +457 -0
- package/dist/core/expressions/imperative-analyzer.js.map +1 -0
- package/dist/core/expressions/index.d.ts +54 -0
- package/dist/core/expressions/index.d.ts.map +1 -0
- package/dist/core/expressions/index.js +50 -0
- package/dist/core/expressions/index.js.map +1 -0
- package/dist/core/expressions/lazy-analysis.d.ts +1128 -0
- package/dist/core/expressions/lazy-analysis.d.ts.map +1 -0
- package/dist/core/expressions/lazy-analysis.js +2443 -0
- package/dist/core/expressions/lazy-analysis.js.map +1 -0
- package/dist/core/expressions/magic-assignable-analyzer.d.ts +123 -0
- package/dist/core/expressions/magic-assignable-analyzer.d.ts.map +1 -0
- package/dist/core/expressions/magic-assignable-analyzer.js +352 -0
- package/dist/core/expressions/magic-assignable-analyzer.js.map +1 -0
- package/dist/core/expressions/magic-proxy-analyzer.d.ts +206 -0
- package/dist/core/expressions/magic-proxy-analyzer.d.ts.map +1 -0
- package/dist/core/expressions/magic-proxy-analyzer.js +639 -0
- package/dist/core/expressions/magic-proxy-analyzer.js.map +1 -0
- package/dist/core/expressions/magic-proxy-detector.d.ts +154 -0
- package/dist/core/expressions/magic-proxy-detector.d.ts.map +1 -0
- package/dist/core/expressions/magic-proxy-detector.js +242 -0
- package/dist/core/expressions/magic-proxy-detector.js.map +1 -0
- package/dist/core/expressions/migration-helpers.d.ts +133 -0
- package/dist/core/expressions/migration-helpers.d.ts.map +1 -0
- package/dist/core/expressions/migration-helpers.js +443 -0
- package/dist/core/expressions/migration-helpers.js.map +1 -0
- package/dist/core/expressions/optionality-handler.d.ts +503 -0
- package/dist/core/expressions/optionality-handler.d.ts.map +1 -0
- package/dist/core/expressions/optionality-handler.js +1306 -0
- package/dist/core/expressions/optionality-handler.js.map +1 -0
- package/dist/core/expressions/readiness-integration.d.ts +119 -0
- package/dist/core/expressions/readiness-integration.d.ts.map +1 -0
- package/dist/core/expressions/readiness-integration.js +386 -0
- package/dist/core/expressions/readiness-integration.js.map +1 -0
- package/dist/core/expressions/resource-analyzer.d.ts +486 -0
- package/dist/core/expressions/resource-analyzer.d.ts.map +1 -0
- package/dist/core/expressions/resource-analyzer.js +1086 -0
- package/dist/core/expressions/resource-analyzer.js.map +1 -0
- package/dist/core/expressions/resource-validation.d.ts +187 -0
- package/dist/core/expressions/resource-validation.d.ts.map +1 -0
- package/dist/core/expressions/resource-validation.js +552 -0
- package/dist/core/expressions/resource-validation.js.map +1 -0
- package/dist/core/expressions/runtime-error-mapper.d.ts +138 -0
- package/dist/core/expressions/runtime-error-mapper.d.ts.map +1 -0
- package/dist/core/expressions/runtime-error-mapper.js +412 -0
- package/dist/core/expressions/runtime-error-mapper.js.map +1 -0
- package/dist/core/expressions/source-map.d.ts +168 -0
- package/dist/core/expressions/source-map.d.ts.map +1 -0
- package/dist/core/expressions/source-map.js +350 -0
- package/dist/core/expressions/source-map.js.map +1 -0
- package/dist/core/expressions/status-builder-analyzer.d.ts +353 -0
- package/dist/core/expressions/status-builder-analyzer.d.ts.map +1 -0
- package/dist/core/expressions/status-builder-analyzer.js +1311 -0
- package/dist/core/expressions/status-builder-analyzer.js.map +1 -0
- package/dist/core/expressions/type-inference.d.ts +184 -0
- package/dist/core/expressions/type-inference.d.ts.map +1 -0
- package/dist/core/expressions/type-inference.js +838 -0
- package/dist/core/expressions/type-inference.js.map +1 -0
- package/dist/core/expressions/type-safety.d.ts +203 -0
- package/dist/core/expressions/type-safety.d.ts.map +1 -0
- package/dist/core/expressions/type-safety.js +442 -0
- package/dist/core/expressions/type-safety.js.map +1 -0
- package/dist/core/expressions/types.d.ts +282 -0
- package/dist/core/expressions/types.d.ts.map +1 -0
- package/dist/core/expressions/types.js +8 -0
- package/dist/core/expressions/types.js.map +1 -0
- package/dist/core/kubernetes/client-provider.js +2 -2
- package/dist/core/kubernetes/client-provider.js.map +1 -1
- package/dist/core/references/cel.d.ts +13 -1
- package/dist/core/references/cel.d.ts.map +1 -1
- package/dist/core/references/cel.js +50 -0
- package/dist/core/references/cel.js.map +1 -1
- package/dist/core/references/schema-proxy.d.ts.map +1 -1
- package/dist/core/references/schema-proxy.js +13 -8
- package/dist/core/references/schema-proxy.js.map +1 -1
- package/dist/core/serialization/core.d.ts.map +1 -1
- package/dist/core/serialization/core.js +573 -9
- package/dist/core/serialization/core.js.map +1 -1
- package/dist/core/types/deployment.d.ts +7 -0
- package/dist/core/types/deployment.d.ts.map +1 -1
- package/dist/core/types/deployment.js +7 -0
- package/dist/core/types/deployment.js.map +1 -1
- package/dist/core/types/index.d.ts +1 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js.map +1 -1
- package/dist/core/validation/cel-validator.d.ts.map +1 -1
- package/dist/core/validation/cel-validator.js +4 -8
- package/dist/core/validation/cel-validator.js.map +1 -1
- package/dist/core.d.ts +1 -1
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/dist/factories/helm/helm-release.d.ts.map +1 -1
- package/dist/factories/helm/helm-release.js +0 -5
- package/dist/factories/helm/helm-release.js.map +1 -1
- package/dist/factories/helm/types.d.ts +1 -1
- package/dist/factories/helm/types.d.ts.map +1 -1
- package/dist/factories/index.js +1 -0
- package/dist/factories/index.js.map +1 -1
- package/dist/factories/shared.d.ts.map +1 -1
- package/dist/factories/shared.js +21 -1
- package/dist/factories/shared.js.map +1 -1
- package/dist/factories/simple/index.d.ts +2 -2
- package/dist/factories/simple/index.d.ts.map +1 -1
- package/dist/factories/simple/workloads/deployment.d.ts +3 -3
- package/dist/factories/simple/workloads/deployment.d.ts.map +1 -1
- package/dist/factories/simple/workloads/deployment.js +37 -11
- package/dist/factories/simple/workloads/deployment.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/type-guards.d.ts +6 -0
- package/dist/utils/type-guards.d.ts.map +1 -1
- package/dist/utils/type-guards.js +25 -2
- package/dist/utils/type-guards.js.map +1 -1
- package/package.json +6 -1
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime error mapping utilities for CEL expressions
|
|
3
|
+
* Maps runtime CEL evaluation errors back to original JavaScript expressions
|
|
4
|
+
*/
|
|
5
|
+
import { ConversionError } from '../errors.js';
|
|
6
|
+
import type { SourceMapBuilder, SourceMapEntry } from './source-map.js';
|
|
7
|
+
/**
|
|
8
|
+
* Information about a CEL runtime error
|
|
9
|
+
*/
|
|
10
|
+
export interface CelRuntimeError {
|
|
11
|
+
/** The CEL expression that failed */
|
|
12
|
+
celExpression: string;
|
|
13
|
+
/** The runtime error message */
|
|
14
|
+
errorMessage: string;
|
|
15
|
+
/** Error type/category */
|
|
16
|
+
errorType: 'evaluation' | 'type-mismatch' | 'null-reference' | 'field-not-found' | 'syntax' | 'unknown';
|
|
17
|
+
/** Location in the CEL expression where the error occurred */
|
|
18
|
+
celLocation?: {
|
|
19
|
+
position: number;
|
|
20
|
+
length: number;
|
|
21
|
+
};
|
|
22
|
+
/** Additional context about the error */
|
|
23
|
+
context?: {
|
|
24
|
+
resourceId?: string;
|
|
25
|
+
fieldPath?: string;
|
|
26
|
+
expectedType?: string;
|
|
27
|
+
actualType?: string;
|
|
28
|
+
availableFields?: string[];
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Mapped error information linking CEL runtime errors to original JavaScript
|
|
33
|
+
*/
|
|
34
|
+
export interface MappedRuntimeError {
|
|
35
|
+
/** The original JavaScript expression */
|
|
36
|
+
originalExpression: string;
|
|
37
|
+
/** Source location in the original JavaScript */
|
|
38
|
+
sourceLocation: {
|
|
39
|
+
line: number;
|
|
40
|
+
column: number;
|
|
41
|
+
length: number;
|
|
42
|
+
};
|
|
43
|
+
/** The CEL expression that failed */
|
|
44
|
+
celExpression: string;
|
|
45
|
+
/** The runtime error details */
|
|
46
|
+
runtimeError: CelRuntimeError;
|
|
47
|
+
/** Context where the expression was used */
|
|
48
|
+
context: 'status' | 'resource' | 'condition' | 'readiness';
|
|
49
|
+
/** Suggested fixes for the error */
|
|
50
|
+
suggestions: string[];
|
|
51
|
+
/** Source mapping entry used for the mapping */
|
|
52
|
+
sourceMapping: SourceMapEntry;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Maps CEL runtime errors back to original JavaScript expressions using source maps
|
|
56
|
+
*/
|
|
57
|
+
export declare class CelRuntimeErrorMapper {
|
|
58
|
+
private sourceMap;
|
|
59
|
+
constructor(sourceMap: SourceMapBuilder);
|
|
60
|
+
/**
|
|
61
|
+
* Map a CEL runtime error to the original JavaScript expression
|
|
62
|
+
*/
|
|
63
|
+
mapRuntimeError(celError: CelRuntimeError): MappedRuntimeError | null;
|
|
64
|
+
/**
|
|
65
|
+
* Map multiple CEL runtime errors
|
|
66
|
+
*/
|
|
67
|
+
mapMultipleErrors(celErrors: CelRuntimeError[]): MappedRuntimeError[];
|
|
68
|
+
/**
|
|
69
|
+
* Create a user-friendly error message from a mapped runtime error
|
|
70
|
+
*/
|
|
71
|
+
createUserFriendlyError(mappedError: MappedRuntimeError): ConversionError;
|
|
72
|
+
/**
|
|
73
|
+
* Parse a CEL runtime error from various error formats
|
|
74
|
+
*/
|
|
75
|
+
static parseCelRuntimeError(celExpression: string, error: Error | string | any): CelRuntimeError;
|
|
76
|
+
/**
|
|
77
|
+
* Map CEL error type to ConversionError expression type
|
|
78
|
+
*/
|
|
79
|
+
private static mapErrorTypeToExpressionType;
|
|
80
|
+
/**
|
|
81
|
+
* Categorize the error type based on the error message
|
|
82
|
+
*/
|
|
83
|
+
private static categorizeError;
|
|
84
|
+
/**
|
|
85
|
+
* Extract context information from the error message
|
|
86
|
+
*/
|
|
87
|
+
private static extractErrorContext;
|
|
88
|
+
/**
|
|
89
|
+
* Find the location in the CEL expression where the error occurred
|
|
90
|
+
*/
|
|
91
|
+
private static findErrorLocation;
|
|
92
|
+
/**
|
|
93
|
+
* Generate suggestions for fixing the error
|
|
94
|
+
*/
|
|
95
|
+
private generateSuggestions;
|
|
96
|
+
/**
|
|
97
|
+
* Create a comprehensive error report for debugging
|
|
98
|
+
*/
|
|
99
|
+
createErrorReport(mappedErrors: MappedRuntimeError[]): string;
|
|
100
|
+
/**
|
|
101
|
+
* Get statistics about runtime errors
|
|
102
|
+
*/
|
|
103
|
+
getErrorStatistics(mappedErrors: MappedRuntimeError[]): {
|
|
104
|
+
totalErrors: number;
|
|
105
|
+
errorsByType: Record<string, number>;
|
|
106
|
+
errorsByContext: Record<string, number>;
|
|
107
|
+
mostCommonErrors: Array<{
|
|
108
|
+
type: string;
|
|
109
|
+
count: number;
|
|
110
|
+
}>;
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Utility functions for working with CEL runtime errors
|
|
115
|
+
*/
|
|
116
|
+
export declare class CelRuntimeErrorUtils {
|
|
117
|
+
/**
|
|
118
|
+
* Check if an error is likely a CEL runtime error
|
|
119
|
+
*/
|
|
120
|
+
static isCelRuntimeError(error: any): boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Extract CEL expression from error context
|
|
123
|
+
*/
|
|
124
|
+
static extractCelExpressionFromError(error: any): string | null;
|
|
125
|
+
/**
|
|
126
|
+
* Create a standardized error message format
|
|
127
|
+
*/
|
|
128
|
+
static formatErrorMessage(originalExpression: string, celExpression: string, errorMessage: string, context: string, suggestions: string[]): string;
|
|
129
|
+
/**
|
|
130
|
+
* Check if two runtime errors are similar (same root cause)
|
|
131
|
+
*/
|
|
132
|
+
static areErrorsSimilar(error1: CelRuntimeError, error2: CelRuntimeError): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Group similar errors together
|
|
135
|
+
*/
|
|
136
|
+
static groupSimilarErrors(errors: CelRuntimeError[]): CelRuntimeError[][];
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=runtime-error-mapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-error-mapper.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/runtime-error-mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime error mapping utilities for CEL expressions
|
|
3
|
+
* Maps runtime CEL evaluation errors back to original JavaScript expressions
|
|
4
|
+
*/
|
|
5
|
+
import { ConversionError } from '../errors.js';
|
|
6
|
+
/**
|
|
7
|
+
* Maps CEL runtime errors back to original JavaScript expressions using source maps
|
|
8
|
+
*/
|
|
9
|
+
export class CelRuntimeErrorMapper {
|
|
10
|
+
sourceMap;
|
|
11
|
+
constructor(sourceMap) {
|
|
12
|
+
this.sourceMap = sourceMap;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Map a CEL runtime error to the original JavaScript expression
|
|
16
|
+
*/
|
|
17
|
+
mapRuntimeError(celError) {
|
|
18
|
+
// Find the source mapping for this CEL expression
|
|
19
|
+
const sourceMapping = this.sourceMap.findOriginalExpression(celError.celExpression);
|
|
20
|
+
if (!sourceMapping) {
|
|
21
|
+
// No source mapping found - can't map back to original
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
// Generate suggestions based on the error type and context
|
|
25
|
+
const suggestions = this.generateSuggestions(celError, sourceMapping);
|
|
26
|
+
return {
|
|
27
|
+
originalExpression: sourceMapping.originalExpression,
|
|
28
|
+
sourceLocation: sourceMapping.sourceLocation,
|
|
29
|
+
celExpression: celError.celExpression,
|
|
30
|
+
runtimeError: celError,
|
|
31
|
+
context: sourceMapping.context,
|
|
32
|
+
suggestions,
|
|
33
|
+
sourceMapping,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Map multiple CEL runtime errors
|
|
38
|
+
*/
|
|
39
|
+
mapMultipleErrors(celErrors) {
|
|
40
|
+
const mappedErrors = [];
|
|
41
|
+
for (const celError of celErrors) {
|
|
42
|
+
const mapped = this.mapRuntimeError(celError);
|
|
43
|
+
if (mapped) {
|
|
44
|
+
mappedErrors.push(mapped);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return mappedErrors;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create a user-friendly error message from a mapped runtime error
|
|
51
|
+
*/
|
|
52
|
+
createUserFriendlyError(mappedError) {
|
|
53
|
+
const { originalExpression, sourceLocation, runtimeError, context, suggestions } = mappedError;
|
|
54
|
+
let message = `Runtime error in ${context} expression:\n`;
|
|
55
|
+
message += ` Original: ${originalExpression}\n`;
|
|
56
|
+
message += ` CEL: ${mappedError.celExpression}\n`;
|
|
57
|
+
message += ` Error: ${runtimeError.errorMessage}`;
|
|
58
|
+
// Add context-specific information
|
|
59
|
+
if (runtimeError.context) {
|
|
60
|
+
if (runtimeError.context.resourceId) {
|
|
61
|
+
message += `\n Resource: ${runtimeError.context.resourceId}`;
|
|
62
|
+
}
|
|
63
|
+
if (runtimeError.context.fieldPath) {
|
|
64
|
+
message += `\n Field: ${runtimeError.context.fieldPath}`;
|
|
65
|
+
}
|
|
66
|
+
if (runtimeError.context.expectedType && runtimeError.context.actualType) {
|
|
67
|
+
message += `\n Expected: ${runtimeError.context.expectedType}`;
|
|
68
|
+
message += `\n Actual: ${runtimeError.context.actualType}`;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Map CEL error type to ConversionError expression type
|
|
72
|
+
const expressionType = CelRuntimeErrorMapper.mapErrorTypeToExpressionType(runtimeError.errorType);
|
|
73
|
+
return new ConversionError(message, originalExpression, expressionType, sourceLocation, {
|
|
74
|
+
analysisContext: context,
|
|
75
|
+
...(runtimeError.context?.availableFields && {
|
|
76
|
+
availableReferences: runtimeError.context.availableFields
|
|
77
|
+
}),
|
|
78
|
+
}, suggestions);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Parse a CEL runtime error from various error formats
|
|
82
|
+
*/
|
|
83
|
+
static parseCelRuntimeError(celExpression, error) {
|
|
84
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
85
|
+
// Determine error type from the message
|
|
86
|
+
const errorType = CelRuntimeErrorMapper.categorizeError(errorMessage);
|
|
87
|
+
// Extract context information from the error
|
|
88
|
+
const context = CelRuntimeErrorMapper.extractErrorContext(errorMessage, celExpression);
|
|
89
|
+
// Try to find the location in the CEL expression where the error occurred
|
|
90
|
+
const celLocation = CelRuntimeErrorMapper.findErrorLocation(errorMessage, celExpression);
|
|
91
|
+
const result = {
|
|
92
|
+
celExpression,
|
|
93
|
+
errorMessage,
|
|
94
|
+
errorType,
|
|
95
|
+
};
|
|
96
|
+
if (celLocation) {
|
|
97
|
+
result.celLocation = celLocation;
|
|
98
|
+
}
|
|
99
|
+
if (context) {
|
|
100
|
+
result.context = context;
|
|
101
|
+
}
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Map CEL error type to ConversionError expression type
|
|
106
|
+
*/
|
|
107
|
+
static mapErrorTypeToExpressionType(errorType) {
|
|
108
|
+
switch (errorType) {
|
|
109
|
+
case 'field-not-found':
|
|
110
|
+
return 'member-access';
|
|
111
|
+
case 'type-mismatch':
|
|
112
|
+
return 'binary-operation';
|
|
113
|
+
case 'evaluation':
|
|
114
|
+
return 'function-call';
|
|
115
|
+
case 'syntax':
|
|
116
|
+
return 'javascript';
|
|
117
|
+
case 'null-reference':
|
|
118
|
+
return 'member-access';
|
|
119
|
+
default:
|
|
120
|
+
return 'unknown';
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Categorize the error type based on the error message
|
|
125
|
+
*/
|
|
126
|
+
static categorizeError(errorMessage) {
|
|
127
|
+
const message = errorMessage.toLowerCase();
|
|
128
|
+
if (message.includes('null') || message.includes('undefined')) {
|
|
129
|
+
return 'null-reference';
|
|
130
|
+
}
|
|
131
|
+
if (message.includes('type') || message.includes('expected')) {
|
|
132
|
+
return 'type-mismatch';
|
|
133
|
+
}
|
|
134
|
+
if (message.includes('field') || message.includes('property') || message.includes('not found')) {
|
|
135
|
+
return 'field-not-found';
|
|
136
|
+
}
|
|
137
|
+
if (message.includes('syntax') || message.includes('parse')) {
|
|
138
|
+
return 'syntax';
|
|
139
|
+
}
|
|
140
|
+
if (message.includes('evaluation') || message.includes('runtime')) {
|
|
141
|
+
return 'evaluation';
|
|
142
|
+
}
|
|
143
|
+
return 'unknown';
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Extract context information from the error message
|
|
147
|
+
*/
|
|
148
|
+
static extractErrorContext(errorMessage, celExpression) {
|
|
149
|
+
const context = {};
|
|
150
|
+
// Extract resource ID from CEL expression
|
|
151
|
+
const resourceMatch = celExpression.match(/resources\.(\w+)\./);
|
|
152
|
+
if (resourceMatch?.[1]) {
|
|
153
|
+
context.resourceId = resourceMatch[1];
|
|
154
|
+
}
|
|
155
|
+
// Extract field path from CEL expression
|
|
156
|
+
const fieldMatch = celExpression.match(/\.([a-zA-Z0-9_.]+)$/);
|
|
157
|
+
if (fieldMatch?.[1]) {
|
|
158
|
+
context.fieldPath = fieldMatch[1];
|
|
159
|
+
}
|
|
160
|
+
// Extract type information from error message
|
|
161
|
+
const typeMatch = errorMessage.match(/expected (\w+), got (\w+)/i);
|
|
162
|
+
if (typeMatch?.[1] && typeMatch[2]) {
|
|
163
|
+
context.expectedType = typeMatch[1];
|
|
164
|
+
context.actualType = typeMatch[2];
|
|
165
|
+
}
|
|
166
|
+
return context;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Find the location in the CEL expression where the error occurred
|
|
170
|
+
*/
|
|
171
|
+
static findErrorLocation(errorMessage, celExpression) {
|
|
172
|
+
// Try to extract position information from error message
|
|
173
|
+
const positionMatch = errorMessage.match(/at position (\d+)/i);
|
|
174
|
+
if (positionMatch?.[1]) {
|
|
175
|
+
const position = parseInt(positionMatch[1], 10);
|
|
176
|
+
return {
|
|
177
|
+
position,
|
|
178
|
+
length: 1, // Default length
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
// Try to find the problematic part in the expression
|
|
182
|
+
const fieldMatch = errorMessage.match(/field '(\w+)'/i);
|
|
183
|
+
if (fieldMatch?.[1]) {
|
|
184
|
+
const fieldName = fieldMatch[1];
|
|
185
|
+
const position = celExpression.indexOf(fieldName);
|
|
186
|
+
if (position >= 0) {
|
|
187
|
+
return {
|
|
188
|
+
position,
|
|
189
|
+
length: fieldName.length,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return undefined;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Generate suggestions for fixing the error
|
|
197
|
+
*/
|
|
198
|
+
generateSuggestions(celError, sourceMapping) {
|
|
199
|
+
const suggestions = [];
|
|
200
|
+
switch (celError.errorType) {
|
|
201
|
+
case 'null-reference':
|
|
202
|
+
suggestions.push('Use optional chaining (?.) to handle potentially null values');
|
|
203
|
+
suggestions.push('Add a null check before accessing the field');
|
|
204
|
+
suggestions.push('Provide a default value using the || operator');
|
|
205
|
+
if (celError.context?.resourceId) {
|
|
206
|
+
suggestions.push(`Ensure the '${celError.context.resourceId}' resource is deployed and ready`);
|
|
207
|
+
}
|
|
208
|
+
break;
|
|
209
|
+
case 'field-not-found':
|
|
210
|
+
suggestions.push('Check that the field name is spelled correctly');
|
|
211
|
+
suggestions.push('Verify that the field exists in the resource schema');
|
|
212
|
+
if (celError.context?.availableFields?.length) {
|
|
213
|
+
suggestions.push(`Available fields: ${celError.context.availableFields.join(', ')}`);
|
|
214
|
+
}
|
|
215
|
+
if (celError.context?.resourceId) {
|
|
216
|
+
suggestions.push(`Check the status of the '${celError.context.resourceId}' resource`);
|
|
217
|
+
}
|
|
218
|
+
break;
|
|
219
|
+
case 'type-mismatch':
|
|
220
|
+
if (celError.context?.expectedType && celError.context?.actualType) {
|
|
221
|
+
suggestions.push(`Convert the value from ${celError.context.actualType} to ${celError.context.expectedType}`);
|
|
222
|
+
}
|
|
223
|
+
suggestions.push('Check that the field contains the expected data type');
|
|
224
|
+
suggestions.push('Add type checking or conversion in your expression');
|
|
225
|
+
break;
|
|
226
|
+
case 'evaluation':
|
|
227
|
+
suggestions.push('Check that all referenced resources are available');
|
|
228
|
+
suggestions.push('Verify that the expression logic is correct');
|
|
229
|
+
suggestions.push('Consider simplifying the expression');
|
|
230
|
+
break;
|
|
231
|
+
case 'syntax':
|
|
232
|
+
suggestions.push('Check the CEL expression syntax');
|
|
233
|
+
suggestions.push('Verify that all operators and functions are valid');
|
|
234
|
+
suggestions.push('Consider using simpler JavaScript expressions');
|
|
235
|
+
break;
|
|
236
|
+
default:
|
|
237
|
+
suggestions.push('Check the CEL expression and referenced resources');
|
|
238
|
+
suggestions.push('Verify that all dependencies are available');
|
|
239
|
+
suggestions.push('Consider using optional chaining for potentially missing fields');
|
|
240
|
+
}
|
|
241
|
+
// Add context-specific suggestions
|
|
242
|
+
if (sourceMapping.context === 'status') {
|
|
243
|
+
suggestions.push('Status expressions are evaluated after resource deployment');
|
|
244
|
+
suggestions.push('Ensure all referenced resources are included in your resource graph');
|
|
245
|
+
}
|
|
246
|
+
else if (sourceMapping.context === 'resource') {
|
|
247
|
+
suggestions.push('Resource expressions are evaluated during resource creation');
|
|
248
|
+
suggestions.push('Only reference schema fields or other resources in the same graph');
|
|
249
|
+
}
|
|
250
|
+
return suggestions;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Create a comprehensive error report for debugging
|
|
254
|
+
*/
|
|
255
|
+
createErrorReport(mappedErrors) {
|
|
256
|
+
if (mappedErrors.length === 0) {
|
|
257
|
+
return 'No runtime errors to report.';
|
|
258
|
+
}
|
|
259
|
+
const report = [
|
|
260
|
+
'=== CEL Runtime Error Report ===',
|
|
261
|
+
`Generated: ${new Date().toISOString()}`,
|
|
262
|
+
`Total Errors: ${mappedErrors.length}`,
|
|
263
|
+
'',
|
|
264
|
+
];
|
|
265
|
+
mappedErrors.forEach((error, index) => {
|
|
266
|
+
report.push(`## Error ${index + 1}: ${error.runtimeError.errorType}`);
|
|
267
|
+
report.push('');
|
|
268
|
+
report.push(`**Original Expression**: \`${error.originalExpression}\``);
|
|
269
|
+
report.push(`**CEL Expression**: \`${error.celExpression}\``);
|
|
270
|
+
report.push(`**Context**: ${error.context}`);
|
|
271
|
+
report.push(`**Location**: Line ${error.sourceLocation.line}, Column ${error.sourceLocation.column}`);
|
|
272
|
+
report.push(`**Error Message**: ${error.runtimeError.errorMessage}`);
|
|
273
|
+
if (error.runtimeError.context?.resourceId) {
|
|
274
|
+
report.push(`**Resource**: ${error.runtimeError.context.resourceId}`);
|
|
275
|
+
}
|
|
276
|
+
if (error.runtimeError.context?.fieldPath) {
|
|
277
|
+
report.push(`**Field**: ${error.runtimeError.context.fieldPath}`);
|
|
278
|
+
}
|
|
279
|
+
if (error.suggestions.length > 0) {
|
|
280
|
+
report.push('');
|
|
281
|
+
report.push('**Suggestions**:');
|
|
282
|
+
error.suggestions.forEach(suggestion => {
|
|
283
|
+
report.push(`- ${suggestion}`);
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
report.push('');
|
|
287
|
+
});
|
|
288
|
+
return report.join('\n');
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Get statistics about runtime errors
|
|
292
|
+
*/
|
|
293
|
+
getErrorStatistics(mappedErrors) {
|
|
294
|
+
const errorsByType = {};
|
|
295
|
+
const errorsByContext = {};
|
|
296
|
+
mappedErrors.forEach(error => {
|
|
297
|
+
const type = error.runtimeError.errorType;
|
|
298
|
+
const context = error.context;
|
|
299
|
+
errorsByType[type] = (errorsByType[type] || 0) + 1;
|
|
300
|
+
errorsByContext[context] = (errorsByContext[context] || 0) + 1;
|
|
301
|
+
});
|
|
302
|
+
const mostCommonErrors = Object.entries(errorsByType)
|
|
303
|
+
.map(([type, count]) => ({ type, count }))
|
|
304
|
+
.sort((a, b) => b.count - a.count)
|
|
305
|
+
.slice(0, 5);
|
|
306
|
+
return {
|
|
307
|
+
totalErrors: mappedErrors.length,
|
|
308
|
+
errorsByType,
|
|
309
|
+
errorsByContext,
|
|
310
|
+
mostCommonErrors,
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Utility functions for working with CEL runtime errors
|
|
316
|
+
*/
|
|
317
|
+
export class CelRuntimeErrorUtils {
|
|
318
|
+
/**
|
|
319
|
+
* Check if an error is likely a CEL runtime error
|
|
320
|
+
*/
|
|
321
|
+
static isCelRuntimeError(error) {
|
|
322
|
+
if (!error)
|
|
323
|
+
return false;
|
|
324
|
+
const message = error.message || String(error);
|
|
325
|
+
const celIndicators = [
|
|
326
|
+
'cel',
|
|
327
|
+
'expression',
|
|
328
|
+
'evaluation',
|
|
329
|
+
'resources.',
|
|
330
|
+
'schema.',
|
|
331
|
+
'field not found',
|
|
332
|
+
'type mismatch'
|
|
333
|
+
];
|
|
334
|
+
return celIndicators.some(indicator => message.toLowerCase().includes(indicator));
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Extract CEL expression from error context
|
|
338
|
+
*/
|
|
339
|
+
static extractCelExpressionFromError(error) {
|
|
340
|
+
if (!error)
|
|
341
|
+
return null;
|
|
342
|
+
const message = error.message || String(error);
|
|
343
|
+
// Try to find CEL expression in error message
|
|
344
|
+
const celMatch = message.match(/expression[:\s]+['"`]([^'"`]+)['"`]/i);
|
|
345
|
+
if (celMatch) {
|
|
346
|
+
return celMatch[1];
|
|
347
|
+
}
|
|
348
|
+
// Try to find ${...} patterns
|
|
349
|
+
const templateMatch = message.match(/\$\{([^}]+)\}/);
|
|
350
|
+
if (templateMatch) {
|
|
351
|
+
return templateMatch[1];
|
|
352
|
+
}
|
|
353
|
+
return null;
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Create a standardized error message format
|
|
357
|
+
*/
|
|
358
|
+
static formatErrorMessage(originalExpression, celExpression, errorMessage, context, suggestions) {
|
|
359
|
+
let formatted = `JavaScript to CEL Runtime Error in ${context}:\n`;
|
|
360
|
+
formatted += ` Original: ${originalExpression}\n`;
|
|
361
|
+
formatted += ` CEL: ${celExpression}\n`;
|
|
362
|
+
formatted += ` Error: ${errorMessage}`;
|
|
363
|
+
if (suggestions.length > 0) {
|
|
364
|
+
formatted += '\n\nSuggestions:\n';
|
|
365
|
+
suggestions.forEach((suggestion, index) => {
|
|
366
|
+
formatted += ` ${index + 1}. ${suggestion}\n`;
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
return formatted;
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Check if two runtime errors are similar (same root cause)
|
|
373
|
+
*/
|
|
374
|
+
static areErrorsSimilar(error1, error2) {
|
|
375
|
+
// Same error type and similar expressions
|
|
376
|
+
if (error1.errorType !== error2.errorType) {
|
|
377
|
+
return false;
|
|
378
|
+
}
|
|
379
|
+
// Same resource context
|
|
380
|
+
if (error1.context?.resourceId !== error2.context?.resourceId) {
|
|
381
|
+
return false;
|
|
382
|
+
}
|
|
383
|
+
// Similar error messages (allowing for minor variations)
|
|
384
|
+
const message1 = error1.errorMessage.toLowerCase().replace(/['"]/g, '');
|
|
385
|
+
const message2 = error2.errorMessage.toLowerCase().replace(/['"]/g, '');
|
|
386
|
+
return message1.includes(message2) || message2.includes(message1);
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Group similar errors together
|
|
390
|
+
*/
|
|
391
|
+
static groupSimilarErrors(errors) {
|
|
392
|
+
const groups = [];
|
|
393
|
+
const processed = new Set();
|
|
394
|
+
for (let i = 0; i < errors.length; i++) {
|
|
395
|
+
if (processed.has(i) || !errors[i])
|
|
396
|
+
continue;
|
|
397
|
+
const group = [errors[i]];
|
|
398
|
+
processed.add(i);
|
|
399
|
+
for (let j = i + 1; j < errors.length; j++) {
|
|
400
|
+
if (processed.has(j) || !errors[j])
|
|
401
|
+
continue;
|
|
402
|
+
if (errors[i] && errors[j] && CelRuntimeErrorUtils.areErrorsSimilar(errors[i], errors[j])) {
|
|
403
|
+
group.push(errors[j]);
|
|
404
|
+
processed.add(j);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
groups.push(group.filter(Boolean));
|
|
408
|
+
}
|
|
409
|
+
return groups;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
//# sourceMappingURL=runtime-error-mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-error-mapper.js","sourceRoot":"","sources":["../../../src/core/expressions/runtime-error-mapper.ts"],"names":[],"mappings":"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"}
|