@colbymchenry/codegraph-darwin-x64 0.9.4 → 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.
Files changed (137) hide show
  1. package/lib/dist/bin/codegraph.js +12 -0
  2. package/lib/dist/bin/codegraph.js.map +1 -1
  3. package/lib/dist/extraction/grammars.d.ts.map +1 -1
  4. package/lib/dist/extraction/grammars.js +14 -1
  5. package/lib/dist/extraction/grammars.js.map +1 -1
  6. package/lib/dist/extraction/index.d.ts +15 -2
  7. package/lib/dist/extraction/index.d.ts.map +1 -1
  8. package/lib/dist/extraction/index.js +170 -78
  9. package/lib/dist/extraction/index.js.map +1 -1
  10. package/lib/dist/extraction/languages/index.d.ts.map +1 -1
  11. package/lib/dist/extraction/languages/index.js +2 -0
  12. package/lib/dist/extraction/languages/index.js.map +1 -1
  13. package/lib/dist/extraction/languages/objc.d.ts +3 -0
  14. package/lib/dist/extraction/languages/objc.d.ts.map +1 -0
  15. package/lib/dist/extraction/languages/objc.js +133 -0
  16. package/lib/dist/extraction/languages/objc.js.map +1 -0
  17. package/lib/dist/extraction/tree-sitter-types.d.ts +4 -0
  18. package/lib/dist/extraction/tree-sitter-types.d.ts.map +1 -1
  19. package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
  20. package/lib/dist/extraction/tree-sitter.js +82 -5
  21. package/lib/dist/extraction/tree-sitter.js.map +1 -1
  22. package/lib/dist/index.d.ts +21 -2
  23. package/lib/dist/index.d.ts.map +1 -1
  24. package/lib/dist/index.js +33 -0
  25. package/lib/dist/index.js.map +1 -1
  26. package/lib/dist/installer/instructions-template.d.ts +2 -2
  27. package/lib/dist/installer/instructions-template.d.ts.map +1 -1
  28. package/lib/dist/installer/instructions-template.js +1 -1
  29. package/lib/dist/mcp/daemon-paths.d.ts +46 -0
  30. package/lib/dist/mcp/daemon-paths.d.ts.map +1 -0
  31. package/lib/dist/mcp/daemon-paths.js +125 -0
  32. package/lib/dist/mcp/daemon-paths.js.map +1 -0
  33. package/lib/dist/mcp/daemon.d.ts +161 -0
  34. package/lib/dist/mcp/daemon.d.ts.map +1 -0
  35. package/lib/dist/mcp/daemon.js +403 -0
  36. package/lib/dist/mcp/daemon.js.map +1 -0
  37. package/lib/dist/mcp/engine.d.ts +100 -0
  38. package/lib/dist/mcp/engine.d.ts.map +1 -0
  39. package/lib/dist/mcp/engine.js +291 -0
  40. package/lib/dist/mcp/engine.js.map +1 -0
  41. package/lib/dist/mcp/index.d.ts +64 -53
  42. package/lib/dist/mcp/index.d.ts.map +1 -1
  43. package/lib/dist/mcp/index.js +307 -387
  44. package/lib/dist/mcp/index.js.map +1 -1
  45. package/lib/dist/mcp/proxy.d.ts +46 -0
  46. package/lib/dist/mcp/proxy.d.ts.map +1 -0
  47. package/lib/dist/mcp/proxy.js +276 -0
  48. package/lib/dist/mcp/proxy.js.map +1 -0
  49. package/lib/dist/mcp/server-instructions.d.ts +1 -1
  50. package/lib/dist/mcp/server-instructions.d.ts.map +1 -1
  51. package/lib/dist/mcp/server-instructions.js +1 -1
  52. package/lib/dist/mcp/session.d.ts +67 -0
  53. package/lib/dist/mcp/session.d.ts.map +1 -0
  54. package/lib/dist/mcp/session.js +276 -0
  55. package/lib/dist/mcp/session.js.map +1 -0
  56. package/lib/dist/mcp/tools.d.ts +49 -0
  57. package/lib/dist/mcp/tools.d.ts.map +1 -1
  58. package/lib/dist/mcp/tools.js +239 -14
  59. package/lib/dist/mcp/tools.js.map +1 -1
  60. package/lib/dist/mcp/transport.d.ts +111 -29
  61. package/lib/dist/mcp/transport.d.ts.map +1 -1
  62. package/lib/dist/mcp/transport.js +181 -71
  63. package/lib/dist/mcp/transport.js.map +1 -1
  64. package/lib/dist/mcp/version.d.ts +19 -0
  65. package/lib/dist/mcp/version.d.ts.map +1 -0
  66. package/lib/dist/mcp/version.js +71 -0
  67. package/lib/dist/mcp/version.js.map +1 -0
  68. package/lib/dist/resolution/callback-synthesizer.d.ts +3 -2
  69. package/lib/dist/resolution/callback-synthesizer.d.ts.map +1 -1
  70. package/lib/dist/resolution/callback-synthesizer.js +274 -3
  71. package/lib/dist/resolution/callback-synthesizer.js.map +1 -1
  72. package/lib/dist/resolution/frameworks/expo-modules.d.ts +3 -0
  73. package/lib/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
  74. package/lib/dist/resolution/frameworks/expo-modules.js +143 -0
  75. package/lib/dist/resolution/frameworks/expo-modules.js.map +1 -0
  76. package/lib/dist/resolution/frameworks/fabric.d.ts +3 -0
  77. package/lib/dist/resolution/frameworks/fabric.d.ts.map +1 -0
  78. package/lib/dist/resolution/frameworks/fabric.js +354 -0
  79. package/lib/dist/resolution/frameworks/fabric.js.map +1 -0
  80. package/lib/dist/resolution/frameworks/index.d.ts +4 -0
  81. package/lib/dist/resolution/frameworks/index.d.ts.map +1 -1
  82. package/lib/dist/resolution/frameworks/index.js +21 -1
  83. package/lib/dist/resolution/frameworks/index.js.map +1 -1
  84. package/lib/dist/resolution/frameworks/react-native.d.ts +3 -0
  85. package/lib/dist/resolution/frameworks/react-native.d.ts.map +1 -0
  86. package/lib/dist/resolution/frameworks/react-native.js +360 -0
  87. package/lib/dist/resolution/frameworks/react-native.js.map +1 -0
  88. package/lib/dist/resolution/frameworks/swift-objc.d.ts +37 -0
  89. package/lib/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
  90. package/lib/dist/resolution/frameworks/swift-objc.js +252 -0
  91. package/lib/dist/resolution/frameworks/swift-objc.js.map +1 -0
  92. package/lib/dist/resolution/import-resolver.d.ts.map +1 -1
  93. package/lib/dist/resolution/import-resolver.js +1 -0
  94. package/lib/dist/resolution/import-resolver.js.map +1 -1
  95. package/lib/dist/resolution/swift-objc-bridge.d.ts +134 -0
  96. package/lib/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
  97. package/lib/dist/resolution/swift-objc-bridge.js +256 -0
  98. package/lib/dist/resolution/swift-objc-bridge.js.map +1 -0
  99. package/lib/dist/sync/index.d.ts +3 -1
  100. package/lib/dist/sync/index.d.ts.map +1 -1
  101. package/lib/dist/sync/index.js +7 -1
  102. package/lib/dist/sync/index.js.map +1 -1
  103. package/lib/dist/sync/watcher.d.ts +109 -7
  104. package/lib/dist/sync/watcher.d.ts.map +1 -1
  105. package/lib/dist/sync/watcher.js +215 -33
  106. package/lib/dist/sync/watcher.js.map +1 -1
  107. package/lib/dist/sync/worktree.d.ts +54 -0
  108. package/lib/dist/sync/worktree.d.ts.map +1 -0
  109. package/lib/dist/sync/worktree.js +136 -0
  110. package/lib/dist/sync/worktree.js.map +1 -0
  111. package/lib/dist/types.d.ts +1 -1
  112. package/lib/dist/types.d.ts.map +1 -1
  113. package/lib/dist/types.js +1 -0
  114. package/lib/dist/types.js.map +1 -1
  115. package/lib/node_modules/.package-lock.json +29 -1
  116. package/lib/node_modules/chokidar/LICENSE +21 -0
  117. package/lib/node_modules/chokidar/README.md +305 -0
  118. package/lib/node_modules/chokidar/esm/handler.d.ts +90 -0
  119. package/lib/node_modules/chokidar/esm/handler.js +629 -0
  120. package/lib/node_modules/chokidar/esm/index.d.ts +215 -0
  121. package/lib/node_modules/chokidar/esm/index.js +798 -0
  122. package/lib/node_modules/chokidar/esm/package.json +1 -0
  123. package/lib/node_modules/chokidar/handler.d.ts +90 -0
  124. package/lib/node_modules/chokidar/handler.js +635 -0
  125. package/lib/node_modules/chokidar/index.d.ts +215 -0
  126. package/lib/node_modules/chokidar/index.js +804 -0
  127. package/lib/node_modules/chokidar/package.json +69 -0
  128. package/lib/node_modules/readdirp/LICENSE +21 -0
  129. package/lib/node_modules/readdirp/README.md +120 -0
  130. package/lib/node_modules/readdirp/esm/index.d.ts +108 -0
  131. package/lib/node_modules/readdirp/esm/index.js +257 -0
  132. package/lib/node_modules/readdirp/esm/package.json +1 -0
  133. package/lib/node_modules/readdirp/index.d.ts +108 -0
  134. package/lib/node_modules/readdirp/index.js +263 -0
  135. package/lib/node_modules/readdirp/package.json +70 -0
  136. package/lib/package.json +2 -1
  137. 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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tree-sitter.d.ts","sourceRoot":"","sources":["../../src/extraction/tree-sitter.ts"],"names":[],"mappings":"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"}
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) {
@@ -849,12 +852,13 @@ class TreeSitterExtractor {
849
852
  const docstring = (0, tree_sitter_helpers_1.getPrecedingDocstring)(node, this.source);
850
853
  const visibility = this.extractor.getVisibility?.(node);
851
854
  const isStatic = this.extractor.isStatic?.(node) ?? false;
852
- // Property name is a direct identifier child
853
- const nameNode = (0, tree_sitter_helpers_1.getChildByField)(node, 'name')
854
- || node.namedChildren.find(c => c.type === 'identifier');
855
- if (!nameNode)
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)
856
861
  return;
857
- const name = (0, tree_sitter_helpers_1.getNodeText)(nameNode, this.source);
858
862
  // Get property type from the type child (first named child that isn't modifier or identifier)
859
863
  const typeNode = node.namedChildren.find(c => c.type !== 'modifier' && c.type !== 'modifiers'
860
864
  && c.type !== 'identifier' && c.type !== 'accessor_list'
@@ -1383,6 +1387,43 @@ class TreeSitterExtractor {
1383
1387
  }
1384
1388
  }
1385
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
+ }
1386
1427
  else {
1387
1428
  const func = (0, tree_sitter_helpers_1.getChildByField)(node, 'function') || node.namedChild(0);
1388
1429
  if (func) {
@@ -1691,6 +1732,42 @@ class TreeSitterExtractor {
1691
1732
  * Extract inheritance relationships
1692
1733
  */
1693
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
+ }
1694
1771
  // Look for extends/implements clauses
1695
1772
  for (let i = 0; i < node.namedChildCount; i++) {
1696
1773
  const child = node.namedChild(i);