cgb-builder 1.0.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 (71) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +369 -0
  3. package/dist/bundle/generator.d.ts +51 -0
  4. package/dist/bundle/generator.d.ts.map +1 -0
  5. package/dist/bundle/generator.js +291 -0
  6. package/dist/bundle/generator.js.map +1 -0
  7. package/dist/cli/index.d.ts +7 -0
  8. package/dist/cli/index.d.ts.map +1 -0
  9. package/dist/cli/index.js +388 -0
  10. package/dist/cli/index.js.map +1 -0
  11. package/dist/graph/db.d.ts +43 -0
  12. package/dist/graph/db.d.ts.map +1 -0
  13. package/dist/graph/db.js +321 -0
  14. package/dist/graph/db.js.map +1 -0
  15. package/dist/graph/engine.d.ts +62 -0
  16. package/dist/graph/engine.d.ts.map +1 -0
  17. package/dist/graph/engine.js +246 -0
  18. package/dist/graph/engine.js.map +1 -0
  19. package/dist/index.d.ts +13 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +22 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/mcp/server.d.ts +17 -0
  24. package/dist/mcp/server.d.ts.map +1 -0
  25. package/dist/mcp/server.js +458 -0
  26. package/dist/mcp/server.js.map +1 -0
  27. package/dist/parser/adapter.d.ts +10 -0
  28. package/dist/parser/adapter.d.ts.map +1 -0
  29. package/dist/parser/adapter.js +6 -0
  30. package/dist/parser/adapter.js.map +1 -0
  31. package/dist/parser/adapters/csharp.d.ts +24 -0
  32. package/dist/parser/adapters/csharp.d.ts.map +1 -0
  33. package/dist/parser/adapters/csharp.js +318 -0
  34. package/dist/parser/adapters/csharp.js.map +1 -0
  35. package/dist/parser/adapters/go.d.ts +21 -0
  36. package/dist/parser/adapters/go.d.ts.map +1 -0
  37. package/dist/parser/adapters/go.js +186 -0
  38. package/dist/parser/adapters/go.js.map +1 -0
  39. package/dist/parser/adapters/java.d.ts +22 -0
  40. package/dist/parser/adapters/java.d.ts.map +1 -0
  41. package/dist/parser/adapters/java.js +235 -0
  42. package/dist/parser/adapters/java.js.map +1 -0
  43. package/dist/parser/adapters/python.d.ts +19 -0
  44. package/dist/parser/adapters/python.d.ts.map +1 -0
  45. package/dist/parser/adapters/python.js +201 -0
  46. package/dist/parser/adapters/python.js.map +1 -0
  47. package/dist/parser/adapters/typescript.d.ts +24 -0
  48. package/dist/parser/adapters/typescript.d.ts.map +1 -0
  49. package/dist/parser/adapters/typescript.js +349 -0
  50. package/dist/parser/adapters/typescript.js.map +1 -0
  51. package/dist/parser/index.d.ts +42 -0
  52. package/dist/parser/index.d.ts.map +1 -0
  53. package/dist/parser/index.js +191 -0
  54. package/dist/parser/index.js.map +1 -0
  55. package/dist/parser/tree-sitter-engine.d.ts +25 -0
  56. package/dist/parser/tree-sitter-engine.d.ts.map +1 -0
  57. package/dist/parser/tree-sitter-engine.js +107 -0
  58. package/dist/parser/tree-sitter-engine.js.map +1 -0
  59. package/dist/parser/utils.d.ts +19 -0
  60. package/dist/parser/utils.d.ts.map +1 -0
  61. package/dist/parser/utils.js +111 -0
  62. package/dist/parser/utils.js.map +1 -0
  63. package/dist/types.d.ts +93 -0
  64. package/dist/types.d.ts.map +1 -0
  65. package/dist/types.js +16 -0
  66. package/dist/types.js.map +1 -0
  67. package/dist/watcher/index.d.ts +36 -0
  68. package/dist/watcher/index.d.ts.map +1 -0
  69. package/dist/watcher/index.js +139 -0
  70. package/dist/watcher/index.js.map +1 -0
  71. package/package.json +81 -0
