@colbymchenry/codegraph-darwin-x64 0.9.4 → 0.9.6

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 (199) 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/db/queries.d.ts +1 -0
  4. package/lib/dist/db/queries.d.ts.map +1 -1
  5. package/lib/dist/db/queries.js +31 -3
  6. package/lib/dist/db/queries.js.map +1 -1
  7. package/lib/dist/extraction/grammars.d.ts +1 -1
  8. package/lib/dist/extraction/grammars.d.ts.map +1 -1
  9. package/lib/dist/extraction/grammars.js +29 -1
  10. package/lib/dist/extraction/grammars.js.map +1 -1
  11. package/lib/dist/extraction/index.d.ts +15 -2
  12. package/lib/dist/extraction/index.d.ts.map +1 -1
  13. package/lib/dist/extraction/index.js +170 -78
  14. package/lib/dist/extraction/index.js.map +1 -1
  15. package/lib/dist/extraction/languages/c-cpp.d.ts.map +1 -1
  16. package/lib/dist/extraction/languages/c-cpp.js +45 -0
  17. package/lib/dist/extraction/languages/c-cpp.js.map +1 -1
  18. package/lib/dist/extraction/languages/csharp.d.ts.map +1 -1
  19. package/lib/dist/extraction/languages/csharp.js +2 -1
  20. package/lib/dist/extraction/languages/csharp.js.map +1 -1
  21. package/lib/dist/extraction/languages/go.d.ts.map +1 -1
  22. package/lib/dist/extraction/languages/go.js +12 -0
  23. package/lib/dist/extraction/languages/go.js.map +1 -1
  24. package/lib/dist/extraction/languages/index.d.ts.map +1 -1
  25. package/lib/dist/extraction/languages/index.js +2 -0
  26. package/lib/dist/extraction/languages/index.js.map +1 -1
  27. package/lib/dist/extraction/languages/objc.d.ts +3 -0
  28. package/lib/dist/extraction/languages/objc.d.ts.map +1 -0
  29. package/lib/dist/extraction/languages/objc.js +133 -0
  30. package/lib/dist/extraction/languages/objc.js.map +1 -0
  31. package/lib/dist/extraction/mybatis-extractor.d.ts +48 -0
  32. package/lib/dist/extraction/mybatis-extractor.d.ts.map +1 -0
  33. package/lib/dist/extraction/mybatis-extractor.js +198 -0
  34. package/lib/dist/extraction/mybatis-extractor.js.map +1 -0
  35. package/lib/dist/extraction/tree-sitter-types.d.ts +4 -0
  36. package/lib/dist/extraction/tree-sitter-types.d.ts.map +1 -1
  37. package/lib/dist/extraction/tree-sitter.d.ts +33 -0
  38. package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
  39. package/lib/dist/extraction/tree-sitter.js +351 -14
  40. package/lib/dist/extraction/tree-sitter.js.map +1 -1
  41. package/lib/dist/index.d.ts +21 -2
  42. package/lib/dist/index.d.ts.map +1 -1
  43. package/lib/dist/index.js +53 -1
  44. package/lib/dist/index.js.map +1 -1
  45. package/lib/dist/installer/index.d.ts +1 -1
  46. package/lib/dist/installer/index.js +3 -3
  47. package/lib/dist/installer/index.js.map +1 -1
  48. package/lib/dist/installer/instructions-template.d.ts +2 -2
  49. package/lib/dist/installer/instructions-template.d.ts.map +1 -1
  50. package/lib/dist/installer/instructions-template.js +1 -1
  51. package/lib/dist/installer/targets/antigravity.d.ts +57 -0
  52. package/lib/dist/installer/targets/antigravity.d.ts.map +1 -0
  53. package/lib/dist/installer/targets/antigravity.js +307 -0
  54. package/lib/dist/installer/targets/antigravity.js.map +1 -0
  55. package/lib/dist/installer/targets/gemini.d.ts +26 -0
  56. package/lib/dist/installer/targets/gemini.d.ts.map +1 -0
  57. package/lib/dist/installer/targets/gemini.js +165 -0
  58. package/lib/dist/installer/targets/gemini.js.map +1 -0
  59. package/lib/dist/installer/targets/hermes.d.ts.map +1 -1
  60. package/lib/dist/installer/targets/hermes.js +57 -3
  61. package/lib/dist/installer/targets/hermes.js.map +1 -1
  62. package/lib/dist/installer/targets/kiro.d.ts +27 -0
  63. package/lib/dist/installer/targets/kiro.d.ts.map +1 -0
  64. package/lib/dist/installer/targets/kiro.js +196 -0
  65. package/lib/dist/installer/targets/kiro.js.map +1 -0
  66. package/lib/dist/installer/targets/registry.d.ts.map +1 -1
  67. package/lib/dist/installer/targets/registry.js +6 -0
  68. package/lib/dist/installer/targets/registry.js.map +1 -1
  69. package/lib/dist/installer/targets/types.d.ts +1 -1
  70. package/lib/dist/installer/targets/types.d.ts.map +1 -1
  71. package/lib/dist/mcp/daemon-paths.d.ts +46 -0
  72. package/lib/dist/mcp/daemon-paths.d.ts.map +1 -0
  73. package/lib/dist/mcp/daemon-paths.js +125 -0
  74. package/lib/dist/mcp/daemon-paths.js.map +1 -0
  75. package/lib/dist/mcp/daemon.d.ts +161 -0
  76. package/lib/dist/mcp/daemon.d.ts.map +1 -0
  77. package/lib/dist/mcp/daemon.js +403 -0
  78. package/lib/dist/mcp/daemon.js.map +1 -0
  79. package/lib/dist/mcp/engine.d.ts +100 -0
  80. package/lib/dist/mcp/engine.d.ts.map +1 -0
  81. package/lib/dist/mcp/engine.js +291 -0
  82. package/lib/dist/mcp/engine.js.map +1 -0
  83. package/lib/dist/mcp/index.d.ts +64 -53
  84. package/lib/dist/mcp/index.d.ts.map +1 -1
  85. package/lib/dist/mcp/index.js +307 -387
  86. package/lib/dist/mcp/index.js.map +1 -1
  87. package/lib/dist/mcp/proxy.d.ts +46 -0
  88. package/lib/dist/mcp/proxy.d.ts.map +1 -0
  89. package/lib/dist/mcp/proxy.js +276 -0
  90. package/lib/dist/mcp/proxy.js.map +1 -0
  91. package/lib/dist/mcp/server-instructions.d.ts +1 -1
  92. package/lib/dist/mcp/server-instructions.d.ts.map +1 -1
  93. package/lib/dist/mcp/server-instructions.js +1 -1
  94. package/lib/dist/mcp/session.d.ts +67 -0
  95. package/lib/dist/mcp/session.d.ts.map +1 -0
  96. package/lib/dist/mcp/session.js +276 -0
  97. package/lib/dist/mcp/session.js.map +1 -0
  98. package/lib/dist/mcp/tools.d.ts +49 -0
  99. package/lib/dist/mcp/tools.d.ts.map +1 -1
  100. package/lib/dist/mcp/tools.js +253 -17
  101. package/lib/dist/mcp/tools.js.map +1 -1
  102. package/lib/dist/mcp/transport.d.ts +111 -29
  103. package/lib/dist/mcp/transport.d.ts.map +1 -1
  104. package/lib/dist/mcp/transport.js +181 -71
  105. package/lib/dist/mcp/transport.js.map +1 -1
  106. package/lib/dist/mcp/version.d.ts +19 -0
  107. package/lib/dist/mcp/version.d.ts.map +1 -0
  108. package/lib/dist/mcp/version.js +71 -0
  109. package/lib/dist/mcp/version.js.map +1 -0
  110. package/lib/dist/resolution/callback-synthesizer.d.ts +3 -2
  111. package/lib/dist/resolution/callback-synthesizer.d.ts.map +1 -1
  112. package/lib/dist/resolution/callback-synthesizer.js +351 -3
  113. package/lib/dist/resolution/callback-synthesizer.js.map +1 -1
  114. package/lib/dist/resolution/frameworks/expo-modules.d.ts +3 -0
  115. package/lib/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
  116. package/lib/dist/resolution/frameworks/expo-modules.js +143 -0
  117. package/lib/dist/resolution/frameworks/expo-modules.js.map +1 -0
  118. package/lib/dist/resolution/frameworks/fabric.d.ts +3 -0
  119. package/lib/dist/resolution/frameworks/fabric.d.ts.map +1 -0
  120. package/lib/dist/resolution/frameworks/fabric.js +354 -0
  121. package/lib/dist/resolution/frameworks/fabric.js.map +1 -0
  122. package/lib/dist/resolution/frameworks/index.d.ts +4 -0
  123. package/lib/dist/resolution/frameworks/index.d.ts.map +1 -1
  124. package/lib/dist/resolution/frameworks/index.js +21 -1
  125. package/lib/dist/resolution/frameworks/index.js.map +1 -1
  126. package/lib/dist/resolution/frameworks/java.d.ts.map +1 -1
  127. package/lib/dist/resolution/frameworks/java.js +270 -1
  128. package/lib/dist/resolution/frameworks/java.js.map +1 -1
  129. package/lib/dist/resolution/frameworks/nestjs.d.ts.map +1 -1
  130. package/lib/dist/resolution/frameworks/nestjs.js +324 -0
  131. package/lib/dist/resolution/frameworks/nestjs.js.map +1 -1
  132. package/lib/dist/resolution/frameworks/react-native.d.ts +3 -0
  133. package/lib/dist/resolution/frameworks/react-native.d.ts.map +1 -0
  134. package/lib/dist/resolution/frameworks/react-native.js +360 -0
  135. package/lib/dist/resolution/frameworks/react-native.js.map +1 -0
  136. package/lib/dist/resolution/frameworks/swift-objc.d.ts +37 -0
  137. package/lib/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
  138. package/lib/dist/resolution/frameworks/swift-objc.js +252 -0
  139. package/lib/dist/resolution/frameworks/swift-objc.js.map +1 -0
  140. package/lib/dist/resolution/go-module.d.ts +26 -0
  141. package/lib/dist/resolution/go-module.d.ts.map +1 -0
  142. package/lib/dist/resolution/go-module.js +78 -0
  143. package/lib/dist/resolution/go-module.js.map +1 -0
  144. package/lib/dist/resolution/import-resolver.d.ts +18 -0
  145. package/lib/dist/resolution/import-resolver.d.ts.map +1 -1
  146. package/lib/dist/resolution/import-resolver.js +538 -4
  147. package/lib/dist/resolution/import-resolver.js.map +1 -1
  148. package/lib/dist/resolution/index.d.ts +10 -0
  149. package/lib/dist/resolution/index.d.ts.map +1 -1
  150. package/lib/dist/resolution/index.js +102 -0
  151. package/lib/dist/resolution/index.js.map +1 -1
  152. package/lib/dist/resolution/name-matcher.d.ts.map +1 -1
  153. package/lib/dist/resolution/name-matcher.js +212 -0
  154. package/lib/dist/resolution/name-matcher.js.map +1 -1
  155. package/lib/dist/resolution/swift-objc-bridge.d.ts +134 -0
  156. package/lib/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
  157. package/lib/dist/resolution/swift-objc-bridge.js +256 -0
  158. package/lib/dist/resolution/swift-objc-bridge.js.map +1 -0
  159. package/lib/dist/resolution/types.d.ts +29 -0
  160. package/lib/dist/resolution/types.d.ts.map +1 -1
  161. package/lib/dist/sync/index.d.ts +3 -1
  162. package/lib/dist/sync/index.d.ts.map +1 -1
  163. package/lib/dist/sync/index.js +8 -1
  164. package/lib/dist/sync/index.js.map +1 -1
  165. package/lib/dist/sync/watcher.d.ts +119 -7
  166. package/lib/dist/sync/watcher.d.ts.map +1 -1
  167. package/lib/dist/sync/watcher.js +243 -37
  168. package/lib/dist/sync/watcher.js.map +1 -1
  169. package/lib/dist/sync/worktree.d.ts +54 -0
  170. package/lib/dist/sync/worktree.d.ts.map +1 -0
  171. package/lib/dist/sync/worktree.js +136 -0
  172. package/lib/dist/sync/worktree.js.map +1 -0
  173. package/lib/dist/types.d.ts +1 -1
  174. package/lib/dist/types.d.ts.map +1 -1
  175. package/lib/dist/types.js +3 -0
  176. package/lib/dist/types.js.map +1 -1
  177. package/lib/node_modules/.package-lock.json +29 -1
  178. package/lib/node_modules/chokidar/LICENSE +21 -0
  179. package/lib/node_modules/chokidar/README.md +305 -0
  180. package/lib/node_modules/chokidar/esm/handler.d.ts +90 -0
  181. package/lib/node_modules/chokidar/esm/handler.js +629 -0
  182. package/lib/node_modules/chokidar/esm/index.d.ts +215 -0
  183. package/lib/node_modules/chokidar/esm/index.js +798 -0
  184. package/lib/node_modules/chokidar/esm/package.json +1 -0
  185. package/lib/node_modules/chokidar/handler.d.ts +90 -0
  186. package/lib/node_modules/chokidar/handler.js +635 -0
  187. package/lib/node_modules/chokidar/index.d.ts +215 -0
  188. package/lib/node_modules/chokidar/index.js +804 -0
  189. package/lib/node_modules/chokidar/package.json +69 -0
  190. package/lib/node_modules/readdirp/LICENSE +21 -0
  191. package/lib/node_modules/readdirp/README.md +120 -0
  192. package/lib/node_modules/readdirp/esm/index.d.ts +108 -0
  193. package/lib/node_modules/readdirp/esm/index.js +257 -0
  194. package/lib/node_modules/readdirp/esm/package.json +1 -0
  195. package/lib/node_modules/readdirp/index.d.ts +108 -0
  196. package/lib/node_modules/readdirp/index.js +263 -0
  197. package/lib/node_modules/readdirp/package.json +70 -0
  198. package/lib/package.json +2 -1
  199. package/package.json +1 -1
