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,343 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Imperative Composition Analyzer
|
|
3
|
+
*
|
|
4
|
+
* This module analyzes imperative composition functions to detect JavaScript expressions
|
|
5
|
+
* that contain KubernetesRef objects and converts them to CEL expressions.
|
|
6
|
+
*/
|
|
7
|
+
import { Parser } from 'acorn';
|
|
8
|
+
import * as estraverse from 'estraverse';
|
|
9
|
+
import { Cel } from '../references/cel.js';
|
|
10
|
+
import { getComponentLogger } from '../logging/index.js';
|
|
11
|
+
const logger = getComponentLogger('imperative-analyzer');
|
|
12
|
+
/**
|
|
13
|
+
* Analyze an imperative composition function to detect JavaScript expressions
|
|
14
|
+
* that should be converted to CEL expressions.
|
|
15
|
+
*/
|
|
16
|
+
export function analyzeImperativeComposition(compositionFn, resources, options) {
|
|
17
|
+
logger.debug('Analyzing imperative composition function', {
|
|
18
|
+
resourceCount: Object.keys(resources).length,
|
|
19
|
+
factoryType: options.factoryType,
|
|
20
|
+
resourceIds: Object.keys(resources)
|
|
21
|
+
});
|
|
22
|
+
try {
|
|
23
|
+
// Parse the composition function source code
|
|
24
|
+
const functionSource = compositionFn.toString();
|
|
25
|
+
logger.debug('Parsing composition function source', {
|
|
26
|
+
sourceLength: functionSource.length,
|
|
27
|
+
functionSource: functionSource.substring(0, 500) + (functionSource.length > 500 ? '...' : '')
|
|
28
|
+
});
|
|
29
|
+
const ast = Parser.parse(functionSource, {
|
|
30
|
+
ecmaVersion: 2022,
|
|
31
|
+
sourceType: 'script',
|
|
32
|
+
locations: true,
|
|
33
|
+
ranges: true
|
|
34
|
+
});
|
|
35
|
+
// Find the return statement in the composition function
|
|
36
|
+
const returnStatement = findReturnStatement(ast);
|
|
37
|
+
if (!returnStatement || !returnStatement.argument) {
|
|
38
|
+
logger.debug('No return statement found in composition function');
|
|
39
|
+
return {
|
|
40
|
+
statusMappings: {},
|
|
41
|
+
hasJavaScriptExpressions: false,
|
|
42
|
+
errors: ['No return statement found in composition function']
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// Check if the return statement returns an object literal
|
|
46
|
+
if (returnStatement.argument.type !== 'ObjectExpression') {
|
|
47
|
+
logger.debug('Return statement does not return an object literal');
|
|
48
|
+
return {
|
|
49
|
+
statusMappings: {},
|
|
50
|
+
hasJavaScriptExpressions: false,
|
|
51
|
+
errors: ['Return statement must return an object literal']
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
// Analyze each property in the returned object
|
|
55
|
+
const statusMappings = {};
|
|
56
|
+
const errors = [];
|
|
57
|
+
let hasJavaScriptExpressions = false;
|
|
58
|
+
// Process properties recursively to handle nested objects
|
|
59
|
+
function processProperties(properties, parentPath = '') {
|
|
60
|
+
for (const property of properties) {
|
|
61
|
+
if (property.type === 'Property' && property.key.type === 'Identifier') {
|
|
62
|
+
const fieldName = property.key.name;
|
|
63
|
+
const fullFieldName = parentPath ? `${parentPath}.${fieldName}` : fieldName;
|
|
64
|
+
try {
|
|
65
|
+
// Check if this is a nested object
|
|
66
|
+
if (property.value.type === 'ObjectExpression') {
|
|
67
|
+
logger.debug('Found nested object property', { fieldName, fullFieldName });
|
|
68
|
+
// Create nested object in statusMappings
|
|
69
|
+
if (parentPath) {
|
|
70
|
+
// Navigate to the parent object and create the nested structure
|
|
71
|
+
const pathParts = parentPath.split('.');
|
|
72
|
+
let current = statusMappings;
|
|
73
|
+
for (const part of pathParts) {
|
|
74
|
+
if (!current[part])
|
|
75
|
+
current[part] = {};
|
|
76
|
+
current = current[part];
|
|
77
|
+
}
|
|
78
|
+
if (!current[fieldName])
|
|
79
|
+
current[fieldName] = {};
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
if (!statusMappings[fieldName])
|
|
83
|
+
statusMappings[fieldName] = {};
|
|
84
|
+
}
|
|
85
|
+
// Recursively process nested properties
|
|
86
|
+
processProperties(property.value.properties, fullFieldName);
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
// Convert the property value to source code
|
|
90
|
+
const propertySource = getNodeSource(property.value, functionSource);
|
|
91
|
+
logger.debug('Analyzing property', {
|
|
92
|
+
fieldName,
|
|
93
|
+
fullFieldName,
|
|
94
|
+
propertySource: propertySource.substring(0, 100) + (propertySource.length > 100 ? '...' : '')
|
|
95
|
+
});
|
|
96
|
+
// Check if this expression contains resource references
|
|
97
|
+
if (containsResourceReferences(propertySource)) {
|
|
98
|
+
logger.debug('Found resource references in property', { fieldName, fullFieldName, propertySource });
|
|
99
|
+
// Convert resource references to proper format for CEL
|
|
100
|
+
const convertedSource = convertResourceReferencesToCel(propertySource, resources);
|
|
101
|
+
logger.debug('Converted resource references', {
|
|
102
|
+
fieldName,
|
|
103
|
+
fullFieldName,
|
|
104
|
+
originalSource: propertySource.substring(0, 100),
|
|
105
|
+
convertedSource: convertedSource.substring(0, 100)
|
|
106
|
+
});
|
|
107
|
+
// For imperative compositions, create CEL expressions directly from the converted source
|
|
108
|
+
const celExpression = Cel.expr(convertedSource);
|
|
109
|
+
// Set the CEL expression at the correct nested path
|
|
110
|
+
if (parentPath) {
|
|
111
|
+
const pathParts = parentPath.split('.');
|
|
112
|
+
let current = statusMappings;
|
|
113
|
+
for (const part of pathParts) {
|
|
114
|
+
if (!current[part])
|
|
115
|
+
current[part] = {};
|
|
116
|
+
current = current[part];
|
|
117
|
+
}
|
|
118
|
+
current[fieldName] = celExpression;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
statusMappings[fieldName] = celExpression;
|
|
122
|
+
}
|
|
123
|
+
hasJavaScriptExpressions = true;
|
|
124
|
+
logger.debug('Created direct CEL expression for property', {
|
|
125
|
+
fieldName,
|
|
126
|
+
fullFieldName,
|
|
127
|
+
expression: convertedSource
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
// No resource references, keep as static value
|
|
132
|
+
const staticValue = evaluateStaticExpression(property.value);
|
|
133
|
+
// Set the static value at the correct nested path
|
|
134
|
+
if (parentPath) {
|
|
135
|
+
const pathParts = parentPath.split('.');
|
|
136
|
+
let current = statusMappings;
|
|
137
|
+
for (const part of pathParts) {
|
|
138
|
+
if (!current[part])
|
|
139
|
+
current[part] = {};
|
|
140
|
+
current = current[part];
|
|
141
|
+
}
|
|
142
|
+
current[fieldName] = staticValue;
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
statusMappings[fieldName] = staticValue;
|
|
146
|
+
}
|
|
147
|
+
logger.debug('Property has no resource references, keeping as static', { fieldName, fullFieldName });
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
const errorMessage = `Failed to analyze property '${fullFieldName}': ${error instanceof Error ? error.message : String(error)}`;
|
|
152
|
+
errors.push(errorMessage);
|
|
153
|
+
logger.debug('Property analysis failed', { fieldName, fullFieldName, error: errorMessage });
|
|
154
|
+
// Fallback to static evaluation
|
|
155
|
+
try {
|
|
156
|
+
const staticValue = evaluateStaticExpression(property.value);
|
|
157
|
+
if (parentPath) {
|
|
158
|
+
const pathParts = parentPath.split('.');
|
|
159
|
+
let current = statusMappings;
|
|
160
|
+
for (const part of pathParts) {
|
|
161
|
+
if (!current[part])
|
|
162
|
+
current[part] = {};
|
|
163
|
+
current = current[part];
|
|
164
|
+
}
|
|
165
|
+
current[fieldName] = staticValue;
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
statusMappings[fieldName] = staticValue;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
catch (_evalError) {
|
|
172
|
+
if (parentPath) {
|
|
173
|
+
const pathParts = parentPath.split('.');
|
|
174
|
+
let current = statusMappings;
|
|
175
|
+
for (const part of pathParts) {
|
|
176
|
+
if (!current[part])
|
|
177
|
+
current[part] = {};
|
|
178
|
+
current = current[part];
|
|
179
|
+
}
|
|
180
|
+
current[fieldName] = null;
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
statusMappings[fieldName] = null;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
// Start processing from the top-level properties
|
|
191
|
+
processProperties(returnStatement.argument.properties);
|
|
192
|
+
logger.debug('Imperative composition analysis complete', {
|
|
193
|
+
statusFieldCount: Object.keys(statusMappings).length,
|
|
194
|
+
hasJavaScriptExpressions,
|
|
195
|
+
errorCount: errors.length
|
|
196
|
+
});
|
|
197
|
+
return {
|
|
198
|
+
statusMappings,
|
|
199
|
+
hasJavaScriptExpressions,
|
|
200
|
+
errors
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
catch (error) {
|
|
204
|
+
const errorMessage = `Failed to analyze imperative composition: ${error instanceof Error ? error.message : String(error)}`;
|
|
205
|
+
logger.error('Imperative composition analysis failed', error);
|
|
206
|
+
return {
|
|
207
|
+
statusMappings: {},
|
|
208
|
+
hasJavaScriptExpressions: false,
|
|
209
|
+
errors: [errorMessage]
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Find the return statement in an AST
|
|
215
|
+
*/
|
|
216
|
+
function findReturnStatement(ast) {
|
|
217
|
+
let returnStatement = null;
|
|
218
|
+
estraverse.traverse(ast, {
|
|
219
|
+
enter: (node) => {
|
|
220
|
+
if (node.type === 'ReturnStatement') {
|
|
221
|
+
returnStatement = node;
|
|
222
|
+
return estraverse.VisitorOption.Break;
|
|
223
|
+
}
|
|
224
|
+
// Continue normal traversal
|
|
225
|
+
return undefined;
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
return returnStatement;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Extract source code for a specific AST node
|
|
232
|
+
*/
|
|
233
|
+
function getNodeSource(node, fullSource) {
|
|
234
|
+
if (node.range) {
|
|
235
|
+
return fullSource.substring(node.range[0], node.range[1]);
|
|
236
|
+
}
|
|
237
|
+
// Fallback: try to reconstruct the source
|
|
238
|
+
switch (node.type) {
|
|
239
|
+
case 'Literal':
|
|
240
|
+
return typeof node.value === 'string' ? `"${node.value}"` : String(node.value);
|
|
241
|
+
case 'Identifier':
|
|
242
|
+
return node.name;
|
|
243
|
+
case 'BinaryExpression':
|
|
244
|
+
return `${getNodeSource(node.left, fullSource)} ${node.operator} ${getNodeSource(node.right, fullSource)}`;
|
|
245
|
+
case 'ConditionalExpression':
|
|
246
|
+
return `${getNodeSource(node.test, fullSource)} ? ${getNodeSource(node.consequent, fullSource)} : ${getNodeSource(node.alternate, fullSource)}`;
|
|
247
|
+
case 'LogicalExpression':
|
|
248
|
+
return `${getNodeSource(node.left, fullSource)} ${node.operator} ${getNodeSource(node.right, fullSource)}`;
|
|
249
|
+
case 'MemberExpression': {
|
|
250
|
+
const object = getNodeSource(node.object, fullSource);
|
|
251
|
+
const property = node.computed ? `[${getNodeSource(node.property, fullSource)}]` : `.${node.property.name}`;
|
|
252
|
+
return object + property;
|
|
253
|
+
}
|
|
254
|
+
case 'ObjectExpression': {
|
|
255
|
+
const properties = node.properties.map((prop) => {
|
|
256
|
+
const key = prop.key.name || prop.key.value;
|
|
257
|
+
const value = getNodeSource(prop.value, fullSource);
|
|
258
|
+
return `${key}: ${value}`;
|
|
259
|
+
}).join(', ');
|
|
260
|
+
return `{ ${properties} }`;
|
|
261
|
+
}
|
|
262
|
+
default:
|
|
263
|
+
return '<unknown>';
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Check if a source string contains resource references
|
|
268
|
+
*/
|
|
269
|
+
function containsResourceReferences(source) {
|
|
270
|
+
// Look for patterns like:
|
|
271
|
+
// - kroHelmRelease.status.phase
|
|
272
|
+
// - fluxHelmRelease.status.phase
|
|
273
|
+
// - variableName.status.something
|
|
274
|
+
// - variableName.metadata.something
|
|
275
|
+
const resourceReferencePatterns = [
|
|
276
|
+
/\w+\.status\./,
|
|
277
|
+
/\w+\.metadata\./,
|
|
278
|
+
/\w+\.spec\./,
|
|
279
|
+
/\w+\.data\./
|
|
280
|
+
];
|
|
281
|
+
return resourceReferencePatterns.some(pattern => pattern.test(source));
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Convert resource references in source code to proper CEL format
|
|
285
|
+
*
|
|
286
|
+
* The key insight is that we need to map JavaScript variable names to actual resource IDs.
|
|
287
|
+
* For example, if the source code has `deployment1.status.readyReplicas` but the resource
|
|
288
|
+
* was created with `id: 'apiDeployment'`, we need to convert it to `apiDeployment.status.readyReplicas`.
|
|
289
|
+
*/
|
|
290
|
+
function convertResourceReferencesToCel(source, resources) {
|
|
291
|
+
const convertedSource = source;
|
|
292
|
+
// The issue is that the resources parameter contains resources keyed by their IDs,
|
|
293
|
+
// but the source code contains variable names. We need to create a mapping.
|
|
294
|
+
// For now, let's try a different approach: instead of trying to map variable names to resource IDs,
|
|
295
|
+
// let's assume that the source code already contains the correct resource IDs.
|
|
296
|
+
// This works for cases where the CEL expressions are created properly during execution.
|
|
297
|
+
// Get all resource IDs
|
|
298
|
+
const resourceIds = Object.keys(resources);
|
|
299
|
+
// Sort by length (longest first) to avoid partial matches
|
|
300
|
+
resourceIds.sort((a, b) => b.length - a.length);
|
|
301
|
+
for (const resourceId of resourceIds) {
|
|
302
|
+
// The CEL expressions should already be in the correct format
|
|
303
|
+
// Just validate that the resource references are properly formatted
|
|
304
|
+
const _resourcePattern = new RegExp(`\\b${resourceId}\\.(status|metadata|spec|data)\\b`, 'g');
|
|
305
|
+
// The pattern should exist if the source is already in correct format
|
|
306
|
+
}
|
|
307
|
+
// For the specific case where we have variable names that don't match resource IDs,
|
|
308
|
+
// we need a more sophisticated approach. But for now, return the source as-is
|
|
309
|
+
// since the real fix should be in how the KubernetesRef objects are created.
|
|
310
|
+
return convertedSource;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Evaluate a static expression (no resource references)
|
|
314
|
+
*/
|
|
315
|
+
function evaluateStaticExpression(node) {
|
|
316
|
+
switch (node.type) {
|
|
317
|
+
case 'Literal':
|
|
318
|
+
return node.value;
|
|
319
|
+
case 'Identifier':
|
|
320
|
+
// For identifiers, we can't evaluate them statically
|
|
321
|
+
return node.name;
|
|
322
|
+
case 'BinaryExpression':
|
|
323
|
+
// For binary expressions with literals, we could evaluate them
|
|
324
|
+
// But for safety, just return a placeholder
|
|
325
|
+
return null;
|
|
326
|
+
case 'ConditionalExpression':
|
|
327
|
+
return null;
|
|
328
|
+
case 'LogicalExpression':
|
|
329
|
+
return null;
|
|
330
|
+
case 'ObjectExpression': {
|
|
331
|
+
const obj = {};
|
|
332
|
+
for (const prop of node.properties) {
|
|
333
|
+
if (prop.type === 'Property' && prop.key.type === 'Identifier') {
|
|
334
|
+
obj[prop.key.name] = evaluateStaticExpression(prop.value);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
return obj;
|
|
338
|
+
}
|
|
339
|
+
default:
|
|
340
|
+
return null;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
//# sourceMappingURL=imperative-analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imperative-analyzer.js","sourceRoot":"","sources":["../../../src/core/expressions/imperative-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JavaScript to CEL Expression Analysis and Type Safety Integration
|
|
3
|
+
*
|
|
4
|
+
* This module provides comprehensive type safety integration for JavaScript
|
|
5
|
+
* to CEL expression conversion, including compile-time validation, runtime
|
|
6
|
+
* type inference, and resource reference validation.
|
|
7
|
+
*/
|
|
8
|
+
export { JavaScriptToCelAnalyzer } from './analyzer.js';
|
|
9
|
+
export type { AnalysisContext, ExpressionValidationReport, ValidationSummary } from './analyzer.js';
|
|
10
|
+
export { ExpressionTypeValidator, TypeRegistry, TypeSafetyUtils, TypeValidationError, TypeValidationWarning } from './type-safety.js';
|
|
11
|
+
export type { TypeInfo, TypeValidationResult } from './type-safety.js';
|
|
12
|
+
export { CelTypeInferenceEngine, TypeInferenceError, TypeInferenceWarning } from './type-inference.js';
|
|
13
|
+
export type { CelTypeInferenceResult, TypeInferenceContext, TypeInferenceMetadata } from './type-inference.js';
|
|
14
|
+
export { ResourceReferenceValidator, ResourceValidationError, ResourceValidationWarning } from './resource-validation.js';
|
|
15
|
+
export type { ResourceValidationResult, ResourceValidationMetadata, ValidationContext } from './resource-validation.js';
|
|
16
|
+
export { CompileTimeTypeChecker, CompileTimeError, CompileTimeWarning } from './compile-time-validation.js';
|
|
17
|
+
export type { CompileTimeValidationResult, CompileTimeTypeInfo, CompileTimeValidationContext, TypeCompatibilityIssue } from './compile-time-validation.js';
|
|
18
|
+
export { DirectFactoryExpressionHandler, KroFactoryExpressionHandler, FactoryPatternHandlerFactory, handleExpressionWithFactoryPattern } from './factory-pattern-handler.js';
|
|
19
|
+
export type { FactoryPatternType, FactoryExpressionHandler } from './factory-pattern-handler.js';
|
|
20
|
+
export { SourceMapBuilder, SourceMapUtils } from './source-map.js';
|
|
21
|
+
export type { SourceMapEntry } from './source-map.js';
|
|
22
|
+
export { CelRuntimeErrorMapper, CelRuntimeErrorUtils } from './runtime-error-mapper.js';
|
|
23
|
+
export type { CelRuntimeError, MappedRuntimeError } from './runtime-error-mapper.js';
|
|
24
|
+
export { MagicAssignableAnalyzer, analyzeMagicAssignable, analyzeMagicAssignableShape } from './magic-assignable-analyzer.js';
|
|
25
|
+
export type { ProcessedMagicAssignable, ProcessedMagicAssignableShape, MagicAssignableAnalysisOptions } from './magic-assignable-analyzer.js';
|
|
26
|
+
export { ExpressionCache, globalExpressionCache } from './cache.js';
|
|
27
|
+
export type { CacheStats, CacheOptions } from './cache.js';
|
|
28
|
+
export { EnhancedTypeOptionalityHandler, analyzeOptionalityRequirements, generateNullSafeCelExpression, handleOptionalChainingWithEnhancedTypes, generateCelWithHasChecks, detectNullSafetyRequirements, integrateWithFieldHydrationTiming, handleUndefinedToDefinedTransitions } from './optionality-handler.js';
|
|
29
|
+
export type { OptionalityAnalysisResult, FieldHydrationState, OptionalityContext, OptionalityHandlingOptions, OptionalChainingPattern, EnhancedTypeFieldInfo, HydrationStateAnalysis, HydrationTransitionPlan, HydrationPhase, HydrationTransitionHandler, HydrationState, UndefinedToDefinedTransitionResult } from './optionality-handler.js';
|
|
30
|
+
export { StatusBuilderAnalyzer, analyzeStatusBuilder, analyzeStatusBuilderForToResourceGraph, analyzeReturnObjectWithMagicProxy, generateStatusContextCel } from './status-builder-analyzer.js';
|
|
31
|
+
export type { StatusBuilderFunction, StatusFieldAnalysisResult, StatusBuilderAnalysisResult, ReturnStatementAnalysis, PropertyAnalysis, StatusBuilderAnalysisOptions, StatusFieldHandlingInfo, StatusHandlingStrategy, StatusFieldCategory, FieldAvailabilityEstimate } from './status-builder-analyzer.js';
|
|
32
|
+
export { ResourceAnalyzer, DependencyTracker, ResourceTypeValidator, analyzeResourceConfig, analyzeFactoryResourceConfig } from './resource-analyzer.js';
|
|
33
|
+
export type { ResourceAnalysisContext, ResourceAnalysisResult, ResourceTypeValidationResult, DependencyInfo, DependencyGraph, DependencyTrackingOptions, CircularDependencyAnalysis, CircularChainAnalysis, CircularDependencyRecommendation, ResourceTypeValidationContext, ResourceTypeInfo, SchemaValidator, SchemaFieldValidationResult, FieldPathValidationResult, TypeCompatibilityValidationResult } from './resource-analyzer.js';
|
|
34
|
+
export { ExpressionContextDetector, contextDetector } from './context-detector.js';
|
|
35
|
+
export type { ExpressionContext, ContextDetectionResult, CelGenerationStrategy, ContextMetadata, ContextDetectionConfig } from './context-detector.js';
|
|
36
|
+
export { LazyAnalyzedExpression, LazyExpressionCollection, OnDemandExpressionAnalyzer, ExpressionTreeAnalyzer, LazyExpressionTreeLoader, MagicProxyLazyIntegration, MemoryOptimizedExpressionManager, ParallelExpressionAnalyzer, ExpressionAnalysisProfiler, OptimizedKubernetesRefDetector, OptimizedExpressionTraverser, ExpressionComplexityAnalyzer, TraversalAction, createLazyExpression, createLazyCollection, shouldUseLazyAnalysis, globalOnDemandAnalyzer, globalTreeAnalyzer, globalLazyTreeLoader, globalMagicProxyIntegration, globalMemoryOptimizedManager, globalParallelAnalyzer, globalExpressionProfiler, globalOptimizedDetector, globalOptimizedTraverser, globalComplexityAnalyzer } from './lazy-analysis.js';
|
|
37
|
+
export type { LazyCollectionStats, ExpressionTreeResult, ExpressionTreeStats, LazyProxyOptions, LazyTreeLoaderStats, MagicProxyIntegrationStats, MemoryOptimizationOptions, MemoryStats, MemoryCleanupResult, ParallelAnalysisStats, AdvancedParallelAnalysisStats, AdaptiveAnalysisOptions, PerformanceProfile, PerformanceStats, TraversalContext, TraversalOptions, TraversalResult, ComplexityThresholds, ComplexityLevel, MemoryImpact, ComplexityMetrics, ComplexityWarning, ComplexityAnalysisResult, ComplexityStats } from './lazy-analysis.js';
|
|
38
|
+
export { ContextAwareCelGenerator, CelGenerationUtils, contextAwareCelGenerator } from './context-aware-generator.js';
|
|
39
|
+
export type { CelGenerationConfig, CelGenerationResult, CelGenerationDebugInfo } from './context-aware-generator.js';
|
|
40
|
+
export { ContextExpressionValidator, ContextValidationUtils, contextValidator } from './context-validator.js';
|
|
41
|
+
export type { ValidationSeverity, ContextValidationRule, ContextValidationConfig, ContextValidationReport, ValidationIssue } from './context-validator.js';
|
|
42
|
+
export { ExpressionContextSwitcher, ContextSwitchingUtils, createContextSwitcher } from './context-switcher.js';
|
|
43
|
+
export type { ContextSwitchingConfig, ContextSwitchingRule, ContextSwitchPoint, ContextSwitchingResult, ContextSwitchingMetrics } from './context-switcher.js';
|
|
44
|
+
export { CelToJavaScriptMigrationHelper, analyzeCelMigrationOpportunities, generateCelMigrationGuide } from './migration-helpers.js';
|
|
45
|
+
export type { MigrationSuggestion, MigrationCategory, MigrationAnalysisResult } from './migration-helpers.js';
|
|
46
|
+
export { FactoryExpressionAnalyzer, factoryExpressionAnalyzer, withExpressionAnalysis, analyzeFactoryConfig, processFactoryValue } from './factory-integration.js';
|
|
47
|
+
export type { FactoryAnalysisConfig, FactoryConfigAnalysisResult, FactoryExpressionContext, ExpressionAnalysisResult, FactoryAnalysisResult } from './factory-integration.js';
|
|
48
|
+
export { MagicProxyDetector, magicProxyDetector, detectMagicProxyRefs, containsMagicProxyRefs, extractMagicProxyRefs, analyzeMagicProxyRefSource } from './magic-proxy-detector.js';
|
|
49
|
+
export type { MagicProxyRefInfo, MagicProxyDetectionResult, MagicProxyDetectionConfig } from './magic-proxy-detector.js';
|
|
50
|
+
export { CelConversionEngine, celConversionEngine, convertToCel, kubernetesRefToCel, needsCelConversion } from './cel-conversion-engine.js';
|
|
51
|
+
export type { CelConversionConfig, CelConversionResult } from './cel-conversion-engine.js';
|
|
52
|
+
export { CompositionExpressionAnalyzer, CompositionIntegrationHooks, CompositionContextTracker, MagicProxyScopeManager, compositionIntegration, compositionUsesKubernetesRefs, getCompositionAnalysis } from './composition-integration.js';
|
|
53
|
+
export type { CompositionAnalysisResult, CompositionPattern, PatternAnalysisConfig, NestedCompositionScope } from './composition-integration.js';
|
|
54
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JavaScript to CEL Expression Analysis and Type Safety Integration
|
|
3
|
+
*
|
|
4
|
+
* This module provides comprehensive type safety integration for JavaScript
|
|
5
|
+
* to CEL expression conversion, including compile-time validation, runtime
|
|
6
|
+
* type inference, and resource reference validation.
|
|
7
|
+
*/
|
|
8
|
+
// Core analyzer
|
|
9
|
+
export { JavaScriptToCelAnalyzer } from './analyzer.js';
|
|
10
|
+
// Type safety integration
|
|
11
|
+
export { ExpressionTypeValidator, TypeRegistry, TypeSafetyUtils, TypeValidationError, TypeValidationWarning } from './type-safety.js';
|
|
12
|
+
// Type inference
|
|
13
|
+
export { CelTypeInferenceEngine, TypeInferenceError, TypeInferenceWarning } from './type-inference.js';
|
|
14
|
+
// Resource validation
|
|
15
|
+
export { ResourceReferenceValidator, ResourceValidationError, ResourceValidationWarning } from './resource-validation.js';
|
|
16
|
+
// Compile-time validation
|
|
17
|
+
export { CompileTimeTypeChecker, CompileTimeError, CompileTimeWarning } from './compile-time-validation.js';
|
|
18
|
+
// Factory pattern integration
|
|
19
|
+
export { DirectFactoryExpressionHandler, KroFactoryExpressionHandler, FactoryPatternHandlerFactory, handleExpressionWithFactoryPattern } from './factory-pattern-handler.js';
|
|
20
|
+
// Source mapping and error handling
|
|
21
|
+
export { SourceMapBuilder, SourceMapUtils } from './source-map.js';
|
|
22
|
+
export { CelRuntimeErrorMapper, CelRuntimeErrorUtils } from './runtime-error-mapper.js';
|
|
23
|
+
// MagicAssignable type integration
|
|
24
|
+
export { MagicAssignableAnalyzer, analyzeMagicAssignable, analyzeMagicAssignableShape } from './magic-assignable-analyzer.js';
|
|
25
|
+
// Performance optimization and caching
|
|
26
|
+
export { ExpressionCache, globalExpressionCache } from './cache.js';
|
|
27
|
+
// Enhanced Type Optionality Support
|
|
28
|
+
export { EnhancedTypeOptionalityHandler, analyzeOptionalityRequirements, generateNullSafeCelExpression, handleOptionalChainingWithEnhancedTypes, generateCelWithHasChecks, detectNullSafetyRequirements, integrateWithFieldHydrationTiming, handleUndefinedToDefinedTransitions } from './optionality-handler.js';
|
|
29
|
+
// Status Builder Analysis
|
|
30
|
+
export { StatusBuilderAnalyzer, analyzeStatusBuilder, analyzeStatusBuilderForToResourceGraph, analyzeReturnObjectWithMagicProxy, generateStatusContextCel } from './status-builder-analyzer.js';
|
|
31
|
+
// Resource Builder Integration
|
|
32
|
+
export { ResourceAnalyzer, DependencyTracker, ResourceTypeValidator, analyzeResourceConfig, analyzeFactoryResourceConfig } from './resource-analyzer.js';
|
|
33
|
+
// Context-Aware Conversion
|
|
34
|
+
export { ExpressionContextDetector, contextDetector } from './context-detector.js';
|
|
35
|
+
// Lazy Analysis Support
|
|
36
|
+
export { LazyAnalyzedExpression, LazyExpressionCollection, OnDemandExpressionAnalyzer, ExpressionTreeAnalyzer, LazyExpressionTreeLoader, MagicProxyLazyIntegration, MemoryOptimizedExpressionManager, ParallelExpressionAnalyzer, ExpressionAnalysisProfiler, OptimizedKubernetesRefDetector, OptimizedExpressionTraverser, ExpressionComplexityAnalyzer, TraversalAction, createLazyExpression, createLazyCollection, shouldUseLazyAnalysis, globalOnDemandAnalyzer, globalTreeAnalyzer, globalLazyTreeLoader, globalMagicProxyIntegration, globalMemoryOptimizedManager, globalParallelAnalyzer, globalExpressionProfiler, globalOptimizedDetector, globalOptimizedTraverser, globalComplexityAnalyzer } from './lazy-analysis.js';
|
|
37
|
+
export { ContextAwareCelGenerator, CelGenerationUtils, contextAwareCelGenerator } from './context-aware-generator.js';
|
|
38
|
+
export { ContextExpressionValidator, ContextValidationUtils, contextValidator } from './context-validator.js';
|
|
39
|
+
export { ExpressionContextSwitcher, ContextSwitchingUtils, createContextSwitcher } from './context-switcher.js';
|
|
40
|
+
// Migration helpers
|
|
41
|
+
export { CelToJavaScriptMigrationHelper, analyzeCelMigrationOpportunities, generateCelMigrationGuide } from './migration-helpers.js';
|
|
42
|
+
// Factory integration
|
|
43
|
+
export { FactoryExpressionAnalyzer, factoryExpressionAnalyzer, withExpressionAnalysis, analyzeFactoryConfig, processFactoryValue } from './factory-integration.js';
|
|
44
|
+
// Magic proxy detection
|
|
45
|
+
export { MagicProxyDetector, magicProxyDetector, detectMagicProxyRefs, containsMagicProxyRefs, extractMagicProxyRefs, analyzeMagicProxyRefSource } from './magic-proxy-detector.js';
|
|
46
|
+
// CEL conversion engine
|
|
47
|
+
export { CelConversionEngine, celConversionEngine, convertToCel, kubernetesRefToCel, needsCelConversion } from './cel-conversion-engine.js';
|
|
48
|
+
// Composition integration
|
|
49
|
+
export { CompositionExpressionAnalyzer, CompositionIntegrationHooks, CompositionContextTracker, MagicProxyScopeManager, compositionIntegration, compositionUsesKubernetesRefs, getCompositionAnalysis } from './composition-integration.js';
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/expressions/index.ts"],"names":[],"mappings":"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"}
|