@colbymchenry/codegraph-darwin-x64 0.9.3 → 0.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/dist/bin/codegraph.d.ts +3 -0
- package/lib/dist/bin/codegraph.d.ts.map +1 -1
- package/lib/dist/bin/codegraph.js +250 -0
- package/lib/dist/bin/codegraph.js.map +1 -1
- package/lib/dist/context/index.d.ts +13 -0
- package/lib/dist/context/index.d.ts.map +1 -1
- package/lib/dist/context/index.js +120 -1
- package/lib/dist/context/index.js.map +1 -1
- package/lib/dist/db/index.d.ts +18 -0
- package/lib/dist/db/index.d.ts.map +1 -1
- package/lib/dist/db/index.js +31 -0
- package/lib/dist/db/index.js.map +1 -1
- package/lib/dist/db/queries.d.ts +16 -0
- package/lib/dist/db/queries.d.ts.map +1 -1
- package/lib/dist/db/queries.js +80 -27
- package/lib/dist/db/queries.js.map +1 -1
- package/lib/dist/extraction/grammars.d.ts +6 -0
- package/lib/dist/extraction/grammars.d.ts.map +1 -1
- package/lib/dist/extraction/grammars.js +31 -1
- package/lib/dist/extraction/grammars.js.map +1 -1
- package/lib/dist/extraction/index.d.ts +15 -2
- package/lib/dist/extraction/index.d.ts.map +1 -1
- package/lib/dist/extraction/index.js +170 -78
- package/lib/dist/extraction/index.js.map +1 -1
- package/lib/dist/extraction/languages/index.d.ts.map +1 -1
- package/lib/dist/extraction/languages/index.js +2 -0
- package/lib/dist/extraction/languages/index.js.map +1 -1
- package/lib/dist/extraction/languages/objc.d.ts +3 -0
- package/lib/dist/extraction/languages/objc.d.ts.map +1 -0
- package/lib/dist/extraction/languages/objc.js +133 -0
- package/lib/dist/extraction/languages/objc.js.map +1 -0
- package/lib/dist/extraction/tree-sitter-types.d.ts +4 -0
- package/lib/dist/extraction/tree-sitter-types.d.ts.map +1 -1
- package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/lib/dist/extraction/tree-sitter.js +155 -9
- package/lib/dist/extraction/tree-sitter.js.map +1 -1
- package/lib/dist/extraction/wasm-runtime-flags.d.ts +12 -0
- package/lib/dist/extraction/wasm-runtime-flags.d.ts.map +1 -1
- package/lib/dist/extraction/wasm-runtime-flags.js +14 -2
- package/lib/dist/extraction/wasm-runtime-flags.js.map +1 -1
- package/lib/dist/graph/traversal.d.ts.map +1 -1
- package/lib/dist/graph/traversal.js +71 -36
- package/lib/dist/graph/traversal.js.map +1 -1
- package/lib/dist/index.d.ts +21 -2
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +42 -0
- package/lib/dist/index.js.map +1 -1
- package/lib/dist/installer/instructions-template.d.ts +2 -2
- package/lib/dist/installer/instructions-template.d.ts.map +1 -1
- package/lib/dist/installer/instructions-template.js +3 -2
- package/lib/dist/installer/instructions-template.js.map +1 -1
- package/lib/dist/mcp/daemon-paths.d.ts +46 -0
- package/lib/dist/mcp/daemon-paths.d.ts.map +1 -0
- package/lib/dist/mcp/daemon-paths.js +125 -0
- package/lib/dist/mcp/daemon-paths.js.map +1 -0
- package/lib/dist/mcp/daemon.d.ts +161 -0
- package/lib/dist/mcp/daemon.d.ts.map +1 -0
- package/lib/dist/mcp/daemon.js +403 -0
- package/lib/dist/mcp/daemon.js.map +1 -0
- package/lib/dist/mcp/engine.d.ts +100 -0
- package/lib/dist/mcp/engine.d.ts.map +1 -0
- package/lib/dist/mcp/engine.js +291 -0
- package/lib/dist/mcp/engine.js.map +1 -0
- package/lib/dist/mcp/index.d.ts +67 -52
- package/lib/dist/mcp/index.d.ts.map +1 -1
- package/lib/dist/mcp/index.js +347 -330
- package/lib/dist/mcp/index.js.map +1 -1
- package/lib/dist/mcp/proxy.d.ts +46 -0
- package/lib/dist/mcp/proxy.d.ts.map +1 -0
- package/lib/dist/mcp/proxy.js +276 -0
- package/lib/dist/mcp/proxy.js.map +1 -0
- package/lib/dist/mcp/server-instructions.d.ts +1 -1
- package/lib/dist/mcp/server-instructions.d.ts.map +1 -1
- package/lib/dist/mcp/server-instructions.js +3 -1
- package/lib/dist/mcp/server-instructions.js.map +1 -1
- package/lib/dist/mcp/session.d.ts +67 -0
- package/lib/dist/mcp/session.d.ts.map +1 -0
- package/lib/dist/mcp/session.js +276 -0
- package/lib/dist/mcp/session.js.map +1 -0
- package/lib/dist/mcp/tools.d.ts +130 -2
- package/lib/dist/mcp/tools.d.ts.map +1 -1
- package/lib/dist/mcp/tools.js +902 -37
- package/lib/dist/mcp/tools.js.map +1 -1
- package/lib/dist/mcp/transport.d.ts +111 -29
- package/lib/dist/mcp/transport.d.ts.map +1 -1
- package/lib/dist/mcp/transport.js +181 -71
- package/lib/dist/mcp/transport.js.map +1 -1
- package/lib/dist/mcp/version.d.ts +19 -0
- package/lib/dist/mcp/version.d.ts.map +1 -0
- package/lib/dist/mcp/version.js +71 -0
- package/lib/dist/mcp/version.js.map +1 -0
- package/lib/dist/resolution/callback-synthesizer.d.ts +10 -0
- package/lib/dist/resolution/callback-synthesizer.d.ts.map +1 -0
- package/lib/dist/resolution/callback-synthesizer.js +847 -0
- package/lib/dist/resolution/callback-synthesizer.js.map +1 -0
- package/lib/dist/resolution/frameworks/csharp.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/csharp.js +36 -8
- package/lib/dist/resolution/frameworks/csharp.js.map +1 -1
- package/lib/dist/resolution/frameworks/drupal.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/drupal.js +44 -12
- package/lib/dist/resolution/frameworks/drupal.js.map +1 -1
- package/lib/dist/resolution/frameworks/expo-modules.d.ts +3 -0
- package/lib/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
- package/lib/dist/resolution/frameworks/expo-modules.js +143 -0
- package/lib/dist/resolution/frameworks/expo-modules.js.map +1 -0
- package/lib/dist/resolution/frameworks/express.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/express.js +102 -19
- package/lib/dist/resolution/frameworks/express.js.map +1 -1
- package/lib/dist/resolution/frameworks/fabric.d.ts +3 -0
- package/lib/dist/resolution/frameworks/fabric.d.ts.map +1 -0
- package/lib/dist/resolution/frameworks/fabric.js +354 -0
- package/lib/dist/resolution/frameworks/fabric.js.map +1 -0
- package/lib/dist/resolution/frameworks/go.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/go.js +6 -3
- package/lib/dist/resolution/frameworks/go.js.map +1 -1
- package/lib/dist/resolution/frameworks/index.d.ts +5 -0
- package/lib/dist/resolution/frameworks/index.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/index.js +25 -1
- package/lib/dist/resolution/frameworks/index.js.map +1 -1
- package/lib/dist/resolution/frameworks/java.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/java.js +70 -12
- package/lib/dist/resolution/frameworks/java.js.map +1 -1
- package/lib/dist/resolution/frameworks/laravel.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/laravel.js +17 -8
- package/lib/dist/resolution/frameworks/laravel.js.map +1 -1
- package/lib/dist/resolution/frameworks/play.d.ts +19 -0
- package/lib/dist/resolution/frameworks/play.d.ts.map +1 -0
- package/lib/dist/resolution/frameworks/play.js +111 -0
- package/lib/dist/resolution/frameworks/play.js.map +1 -0
- package/lib/dist/resolution/frameworks/python.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/python.js +134 -16
- package/lib/dist/resolution/frameworks/python.js.map +1 -1
- package/lib/dist/resolution/frameworks/react-native.d.ts +3 -0
- package/lib/dist/resolution/frameworks/react-native.d.ts.map +1 -0
- package/lib/dist/resolution/frameworks/react-native.js +360 -0
- package/lib/dist/resolution/frameworks/react-native.js.map +1 -0
- package/lib/dist/resolution/frameworks/react.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/react.js +96 -3
- package/lib/dist/resolution/frameworks/react.js.map +1 -1
- package/lib/dist/resolution/frameworks/ruby.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/ruby.js +106 -2
- package/lib/dist/resolution/frameworks/ruby.js.map +1 -1
- package/lib/dist/resolution/frameworks/rust.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/rust.js +102 -5
- package/lib/dist/resolution/frameworks/rust.js.map +1 -1
- package/lib/dist/resolution/frameworks/swift-objc.d.ts +37 -0
- package/lib/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
- package/lib/dist/resolution/frameworks/swift-objc.js +252 -0
- package/lib/dist/resolution/frameworks/swift-objc.js.map +1 -0
- package/lib/dist/resolution/frameworks/swift.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/swift.js +30 -6
- package/lib/dist/resolution/frameworks/swift.js.map +1 -1
- package/lib/dist/resolution/import-resolver.d.ts.map +1 -1
- package/lib/dist/resolution/import-resolver.js +1 -0
- package/lib/dist/resolution/import-resolver.js.map +1 -1
- package/lib/dist/resolution/index.d.ts.map +1 -1
- package/lib/dist/resolution/index.js +61 -9
- package/lib/dist/resolution/index.js.map +1 -1
- package/lib/dist/resolution/lru-cache.d.ts +24 -0
- package/lib/dist/resolution/lru-cache.d.ts.map +1 -0
- package/lib/dist/resolution/lru-cache.js +62 -0
- package/lib/dist/resolution/lru-cache.js.map +1 -0
- package/lib/dist/resolution/swift-objc-bridge.d.ts +134 -0
- package/lib/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
- package/lib/dist/resolution/swift-objc-bridge.js +256 -0
- package/lib/dist/resolution/swift-objc-bridge.js.map +1 -0
- package/lib/dist/resolution/types.d.ts +8 -0
- package/lib/dist/resolution/types.d.ts.map +1 -1
- package/lib/dist/sync/index.d.ts +3 -1
- package/lib/dist/sync/index.d.ts.map +1 -1
- package/lib/dist/sync/index.js +7 -1
- package/lib/dist/sync/index.js.map +1 -1
- package/lib/dist/sync/watcher.d.ts +109 -7
- package/lib/dist/sync/watcher.d.ts.map +1 -1
- package/lib/dist/sync/watcher.js +215 -33
- package/lib/dist/sync/watcher.js.map +1 -1
- package/lib/dist/sync/worktree.d.ts +54 -0
- package/lib/dist/sync/worktree.d.ts.map +1 -0
- package/lib/dist/sync/worktree.js +136 -0
- package/lib/dist/sync/worktree.js.map +1 -0
- package/lib/dist/types.d.ts +1 -1
- package/lib/dist/types.d.ts.map +1 -1
- package/lib/dist/types.js +1 -0
- package/lib/dist/types.js.map +1 -1
- package/lib/dist/utils.js +1 -1
- package/lib/node_modules/.package-lock.json +29 -1
- package/lib/node_modules/chokidar/LICENSE +21 -0
- package/lib/node_modules/chokidar/README.md +305 -0
- package/lib/node_modules/chokidar/esm/handler.d.ts +90 -0
- package/lib/node_modules/chokidar/esm/handler.js +629 -0
- package/lib/node_modules/chokidar/esm/index.d.ts +215 -0
- package/lib/node_modules/chokidar/esm/index.js +798 -0
- package/lib/node_modules/chokidar/esm/package.json +1 -0
- package/lib/node_modules/chokidar/handler.d.ts +90 -0
- package/lib/node_modules/chokidar/handler.js +635 -0
- package/lib/node_modules/chokidar/index.d.ts +215 -0
- package/lib/node_modules/chokidar/index.js +804 -0
- package/lib/node_modules/chokidar/package.json +69 -0
- package/lib/node_modules/readdirp/LICENSE +21 -0
- package/lib/node_modules/readdirp/README.md +120 -0
- package/lib/node_modules/readdirp/esm/index.d.ts +108 -0
- package/lib/node_modules/readdirp/esm/index.js +257 -0
- package/lib/node_modules/readdirp/esm/package.json +1 -0
- package/lib/node_modules/readdirp/index.d.ts +108 -0
- package/lib/node_modules/readdirp/index.js +263 -0
- package/lib/node_modules/readdirp/package.json +70 -0
- package/lib/package.json +2 -1
- package/package.json +1 -1
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.objcExtractor = void 0;
|
|
4
|
+
const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
|
|
5
|
+
function findCompoundStatement(node) {
|
|
6
|
+
for (let i = 0; i < node.namedChildCount; i++) {
|
|
7
|
+
const child = node.namedChild(i);
|
|
8
|
+
if (child?.type === 'compound_statement') {
|
|
9
|
+
return child;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
/** Build ObjC selector: `greet`, `doThing:`, or `doThing:with:`. */
|
|
15
|
+
function extractObjcMethodName(node, source) {
|
|
16
|
+
if (node.type !== 'method_definition' && node.type !== 'method_declaration') {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
const identifiers = node.namedChildren.filter((c) => c.type === 'identifier');
|
|
20
|
+
if (identifiers.length === 0)
|
|
21
|
+
return undefined;
|
|
22
|
+
const hasParameters = node.namedChildren.some((c) => c.type === 'method_parameter');
|
|
23
|
+
const firstIdentifier = identifiers[0];
|
|
24
|
+
if (!firstIdentifier)
|
|
25
|
+
return undefined;
|
|
26
|
+
if (!hasParameters) {
|
|
27
|
+
return (0, tree_sitter_helpers_1.getNodeText)(firstIdentifier, source);
|
|
28
|
+
}
|
|
29
|
+
return identifiers.map((id) => `${(0, tree_sitter_helpers_1.getNodeText)(id, source)}:`).join('');
|
|
30
|
+
}
|
|
31
|
+
function extractObjcPropertyName(node, source) {
|
|
32
|
+
if (node.type !== 'property_declaration')
|
|
33
|
+
return null;
|
|
34
|
+
const structDecl = node.namedChildren.find((c) => c.type === 'struct_declaration');
|
|
35
|
+
if (!structDecl)
|
|
36
|
+
return null;
|
|
37
|
+
const structDeclarator = structDecl.namedChildren.find((c) => c.type === 'struct_declarator');
|
|
38
|
+
if (!structDeclarator)
|
|
39
|
+
return null;
|
|
40
|
+
let current = structDeclarator;
|
|
41
|
+
while (current) {
|
|
42
|
+
const inner = (0, tree_sitter_helpers_1.getChildByField)(current, 'declarator') ||
|
|
43
|
+
current.namedChildren.find((c) => c.type === 'identifier' || c.type === 'pointer_declarator');
|
|
44
|
+
if (!inner)
|
|
45
|
+
break;
|
|
46
|
+
if (inner.type === 'identifier') {
|
|
47
|
+
return (0, tree_sitter_helpers_1.getNodeText)(inner, source);
|
|
48
|
+
}
|
|
49
|
+
current = inner;
|
|
50
|
+
}
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
exports.objcExtractor = {
|
|
54
|
+
functionTypes: ['function_definition'],
|
|
55
|
+
// Only @interface emits a class node; @implementation reuses it via visitNode.
|
|
56
|
+
classTypes: ['class_interface'],
|
|
57
|
+
methodTypes: ['method_definition'],
|
|
58
|
+
interfaceTypes: ['protocol_declaration'],
|
|
59
|
+
interfaceKind: 'protocol',
|
|
60
|
+
structTypes: ['struct_specifier'],
|
|
61
|
+
enumTypes: ['enum_specifier'],
|
|
62
|
+
enumMemberTypes: ['enumerator'],
|
|
63
|
+
typeAliasTypes: ['type_definition'],
|
|
64
|
+
importTypes: ['preproc_include'],
|
|
65
|
+
callTypes: ['call_expression', 'message_expression'],
|
|
66
|
+
variableTypes: ['declaration'],
|
|
67
|
+
propertyTypes: ['property_declaration'],
|
|
68
|
+
nameField: 'declarator',
|
|
69
|
+
bodyField: 'body',
|
|
70
|
+
paramsField: 'parameters',
|
|
71
|
+
resolveName: extractObjcMethodName,
|
|
72
|
+
extractPropertyName: extractObjcPropertyName,
|
|
73
|
+
resolveBody: (node, bodyField) => {
|
|
74
|
+
const fromField = (0, tree_sitter_helpers_1.getChildByField)(node, bodyField);
|
|
75
|
+
if (fromField) {
|
|
76
|
+
return fromField;
|
|
77
|
+
}
|
|
78
|
+
return findCompoundStatement(node);
|
|
79
|
+
},
|
|
80
|
+
resolveTypeAliasKind: (node, _source) => {
|
|
81
|
+
for (let i = 0; i < node.namedChildCount; i++) {
|
|
82
|
+
const child = node.namedChild(i);
|
|
83
|
+
if (!child)
|
|
84
|
+
continue;
|
|
85
|
+
if (child.type === 'enum_specifier' && (0, tree_sitter_helpers_1.getChildByField)(child, 'body'))
|
|
86
|
+
return 'enum';
|
|
87
|
+
if (child.type === 'struct_specifier' && (0, tree_sitter_helpers_1.getChildByField)(child, 'body'))
|
|
88
|
+
return 'struct';
|
|
89
|
+
}
|
|
90
|
+
return undefined;
|
|
91
|
+
},
|
|
92
|
+
isStatic: (node) => /^\s*\+/.test(node.text),
|
|
93
|
+
visitNode: (node, ctx) => {
|
|
94
|
+
if (node.type !== 'class_implementation')
|
|
95
|
+
return false;
|
|
96
|
+
const classNameNode = node.namedChildren.find((c) => c.type === 'identifier');
|
|
97
|
+
if (!classNameNode)
|
|
98
|
+
return true;
|
|
99
|
+
const className = (0, tree_sitter_helpers_1.getNodeText)(classNameNode, ctx.source);
|
|
100
|
+
const classNode = ctx.nodes.find((n) => n.name === className && n.filePath === ctx.filePath && n.kind === 'class') ?? ctx.createNode('class', className, node, {});
|
|
101
|
+
if (!classNode)
|
|
102
|
+
return true;
|
|
103
|
+
ctx.pushScope(classNode.id);
|
|
104
|
+
for (let i = 0; i < node.namedChildCount; i++) {
|
|
105
|
+
const child = node.namedChild(i);
|
|
106
|
+
if (child?.type === 'implementation_definition') {
|
|
107
|
+
for (let j = 0; j < child.namedChildCount; j++) {
|
|
108
|
+
const implChild = child.namedChild(j);
|
|
109
|
+
if (implChild)
|
|
110
|
+
ctx.visitNode(implChild);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
ctx.popScope();
|
|
115
|
+
return true;
|
|
116
|
+
},
|
|
117
|
+
extractImport: (node, source) => {
|
|
118
|
+
const importText = source.substring(node.startIndex, node.endIndex).trim();
|
|
119
|
+
const systemLib = node.namedChildren.find((c) => c.type === 'system_lib_string');
|
|
120
|
+
if (systemLib) {
|
|
121
|
+
return { moduleName: (0, tree_sitter_helpers_1.getNodeText)(systemLib, source).replace(/^<|>$/g, ''), signature: importText };
|
|
122
|
+
}
|
|
123
|
+
const stringLiteral = node.namedChildren.find((c) => c.type === 'string_literal');
|
|
124
|
+
if (stringLiteral) {
|
|
125
|
+
const stringContent = stringLiteral.namedChildren.find((c) => c.type === 'string_content');
|
|
126
|
+
if (stringContent) {
|
|
127
|
+
return { moduleName: (0, tree_sitter_helpers_1.getNodeText)(stringContent, source), signature: importText };
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return null;
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=objc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objc.js","sourceRoot":"","sources":["../../../src/extraction/languages/objc.ts"],"names":[],"mappings":"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"}
|
|
@@ -103,6 +103,10 @@ export interface LanguageExtractor {
|
|
|
103
103
|
paramsField: string;
|
|
104
104
|
/** Field name for return type */
|
|
105
105
|
returnField?: string;
|
|
106
|
+
/** Override symbol name extraction (e.g. ObjC multi-part selectors). */
|
|
107
|
+
resolveName?: (node: SyntaxNode, source: string) => string | undefined;
|
|
108
|
+
/** Extract property name when the generic name walk fails (e.g. ObjC @property). */
|
|
109
|
+
extractPropertyName?: (node: SyntaxNode, source: string) => string | null;
|
|
106
110
|
/** Extract signature from node */
|
|
107
111
|
getSignature?: (node: SyntaxNode, source: string) => string | undefined;
|
|
108
112
|
/** Extract visibility from node */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-sitter-types.d.ts","sourceRoot":"","sources":["../../src/extraction/tree-sitter-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tree-sitter-types.d.ts","sourceRoot":"","sources":["../../src/extraction/tree-sitter-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,IAAI,EAAE,QAAQ,CAAC;IACf,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAChC,iFAAiF;IACjF,YAAY,CAAC,EAAE,UAAU,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAC/F,2EAA2E;IAC3E,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAClC,6CAA6C;IAC7C,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D,kCAAkC;IAClC,sBAAsB,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACvD,oFAAoF;IACpF,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gDAAgD;IAChD,QAAQ,IAAI,IAAI,CAAC;IACjB,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,iCAAiC;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;CACjC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAGhC,0CAA0C;IAC1C,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,wCAAwC;IACxC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,wCAAwC;IACxC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,4DAA4D;IAC5D,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,wCAAwC;IACxC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,sCAAsC;IACtC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,oGAAoG;IACpG,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,mEAAmE;IACnE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,wCAAwC;IACxC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,8EAA8E;IAC9E,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,6FAA6F;IAC7F,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,oGAAoG;IACpG,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAIzB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,wEAAwE;IACxE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAEvE,oFAAoF;IACpF,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAE1E,kCAAkC;IAClC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACxE,mCAAmC;IACnC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;IAClG,gCAAgC;IAChC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3D,6BAA6B;IAC7B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC;IACxC,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,qEAAqE;IACrE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC;IAIxC,4FAA4F;IAC5F,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,4FAA4F;IAC5F,aAAa,CAAC,EAAE,QAAQ,CAAC;IAIzB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC;IAEjE;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;IAE9F;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,KAAK,UAAU,GAAG,IAAI,CAAC;IAEzE;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,UAAU,GAAG,IAAI,CAAC;IAExE;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC;IAExE;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAE3E;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,QAAQ,GAAG,SAAS,CAAC;IAElF;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC;IAElE;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC5E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-sitter.d.ts","sourceRoot":"","sources":["../../src/extraction/tree-sitter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,QAAQ,EAIR,gBAAgB,EAGjB,MAAM,UAAU,CAAC;AAelB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"tree-sitter.d.ts","sourceRoot":"","sources":["../../src/extraction/tree-sitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,6 +56,9 @@ Object.defineProperty(exports, "generateNodeId", { enumerable: true, get: functi
|
|
|
56
56
|
* Extract the name from a node based on language
|
|
57
57
|
*/
|
|
58
58
|
function extractName(node, source, extractor) {
|
|
59
|
+
const hookName = extractor.resolveName?.(node, source);
|
|
60
|
+
if (hookName)
|
|
61
|
+
return hookName;
|
|
59
62
|
// Try field name first
|
|
60
63
|
const nameNode = (0, tree_sitter_helpers_1.getChildByField)(node, extractor.nameField);
|
|
61
64
|
if (nameNode) {
|
|
@@ -412,6 +415,19 @@ class TreeSitterExtractor {
|
|
|
412
415
|
return null;
|
|
413
416
|
}
|
|
414
417
|
const id = (0, tree_sitter_helpers_1.generateNodeId)(this.filePath, kind, name, node.startPosition.row + 1);
|
|
418
|
+
// Some grammars (e.g. Dart) model a function/method body as a *sibling* of
|
|
419
|
+
// the signature node, so the declaration node's own range is just the
|
|
420
|
+
// signature line. Extend endLine to the resolved body when it sits beyond
|
|
421
|
+
// the node so the node spans its body — required for any body-level analysis
|
|
422
|
+
// (callees, the callback synthesizer's body scan, context slices). Guarded to
|
|
423
|
+
// only ever extend: for child-body grammars the body is within range (no-op).
|
|
424
|
+
let endLine = node.endPosition.row + 1;
|
|
425
|
+
if (kind === 'function' || kind === 'method') {
|
|
426
|
+
const body = this.extractor?.resolveBody?.(node, this.extractor.bodyField);
|
|
427
|
+
if (body && body.endPosition.row + 1 > endLine) {
|
|
428
|
+
endLine = body.endPosition.row + 1;
|
|
429
|
+
}
|
|
430
|
+
}
|
|
415
431
|
const newNode = {
|
|
416
432
|
id,
|
|
417
433
|
kind,
|
|
@@ -420,7 +436,7 @@ class TreeSitterExtractor {
|
|
|
420
436
|
filePath: this.filePath,
|
|
421
437
|
language: this.language,
|
|
422
438
|
startLine: node.startPosition.row + 1,
|
|
423
|
-
endLine
|
|
439
|
+
endLine,
|
|
424
440
|
startColumn: node.startPosition.column,
|
|
425
441
|
endColumn: node.endPosition.column,
|
|
426
442
|
updatedAt: Date.now(),
|
|
@@ -510,7 +526,7 @@ class TreeSitterExtractor {
|
|
|
510
526
|
/**
|
|
511
527
|
* Extract a function
|
|
512
528
|
*/
|
|
513
|
-
extractFunction(node) {
|
|
529
|
+
extractFunction(node, nameOverride) {
|
|
514
530
|
if (!this.extractor)
|
|
515
531
|
return;
|
|
516
532
|
// If the language provides getReceiverType and this function has a receiver
|
|
@@ -519,12 +535,17 @@ class TreeSitterExtractor {
|
|
|
519
535
|
this.extractMethod(node);
|
|
520
536
|
return;
|
|
521
537
|
}
|
|
522
|
-
|
|
538
|
+
// nameOverride is supplied only for explicitly-named anonymous functions the
|
|
539
|
+
// caller resolved itself (e.g. arrow values of exported-const object members
|
|
540
|
+
// — SvelteKit actions). Inline-object arrows reached by the general walker
|
|
541
|
+
// get no override, so they still fall through to the <anonymous> skip below.
|
|
542
|
+
let name = nameOverride ?? extractName(node, this.source, this.extractor);
|
|
523
543
|
// For arrow functions and function expressions assigned to variables,
|
|
524
544
|
// resolve the name from the parent variable_declarator.
|
|
525
545
|
// e.g. `export const useAuth = () => { ... }` — the arrow_function node
|
|
526
546
|
// has no `name` field; the name lives on the variable_declarator.
|
|
527
|
-
if (
|
|
547
|
+
if (!nameOverride &&
|
|
548
|
+
name === '<anonymous>' &&
|
|
528
549
|
(node.type === 'arrow_function' || node.type === 'function_expression')) {
|
|
529
550
|
const parent = node.parent;
|
|
530
551
|
if (parent?.type === 'variable_declarator') {
|
|
@@ -831,12 +852,13 @@ class TreeSitterExtractor {
|
|
|
831
852
|
const docstring = (0, tree_sitter_helpers_1.getPrecedingDocstring)(node, this.source);
|
|
832
853
|
const visibility = this.extractor.getVisibility?.(node);
|
|
833
854
|
const isStatic = this.extractor.isStatic?.(node) ?? false;
|
|
834
|
-
|
|
835
|
-
const nameNode =
|
|
836
|
-
|
|
837
|
-
|
|
855
|
+
const hookName = this.extractor.extractPropertyName?.(node, this.source);
|
|
856
|
+
const nameNode = hookName
|
|
857
|
+
? null
|
|
858
|
+
: (0, tree_sitter_helpers_1.getChildByField)(node, 'name') || node.namedChildren.find(c => c.type === 'identifier');
|
|
859
|
+
const name = hookName ?? (nameNode ? (0, tree_sitter_helpers_1.getNodeText)(nameNode, this.source) : null);
|
|
860
|
+
if (!name)
|
|
838
861
|
return;
|
|
839
|
-
const name = (0, tree_sitter_helpers_1.getNodeText)(nameNode, this.source);
|
|
840
862
|
// Get property type from the type child (first named child that isn't modifier or identifier)
|
|
841
863
|
const typeNode = node.namedChildren.find(c => c.type !== 'modifier' && c.type !== 'modifiers'
|
|
842
864
|
&& c.type !== 'identifier' && c.type !== 'accessor_list'
|
|
@@ -994,6 +1016,25 @@ class TreeSitterExtractor {
|
|
|
994
1016
|
if (varNode) {
|
|
995
1017
|
this.extractVariableTypeAnnotation(child, varNode.id);
|
|
996
1018
|
}
|
|
1019
|
+
// Exported const object-of-functions: `export const actions =
|
|
1020
|
+
// { default: async () => {} }` (SvelteKit form actions / handler maps
|
|
1021
|
+
// / route tables). Extract each function-valued property as a function
|
|
1022
|
+
// named by its key + walk its body so its calls (e.g. api.post) are
|
|
1023
|
+
// captured. Scoped to EXPORTED consts to exclude the inline-object
|
|
1024
|
+
// noise (`ctx.set({...})`) the object-method skip deliberately avoids.
|
|
1025
|
+
if (isExported && valueNode &&
|
|
1026
|
+
(valueNode.type === 'object' || valueNode.type === 'object_expression')) {
|
|
1027
|
+
for (let j = 0; j < valueNode.namedChildCount; j++) {
|
|
1028
|
+
const pair = valueNode.namedChild(j);
|
|
1029
|
+
if (pair?.type !== 'pair')
|
|
1030
|
+
continue;
|
|
1031
|
+
const v = (0, tree_sitter_helpers_1.getChildByField)(pair, 'value');
|
|
1032
|
+
const k = (0, tree_sitter_helpers_1.getChildByField)(pair, 'key');
|
|
1033
|
+
if (k && v && (v.type === 'arrow_function' || v.type === 'function_expression')) {
|
|
1034
|
+
this.extractFunction(v, (0, tree_sitter_helpers_1.getNodeText)(k, this.source).replace(/^['"`]|['"`]$/g, ''));
|
|
1035
|
+
}
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
997
1038
|
}
|
|
998
1039
|
}
|
|
999
1040
|
}
|
|
@@ -1346,6 +1387,43 @@ class TreeSitterExtractor {
|
|
|
1346
1387
|
}
|
|
1347
1388
|
}
|
|
1348
1389
|
}
|
|
1390
|
+
else if (node.type === 'message_expression') {
|
|
1391
|
+
// ObjC message expressions emit one `method` field child per selector
|
|
1392
|
+
// keyword: `[obj a:1 b:2 c:3]` has three `method=identifier` siblings.
|
|
1393
|
+
// Joining them with `:` reconstructs the full selector and matches the
|
|
1394
|
+
// multi-part selector names produced by the ObjC method_definition
|
|
1395
|
+
// extractor (`extractObjcMethodName` in languages/objc.ts). Without this
|
|
1396
|
+
// join, multi-keyword call sites only emitted the first keyword and never
|
|
1397
|
+
// resolved to their target methods (e.g. `GET:parameters:headers:...` had
|
|
1398
|
+
// zero callers despite obviously being called).
|
|
1399
|
+
const methodKeywords = [];
|
|
1400
|
+
for (let i = 0; i < node.namedChildCount; i++) {
|
|
1401
|
+
if (node.fieldNameForNamedChild(i) === 'method') {
|
|
1402
|
+
const kw = node.namedChild(i);
|
|
1403
|
+
if (kw)
|
|
1404
|
+
methodKeywords.push((0, tree_sitter_helpers_1.getNodeText)(kw, this.source));
|
|
1405
|
+
}
|
|
1406
|
+
}
|
|
1407
|
+
if (methodKeywords.length > 0) {
|
|
1408
|
+
const methodName = methodKeywords.length === 1
|
|
1409
|
+
? methodKeywords[0]
|
|
1410
|
+
: methodKeywords.map((k) => `${k}:`).join('');
|
|
1411
|
+
const receiverField = (0, tree_sitter_helpers_1.getChildByField)(node, 'receiver');
|
|
1412
|
+
const SKIP_RECEIVERS = new Set(['self', 'super']);
|
|
1413
|
+
if (receiverField && receiverField.type !== 'message_expression') {
|
|
1414
|
+
const receiverName = (0, tree_sitter_helpers_1.getNodeText)(receiverField, this.source);
|
|
1415
|
+
if (receiverName && !SKIP_RECEIVERS.has(receiverName)) {
|
|
1416
|
+
calleeName = `${receiverName}.${methodName}`;
|
|
1417
|
+
}
|
|
1418
|
+
else {
|
|
1419
|
+
calleeName = methodName;
|
|
1420
|
+
}
|
|
1421
|
+
}
|
|
1422
|
+
else {
|
|
1423
|
+
calleeName = methodName;
|
|
1424
|
+
}
|
|
1425
|
+
}
|
|
1426
|
+
}
|
|
1349
1427
|
else {
|
|
1350
1428
|
const func = (0, tree_sitter_helpers_1.getChildByField)(node, 'function') || node.namedChild(0);
|
|
1351
1429
|
if (func) {
|
|
@@ -1599,6 +1677,20 @@ class TreeSitterExtractor {
|
|
|
1599
1677
|
}
|
|
1600
1678
|
}
|
|
1601
1679
|
}
|
|
1680
|
+
// Nested NAMED functions inside a body — function declarations and named
|
|
1681
|
+
// function expressions like `.on('mount', function onmount(){})` — become
|
|
1682
|
+
// their own nodes so the graph can link to them (callback handlers, local
|
|
1683
|
+
// helpers). Anonymous arrows/expressions fall through to the default
|
|
1684
|
+
// recursion below, keeping their inner calls attributed to the enclosing
|
|
1685
|
+
// function: this bounds the new nodes to NAMED functions only (no explosion,
|
|
1686
|
+
// no lost edges). extractFunction walks the nested body itself, so we return.
|
|
1687
|
+
if (this.extractor.functionTypes.includes(nodeType)) {
|
|
1688
|
+
const nestedName = extractName(node, this.source, this.extractor);
|
|
1689
|
+
if (nestedName && nestedName !== '<anonymous>') {
|
|
1690
|
+
this.extractFunction(node);
|
|
1691
|
+
return;
|
|
1692
|
+
}
|
|
1693
|
+
}
|
|
1602
1694
|
// Extract structural nodes found inside function bodies.
|
|
1603
1695
|
// Each extract method visits its own children, so we return after extracting.
|
|
1604
1696
|
if (this.extractor.classTypes.includes(nodeType)) {
|
|
@@ -1640,6 +1732,42 @@ class TreeSitterExtractor {
|
|
|
1640
1732
|
* Extract inheritance relationships
|
|
1641
1733
|
*/
|
|
1642
1734
|
extractInheritance(node, classId) {
|
|
1735
|
+
// Objective-C @interface MyClass : NSObject <ProtoA, ProtoB>
|
|
1736
|
+
if (node.type === 'class_interface') {
|
|
1737
|
+
const superclass = (0, tree_sitter_helpers_1.getChildByField)(node, 'superclass');
|
|
1738
|
+
if (superclass) {
|
|
1739
|
+
const name = (0, tree_sitter_helpers_1.getNodeText)(superclass, this.source);
|
|
1740
|
+
this.unresolvedReferences.push({
|
|
1741
|
+
fromNodeId: classId,
|
|
1742
|
+
referenceName: name,
|
|
1743
|
+
referenceKind: 'extends',
|
|
1744
|
+
line: superclass.startPosition.row + 1,
|
|
1745
|
+
column: superclass.startPosition.column,
|
|
1746
|
+
});
|
|
1747
|
+
}
|
|
1748
|
+
for (let j = 0; j < node.namedChildCount; j++) {
|
|
1749
|
+
const argList = node.namedChild(j);
|
|
1750
|
+
if (argList?.type !== 'parameterized_arguments')
|
|
1751
|
+
continue;
|
|
1752
|
+
for (let k = 0; k < argList.namedChildCount; k++) {
|
|
1753
|
+
const typeName = argList.namedChild(k);
|
|
1754
|
+
if (!typeName)
|
|
1755
|
+
continue;
|
|
1756
|
+
const typeId = typeName.namedChildren.find((c) => c.type === 'type_identifier' || c.type === 'identifier');
|
|
1757
|
+
if (!typeId)
|
|
1758
|
+
continue;
|
|
1759
|
+
const protocolName = (0, tree_sitter_helpers_1.getNodeText)(typeId, this.source);
|
|
1760
|
+
this.unresolvedReferences.push({
|
|
1761
|
+
fromNodeId: classId,
|
|
1762
|
+
referenceName: protocolName,
|
|
1763
|
+
referenceKind: 'implements',
|
|
1764
|
+
line: typeId.startPosition.row + 1,
|
|
1765
|
+
column: typeId.startPosition.column,
|
|
1766
|
+
});
|
|
1767
|
+
}
|
|
1768
|
+
}
|
|
1769
|
+
return;
|
|
1770
|
+
}
|
|
1643
1771
|
// Look for extends/implements clauses
|
|
1644
1772
|
for (let i = 0; i < node.namedChildCount; i++) {
|
|
1645
1773
|
const child = node.namedChild(i);
|
|
@@ -1667,6 +1795,24 @@ class TreeSitterExtractor {
|
|
|
1667
1795
|
}
|
|
1668
1796
|
}
|
|
1669
1797
|
}
|
|
1798
|
+
// C++ base classes: `class Derived : public Base, private Other` →
|
|
1799
|
+
// base_class_clause holds access specifiers + base type(s). Emit an extends
|
|
1800
|
+
// ref per base type (skip the public/private/protected keywords).
|
|
1801
|
+
if (child.type === 'base_class_clause') {
|
|
1802
|
+
for (const t of child.namedChildren) {
|
|
1803
|
+
if (t.type === 'type_identifier' ||
|
|
1804
|
+
t.type === 'qualified_identifier' ||
|
|
1805
|
+
t.type === 'template_type') {
|
|
1806
|
+
this.unresolvedReferences.push({
|
|
1807
|
+
fromNodeId: classId,
|
|
1808
|
+
referenceName: (0, tree_sitter_helpers_1.getNodeText)(t, this.source),
|
|
1809
|
+
referenceKind: 'extends',
|
|
1810
|
+
line: t.startPosition.row + 1,
|
|
1811
|
+
column: t.startPosition.column,
|
|
1812
|
+
});
|
|
1813
|
+
}
|
|
1814
|
+
}
|
|
1815
|
+
}
|
|
1670
1816
|
if (child.type === 'implements_clause' ||
|
|
1671
1817
|
child.type === 'class_interface_clause' ||
|
|
1672
1818
|
child.type === 'super_interfaces' || // Java class implements
|