codexia 0.2.0 → 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 (198) hide show
  1. package/CHANGELOG.md +55 -51
  2. package/README.md +67 -0
  3. package/dist/ai/config.d.ts +11 -0
  4. package/dist/ai/config.d.ts.map +1 -0
  5. package/dist/ai/config.js +51 -0
  6. package/dist/ai/config.js.map +1 -0
  7. package/dist/ai/explainer.d.ts +32 -0
  8. package/dist/ai/explainer.d.ts.map +1 -0
  9. package/dist/ai/explainer.js +118 -0
  10. package/dist/ai/explainer.js.map +1 -0
  11. package/dist/ai/index.d.ts +23 -0
  12. package/dist/ai/index.d.ts.map +1 -0
  13. package/dist/ai/index.js +47 -0
  14. package/dist/ai/index.js.map +1 -0
  15. package/dist/ai/prompts/impact-explain.d.ts +6 -0
  16. package/dist/ai/prompts/impact-explain.d.ts.map +1 -0
  17. package/dist/ai/prompts/impact-explain.js +50 -0
  18. package/dist/ai/prompts/impact-explain.js.map +1 -0
  19. package/dist/ai/prompts/pr-describe.d.ts +13 -0
  20. package/dist/ai/prompts/pr-describe.d.ts.map +1 -0
  21. package/dist/ai/prompts/pr-describe.js +65 -0
  22. package/dist/ai/prompts/pr-describe.js.map +1 -0
  23. package/dist/ai/prompts/pr-review.d.ts +18 -0
  24. package/dist/ai/prompts/pr-review.d.ts.map +1 -0
  25. package/dist/ai/prompts/pr-review.js +61 -0
  26. package/dist/ai/prompts/pr-review.js.map +1 -0
  27. package/dist/ai/provider.d.ts +6 -0
  28. package/dist/ai/provider.d.ts.map +1 -0
  29. package/dist/ai/provider.js +19 -0
  30. package/dist/ai/provider.js.map +1 -0
  31. package/dist/ai/providers/anthropic.d.ts +14 -0
  32. package/dist/ai/providers/anthropic.d.ts.map +1 -0
  33. package/dist/ai/providers/anthropic.js +53 -0
  34. package/dist/ai/providers/anthropic.js.map +1 -0
  35. package/dist/ai/providers/ollama.d.ts +13 -0
  36. package/dist/ai/providers/ollama.d.ts.map +1 -0
  37. package/dist/ai/providers/ollama.js +64 -0
  38. package/dist/ai/providers/ollama.js.map +1 -0
  39. package/dist/ai/providers/openai.d.ts +14 -0
  40. package/dist/ai/providers/openai.d.ts.map +1 -0
  41. package/dist/ai/providers/openai.js +42 -0
  42. package/dist/ai/providers/openai.js.map +1 -0
  43. package/dist/ai/types.d.ts +29 -0
  44. package/dist/ai/types.d.ts.map +1 -0
  45. package/dist/ai/types.js +5 -0
  46. package/dist/ai/types.js.map +1 -0
  47. package/dist/cli/commands/dashboard.d.ts +3 -0
  48. package/dist/cli/commands/dashboard.d.ts.map +1 -0
  49. package/dist/cli/commands/dashboard.js +30 -0
  50. package/dist/cli/commands/dashboard.js.map +1 -0
  51. package/dist/cli/commands/graph.js +1 -1
  52. package/dist/cli/commands/graph.js.map +1 -1
  53. package/dist/cli/commands/impact.d.ts.map +1 -1
  54. package/dist/cli/commands/impact.js +23 -0
  55. package/dist/cli/commands/impact.js.map +1 -1
  56. package/dist/cli/commands/pr-report.d.ts.map +1 -1
  57. package/dist/cli/commands/pr-report.js +49 -0
  58. package/dist/cli/commands/pr-report.js.map +1 -1
  59. package/dist/cli/engine.d.ts +65 -2
  60. package/dist/cli/engine.d.ts.map +1 -1
  61. package/dist/cli/engine.js +136 -2
  62. package/dist/cli/engine.js.map +1 -1
  63. package/dist/cli/index.d.ts +1 -0
  64. package/dist/cli/index.js +3 -0
  65. package/dist/cli/index.js.map +1 -1
  66. package/dist/cli/interactive.js +1 -1
  67. package/dist/cli/interactive.js.map +1 -1
  68. package/dist/core/dependency-graph.d.ts +3 -1
  69. package/dist/core/dependency-graph.d.ts.map +1 -1
  70. package/dist/core/dependency-graph.js +20 -7
  71. package/dist/core/dependency-graph.js.map +1 -1
  72. package/dist/core/language-providers/index.d.ts +9 -0
  73. package/dist/core/language-providers/index.d.ts.map +1 -0
  74. package/dist/core/language-providers/index.js +12 -0
  75. package/dist/core/language-providers/index.js.map +1 -0
  76. package/dist/core/language-providers/providers/go.d.ts +20 -0
  77. package/dist/core/language-providers/providers/go.d.ts.map +1 -0
  78. package/dist/core/language-providers/providers/go.js +256 -0
  79. package/dist/core/language-providers/providers/go.js.map +1 -0
  80. package/dist/core/language-providers/providers/java.d.ts +20 -0
  81. package/dist/core/language-providers/providers/java.d.ts.map +1 -0
  82. package/dist/core/language-providers/providers/java.js +234 -0
  83. package/dist/core/language-providers/providers/java.js.map +1 -0
  84. package/dist/core/language-providers/providers/python.d.ts +20 -0
  85. package/dist/core/language-providers/providers/python.d.ts.map +1 -0
  86. package/dist/core/language-providers/providers/python.js +267 -0
  87. package/dist/core/language-providers/providers/python.js.map +1 -0
  88. package/dist/core/language-providers/providers/ruby.d.ts +20 -0
  89. package/dist/core/language-providers/providers/ruby.d.ts.map +1 -0
  90. package/dist/core/language-providers/providers/ruby.js +281 -0
  91. package/dist/core/language-providers/providers/ruby.js.map +1 -0
  92. package/dist/core/language-providers/providers/rust.d.ts +20 -0
  93. package/dist/core/language-providers/providers/rust.d.ts.map +1 -0
  94. package/dist/core/language-providers/providers/rust.js +384 -0
  95. package/dist/core/language-providers/providers/rust.js.map +1 -0
  96. package/dist/core/language-providers/providers/typescript.d.ts +20 -0
  97. package/dist/core/language-providers/providers/typescript.d.ts.map +1 -0
  98. package/dist/core/language-providers/providers/typescript.js +300 -0
  99. package/dist/core/language-providers/providers/typescript.js.map +1 -0
  100. package/dist/core/language-providers/registry.d.ts +59 -0
  101. package/dist/core/language-providers/registry.d.ts.map +1 -0
  102. package/dist/core/language-providers/registry.js +133 -0
  103. package/dist/core/language-providers/registry.js.map +1 -0
  104. package/dist/core/language-providers/types.d.ts +55 -0
  105. package/dist/core/language-providers/types.d.ts.map +1 -0
  106. package/dist/core/language-providers/types.js +29 -0
  107. package/dist/core/language-providers/types.js.map +1 -0
  108. package/dist/core/repo-indexer.d.ts +10 -4
  109. package/dist/core/repo-indexer.d.ts.map +1 -1
  110. package/dist/core/repo-indexer.js +24 -26
  111. package/dist/core/repo-indexer.js.map +1 -1
  112. package/dist/dashboard/client/src/App.d.ts +3 -0
  113. package/dist/dashboard/client/src/App.d.ts.map +1 -0
  114. package/dist/dashboard/client/src/App.js +127 -0
  115. package/dist/dashboard/client/src/App.js.map +1 -0
  116. package/dist/dashboard/client/src/api.d.ts +9 -0
  117. package/dist/dashboard/client/src/api.d.ts.map +1 -0
  118. package/dist/dashboard/client/src/api.js +30 -0
  119. package/dist/dashboard/client/src/api.js.map +1 -0
  120. package/dist/dashboard/client/src/components/ActivityChart.d.ts +7 -0
  121. package/dist/dashboard/client/src/components/ActivityChart.d.ts.map +1 -0
  122. package/dist/dashboard/client/src/components/ActivityChart.js +76 -0
  123. package/dist/dashboard/client/src/components/ActivityChart.js.map +1 -0
  124. package/dist/dashboard/client/src/components/Card.d.ts +21 -0
  125. package/dist/dashboard/client/src/components/Card.d.ts.map +1 -0
  126. package/dist/dashboard/client/src/components/Card.js +35 -0
  127. package/dist/dashboard/client/src/components/Card.js.map +1 -0
  128. package/dist/dashboard/client/src/components/ComplexityHeatmap.d.ts +7 -0
  129. package/dist/dashboard/client/src/components/ComplexityHeatmap.d.ts.map +1 -0
  130. package/dist/dashboard/client/src/components/ComplexityHeatmap.js +55 -0
  131. package/dist/dashboard/client/src/components/ComplexityHeatmap.js.map +1 -0
  132. package/dist/dashboard/client/src/components/ErrorDisplay.d.ts +7 -0
  133. package/dist/dashboard/client/src/components/ErrorDisplay.d.ts.map +1 -0
  134. package/dist/dashboard/client/src/components/ErrorDisplay.js +14 -0
  135. package/dist/dashboard/client/src/components/ErrorDisplay.js.map +1 -0
  136. package/dist/dashboard/client/src/components/HealthScore.d.ts +7 -0
  137. package/dist/dashboard/client/src/components/HealthScore.d.ts.map +1 -0
  138. package/dist/dashboard/client/src/components/HealthScore.js +66 -0
  139. package/dist/dashboard/client/src/components/HealthScore.js.map +1 -0
  140. package/dist/dashboard/client/src/components/HotPathsList.d.ts +8 -0
  141. package/dist/dashboard/client/src/components/HotPathsList.d.ts.map +1 -0
  142. package/dist/dashboard/client/src/components/HotPathsList.js +59 -0
  143. package/dist/dashboard/client/src/components/HotPathsList.js.map +1 -0
  144. package/dist/dashboard/client/src/components/LanguageBreakdown.d.ts +6 -0
  145. package/dist/dashboard/client/src/components/LanguageBreakdown.d.ts.map +1 -0
  146. package/dist/dashboard/client/src/components/LanguageBreakdown.js +49 -0
  147. package/dist/dashboard/client/src/components/LanguageBreakdown.js.map +1 -0
  148. package/dist/dashboard/client/src/components/Loading.d.ts +4 -0
  149. package/dist/dashboard/client/src/components/Loading.d.ts.map +1 -0
  150. package/dist/dashboard/client/src/components/Loading.js +25 -0
  151. package/dist/dashboard/client/src/components/Loading.js.map +1 -0
  152. package/dist/dashboard/client/src/components/SignalsList.d.ts +8 -0
  153. package/dist/dashboard/client/src/components/SignalsList.d.ts.map +1 -0
  154. package/dist/dashboard/client/src/components/SignalsList.js +70 -0
  155. package/dist/dashboard/client/src/components/SignalsList.js.map +1 -0
  156. package/dist/dashboard/client/src/hooks/useApi.d.ts +9 -0
  157. package/dist/dashboard/client/src/hooks/useApi.d.ts.map +1 -0
  158. package/dist/dashboard/client/src/hooks/useApi.js +19 -0
  159. package/dist/dashboard/client/src/hooks/useApi.js.map +1 -0
  160. package/dist/dashboard/client/src/main.d.ts +2 -0
  161. package/dist/dashboard/client/src/main.d.ts.map +1 -0
  162. package/dist/dashboard/client/src/main.js +8 -0
  163. package/dist/dashboard/client/src/main.js.map +1 -0
  164. package/dist/dashboard/client/src/types.d.ts +85 -0
  165. package/dist/dashboard/client/src/types.d.ts.map +1 -0
  166. package/dist/dashboard/client/src/types.js +2 -0
  167. package/dist/dashboard/client/src/types.js.map +1 -0
  168. package/dist/dashboard/client/vite.config.d.ts +3 -0
  169. package/dist/dashboard/client/vite.config.d.ts.map +1 -0
  170. package/dist/dashboard/client/vite.config.js +24 -0
  171. package/dist/dashboard/client/vite.config.js.map +1 -0
  172. package/dist/dashboard/index.d.ts +3 -0
  173. package/dist/dashboard/index.d.ts.map +1 -0
  174. package/dist/dashboard/index.js +2 -0
  175. package/dist/dashboard/index.js.map +1 -0
  176. package/dist/dashboard/server/index.d.ts +108 -0
  177. package/dist/dashboard/server/index.d.ts.map +1 -0
  178. package/dist/dashboard/server/index.js +740 -0
  179. package/dist/dashboard/server/index.js.map +1 -0
  180. package/dist/index.d.ts +3 -0
  181. package/dist/index.d.ts.map +1 -1
  182. package/dist/index.js +6 -0
  183. package/dist/index.js.map +1 -1
  184. package/dist/mcp/server.js +1 -1
  185. package/dist/mcp/server.js.map +1 -1
  186. package/dist/modules/complexity-engine.d.ts +1 -0
  187. package/dist/modules/complexity-engine.d.ts.map +1 -1
  188. package/dist/modules/complexity-engine.js +26 -18
  189. package/dist/modules/complexity-engine.js.map +1 -1
  190. package/dist/modules/graph-utils.d.ts +7 -2
  191. package/dist/modules/graph-utils.d.ts.map +1 -1
  192. package/dist/modules/graph-utils.js +17 -11
  193. package/dist/modules/graph-utils.js.map +1 -1
  194. package/package.json +9 -4
  195. package/src/dashboard/dist/assets/index-DwKWIJD-.css +1 -0
  196. package/src/dashboard/dist/assets/index-jqRzjhTn.js +226 -0
  197. package/src/dashboard/dist/codexia-icon.svg +10 -0
  198. package/src/dashboard/dist/index.html +17 -0
