@lzehrung/codegraph 2.3.23 → 2.3.25

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 (188) hide show
  1. package/README.md +1 -1
  2. package/codegraph-skill/codegraph/SKILL.md +2 -2
  3. package/dist/bin/cli.js +3475 -1655
  4. package/dist/bin/query-index-worker.js +569 -229
  5. package/dist/cli/command-table.d.ts.map +1 -1
  6. package/dist/cli/command-table.js +1 -5
  7. package/dist/cli/command-table.js.map +1 -1
  8. package/dist/cli/context.d.ts.map +1 -1
  9. package/dist/cli/context.js +7 -4
  10. package/dist/cli/context.js.map +1 -1
  11. package/dist/cli/doctor.d.ts +1 -0
  12. package/dist/cli/doctor.d.ts.map +1 -1
  13. package/dist/cli/doctor.js +8 -1
  14. package/dist/cli/doctor.js.map +1 -1
  15. package/dist/cli/invocation-context.d.ts +2 -1
  16. package/dist/cli/invocation-context.d.ts.map +1 -1
  17. package/dist/cli/invocation-context.js +13 -0
  18. package/dist/cli/invocation-context.js.map +1 -1
  19. package/dist/document-links/asciidoc.d.ts.map +1 -1
  20. package/dist/document-links/asciidoc.js +33 -0
  21. package/dist/document-links/asciidoc.js.map +1 -1
  22. package/dist/document-links/language-ids.d.ts +10 -0
  23. package/dist/document-links/language-ids.d.ts.map +1 -0
  24. package/dist/document-links/language-ids.js +15 -0
  25. package/dist/document-links/language-ids.js.map +1 -0
  26. package/dist/document-links/markdown.d.ts.map +1 -1
  27. package/dist/document-links/markdown.js +103 -21
  28. package/dist/document-links/markdown.js.map +1 -1
  29. package/dist/document-links/shared.d.ts.map +1 -1
  30. package/dist/document-links/shared.js +1 -0
  31. package/dist/document-links/shared.js.map +1 -1
  32. package/dist/document-links.d.ts +1 -3
  33. package/dist/document-links.d.ts.map +1 -1
  34. package/dist/document-links.js +1 -8
  35. package/dist/document-links.js.map +1 -1
  36. package/dist/duplicates/unit-cache.d.ts +4 -3
  37. package/dist/duplicates/unit-cache.d.ts.map +1 -1
  38. package/dist/duplicates/unit-cache.js +17 -7
  39. package/dist/duplicates/unit-cache.js.map +1 -1
  40. package/dist/duplicates/units.d.ts +2 -1
  41. package/dist/duplicates/units.d.ts.map +1 -1
  42. package/dist/duplicates/units.js +77 -16
  43. package/dist/duplicates/units.js.map +1 -1
  44. package/dist/graphs/edge-resolution.d.ts.map +1 -1
  45. package/dist/graphs/edge-resolution.js +3 -0
  46. package/dist/graphs/edge-resolution.js.map +1 -1
  47. package/dist/graphs/external/stdlib.d.ts.map +1 -1
  48. package/dist/graphs/external/stdlib.js +18 -11
  49. package/dist/graphs/external/stdlib.js.map +1 -1
  50. package/dist/graphs/specifiers.d.ts +3 -2
  51. package/dist/graphs/specifiers.d.ts.map +1 -1
  52. package/dist/graphs/specifiers.js +76 -39
  53. package/dist/graphs/specifiers.js.map +1 -1
  54. package/dist/graphs/symbol-graph-detailed/receiver-calls.js +1 -1
  55. package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
  56. package/dist/indexer/build-cache/options.d.ts +8 -2
  57. package/dist/indexer/build-cache/options.d.ts.map +1 -1
  58. package/dist/indexer/build-cache/options.js +10 -2
  59. package/dist/indexer/build-cache/options.js.map +1 -1
  60. package/dist/indexer/build-cache/reports.d.ts.map +1 -1
  61. package/dist/indexer/build-cache/reports.js +29 -21
  62. package/dist/indexer/build-cache/reports.js.map +1 -1
  63. package/dist/indexer/expand-star-imports.d.ts.map +1 -1
  64. package/dist/indexer/expand-star-imports.js +8 -3
  65. package/dist/indexer/expand-star-imports.js.map +1 -1
  66. package/dist/indexer/imports/language-specific.d.ts.map +1 -1
  67. package/dist/indexer/imports/language-specific.js +166 -32
  68. package/dist/indexer/imports/language-specific.js.map +1 -1
  69. package/dist/indexer/imports/native-captures.d.ts.map +1 -1
  70. package/dist/indexer/imports/native-captures.js +4 -3
  71. package/dist/indexer/imports/native-captures.js.map +1 -1
  72. package/dist/indexer/imports/python.d.ts +2 -0
  73. package/dist/indexer/imports/python.d.ts.map +1 -1
  74. package/dist/indexer/imports/python.js +113 -8
  75. package/dist/indexer/imports/python.js.map +1 -1
  76. package/dist/indexer/imports.d.ts.map +1 -1
  77. package/dist/indexer/imports.js +25 -12
  78. package/dist/indexer/imports.js.map +1 -1
  79. package/dist/indexer/locals-and-exports.d.ts.map +1 -1
  80. package/dist/indexer/locals-and-exports.js +153 -38
  81. package/dist/indexer/locals-and-exports.js.map +1 -1
  82. package/dist/indexer/navigation-goto.js +1 -1
  83. package/dist/indexer/navigation-goto.js.map +1 -1
  84. package/dist/indexer/scope-types.d.ts +1 -1
  85. package/dist/indexer/scope-types.d.ts.map +1 -1
  86. package/dist/indexer/scope.d.ts.map +1 -1
  87. package/dist/indexer/scope.js +43 -2
  88. package/dist/indexer/scope.js.map +1 -1
  89. package/dist/languages/definitions/c-family.d.ts +5 -0
  90. package/dist/languages/definitions/c-family.d.ts.map +1 -1
  91. package/dist/languages/definitions/c-family.js +27 -6
  92. package/dist/languages/definitions/c-family.js.map +1 -1
  93. package/dist/languages/definitions/c.d.ts.map +1 -1
  94. package/dist/languages/definitions/c.js +5 -0
  95. package/dist/languages/definitions/c.js.map +1 -1
  96. package/dist/languages/definitions/cpp.d.ts.map +1 -1
  97. package/dist/languages/definitions/cpp.js +41 -3
  98. package/dist/languages/definitions/cpp.js.map +1 -1
  99. package/dist/languages/definitions/csharp.d.ts.map +1 -1
  100. package/dist/languages/definitions/csharp.js +52 -21
  101. package/dist/languages/definitions/csharp.js.map +1 -1
  102. package/dist/languages/definitions/go.d.ts.map +1 -1
  103. package/dist/languages/definitions/go.js +10 -7
  104. package/dist/languages/definitions/go.js.map +1 -1
  105. package/dist/languages/definitions/html-stub.d.ts +6 -7
  106. package/dist/languages/definitions/html-stub.d.ts.map +1 -1
  107. package/dist/languages/definitions/html-stub.js +6 -7
  108. package/dist/languages/definitions/html-stub.js.map +1 -1
  109. package/dist/languages/definitions/html.js +13 -13
  110. package/dist/languages/definitions/html.js.map +1 -1
  111. package/dist/languages/definitions/java.d.ts.map +1 -1
  112. package/dist/languages/definitions/java.js +6 -0
  113. package/dist/languages/definitions/java.js.map +1 -1
  114. package/dist/languages/definitions/javascript.d.ts.map +1 -1
  115. package/dist/languages/definitions/javascript.js +48 -30
  116. package/dist/languages/definitions/javascript.js.map +1 -1
  117. package/dist/languages/definitions/kotlin.d.ts.map +1 -1
  118. package/dist/languages/definitions/kotlin.js +49 -61
  119. package/dist/languages/definitions/kotlin.js.map +1 -1
  120. package/dist/languages/definitions/php.js +1 -1
  121. package/dist/languages/definitions/php.js.map +1 -1
  122. package/dist/languages/definitions/python.d.ts.map +1 -1
  123. package/dist/languages/definitions/python.js +85 -20
  124. package/dist/languages/definitions/python.js.map +1 -1
  125. package/dist/languages/definitions/ruby.d.ts.map +1 -1
  126. package/dist/languages/definitions/ruby.js +13 -11
  127. package/dist/languages/definitions/ruby.js.map +1 -1
  128. package/dist/languages/definitions/rust.d.ts.map +1 -1
  129. package/dist/languages/definitions/rust.js +22 -5
  130. package/dist/languages/definitions/rust.js.map +1 -1
  131. package/dist/languages/definitions/scss.d.ts.map +1 -1
  132. package/dist/languages/definitions/scss.js +21 -17
  133. package/dist/languages/definitions/scss.js.map +1 -1
  134. package/dist/languages/definitions/sql.js +1 -1
  135. package/dist/languages/definitions/sql.js.map +1 -1
  136. package/dist/languages/definitions/swift.d.ts.map +1 -1
  137. package/dist/languages/definitions/swift.js +66 -16
  138. package/dist/languages/definitions/swift.js.map +1 -1
  139. package/dist/languages/definitions/typescript.d.ts.map +1 -1
  140. package/dist/languages/definitions/typescript.js +30 -9
  141. package/dist/languages/definitions/typescript.js.map +1 -1
  142. package/dist/languages/definitions/zig.d.ts.map +1 -1
  143. package/dist/languages/definitions/zig.js +26 -5
  144. package/dist/languages/definitions/zig.js.map +1 -1
  145. package/dist/languages/import-statement-parsers.d.ts +14 -1
  146. package/dist/languages/import-statement-parsers.d.ts.map +1 -1
  147. package/dist/languages/import-statement-parsers.js +473 -45
  148. package/dist/languages/import-statement-parsers.js.map +1 -1
  149. package/dist/languages/types.d.ts +11 -0
  150. package/dist/languages/types.d.ts.map +1 -1
  151. package/dist/languages.d.ts +1 -0
  152. package/dist/languages.d.ts.map +1 -1
  153. package/dist/languages.js +9 -2
  154. package/dist/languages.js.map +1 -1
  155. package/dist/native/backend-report-format.d.ts +4 -0
  156. package/dist/native/backend-report-format.d.ts.map +1 -0
  157. package/dist/native/backend-report-format.js +14 -0
  158. package/dist/native/backend-report-format.js.map +1 -0
  159. package/dist/native/contracts.d.ts +2 -0
  160. package/dist/native/contracts.d.ts.map +1 -1
  161. package/dist/util/comments.js +1 -1
  162. package/dist/util/comments.js.map +1 -1
  163. package/dist/util/member-access.d.ts +1 -1
  164. package/dist/util/member-access.d.ts.map +1 -1
  165. package/dist/util/member-access.js +5 -2
  166. package/dist/util/member-access.js.map +1 -1
  167. package/dist/util/project-files.js +1 -1
  168. package/dist/util/project-files.js.map +1 -1
  169. package/dist/util/resolution/rust.d.ts +8 -1
  170. package/dist/util/resolution/rust.d.ts.map +1 -1
  171. package/dist/util/resolution/rust.js +521 -7
  172. package/dist/util/resolution/rust.js.map +1 -1
  173. package/dist/util/resolution-candidates.d.ts +1 -1
  174. package/dist/util/resolution-candidates.d.ts.map +1 -1
  175. package/dist/util/resolution-candidates.js +11 -8
  176. package/dist/util/resolution-candidates.js.map +1 -1
  177. package/dist/util/resolution.d.ts +5 -0
  178. package/dist/util/resolution.d.ts.map +1 -1
  179. package/dist/util/resolution.js +18 -7
  180. package/dist/util/resolution.js.map +1 -1
  181. package/dist/util/rust-test-modules.d.ts.map +1 -1
  182. package/dist/util/rust-test-modules.js +2 -5
  183. package/dist/util/rust-test-modules.js.map +1 -1
  184. package/dist/util/specifiers.d.ts +8 -0
  185. package/dist/util/specifiers.d.ts.map +1 -1
  186. package/dist/util/specifiers.js +33 -7
  187. package/dist/util/specifiers.js.map +1 -1
  188. package/package.json +3 -3
