typekro 0.2.2 → 0.3.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/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 +0 -1
- package/dist/core/deployment/engine.d.ts.map +1 -1
- package/dist/core/deployment/engine.js +0 -1
- 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/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 +343 -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 +1301 -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/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 +4 -0
- package/dist/core/types/deployment.d.ts.map +1 -1
- 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.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/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,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source mapping utilities for JavaScript to CEL expression conversion
|
|
3
|
+
* Tracks original expressions and their converted CEL equivalents for debugging
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Represents a single source mapping entry
|
|
7
|
+
*/
|
|
8
|
+
export interface SourceMapEntry {
|
|
9
|
+
/** The original JavaScript expression */
|
|
10
|
+
originalExpression: string;
|
|
11
|
+
/** The converted CEL expression */
|
|
12
|
+
celExpression: string;
|
|
13
|
+
/** Source location in the original code */
|
|
14
|
+
sourceLocation: {
|
|
15
|
+
line: number;
|
|
16
|
+
column: number;
|
|
17
|
+
length: number;
|
|
18
|
+
};
|
|
19
|
+
/** Context where the expression was found */
|
|
20
|
+
context: 'status' | 'resource' | 'condition' | 'readiness';
|
|
21
|
+
/** Unique identifier for this mapping */
|
|
22
|
+
id: string;
|
|
23
|
+
/** Timestamp when the mapping was created */
|
|
24
|
+
timestamp: number;
|
|
25
|
+
/** Additional metadata about the conversion */
|
|
26
|
+
metadata?: {
|
|
27
|
+
expressionType: 'javascript' | 'template-literal' | 'function-call' | 'member-access' | 'binary-operation' | 'conditional' | 'optional-chaining' | 'nullish-coalescing';
|
|
28
|
+
kubernetesRefs?: string[];
|
|
29
|
+
dependencies?: string[];
|
|
30
|
+
conversionNotes?: string[];
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Builds and manages source mappings for expression conversion
|
|
35
|
+
*/
|
|
36
|
+
export declare class SourceMapBuilder {
|
|
37
|
+
private entries;
|
|
38
|
+
private idCounter;
|
|
39
|
+
/**
|
|
40
|
+
* Add a new source mapping entry
|
|
41
|
+
*/
|
|
42
|
+
addMapping(originalExpression: string, celExpression: string, sourceLocation: {
|
|
43
|
+
line: number;
|
|
44
|
+
column: number;
|
|
45
|
+
length: number;
|
|
46
|
+
}, context: 'status' | 'resource' | 'condition' | 'readiness', metadata?: SourceMapEntry['metadata']): string;
|
|
47
|
+
/**
|
|
48
|
+
* Add a mapping with automatic ID generation from expression content
|
|
49
|
+
*/
|
|
50
|
+
addMappingWithAutoId(originalExpression: string, celExpression: string, sourceLocation: {
|
|
51
|
+
line: number;
|
|
52
|
+
column: number;
|
|
53
|
+
length: number;
|
|
54
|
+
}, context: 'status' | 'resource' | 'condition' | 'readiness', metadata?: SourceMapEntry['metadata']): string;
|
|
55
|
+
/**
|
|
56
|
+
* Get all source mapping entries
|
|
57
|
+
*/
|
|
58
|
+
getEntries(): SourceMapEntry[];
|
|
59
|
+
/**
|
|
60
|
+
* Get a specific mapping by ID
|
|
61
|
+
*/
|
|
62
|
+
getMapping(id: string): SourceMapEntry | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Get mappings by context
|
|
65
|
+
*/
|
|
66
|
+
getMappingsByContext(context: 'status' | 'resource' | 'condition' | 'readiness'): SourceMapEntry[];
|
|
67
|
+
/**
|
|
68
|
+
* Get mappings that contain specific KubernetesRef objects
|
|
69
|
+
*/
|
|
70
|
+
getMappingsWithKubernetesRef(resourceId: string): SourceMapEntry[];
|
|
71
|
+
/**
|
|
72
|
+
* Find the original expression for a given CEL expression
|
|
73
|
+
*/
|
|
74
|
+
findOriginalExpression(celExpression: string): SourceMapEntry | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* Find mappings by source location
|
|
77
|
+
*/
|
|
78
|
+
findMappingsByLocation(line: number, column?: number): SourceMapEntry[];
|
|
79
|
+
/**
|
|
80
|
+
* Clear all mappings
|
|
81
|
+
*/
|
|
82
|
+
clear(): void;
|
|
83
|
+
/**
|
|
84
|
+
* Get the total number of mappings
|
|
85
|
+
*/
|
|
86
|
+
size(): number;
|
|
87
|
+
/**
|
|
88
|
+
* Export mappings to a JSON-serializable format
|
|
89
|
+
*/
|
|
90
|
+
export(): SourceMapExport;
|
|
91
|
+
/**
|
|
92
|
+
* Import mappings from a JSON format
|
|
93
|
+
*/
|
|
94
|
+
import(data: SourceMapExport): void;
|
|
95
|
+
/**
|
|
96
|
+
* Merge mappings from another SourceMapBuilder
|
|
97
|
+
*/
|
|
98
|
+
merge(other: SourceMapBuilder): void;
|
|
99
|
+
/**
|
|
100
|
+
* Create a debug report of all mappings
|
|
101
|
+
*/
|
|
102
|
+
createDebugReport(): string;
|
|
103
|
+
/**
|
|
104
|
+
* Get statistics by context
|
|
105
|
+
*/
|
|
106
|
+
private getContextStatistics;
|
|
107
|
+
/**
|
|
108
|
+
* Get statistics by expression type
|
|
109
|
+
*/
|
|
110
|
+
private getExpressionTypeStatistics;
|
|
111
|
+
/**
|
|
112
|
+
* Group entries by context
|
|
113
|
+
*/
|
|
114
|
+
private groupByContext;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Exported source map format
|
|
118
|
+
*/
|
|
119
|
+
export interface SourceMapExport {
|
|
120
|
+
version: string;
|
|
121
|
+
generator: string;
|
|
122
|
+
timestamp: number;
|
|
123
|
+
entries: SourceMapEntry[];
|
|
124
|
+
statistics: {
|
|
125
|
+
totalMappings: number;
|
|
126
|
+
contextBreakdown: Record<string, number>;
|
|
127
|
+
expressionTypeBreakdown: Record<string, number>;
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Utility functions for working with source maps
|
|
132
|
+
*/
|
|
133
|
+
export declare class SourceMapUtils {
|
|
134
|
+
/**
|
|
135
|
+
* Create a source location from AST node location
|
|
136
|
+
*/
|
|
137
|
+
static createSourceLocation(astLocation: {
|
|
138
|
+
start: {
|
|
139
|
+
line: number;
|
|
140
|
+
column: number;
|
|
141
|
+
};
|
|
142
|
+
end: {
|
|
143
|
+
line: number;
|
|
144
|
+
column: number;
|
|
145
|
+
};
|
|
146
|
+
} | undefined, sourceText: string): {
|
|
147
|
+
line: number;
|
|
148
|
+
column: number;
|
|
149
|
+
length: number;
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Extract KubernetesRef paths from an expression
|
|
153
|
+
*/
|
|
154
|
+
static extractKubernetesRefPaths(expression: string): string[];
|
|
155
|
+
/**
|
|
156
|
+
* Determine expression type from AST node type
|
|
157
|
+
*/
|
|
158
|
+
static determineExpressionType(nodeType: string): NonNullable<SourceMapEntry['metadata']>['expressionType'];
|
|
159
|
+
/**
|
|
160
|
+
* Create a formatted error message with source mapping context
|
|
161
|
+
*/
|
|
162
|
+
static createErrorWithSourceMap(error: Error, sourceMap: SourceMapBuilder, celExpression?: string): string;
|
|
163
|
+
/**
|
|
164
|
+
* Validate source map integrity
|
|
165
|
+
*/
|
|
166
|
+
static validateSourceMap(sourceMap: SourceMapBuilder): string[];
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=source-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-map.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/source-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source mapping utilities for JavaScript to CEL expression conversion
|
|
3
|
+
* Tracks original expressions and their converted CEL equivalents for debugging
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Builds and manages source mappings for expression conversion
|
|
7
|
+
*/
|
|
8
|
+
export class SourceMapBuilder {
|
|
9
|
+
entries = [];
|
|
10
|
+
idCounter = 0;
|
|
11
|
+
/**
|
|
12
|
+
* Add a new source mapping entry
|
|
13
|
+
*/
|
|
14
|
+
addMapping(originalExpression, celExpression, sourceLocation, context, metadata) {
|
|
15
|
+
const id = `mapping_${++this.idCounter}`;
|
|
16
|
+
const entry = {
|
|
17
|
+
id,
|
|
18
|
+
originalExpression,
|
|
19
|
+
celExpression,
|
|
20
|
+
sourceLocation,
|
|
21
|
+
context,
|
|
22
|
+
timestamp: Date.now(),
|
|
23
|
+
...(metadata && { metadata }),
|
|
24
|
+
};
|
|
25
|
+
this.entries.push(entry);
|
|
26
|
+
return id;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Add a mapping with automatic ID generation from expression content
|
|
30
|
+
*/
|
|
31
|
+
addMappingWithAutoId(originalExpression, celExpression, sourceLocation, context, metadata) {
|
|
32
|
+
// Generate a more descriptive ID based on content
|
|
33
|
+
const sanitizedExpr = originalExpression
|
|
34
|
+
.replace(/[^a-zA-Z0-9]/g, '_')
|
|
35
|
+
.substring(0, 20);
|
|
36
|
+
const id = `${context}_${sanitizedExpr}_${this.idCounter++}`;
|
|
37
|
+
const entry = {
|
|
38
|
+
id,
|
|
39
|
+
originalExpression,
|
|
40
|
+
celExpression,
|
|
41
|
+
sourceLocation,
|
|
42
|
+
context,
|
|
43
|
+
timestamp: Date.now(),
|
|
44
|
+
...(metadata && { metadata }),
|
|
45
|
+
};
|
|
46
|
+
this.entries.push(entry);
|
|
47
|
+
return id;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get all source mapping entries
|
|
51
|
+
*/
|
|
52
|
+
getEntries() {
|
|
53
|
+
return [...this.entries];
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get a specific mapping by ID
|
|
57
|
+
*/
|
|
58
|
+
getMapping(id) {
|
|
59
|
+
return this.entries.find(entry => entry.id === id);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get mappings by context
|
|
63
|
+
*/
|
|
64
|
+
getMappingsByContext(context) {
|
|
65
|
+
return this.entries.filter(entry => entry.context === context);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get mappings that contain specific KubernetesRef objects
|
|
69
|
+
*/
|
|
70
|
+
getMappingsWithKubernetesRef(resourceId) {
|
|
71
|
+
return this.entries.filter(entry => entry.metadata?.kubernetesRefs?.some(ref => ref.includes(resourceId)));
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Find the original expression for a given CEL expression
|
|
75
|
+
*/
|
|
76
|
+
findOriginalExpression(celExpression) {
|
|
77
|
+
return this.entries.find(entry => entry.celExpression === celExpression);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Find mappings by source location
|
|
81
|
+
*/
|
|
82
|
+
findMappingsByLocation(line, column) {
|
|
83
|
+
return this.entries.filter(entry => {
|
|
84
|
+
if (entry.sourceLocation.line !== line)
|
|
85
|
+
return false;
|
|
86
|
+
if (column !== undefined) {
|
|
87
|
+
const start = entry.sourceLocation.column;
|
|
88
|
+
const end = start + entry.sourceLocation.length;
|
|
89
|
+
return column >= start && column <= end;
|
|
90
|
+
}
|
|
91
|
+
return true;
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Clear all mappings
|
|
96
|
+
*/
|
|
97
|
+
clear() {
|
|
98
|
+
this.entries = [];
|
|
99
|
+
this.idCounter = 0;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Get the total number of mappings
|
|
103
|
+
*/
|
|
104
|
+
size() {
|
|
105
|
+
return this.entries.length;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Export mappings to a JSON-serializable format
|
|
109
|
+
*/
|
|
110
|
+
export() {
|
|
111
|
+
return {
|
|
112
|
+
version: '1.0',
|
|
113
|
+
generator: 'TypeKro JavaScript to CEL Converter',
|
|
114
|
+
timestamp: Date.now(),
|
|
115
|
+
entries: this.entries,
|
|
116
|
+
statistics: {
|
|
117
|
+
totalMappings: this.entries.length,
|
|
118
|
+
contextBreakdown: this.getContextStatistics(),
|
|
119
|
+
expressionTypeBreakdown: this.getExpressionTypeStatistics(),
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Import mappings from a JSON format
|
|
125
|
+
*/
|
|
126
|
+
import(data) {
|
|
127
|
+
if (data.version !== '1.0') {
|
|
128
|
+
throw new Error(`Unsupported source map version: ${data.version}`);
|
|
129
|
+
}
|
|
130
|
+
this.entries = [...data.entries];
|
|
131
|
+
this.idCounter = Math.max(...this.entries.map(e => {
|
|
132
|
+
const match = e.id.match(/(\d+)$/);
|
|
133
|
+
return match?.[1] ? parseInt(match[1], 10) : 0;
|
|
134
|
+
}), 0);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Merge mappings from another SourceMapBuilder
|
|
138
|
+
*/
|
|
139
|
+
merge(other) {
|
|
140
|
+
const otherEntries = other.getEntries();
|
|
141
|
+
// Adjust IDs to avoid conflicts
|
|
142
|
+
const maxId = Math.max(...this.entries.map(e => {
|
|
143
|
+
const match = e.id.match(/(\d+)$/);
|
|
144
|
+
return match?.[1] ? parseInt(match[1], 10) : 0;
|
|
145
|
+
}), 0);
|
|
146
|
+
otherEntries.forEach((entry, index) => {
|
|
147
|
+
const newEntry = {
|
|
148
|
+
...entry,
|
|
149
|
+
id: `merged_${maxId + index + 1}`,
|
|
150
|
+
};
|
|
151
|
+
this.entries.push(newEntry);
|
|
152
|
+
});
|
|
153
|
+
this.idCounter = Math.max(this.idCounter, maxId + otherEntries.length);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Create a debug report of all mappings
|
|
157
|
+
*/
|
|
158
|
+
createDebugReport() {
|
|
159
|
+
const report = [
|
|
160
|
+
'=== JavaScript to CEL Source Map Debug Report ===',
|
|
161
|
+
`Generated: ${new Date().toISOString()}`,
|
|
162
|
+
`Total Mappings: ${this.entries.length}`,
|
|
163
|
+
'',
|
|
164
|
+
];
|
|
165
|
+
// Group by context
|
|
166
|
+
const byContext = this.groupByContext();
|
|
167
|
+
for (const [context, entries] of Object.entries(byContext)) {
|
|
168
|
+
report.push(`## ${context.toUpperCase()} Context (${entries.length} mappings)`);
|
|
169
|
+
report.push('');
|
|
170
|
+
entries.forEach((entry, index) => {
|
|
171
|
+
report.push(`### ${index + 1}. ${entry.id}`);
|
|
172
|
+
report.push(`**Location**: Line ${entry.sourceLocation.line}, Column ${entry.sourceLocation.column}`);
|
|
173
|
+
report.push(`**Original**: \`${entry.originalExpression}\``);
|
|
174
|
+
report.push(`**CEL**: \`${entry.celExpression}\``);
|
|
175
|
+
if (entry.metadata?.expressionType) {
|
|
176
|
+
report.push(`**Type**: ${entry.metadata.expressionType}`);
|
|
177
|
+
}
|
|
178
|
+
if (entry.metadata?.kubernetesRefs?.length) {
|
|
179
|
+
report.push(`**KubernetesRefs**: ${entry.metadata.kubernetesRefs.join(', ')}`);
|
|
180
|
+
}
|
|
181
|
+
if (entry.metadata?.dependencies?.length) {
|
|
182
|
+
report.push(`**Dependencies**: ${entry.metadata.dependencies.join(', ')}`);
|
|
183
|
+
}
|
|
184
|
+
if (entry.metadata?.conversionNotes?.length) {
|
|
185
|
+
report.push(`**Notes**: ${entry.metadata.conversionNotes.join('; ')}`);
|
|
186
|
+
}
|
|
187
|
+
report.push('');
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
// Add statistics
|
|
191
|
+
report.push('## Statistics');
|
|
192
|
+
report.push('');
|
|
193
|
+
const contextStats = this.getContextStatistics();
|
|
194
|
+
report.push('**By Context:**');
|
|
195
|
+
Object.entries(contextStats).forEach(([context, count]) => {
|
|
196
|
+
report.push(`- ${context}: ${count}`);
|
|
197
|
+
});
|
|
198
|
+
const typeStats = this.getExpressionTypeStatistics();
|
|
199
|
+
report.push('');
|
|
200
|
+
report.push('**By Expression Type:**');
|
|
201
|
+
Object.entries(typeStats).forEach(([type, count]) => {
|
|
202
|
+
report.push(`- ${type}: ${count}`);
|
|
203
|
+
});
|
|
204
|
+
return report.join('\n');
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Get statistics by context
|
|
208
|
+
*/
|
|
209
|
+
getContextStatistics() {
|
|
210
|
+
const stats = {};
|
|
211
|
+
this.entries.forEach(entry => {
|
|
212
|
+
stats[entry.context] = (stats[entry.context] || 0) + 1;
|
|
213
|
+
});
|
|
214
|
+
return stats;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Get statistics by expression type
|
|
218
|
+
*/
|
|
219
|
+
getExpressionTypeStatistics() {
|
|
220
|
+
const stats = {};
|
|
221
|
+
this.entries.forEach(entry => {
|
|
222
|
+
const type = entry.metadata?.expressionType || 'unknown';
|
|
223
|
+
stats[type] = (stats[type] || 0) + 1;
|
|
224
|
+
});
|
|
225
|
+
return stats;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Group entries by context
|
|
229
|
+
*/
|
|
230
|
+
groupByContext() {
|
|
231
|
+
const groups = {};
|
|
232
|
+
this.entries.forEach(entry => {
|
|
233
|
+
if (!groups[entry.context]) {
|
|
234
|
+
groups[entry.context] = [];
|
|
235
|
+
}
|
|
236
|
+
groups[entry.context]?.push(entry);
|
|
237
|
+
});
|
|
238
|
+
return groups;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Utility functions for working with source maps
|
|
243
|
+
*/
|
|
244
|
+
export class SourceMapUtils {
|
|
245
|
+
/**
|
|
246
|
+
* Create a source location from AST node location
|
|
247
|
+
*/
|
|
248
|
+
static createSourceLocation(astLocation, sourceText) {
|
|
249
|
+
if (!astLocation) {
|
|
250
|
+
return { line: 1, column: 1, length: sourceText.length };
|
|
251
|
+
}
|
|
252
|
+
const length = astLocation.end.line === astLocation.start.line
|
|
253
|
+
? astLocation.end.column - astLocation.start.column
|
|
254
|
+
: sourceText.length; // Multi-line expressions use full length
|
|
255
|
+
return {
|
|
256
|
+
line: astLocation.start.line,
|
|
257
|
+
column: astLocation.start.column,
|
|
258
|
+
length,
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Extract KubernetesRef paths from an expression
|
|
263
|
+
*/
|
|
264
|
+
static extractKubernetesRefPaths(expression) {
|
|
265
|
+
const refs = [];
|
|
266
|
+
// Match patterns like resources.deployment.status.field or schema.spec.field
|
|
267
|
+
const resourcePattern = /(?:resources|schema)\.[\w.]+/g;
|
|
268
|
+
const matches = expression.match(resourcePattern);
|
|
269
|
+
if (matches) {
|
|
270
|
+
refs.push(...matches);
|
|
271
|
+
}
|
|
272
|
+
return refs;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Determine expression type from AST node type
|
|
276
|
+
*/
|
|
277
|
+
static determineExpressionType(nodeType) {
|
|
278
|
+
switch (nodeType) {
|
|
279
|
+
case 'BinaryExpression':
|
|
280
|
+
return 'binary-operation';
|
|
281
|
+
case 'MemberExpression':
|
|
282
|
+
return 'member-access';
|
|
283
|
+
case 'ConditionalExpression':
|
|
284
|
+
return 'conditional';
|
|
285
|
+
case 'TemplateLiteral':
|
|
286
|
+
return 'template-literal';
|
|
287
|
+
case 'CallExpression':
|
|
288
|
+
return 'function-call';
|
|
289
|
+
default:
|
|
290
|
+
return 'javascript';
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Create a formatted error message with source mapping context
|
|
295
|
+
*/
|
|
296
|
+
static createErrorWithSourceMap(error, sourceMap, celExpression) {
|
|
297
|
+
let message = error.message;
|
|
298
|
+
if (celExpression) {
|
|
299
|
+
const mapping = sourceMap.findOriginalExpression(celExpression);
|
|
300
|
+
if (mapping) {
|
|
301
|
+
message += `\n\nSource Mapping:`;
|
|
302
|
+
message += `\n Original: ${mapping.originalExpression}`;
|
|
303
|
+
message += `\n Location: Line ${mapping.sourceLocation.line}, Column ${mapping.sourceLocation.column}`;
|
|
304
|
+
message += `\n Context: ${mapping.context}`;
|
|
305
|
+
if (mapping.metadata?.expressionType) {
|
|
306
|
+
message += `\n Type: ${mapping.metadata.expressionType}`;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
return message;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Validate source map integrity
|
|
314
|
+
*/
|
|
315
|
+
static validateSourceMap(sourceMap) {
|
|
316
|
+
const issues = [];
|
|
317
|
+
const entries = sourceMap.getEntries();
|
|
318
|
+
// Check for duplicate IDs
|
|
319
|
+
const ids = new Set();
|
|
320
|
+
entries.forEach(entry => {
|
|
321
|
+
if (ids.has(entry.id)) {
|
|
322
|
+
issues.push(`Duplicate mapping ID: ${entry.id}`);
|
|
323
|
+
}
|
|
324
|
+
ids.add(entry.id);
|
|
325
|
+
});
|
|
326
|
+
// Check for invalid source locations
|
|
327
|
+
entries.forEach(entry => {
|
|
328
|
+
if (entry.sourceLocation.line < 1) {
|
|
329
|
+
issues.push(`Invalid line number in mapping ${entry.id}: ${entry.sourceLocation.line}`);
|
|
330
|
+
}
|
|
331
|
+
if (entry.sourceLocation.column < 0) {
|
|
332
|
+
issues.push(`Invalid column number in mapping ${entry.id}: ${entry.sourceLocation.column}`);
|
|
333
|
+
}
|
|
334
|
+
if (entry.sourceLocation.length < 0) {
|
|
335
|
+
issues.push(`Invalid length in mapping ${entry.id}: ${entry.sourceLocation.length}`);
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
// Check for empty expressions
|
|
339
|
+
entries.forEach(entry => {
|
|
340
|
+
if (!entry.originalExpression.trim()) {
|
|
341
|
+
issues.push(`Empty original expression in mapping ${entry.id}`);
|
|
342
|
+
}
|
|
343
|
+
if (!entry.celExpression.trim()) {
|
|
344
|
+
issues.push(`Empty CEL expression in mapping ${entry.id}`);
|
|
345
|
+
}
|
|
346
|
+
});
|
|
347
|
+
return issues;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
//# sourceMappingURL=source-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-map.js","sourceRoot":"","sources":["../../../src/core/expressions/source-map.ts"],"names":[],"mappings":"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"}
|