@bugsbunnycodes1998/cartographer-core 0.1.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 (220) hide show
  1. package/dist/__tests__/pipeline.test.d.ts +2 -0
  2. package/dist/__tests__/pipeline.test.d.ts.map +1 -0
  3. package/dist/__tests__/pipeline.test.js +58 -0
  4. package/dist/__tests__/pipeline.test.js.map +1 -0
  5. package/dist/analysis/call-graph.d.ts +13 -0
  6. package/dist/analysis/call-graph.d.ts.map +1 -0
  7. package/dist/analysis/call-graph.js +133 -0
  8. package/dist/analysis/call-graph.js.map +1 -0
  9. package/dist/analysis/dependency-graph.d.ts +8 -0
  10. package/dist/analysis/dependency-graph.d.ts.map +1 -0
  11. package/dist/analysis/dependency-graph.js +101 -0
  12. package/dist/analysis/dependency-graph.js.map +1 -0
  13. package/dist/analysis/git/archaeology.d.ts +20 -0
  14. package/dist/analysis/git/archaeology.d.ts.map +1 -0
  15. package/dist/analysis/git/archaeology.js +61 -0
  16. package/dist/analysis/git/archaeology.js.map +1 -0
  17. package/dist/analysis/git/bus-factor.d.ts +17 -0
  18. package/dist/analysis/git/bus-factor.d.ts.map +1 -0
  19. package/dist/analysis/git/bus-factor.js +90 -0
  20. package/dist/analysis/git/bus-factor.js.map +1 -0
  21. package/dist/analysis/git/churn.d.ts +26 -0
  22. package/dist/analysis/git/churn.d.ts.map +1 -0
  23. package/dist/analysis/git/churn.js +127 -0
  24. package/dist/analysis/git/churn.js.map +1 -0
  25. package/dist/analysis/git/contributors.d.ts +14 -0
  26. package/dist/analysis/git/contributors.d.ts.map +1 -0
  27. package/dist/analysis/git/contributors.js +60 -0
  28. package/dist/analysis/git/contributors.js.map +1 -0
  29. package/dist/analysis/git/evolution.d.ts +10 -0
  30. package/dist/analysis/git/evolution.d.ts.map +1 -0
  31. package/dist/analysis/git/evolution.js +127 -0
  32. package/dist/analysis/git/evolution.js.map +1 -0
  33. package/dist/analysis/git/index.d.ts +6 -0
  34. package/dist/analysis/git/index.d.ts.map +1 -0
  35. package/dist/analysis/git/index.js +6 -0
  36. package/dist/analysis/git/index.js.map +1 -0
  37. package/dist/analysis/go-visitor.d.ts +4 -0
  38. package/dist/analysis/go-visitor.d.ts.map +1 -0
  39. package/dist/analysis/go-visitor.js +295 -0
  40. package/dist/analysis/go-visitor.js.map +1 -0
  41. package/dist/analysis/health/indicators.d.ts +25 -0
  42. package/dist/analysis/health/indicators.d.ts.map +1 -0
  43. package/dist/analysis/health/indicators.js +53 -0
  44. package/dist/analysis/health/indicators.js.map +1 -0
  45. package/dist/analysis/health/scorer.d.ts +26 -0
  46. package/dist/analysis/health/scorer.d.ts.map +1 -0
  47. package/dist/analysis/health/scorer.js +97 -0
  48. package/dist/analysis/health/scorer.js.map +1 -0
  49. package/dist/analysis/health/test-coverage.d.ts +19 -0
  50. package/dist/analysis/health/test-coverage.d.ts.map +1 -0
  51. package/dist/analysis/health/test-coverage.js +67 -0
  52. package/dist/analysis/health/test-coverage.js.map +1 -0
  53. package/dist/analysis/import-resolver.d.ts +10 -0
  54. package/dist/analysis/import-resolver.d.ts.map +1 -0
  55. package/dist/analysis/import-resolver.js +353 -0
  56. package/dist/analysis/import-resolver.js.map +1 -0
  57. package/dist/analysis/index.d.ts +22 -0
  58. package/dist/analysis/index.d.ts.map +1 -0
  59. package/dist/analysis/index.js +24 -0
  60. package/dist/analysis/index.js.map +1 -0
  61. package/dist/analysis/java-visitor.d.ts +4 -0
  62. package/dist/analysis/java-visitor.d.ts.map +1 -0
  63. package/dist/analysis/java-visitor.js +257 -0
  64. package/dist/analysis/java-visitor.js.map +1 -0
  65. package/dist/analysis/metrics.d.ts +19 -0
  66. package/dist/analysis/metrics.d.ts.map +1 -0
  67. package/dist/analysis/metrics.js +70 -0
  68. package/dist/analysis/metrics.js.map +1 -0
  69. package/dist/analysis/module-detector.d.ts +3 -0
  70. package/dist/analysis/module-detector.d.ts.map +1 -0
  71. package/dist/analysis/module-detector.js +257 -0
  72. package/dist/analysis/module-detector.js.map +1 -0
  73. package/dist/analysis/parser.d.ts +13 -0
  74. package/dist/analysis/parser.d.ts.map +1 -0
  75. package/dist/analysis/parser.js +92 -0
  76. package/dist/analysis/parser.js.map +1 -0
  77. package/dist/analysis/python-visitor.d.ts +4 -0
  78. package/dist/analysis/python-visitor.d.ts.map +1 -0
  79. package/dist/analysis/python-visitor.js +306 -0
  80. package/dist/analysis/python-visitor.js.map +1 -0
  81. package/dist/analysis/rust-visitor.d.ts +4 -0
  82. package/dist/analysis/rust-visitor.d.ts.map +1 -0
  83. package/dist/analysis/rust-visitor.js +318 -0
  84. package/dist/analysis/rust-visitor.js.map +1 -0
  85. package/dist/analysis/semantic/cache.d.ts +16 -0
  86. package/dist/analysis/semantic/cache.d.ts.map +1 -0
  87. package/dist/analysis/semantic/cache.js +26 -0
  88. package/dist/analysis/semantic/cache.js.map +1 -0
  89. package/dist/analysis/semantic/openai-client.d.ts +21 -0
  90. package/dist/analysis/semantic/openai-client.d.ts.map +1 -0
  91. package/dist/analysis/semantic/openai-client.js +73 -0
  92. package/dist/analysis/semantic/openai-client.js.map +1 -0
  93. package/dist/analysis/semantic/prompts.d.ts +32 -0
  94. package/dist/analysis/semantic/prompts.d.ts.map +1 -0
  95. package/dist/analysis/semantic/prompts.js +134 -0
  96. package/dist/analysis/semantic/prompts.js.map +1 -0
  97. package/dist/analysis/semantic/summarizer.d.ts +36 -0
  98. package/dist/analysis/semantic/summarizer.d.ts.map +1 -0
  99. package/dist/analysis/semantic/summarizer.js +229 -0
  100. package/dist/analysis/semantic/summarizer.js.map +1 -0
  101. package/dist/analysis/ts-js-visitor.d.ts +4 -0
  102. package/dist/analysis/ts-js-visitor.d.ts.map +1 -0
  103. package/dist/analysis/ts-js-visitor.js +390 -0
  104. package/dist/analysis/ts-js-visitor.js.map +1 -0
  105. package/dist/analysis/visitor-registry.d.ts +5 -0
  106. package/dist/analysis/visitor-registry.d.ts.map +1 -0
  107. package/dist/analysis/visitor-registry.js +17 -0
  108. package/dist/analysis/visitor-registry.js.map +1 -0
  109. package/dist/analysis/visitor-utils.d.ts +38 -0
  110. package/dist/analysis/visitor-utils.d.ts.map +1 -0
  111. package/dist/analysis/visitor-utils.js +110 -0
  112. package/dist/analysis/visitor-utils.js.map +1 -0
  113. package/dist/errors.d.ts +20 -0
  114. package/dist/errors.d.ts.map +1 -0
  115. package/dist/errors.js +39 -0
  116. package/dist/errors.js.map +1 -0
  117. package/dist/expeditions/custom.d.ts +11 -0
  118. package/dist/expeditions/custom.d.ts.map +1 -0
  119. package/dist/expeditions/custom.js +61 -0
  120. package/dist/expeditions/custom.js.map +1 -0
  121. package/dist/expeditions/danger-zones.d.ts +9 -0
  122. package/dist/expeditions/danger-zones.d.ts.map +1 -0
  123. package/dist/expeditions/danger-zones.js +42 -0
  124. package/dist/expeditions/danger-zones.js.map +1 -0
  125. package/dist/expeditions/generator.d.ts +21 -0
  126. package/dist/expeditions/generator.d.ts.map +1 -0
  127. package/dist/expeditions/generator.js +78 -0
  128. package/dist/expeditions/generator.js.map +1 -0
  129. package/dist/expeditions/grand-tour.d.ts +10 -0
  130. package/dist/expeditions/grand-tour.d.ts.map +1 -0
  131. package/dist/expeditions/grand-tour.js +96 -0
  132. package/dist/expeditions/grand-tour.js.map +1 -0
  133. package/dist/expeditions/request-flow.d.ts +11 -0
  134. package/dist/expeditions/request-flow.d.ts.map +1 -0
  135. package/dist/expeditions/request-flow.js +138 -0
  136. package/dist/expeditions/request-flow.js.map +1 -0
  137. package/dist/grammars/tree-sitter-go.wasm +0 -0
  138. package/dist/grammars/tree-sitter-java.wasm +0 -0
  139. package/dist/grammars/tree-sitter-javascript.wasm +0 -0
  140. package/dist/grammars/tree-sitter-python.wasm +0 -0
  141. package/dist/grammars/tree-sitter-rust.wasm +0 -0
  142. package/dist/grammars/tree-sitter-tsx.wasm +0 -0
  143. package/dist/grammars/tree-sitter-typescript.wasm +0 -0
  144. package/dist/graph/builder.d.ts +23 -0
  145. package/dist/graph/builder.d.ts.map +1 -0
  146. package/dist/graph/builder.js +131 -0
  147. package/dist/graph/builder.js.map +1 -0
  148. package/dist/graph/exporter.d.ts +5 -0
  149. package/dist/graph/exporter.d.ts.map +1 -0
  150. package/dist/graph/exporter.js +20 -0
  151. package/dist/graph/exporter.js.map +1 -0
  152. package/dist/graph/layout.d.ts +3 -0
  153. package/dist/graph/layout.d.ts.map +1 -0
  154. package/dist/graph/layout.js +257 -0
  155. package/dist/graph/layout.js.map +1 -0
  156. package/dist/graph/store.d.ts +13 -0
  157. package/dist/graph/store.d.ts.map +1 -0
  158. package/dist/graph/store.js +145 -0
  159. package/dist/graph/store.js.map +1 -0
  160. package/dist/index.d.ts +17 -0
  161. package/dist/index.d.ts.map +1 -0
  162. package/dist/index.js +12 -0
  163. package/dist/index.js.map +1 -0
  164. package/dist/ingestion/cloner.d.ts +18 -0
  165. package/dist/ingestion/cloner.d.ts.map +1 -0
  166. package/dist/ingestion/cloner.js +62 -0
  167. package/dist/ingestion/cloner.js.map +1 -0
  168. package/dist/ingestion/file-tree.d.ts +3 -0
  169. package/dist/ingestion/file-tree.d.ts.map +1 -0
  170. package/dist/ingestion/file-tree.js +85 -0
  171. package/dist/ingestion/file-tree.js.map +1 -0
  172. package/dist/ingestion/index.d.ts +5 -0
  173. package/dist/ingestion/index.d.ts.map +1 -0
  174. package/dist/ingestion/index.js +5 -0
  175. package/dist/ingestion/index.js.map +1 -0
  176. package/dist/ingestion/language-detector.d.ts +8 -0
  177. package/dist/ingestion/language-detector.d.ts.map +1 -0
  178. package/dist/ingestion/language-detector.js +37 -0
  179. package/dist/ingestion/language-detector.js.map +1 -0
  180. package/dist/ingestion/path-resolver.d.ts +7 -0
  181. package/dist/ingestion/path-resolver.d.ts.map +1 -0
  182. package/dist/ingestion/path-resolver.js +30 -0
  183. package/dist/ingestion/path-resolver.js.map +1 -0
  184. package/dist/logger.d.ts +3 -0
  185. package/dist/logger.d.ts.map +1 -0
  186. package/dist/logger.js +11 -0
  187. package/dist/logger.js.map +1 -0
  188. package/dist/pipeline.d.ts +3 -0
  189. package/dist/pipeline.d.ts.map +1 -0
  190. package/dist/pipeline.js +223 -0
  191. package/dist/pipeline.js.map +1 -0
  192. package/dist/types/analysis.d.ts +51 -0
  193. package/dist/types/analysis.d.ts.map +1 -0
  194. package/dist/types/analysis.js +2 -0
  195. package/dist/types/analysis.js.map +1 -0
  196. package/dist/types/config.d.ts +19 -0
  197. package/dist/types/config.d.ts.map +1 -0
  198. package/dist/types/config.js +2 -0
  199. package/dist/types/config.js.map +1 -0
  200. package/dist/types/edges.d.ts +8 -0
  201. package/dist/types/edges.d.ts.map +1 -0
  202. package/dist/types/edges.js +2 -0
  203. package/dist/types/edges.js.map +1 -0
  204. package/dist/types/expeditions.d.ts +19 -0
  205. package/dist/types/expeditions.d.ts.map +1 -0
  206. package/dist/types/expeditions.js +2 -0
  207. package/dist/types/expeditions.js.map +1 -0
  208. package/dist/types/graph.d.ts +29 -0
  209. package/dist/types/graph.d.ts.map +1 -0
  210. package/dist/types/graph.js +2 -0
  211. package/dist/types/graph.js.map +1 -0
  212. package/dist/types/index.d.ts +7 -0
  213. package/dist/types/index.d.ts.map +1 -0
  214. package/dist/types/index.js +2 -0
  215. package/dist/types/index.js.map +1 -0
  216. package/dist/types/nodes.d.ts +35 -0
  217. package/dist/types/nodes.d.ts.map +1 -0
  218. package/dist/types/nodes.js +2 -0
  219. package/dist/types/nodes.js.map +1 -0
  220. package/package.json +36 -0