@@ -0,0 +1,384 @@
1
+ import * as path from 'node:path';
2
+ import { BaseLanguageProvider } from '../types.js';
3
+ /**
4
+ * Rust language provider
5
+ */
6
+ export class RustProvider extends BaseLanguageProvider {
7
+ id = 'rust';
8
+ name = 'Rust';
9
+ extensions = ['.rs'];
10
+ filePatterns = ['**/*.rs'];
11
+ getLanguageName(_ext) {
12
+ return 'rust';
13
+ }
14
+ extractImports(content, _filePath) {
15
+ const imports = [];
16
+ const lines = content.split('\n');
17
+ for (let lineNum = 0; lineNum < lines.length; lineNum++) {
18
+ const line = lines[lineNum].trim();
19
+ // use crate::module::item;
20
+ const useMatch = /^(?:pub\s+)?use\s+([^;]+);/.exec(line);
21
+ if (useMatch) {
22
+ const usePath = useMatch[1];
23
+ // Handle glob imports: use module::*
24
+ if (usePath.includes('*')) {
25
+ imports.push({
26
+ source: usePath.replace(/::?\*$/, ''),
27
+ specifiers: ['*'],
28
+ isDefault: false,
29
+ isNamespace: true,
30
+ line: lineNum + 1,
31
+ });
32
+ continue;
33
+ }
34
+ // Handle grouped imports: use module::{a, b, c}
35
+ const groupMatch = /^(.+)::\{([^}]+)\}/.exec(usePath);
36
+ if (groupMatch) {
37
+ const basePath = groupMatch[1];
38
+ const items = groupMatch[2].split(',').map(s => {
39
+ const parts = s.trim().split(/\s+as\s+/);
40
+ return parts[0].trim();
41
+ });
42
+ imports.push({
43
+ source: basePath,
44
+ specifiers: items.filter(i => i.length > 0),
45
+ isDefault: false,
46
+ isNamespace: false,
47
+ line: lineNum + 1,
48
+ });
49
+ continue;
50
+ }
51
+ // Handle aliased imports: use module::item as alias
52
+ const aliasMatch = /^(.+)\s+as\s+(\w+)$/.exec(usePath);
53
+ if (aliasMatch) {
54
+ imports.push({
55
+ source: aliasMatch[1],
56
+ specifiers: [aliasMatch[2]],
57
+ isDefault: false,
58
+ isNamespace: false,
59
+ line: lineNum + 1,
60
+ });
61
+ continue;
62
+ }
63
+ // Simple import
64
+ const lastPart = usePath.split('::').pop() || usePath;
65
+ imports.push({
66
+ source: usePath,
67
+ specifiers: [lastPart],
68
+ isDefault: false,
69
+ isNamespace: false,
70
+ line: lineNum + 1,
71
+ });
72
+ continue;
73
+ }
74
+ // mod declaration (file-based module)
75
+ const modMatch = /^(?:pub\s+)?mod\s+(\w+);/.exec(line);
76
+ if (modMatch) {
77
+ imports.push({
78
+ source: modMatch[1],
79
+ specifiers: [modMatch[1]],
80
+ isDefault: true,
81
+ isNamespace: false,
82
+ line: lineNum + 1,
83
+ });
84
+ }
85
+ // extern crate
86
+ const externMatch = /^extern\s+crate\s+(\w+)/.exec(line);
87
+ if (externMatch) {
88
+ imports.push({
89
+ source: externMatch[1],
90
+ specifiers: [externMatch[1]],
91
+ isDefault: true,
92
+ isNamespace: false,
93
+ line: lineNum + 1,
94
+ });
95
+ }
96
+ }
97
+ return imports;
98
+ }
99
+ extractExports(content, _filePath) {
100
+ const exports = [];
101
+ const lines = content.split('\n');
102
+ for (let lineNum = 0; lineNum < lines.length; lineNum++) {
103
+ const line = lines[lineNum].trim();
104
+ // pub fn function_name
105
+ const funcMatch = /^pub(?:\([^)]+\))?\s+(?:async\s+)?fn\s+(\w+)/.exec(line);
106
+ if (funcMatch) {
107
+ exports.push({
108
+ name: funcMatch[1],
109
+ kind: 'function',
110
+ isDefault: false,
111
+ line: lineNum + 1,
112
+ });
113
+ continue;
114
+ }
115
+ // pub struct StructName
116
+ const structMatch = /^pub(?:\([^)]+\))?\s+struct\s+(\w+)/.exec(line);
117
+ if (structMatch) {
118
+ exports.push({
119
+ name: structMatch[1],
120
+ kind: 'class',
121
+ isDefault: false,
122
+ line: lineNum + 1,
123
+ });
124
+ continue;
125
+ }
126
+ // pub enum EnumName
127
+ const enumMatch = /^pub(?:\([^)]+\))?\s+enum\s+(\w+)/.exec(line);
128
+ if (enumMatch) {
129
+ exports.push({
130
+ name: enumMatch[1],
131
+ kind: 'enum',
132
+ isDefault: false,
133
+ line: lineNum + 1,
134
+ });
135
+ continue;
136
+ }
137
+ // pub trait TraitName
138
+ const traitMatch = /^pub(?:\([^)]+\))?\s+trait\s+(\w+)/.exec(line);
139
+ if (traitMatch) {
140
+ exports.push({
141
+ name: traitMatch[1],
142
+ kind: 'interface',
143
+ isDefault: false,
144
+ line: lineNum + 1,
145
+ });
146
+ continue;
147
+ }
148
+ // pub type TypeAlias
149
+ const typeMatch = /^pub(?:\([^)]+\))?\s+type\s+(\w+)/.exec(line);
150
+ if (typeMatch) {
151
+ exports.push({
152
+ name: typeMatch[1],
153
+ kind: 'type',
154
+ isDefault: false,
155
+ line: lineNum + 1,
156
+ });
157
+ continue;
158
+ }
159
+ // pub const CONST_NAME
160
+ const constMatch = /^pub(?:\([^)]+\))?\s+(?:const|static)\s+(\w+)/.exec(line);
161
+ if (constMatch) {
162
+ exports.push({
163
+ name: constMatch[1],
164
+ kind: 'variable',
165
+ isDefault: false,
166
+ line: lineNum + 1,
167
+ });
168
+ continue;
169
+ }
170
+ // pub mod module_name
171
+ const modMatch = /^pub(?:\([^)]+\))?\s+mod\s+(\w+)/.exec(line);
172
+ if (modMatch) {
173
+ exports.push({
174
+ name: modMatch[1],
175
+ kind: 'namespace',
176
+ isDefault: false,
177
+ line: lineNum + 1,
178
+ });
179
+ }
180
+ }
181
+ return exports;
182
+ }
183
+ extractSymbols(content, filePath) {
184
+ const symbols = [];
185
+ const lines = content.split('\n');
186
+ let inImpl = false;
187
+ for (let lineNum = 0; lineNum < lines.length; lineNum++) {
188
+ const line = lines[lineNum];
189
+ const trimmed = line.trim();
190
+ // impl block
191
+ const implMatch = /^impl(?:<[^>]+>)?\s+(?:(\w+)\s+for\s+)?(\w+)/.exec(trimmed);
192
+ if (implMatch) {
193
+ inImpl = true;
194
+ continue;
195
+ }
196
+ // fn function_name
197
+ const funcMatch = /^(?:pub(?:\([^)]+\))?\s+)?(?:async\s+)?(?:unsafe\s+)?fn\s+(\w+)/.exec(trimmed);
198
+ if (funcMatch) {
199
+ symbols.push({
200
+ name: funcMatch[1],
201
+ kind: inImpl ? 'method' : 'function',
202
+ filePath,
203
+ line: lineNum + 1,
204
+ column: 0,
205
+ exported: trimmed.startsWith('pub'),
206
+ references: [],
207
+ });
208
+ continue;
209
+ }
210
+ // struct StructName
211
+ const structMatch = /^(?:pub(?:\([^)]+\))?\s+)?struct\s+(\w+)/.exec(trimmed);
212
+ if (structMatch) {
213
+ symbols.push({
214
+ name: structMatch[1],
215
+ kind: 'class',
216
+ filePath,
217
+ line: lineNum + 1,
218
+ column: 0,
219
+ exported: trimmed.startsWith('pub'),
220
+ references: [],
221
+ });
222
+ continue;
223
+ }
224
+ // enum EnumName
225
+ const enumMatch = /^(?:pub(?:\([^)]+\))?\s+)?enum\s+(\w+)/.exec(trimmed);
226
+ if (enumMatch) {
227
+ symbols.push({
228
+ name: enumMatch[1],
229
+ kind: 'enum',
230
+ filePath,
231
+ line: lineNum + 1,
232
+ column: 0,
233
+ exported: trimmed.startsWith('pub'),
234
+ references: [],
235
+ });
236
+ continue;
237
+ }
238
+ // trait TraitName
239
+ const traitMatch = /^(?:pub(?:\([^)]+\))?\s+)?trait\s+(\w+)/.exec(trimmed);
240
+ if (traitMatch) {
241
+ symbols.push({
242
+ name: traitMatch[1],
243
+ kind: 'interface',
244
+ filePath,
245
+ line: lineNum + 1,
246
+ column: 0,
247
+ exported: trimmed.startsWith('pub'),
248
+ references: [],
249
+ });
250
+ continue;
251
+ }
252
+ // type TypeAlias
253
+ const typeMatch = /^(?:pub(?:\([^)]+\))?\s+)?type\s+(\w+)/.exec(trimmed);
254
+ if (typeMatch) {
255
+ symbols.push({
256
+ name: typeMatch[1],
257
+ kind: 'type',
258
+ filePath,
259
+ line: lineNum + 1,
260
+ column: 0,
261
+ exported: trimmed.startsWith('pub'),
262
+ references: [],
263
+ });
264
+ continue;
265
+ }
266
+ // const/static
267
+ const constMatch = /^(?:pub(?:\([^)]+\))?\s+)?(?:const|static)\s+(\w+)/.exec(trimmed);
268
+ if (constMatch) {
269
+ symbols.push({
270
+ name: constMatch[1],
271
+ kind: 'variable',
272
+ filePath,
273
+ line: lineNum + 1,
274
+ column: 0,
275
+ exported: trimmed.startsWith('pub'),
276
+ references: [],
277
+ });
278
+ continue;
279
+ }
280
+ // mod module_name
281
+ const modMatch = /^(?:pub(?:\([^)]+\))?\s+)?mod\s+(\w+)/.exec(trimmed);
282
+ if (modMatch && !trimmed.endsWith(';')) {
283
+ symbols.push({
284
+ name: modMatch[1],
285
+ kind: 'namespace',
286
+ filePath,
287
+ line: lineNum + 1,
288
+ column: 0,
289
+ exported: trimmed.startsWith('pub'),
290
+ references: [],
291
+ });
292
+ }
293
+ // End of impl block (simple heuristic)
294
+ if (trimmed === '}' && inImpl) {
295
+ inImpl = false;
296
+ }
297
+ }
298
+ return symbols;
299
+ }
300
+ resolveImportPath(fromPath, importSource, existingFiles) {
301
+ const dir = path.dirname(fromPath);
302
+ // Handle crate:: prefix
303
+ if (importSource.startsWith('crate::')) {
304
+ const modulePath = importSource.replace('crate::', '').replace(/::/g, '/');
305
+ // Try src/ directory
306
+ const srcPath = `src/${modulePath}.rs`;
307
+ if (existingFiles.has(srcPath)) {
308
+ return srcPath;
309
+ }
310
+ // Try as directory with mod.rs
311
+ const modPath = `src/${modulePath}/mod.rs`;
312
+ if (existingFiles.has(modPath)) {
313
+ return modPath;
314
+ }
315
+ }
316
+ // Handle super:: prefix
317
+ if (importSource.startsWith('super::')) {
318
+ const parentDir = path.dirname(dir);
319
+ const modulePath = importSource.replace('super::', '').replace(/::/g, '/');
320
+ const resolved = path.join(parentDir, modulePath).replace(/\\/g, '/');
321
+ if (existingFiles.has(resolved + '.rs')) {
322
+ return resolved + '.rs';
323
+ }
324
+ }
325
+ // Handle self:: prefix
326
+ if (importSource.startsWith('self::')) {
327
+ const modulePath = importSource.replace('self::', '').replace(/::/g, '/');
328
+ const resolved = path.join(dir, modulePath).replace(/\\/g, '/');
329
+ if (existingFiles.has(resolved + '.rs')) {
330
+ return resolved + '.rs';
331
+ }
332
+ }
333
+ // Handle mod declarations
334
+ const modPath = path.join(dir, importSource + '.rs').replace(/\\/g, '/');
335
+ if (existingFiles.has(modPath)) {
336
+ return modPath;
337
+ }
338
+ // Try as directory with mod.rs
339
+ const dirModPath = path.join(dir, importSource, 'mod.rs').replace(/\\/g, '/');
340
+ if (existingFiles.has(dirModPath)) {
341
+ return dirModPath;
342
+ }
343
+ return null;
344
+ }
345
+ getControlFlowPatterns() {
346
+ return [
347
+ /\bif\s+/g,
348
+ /\belse\s+if\s+/g,
349
+ /\belse\s*\{/g,
350
+ /\bfor\s+/g,
351
+ /\bwhile\s+/g,
352
+ /\bloop\s*\{/g,
353
+ /\bmatch\s+/g,
354
+ /=>\s*\{/g, // Match arms
355
+ /\bif\s+let\s+/g,
356
+ /\bwhile\s+let\s+/g,
357
+ /\?/g, // Error propagation
358
+ /&&/g,
359
+ /\|\|/g,
360
+ ];
361
+ }
362
+ getCommentPatterns() {
363
+ return {
364
+ singleLine: /\/\//,
365
+ blockStart: /\/\*/,
366
+ blockEnd: /\*\//,
367
+ };
368
+ }
369
+ getEntryPointPatterns() {
370
+ return [
371
+ /fn\s+main\s*\(/,
372
+ /#\[tokio::main\]/,
373
+ /#\[actix_web::main\]/,
374
+ /HttpServer::new/,
375
+ /\.route\s*\(/,
376
+ /web::\w+\s*\(/,
377
+ /#\[get\s*\(/,
378
+ /#\[post\s*\(/,
379
+ /#\[put\s*\(/,
380
+ /#\[delete\s*\(/,
381
+ ];
382
+ }
383
+ }
384
+ //# sourceMappingURL=rust.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rust.js","sourceRoot":"","sources":["../../../../src/core/language-providers/providers/rust.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,oBAAoB,EAAwB,MAAM,aAAa,CAAC;AAEzE;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,oBAAoB;IACpD,EAAE,GAAG,MAAM,CAAC;IACZ,IAAI,GAAG,MAAM,CAAC;IACd,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC;IACrB,YAAY,GAAG,CAAC,SAAS,CAAC,CAAC;IAE3B,eAAe,CAAC,IAAY;QAC1B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,OAAe,EAAE,SAAiB;QAC/C,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAEnC,2BAA2B;YAC3B,MAAM,QAAQ,GAAG,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAE5B,qCAAqC;gBACrC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1B,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;wBACrC,UAAU,EAAE,CAAC,GAAG,CAAC;wBACjB,SAAS,EAAE,KAAK;wBAChB,WAAW,EAAE,IAAI;wBACjB,IAAI,EAAE,OAAO,GAAG,CAAC;qBAClB,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,gDAAgD;gBAChD,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtD,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;wBAC7C,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;wBACzC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACzB,CAAC,CAAC,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,QAAQ;wBAChB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;wBAC3C,SAAS,EAAE,KAAK;wBAChB,WAAW,EAAE,KAAK;wBAClB,IAAI,EAAE,OAAO,GAAG,CAAC;qBAClB,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,oDAAoD;gBACpD,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvD,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;wBACrB,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBAC3B,SAAS,EAAE,KAAK;wBAChB,WAAW,EAAE,KAAK;wBAClB,IAAI,EAAE,OAAO,GAAG,CAAC;qBAClB,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,gBAAgB;gBAChB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,OAAO;oBACf,UAAU,EAAE,CAAC,QAAQ,CAAC;oBACtB,SAAS,EAAE,KAAK;oBAChB,WAAW,EAAE,KAAK;oBAClB,IAAI,EAAE,OAAO,GAAG,CAAC;iBAClB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,sCAAsC;YACtC,MAAM,QAAQ,GAAG,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACnB,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACzB,SAAS,EAAE,IAAI;oBACf,WAAW,EAAE,KAAK;oBAClB,IAAI,EAAE,OAAO,GAAG,CAAC;iBAClB,CAAC,CAAC;YACL,CAAC;YAED,eAAe;YACf,MAAM,WAAW,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;oBACtB,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC5B,SAAS,EAAE,IAAI;oBACf,WAAW,EAAE,KAAK;oBAClB,IAAI,EAAE,OAAO,GAAG,CAAC;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,cAAc,CAAC,OAAe,EAAE,SAAiB;QAC/C,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAEnC,uBAAuB;YACvB,MAAM,SAAS,GAAG,8CAA8C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5E,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;oBAClB,IAAI,EAAE,UAAU;oBAChB,SAAS,EAAE,KAAK;oBAChB,IAAI,EAAE,OAAO,GAAG,CAAC;iBAClB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,wBAAwB;YACxB,MAAM,WAAW,GAAG,qCAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrE,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;oBACpB,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,KAAK;oBAChB,IAAI,EAAE,OAAO,GAAG,CAAC;iBAClB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,oBAAoB;YACpB,MAAM,SAAS,GAAG,mCAAmC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjE,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;oBAClB,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE,KAAK;oBAChB,IAAI,EAAE,OAAO,GAAG,CAAC;iBAClB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,sBAAsB;YACtB,MAAM,UAAU,GAAG,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnE,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;oBACnB,IAAI,EAAE,WAAW;oBACjB,SAAS,EAAE,KAAK;oBAChB,IAAI,EAAE,OAAO,GAAG,CAAC;iBAClB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,qBAAqB;YACrB,MAAM,SAAS,GAAG,mCAAmC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjE,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;oBAClB,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE,KAAK;oBAChB,IAAI,EAAE,OAAO,GAAG,CAAC;iBAClB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,uBAAuB;YACvB,MAAM,UAAU,GAAG,+CAA+C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9E,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;oBACnB,IAAI,EAAE,UAAU;oBAChB,SAAS,EAAE,KAAK;oBAChB,IAAI,EAAE,OAAO,GAAG,CAAC;iBAClB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,sBAAsB;YACtB,MAAM,QAAQ,GAAG,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/D,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACjB,IAAI,EAAE,WAAW;oBACjB,SAAS,EAAE,KAAK;oBAChB,IAAI,EAAE,OAAO,GAAG,CAAC;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,cAAc,CAAC,OAAe,EAAE,QAAgB;QAC9C,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAE5B,aAAa;YACb,MAAM,SAAS,GAAG,8CAA8C,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/E,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,GAAG,IAAI,CAAC;gBACd,SAAS;YACX,CAAC;YAED,mBAAmB;YACnB,MAAM,SAAS,GAAG,iEAAiE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClG,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;oBAClB,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;oBACpC,QAAQ;oBACR,IAAI,EAAE,OAAO,GAAG,CAAC;oBACjB,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;oBACnC,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,oBAAoB;YACpB,MAAM,WAAW,GAAG,0CAA0C,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7E,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;oBACpB,IAAI,EAAE,OAAO;oBACb,QAAQ;oBACR,IAAI,EAAE,OAAO,GAAG,CAAC;oBACjB,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;oBACnC,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,gBAAgB;YAChB,MAAM,SAAS,GAAG,wCAAwC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzE,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;oBAClB,IAAI,EAAE,MAAM;oBACZ,QAAQ;oBACR,IAAI,EAAE,OAAO,GAAG,CAAC;oBACjB,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;oBACnC,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,kBAAkB;YAClB,MAAM,UAAU,GAAG,yCAAyC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3E,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;oBACnB,IAAI,EAAE,WAAW;oBACjB,QAAQ;oBACR,IAAI,EAAE,OAAO,GAAG,CAAC;oBACjB,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;oBACnC,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,iBAAiB;YACjB,MAAM,SAAS,GAAG,wCAAwC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzE,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;oBAClB,IAAI,EAAE,MAAM;oBACZ,QAAQ;oBACR,IAAI,EAAE,OAAO,GAAG,CAAC;oBACjB,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;oBACnC,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,eAAe;YACf,MAAM,UAAU,GAAG,oDAAoD,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtF,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;oBACnB,IAAI,EAAE,UAAU;oBAChB,QAAQ;oBACR,IAAI,EAAE,OAAO,GAAG,CAAC;oBACjB,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;oBACnC,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,kBAAkB;YAClB,MAAM,QAAQ,GAAG,uCAAuC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvE,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACjB,IAAI,EAAE,WAAW;oBACjB,QAAQ;oBACR,IAAI,EAAE,OAAO,GAAG,CAAC;oBACjB,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;oBACnC,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;YACL,CAAC;YAED,uCAAuC;YACvC,IAAI,OAAO,KAAK,GAAG,IAAI,MAAM,EAAE,CAAC;gBAC9B,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,iBAAiB,CACf,QAAgB,EAChB,YAAoB,EACpB,aAA0B;QAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEnC,wBAAwB;QACxB,IAAI,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAE3E,qBAAqB;YACrB,MAAM,OAAO,GAAG,OAAO,UAAU,KAAK,CAAC;YACvC,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,+BAA+B;YAC/B,MAAM,OAAO,GAAG,OAAO,UAAU,SAAS,CAAC;YAC3C,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,IAAI,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAEtE,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC;gBACxC,OAAO,QAAQ,GAAG,KAAK,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,IAAI,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAEhE,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC;gBACxC,OAAO,QAAQ,GAAG,KAAK,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzE,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,+BAA+B;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9E,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sBAAsB;QACpB,OAAO;YACL,UAAU;YACV,iBAAiB;YACjB,cAAc;YACd,WAAW;YACX,aAAa;YACb,cAAc;YACd,aAAa;YACb,UAAU,EAAG,aAAa;YAC1B,gBAAgB;YAChB,mBAAmB;YACnB,KAAK,EAAG,oBAAoB;YAC5B,KAAK;YACL,OAAO;SACR,CAAC;IACJ,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,MAAM;SACjB,CAAC;IACJ,CAAC;IAED,qBAAqB;QACnB,OAAO;YACL,gBAAgB;YAChB,kBAAkB;YAClB,sBAAsB;YACtB,iBAAiB;YACjB,cAAc;YACd,eAAe;YACf,aAAa;YACb,cAAc;YACd,aAAa;YACb,gBAAgB;SACjB,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ import type { Symbol, ImportInfo, ExportInfo } from '../../types.js';
2
+ import { BaseLanguageProvider, type CommentPatterns } from '../types.js';
3
+ /**
4
+ * TypeScript/JavaScript language provider
5
+ */
6
+ export declare class TypeScriptProvider extends BaseLanguageProvider {
7
+ id: string;
8
+ name: string;
9
+ extensions: string[];
10
+ filePatterns: string[];
11
+ getLanguageName(ext: string): string;
12
+ extractImports(content: string, _filePath: string): ImportInfo[];
13
+ extractExports(content: string, _filePath: string): ExportInfo[];
14
+ extractSymbols(content: string, filePath: string): Symbol[];
15
+ resolveImportPath(fromPath: string, importSource: string, existingFiles: Set<string>): string | null;
16
+ getControlFlowPatterns(): RegExp[];
17
+ getCommentPatterns(): CommentPatterns;
18
+ getEntryPointPatterns(): RegExp[];
19
+ }
20
+ //# sourceMappingURL=typescript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../../src/core/language-providers/providers/typescript.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAc,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEzE;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,oBAAoB;IAC1D,EAAE,SAAgB;IAClB,IAAI,SAAgB;IACpB,UAAU,WAAkD;IAC5D,YAAY,WAOV;IAEF,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAepC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;IA6EhE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;IA6FhE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAsC3D,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,MAAM,GAAG,IAAI;IAmDhB,sBAAsB,IAAI,MAAM,EAAE;IAmBlC,kBAAkB,IAAI,eAAe;IAQrC,qBAAqB,IAAI,MAAM,EAAE;CAelC"}