@@ -0,0 +1,318 @@
1
+ "use strict";
2
+ /**
3
+ * C# language adapter.
4
+ *
5
+ * Extracts:
6
+ * - using directives → imports edges
7
+ * - class / record definitions → class nodes + inherits / implements edges
8
+ * - interface definitions → interface nodes
9
+ * - method declarations → method nodes
10
+ * - namespace declarations → module nodes
11
+ */
12
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ }));
23
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
25
+ }) : function(o, v) {
26
+ o["default"] = v;
27
+ });
28
+ var __importStar = (this && this.__importStar) || (function () {
29
+ var ownKeys = function(o) {
30
+ ownKeys = Object.getOwnPropertyNames || function (o) {
31
+ var ar = [];
32
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
+ return ar;
34
+ };
35
+ return ownKeys(o);
36
+ };
37
+ return function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ })();
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.CSharpAdapter = void 0;
47
+ const path = __importStar(require("path"));
48
+ const tree_sitter_engine_js_1 = require("../tree-sitter-engine.js");
49
+ const utils_js_1 = require("../utils.js");
50
+ // ─── CSharpAdapter ────────────────────────────────────────────────────────────
51
+ class CSharpAdapter {
52
+ language = 'csharp';
53
+ async parse(filePath, source) {
54
+ const tree = await tree_sitter_engine_js_1.treeSitterEngine.parse(source, 'csharp');
55
+ const langObj = await tree_sitter_engine_js_1.treeSitterEngine.loadLanguage('csharp');
56
+ const nodes = [];
57
+ const edges = [];
58
+ // File node
59
+ const fileNodeId = (0, utils_js_1.makeNodeId)('file', filePath);
60
+ nodes.push({
61
+ id: fileNodeId,
62
+ kind: 'file',
63
+ name: (0, utils_js_1.fileDisplayName)(filePath),
64
+ filePath,
65
+ description: `C# source file: ${path.basename(filePath)}`,
66
+ isExternal: false,
67
+ language: 'csharp',
68
+ meta: '{}',
69
+ });
70
+ // ── Using directives ─────────────────────────────────────────────────────
71
+ this.extractUsings(tree, langObj, filePath, fileNodeId, nodes, edges);
72
+ // ── Namespaces ───────────────────────────────────────────────────────────
73
+ this.extractNamespaces(tree, langObj, filePath, fileNodeId, nodes, edges);
74
+ // ── Classes & Records ────────────────────────────────────────────────────
75
+ this.extractClasses(tree, langObj, filePath, fileNodeId, nodes, edges, source);
76
+ // ── Interfaces ───────────────────────────────────────────────────────────
77
+ this.extractInterfaces(tree, langObj, filePath, fileNodeId, nodes, edges);
78
+ // ── Methods ──────────────────────────────────────────────────────────────
79
+ this.extractMethods(tree, langObj, filePath, fileNodeId, nodes, edges);
80
+ return { filePath, language: 'csharp', nodes, edges };
81
+ }
82
+ // ─── Private helpers ───────────────────────────────────────────────────────
83
+ extractUsings(tree, _lang, _filePath, fileNodeId, nodes, edges) {
84
+ try {
85
+ // Use a simpler approach for usings — walk the tree manually
86
+ const usingNodes = this.findNodesByType(tree.rootNode, 'using_directive');
87
+ const seen = new Set();
88
+ for (const usingNode of usingNodes) {
89
+ const nameText = usingNode.text
90
+ .replace(/^using\s+(static\s+)?/, '')
91
+ .replace(/;$/, '')
92
+ .trim();
93
+ if (!nameText || seen.has(nameText))
94
+ continue;
95
+ seen.add(nameText);
96
+ // Top-level namespace (first segment)
97
+ const topNs = nameText.split('.')[0];
98
+ const extId = (0, utils_js_1.makeNodeId)('external_dep', topNs);
99
+ if (!nodes.find((n) => n.id === extId)) {
100
+ nodes.push({
101
+ id: extId,
102
+ kind: 'external_dep',
103
+ name: topNs,
104
+ filePath: topNs,
105
+ description: `Namespace: ${nameText}`,
106
+ isExternal: true,
107
+ language: null,
108
+ meta: '{}',
109
+ });
110
+ }
111
+ edges.push({
112
+ id: (0, utils_js_1.makeEdgeId)(fileNodeId, 'imports', extId),
113
+ fromId: fileNodeId,
114
+ toId: extId,
115
+ kind: 'imports',
116
+ reason: `using ${nameText}`,
117
+ });
118
+ }
119
+ }
120
+ catch {
121
+ // Gracefully skip
122
+ }
123
+ }
124
+ extractNamespaces(tree, _lang, filePath, fileNodeId, nodes, edges) {
125
+ try {
126
+ const nsNodes = this.findNodesByType(tree.rootNode, 'namespace_declaration');
127
+ for (const nsNode of nsNodes) {
128
+ const nameNode = nsNode.childForFieldName('name');
129
+ if (!nameNode)
130
+ continue;
131
+ const nsName = nameNode.text;
132
+ const nsId = (0, utils_js_1.makeNodeId)('module', filePath, nsName);
133
+ nodes.push({
134
+ id: nsId,
135
+ kind: 'module',
136
+ name: nsName,
137
+ filePath,
138
+ description: `Namespace ${nsName}`,
139
+ isExternal: false,
140
+ language: 'csharp',
141
+ meta: '{}',
142
+ });
143
+ edges.push({
144
+ id: (0, utils_js_1.makeEdgeId)(fileNodeId, 'exports', nsId),
145
+ fromId: fileNodeId,
146
+ toId: nsId,
147
+ kind: 'exports',
148
+ reason: `declares namespace ${nsName}`,
149
+ });
150
+ }
151
+ }
152
+ catch {
153
+ // Gracefully skip
154
+ }
155
+ }
156
+ extractClasses(tree, _lang, filePath, fileNodeId, nodes, edges, source) {
157
+ try {
158
+ const classNodes = [
159
+ ...this.findNodesByType(tree.rootNode, 'class_declaration'),
160
+ ...this.findNodesByType(tree.rootNode, 'record_declaration'),
161
+ ];
162
+ for (const classNode of classNodes) {
163
+ const nameNode = classNode.childForFieldName('name');
164
+ if (!nameNode)
165
+ continue;
166
+ const className = nameNode.text;
167
+ const classId = (0, utils_js_1.makeNodeId)('class', filePath, className);
168
+ const snippet = (0, utils_js_1.truncate)(source.slice(classNode.startIndex, classNode.startIndex + 120));
169
+ nodes.push({
170
+ id: classId,
171
+ kind: 'class',
172
+ name: className,
173
+ filePath,
174
+ description: `Class ${className}. ${snippet}`,
175
+ isExternal: false,
176
+ language: 'csharp',
177
+ meta: JSON.stringify({ isRecord: classNode.type === 'record_declaration' }),
178
+ });
179
+ edges.push({
180
+ id: (0, utils_js_1.makeEdgeId)(fileNodeId, 'exports', classId),
181
+ fromId: fileNodeId,
182
+ toId: classId,
183
+ kind: 'exports',
184
+ reason: `defines class ${className}`,
185
+ });
186
+ // Base list (extends / implements)
187
+ const baseList = classNode.childForFieldName('bases');
188
+ if (baseList) {
189
+ for (const child of baseList.namedChildren) {
190
+ const baseName = child.text.split('<')[0].trim(); // strip generics
191
+ if (!baseName)
192
+ continue;
193
+ // We can't tell if it's a class or interface statically without type info,
194
+ // so use a generic "class" node as target and mark reason clearly
195
+ const parentId = (0, utils_js_1.makeNodeId)('class', filePath, baseName);
196
+ edges.push({
197
+ id: (0, utils_js_1.makeEdgeId)(classId, 'inherits', parentId),
198
+ fromId: classId,
199
+ toId: parentId,
200
+ kind: 'inherits',
201
+ reason: `inherits or implements ${baseName}`,
202
+ });
203
+ }
204
+ }
205
+ }
206
+ }
207
+ catch {
208
+ // Gracefully skip
209
+ }
210
+ }
211
+ extractInterfaces(tree, _lang, filePath, fileNodeId, nodes, edges) {
212
+ try {
213
+ const ifaceNodes = this.findNodesByType(tree.rootNode, 'interface_declaration');
214
+ for (const ifaceNode of ifaceNodes) {
215
+ const nameNode = ifaceNode.childForFieldName('name');
216
+ if (!nameNode)
217
+ continue;
218
+ const ifaceName = nameNode.text;
219
+ const ifaceId = (0, utils_js_1.makeNodeId)('interface', filePath, ifaceName);
220
+ nodes.push({
221
+ id: ifaceId,
222
+ kind: 'interface',
223
+ name: ifaceName,
224
+ filePath,
225
+ description: `Interface ${ifaceName}`,
226
+ isExternal: false,
227
+ language: 'csharp',
228
+ meta: '{}',
229
+ });
230
+ edges.push({
231
+ id: (0, utils_js_1.makeEdgeId)(fileNodeId, 'exports', ifaceId),
232
+ fromId: fileNodeId,
233
+ toId: ifaceId,
234
+ kind: 'exports',
235
+ reason: `defines interface ${ifaceName}`,
236
+ });
237
+ // Base interfaces
238
+ const baseList = ifaceNode.childForFieldName('bases');
239
+ if (baseList) {
240
+ for (const child of baseList.namedChildren) {
241
+ const baseName = child.text.split('<')[0].trim();
242
+ if (!baseName)
243
+ continue;
244
+ const baseId = (0, utils_js_1.makeNodeId)('interface', filePath, baseName);
245
+ edges.push({
246
+ id: (0, utils_js_1.makeEdgeId)(ifaceId, 'inherits', baseId),
247
+ fromId: ifaceId,
248
+ toId: baseId,
249
+ kind: 'inherits',
250
+ reason: `extends interface ${baseName}`,
251
+ });
252
+ }
253
+ }
254
+ }
255
+ }
256
+ catch {
257
+ // Gracefully skip
258
+ }
259
+ }
260
+ extractMethods(tree, _lang, filePath, fileNodeId, nodes, edges) {
261
+ try {
262
+ const methodNodes = [
263
+ ...this.findNodesByType(tree.rootNode, 'method_declaration'),
264
+ ...this.findNodesByType(tree.rootNode, 'constructor_declaration'),
265
+ ];
266
+ const seen = new Set();
267
+ for (const methodNode of methodNodes) {
268
+ const nameNode = methodNode.childForFieldName('name');
269
+ if (!nameNode)
270
+ continue;
271
+ const methodName = nameNode.text;
272
+ if (seen.has(methodName))
273
+ continue;
274
+ seen.add(methodName);
275
+ const returnTypeNode = methodNode.childForFieldName('type');
276
+ const returnType = returnTypeNode?.text ?? 'void';
277
+ const methodId = (0, utils_js_1.makeNodeId)('method', filePath, methodName);
278
+ nodes.push({
279
+ id: methodId,
280
+ kind: 'method',
281
+ name: methodName,
282
+ filePath,
283
+ description: `Method ${methodName}: ${returnType}`,
284
+ isExternal: false,
285
+ language: 'csharp',
286
+ meta: JSON.stringify({ returnType }),
287
+ });
288
+ edges.push({
289
+ id: (0, utils_js_1.makeEdgeId)(fileNodeId, 'exports', methodId),
290
+ fromId: fileNodeId,
291
+ toId: methodId,
292
+ kind: 'exports',
293
+ reason: `defines method ${methodName}`,
294
+ });
295
+ }
296
+ }
297
+ catch {
298
+ // Gracefully skip
299
+ }
300
+ }
301
+ /** Walk the tree recursively to find all nodes of a given type */
302
+ findNodesByType(node, type) {
303
+ const results = [];
304
+ const stack = [node];
305
+ while (stack.length) {
306
+ const current = stack.pop();
307
+ if (current.type === type) {
308
+ results.push(current);
309
+ }
310
+ for (const child of current.children) {
311
+ stack.push(child);
312
+ }
313
+ }
314
+ return results;
315
+ }
316
+ }
317
+ exports.CSharpAdapter = CSharpAdapter;
318
+ //# sourceMappingURL=csharp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csharp.js","sourceRoot":"","sources":["../../../src/parser/adapters/csharp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Go language adapter.
3
+ *
4
+ * Extracts:
5
+ * - import declarations → imports edges
6
+ * - struct / type definitions → class nodes
7
+ * - interface definitions → interface nodes
8
+ * - function declarations → function nodes
9
+ */
10
+ import type { LanguageAdapter } from '../adapter.js';
11
+ import type { ParsedFile } from '../../types.js';
12
+ export declare class GoAdapter implements LanguageAdapter {
13
+ readonly language: "go";
14
+ parse(filePath: string, source: string): Promise<ParsedFile>;
15
+ private extractImports;
16
+ private extractTypes;
17
+ private extractFunctions;
18
+ private findByType;
19
+ private findByTypes;
20
+ }
21
+ //# sourceMappingURL=go.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/parser/adapters/go.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,KAAK,EAAwB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEvE,qBAAa,SAAU,YAAW,eAAe;IAC/C,QAAQ,CAAC,QAAQ,EAAG,IAAI,CAAU;IAE5B,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAyBlE,OAAO,CAAC,cAAc;IA2CtB,OAAO,CAAC,YAAY;IAyCpB,OAAO,CAAC,gBAAgB;IAuCxB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,WAAW;CAUpB"}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ /**
3
+ * Go language adapter.
4
+ *
5
+ * Extracts:
6
+ * - import declarations → imports edges
7
+ * - struct / type definitions → class nodes
8
+ * - interface definitions → interface nodes
9
+ * - function declarations → function nodes
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.GoAdapter = void 0;
46
+ const path = __importStar(require("path"));
47
+ const tree_sitter_engine_js_1 = require("../tree-sitter-engine.js");
48
+ const utils_js_1 = require("../utils.js");
49
+ class GoAdapter {
50
+ language = 'go';
51
+ async parse(filePath, source) {
52
+ const tree = await tree_sitter_engine_js_1.treeSitterEngine.parse(source, 'go');
53
+ const nodes = [];
54
+ const edges = [];
55
+ const fileNodeId = (0, utils_js_1.makeNodeId)('file', filePath);
56
+ nodes.push({
57
+ id: fileNodeId,
58
+ kind: 'file',
59
+ name: (0, utils_js_1.fileDisplayName)(filePath),
60
+ filePath,
61
+ description: `Go source file: ${path.basename(filePath)}`,
62
+ isExternal: false,
63
+ language: 'go',
64
+ meta: '{}',
65
+ });
66
+ this.extractImports(tree.rootNode, filePath, fileNodeId, nodes, edges);
67
+ this.extractTypes(tree.rootNode, filePath, fileNodeId, nodes, edges, source);
68
+ this.extractFunctions(tree.rootNode, filePath, fileNodeId, nodes, edges);
69
+ return { filePath, language: 'go', nodes, edges };
70
+ }
71
+ extractImports(root, _filePath, fileNodeId, nodes, edges) {
72
+ const seen = new Set();
73
+ for (const node of this.findByType(root, 'import_spec')) {
74
+ // path field contains the quoted import path
75
+ const pathNode = node.childForFieldName('path') ?? node.firstNamedChild;
76
+ if (!pathNode)
77
+ continue;
78
+ const rawPath = pathNode.text.replace(/^["']|["']$/g, '');
79
+ if (!rawPath || seen.has(rawPath))
80
+ continue;
81
+ seen.add(rawPath);
82
+ // Go imports are always external packages or local module paths
83
+ const pkgName = rawPath.split('/').pop() ?? rawPath;
84
+ const extId = (0, utils_js_1.makeNodeId)('external_dep', rawPath);
85
+ if (!nodes.find((n) => n.id === extId)) {
86
+ nodes.push({
87
+ id: extId,
88
+ kind: 'external_dep',
89
+ name: pkgName,
90
+ filePath: rawPath,
91
+ description: `Go package: ${rawPath}`,
92
+ isExternal: true,
93
+ language: null,
94
+ meta: '{}',
95
+ });
96
+ }
97
+ edges.push({
98
+ id: (0, utils_js_1.makeEdgeId)(fileNodeId, 'imports', extId),
99
+ fromId: fileNodeId,
100
+ toId: extId,
101
+ kind: 'imports',
102
+ reason: `imports ${rawPath}`,
103
+ });
104
+ }
105
+ }
106
+ extractTypes(root, filePath, fileNodeId, nodes, edges, source) {
107
+ for (const node of this.findByType(root, 'type_declaration')) {
108
+ for (const spec of this.findByType(node, 'type_spec')) {
109
+ const nameNode = spec.childForFieldName('name');
110
+ if (!nameNode)
111
+ continue;
112
+ const typeName = nameNode.text;
113
+ const typeNode = spec.childForFieldName('type');
114
+ const isInterface = typeNode?.type === 'interface_type';
115
+ const kind = isInterface ? 'interface' : 'class';
116
+ const nodeId = (0, utils_js_1.makeNodeId)(kind, filePath, typeName);
117
+ const snippet = (0, utils_js_1.truncate)(source.slice(node.startIndex, node.startIndex + 120));
118
+ nodes.push({
119
+ id: nodeId,
120
+ kind,
121
+ name: typeName,
122
+ filePath,
123
+ description: `${isInterface ? 'Interface' : 'Struct'} ${typeName}. ${snippet}`,
124
+ isExternal: false,
125
+ language: 'go',
126
+ meta: '{}',
127
+ });
128
+ edges.push({
129
+ id: (0, utils_js_1.makeEdgeId)(fileNodeId, 'exports', nodeId),
130
+ fromId: fileNodeId,
131
+ toId: nodeId,
132
+ kind: 'exports',
133
+ reason: `defines ${kind} ${typeName}`,
134
+ });
135
+ }
136
+ }
137
+ }
138
+ extractFunctions(root, filePath, fileNodeId, nodes, edges) {
139
+ const seen = new Set();
140
+ for (const node of this.findByTypes(root, ['function_declaration', 'method_declaration'])) {
141
+ const nameNode = node.childForFieldName('name');
142
+ if (!nameNode)
143
+ continue;
144
+ const fnName = nameNode.text;
145
+ if (seen.has(fnName))
146
+ continue;
147
+ seen.add(fnName);
148
+ const kind = node.type === 'method_declaration' ? 'method' : 'function';
149
+ const fnId = (0, utils_js_1.makeNodeId)(kind, filePath, fnName);
150
+ nodes.push({
151
+ id: fnId,
152
+ kind,
153
+ name: fnName,
154
+ filePath,
155
+ description: `${kind === 'method' ? 'Method' : 'Function'} ${fnName} in ${path.basename(filePath)}`,
156
+ isExternal: false,
157
+ language: 'go',
158
+ meta: '{}',
159
+ });
160
+ edges.push({
161
+ id: (0, utils_js_1.makeEdgeId)(fileNodeId, 'exports', fnId),
162
+ fromId: fileNodeId,
163
+ toId: fnId,
164
+ kind: 'exports',
165
+ reason: `defines ${kind} ${fnName}`,
166
+ });
167
+ }
168
+ }
169
+ findByType(node, type) {
170
+ return this.findByTypes(node, [type]);
171
+ }
172
+ findByTypes(node, types) {
173
+ const results = [];
174
+ const stack = [node];
175
+ while (stack.length) {
176
+ const cur = stack.pop();
177
+ if (types.includes(cur.type))
178
+ results.push(cur);
179
+ for (const child of cur.children)
180
+ stack.push(child);
181
+ }
182
+ return results;
183
+ }
184
+ }
185
+ exports.GoAdapter = GoAdapter;
186
+ //# sourceMappingURL=go.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go.js","sourceRoot":"","sources":["../../../src/parser/adapters/go.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Java language adapter.
3
+ *
4
+ * Extracts:
5
+ * - import declarations → imports edges
6
+ * - class / enum definitions → class nodes + inherits / implements edges
7
+ * - interface definitions → interface nodes
8
+ * - method declarations → method nodes
9
+ */
10
+ import type { LanguageAdapter } from '../adapter.js';
11
+ import type { ParsedFile } from '../../types.js';
12
+ export declare class JavaAdapter implements LanguageAdapter {
13
+ readonly language: "java";
14
+ parse(filePath: string, source: string): Promise<ParsedFile>;
15
+ private extractImports;
16
+ private extractClasses;
17
+ private extractInterfaces;
18
+ private extractMethods;
19
+ private findByType;
20
+ private findByTypes;
21
+ }
22
+ //# sourceMappingURL=java.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../../src/parser/adapters/java.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,KAAK,EAAwB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEvE,qBAAa,WAAY,YAAW,eAAe;IACjD,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAU;IAE9B,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA0BlE,OAAO,CAAC,cAAc;IA0CtB,OAAO,CAAC,cAAc;IAmEtB,OAAO,CAAC,iBAAiB;IAkCzB,OAAO,CAAC,cAAc;IAqCtB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,WAAW;CAUpB"}