@@ -126,6 +126,190 @@ function matchByQualifiedName(ref, context) {
126
126
  }
127
127
  return null;
128
128
  }
129
+ function resolveMethodOnType(typeName, methodName, ref, context, confidence, resolvedBy,
130
+ /**
131
+ * Optional FQN that identifies WHICH class declaration `typeName`
132
+ * refers to in the caller's file. When multiple candidates share
133
+ * the same qualifiedName (`FooConverter::convert` in both
134
+ * `dao/converter/` and `service/converter/`), the FQN's
135
+ * file-path-suffix picks the right one — the disambiguation
136
+ * signal Java imports carry but the call site doesn't (#314).
137
+ */
138
+ preferredFqn) {
139
+ // Look up methods by name and match by qualifiedName ending in
140
+ // `<typeName>::<methodName>`. This works whether the method is defined
141
+ // in-class (`class Foo { int bar() { ... } }`) or out-of-line in a separate
142
+ // file (`int Foo::bar() { ... }` in foo.cpp while class Foo is in foo.hpp).
143
+ // The previous same-file approach missed the latter — the typical C++ layout.
144
+ const methodCandidates = context.getNodesByName(methodName);
145
+ const want = `${typeName}::${methodName}`;
146
+ const matches = [];
147
+ for (const m of methodCandidates) {
148
+ if (m.kind !== 'method')
149
+ continue;
150
+ if (m.language !== ref.language)
151
+ continue;
152
+ const qn = m.qualifiedName;
153
+ if (qn === want || qn.endsWith(`::${want}`)) {
154
+ matches.push(m);
155
+ }
156
+ }
157
+ if (matches.length === 0)
158
+ return null;
159
+ if (matches.length > 1 && preferredFqn) {
160
+ const ext = ref.language === 'kotlin' ? '.kt' : '.java';
161
+ const fqnPath = preferredFqn.replace(/\./g, '/') + ext;
162
+ const chosen = matches.find((m) => {
163
+ const fp = m.filePath.replace(/\\/g, '/');
164
+ return fp.endsWith(fqnPath) || fp.endsWith('/' + fqnPath);
165
+ });
166
+ if (chosen) {
167
+ return {
168
+ original: ref,
169
+ targetNodeId: chosen.id,
170
+ confidence,
171
+ resolvedBy,
172
+ };
173
+ }
174
+ }
175
+ return {
176
+ original: ref,
177
+ targetNodeId: matches[0].id,
178
+ confidence,
179
+ resolvedBy,
180
+ };
181
+ }
182
+ // C++ keywords/control-flow tokens that can appear right before a receiver
183
+ // (e.g. `return ptr->m()`) and must NOT be treated as a type.
184
+ const CPP_NON_TYPE_TOKENS = new Set([
185
+ 'return', 'if', 'else', 'for', 'while', 'do', 'switch', 'case', 'default',
186
+ 'break', 'continue', 'goto', 'throw', 'new', 'delete', 'co_await', 'co_yield',
187
+ 'co_return', 'static_cast', 'const_cast', 'dynamic_cast', 'reinterpret_cast',
188
+ 'sizeof', 'alignof', 'typeid', 'and', 'or', 'not', 'xor',
189
+ ]);
190
+ function normalizeCppTypeName(typeName) {
191
+ const normalized = typeName
192
+ .replace(/\b(const|volatile|mutable|typename|class|struct)\b/g, ' ')
193
+ .replace(/[&*]+/g, ' ')
194
+ .replace(/<[^>]*>/g, ' ')
195
+ .replace(/\s+/g, ' ')
196
+ .trim();
197
+ if (!normalized)
198
+ return null;
199
+ const parts = normalized.split(/::/).filter(Boolean);
200
+ const last = parts[parts.length - 1];
201
+ if (!last)
202
+ return null;
203
+ if (CPP_NON_TYPE_TOKENS.has(last))
204
+ return null;
205
+ return last;
206
+ }
207
+ // Declarator regex: matches `Type receiver`, `Type* receiver`, `Type *receiver`,
208
+ // `Type*receiver`, `Type<X> receiver`, etc., REQUIRING a declarator terminator
209
+ // (`;`, `=`, `,`, `)`, `[`, `{`, `(`, or end-of-line) after the receiver. The
210
+ // terminator rules out uses like `return receiver->m()` where the preceding
211
+ // token is a keyword, not a type.
212
+ function buildDeclaratorRegex(escapedReceiver) {
213
+ return new RegExp(`([A-Za-z_][\\w:]*(?:\\s*<[^;=(){}]+>)?(?:\\s*[*&]+)?)\\s*\\b${escapedReceiver}\\b\\s*(?=[;=,)\\[{(]|$)`);
214
+ }
215
+ function inferCppReceiverType(receiverName, ref, context) {
216
+ const source = context.readFile(ref.filePath);
217
+ if (!source)
218
+ return null;
219
+ const lines = source.split(/\r?\n/);
220
+ const callLineIndex = Math.max(0, Math.min(lines.length - 1, ref.line - 1));
221
+ const escapedReceiver = receiverName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
222
+ const receiverPattern = new RegExp(`\\b${escapedReceiver}\\b`);
223
+ const declaratorRegex = buildDeclaratorRegex(escapedReceiver);
224
+ for (let i = callLineIndex; i >= 0; i--) {
225
+ const line = lines[i];
226
+ if (!line || !receiverPattern.test(line))
227
+ continue;
228
+ const declaratorMatch = line.match(declaratorRegex);
229
+ if (declaratorMatch) {
230
+ const normalized = normalizeCppTypeName(declaratorMatch[1] ?? '');
231
+ if (normalized)
232
+ return normalized;
233
+ }
234
+ }
235
+ const headerCandidates = [
236
+ ref.filePath.replace(/\.(?:c|cc|cpp|cxx)$/i, '.h'),
237
+ ref.filePath.replace(/\.(?:c|cc|cpp|cxx)$/i, '.hpp'),
238
+ ref.filePath.replace(/\.(?:c|cc|cpp|cxx)$/i, '.hxx'),
239
+ ].filter((candidate, index, arr) => arr.indexOf(candidate) === index && candidate !== ref.filePath);
240
+ for (const headerPath of headerCandidates) {
241
+ if (!context.fileExists(headerPath))
242
+ continue;
243
+ const headerSource = context.readFile(headerPath);
244
+ if (!headerSource)
245
+ continue;
246
+ for (const line of headerSource.split(/\r?\n/)) {
247
+ if (!receiverPattern.test(line))
248
+ continue;
249
+ const declaratorMatch = line.match(declaratorRegex);
250
+ if (!declaratorMatch)
251
+ continue;
252
+ const normalized = normalizeCppTypeName(declaratorMatch[1] ?? '');
253
+ if (normalized)
254
+ return normalized;
255
+ }
256
+ }
257
+ return null;
258
+ }
259
+ /**
260
+ * Java/Kotlin: infer a receiver's declared type by walking field declarations
261
+ * in the class enclosing the call site. The field's `signature` is already in
262
+ * the form "<TypeName> <fieldName>" (set by tree-sitter.ts extractField), so we
263
+ * pull the type from there. Handles Spring `@Resource UserBO userbo;` /
264
+ * `@Autowired private UserService userService;` where the receiver field name
265
+ * doesn't match the class name by Java naming convention.
266
+ *
267
+ * Returns the bare type name (generics stripped, dotted package stripped) or
268
+ * null when no matching field is in the enclosing class.
269
+ */
270
+ function inferJavaFieldReceiverType(receiverName, ref, context) {
271
+ const inFile = context.getNodesInFile(ref.filePath);
272
+ if (inFile.length === 0)
273
+ return null;
274
+ // Find the class enclosing the call line (tightest match by latest start).
275
+ let enclosing = null;
276
+ for (const n of inFile) {
277
+ if (n.kind !== 'class' && n.kind !== 'interface')
278
+ continue;
279
+ if (n.language !== ref.language)
280
+ continue;
281
+ const end = n.endLine ?? n.startLine;
282
+ if (n.startLine <= ref.line && end >= ref.line) {
283
+ if (!enclosing || n.startLine >= enclosing.startLine)
284
+ enclosing = n;
285
+ }
286
+ }
287
+ if (!enclosing)
288
+ return null;
289
+ const enclosingEnd = enclosing.endLine ?? enclosing.startLine;
290
+ const field = inFile.find((n) => n.kind === 'field' &&
291
+ n.name === receiverName &&
292
+ n.language === ref.language &&
293
+ n.startLine >= enclosing.startLine &&
294
+ (n.endLine ?? n.startLine) <= enclosingEnd);
295
+ if (!field || !field.signature)
296
+ return null;
297
+ // Signature shape: "<TypeName> <fieldName>" (extractField). Pull the type,
298
+ // strip generics + dotted package, drop array/varargs markers.
299
+ const beforeName = field.signature.slice(0, field.signature.lastIndexOf(field.name));
300
+ const typeRaw = beforeName.trim();
301
+ if (!typeRaw)
302
+ return null;
303
+ const typeNoGenerics = typeRaw.replace(/<[^>]*>/g, '').trim();
304
+ const typeNoArray = typeNoGenerics.replace(/\[\s*\]/g, '').replace(/\.\.\.$/, '').trim();
305
+ const parts = typeNoArray.split(/[.\s]+/).filter(Boolean);
306
+ const lastPart = parts[parts.length - 1];
307
+ if (!lastPart)
308
+ return null;
309
+ if (!/^[A-Z]/.test(lastPart))
310
+ return null; // primitives / lowercase → skip
311
+ return lastPart;
312
+ }
129
313
  /**
130
314
  * Try to resolve by method name on a class/object
131
315
  */
