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.
Files changed (197) hide show
  1. package/README.md +4 -3
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/core/composition/imperative.d.ts.map +1 -1
  4. package/dist/core/composition/imperative.js +15 -2
  5. package/dist/core/composition/imperative.js.map +1 -1
  6. package/dist/core/composition/typekro-runtime/typekro-runtime.d.ts.map +1 -1
  7. package/dist/core/composition/typekro-runtime/typekro-runtime.js +24 -25
  8. package/dist/core/composition/typekro-runtime/typekro-runtime.js.map +1 -1
  9. package/dist/core/dependencies/type-guards.d.ts.map +1 -1
  10. package/dist/core/dependencies/type-guards.js +7 -2
  11. package/dist/core/dependencies/type-guards.js.map +1 -1
  12. package/dist/core/deployment/engine.d.ts +0 -1
  13. package/dist/core/deployment/engine.d.ts.map +1 -1
  14. package/dist/core/deployment/engine.js +0 -1
  15. package/dist/core/deployment/engine.js.map +1 -1
  16. package/dist/core/errors.d.ts +85 -0
  17. package/dist/core/errors.d.ts.map +1 -1
  18. package/dist/core/errors.js +135 -0
  19. package/dist/core/errors.js.map +1 -1
  20. package/dist/core/expressions/analyzer.d.ts +584 -0
  21. package/dist/core/expressions/analyzer.d.ts.map +1 -0
  22. package/dist/core/expressions/analyzer.js +2956 -0
  23. package/dist/core/expressions/analyzer.js.map +1 -0
  24. package/dist/core/expressions/cache.d.ts +136 -0
  25. package/dist/core/expressions/cache.d.ts.map +1 -0
  26. package/dist/core/expressions/cache.js +347 -0
  27. package/dist/core/expressions/cache.js.map +1 -0
  28. package/dist/core/expressions/cel-conversion-engine.d.ts +126 -0
  29. package/dist/core/expressions/cel-conversion-engine.d.ts.map +1 -0
  30. package/dist/core/expressions/cel-conversion-engine.js +293 -0
  31. package/dist/core/expressions/cel-conversion-engine.js.map +1 -0
  32. package/dist/core/expressions/compile-time-validation.d.ts +270 -0
  33. package/dist/core/expressions/compile-time-validation.d.ts.map +1 -0
  34. package/dist/core/expressions/compile-time-validation.js +506 -0
  35. package/dist/core/expressions/compile-time-validation.js.map +1 -0
  36. package/dist/core/expressions/composition-integration.d.ts +315 -0
  37. package/dist/core/expressions/composition-integration.d.ts.map +1 -0
  38. package/dist/core/expressions/composition-integration.js +936 -0
  39. package/dist/core/expressions/composition-integration.js.map +1 -0
  40. package/dist/core/expressions/conditional-expression-processor.d.ts +154 -0
  41. package/dist/core/expressions/conditional-expression-processor.d.ts.map +1 -0
  42. package/dist/core/expressions/conditional-expression-processor.js +479 -0
  43. package/dist/core/expressions/conditional-expression-processor.js.map +1 -0
  44. package/dist/core/expressions/conditional-integration.d.ts +133 -0
  45. package/dist/core/expressions/conditional-integration.d.ts.map +1 -0
  46. package/dist/core/expressions/conditional-integration.js +293 -0
  47. package/dist/core/expressions/conditional-integration.js.map +1 -0
  48. package/dist/core/expressions/conditional-validation.d.ts +181 -0
  49. package/dist/core/expressions/conditional-validation.d.ts.map +1 -0
  50. package/dist/core/expressions/conditional-validation.js +460 -0
  51. package/dist/core/expressions/conditional-validation.js.map +1 -0
  52. package/dist/core/expressions/context-aware-generator.d.ts +127 -0
  53. package/dist/core/expressions/context-aware-generator.d.ts.map +1 -0
  54. package/dist/core/expressions/context-aware-generator.js +500 -0
  55. package/dist/core/expressions/context-aware-generator.js.map +1 -0
  56. package/dist/core/expressions/context-detector.d.ts +148 -0
  57. package/dist/core/expressions/context-detector.d.ts.map +1 -0
  58. package/dist/core/expressions/context-detector.js +546 -0
  59. package/dist/core/expressions/context-detector.js.map +1 -0
  60. package/dist/core/expressions/context-switcher.d.ts +185 -0
  61. package/dist/core/expressions/context-switcher.d.ts.map +1 -0
  62. package/dist/core/expressions/context-switcher.js +515 -0
  63. package/dist/core/expressions/context-switcher.js.map +1 -0
  64. package/dist/core/expressions/context-validator.d.ts +176 -0
  65. package/dist/core/expressions/context-validator.d.ts.map +1 -0
  66. package/dist/core/expressions/context-validator.js +452 -0
  67. package/dist/core/expressions/context-validator.js.map +1 -0
  68. package/dist/core/expressions/custom-context-manager.d.ts +194 -0
  69. package/dist/core/expressions/custom-context-manager.d.ts.map +1 -0
  70. package/dist/core/expressions/custom-context-manager.js +390 -0
  71. package/dist/core/expressions/custom-context-manager.js.map +1 -0
  72. package/dist/core/expressions/expression-proxy.d.ts +80 -0
  73. package/dist/core/expressions/expression-proxy.d.ts.map +1 -0
  74. package/dist/core/expressions/expression-proxy.js +227 -0
  75. package/dist/core/expressions/expression-proxy.js.map +1 -0
  76. package/dist/core/expressions/factory-integration.d.ts +132 -0
  77. package/dist/core/expressions/factory-integration.d.ts.map +1 -0
  78. package/dist/core/expressions/factory-integration.js +327 -0
  79. package/dist/core/expressions/factory-integration.js.map +1 -0
  80. package/dist/core/expressions/factory-pattern-handler.d.ts +88 -0
  81. package/dist/core/expressions/factory-pattern-handler.d.ts.map +1 -0
  82. package/dist/core/expressions/factory-pattern-handler.js +336 -0
  83. package/dist/core/expressions/factory-pattern-handler.js.map +1 -0
  84. package/dist/core/expressions/field-hydration-processor.d.ts +188 -0
  85. package/dist/core/expressions/field-hydration-processor.d.ts.map +1 -0
  86. package/dist/core/expressions/field-hydration-processor.js +562 -0
  87. package/dist/core/expressions/field-hydration-processor.js.map +1 -0
  88. package/dist/core/expressions/imperative-analyzer.d.ts +21 -0
  89. package/dist/core/expressions/imperative-analyzer.d.ts.map +1 -0
  90. package/dist/core/expressions/imperative-analyzer.js +343 -0
  91. package/dist/core/expressions/imperative-analyzer.js.map +1 -0
  92. package/dist/core/expressions/index.d.ts +54 -0
  93. package/dist/core/expressions/index.d.ts.map +1 -0
  94. package/dist/core/expressions/index.js +50 -0
  95. package/dist/core/expressions/index.js.map +1 -0
  96. package/dist/core/expressions/lazy-analysis.d.ts +1128 -0
  97. package/dist/core/expressions/lazy-analysis.d.ts.map +1 -0
  98. package/dist/core/expressions/lazy-analysis.js +2443 -0
  99. package/dist/core/expressions/lazy-analysis.js.map +1 -0
  100. package/dist/core/expressions/magic-assignable-analyzer.d.ts +123 -0
  101. package/dist/core/expressions/magic-assignable-analyzer.d.ts.map +1 -0
  102. package/dist/core/expressions/magic-assignable-analyzer.js +352 -0
  103. package/dist/core/expressions/magic-assignable-analyzer.js.map +1 -0
  104. package/dist/core/expressions/magic-proxy-analyzer.d.ts +206 -0
  105. package/dist/core/expressions/magic-proxy-analyzer.d.ts.map +1 -0
  106. package/dist/core/expressions/magic-proxy-analyzer.js +639 -0
  107. package/dist/core/expressions/magic-proxy-analyzer.js.map +1 -0
  108. package/dist/core/expressions/magic-proxy-detector.d.ts +154 -0
  109. package/dist/core/expressions/magic-proxy-detector.d.ts.map +1 -0
  110. package/dist/core/expressions/magic-proxy-detector.js +242 -0
  111. package/dist/core/expressions/magic-proxy-detector.js.map +1 -0
  112. package/dist/core/expressions/migration-helpers.d.ts +133 -0
  113. package/dist/core/expressions/migration-helpers.d.ts.map +1 -0
  114. package/dist/core/expressions/migration-helpers.js +443 -0
  115. package/dist/core/expressions/migration-helpers.js.map +1 -0
  116. package/dist/core/expressions/optionality-handler.d.ts +503 -0
  117. package/dist/core/expressions/optionality-handler.d.ts.map +1 -0
  118. package/dist/core/expressions/optionality-handler.js +1306 -0
  119. package/dist/core/expressions/optionality-handler.js.map +1 -0
  120. package/dist/core/expressions/readiness-integration.d.ts +119 -0
  121. package/dist/core/expressions/readiness-integration.d.ts.map +1 -0
  122. package/dist/core/expressions/readiness-integration.js +386 -0
  123. package/dist/core/expressions/readiness-integration.js.map +1 -0
  124. package/dist/core/expressions/resource-analyzer.d.ts +486 -0
  125. package/dist/core/expressions/resource-analyzer.d.ts.map +1 -0
  126. package/dist/core/expressions/resource-analyzer.js +1086 -0
  127. package/dist/core/expressions/resource-analyzer.js.map +1 -0
  128. package/dist/core/expressions/resource-validation.d.ts +187 -0
  129. package/dist/core/expressions/resource-validation.d.ts.map +1 -0
  130. package/dist/core/expressions/resource-validation.js +552 -0
  131. package/dist/core/expressions/resource-validation.js.map +1 -0
  132. package/dist/core/expressions/runtime-error-mapper.d.ts +138 -0
  133. package/dist/core/expressions/runtime-error-mapper.d.ts.map +1 -0
  134. package/dist/core/expressions/runtime-error-mapper.js +412 -0
  135. package/dist/core/expressions/runtime-error-mapper.js.map +1 -0
  136. package/dist/core/expressions/source-map.d.ts +168 -0
  137. package/dist/core/expressions/source-map.d.ts.map +1 -0
  138. package/dist/core/expressions/source-map.js +350 -0
  139. package/dist/core/expressions/source-map.js.map +1 -0
  140. package/dist/core/expressions/status-builder-analyzer.d.ts +353 -0
  141. package/dist/core/expressions/status-builder-analyzer.d.ts.map +1 -0
  142. package/dist/core/expressions/status-builder-analyzer.js +1301 -0
  143. package/dist/core/expressions/status-builder-analyzer.js.map +1 -0
  144. package/dist/core/expressions/type-inference.d.ts +184 -0
  145. package/dist/core/expressions/type-inference.d.ts.map +1 -0
  146. package/dist/core/expressions/type-inference.js +838 -0
  147. package/dist/core/expressions/type-inference.js.map +1 -0
  148. package/dist/core/expressions/type-safety.d.ts +203 -0
  149. package/dist/core/expressions/type-safety.d.ts.map +1 -0
  150. package/dist/core/expressions/type-safety.js +442 -0
  151. package/dist/core/expressions/type-safety.js.map +1 -0
  152. package/dist/core/expressions/types.d.ts +282 -0
  153. package/dist/core/expressions/types.d.ts.map +1 -0
  154. package/dist/core/expressions/types.js +8 -0
  155. package/dist/core/expressions/types.js.map +1 -0
  156. package/dist/core/kubernetes/client-provider.js +2 -2
  157. package/dist/core/kubernetes/client-provider.js.map +1 -1
  158. package/dist/core/serialization/core.d.ts.map +1 -1
  159. package/dist/core/serialization/core.js +573 -9
  160. package/dist/core/serialization/core.js.map +1 -1
  161. package/dist/core/types/deployment.d.ts +4 -0
  162. package/dist/core/types/deployment.d.ts.map +1 -1
  163. package/dist/core/types/deployment.js.map +1 -1
  164. package/dist/core/types/index.d.ts +1 -0
  165. package/dist/core/types/index.d.ts.map +1 -1
  166. package/dist/core/types/index.js.map +1 -1
  167. package/dist/core.d.ts +1 -1
  168. package/dist/core.d.ts.map +1 -1
  169. package/dist/core.js +1 -1
  170. package/dist/core.js.map +1 -1
  171. package/dist/factories/helm/helm-release.d.ts.map +1 -1
  172. package/dist/factories/helm/helm-release.js +0 -5
  173. package/dist/factories/helm/helm-release.js.map +1 -1
  174. package/dist/factories/helm/types.d.ts +1 -1
  175. package/dist/factories/helm/types.d.ts.map +1 -1
  176. package/dist/factories/shared.d.ts.map +1 -1
  177. package/dist/factories/shared.js +21 -1
  178. package/dist/factories/shared.js.map +1 -1
  179. package/dist/factories/simple/index.d.ts +2 -2
  180. package/dist/factories/simple/index.d.ts.map +1 -1
  181. package/dist/factories/simple/workloads/deployment.d.ts +3 -3
  182. package/dist/factories/simple/workloads/deployment.d.ts.map +1 -1
  183. package/dist/factories/simple/workloads/deployment.js +37 -11
  184. package/dist/factories/simple/workloads/deployment.js.map +1 -1
  185. package/dist/index.d.ts +1 -1
  186. package/dist/index.d.ts.map +1 -1
  187. package/dist/index.js +1 -1
  188. package/dist/index.js.map +1 -1
  189. package/dist/utils/index.d.ts +1 -1
  190. package/dist/utils/index.d.ts.map +1 -1
  191. package/dist/utils/index.js +1 -1
  192. package/dist/utils/index.js.map +1 -1
  193. package/dist/utils/type-guards.d.ts +6 -0
  194. package/dist/utils/type-guards.d.ts.map +1 -1
  195. package/dist/utils/type-guards.js +25 -2
  196. package/dist/utils/type-guards.js.map +1 -1
  197. 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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"}