@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
|
@@ -38,8 +38,24 @@ exports.djangoResolver = {
|
|
|
38
38
|
if (result)
|
|
39
39
|
return { original: ref, targetNodeId: result, confidence: 0.8, resolvedBy: 'framework' };
|
|
40
40
|
}
|
|
41
|
+
// ORM dynamic dispatch: QuerySet._fetch_all (and siblings) call
|
|
42
|
+
// `self._iterable_class(self)` — a runtime dispatch to the iterable class
|
|
43
|
+
// (default ModelIterable) whose __iter__ runs the SQL compiler. Static
|
|
44
|
+
// parsing can't resolve an attribute-as-callable, so it leaves an unresolved
|
|
45
|
+
// `_iterable_class` ref and a hole in the QuerySet→compiler chain. Bridge it
|
|
46
|
+
// to ModelIterable.__iter__ so the flow actually exists in the graph.
|
|
47
|
+
if (ref.referenceName === '_iterable_class') {
|
|
48
|
+
const target = resolveModelIterableIter(context);
|
|
49
|
+
if (target)
|
|
50
|
+
return { original: ref, targetNodeId: target, confidence: 0.7, resolvedBy: 'framework' };
|
|
51
|
+
}
|
|
41
52
|
return null;
|
|
42
53
|
},
|
|
54
|
+
// Let the ORM dynamic-dispatch ref reach resolve() despite no symbol being
|
|
55
|
+
// named `_iterable_class` (it's a QuerySet attribute, not a declared method).
|
|
56
|
+
claimsReference(name) {
|
|
57
|
+
return name === '_iterable_class';
|
|
58
|
+
},
|
|
43
59
|
extract(filePath, content) {
|
|
44
60
|
if (!filePath.endsWith('.py'))
|
|
45
61
|
return { nodes: [], references: [] };
|
|
@@ -83,9 +99,51 @@ exports.djangoResolver = {
|
|
|
83
99
|
});
|
|
84
100
|
}
|
|
85
101
|
}
|
|
102
|
+
// DRF router registration: `router.register(r'articles', ArticleViewSet)` →
|
|
103
|
+
// route → the ViewSet class (the core CRUD endpoints, which path()/url() miss).
|
|
104
|
+
// The STRING first arg separates this from `admin.site.register(Model, Admin)`
|
|
105
|
+
// (whose first arg is a model class, not a string); the View/ViewSet suffix on
|
|
106
|
+
// the 2nd arg keeps it to DRF viewsets.
|
|
107
|
+
const routerRegex = /\.register\s*\(\s*r?['"]([^'"]+)['"]\s*,\s*([\w.]+)/g;
|
|
108
|
+
while ((match = routerRegex.exec(safe)) !== null) {
|
|
109
|
+
const prefix = match[1].replace(/^\^|\/?\$$/g, '');
|
|
110
|
+
const viewset = match[2].split('.').pop();
|
|
111
|
+
if (!/View(Set)?$/.test(viewset))
|
|
112
|
+
continue;
|
|
113
|
+
const line = safe.slice(0, match.index).split('\n').length;
|
|
114
|
+
const routeNode = {
|
|
115
|
+
id: `route:${filePath}:${line}:VIEWSET:${prefix}`,
|
|
116
|
+
kind: 'route',
|
|
117
|
+
name: `VIEWSET /${prefix}`,
|
|
118
|
+
qualifiedName: `${filePath}::route:${prefix}`,
|
|
119
|
+
filePath, startLine: line, endLine: line, startColumn: 0, endColumn: match[0].length,
|
|
120
|
+
language: 'python', updatedAt: now,
|
|
121
|
+
};
|
|
122
|
+
nodes.push(routeNode);
|
|
123
|
+
references.push({
|
|
124
|
+
fromNodeId: routeNode.id,
|
|
125
|
+
referenceName: viewset,
|
|
126
|
+
referenceKind: 'references',
|
|
127
|
+
line, column: 0, filePath, language: 'python',
|
|
128
|
+
});
|
|
129
|
+
}
|
|
86
130
|
return { nodes, references };
|
|
87
131
|
},
|
|
88
132
|
};
|
|
133
|
+
/**
|
|
134
|
+
* Find ModelIterable.__iter__ — the default iterable QuerySet invokes via
|
|
135
|
+
* `self._iterable_class(self)`. Its __iter__ statically calls the SQL compiler,
|
|
136
|
+
* so linking the dynamic dispatch here closes the QuerySet→SQL call chain.
|
|
137
|
+
* (Over-approximates to the default iterable; .values()/.values_list() swap in
|
|
138
|
+
* other BaseIterable subclasses, but ModelIterable is the canonical path.)
|
|
139
|
+
*/
|
|
140
|
+
function resolveModelIterableIter(context) {
|
|
141
|
+
const cls = context.getNodesByName('ModelIterable').find((n) => n.kind === 'class');
|
|
142
|
+
if (!cls)
|
|
143
|
+
return null;
|
|
144
|
+
const iter = context.getNodesByName('__iter__').find((n) => n.filePath === cls.filePath && n.startLine >= cls.startLine && n.startLine <= cls.endLine);
|
|
145
|
+
return iter ? iter.id : null;
|
|
146
|
+
}
|
|
89
147
|
/**
|
|
90
148
|
* Parse a Django URL handler expression and return the symbol/module to link.
|
|
91
149
|
* Returns null for shapes we can't confidently link (e.g. lambdas).
|
|
@@ -111,15 +169,21 @@ exports.flaskResolver = {
|
|
|
111
169
|
name: 'flask',
|
|
112
170
|
languages: ['python'],
|
|
113
171
|
detect(context) {
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
172
|
+
for (const f of ['requirements.txt', 'pyproject.toml', 'Pipfile', 'setup.py']) {
|
|
173
|
+
const c = context.readFile(f);
|
|
174
|
+
if (c && /\bflask\b/i.test(c))
|
|
175
|
+
return true;
|
|
176
|
+
}
|
|
177
|
+
// Any app entrypoint (root OR subdir, e.g. conduit/app.py) that imports flask
|
|
178
|
+
// and instantiates Flask(...) — covers Flask(__name__), Flask(__name__.split…),
|
|
179
|
+
// and the app-factory pattern. Bounded to entrypoint-named files.
|
|
180
|
+
const entrypoints = context
|
|
181
|
+
.getAllFiles()
|
|
182
|
+
.filter((f) => /(?:^|\/)(app|application|main|wsgi|__init__)\.py$/.test(f))
|
|
183
|
+
.slice(0, 50);
|
|
184
|
+
for (const f of entrypoints) {
|
|
185
|
+
const c = context.readFile(f);
|
|
186
|
+
if (c && /\bFlask\s*\(/.test(c) && /\bimport\s+flask\b|\bfrom\s+flask\b/.test(c))
|
|
123
187
|
return true;
|
|
124
188
|
}
|
|
125
189
|
return false;
|
|
@@ -135,15 +199,23 @@ exports.flaskResolver = {
|
|
|
135
199
|
extract(filePath, content) {
|
|
136
200
|
if (!filePath.endsWith('.py'))
|
|
137
201
|
return { nodes: [], references: [] };
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
202
|
+
const safe = (0, strip_comments_1.stripCommentsForRegex)(content, 'python');
|
|
203
|
+
const decorator = extractDecoratorRoutes(filePath, safe, {
|
|
204
|
+
// Flask: @x.route('/path', methods=[...] | (...)) — the handler is the next
|
|
205
|
+
// `def`, allowing intervening decorators (@login_required) and stacked
|
|
206
|
+
// @x.route() lines. methods may be a list OR a tuple (methods=('GET',)).
|
|
207
|
+
decoratorRegex: /@(\w+)\.route\s*\(\s*['"]([^'"]*)['"](?:\s*,\s*methods\s*=\s*[[(]([^\])]+)[\])])?\s*\)/g,
|
|
141
208
|
defaultMethod: 'GET',
|
|
142
209
|
methodFromGroup: 3,
|
|
143
210
|
pathGroup: 2,
|
|
144
|
-
|
|
211
|
+
findHandler: true,
|
|
145
212
|
language: 'python',
|
|
146
213
|
});
|
|
214
|
+
const restful = extractFlaskRestful(filePath, safe);
|
|
215
|
+
return {
|
|
216
|
+
nodes: [...decorator.nodes, ...restful.nodes],
|
|
217
|
+
references: [...decorator.references, ...restful.references],
|
|
218
|
+
};
|
|
147
219
|
},
|
|
148
220
|
};
|
|
149
221
|
exports.fastapiResolver = {
|
|
@@ -180,8 +252,9 @@ exports.fastapiResolver = {
|
|
|
180
252
|
if (!filePath.endsWith('.py'))
|
|
181
253
|
return { nodes: [], references: [] };
|
|
182
254
|
return extractDecoratorRoutes(filePath, (0, strip_comments_1.stripCommentsForRegex)(content, 'python'), {
|
|
183
|
-
// FastAPI: @x.METHOD('/path') -> handler on the next def line
|
|
184
|
-
|
|
255
|
+
// FastAPI: @x.METHOD('/path') -> handler on the next def line. Path may be
|
|
256
|
+
// empty ("") for routes mounted at the router/prefix root.
|
|
257
|
+
decoratorRegex: /@(\w+)\.(get|post|put|patch|delete|options|head)\s*\(\s*['"]([^'"]*)['"]/g,
|
|
185
258
|
defaultMethod: '',
|
|
186
259
|
methodGroup: 2,
|
|
187
260
|
pathGroup: 3,
|
|
@@ -207,7 +280,7 @@ function extractDecoratorRoutes(filePath, content, opts) {
|
|
|
207
280
|
method = m[1].toUpperCase();
|
|
208
281
|
}
|
|
209
282
|
const line = content.slice(0, match.index).split('\n').length;
|
|
210
|
-
const name = method ? `${method} ${routePath}` : routePath;
|
|
283
|
+
const name = method ? `${method} ${routePath || '/'}` : (routePath || '/');
|
|
211
284
|
const routeNode = {
|
|
212
285
|
id: `route:${filePath}:${line}:${method}:${routePath}`,
|
|
213
286
|
kind: 'route',
|
|
@@ -246,6 +319,51 @@ function extractDecoratorRoutes(filePath, content, opts) {
|
|
|
246
319
|
}
|
|
247
320
|
return { nodes, references };
|
|
248
321
|
}
|
|
322
|
+
/**
|
|
323
|
+
* Flask-RESTful: `api.add_resource(ResourceClass, '/path'[, '/path2'])`
|
|
324
|
+
* (and variants like redash's `add_org_resource`). The ResourceClass holds the
|
|
325
|
+
* HTTP-verb methods (get/post/…), so the route references the class — its verb
|
|
326
|
+
* methods resolve as the handlers via the class. Method is ANY (the class
|
|
327
|
+
* decides which verbs it serves).
|
|
328
|
+
*/
|
|
329
|
+
function extractFlaskRestful(filePath, safe) {
|
|
330
|
+
const nodes = [];
|
|
331
|
+
const references = [];
|
|
332
|
+
const now = Date.now();
|
|
333
|
+
const re = /\.add\w*[Rr]esource\s*\(\s*(\w+)\s*,\s*((?:['"][^'"]+['"]\s*,?\s*)+)/g;
|
|
334
|
+
let m;
|
|
335
|
+
while ((m = re.exec(safe)) !== null) {
|
|
336
|
+
const className = m[1];
|
|
337
|
+
const paths = (m[2].match(/['"]([^'"]+)['"]/g) || []).map((s) => s.slice(1, -1));
|
|
338
|
+
const line = safe.slice(0, m.index).split('\n').length;
|
|
339
|
+
for (const routePath of paths) {
|
|
340
|
+
const routeNode = {
|
|
341
|
+
id: `route:${filePath}:${line}:ANY:${routePath}`,
|
|
342
|
+
kind: 'route',
|
|
343
|
+
name: `ANY ${routePath}`,
|
|
344
|
+
qualifiedName: `${filePath}::ANY:${routePath}`,
|
|
345
|
+
filePath,
|
|
346
|
+
startLine: line,
|
|
347
|
+
endLine: line,
|
|
348
|
+
startColumn: 0,
|
|
349
|
+
endColumn: 0,
|
|
350
|
+
language: 'python',
|
|
351
|
+
updatedAt: now,
|
|
352
|
+
};
|
|
353
|
+
nodes.push(routeNode);
|
|
354
|
+
references.push({
|
|
355
|
+
fromNodeId: routeNode.id,
|
|
356
|
+
referenceName: className,
|
|
357
|
+
referenceKind: 'references',
|
|
358
|
+
line,
|
|
359
|
+
column: 0,
|
|
360
|
+
filePath,
|
|
361
|
+
language: 'python',
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
return { nodes, references };
|
|
366
|
+
}
|
|
249
367
|
// Directory patterns
|
|
250
368
|
const MODEL_DIRS = ['models', 'app/models', 'src/models'];
|
|
251
369
|
const VIEW_DIRS = ['views', 'app/views', 'src/views', 'api/views'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/python.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"python.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/python.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-native.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/react-native.ts"],"names":[],"mappings":"AAyCA,OAAO,EACL,iBAAiB,EAElB,MAAM,UAAU,CAAC;AAuTlB,eAAO,MAAM,yBAAyB,EAAE,iBA8EvC,CAAC"}
|
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.reactNativeBridgeResolver = void 0;
|
|
4
|
+
/** Per-context lazy map cache. */
|
|
5
|
+
const nativeMethodMaps = new WeakMap();
|
|
6
|
+
// ─── Native-side extraction ─────────────────────────────────────────────────
|
|
7
|
+
/**
|
|
8
|
+
* Default ObjC module name when `RCT_EXPORT_MODULE()` has no argument:
|
|
9
|
+
* strip a leading `RCT` prefix from the class name (Apple's convention)
|
|
10
|
+
* and treat the rest as the JS-visible module name. `RCTGeolocation` →
|
|
11
|
+
* `Geolocation`. Class names without an `RCT` prefix are returned
|
|
12
|
+
* unchanged.
|
|
13
|
+
*/
|
|
14
|
+
function defaultObjcModuleName(className) {
|
|
15
|
+
return className.startsWith('RCT') && className.length > 3
|
|
16
|
+
? className.slice(3)
|
|
17
|
+
: className;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Parse an ObjC `.m`/`.mm` file's source for `RCT_EXPORT_MODULE` and
|
|
21
|
+
* `RCT_EXPORT_METHOD` / `RCT_REMAP_METHOD` declarations, returning the
|
|
22
|
+
* inferred (moduleName, jsMethodName) pairs.
|
|
23
|
+
*
|
|
24
|
+
* The macro forms (a single `RCT_EXPORT_MODULE` per file conventionally
|
|
25
|
+
* matched to a single `@implementation`):
|
|
26
|
+
* - `RCT_EXPORT_MODULE()` — module name = class name with `RCT` prefix
|
|
27
|
+
* stripped
|
|
28
|
+
* - `RCT_EXPORT_MODULE(jsName)` — explicit name
|
|
29
|
+
* - `RCT_EXPORT_METHOD(selector:(arg1)label1:(arg2)label2)` — JS name =
|
|
30
|
+
* `selector` (the first keyword)
|
|
31
|
+
* - `RCT_REMAP_METHOD(jsName, selector:(arg1)label1:(arg2)label2)` —
|
|
32
|
+
* JS name = literal `jsName`
|
|
33
|
+
*
|
|
34
|
+
* Regex-based scan is sufficient — these macros are highly stylized and
|
|
35
|
+
* appear at top level. Pulling them out of the full AST would require a
|
|
36
|
+
* macro-aware ObjC parse the tree-sitter grammar doesn't provide.
|
|
37
|
+
*/
|
|
38
|
+
function parseObjcRNExports(source, className) {
|
|
39
|
+
const results = [];
|
|
40
|
+
// RCT_EXPORT_MODULE — one per file by convention. Capture the optional arg.
|
|
41
|
+
const moduleMatch = source.match(/RCT_EXPORT_MODULE\s*\(\s*([A-Za-z_][A-Za-z0-9_]*)?\s*\)/);
|
|
42
|
+
// Need a module name to attribute methods. Prefer the explicit macro arg,
|
|
43
|
+
// then the class name, then bail (no module = nothing useful to register).
|
|
44
|
+
const moduleName = moduleMatch?.[1] ??
|
|
45
|
+
(className ? defaultObjcModuleName(className) : null);
|
|
46
|
+
if (!moduleName)
|
|
47
|
+
return results;
|
|
48
|
+
// RCT_EXPORT_METHOD(selectorFirstKw:(args)…)
|
|
49
|
+
// The first keyword (everything up to the first `:` or open paren) is the
|
|
50
|
+
// JS-visible name. We don't try to parse full multi-keyword selectors —
|
|
51
|
+
// RN's JS view of the method uses only the first keyword.
|
|
52
|
+
const exportRegex = /RCT_EXPORT_METHOD\s*\(\s*([A-Za-z_][A-Za-z0-9_]*)/g;
|
|
53
|
+
let m;
|
|
54
|
+
while ((m = exportRegex.exec(source)) !== null) {
|
|
55
|
+
const kw = m[1];
|
|
56
|
+
if (kw)
|
|
57
|
+
results.push({ moduleName, jsName: kw, nativeSelectorFirstKw: kw });
|
|
58
|
+
}
|
|
59
|
+
// RCT_REMAP_METHOD(jsName, nativeSelectorFirstKw:(args)…)
|
|
60
|
+
const remapRegex = /RCT_REMAP_METHOD\s*\(\s*([A-Za-z_][A-Za-z0-9_]*)\s*,\s*([A-Za-z_][A-Za-z0-9_]*)/g;
|
|
61
|
+
while ((m = remapRegex.exec(source)) !== null) {
|
|
62
|
+
const jsName = m[1];
|
|
63
|
+
const nativeKw = m[2];
|
|
64
|
+
if (jsName && nativeKw) {
|
|
65
|
+
results.push({ moduleName, jsName, nativeSelectorFirstKw: nativeKw });
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return results;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Find the `@implementation` class name in an ObjC file — used as the
|
|
72
|
+
* fallback module name when `RCT_EXPORT_MODULE()` has no argument.
|
|
73
|
+
* (Categories of the form `@implementation Foo (Bar)` are correctly
|
|
74
|
+
* captured here as `Foo`, but a category file probably isn't where a
|
|
75
|
+
* fresh `RCT_EXPORT_MODULE` lives anyway.)
|
|
76
|
+
*/
|
|
77
|
+
function findObjcClassName(source) {
|
|
78
|
+
const m = source.match(/@implementation\s+([A-Za-z_][A-Za-z0-9_]*)/);
|
|
79
|
+
return m?.[1] ?? null;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Parse a Java/Kotlin source file for `@ReactMethod` annotated methods
|
|
83
|
+
* and the surrounding class's `getName()` return value (the JS-visible
|
|
84
|
+
* module name).
|
|
85
|
+
*
|
|
86
|
+
* Java: `@ReactMethod public void getCurrentPosition(Callback cb) { … }`
|
|
87
|
+
* Kotlin: `@ReactMethod fun getCurrentPosition(cb: Callback) { … }`
|
|
88
|
+
*
|
|
89
|
+
* Class name comes from `class XxxModule extends ReactContextBaseJavaModule`
|
|
90
|
+
* (Java) or `class XxxModule : ReactContextBaseJavaModule(...)` (Kotlin).
|
|
91
|
+
* The JS-visible module name comes from `getName()` returning a literal
|
|
92
|
+
* string — fall back to the class name with a `Module` suffix stripped
|
|
93
|
+
* when the literal isn't present.
|
|
94
|
+
*/
|
|
95
|
+
function parseJvmRNExports(source) {
|
|
96
|
+
const results = [];
|
|
97
|
+
// getName() literal — Java + Kotlin both look something like:
|
|
98
|
+
// public String getName() { return "Geolocation"; }
|
|
99
|
+
// fun getName(): String = "Geolocation"
|
|
100
|
+
// fun getName() = "Geolocation"
|
|
101
|
+
const getName = source.match(/\bgetName\s*\([^)]*\)\s*(?::\s*String)?\s*(?:=\s*|\{[^}]*return\s*)"([^"]+)"/);
|
|
102
|
+
// Class name fallback.
|
|
103
|
+
const classMatch = source.match(/\bclass\s+([A-Za-z_][A-Za-z0-9_]*)\b[^{]*ReactContextBaseJavaModule/) ??
|
|
104
|
+
source.match(/\bclass\s+([A-Za-z_][A-Za-z0-9_]*)\b[^{]*ReactPackage/);
|
|
105
|
+
const moduleName = getName?.[1] ?? (classMatch?.[1] ? classMatch[1].replace(/Module$/, '') : null);
|
|
106
|
+
if (!moduleName)
|
|
107
|
+
return results;
|
|
108
|
+
// @ReactMethod annotations — followed (after optional modifiers / args /
|
|
109
|
+
// newlines) by either `void <name>(` (Java) or `fun <name>(` (Kotlin).
|
|
110
|
+
const methodRegex = /@ReactMethod\b[^{]*?(?:\bfun\s+|\bvoid\s+|\bpublic\s+\w[\w<>\[\]]*\s+)([A-Za-z_][A-Za-z0-9_]*)\s*\(/g;
|
|
111
|
+
let m;
|
|
112
|
+
while ((m = methodRegex.exec(source)) !== null) {
|
|
113
|
+
const jsName = m[1];
|
|
114
|
+
if (jsName)
|
|
115
|
+
results.push({ moduleName, jsName });
|
|
116
|
+
}
|
|
117
|
+
return results;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Parse a TS file for a TurboModule spec declaration. The spec file is
|
|
121
|
+
* the JS↔native source-of-truth in the new architecture — its interface
|
|
122
|
+
* lists every JS-visible method, and a `TurboModuleRegistry.get*<Spec>(...)`
|
|
123
|
+
* default export pins the module name.
|
|
124
|
+
*
|
|
125
|
+
* Returns `null` when the file isn't a TurboModule spec.
|
|
126
|
+
*/
|
|
127
|
+
function parseTurboModuleSpec(source) {
|
|
128
|
+
// `TurboModuleRegistry.getEnforcing<Spec>('ModuleName')` or
|
|
129
|
+
// `TurboModuleRegistry.get<Spec>('ModuleName')`. The literal must be a
|
|
130
|
+
// single-or-double-quoted string.
|
|
131
|
+
const regMatch = source.match(/TurboModuleRegistry\.(?:getEnforcing|get)\s*<[^>]*>\s*\(\s*['"]([^'"]+)['"]\s*\)/);
|
|
132
|
+
if (!regMatch || !regMatch[1])
|
|
133
|
+
return null;
|
|
134
|
+
const moduleName = regMatch[1];
|
|
135
|
+
// Find `export interface Spec extends TurboModule { … }` and pull each
|
|
136
|
+
// method declaration's name. We don't need types — just names.
|
|
137
|
+
const ifaceMatch = source.match(/export\s+interface\s+Spec\b[^{]*\{([\s\S]*?)\n\}/);
|
|
138
|
+
if (!ifaceMatch || !ifaceMatch[1])
|
|
139
|
+
return null;
|
|
140
|
+
const body = ifaceMatch[1];
|
|
141
|
+
const methods = [];
|
|
142
|
+
// Method shape: `name(args): ReturnType;` or `name(): void;`. Skip
|
|
143
|
+
// properties (no parens before colon).
|
|
144
|
+
const methodRegex = /^\s*([A-Za-z_][A-Za-z0-9_]*)\s*\(/gm;
|
|
145
|
+
let m;
|
|
146
|
+
while ((m = methodRegex.exec(body)) !== null) {
|
|
147
|
+
const name = m[1];
|
|
148
|
+
if (name)
|
|
149
|
+
methods.push(name);
|
|
150
|
+
}
|
|
151
|
+
return { moduleName, methods };
|
|
152
|
+
}
|
|
153
|
+
// ─── Map building ───────────────────────────────────────────────────────────
|
|
154
|
+
/**
|
|
155
|
+
* RCTEventEmitter built-ins that every emitter subclass inherits. JS code
|
|
156
|
+
* doesn't directly call these — they're internal plumbing for the
|
|
157
|
+
* `NativeEventEmitter` abstraction. If we leave them in the bridge map,
|
|
158
|
+
* every JS `addListener` / `remove` call (Firestore subscribers, RxJS
|
|
159
|
+
* pipelines, plain Array.remove, etc.) gets mis-bridged to whichever
|
|
160
|
+
* emitter happens to define them. Skip during map building.
|
|
161
|
+
*/
|
|
162
|
+
const RN_EMITTER_BUILTINS = new Set([
|
|
163
|
+
'addListener',
|
|
164
|
+
'removeListeners',
|
|
165
|
+
'remove',
|
|
166
|
+
'invalidate',
|
|
167
|
+
'startObserving',
|
|
168
|
+
'stopObserving',
|
|
169
|
+
]);
|
|
170
|
+
function buildRNMaps(context) {
|
|
171
|
+
const cached = nativeMethodMaps.get(context);
|
|
172
|
+
if (cached)
|
|
173
|
+
return cached;
|
|
174
|
+
const byJsName = new Map();
|
|
175
|
+
const allFiles = context.getAllFiles();
|
|
176
|
+
// Pre-index native methods by name for fast lookup when matching to
|
|
177
|
+
// their bridge exports.
|
|
178
|
+
const objcMethodsByFirstKw = new Map();
|
|
179
|
+
const jvmMethodsByName = new Map();
|
|
180
|
+
for (const node of context.getNodesByKind('method')) {
|
|
181
|
+
if (node.language === 'objc') {
|
|
182
|
+
const firstKw = node.name.includes(':') ? node.name.split(':')[0] : node.name;
|
|
183
|
+
if (firstKw) {
|
|
184
|
+
const arr = objcMethodsByFirstKw.get(firstKw);
|
|
185
|
+
if (arr)
|
|
186
|
+
arr.push(node);
|
|
187
|
+
else
|
|
188
|
+
objcMethodsByFirstKw.set(firstKw, [node]);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
else if (node.language === 'java' || node.language === 'kotlin') {
|
|
192
|
+
const arr = jvmMethodsByName.get(node.name);
|
|
193
|
+
if (arr)
|
|
194
|
+
arr.push(node);
|
|
195
|
+
else
|
|
196
|
+
jvmMethodsByName.set(node.name, [node]);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
for (const file of allFiles) {
|
|
200
|
+
// Legacy bridge — ObjC side.
|
|
201
|
+
if (file.endsWith('.m') || file.endsWith('.mm')) {
|
|
202
|
+
const source = context.readFile(file);
|
|
203
|
+
if (!source)
|
|
204
|
+
continue;
|
|
205
|
+
const className = findObjcClassName(source);
|
|
206
|
+
const exports = parseObjcRNExports(source, className);
|
|
207
|
+
for (const exp of exports) {
|
|
208
|
+
if (RN_EMITTER_BUILTINS.has(exp.jsName))
|
|
209
|
+
continue;
|
|
210
|
+
// Resolve to the native node by selector first-keyword. Multiple
|
|
211
|
+
// ObjC methods may share a first keyword across modules; filter by
|
|
212
|
+
// file path to attribute the export to this module's
|
|
213
|
+
// implementation file.
|
|
214
|
+
const candidates = objcMethodsByFirstKw.get(exp.nativeSelectorFirstKw) ?? [];
|
|
215
|
+
const node = candidates.find((c) => c.filePath === file) ?? candidates[0];
|
|
216
|
+
if (!node)
|
|
217
|
+
continue;
|
|
218
|
+
const entry = { moduleName: exp.moduleName, jsName: exp.jsName, node };
|
|
219
|
+
const arr = byJsName.get(exp.jsName);
|
|
220
|
+
if (arr)
|
|
221
|
+
arr.push(entry);
|
|
222
|
+
else
|
|
223
|
+
byJsName.set(exp.jsName, [entry]);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
// Legacy bridge — Java/Kotlin side.
|
|
227
|
+
if (file.endsWith('.java') || file.endsWith('.kt')) {
|
|
228
|
+
const source = context.readFile(file);
|
|
229
|
+
if (!source)
|
|
230
|
+
continue;
|
|
231
|
+
const exports = parseJvmRNExports(source);
|
|
232
|
+
for (const exp of exports) {
|
|
233
|
+
if (RN_EMITTER_BUILTINS.has(exp.jsName))
|
|
234
|
+
continue;
|
|
235
|
+
const candidates = jvmMethodsByName.get(exp.jsName) ?? [];
|
|
236
|
+
const node = candidates.find((c) => c.filePath === file) ?? candidates[0];
|
|
237
|
+
if (!node)
|
|
238
|
+
continue;
|
|
239
|
+
const entry = { moduleName: exp.moduleName, jsName: exp.jsName, node };
|
|
240
|
+
const arr = byJsName.get(exp.jsName);
|
|
241
|
+
if (arr)
|
|
242
|
+
arr.push(entry);
|
|
243
|
+
else
|
|
244
|
+
byJsName.set(exp.jsName, [entry]);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
// TurboModule spec — TS side.
|
|
248
|
+
if (file.endsWith('.ts') || file.endsWith('.tsx')) {
|
|
249
|
+
const source = context.readFile(file);
|
|
250
|
+
if (!source)
|
|
251
|
+
continue;
|
|
252
|
+
const spec = parseTurboModuleSpec(source);
|
|
253
|
+
if (!spec)
|
|
254
|
+
continue;
|
|
255
|
+
// For each spec method, find a matching native implementation by
|
|
256
|
+
// name. The spec's module name doesn't determine the native file
|
|
257
|
+
// path (Codegen wires it via name convention), so we match across
|
|
258
|
+
// all native methods of the right name.
|
|
259
|
+
for (const methodName of spec.methods) {
|
|
260
|
+
if (RN_EMITTER_BUILTINS.has(methodName))
|
|
261
|
+
continue;
|
|
262
|
+
// ObjC first-keyword match, then JVM bare-name match. Don't
|
|
263
|
+
// require module-name match for ObjC because the native side may
|
|
264
|
+
// have stripped a prefix.
|
|
265
|
+
const objcCands = objcMethodsByFirstKw.get(methodName) ?? [];
|
|
266
|
+
const jvmCands = jvmMethodsByName.get(methodName) ?? [];
|
|
267
|
+
for (const node of [...objcCands, ...jvmCands]) {
|
|
268
|
+
const entry = { moduleName: spec.moduleName, jsName: methodName, node };
|
|
269
|
+
const arr = byJsName.get(methodName);
|
|
270
|
+
if (arr)
|
|
271
|
+
arr.push(entry);
|
|
272
|
+
else
|
|
273
|
+
byJsName.set(methodName, [entry]);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
const result = { byJsName };
|
|
279
|
+
nativeMethodMaps.set(context, result);
|
|
280
|
+
return result;
|
|
281
|
+
}
|
|
282
|
+
// ─── Resolver ───────────────────────────────────────────────────────────────
|
|
283
|
+
exports.reactNativeBridgeResolver = {
|
|
284
|
+
name: 'react-native-bridge',
|
|
285
|
+
languages: ['javascript', 'typescript', 'tsx', 'jsx'],
|
|
286
|
+
/**
|
|
287
|
+
* Detect: package.json depends on `react-native`, OR any source file
|
|
288
|
+
* uses the `RCT_EXPORT_MODULE` / `RCT_EXPORT_METHOD` /
|
|
289
|
+
* `TurboModuleRegistry` markers. Either signal is enough — different
|
|
290
|
+
* libraries split the JS package from the native code (`react-native-svg`'s
|
|
291
|
+
* apple/ + android/ directories vs its src/), so we don't require both.
|
|
292
|
+
*/
|
|
293
|
+
detect(context) {
|
|
294
|
+
const pkg = context.readFile('package.json');
|
|
295
|
+
if (pkg && /["']react-native["']\s*:/.test(pkg))
|
|
296
|
+
return true;
|
|
297
|
+
// Fallback: scan a small number of files for the macro markers — only
|
|
298
|
+
// looking at the first ones returned by getAllFiles to keep detect()
|
|
299
|
+
// fast on huge repos.
|
|
300
|
+
const files = context.getAllFiles();
|
|
301
|
+
for (let i = 0; i < Math.min(files.length, 200); i++) {
|
|
302
|
+
const f = files[i];
|
|
303
|
+
if (!f)
|
|
304
|
+
continue;
|
|
305
|
+
if (f.endsWith('.mm') || f.endsWith('.m')) {
|
|
306
|
+
const src = context.readFile(f);
|
|
307
|
+
if (src && /RCT_EXPORT_MODULE\b/.test(src))
|
|
308
|
+
return true;
|
|
309
|
+
}
|
|
310
|
+
if (f.endsWith('.ts') || f.endsWith('.tsx')) {
|
|
311
|
+
const src = context.readFile(f);
|
|
312
|
+
if (src && /TurboModuleRegistry\.(?:get|getEnforcing)\s*</.test(src))
|
|
313
|
+
return true;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
return false;
|
|
317
|
+
},
|
|
318
|
+
claimsReference(_name) {
|
|
319
|
+
// JS-visible method names are ordinary identifiers and are typically
|
|
320
|
+
// already in `knownNames` (every TurboModule spec method, every
|
|
321
|
+
// RCT_EXPORT_METHOD, has a node somewhere). So we don't need to
|
|
322
|
+
// claim through the pre-filter — the ref reaches us via the normal
|
|
323
|
+
// hasAnyPossibleMatch path.
|
|
324
|
+
return false;
|
|
325
|
+
},
|
|
326
|
+
resolve(ref, context) {
|
|
327
|
+
// We only redirect JS callers — native callers don't need this resolver.
|
|
328
|
+
if (ref.language !== 'javascript' &&
|
|
329
|
+
ref.language !== 'typescript' &&
|
|
330
|
+
ref.language !== 'tsx' &&
|
|
331
|
+
ref.language !== 'jsx') {
|
|
332
|
+
return null;
|
|
333
|
+
}
|
|
334
|
+
// JS callsites of `obj.method()` reach the resolver as either
|
|
335
|
+
// `obj.method` (qualified) or `method` (bare). Strip a single dot
|
|
336
|
+
// prefix to get the JS-visible method name.
|
|
337
|
+
const name = ref.referenceName.includes('.')
|
|
338
|
+
? ref.referenceName.slice(ref.referenceName.lastIndexOf('.') + 1)
|
|
339
|
+
: ref.referenceName;
|
|
340
|
+
const maps = buildRNMaps(context);
|
|
341
|
+
const entries = maps.byJsName.get(name);
|
|
342
|
+
if (!entries || entries.length === 0)
|
|
343
|
+
return null;
|
|
344
|
+
// Prefer the iOS (ObjC) target over Android when both exist — iOS is
|
|
345
|
+
// the conventional first-class platform for RN library docs and most
|
|
346
|
+
// graph queries. We still record only one edge; a JVM-only resolution
|
|
347
|
+
// is fine when no ObjC target exists.
|
|
348
|
+
const objc = entries.find((e) => e.node.language === 'objc');
|
|
349
|
+
const target = objc ?? entries[0];
|
|
350
|
+
if (!target)
|
|
351
|
+
return null;
|
|
352
|
+
return {
|
|
353
|
+
original: ref,
|
|
354
|
+
targetNodeId: target.node.id,
|
|
355
|
+
confidence: 0.6,
|
|
356
|
+
resolvedBy: 'framework',
|
|
357
|
+
};
|
|
358
|
+
},
|
|
359
|
+
};
|
|
360
|
+
//# sourceMappingURL=react-native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-native.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/react-native.ts"],"names":[],"mappings":"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"}
|