@@ -138,6 +322,34 @@ function matchMethodCall(ref, context) {
138
322
  return null;
139
323
  }
140
324
  const [, objectOrClass, methodName] = match;
325
+ if (ref.language === 'cpp' && dotMatch) {
326
+ const inferredType = inferCppReceiverType(objectOrClass, ref, context);
327
+ if (inferredType) {
328
+ const typedMatch = resolveMethodOnType(inferredType, methodName, ref, context, 0.9, 'instance-method');
329
+ if (typedMatch) {
330
+ return typedMatch;
331
+ }
332
+ }
333
+ }
334
+ // Java/Kotlin: receiver may be a field whose name doesn't match the type by
335
+ // Java naming convention (`userbo` → class `UserBO`, abbreviated). Look up
336
+ // the field in the enclosing class to get its declared type, then resolve
337
+ // the method on that type. Covers Spring `@Resource`/`@Autowired` field
338
+ // injection where the field type is the concrete bean class.
339
+ if ((ref.language === 'java' || ref.language === 'kotlin') && dotMatch) {
340
+ const inferredType = inferJavaFieldReceiverType(objectOrClass, ref, context);
341
+ if (inferredType) {
342
+ // When two classes share the same simple name, the caller file's
343
+ // import is the only signal that names WHICH one — pass the
344
+ // imported FQN so resolveMethodOnType can disambiguate (#314).
345
+ const imports = context.getImportMappings(ref.filePath, ref.language);
346
+ const importedFqn = imports.find((i) => i.localName === inferredType)?.source;
347
+ const typedMatch = resolveMethodOnType(inferredType, methodName, ref, context, 0.9, 'instance-method', importedFqn);
348
+ if (typedMatch) {
349
+ return typedMatch;
350
+ }
351
+ }
352
+ }
141
353
  // Strategy 1: Direct class name match (existing logic)