@@ -0,0 +1,390 @@
1
+ function getChildByFieldName(node, field) {
2
+ return node.childForFieldName(field);
3
+ }
4
+ function getChildrenByType(node, type) {
5
+ return node.children.filter((c) => c.type === type);
6
+ }
7
+ function findDescendantByType(node, type) {
8
+ if (node.type === type)
9
+ return node;
10
+ for (const child of node.children) {
11
+ const found = findDescendantByType(child, type);
12
+ if (found)
13
+ return found;
14
+ }
15
+ return null;
16
+ }
17
+ function extractStringLiteral(node) {
18
+ // String node text includes quotes: "foo" or 'foo'
19
+ const text = node.text;
20
+ return text.slice(1, -1);
21
+ }
22
+ function extractImport(node) {
23
+ const sourceNode = getChildByFieldName(node, "source") ?? findDescendantByType(node, "string");
24
+ if (!sourceNode)
25
+ return null;
26
+ const source = extractStringLiteral(sourceNode);
27
+ const names = [];
28
+ let isTypeOnly = false;
29
+ // Check for `import type` syntax
30
+ const text = node.text;
31
+ if (/^import\s+type\s/.test(text)) {
32
+ isTypeOnly = true;
33
+ }
34
+ // Extract imported names
35
+ const importClause = node.children.find((c) => c.type === "import_clause" || c.type === "named_imports");
36
+ if (importClause) {
37
+ // Check for default import
38
+ const identifier = importClause.children.find((c) => c.type === "identifier");
39
+ if (identifier) {
40
+ names.push("default");
41
+ }
42
+ // Check for namespace import: import * as foo
43
+ const namespaceImport = findDescendantByType(importClause, "namespace_import");
44
+ if (namespaceImport) {
45
+ names.push("*");
46
+ }
47
+ // Check for named imports: import { a, b }
48
+ const namedImports = findDescendantByType(importClause, "named_imports");
49
+ if (namedImports) {
50
+ for (const child of namedImports.children) {
51
+ if (child.type === "import_specifier") {
52
+ const nameNode = getChildByFieldName(child, "name") ?? child.children.find((c) => c.type === "identifier");
53
+ if (nameNode) {
54
+ names.push(nameNode.text);
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ // Side-effect import: import "foo"
61
+ if (names.length === 0 && !importClause) {
62
+ names.push("*");
63
+ }
64
+ return {
65
+ source,
66
+ resolvedPath: null, // Filled in by import-resolver
67
+ names,
68
+ isTypeOnly,
69
+ };
70
+ }
71
+ function extractExport(node) {
72
+ const exports = [];
73
+ const text = node.text;
74
+ const isTypeOnly = /^export\s+type\s/.test(text);
75
+ // Re-export: export { foo } from './bar' or export * from './bar'
76
+ const sourceNode = getChildByFieldName(node, "source") ?? (() => {
77
+ const fromIdx = text.indexOf(" from ");
78
+ if (fromIdx !== -1) {
79
+ return findDescendantByType(node, "string");
80
+ }
81
+ return null;
82
+ })();
83
+ if (sourceNode) {
84
+ exports.push({
85
+ name: "*",
86
+ kind: "re-export",
87
+ isTypeOnly,
88
+ });
89
+ return exports;
90
+ }
91
+ // Export default
92
+ if (node.type === "export_statement") {
93
+ const declaration = getChildByFieldName(node, "declaration");
94
+ if (declaration) {
95
+ const expInfo = classifyDeclaration(declaration);
96
+ exports.push({
97
+ name: expInfo.name,
98
+ kind: expInfo.kind,
99
+ isTypeOnly,
100
+ });
101
+ return exports;
102
+ }
103
+ // export default expression
104
+ if (text.includes("export default")) {
105
+ exports.push({
106
+ name: "default",
107
+ kind: "default",
108
+ isTypeOnly: false,
109
+ });
110
+ return exports;
111
+ }
112
+ // export { name1, name2 }
113
+ const exportClause = findDescendantByType(node, "export_clause");
114
+ if (exportClause) {
115
+ for (const child of exportClause.children) {
116
+ if (child.type === "export_specifier") {
117
+ const nameNode = getChildByFieldName(child, "name") ?? child.children.find((c) => c.type === "identifier");
118
+ if (nameNode) {
119
+ exports.push({
120
+ name: nameNode.text,
121
+ kind: "variable",
122
+ isTypeOnly,
123
+ });
124
+ }
125
+ }
126
+ }
127
+ return exports;
128
+ }
129
+ }
130
+ return exports;
131
+ }
132
+ function classifyDeclaration(node) {
133
+ switch (node.type) {
134
+ case "function_declaration":
135
+ case "function": {
136
+ const name = getChildByFieldName(node, "name");
137
+ return { name: name?.text ?? "default", kind: "function" };
138
+ }
139
+ case "class_declaration":
140
+ case "class": {
141
+ const name = getChildByFieldName(node, "name");
142
+ return { name: name?.text ?? "default", kind: "class" };
143
+ }
144
+ case "lexical_declaration":
145
+ case "variable_declaration": {
146
+ const declarator = node.children.find((c) => c.type === "variable_declarator");
147
+ const name = declarator ? getChildByFieldName(declarator, "name") : null;
148
+ return { name: name?.text ?? "default", kind: "variable" };
149
+ }
150
+ case "type_alias_declaration": {
151
+ const name = getChildByFieldName(node, "name");
152
+ return { name: name?.text ?? "default", kind: "type" };
153
+ }
154
+ case "interface_declaration": {
155
+ const name = getChildByFieldName(node, "name");
156
+ return { name: name?.text ?? "default", kind: "interface" };
157
+ }
158
+ case "enum_declaration": {
159
+ const name = getChildByFieldName(node, "name");
160
+ return { name: name?.text ?? "default", kind: "variable" };
161
+ }
162
+ default:
163
+ return { name: "default", kind: "default" };
164
+ }
165
+ }
166
+ // --- Cyclomatic Complexity and Function Extraction ---
167
+ const COMPLEXITY_NODE_TYPES = new Set([
168
+ "if_statement",
169
+ "for_statement",
170
+ "for_in_statement",
171
+ "while_statement",
172
+ "do_statement",
173
+ "catch_clause",
174
+ "ternary_expression",
175
+ ]);
176
+ function computeComplexity(node) {
177
+ let complexity = 1; // base complexity
178
+ function walk(n) {
179
+ if (COMPLEXITY_NODE_TYPES.has(n.type)) {
180
+ complexity++;
181
+ }
182
+ // Count switch cases (non-default)
183
+ if (n.type === "switch_case" && !n.text.startsWith("default")) {
184
+ complexity++;
185
+ }
186
+ // Count logical operators: &&, ||, ??
187
+ if (n.type === "binary_expression") {
188
+ const op = n.children.find((c) => c.type === "&&" || c.type === "||" || c.type === "??");
189
+ if (op)
190
+ complexity++;
191
+ }
192
+ for (const child of n.children) {
193
+ walk(child);
194
+ }
195
+ }
196
+ walk(node);
197
+ return complexity;
198
+ }
199
+ function isExportedNode(node) {
200
+ let current = node.parent;
201
+ while (current) {
202
+ if (current.type === "export_statement")
203
+ return true;
204
+ current = current.parent;
205
+ }
206
+ return false;
207
+ }
208
+ function truncateBody(text, maxLines) {
209
+ const lines = text.split("\n");
210
+ if (lines.length <= maxLines)
211
+ return text;
212
+ const truncated = lines.slice(0, maxLines).join("\n");
213
+ return truncated + `\n[... ${lines.length - maxLines} more lines]`;
214
+ }
215
+ function extractFunctionName(node) {
216
+ // function_declaration / method_definition: have a "name" field
217
+ const nameNode = node.childForFieldName("name");
218
+ if (nameNode)
219
+ return nameNode.text;
220
+ // arrow_function assigned to a variable: check parent
221
+ if (node.type === "arrow_function" || node.type === "function") {
222
+ const parent = node.parent;
223
+ if (parent?.type === "variable_declarator") {
224
+ const varName = parent.childForFieldName("name");
225
+ if (varName)
226
+ return varName.text;
227
+ }
228
+ if (parent?.type === "pair" || parent?.type === "property_definition") {
229
+ const key = parent.childForFieldName("key");
230
+ if (key)
231
+ return key.text;
232
+ }
233
+ }
234
+ return null;
235
+ }
236
+ function extractParams(node) {
237
+ const params = node.childForFieldName("parameters");
238
+ if (!params)
239
+ return [];
240
+ return params.children
241
+ .filter((c) => c.type !== "(" && c.type !== ")" && c.type !== ",")
242
+ .map((c) => c.text);
243
+ }
244
+ function extractReturnType(node) {
245
+ const returnType = node.childForFieldName("return_type");
246
+ if (!returnType)
247
+ return null;
248
+ // Remove the leading ": "
249
+ const text = returnType.text;
250
+ return text.startsWith(":") ? text.slice(1).trim() : text;
251
+ }
252
+ function extractCallSites(node) {
253
+ const calls = [];
254
+ function walkCalls(n) {
255
+ if (n.type === "call_expression") {
256
+ const fnNode = n.childForFieldName("function") ?? n.children[0];
257
+ if (fnNode) {
258
+ let calleeName = null;
259
+ if (fnNode.type === "identifier") {
260
+ calleeName = fnNode.text;
261
+ }
262
+ else if (fnNode.type === "member_expression") {
263
+ // obj.method() -> extract "method"
264
+ const prop = fnNode.childForFieldName("property");
265
+ if (prop)
266
+ calleeName = prop.text;
267
+ }
268
+ if (calleeName && !calleeName.startsWith("console")) {
269
+ calls.push({ calleeName, line: n.startPosition.row + 1 });
270
+ }
271
+ }
272
+ }
273
+ for (const child of n.children) {
274
+ walkCalls(child);
275
+ }
276
+ }
277
+ walkCalls(node);
278
+ return calls;
279
+ }
280
+ function extractFunctions(root, content) {
281
+ const functions = [];
282
+ const targetTypes = new Set([
283
+ "function_declaration",
284
+ "method_definition",
285
+ "arrow_function",
286
+ "function",
287
+ ]);
288
+ function walk(node) {
289
+ if (targetTypes.has(node.type)) {
290
+ const name = extractFunctionName(node);
291
+ if (name) {
292
+ const bodyNode = node.childForFieldName("body") ?? node;
293
+ functions.push({
294
+ name,
295
+ startLine: node.startPosition.row + 1,
296
+ endLine: node.endPosition.row + 1,
297
+ params: extractParams(node),
298
+ returnType: extractReturnType(node),
299
+ isExported: isExportedNode(node),
300
+ isAsync: node.text.trimStart().startsWith("async"),
301
+ body: truncateBody(node.text, 200),
302
+ complexity: computeComplexity(bodyNode),
303
+ calls: extractCallSites(bodyNode),
304
+ });
305
+ // Don't recurse into nested functions to avoid double-counting
306
+ return;
307
+ }
308
+ }
309
+ for (const child of node.children) {
310
+ walk(child);
311
+ }
312
+ }
313
+ walk(root);
314
+ return functions;
315
+ }
316
+ function extractReExportSource(node) {
317
+ // Look for `from "..."` in export statements like:
318
+ // export { foo } from "./bar"
319
+ // export * from "./baz"
320
+ const sourceNode = findDescendantByType(node, "string");
321
+ const text = node.text;
322
+ // Only match if there's a "from" keyword
323
+ if (!sourceNode || !text.includes(" from "))
324
+ return null;
325
+ const source = extractStringLiteral(sourceNode);
326
+ const isTypeOnly = /^export\s+type\s/.test(text);
327
+ return {
328
+ source,
329
+ resolvedPath: null,
330
+ names: ["*"],
331
+ isTypeOnly,
332
+ };
333
+ }
334
+ function countLOC(content, tree) {
335
+ const lines = content.split("\n");
336
+ const commentLines = new Set();
337
+ // Walk the tree to find all comment nodes
338
+ function walkForComments(node) {
339
+ if (node.type === "comment") {
340
+ for (let i = node.startPosition.row; i <= node.endPosition.row; i++) {
341
+ commentLines.add(i);
342
+ }
343
+ }
344
+ for (const child of node.children) {
345
+ walkForComments(child);
346
+ }
347
+ }
348
+ walkForComments(tree.rootNode);
349
+ let loc = 0;
350
+ for (let i = 0; i < lines.length; i++) {
351
+ const trimmed = lines[i].trim();
352
+ if (trimmed.length > 0 && !commentLines.has(i)) {
353
+ loc++;
354
+ }
355
+ }
356
+ return loc;
357
+ }
358
+ export function visitFile(content, tree, filePath) {
359
+ const imports = [];
360
+ const exports = [];
361
+ const root = tree.rootNode;
362
+ for (const child of root.children) {
363
+ if (child.type === "import_statement") {
364
+ const imp = extractImport(child);
365
+ if (imp) {
366
+ imports.push(imp);
367
+ }
368
+ }
369
+ else if (child.type === "export_statement" || child.type === "export_default_declaration") {
370
+ const exps = extractExport(child);
371
+ exports.push(...exps);
372
+ // Re-exports (export { x } from "./foo") are also imports for dependency tracking
373
+ const reExportSource = extractReExportSource(child);
374
+ if (reExportSource) {
375
+ imports.push(reExportSource);
376
+ }
377
+ }
378
+ }
379
+ const loc = countLOC(content, tree);
380
+ const functions = extractFunctions(root, content);
381
+ return {
382
+ filePath,
383
+ content,
384
+ loc,
385
+ imports,
386
+ exports,
387
+ functions,
388
+ };
389
+ }
390
+ //# sourceMappingURL=ts-js-visitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-js-visitor.js","sourceRoot":"","sources":["../../src/analysis/ts-js-visitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type Parser from "web-tree-sitter";
2
+ import type { FileAnalysis, SupportedLanguage } from "../types/index.js";
3
+ export type VisitorFn = (content: string, tree: Parser.Tree, filePath: string) => FileAnalysis;
4
+ export declare function getVisitor(language: SupportedLanguage): VisitorFn;
5
+ //# sourceMappingURL=visitor-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visitor-registry.d.ts","sourceRoot":"","sources":["../../src/analysis/visitor-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAOzE,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,YAAY,CAAC;AAW/F,wBAAgB,UAAU,CAAC,QAAQ,EAAE,iBAAiB,GAAG,SAAS,CAEjE"}
@@ -0,0 +1,17 @@
1
+ import { visitFile as visitTsJs } from "./ts-js-visitor.js";
2
+ import { visitFile as visitPython } from "./python-visitor.js";
3
+ import { visitFile as visitRust } from "./rust-visitor.js";
4
+ import { visitFile as visitGo } from "./go-visitor.js";
5
+ import { visitFile as visitJava } from "./java-visitor.js";
6
+ const visitors = {
7
+ typescript: visitTsJs,
8
+ javascript: visitTsJs,
9
+ python: visitPython,
10
+ rust: visitRust,
11
+ go: visitGo,
12
+ java: visitJava,
13
+ };
14
+ export function getVisitor(language) {
15
+ return visitors[language];
16
+ }
17
+ //# sourceMappingURL=visitor-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visitor-registry.js","sourceRoot":"","sources":["../../src/analysis/visitor-registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAI3D,MAAM,QAAQ,GAAyC;IACrD,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,MAAM,EAAE,WAAW;IACnB,IAAI,EAAE,SAAS;IACf,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,QAA2B;IACpD,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type Parser from "web-tree-sitter";
2
+ /**
3
+ * Count lines of code excluding comments and blank lines.
4
+ */
5
+ export declare function countLOC(content: string, tree: Parser.Tree): number;
6
+ /**
7
+ * Truncate a body of text to a maximum number of lines.
8
+ */
9
+ export declare function truncateBody(text: string, maxLines: number): string;
10
+ /**
11
+ * Extract the text content of a string literal node, removing the surrounding quotes.
12
+ */
13
+ export declare function extractStringLiteral(node: Parser.SyntaxNode): string;
14
+ /**
15
+ * Find the first descendant of a node with the given type (depth-first).
16
+ */
17
+ export declare function findDescendantByType(node: Parser.SyntaxNode, type: string): Parser.SyntaxNode | null;
18
+ /**
19
+ * Get all direct children of a node with the given type.
20
+ */
21
+ export declare function getChildrenByType(node: Parser.SyntaxNode, type: string): Parser.SyntaxNode[];
22
+ /**
23
+ * Collect all call expression sites within a node subtree.
24
+ * Returns an array of { calleeName, line } objects.
25
+ * The `callNodeType` parameter specifies the AST node type for calls (e.g., "call_expression").
26
+ * The `extractCalleeName` function extracts the function name from the call node.
27
+ */
28
+ export declare function extractCallSitesGeneric(node: Parser.SyntaxNode, callNodeType: string, extractCalleeName: (callNode: Parser.SyntaxNode) => string | null): {
29
+ calleeName: string;
30
+ line: number;
31
+ }[];
32
+ /**
33
+ * Compute cyclomatic complexity given a set of node types that each add 1 to complexity.
34
+ * Base complexity is 1.
35
+ * An optional `extraCheck` callback can handle additional patterns (e.g., logical operators).
36
+ */
37
+ export declare function computeComplexityGeneric(node: Parser.SyntaxNode, complexityTypes: Set<string>, extraCheck?: (n: Parser.SyntaxNode) => number): number;
38
+ //# sourceMappingURL=visitor-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visitor-utils.d.ts","sourceRoot":"","sources":["../../src/analysis/visitor-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAE1C;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAyBnE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKnE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAOpE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAOpG;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAE5F;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,KAAK,MAAM,GAAG,IAAI,GAChE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAiBxC;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,EAC5B,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,KAAK,MAAM,GAC5C,MAAM,CAiBR"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Count lines of code excluding comments and blank lines.
3
+ */
4
+ export function countLOC(content, tree) {
5
+ const lines = content.split("\n");
6
+ const commentLines = new Set();
7
+ function walkForComments(node) {
8
+ if (node.type === "comment") {
9
+ for (let i = node.startPosition.row; i <= node.endPosition.row; i++) {
10
+ commentLines.add(i);
11
+ }
12
+ }
13
+ for (const child of node.children) {
14
+ walkForComments(child);
15
+ }
16
+ }
17
+ walkForComments(tree.rootNode);
18
+ let loc = 0;
19
+ for (let i = 0; i < lines.length; i++) {
20
+ const trimmed = lines[i].trim();
21
+ if (trimmed.length > 0 && !commentLines.has(i)) {
22
+ loc++;
23
+ }
24
+ }
25
+ return loc;
26
+ }
27
+ /**
28
+ * Truncate a body of text to a maximum number of lines.
29
+ */
30
+ export function truncateBody(text, maxLines) {
31
+ const lines = text.split("\n");
32
+ if (lines.length <= maxLines)
33
+ return text;
34
+ const truncated = lines.slice(0, maxLines).join("\n");
35
+ return truncated + `\n[... ${lines.length - maxLines} more lines]`;
36
+ }
37
+ /**
38
+ * Extract the text content of a string literal node, removing the surrounding quotes.
39
+ */
40
+ export function extractStringLiteral(node) {
41
+ const text = node.text;
42
+ // Handle single, double, triple, and backtick quotes
43
+ if (text.startsWith('"""') || text.startsWith("'''")) {
44
+ return text.slice(3, -3);
45
+ }
46
+ return text.slice(1, -1);
47
+ }
48
+ /**
49
+ * Find the first descendant of a node with the given type (depth-first).
50
+ */
51
+ export function findDescendantByType(node, type) {
52
+ if (node.type === type)
53
+ return node;
54
+ for (const child of node.children) {
55
+ const found = findDescendantByType(child, type);
56
+ if (found)
57
+ return found;
58
+ }
59
+ return null;
60
+ }
61
+ /**
62
+ * Get all direct children of a node with the given type.
63
+ */
64
+ export function getChildrenByType(node, type) {
65
+ return node.children.filter((c) => c.type === type);
66
+ }
67
+ /**
68
+ * Collect all call expression sites within a node subtree.
69
+ * Returns an array of { calleeName, line } objects.
70
+ * The `callNodeType` parameter specifies the AST node type for calls (e.g., "call_expression").
71
+ * The `extractCalleeName` function extracts the function name from the call node.
72
+ */
73
+ export function extractCallSitesGeneric(node, callNodeType, extractCalleeName) {
74
+ const calls = [];
75
+ function walk(n) {
76
+ if (n.type === callNodeType) {
77
+ const name = extractCalleeName(n);
78
+ if (name) {
79
+ calls.push({ calleeName: name, line: n.startPosition.row + 1 });
80
+ }
81
+ }
82
+ for (const child of n.children) {
83
+ walk(child);
84
+ }
85
+ }
86
+ walk(node);
87
+ return calls;
88
+ }
89
+ /**
90
+ * Compute cyclomatic complexity given a set of node types that each add 1 to complexity.
91
+ * Base complexity is 1.
92
+ * An optional `extraCheck` callback can handle additional patterns (e.g., logical operators).
93
+ */
94
+ export function computeComplexityGeneric(node, complexityTypes, extraCheck) {
95
+ let complexity = 1;
96
+ function walk(n) {
97
+ if (complexityTypes.has(n.type)) {
98
+ complexity++;
99
+ }
100
+ if (extraCheck) {
101
+ complexity += extraCheck(n);
102
+ }
103
+ for (const child of n.children) {
104
+ walk(child);
105
+ }
106
+ }
107
+ walk(node);
108
+ return complexity;
109
+ }
110
+ //# sourceMappingURL=visitor-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visitor-utils.js","sourceRoot":"","sources":["../../src/analysis/visitor-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export declare class CartographerError extends Error {
2
+ readonly code: string;
3
+ constructor(message: string, code: string, options?: ErrorOptions);
4
+ }
5
+ export declare class IngestionError extends CartographerError {
6
+ constructor(message: string, code?: string, options?: ErrorOptions);
7
+ }
8
+ export declare class AnalysisError extends CartographerError {
9
+ constructor(message: string, code?: string, options?: ErrorOptions);
10
+ }
11
+ export declare class GraphError extends CartographerError {
12
+ constructor(message: string, code?: string, options?: ErrorOptions);
13
+ }
14
+ export declare class GitError extends CartographerError {
15
+ constructor(message: string, code?: string, options?: ErrorOptions);
16
+ }
17
+ export declare class LlmError extends CartographerError {
18
+ constructor(message: string, code?: string, options?: ErrorOptions);
19
+ }
20
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAkB,SAAQ,KAAK;aAGxB,IAAI,EAAE,MAAM;gBAD5B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EAC5B,OAAO,CAAC,EAAE,YAAY;CAKzB;AAED,qBAAa,cAAe,SAAQ,iBAAiB;gBACvC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAA0B,EAAE,OAAO,CAAC,EAAE,YAAY;CAItF;AAED,qBAAa,aAAc,SAAQ,iBAAiB;gBACtC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAyB,EAAE,OAAO,CAAC,EAAE,YAAY;CAIrF;AAED,qBAAa,UAAW,SAAQ,iBAAiB;gBACnC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAsB,EAAE,OAAO,CAAC,EAAE,YAAY;CAIlF;AAED,qBAAa,QAAS,SAAQ,iBAAiB;gBACjC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoB,EAAE,OAAO,CAAC,EAAE,YAAY;CAIhF;AAED,qBAAa,QAAS,SAAQ,iBAAiB;gBACjC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoB,EAAE,OAAO,CAAC,EAAE,YAAY;CAIhF"}