@@ -3,6 +3,7 @@ import path from "node:path";
3
3
  import { resolvePythonModule } from "../../util/resolution.js";
4
4
  import { stripPythonCommentsAndStrings } from "../../util/comments.js";
5
5
  import { PYTHON_IDENTIFIER_SOURCE } from "../../util/identifiers.js";
6
+ import { utf8ByteOffsetToStringIndex } from "../../util/rust-test-modules.js";
6
7
  function splitRelativeModuleSpec(moduleSpec) {
7
8
  const match = moduleSpec.match(/^(\.+)(.*)$/);
8
9
  if (!match)
@@ -93,14 +94,116 @@ async function pushDefaultImport(context, dotted, local, moduleLevel) {
93
94
  });
94
95
  }
95
96
  const PYTHON_NAMED_IMPORT_PATTERN = new RegExp(String.raw `^(${PYTHON_IDENTIFIER_SOURCE})(?:\s+as\s+(${PYTHON_IDENTIFIER_SOURCE}))?$`, "u");
96
- const PYTHON_MODULE_IMPORT_PATTERN = new RegExp(String.raw `^[\t ]*import\s+(${PYTHON_IDENTIFIER_SOURCE}(?:\.${PYTHON_IDENTIFIER_SOURCE})*)\s*(?:as\s+(${PYTHON_IDENTIFIER_SOURCE}))?`, "gmu");
97
+ // Matches at a physical line start (capturing its indentation) or immediately after a `;`
98
+ // that ends a preceding simple statement on the same line, so `x = 1; import os` and a
99
+ // multi-line parenthesized statement's trailing `; import os` are both recognized. A
100
+ // compound-suite header's `:` is deliberately excluded, so `if x: import os` still is not.
101
+ const PYTHON_MODULE_IMPORT_PATTERN = new RegExp(String.raw `(^[\t ]*|;[\t ]*)import\s+(${PYTHON_IDENTIFIER_SOURCE}(?:\.${PYTHON_IDENTIFIER_SOURCE})*)\s*(?:as\s+(${PYTHON_IDENTIFIER_SOURCE}))?`, "gmu");
102
+ const PYTHON_MODULE_LIST_ITEM_PATTERN = new RegExp(String.raw `^(${PYTHON_IDENTIFIER_SOURCE}(?:\.${PYTHON_IDENTIFIER_SOURCE})*)(?:\s+as\s+(${PYTHON_IDENTIFIER_SOURCE}))?$`, "u");
103
+ function isPythonModuleLevelImportPrefix(prefix) {
104
+ if (/^[\t ]/.test(prefix))
105
+ return false;
106
+ const cleaned = stripPythonCommentsAndStrings(prefix).trim();
107
+ if (!cleaned)
108
+ return true;
109
+ // A same-line suite belongs to its compound statement, not the module.
110
+ if (/^(?:async\s+)?(?:if|elif|else|for|while|try|except|finally|with|def|class)\b/.test(cleaned)) {
111
+ return false;
112
+ }
113
+ const delimiters = [];
114
+ for (const char of cleaned) {
115
+ if (char === "(")
116
+ delimiters.push(")");
117
+ else if (char === "[")
118
+ delimiters.push("]");
119
+ else if (char === "{")
120
+ delimiters.push("}");
121
+ else if (char === ")" || char === "]" || char === "}") {
122
+ // A closing delimiter with no matching open on this physical line belongs to a
123
+ // bracket opened on a preceding physical line (e.g. a multi-line parenthesized
124
+ // statement or suite header); it does not by itself make this a nested suite.
125
+ if (delimiters[delimiters.length - 1] === char)
126
+ delimiters.pop();
127
+ }
128
+ }
129
+ if (delimiters.length || !cleaned.endsWith(";"))
130
+ return false;
131
+ return true;
132
+ }
133
+ // `strippedSrc` has already had comments/strings deleted (not offset-preserving), so
134
+ // `keywordStart` and every position derived from it are only meaningful within that same
135
+ // string. `isPythonModuleLevelImportPrefix` re-strips its input, which is a harmless no-op
136
+ // here since `strippedSrc` is already clean.
137
+ function isModuleLevelKeywordInStrippedSource(strippedSrc, keywordStart) {
138
+ const lineStart = strippedSrc.lastIndexOf("\n", keywordStart - 1) + 1;
139
+ return isPythonModuleLevelImportPrefix(strippedSrc.slice(lineStart, keywordStart));
140
+ }
141
+ function normalizePythonImportStatement(statement) {
142
+ return stripPythonCommentsAndStrings(statement)
143
+ .replace(/\\\r?\n[\t ]*/g, " ")
144
+ .trim();
145
+ }
146
+ async function collectPythonImportStatement(context, statement, moduleLevel) {
147
+ const normalized = normalizePythonImportStatement(statement);
148
+ const fromMatch = normalized.match(/^from\s+([^\s]+)\s+import\s+([\s\S]+)$/u);
149
+ if (fromMatch) {
150
+ const moduleSpec = fromMatch[1];
151
+ const importedList = fromMatch[2].trim().replace(/^\(\s*|\s*\)$/g, "");
152
+ for (const item of importedList
153
+ .split(",")
154
+ .map((entry) => entry.trim())
155
+ .filter(Boolean)) {
156
+ if (item === "*") {
157
+ await pushStarImport(context, moduleSpec, moduleLevel);
158
+ continue;
159
+ }
160
+ const aliasMatch = item.match(PYTHON_NAMED_IMPORT_PATTERN);
161
+ if (!aliasMatch)
162
+ continue;
163
+ const imported = aliasMatch[1];
164
+ await pushNamedImport(context, moduleSpec, imported, aliasMatch[2] ?? imported, moduleLevel);
165
+ }
166
+ return true;
167
+ }
168
+ const importMatch = normalized.match(/^import\s+([\s\S]+)$/u);
169
+ if (!importMatch)
170
+ return false;
171
+ for (const item of importMatch[1]
172
+ .split(",")
173
+ .map((entry) => entry.trim())
174
+ .filter(Boolean)) {
175
+ const aliasMatch = item.match(PYTHON_MODULE_LIST_ITEM_PATTERN);
176
+ if (!aliasMatch)
177
+ continue;
178
+ const dotted = aliasMatch[1];
179
+ await pushDefaultImport(context, dotted, aliasMatch[2] ?? dotted.split(".")[0], moduleLevel);
180
+ }
181
+ return true;
182
+ }
183
+ export async function collectPythonImportsFromNativeMatches(context, matches) {
184
+ for (const match of matches) {
185
+ const statementCapture = match.captures.find((capture) => capture.name === "stmt");
186
+ if (!statementCapture)
187
+ continue;
188
+ const startIndex = utf8ByteOffsetToStringIndex(context.source, statementCapture.start.index);
189
+ const lineStart = context.source.lastIndexOf("\n", startIndex - 1) + 1;
190
+ const prefix = context.source.slice(lineStart, startIndex);
191
+ const moduleLevel = isPythonModuleLevelImportPrefix(prefix);
192
+ await collectPythonImportStatement(context, statementCapture.text, moduleLevel);
193
+ }
194
+ }
97
195
  export async function collectPythonImportsFromSource(context) {
98
196
  const pySrc = stripPythonCommentsAndStrings(context.source);
99
- const fromLinePattern = /^[\t ]*from\s+([^\s]+)\s+import\s+([^\n#]+)/gm;
197
+ // Boundary group 1 captures either the line's leading indentation or the `;` (plus any
198
+ // following tabs/spaces) that separates this import from a completed simple statement on
199
+ // the same physical line; a compound-suite header's `:` is not part of this alternation, so
200
+ // `if x: import os` still is not recognized as a statement start here.
201
+ const fromLinePattern = /(^[\t ]*|;[\t ]*)from\s+([^\s]+)\s+import\s+([^\n;#]+)/gm;
100
202
  for (const match of pySrc.matchAll(fromLinePattern)) {
101
- const mod = match[1].trim();
102
- const moduleLevel = !/^[\t ]/.test(match[0]);
103
- const items = match[2].split(",").map((item) => item.trim());
203
+ const keywordStart = match.index + match[1].length;
204
+ const mod = match[2].trim();
205
+ const moduleLevel = isModuleLevelKeywordInStrippedSource(pySrc, keywordStart);
206
+ const items = match[3].split(",").map((item) => item.trim());
104
207
  for (const item of items) {
105
208
  if (item === "*") {
106
209
  await pushStarImport(context, mod, moduleLevel);
@@ -118,9 +221,11 @@ export async function collectPythonImportsFromSource(context) {
118
221
  }
119
222
  const importPattern = PYTHON_MODULE_IMPORT_PATTERN;
120
223
  for (const match of pySrc.matchAll(importPattern)) {
121
- const dotted = match[1];
122
- const local = match[2] ?? dotted.split(".")[0];
123
- await pushDefaultImport(context, dotted, local, !/^[\t ]/.test(match[0]));
224
+ const keywordStart = match.index + match[1].length;
225
+ const dotted = match[2];
226
+ const local = match[3] ?? dotted.split(".")[0];
227
+ const moduleLevel = isModuleLevelKeywordInStrippedSource(pySrc, keywordStart);
228
+ await pushDefaultImport(context, dotted, local, moduleLevel);
124
229
  }
125
230
  }
126
231
  //# sourceMappingURL=python.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"python.js","sourceRoot":"","sources":["../../../src/indexer/imports/python.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"python.js","sourceRoot":"","sources":["../../../src/indexer/imports/python.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAS9E,SAAS,uBAAuB,CAAC,UAAkB;IACjD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;IACnD,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,MAAM;QACzB,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI;KACtB,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,QAA8B,EAAE,QAAgB;IACpF,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClC,IACE,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,EACjG,CAAC;YACD,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,KAAK,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,MAAM,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;KAC7B,CAAC;IACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,8EAA8E;QAChF,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,OAAsC,EACtC,UAAkB,EAClB,WAAoB;IAEpB,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5F,OAAO,CAAC,WAAW,CAAC;QAClB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,UAAU;QAChB,QAAQ;QACR,SAAS,EAAE,QAAQ;QACnB,WAAW;KACZ,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,OAAsC,EACtC,UAAkB,EAClB,QAAgB,EAChB,KAAa,EACb,WAAoB;IAEpB,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5F,MAAM,iBAAiB,GAAG,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3E,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,CAAC,WAAW,CAAC;YAClB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,iBAAiB;YAC3B,SAAS,EAAE,QAAQ;YACnB,WAAW;SACZ,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,OAAO,CAAC,WAAW,CAAC;QAClB,IAAI,EAAE,OAAO;QACb,KAAK;QACL,QAAQ;QACR,IAAI,EAAE,UAAU;QAChB,QAAQ;QACR,SAAS,EAAE,QAAQ;QACnB,WAAW;KACZ,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,OAAsC,EACtC,MAAc,EACd,KAAa,EACb,WAAoB;IAEpB,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACzF,OAAO,CAAC,WAAW,CAAC;QAClB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,MAAM;QACZ,QAAQ;QACR,SAAS,EAAE,QAAQ;QACnB,WAAW;KACZ,CAAC,CAAC;AACL,CAAC;AAED,MAAM,2BAA2B,GAAG,IAAI,MAAM,CAC5C,MAAM,CAAC,GAAG,CAAA,KAAK,wBAAwB,gBAAgB,wBAAwB,MAAM,EACrF,GAAG,CACJ,CAAC;AACF,0FAA0F;AAC1F,uFAAuF;AACvF,qFAAqF;AACrF,2FAA2F;AAC3F,MAAM,4BAA4B,GAAG,IAAI,MAAM,CAC7C,MAAM,CAAC,GAAG,CAAA,8BAA8B,wBAAwB,QAAQ,wBAAwB,kBAAkB,wBAAwB,KAAK,EAC/I,KAAK,CACN,CAAC;AACF,MAAM,+BAA+B,GAAG,IAAI,MAAM,CAChD,MAAM,CAAC,GAAG,CAAA,KAAK,wBAAwB,QAAQ,wBAAwB,kBAAkB,wBAAwB,MAAM,EACvH,GAAG,CACJ,CAAC;AAEF,SAAS,+BAA+B,CAAC,MAAc;IACrD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,OAAO,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,uEAAuE;IACvE,IAAI,8EAA8E,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACjG,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,IAAI,KAAK,GAAG;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAClC,IAAI,IAAI,KAAK,GAAG;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACvC,IAAI,IAAI,KAAK,GAAG;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACvC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACtD,+EAA+E;YAC/E,+EAA+E;YAC/E,8EAA8E;YAC9E,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI;gBAAE,UAAU,CAAC,GAAG,EAAE,CAAC;QACnE,CAAC;IACH,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,qFAAqF;AACrF,yFAAyF;AACzF,2FAA2F;AAC3F,6CAA6C;AAC7C,SAAS,oCAAoC,CAAC,WAAmB,EAAE,YAAoB;IACrF,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACtE,OAAO,+BAA+B,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,8BAA8B,CAAC,SAAiB;IACvD,OAAO,6BAA6B,CAAC,SAAS,CAAC;SAC5C,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,OAAsC,EACtC,SAAiB,EACjB,WAAoB;IAEpB,MAAM,UAAU,GAAG,8BAA8B,CAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC9E,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QACjC,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACxE,KAAK,MAAM,IAAI,IAAI,YAAY;aAC5B,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACnB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjB,MAAM,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;gBACvD,SAAS;YACX,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC3D,IAAI,CAAC,UAAU;gBAAE,SAAS;YAC1B,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;YAChC,MAAM,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/F,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC9D,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,CAAC,CAAE;SAC/B,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU;YAAE,SAAS;QAC1B,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;QAC9B,MAAM,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,EAAE,WAAW,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qCAAqC,CACzD,OAAsC,EACtC,OAA+B;IAE/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACnF,IAAI,CAAC,gBAAgB;YAAE,SAAS;QAChC,MAAM,UAAU,GAAG,2BAA2B,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7F,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,+BAA+B,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,4BAA4B,CAAC,OAAO,EAAE,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAClF,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,OAAsC;IACzF,MAAM,KAAK,GAAG,6BAA6B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5D,uFAAuF;IACvF,yFAAyF;IACzF,4FAA4F;IAC5F,uEAAuE;IACvE,MAAM,eAAe,GAAG,0DAA0D,CAAC;IACnF,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACpD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC;QACpD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,oCAAoC,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC9E,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjB,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;gBAChD,SAAS;YACX,CAAC;YACD,+EAA+E;YAC/E,+EAA+E;YAC/E,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC3D,IAAI,CAAC,UAAU;gBAAE,SAAS;YAC1B,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;YAChC,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;YACxC,MAAM,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,4BAA4B,CAAC;IACnD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAClD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QAChD,MAAM,WAAW,GAAG,oCAAoC,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC9E,MAAM,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../src/indexer/imports.ts"],"names":[],"mappings":"AACA,OAAO,EAAkD,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAEL,KAAK,6BAA6B,EAEnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAU5D,OAAO,KAAK,EAAwB,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAWnH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,aAAa,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,IAAI,CAAC;IAC5E,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,SAAS,CAAC,EAAE,WAAW,CAAC;CACzB,GACA,OAAO,CAAC,aAAa,EAAE,CAAC,CAoN1B"}
1
+ {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../src/indexer/imports.ts"],"names":[],"mappings":"AACA,OAAO,EAAkD,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAGL,KAAK,6BAA6B,EAEnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAU5D,OAAO,KAAK,EAAwB,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAYnH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,aAAa,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,IAAI,CAAC;IAC5E,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,SAAS,CAAC,EAAE,WAAW,CAAC;CACzB,GACA,OAAO,CAAC,aAAa,EAAE,CAAC,CAsO1B"}
@@ -1,7 +1,7 @@
1
1
  import { prepareSourceInput } from "../languages/file-prep.js";
2
2
  import { loadNearestTsconfigFor, resolveImportSpecifier } from "../util/resolution.js";
3
3
  import { loadWorkspaceConfig } from "../util/workspace.js";
4
- import { collectModuleSpecifiersFromSource, } from "../graphs/specifiers.js";
4
+ import { collectModuleSpecifiersFromSource, mapNativeExecutionFallbackReason, } from "../graphs/specifiers.js";
5
5
  import { isGraphOnlyLanguage } from "../document-links.js";
6
6
  import { stripJsLikeComments } from "../util/comments.js";
7
7
  import { assertNativeRequiredAvailable, getNativeQueryExecution, isNativeBindingLoadedForLanguage, isNativeRequiredUnavailableError, isNativeQueryAuthoritative, } from "../native/tree-sitter-native.js";
@@ -9,7 +9,7 @@ import { collectGraphOnlyImports } from "./imports/graph-only.js";
9
9
  import { collectJsTextImports, collectJsTextValueRequireImports } from "./imports/js-text-imports.js";
10
10
  import { applyStatementImportOverride, createStatementImportOverrideState, finalizeLanguageSpecificImports, } from "./imports/language-specific.js";
11
11
  import { collectNativeCaptureImportBindings } from "./imports/native-captures.js";
12
- import { collectPythonImportsFromSource } from "./imports/python.js";
12
+ import { collectPythonImportsFromNativeMatches, collectPythonImportsFromSource } from "./imports/python.js";
13
13
  export async function collectImportsForFile(file, projectRoot, opts) {
14
14
  let source = opts?.source;
15
15
  let sup = opts?.sup;
@@ -48,13 +48,26 @@ export async function collectImportsForFile(file, projectRoot, opts) {
48
48
  nativeExecution = getNativeQueryExecution(resolvedSource, resolvedSup, nativeMode);
49
49
  resolvedNativeQueries = nativeExecution.results;
50
50
  }
51
+ // The graph and binding consumers must agree on why extraction fell back, so both map the
52
+ // native execution reason with the same rule instead of labelling it per call site.
53
+ const nativeExecutionFallbackReason = nativeExecution?.fallbackReason
54
+ ? mapNativeExecutionFallbackReason(resolvedSup.id, nativeExecution.fallbackReason, false, resolvedNativeQueries !== null)
55
+ : null;
51
56
  if (resolvedSup.id === "python") {
52
- await collectPythonImportsFromSource({
57
+ const context = {
53
58
  file,
54
59
  projectRoot,
55
60
  source: resolvedSource,
56
61
  pushBinding: (binding) => imports.push(binding),
57
- });
62
+ };
63
+ if (resolvedNativeQueries) {
64
+ await collectPythonImportsFromNativeMatches(context, resolvedNativeQueries.importBindings);
65
+ }
66
+ else {
67
+ await collectPythonImportsFromSource(context);
68
+ if (nativeExecutionFallbackReason)
69
+ reportFallback(nativeExecutionFallbackReason);
70
+ }
58
71
  return imports;
59
72
  }
60
73
  let matchPath = opts?.matchPath;
@@ -63,8 +76,9 @@ export async function collectImportsForFile(file, projectRoot, opts) {
63
76
  }
64
77
  const workspaceConfig = opts?.workspaceConfig ?? (await loadWorkspaceConfig(projectRoot));
65
78
  const resolvedImportCache = new Map();
66
- const resolveFrom = async (from, phpImportType) => {
67
- const cacheKey = `${from}\0${phpImportType ?? ""}`;
79
+ const stylesheetLanguage = ["css", "scss", "less"].includes(resolvedSup.id);
80
+ const resolveFrom = async (from, phpImportType, resolutionKind) => {
81
+ const cacheKey = `${from}\0${phpImportType ?? ""}\0${resolutionKind ?? ""}`;
68
82
  const cached = resolvedImportCache.get(cacheKey);
69
83
  if (cached)
70
84
  return await cached;
@@ -76,6 +90,8 @@ export async function collectImportsForFile(file, projectRoot, opts) {
76
90
  resolveNodeModules: !!opts?.graphOptions?.resolveNodeModules,
77
91
  ...(resolutionHints ? { resolutionHints } : {}),
78
92
  ...(phpImportType ? { phpImportType } : {}),
93
+ ...(resolutionKind ? { resolutionKind } : {}),
94
+ ...(resolvedSup.id === "scss" && resolutionKind === "stylesheet" ? { allowScssPartialResolution: true } : {}),
79
95
  });
80
96
  return typeof result === "string" ? result.replace(/\\/g, "/") : result;
81
97
  })();
@@ -87,7 +103,7 @@ export async function collectImportsForFile(file, projectRoot, opts) {
87
103
  projectRoot,
88
104
  source: resolvedSource,
89
105
  languageId: resolvedSup.id,
90
- resolveFrom,
106
+ resolveFrom: (from, phpImportType) => resolveFrom(from, phpImportType, stylesheetLanguage ? "stylesheet" : undefined),
91
107
  pushBinding: (binding) => imports.push(binding),
92
108
  getBindings: () => imports,
93
109
  replaceBindings: (bindings) => imports.splice(0, imports.length, ...bindings),
@@ -116,10 +132,7 @@ export async function collectImportsForFile(file, projectRoot, opts) {
116
132
  });
117
133
  };
118
134
  const nativeLanguageAvailable = isNativeBindingLoadedForLanguage(resolvedSup.id, nativeMode);
119
- let nativeFallbackReason = null;
120
- if (nativeExecution?.fallbackReason === "queryFailure") {
121
- nativeFallbackReason = "query-error";
122
- }
135
+ let nativeFallbackReason = nativeExecutionFallbackReason;
123
136
  if (resolvedNativeQueries) {
124
137
  try {
125
138
  await collectNativeCaptureImportBindings({
@@ -176,7 +189,7 @@ export async function collectImportsForFile(file, projectRoot, opts) {
176
189
  imports.push({
177
190
  kind: "star",
178
191
  from: specifier.spec,
179
- resolved: await resolveFrom(specifier.spec),
192
+ resolved: await resolveFrom(specifier.spec, undefined, specifier.resolutionKind),
180
193
  ...(specifier.typeOnly ? { typeOnly: true } : {}),
181
194
  });
182
195
  }
@@ -1 +1 @@
1
- {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/indexer/imports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/indexer/imports.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"locals-and-exports.d.ts","sourceRoot":"","sources":["../../src/indexer/locals-and-exports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAK9C,OAAO,EAKL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAkB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAe,aAAa,EAAE,WAAW,EAAa,MAAM,YAAY,CAAC;AA0QrF,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,EACxB,OAAO,GAAE,aAAa,EAAO,EAC7B,IAAI,CAAC,EAAE;IACL,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,aAAa,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,GACA,WAAW,CA0uBb"}
1
+ {"version":3,"file":"locals-and-exports.d.ts","sourceRoot":"","sources":["../../src/indexer/locals-and-exports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAK9C,OAAO,EAKL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAkB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAe,aAAa,EAAE,WAAW,EAAa,MAAM,YAAY,CAAC;AA+VrF,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,EACxB,OAAO,GAAE,aAAa,EAAO,EAC7B,IAAI,CAAC,EAAE;IACL,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,aAAa,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,GACA,WAAW,CAqwBb"}
@@ -8,11 +8,23 @@ import { sliceText, toRange, unquote } from "../util/ast.js";
8
8
  import { bindingKindToSymbolKind } from "./declarations.js";
9
9
  import { buildScopeIndexFromSource } from "./scope.js";
10
10
  import { SymbolKind } from "./types.js";
11
- import { ECMASCRIPT_IDENTIFIER_SOURCE } from "../util/identifiers.js";
11
+ import { ECMASCRIPT_IDENTIFIER_SOURCE, XID_IDENTIFIER_SOURCE } from "../util/identifiers.js";
12
+ /**
13
+ * Matches one `exportScopeBlockers` entry against an ancestor node. A plain entry compares the
14
+ * node type; a `parent>node` entry also requires that parent type, which is how Python separates a
15
+ * function body from a class body when the grammar spells both `block`.
16
+ */
17
+ function matchesExportScopeBlocker(node, blocker) {
18
+ const separator = blocker.indexOf(">");
19
+ if (separator < 0)
20
+ return node.type === blocker;
21
+ return node.type === blocker.slice(separator + 1) && node.parent?.type === blocker.slice(0, separator);
22
+ }
12
23
  const JS_FALLBACK_DECLARATION_PATTERN = new RegExp(String.raw `\bexport\s+(?:const|let|var|function|class)\s+(${ECMASCRIPT_IDENTIFIER_SOURCE})`, "gu");
13
24
  const JS_FALLBACK_DEFAULT_PATTERN = new RegExp(String.raw `\bexport\s+default\s+(${ECMASCRIPT_IDENTIFIER_SOURCE})`, "gu");
14
25
  const JS_FALLBACK_EXPORT_ASSIGN_PATTERN = new RegExp(String.raw `\bexport\s*=\s*(${ECMASCRIPT_IDENTIFIER_SOURCE})`, "gu");
15
- const JS_FALLBACK_REEXPORT_SPECIFIER_PATTERN = new RegExp(String.raw `^(${ECMASCRIPT_IDENTIFIER_SOURCE})(?:\s+as\s+(${ECMASCRIPT_IDENTIFIER_SOURCE}))?$`, "u");
26
+ const JS_FALLBACK_REEXPORT_SPECIFIER_PATTERN = new RegExp(String.raw `^(?:type\s+)?(${ECMASCRIPT_IDENTIFIER_SOURCE})(?:\s+as\s+(${ECMASCRIPT_IDENTIFIER_SOURCE}))?$`, "u");
27
+ const JS_FALLBACK_REEXPORT_TYPE_SPECIFIER_PATTERN = new RegExp(String.raw `^type\s+(${ECMASCRIPT_IDENTIFIER_SOURCE})(?:\s+as\s+(${ECMASCRIPT_IDENTIFIER_SOURCE}))?$`, "u");
16
28
  const JS_FALLBACK_REEXPORT_NAMESPACE_PATTERN = new RegExp(String.raw `\bexport\s*\*\s+as\s+(${ECMASCRIPT_IDENTIFIER_SOURCE})\s+from\s*("|')([^"']*)\2`, "gu");
17
29
  const JS_FALLBACK_CJS_FUNCTION_PATTERN = new RegExp(String.raw `(?:^|[;\n\r])\s*(?:exports|module\.exports)\.(${ECMASCRIPT_IDENTIFIER_SOURCE})\s*=\s*(function\b|\([^)]*\)\s*=>)`, "gu");
18
30
  const JS_FALLBACK_CJS_OBJECT_FUNCTION_PATTERN = new RegExp(String.raw `(${ECMASCRIPT_IDENTIFIER_SOURCE})\s*:\s*(function\b|\([^)]*\)\s*=>)`, "gu");
@@ -71,6 +83,74 @@ function isTypeMemberDeclaration(node) {
71
83
  }
72
84
  return false;
73
85
  }
86
+ const C_DECLARATOR_IDENTIFIER_PATTERN = new RegExp(`^${XID_IDENTIFIER_SOURCE}`, "u");
87
+ const C_DECLARATOR_QUALIFIER_PATTERN = /^(?:const|volatile|restrict|_Atomic)\b/;
88
+ function cDeclaratorDeclaredName(text) {
89
+ const masked = maskJsLikeCommentsAndStrings(text);
90
+ let index = 0;
91
+ while (index < masked.length) {
92
+ if (/[\s(*&]/.test(masked[index])) {
93
+ index += 1;
94
+ continue;
95
+ }
96
+ const rest = masked.slice(index);
97
+ const qualifier = C_DECLARATOR_QUALIFIER_PATTERN.exec(rest);
98
+ if (qualifier) {
99
+ index += qualifier[0].length;
100
+ continue;
101
+ }
102
+ const ident = C_DECLARATOR_IDENTIFIER_PATTERN.exec(rest);
103
+ if (!ident || rest.slice(ident[0].length).trimStart().startsWith("::"))
104
+ return undefined;
105
+ return { name: ident[0], start: index, end: index + ident[0].length };
106
+ }
107
+ return undefined;
108
+ }
109
+ function declaratorNameNode(node) {
110
+ let current = node;
111
+ while (current) {
112
+ if (current.type === "identifier" || current.type === "type_identifier")
113
+ return current;
114
+ const next = current.childForFieldName("declarator");
115
+ if (next) {
116
+ current = next;
117
+ }
118
+ else if (current.type === "parenthesized_declarator") {
119
+ current = current.namedChildren.find((child) => child.type !== "comment");
120
+ }
121
+ else {
122
+ return undefined;
123
+ }
124
+ }
125
+ return undefined;
126
+ }
127
+ function declaratorCaptureName(capture, node) {
128
+ const fromNode = declaratorNameNode(node)?.text;
129
+ if (fromNode)
130
+ return fromNode;
131
+ if (capture.nodeType === "identifier" || capture.nodeType === "type_identifier")
132
+ return capture.text;
133
+ return cDeclaratorDeclaredName(capture.text)?.name;
134
+ }
135
+ function localExportDedupeKey(entry) {
136
+ return `${entry.exportedAs}\0${entry.target.localName}\0${entry.target.range.start.index ?? 0}\0${entry.target.range.end.index ?? 0}`;
137
+ }
138
+ function dedupeExportEntries(entries) {
139
+ const seen = new Set();
140
+ const out = [];
141
+ for (const entry of entries) {
142
+ if (entry.type !== "local") {
143
+ out.push(entry);
144
+ continue;
145
+ }
146
+ const key = localExportDedupeKey(entry);
147
+ if (seen.has(key))
148
+ continue;
149
+ seen.add(key);
150
+ out.push(entry);
151
+ }
152
+ return out;
153
+ }
74
154
  function appendJsLikeRegexFallbackExports(file, source, locals, exports) {
75
155
  const maskedSource = maskJsLikeCommentsAndStrings(source);
76
156
  JS_FALLBACK_DECLARATION_PATTERN.lastIndex = 0;
@@ -82,7 +162,7 @@ function appendJsLikeRegexFallbackExports(file, source, locals, exports) {
82
162
  const reDecl = JS_FALLBACK_DECLARATION_PATTERN;
83
163
  const reDefault = JS_FALLBACK_DEFAULT_PATTERN;
84
164
  const reExportAssign = JS_FALLBACK_EXPORT_ASSIGN_PATTERN;
85
- const reReexport = new RegExp(String.raw `\bexport\s*\{\s*([^}]+)\}\s*from\s*("|')([^"']*)\2`, "gu");
165
+ const reReexport = new RegExp(String.raw `\bexport\b\s*(type\s+)?\{\s*([^}]*)\}\s*from\s*("|')([^"']*)\3`, "gu");
86
166
  const reReexportNs = JS_FALLBACK_REEXPORT_NAMESPACE_PATTERN;
87
167
  const reStar = /\bexport\s*\*\s*from\s*("|')([^"']*)\1/gu;
88
168
  const reCjsFn = JS_FALLBACK_CJS_FUNCTION_PATTERN;
@@ -124,7 +204,8 @@ function appendJsLikeRegexFallbackExports(file, source, locals, exports) {
124
204
  }
125
205
  }
126
206
  while ((match = reReexport.exec(maskedSource))) {
127
- const list = match[1]
207
+ const statementTypeOnly = Boolean(match[1]);
208
+ const list = match[2]
128
209
  .split(",")
129
210
  .map((item) => item.trim())
130
211
  .filter(Boolean);
@@ -137,12 +218,14 @@ function appendJsLikeRegexFallbackExports(file, source, locals, exports) {
137
218
  continue;
138
219
  const srcName = entryMatch[1];
139
220
  const alias = entryMatch[2] ?? srcName;
221
+ const typeOnly = statementTypeOnly || JS_FALLBACK_REEXPORT_TYPE_SPECIFIER_PATTERN.test(spec);
140
222
  if (!exports.some((entry) => entry.type === "reexport" && entry.exportedAs === alias && entry.fromModule === from)) {
141
223
  exports.push({
142
224
  type: "reexport",
143
225
  exportedAs: alias,
144
226
  fromModule: from,
145
227
  sourceSpecifier: srcName,
228
+ typeOnly,
146
229
  });
147
230
  }
148
231
  }
@@ -394,14 +477,12 @@ export function collectLocalsAndExportsFromSource(file, source, support, imports
394
477
  return SymbolKind.Class;
395
478
  return SymbolKind.Variable;
396
479
  };
397
- const classifyLocalCapture = (capture, range, node) => {
480
+ const classifyLocalCapture = (node) => {
398
481
  if (node)
399
482
  return toKind(support.classifyDefinition(node));
400
- if ("name" in capture && capture.name === "tname") {
401
- return SymbolKind.TypeAlias;
402
- }
403
483
  return SymbolKind.Variable;
404
484
  };
485
+ // Declarator captures name the declared entity, never parameter or array-bound types.
405
486
  const extractLocalsFromNativeQueries = () => {
406
487
  if (!nativeQueries)
407
488
  return false;
@@ -415,12 +496,31 @@ export function collectLocalsAndExportsFromSource(file, source, support, imports
415
496
  const enrichmentTree = ensureTree();
416
497
  for (const match of nativeQueries.locals) {
417
498
  for (const capture of match.captures) {
418
- if (capture.name !== "name" && capture.name !== "tname")
499
+ if (capture.name !== "name" && capture.name !== "declarator")
419
500
  continue;
420
501
  const nativeRange = rangeFromNativeCapture(capture, ensureByteIndexMap());
421
502
  const node = enrichmentTree?.rootNode.descendantForIndex(nativeRange.start.index ?? 0, nativeRange.end.index ?? 0) ??
422
503
  undefined;
423
- pushLocal(capture.text, classifyLocalCapture(capture, nativeRange, node), nativeRange, node);
504
+ if (capture.name === "declarator") {
505
+ const namedNode = declaratorNameNode(node);
506
+ if (namedNode) {
507
+ pushLocal(namedNode.text, classifyLocalCapture(namedNode), toRange(namedNode), namedNode);
508
+ }
509
+ else {
510
+ const extracted = cDeclaratorDeclaredName(capture.text);
511
+ if (!extracted)
512
+ continue;
513
+ if (capture.nodeType === "identifier" || capture.nodeType === "type_identifier") {
514
+ pushLocal(capture.text, SymbolKind.TypeAlias, nativeRange);
515
+ }
516
+ else {
517
+ pushLocal(extracted.name, SymbolKind.TypeAlias, rangeFromOffsets((nativeRange.start.index ?? 0) + extracted.start, (nativeRange.start.index ?? 0) + extracted.end));
518
+ }
519
+ }
520
+ }
521
+ else {
522
+ pushLocal(capture.text, classifyLocalCapture(node), nativeRange, node);
523
+ }
424
524
  capturedLocals = true;
425
525
  }
426
526
  }
@@ -432,9 +532,7 @@ export function collectLocalsAndExportsFromSource(file, source, support, imports
432
532
  return false;
433
533
  }
434
534
  };
435
- const extractLocalsFromJsQueries = () => false;
436
- const usedNativeLocals = extractLocalsFromNativeQueries();
437
- const usedQueryLocals = usedNativeLocals || extractLocalsFromJsQueries();
535
+ const usedQueryLocals = extractLocalsFromNativeQueries();
438
536
  if (!usedQueryLocals) {
439
537
  const scopeTree = ensureTree();
440
538
  if (scopeTree) {
@@ -526,14 +624,44 @@ export function collectLocalsAndExportsFromSource(file, source, support, imports
526
624
  return (node.childForFieldName("name") ?? node.childForFieldName("declaration")?.childForFieldName("name") ?? undefined);
527
625
  };
528
626
  const hasDefaultExport = () => exports.some((entry) => entry.type === "local" && entry.exportedAs === "default");
627
+ const excludedCaptures = [];
628
+ if (!treeForEnrichment) {
629
+ for (const match of matches) {
630
+ for (const capture of match.captures) {
631
+ if (capture.name === "export_scope" || capture.name === "private_declaration")
632
+ excludedCaptures.push(capture);
633
+ }
634
+ }
635
+ }
636
+ // Native scope captures preserve C/C++ exclusions without an enrichment tree.
637
+ const isOutsideModuleScope = (capture) => {
638
+ if (!capture || !support.exportScopeBlockers.length)
639
+ return false;
640
+ let current = nodeForCapture(capture)?.parent ?? undefined;
641
+ while (current) {
642
+ const ancestor = current;
643
+ if (support.exportScopeBlockers.some((blocker) => matchesExportScopeBlocker(ancestor, blocker)))
644
+ return true;
645
+ current = ancestor.parent ?? undefined;
646
+ }
647
+ return excludedCaptures.some((scope) => capture.start.index >= scope.start.index && capture.end.index <= scope.end.index);
648
+ };
529
649
  for (const match of matches) {
530
650
  const map = capturesByName(match);
531
651
  const stmtText = map["stmt"]?.text ?? "";
652
+ if (support.id === "c" || support.id === "cpp") {
653
+ const declarationNode = nodeForCapture(map["declaration"]);
654
+ const hasStaticStorageClass = declarationNode?.namedChildren.some((child) => child.type === "storage_class_specifier" && child.text === "static");
655
+ if (hasStaticStorageClass)
656
+ continue;
657
+ }
658
+ if (isOutsideModuleScope(map["name"] ?? map["src"]))
659
+ continue;
532
660
  const isTypeOnly = support.isTypeOnly(stmtText);
533
661
  if (support.id === "python") {
534
662
  const leftText = map["left"]?.text ?? "";
535
663
  const methodText = map["method"]?.text ?? "";
536
- const isAllAssignment = leftText === "__all__";
664
+ const isAllAssignment = leftText === "__all__" && !methodText;
537
665
  const isAllMethod = leftText === "__all__" && (methodText === "extend" || methodText === "append");
538
666
  if (isAllAssignment || isAllMethod) {
539
667
  hasPythonAll = true;
@@ -551,26 +679,6 @@ export function collectLocalsAndExportsFromSource(file, source, support, imports
551
679
  });
552
680
  }
553
681
  }
554
- if (isAllAssignment && map["stmt"]) {
555
- const assignmentText = map["stmt"].text;
556
- const hasTuple = /=\s*\(/.test(assignmentText);
557
- if (!items.length || hasTuple) {
558
- const strRe = /["']([^"']+)["']/g;
559
- for (let submatch; (submatch = strRe.exec(assignmentText));) {
560
- const name = submatch[1];
561
- pythonAllExports.add(name);
562
- const local = mergedLocals.find((def) => def.localName === name);
563
- if (local &&
564
- !exports.some((entry) => entry.type !== "exportStar" && "exportedAs" in entry && entry.exportedAs === name)) {
565
- exports.push({
566
- type: "local",
567
- exportedAs: name,
568
- target: local,
569
- });
570
- }
571
- }
572
- }
573
- }
574
682
  continue;
575
683
  }
576
684
  if (map["name"]) {
@@ -597,7 +705,7 @@ export function collectLocalsAndExportsFromSource(file, source, support, imports
597
705
  fromModule: from,
598
706
  moduleSpecifier: from,
599
707
  sourceSpecifier: srcName,
600
- typeOnly: isTypeOnly,
708
+ typeOnly: Boolean(map["type_kw"]) || isTypeOnly,
601
709
  });
602
710
  }
603
711
  else if (/^\s*export\s*\*/.test(stmtText)) {
@@ -785,8 +893,15 @@ export function collectLocalsAndExportsFromSource(file, source, support, imports
785
893
  }
786
894
  continue;
787
895
  }
788
- if (map["name"]) {
789
- const nameText = map["name"].text;
896
+ const nameCapture = map["name"] ?? map["declarator"];
897
+ if (nameCapture) {
898
+ if (isOutsideModuleScope(nameCapture))
899
+ continue;
900
+ const nameText = map["declarator"]
901
+ ? declaratorCaptureName(nameCapture, nodeForCapture(nameCapture))
902
+ : nameCapture.text;
903
+ if (!nameText)
904
+ continue;
790
905
  const local = locals.find((def) => def.localName === nameText);
791
906
  if (local) {
792
907
  const isDefaultExport = /^\s*export\s+default\b/.test(stmtText);
@@ -926,6 +1041,6 @@ export function collectLocalsAndExportsFromSource(file, source, support, imports
926
1041
  }
927
1042
  }
928
1043
  }
929
- return { file, exports, imports, locals };
1044
+ return { file, exports: dedupeExportEntries(exports), imports, locals };
930
1045
  }
931
1046
  //# sourceMappingURL=locals-and-exports.js.map