142
354
  const classCandidates = context.getNodesByName(objectOrClass);
143
355
  for (const classNode of classCandidates) {
@@ -1 +1 @@
1
- {"version":3,"file":"name-matcher.js","sourceRoot":"","sources":["../../src/resolution/name-matcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"name-matcher.js","sourceRoot":"","sources":["../../src/resolution/name-matcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Swift ↔ Objective-C bridging rules.
3
+ *
4
+ * Apple's auto-bridging mechanism exposes Swift declarations to the ObjC
5
+ * runtime under a deterministic selector name. The full rule set:
6
+ * https://developer.apple.com/documentation/swift/importing-swift-into-objective-c
7
+ *
8
+ * This module is **pure name math** — given a Swift declaration's base name
9
+ * + parameter external labels (or the raw signature text), produce the
10
+ * bridged ObjC selector(s); given an ObjC selector, produce the
11
+ * candidate Swift base names. No graph/DB access here.
12
+ *
13
+ * Used by `frameworks/swift-objc.ts` (the framework resolver that wires
14
+ * the rules into the resolution pipeline) and by its tests.
15
+ *
16
+ * ─── Bridging cheat sheet ───────────────────────────────────────────────
17
+ *
18
+ * Swift declaration ObjC selector
19
+ * ───────────────────────────────────────── ─────────────────────────
20
+ * func play() play
21
+ * func play(_ song: String) play:
22
+ * func play(song: String) playWithSong:
23
+ * func play(_ song: String, by artist: String) play:by:
24
+ * func play(song: String, by artist: String) playWithSong:by:
25
+ * init(name: String) initWithName:
26
+ * init(name: String, age: Int) initWithName:age:
27
+ * var name: String (getter / setter) name / setName:
28
+ * @objc(custom:) func f(_ x: Int) custom: (literal override)
29
+ *
30
+ * The reverse direction (ObjC → Swift) collapses the bridge: a Swift call
31
+ * site for `play(song:)` reaches us as the bare base name `play` (Swift's
32
+ * tree-sitter call_expression strips parameter labels from the callee
33
+ * name). So `swiftBaseNamesForObjcSelector('playWithSong:')` returns
34
+ * `['play']` — the resolver looks up Swift methods named `play`.
35
+ */
36
+ /**
37
+ * Compute the auto-bridged ObjC selector for a Swift method declaration.
38
+ *
39
+ * @param baseName The Swift method's base name (e.g. `play`).
40
+ * @param externalLabels Parameter EXTERNAL labels in declaration order;
41
+ * `null` for a `_` (unlabeled) parameter.
42
+ * `[]` for a no-parameter method.
43
+ * @param explicitObjcName If `@objc(customSel:)` was specified, the
44
+ * literal selector — short-circuits the rule
45
+ * and is returned as-is.
46
+ * @returns The ObjC selector (e.g. `playWithSong:by:`), or `null` if it
47
+ * can't be determined.
48
+ *
49
+ * **Method rules:**
50
+ * - No params → base name (no colons)
51
+ * - Single param, `_` label → `baseName:`
52
+ * - Single param, explicit label `L` → `baseNameWithL:`
53
+ * - Multi-param, `_` first label → `baseName:label2:label3:`
54
+ * - Multi-param, explicit first label `L1` → `baseNameWithL1:label2:label3:`
55
+ *
56
+ * Initializer rules are handled by `objcSelectorForSwiftInit`.
57
+ */
58
+ export declare function objcSelectorForSwiftMethod(baseName: string, externalLabels: (string | null)[], explicitObjcName?: string | null): string | null;
59
+ /**
60
+ * Compute the bridged ObjC selector for a Swift `init(...)` declaration.
61
+ *
62
+ * **Init rules** (different from regular methods — Apple always uses
63
+ * `initWith` regardless of whether the first label is `_`):
64
+ * - `init()` → `init`
65
+ * - `init(_ name: String)` → `initWithName:` (uses the INTERNAL
66
+ * name when external is `_`, per Apple's
67
+ * bridging conventions)
68
+ * - `init(name: String)` → `initWithName:`
69
+ * - `init(name: String, age: Int)` → `initWithName:age:`
70
+ *
71
+ * For the `_` case we need the internal (second identifier) name —
72
+ * passed via `internalNames`.
73
+ */
74
+ export declare function objcSelectorForSwiftInit(externalLabels: (string | null)[], internalNames: string[], explicitObjcName?: string | null): string | null;
75
+ /**
76
+ * Compute the bridged ObjC getter + setter for a Swift `@objc` property.
77
+ *
78
+ * - `var name: String` → getter `name`, setter `setName:`
79
+ * - `var isReady: Bool` → getter `isReady`, setter `setIsReady:`
80
+ * (no special `is` handling — Swift's `isReady` stays as `isReady` in ObjC;
81
+ * `@objc(name:)` overrides if a Cocoa-style getter `isReady` / setter
82
+ * `setReady:` pairing is needed — that's the responsibility of the
83
+ * declaration's `@objc(customGetter)` annotation, which we surface via
84
+ * `explicitObjcName`.)
85
+ */
86
+ export declare function objcAccessorsForSwiftProperty(swiftName: string, explicitObjcName?: string | null): {
87
+ getter: string;
88
+ setter: string;
89
+ } | null;
90
+ /**
91
+ * Reverse: from an ObjC selector, return the candidate Swift base names
92
+ * the resolver should try when looking for the bridged Swift declaration.
93
+ *
94
+ * Examples:
95
+ * `play` → ['play']
96
+ * `play:` → ['play']
97
+ * `playWithSong:` → ['play', 'playWithSong']
98
+ * `play:by:` → ['play']
99
+ * `playWithSong:by:` → ['play', 'playWithSong']
100
+ * `initWithName:` → ['init'] (init is its own base name)
101
+ * `initWithName:age:` → ['init']
102
+ * `setName:` → ['name', 'setName'] (could be a setter OR a regular func)
103
+ * `tableView:didSel…:` → ['tableView']
104
+ *
105
+ * Returns multiple candidates because the bare base name is ambiguous —
106
+ * `playWithSong:` could correspond to either `func play(song:)` or
107
+ * `func playWithSong(_ x:)` (a Swift method literally named that with a
108
+ * `_` first label). The resolver tries each.
109
+ */
110
+ export declare function swiftBaseNamesForObjcSelector(selector: string): string[];
111
+ /**
112
+ * Detect whether a Swift method `@objc` declaration uses the `@objc(custom:)`
113
+ * override form, returning the literal selector when present.
114
+ *
115
+ * Regex-based scan over the small chunk of source preceding the declaration —
116
+ * tree-sitter would be more precise but this is only consulted as a fallback
117
+ * when the structured AST isn't available (e.g. resolver-time lookups
118
+ * via `context.readFile`).
119
+ *
120
+ * Returns `null` when the declaration is plain `@objc` (no override) or has
121
+ * no `@objc` attribute at all.
122
+ */
123
+ export declare function detectExplicitObjcName(sourceSlice: string): string | null;
124
+ /**
125
+ * Detect whether a Swift declaration is `@objc`-exposed by scanning the
126
+ * source slice that precedes it. Returns true for explicit `@objc`,
127
+ * `@objc(custom:)`, or membership in a `@objcMembers` class (caller's
128
+ * responsibility to pass class-level context if relevant).
129
+ *
130
+ * `@nonobjc` returns false even if `@objc` also appears (per Swift's rule
131
+ * that `@nonobjc` opts out of class-level `@objcMembers`).
132
+ */
133
+ export declare function isObjcExposed(sourceSlice: string): boolean;
134
+ //# sourceMappingURL=swift-objc-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swift-objc-bridge.d.ts","sourceRoot":"","sources":["../../src/resolution/swift-objc-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAmBH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EACjC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAC/B,MAAM,GAAG,IAAI,CAoBf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EACjC,aAAa,EAAE,MAAM,EAAE,EACvB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAC/B,MAAM,GAAG,IAAI,CA0Bf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAC/B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAW3C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CA+CxE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAG1D"}