@lzehrung/codegraph 2.3.26 → 2.3.28

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 (144) hide show
  1. package/codegraph-skill/codegraph/SKILL.md +1 -0
  2. package/dist/agent/explain.d.ts +9 -1
  3. package/dist/agent/explain.d.ts.map +1 -1
  4. package/dist/agent/explain.js +18 -1
  5. package/dist/agent/explain.js.map +1 -1
  6. package/dist/agent/refactor-plan.d.ts +2 -0
  7. package/dist/agent/refactor-plan.d.ts.map +1 -1
  8. package/dist/agent/refactor-plan.js +11 -0
  9. package/dist/agent/refactor-plan.js.map +1 -1
  10. package/dist/agent/rename-preview.d.ts.map +1 -1
  11. package/dist/agent/rename-preview.js +49 -11
  12. package/dist/agent/rename-preview.js.map +1 -1
  13. package/dist/agent-tools.d.ts +2 -1
  14. package/dist/agent-tools.d.ts.map +1 -1
  15. package/dist/agent-tools.js +8 -0
  16. package/dist/agent-tools.js.map +1 -1
  17. package/dist/agent.d.ts +1 -1
  18. package/dist/agent.d.ts.map +1 -1
  19. package/dist/agent.js.map +1 -1
  20. package/dist/bin/cli.js +3933 -2390
  21. package/dist/bin/query-index-worker.js +56 -18
  22. package/dist/cli/navigation.d.ts.map +1 -1
  23. package/dist/cli/navigation.js +4 -0
  24. package/dist/cli/navigation.js.map +1 -1
  25. package/dist/impact/call-compatibility.js +3 -3
  26. package/dist/impact/call-compatibility.js.map +1 -1
  27. package/dist/impact/direct.js +1 -1
  28. package/dist/impact/direct.js.map +1 -1
  29. package/dist/impact/reference-cache.d.ts +1 -0
  30. package/dist/impact/reference-cache.d.ts.map +1 -1
  31. package/dist/impact/reference-cache.js +44 -18
  32. package/dist/impact/reference-cache.js.map +1 -1
  33. package/dist/index.d.ts +1 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/indexer/build-cache/module-cache.d.ts.map +1 -1
  37. package/dist/indexer/build-cache/module-cache.js +30 -0
  38. package/dist/indexer/build-cache/module-cache.js.map +1 -1
  39. package/dist/indexer/build-cache/options.d.ts +14 -2
  40. package/dist/indexer/build-cache/options.d.ts.map +1 -1
  41. package/dist/indexer/build-cache/options.js +14 -2
  42. package/dist/indexer/build-cache/options.js.map +1 -1
  43. package/dist/indexer/build-cache/project-snapshot.d.ts.map +1 -1
  44. package/dist/indexer/build-cache/project-snapshot.js +60 -5
  45. package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
  46. package/dist/indexer/import-types.d.ts +14 -1
  47. package/dist/indexer/import-types.d.ts.map +1 -1
  48. package/dist/indexer/imports/binding-ranges.d.ts +50 -0
  49. package/dist/indexer/imports/binding-ranges.d.ts.map +1 -0
  50. package/dist/indexer/imports/binding-ranges.js +297 -0
  51. package/dist/indexer/imports/binding-ranges.js.map +1 -0
  52. package/dist/indexer/imports/js-text-imports.d.ts +4 -0
  53. package/dist/indexer/imports/js-text-imports.d.ts.map +1 -1
  54. package/dist/indexer/imports/js-text-imports.js +210 -48
  55. package/dist/indexer/imports/js-text-imports.js.map +1 -1
  56. package/dist/indexer/imports/language-specific.d.ts +3 -0
  57. package/dist/indexer/imports/language-specific.d.ts.map +1 -1
  58. package/dist/indexer/imports/language-specific.js +97 -23
  59. package/dist/indexer/imports/language-specific.js.map +1 -1
  60. package/dist/indexer/imports/native-captures.d.ts.map +1 -1
  61. package/dist/indexer/imports/native-captures.js +52 -30
  62. package/dist/indexer/imports/native-captures.js.map +1 -1
  63. package/dist/indexer/imports/python.d.ts +2 -0
  64. package/dist/indexer/imports/python.d.ts.map +1 -1
  65. package/dist/indexer/imports/python.js +55 -18
  66. package/dist/indexer/imports/python.js.map +1 -1
  67. package/dist/indexer/imports.d.ts.map +1 -1
  68. package/dist/indexer/imports.js +15 -1
  69. package/dist/indexer/imports.js.map +1 -1
  70. package/dist/indexer/navigation-goto.d.ts +1 -1
  71. package/dist/indexer/navigation-goto.d.ts.map +1 -1
  72. package/dist/indexer/navigation-goto.js +66 -17
  73. package/dist/indexer/navigation-goto.js.map +1 -1
  74. package/dist/indexer/navigation-references.d.ts +23 -2
  75. package/dist/indexer/navigation-references.d.ts.map +1 -1
  76. package/dist/indexer/navigation-references.js +196 -4
  77. package/dist/indexer/navigation-references.js.map +1 -1
  78. package/dist/indexer/navigation.d.ts +9 -3
  79. package/dist/indexer/navigation.d.ts.map +1 -1
  80. package/dist/indexer/navigation.js +154 -41
  81. package/dist/indexer/navigation.js.map +1 -1
  82. package/dist/indexer/scope.d.ts.map +1 -1
  83. package/dist/indexer/scope.js +18 -0
  84. package/dist/indexer/scope.js.map +1 -1
  85. package/dist/indexer/symbols.d.ts +1 -0
  86. package/dist/indexer/symbols.d.ts.map +1 -1
  87. package/dist/indexer/types.d.ts +10 -0
  88. package/dist/indexer/types.d.ts.map +1 -1
  89. package/dist/indexer.d.ts +1 -1
  90. package/dist/indexer.d.ts.map +1 -1
  91. package/dist/indexer.js.map +1 -1
  92. package/dist/languages/definitions/javascript.d.ts.map +1 -1
  93. package/dist/languages/definitions/javascript.js +10 -2
  94. package/dist/languages/definitions/javascript.js.map +1 -1
  95. package/dist/languages/definitions/php.d.ts.map +1 -1
  96. package/dist/languages/definitions/php.js +15 -8
  97. package/dist/languages/definitions/php.js.map +1 -1
  98. package/dist/languages/definitions/python.d.ts.map +1 -1
  99. package/dist/languages/definitions/python.js +11 -1
  100. package/dist/languages/definitions/python.js.map +1 -1
  101. package/dist/languages/definitions/typescript.d.ts.map +1 -1
  102. package/dist/languages/definitions/typescript.js +20 -3
  103. package/dist/languages/definitions/typescript.js.map +1 -1
  104. package/dist/languages/definitions/zig.d.ts.map +1 -1
  105. package/dist/languages/definitions/zig.js +10 -3
  106. package/dist/languages/definitions/zig.js.map +1 -1
  107. package/dist/languages/import-statement-parsers.d.ts +3 -0
  108. package/dist/languages/import-statement-parsers.d.ts.map +1 -1
  109. package/dist/languages/import-statement-parsers.js +4 -0
  110. package/dist/languages/import-statement-parsers.js.map +1 -1
  111. package/dist/mcp/handlers.d.ts +2 -1
  112. package/dist/mcp/handlers.d.ts.map +1 -1
  113. package/dist/mcp/handlers.js +15 -1
  114. package/dist/mcp/handlers.js.map +1 -1
  115. package/dist/review/summaries.d.ts.map +1 -1
  116. package/dist/review/summaries.js +11 -19
  117. package/dist/review/summaries.js.map +1 -1
  118. package/dist/review/types.d.ts +2 -1
  119. package/dist/review/types.d.ts.map +1 -1
  120. package/dist/review/types.js.map +1 -1
  121. package/dist/session.d.ts +2 -9
  122. package/dist/session.d.ts.map +1 -1
  123. package/dist/session.js.map +1 -1
  124. package/dist/sql/navigation.d.ts +6 -1
  125. package/dist/sql/navigation.d.ts.map +1 -1
  126. package/dist/sql/navigation.js +35 -3
  127. package/dist/sql/navigation.js.map +1 -1
  128. package/dist/util/comments.d.ts +10 -0
  129. package/dist/util/comments.d.ts.map +1 -1
  130. package/dist/util/comments.js +43 -2
  131. package/dist/util/comments.js.map +1 -1
  132. package/dist/util/lines.d.ts +2 -0
  133. package/dist/util/lines.d.ts.map +1 -1
  134. package/dist/util/lines.js +14 -0
  135. package/dist/util/lines.js.map +1 -1
  136. package/dist/util/resolution/cargo-targets.d.ts +8 -0
  137. package/dist/util/resolution/cargo-targets.d.ts.map +1 -0
  138. package/dist/util/resolution/cargo-targets.js +186 -0
  139. package/dist/util/resolution/cargo-targets.js.map +1 -0
  140. package/dist/util/resolution/rust.d.ts.map +1 -1
  141. package/dist/util/resolution/rust.js +264 -26
  142. package/dist/util/resolution/rust.js.map +1 -1
  143. package/docs/mcp.md +1 -1
  144. package/package.json +3 -3
@@ -1,36 +1,159 @@
1
1
  import { maskJsLikeCommentsStringsAndRegex, stripJsLikeComments } from "../../util/comments.js";
2
2
  import { ECMASCRIPT_IDENTIFIER_SOURCE } from "../../util/identifiers.js";
3
+ import { collectLineStartOffsets, positionAtOffset } from "../../util/lines.js";
3
4
  const TYPE_NAMED_IMPORT_SPECIFIER_PATTERN = new RegExp(String.raw `^type\s+(${ECMASCRIPT_IDENTIFIER_SOURCE})(?:\s+as\s+(${ECMASCRIPT_IDENTIFIER_SOURCE}))?$`, "u");
4
5
  const NAMED_IMPORT_SPECIFIER_PATTERN = new RegExp(String.raw `^(${ECMASCRIPT_IDENTIFIER_SOURCE})(?:\s+as\s+(${ECMASCRIPT_IDENTIFIER_SOURCE}))?$`, "u");
5
6
  const NAMESPACE_IMPORT_PATTERN = new RegExp(String.raw `^\*\s+as\s+(${ECMASCRIPT_IDENTIFIER_SOURCE})$`, "u");
6
7
  const DEFAULT_REQUIRE_PATTERN = new RegExp(String.raw `(?:^|[;{}])\s*(?:export\s+)?(?:const|let|var)\s+(${ECMASCRIPT_IDENTIFIER_SOURCE})\s*=\s*require\s*\(\s*(["'])(?<module>[^"']+)\2\s*\)`, "gmu");
7
8
  const NAMED_REQUIRE_SPECIFIER_PATTERN = new RegExp(String.raw `^(${ECMASCRIPT_IDENTIFIER_SOURCE})(?::\s*(${ECMASCRIPT_IDENTIFIER_SOURCE}))?$`, "u");
8
9
  const IMPORT_EQUALS_REQUIRE_PATTERN = new RegExp(String.raw `(?:^|[;{}])\s*import\s+(${ECMASCRIPT_IDENTIFIER_SOURCE})\s*=\s*require\s*\(\s*(["'])(?<module>[^"']+)\2\s*\)`, "gmu");
10
+ const NAMED_REQUIRE_DECLARATION_PATTERN = /(?:^|[;{}])\s*(?:export\s+)?(?:const|let|var)\s*\{/gmu;
11
+ const REQUIRE_AFTER_BINDING_PATTERN = /^\s*=\s*require\s*\(\s*(["'])(?<module>[^"']+)\1\s*\)/u;
9
12
  function sourceForTextImportExtraction(context) {
10
13
  if (context.languageId === "ts" || context.languageId === "tsx" || context.languageId === "js") {
11
14
  return stripJsLikeComments(context.source);
12
15
  }
13
16
  return context.source;
14
17
  }
15
- function splitNamedImports(namedBlock) {
16
- return namedBlock
17
- .replace(/[{}]/g, "")
18
- .split(",")
19
- .map((spec) => spec.trim())
20
- .filter(Boolean);
18
+ /**
19
+ * Builds a binding token range only when the computed offset really holds `token`.
20
+ * Text extraction can mis-locate a token for exotic syntax, and a wrong range would
21
+ * be worse than an absent one, so an unverifiable offset yields `undefined`.
22
+ */
23
+ function tokenRange(source, lineStarts, index, token) {
24
+ if (index < 0 || !token)
25
+ return undefined;
26
+ if (source.slice(index, index + token.length) !== token)
27
+ return undefined;
28
+ return {
29
+ start: positionAtOffset(lineStarts, index),
30
+ end: positionAtOffset(lineStarts, index + token.length),
31
+ };
32
+ }
33
+ function splitNamedImportsWithOffsets(namedBlock) {
34
+ const out = [];
35
+ let cursor = 0;
36
+ for (const raw of namedBlock.split(",")) {
37
+ const leading = raw.length - raw.trimStart().length;
38
+ const spec = raw.trim();
39
+ if (spec)
40
+ out.push({ spec, start: cursor + leading });
41
+ cursor += raw.length + 1;
42
+ }
43
+ return out;
44
+ }
45
+ function closingBraceIndex(maskedSource, openingIndex) {
46
+ let depth = 0;
47
+ for (let index = openingIndex; index < maskedSource.length; index += 1) {
48
+ const character = maskedSource[index];
49
+ if (character === "{") {
50
+ depth += 1;
51
+ }
52
+ else if (character === "}") {
53
+ depth -= 1;
54
+ if (depth === 0)
55
+ return index;
56
+ }
57
+ }
58
+ return -1;
59
+ }
60
+ export function splitNamedRequireBindingsWithOffsets(source, maskedSource, blockStart, blockEnd) {
61
+ const out = [];
62
+ let specStart = blockStart;
63
+ let braceDepth = 0;
64
+ let bracketDepth = 0;
65
+ let parenDepth = 0;
66
+ const push = (end) => {
67
+ const raw = source.slice(specStart, end);
68
+ const leading = raw.length - raw.trimStart().length;
69
+ const spec = raw.trim();
70
+ if (spec)
71
+ out.push({ spec, start: specStart - blockStart + leading });
72
+ };
73
+ for (let index = blockStart; index < blockEnd; index += 1) {
74
+ const character = maskedSource[index];
75
+ if (character === "{")
76
+ braceDepth += 1;
77
+ else if (character === "}")
78
+ braceDepth -= 1;
79
+ else if (character === "[")
80
+ bracketDepth += 1;
81
+ else if (character === "]")
82
+ bracketDepth -= 1;
83
+ else if (character === "(")
84
+ parenDepth += 1;
85
+ else if (character === ")")
86
+ parenDepth -= 1;
87
+ else if (character === "," && braceDepth === 0 && bracketDepth === 0 && parenDepth === 0) {
88
+ push(index);
89
+ specStart = index + 1;
90
+ }
91
+ }
92
+ push(blockEnd);
93
+ return out;
21
94
  }
22
95
  function parseNamedImportSpecifier(spec) {
23
96
  // JS/TS identifiers permit Unicode ID_Start/ID_Continue plus $/_, not just ASCII.
24
97
  const typeOnlyMatch = spec.match(TYPE_NAMED_IMPORT_SPECIFIER_PATTERN);
25
98
  if (typeOnlyMatch) {
26
99
  const imported = typeOnlyMatch[1];
27
- return { imported, local: typeOnlyMatch[2] ?? imported, typeOnly: true };
100
+ // `type ` is a fixed-width prefix; anchors keep the imported/alias tokens at known edges.
101
+ const importedOffset = /^type\s+/.exec(spec)[0].length;
102
+ if (typeOnlyMatch[2] !== undefined) {
103
+ const local = typeOnlyMatch[2];
104
+ return {
105
+ imported,
106
+ local,
107
+ typeOnly: true,
108
+ importedOffset,
109
+ localOffset: spec.length - local.length,
110
+ explicitAlias: true,
111
+ };
112
+ }
113
+ return {
114
+ imported,
115
+ local: imported,
116
+ typeOnly: true,
117
+ importedOffset,
118
+ localOffset: importedOffset,
119
+ explicitAlias: false,
120
+ };
28
121
  }
29
122
  const namedMatch = spec.match(NAMED_IMPORT_SPECIFIER_PATTERN);
30
123
  if (!namedMatch)
31
124
  return null;
32
125
  const imported = namedMatch[1];
33
- return { imported, local: namedMatch[2] ?? imported, typeOnly: false };
126
+ if (namedMatch[2] !== undefined) {
127
+ const local = namedMatch[2];
128
+ return {
129
+ imported,
130
+ local,
131
+ typeOnly: false,
132
+ importedOffset: 0,
133
+ localOffset: spec.length - local.length,
134
+ explicitAlias: true,
135
+ };
136
+ }
137
+ return { imported, local: imported, typeOnly: false, importedOffset: 0, localOffset: 0, explicitAlias: false };
138
+ }
139
+ function parseNamedRequireSpecifier(spec) {
140
+ const bindingSpec = spec.replace(/\s*=\s*[\s\S]*$/u, "").trimEnd();
141
+ // CommonJS destructuring uses `imported: local`, not ES's `imported as local`.
142
+ const namedMatch = bindingSpec.match(NAMED_REQUIRE_SPECIFIER_PATTERN);
143
+ if (!namedMatch)
144
+ return null;
145
+ const imported = namedMatch[1];
146
+ if (namedMatch[2] !== undefined) {
147
+ const local = namedMatch[2];
148
+ return {
149
+ imported,
150
+ local,
151
+ importedOffset: 0,
152
+ localOffset: bindingSpec.length - local.length,
153
+ explicitAlias: true,
154
+ };
155
+ }
156
+ return { imported, local: imported, importedOffset: 0, localOffset: 0, explicitAlias: false };
34
157
  }
35
158
  function matchStartsInCode(maskedSource, match) {
36
159
  const index = match.index;
@@ -45,24 +168,38 @@ function matchStartsInCode(maskedSource, match) {
45
168
  }
46
169
  return true;
47
170
  }
48
- async function collectEsImports(context, source, maskedSource) {
171
+ async function collectEsImports(context, source, maskedSource, lineStarts) {
49
172
  const typeOnlyImport = /\bimport\s+type\b/;
50
173
  const fromPattern = /^\s*import\s+([^\n;]*?)\s+from\s+(["'])(?<module>[^"']+)\2/gm;
51
174
  for (const match of source.matchAll(fromPattern)) {
52
175
  if (!matchStartsInCode(maskedSource, match))
53
176
  continue;
54
- const clause = match[1].trim().replace(/^type\s+/, "");
55
177
  const moduleSpecifier = match.groups?.module;
56
178
  if (!moduleSpecifier)
57
179
  continue;
180
+ // `clauseStart` is the exact source offset of the clause capture: the pattern's
181
+ // fixed `^\s*import\s+` prefix sits immediately before it, so no re-scan is needed.
182
+ const importPrefix = /^\s*import\s+/.exec(match[0]);
183
+ const clauseStart = importPrefix && match.index !== undefined ? match.index + importPrefix[0].length : -1;
184
+ const clauseRaw = match[1];
185
+ const leading = clauseRaw.length - clauseRaw.trimStart().length;
186
+ const trimmedClause = clauseRaw.trim();
187
+ const typePrefix = /^type\s+/.exec(trimmedClause);
188
+ const clause = typePrefix ? trimmedClause.slice(typePrefix[0].length) : trimmedClause;
189
+ const bodyStart = clauseStart < 0 ? -1 : clauseStart + leading + (typePrefix ? typePrefix[0].length : 0);
58
190
  const typeOnly = typeOnlyImport.test(match[0]);
59
191
  const resolved = await context.resolveFrom(moduleSpecifier);
60
192
  const namespaceMatch = clause.match(NAMESPACE_IMPORT_PATTERN);
61
193
  if (namespaceMatch) {
194
+ const localNS = namespaceMatch[1];
195
+ const localRange = bodyStart < 0
196
+ ? undefined
197
+ : tokenRange(source, lineStarts, bodyStart + namespaceMatch[0].indexOf(localNS), localNS);
62
198
  context.pushBinding({
63
199
  kind: "namespace",
64
- localNS: namespaceMatch[1],
200
+ localNS,
65
201
  from: moduleSpecifier,
202
+ ...(localRange ? { localRange } : {}),
66
203
  resolved,
67
204
  typeOnly,
68
205
  });
@@ -73,33 +210,46 @@ async function collectEsImports(context, source, maskedSource) {
73
210
  ? clause.split(",", 1)[0].trim()
74
211
  : clause.slice(0, namedBlockMatch.index).replace(/,\s*$/, "").trim();
75
212
  if (defaultPart) {
213
+ const localRange = bodyStart < 0
214
+ ? undefined
215
+ : tokenRange(source, lineStarts, bodyStart + clause.indexOf(defaultPart), defaultPart);
76
216
  context.pushBinding({
77
217
  kind: "default",
78
218
  local: defaultPart,
79
219
  from: moduleSpecifier,
220
+ ...(localRange ? { localRange } : {}),
80
221
  resolved,
81
222
  typeOnly,
82
223
  });
83
224
  }
84
- const namedBlock = namedBlockMatch?.groups?.named ?? "";
85
- for (const spec of splitNamedImports(namedBlock)) {
86
- const namedImport = parseNamedImportSpecifier(spec);
87
- if (!namedImport)
88
- continue;
89
- const bindingTypeOnly = typeOnly || namedImport.typeOnly;
90
- context.pushBinding({
91
- kind: "named",
92
- local: namedImport.local,
93
- imported: namedImport.imported,
94
- from: moduleSpecifier,
95
- resolved,
96
- typeOnly: bindingTypeOnly,
97
- });
225
+ if (namedBlockMatch?.index !== undefined && bodyStart >= 0) {
226
+ const namedBlockContentStart = bodyStart + namedBlockMatch.index + namedBlockMatch[0].indexOf("{") + 1;
227
+ for (const { spec, start } of splitNamedImportsWithOffsets(namedBlockMatch.groups?.named ?? "")) {
228
+ const namedImport = parseNamedImportSpecifier(spec);
229
+ if (!namedImport)
230
+ continue;
231
+ const specStart = namedBlockContentStart + start;
232
+ const bindingTypeOnly = typeOnly || namedImport.typeOnly;
233
+ const importedRange = tokenRange(source, lineStarts, specStart + namedImport.importedOffset, namedImport.imported);
234
+ const localRange = tokenRange(source, lineStarts, specStart + namedImport.localOffset, namedImport.local);
235
+ context.pushBinding({
236
+ kind: "named",
237
+ local: namedImport.local,
238
+ imported: namedImport.imported,
239
+ from: moduleSpecifier,
240
+ ...(namedImport.explicitAlias ? { explicitAlias: true } : {}),
241
+ ...(importedRange ? { importedRange } : {}),
242
+ ...(localRange ? { localRange } : {}),
243
+ resolved,
244
+ typeOnly: bindingTypeOnly,
245
+ });
246
+ }
98
247
  }
99
248
  }
100
249
  }
101
- async function collectCommonJsRequireDeclarations(context, source, maskedSource) {
250
+ async function collectCommonJsRequireDeclarations(context, source, maskedSource, lineStarts) {
102
251
  const defaultRequirePattern = DEFAULT_REQUIRE_PATTERN;
252
+ const defaultRequirePrefix = /(?:^|[;{}])\s*(?:export\s+)?(?:const|let|var)\s+/;
103
253
  for (const match of source.matchAll(defaultRequirePattern)) {
104
254
  if (!matchStartsInCode(maskedSource, match))
105
255
  continue;
@@ -107,46 +257,53 @@ async function collectCommonJsRequireDeclarations(context, source, maskedSource)
107
257
  const moduleSpecifier = match.groups?.module;
108
258
  if (!moduleSpecifier)
109
259
  continue;
260
+ const localStart = (match.index ?? 0) + (defaultRequirePrefix.exec(match[0])?.[0].length ?? 0);
261
+ const localRange = tokenRange(source, lineStarts, localStart, local);
110
262
  const resolved = await context.resolveFrom(moduleSpecifier);
111
263
  context.pushBinding({
112
264
  kind: "default",
113
265
  local,
114
266
  from: moduleSpecifier,
267
+ ...(localRange ? { localRange } : {}),
115
268
  resolved,
116
269
  mechanism: "cjs",
117
270
  });
118
271
  }
119
- const namedRequirePattern = /(?:^|[;{}])\s*(?:export\s+)?(?:const|let|var)\s*\{([^}]+)\}\s*=\s*require\s*\(\s*(["'])(?<module>[^"']+)\2\s*\)/gm;
120
- for (const match of source.matchAll(namedRequirePattern)) {
121
- if (!matchStartsInCode(maskedSource, match))
272
+ for (const match of maskedSource.matchAll(NAMED_REQUIRE_DECLARATION_PATTERN)) {
273
+ const openingIndex = (match.index ?? 0) + match[0].lastIndexOf("{");
274
+ const closingIndex = closingBraceIndex(maskedSource, openingIndex);
275
+ if (closingIndex < 0)
122
276
  continue;
123
- const specs = match[1]
124
- .split(",")
125
- .map((spec) => spec.trim())
126
- .filter(Boolean);
127
- const moduleSpecifier = match.groups?.module;
277
+ const requireMatch = REQUIRE_AFTER_BINDING_PATTERN.exec(source.slice(closingIndex + 1));
278
+ const moduleSpecifier = requireMatch?.groups?.module;
128
279
  if (!moduleSpecifier)
129
280
  continue;
281
+ const namedBlockStart = openingIndex + 1;
130
282
  const resolved = await context.resolveFrom(moduleSpecifier);
131
- for (const spec of specs) {
132
- const namedMatch = spec.match(NAMED_REQUIRE_SPECIFIER_PATTERN);
133
- if (!namedMatch)
283
+ for (const { spec, start } of splitNamedRequireBindingsWithOffsets(source, maskedSource, namedBlockStart, closingIndex)) {
284
+ const namedRequire = parseNamedRequireSpecifier(spec);
285
+ if (!namedRequire)
134
286
  continue;
135
- const imported = namedMatch[1];
136
- const local = namedMatch[2] ?? imported;
287
+ const specStart = namedBlockStart + start;
288
+ const importedRange = tokenRange(source, lineStarts, specStart + namedRequire.importedOffset, namedRequire.imported);
289
+ const localRange = tokenRange(source, lineStarts, specStart + namedRequire.localOffset, namedRequire.local);
137
290
  context.pushBinding({
138
291
  kind: "named",
139
- local,
140
- imported,
292
+ local: namedRequire.local,
293
+ imported: namedRequire.imported,
141
294
  from: moduleSpecifier,
295
+ ...(namedRequire.explicitAlias ? { explicitAlias: true } : {}),
296
+ ...(importedRange ? { importedRange } : {}),
297
+ ...(localRange ? { localRange } : {}),
142
298
  resolved,
143
299
  mechanism: "cjs",
144
300
  });
145
301
  }
146
302
  }
147
303
  }
148
- async function collectCommonJsImportEquals(context, source, maskedSource) {
304
+ async function collectCommonJsImportEquals(context, source, maskedSource, lineStarts) {
149
305
  const importEqualsPattern = IMPORT_EQUALS_REQUIRE_PATTERN;
306
+ const importEqualsPrefix = /(?:^|[;{}])\s*import\s+/;
150
307
  for (const match of source.matchAll(importEqualsPattern)) {
151
308
  if (!matchStartsInCode(maskedSource, match))
152
309
  continue;
@@ -154,28 +311,33 @@ async function collectCommonJsImportEquals(context, source, maskedSource) {
154
311
  const moduleSpecifier = match.groups?.module;
155
312
  if (!moduleSpecifier)
156
313
  continue;
314
+ const localStart = (match.index ?? 0) + (importEqualsPrefix.exec(match[0])?.[0].length ?? 0);
315
+ const localRange = tokenRange(source, lineStarts, localStart, local);
157
316
  const resolved = await context.resolveFrom(moduleSpecifier);
158
317
  context.pushBinding({
159
318
  kind: "default",
160
319
  local,
161
320
  from: moduleSpecifier,
321
+ ...(localRange ? { localRange } : {}),
162
322
  resolved,
163
323
  mechanism: "cjs",
164
324
  });
165
325
  }
166
326
  }
167
- async function collectCommonJsImports(context, source, maskedSource) {
168
- await collectCommonJsRequireDeclarations(context, source, maskedSource);
169
- await collectCommonJsImportEquals(context, source, maskedSource);
327
+ async function collectCommonJsImports(context, source, maskedSource, lineStarts) {
328
+ await collectCommonJsRequireDeclarations(context, source, maskedSource, lineStarts);
329
+ await collectCommonJsImportEquals(context, source, maskedSource, lineStarts);
170
330
  }
171
331
  export async function collectJsTextValueRequireImports(context) {
172
332
  const source = sourceForTextImportExtraction(context);
173
- await collectCommonJsRequireDeclarations(context, source, maskJsLikeCommentsStringsAndRegex(source));
333
+ const lineStarts = collectLineStartOffsets(source);
334
+ await collectCommonJsRequireDeclarations(context, source, maskJsLikeCommentsStringsAndRegex(source), lineStarts);
174
335
  }
175
336
  export async function collectJsTextImports(context) {
176
337
  const source = sourceForTextImportExtraction(context);
177
338
  const maskedSource = maskJsLikeCommentsStringsAndRegex(source);
178
- await collectEsImports(context, source, maskedSource);
179
- await collectCommonJsImports(context, source, maskedSource);
339
+ const lineStarts = collectLineStartOffsets(source);
340
+ await collectEsImports(context, source, maskedSource, lineStarts);
341
+ await collectCommonJsImports(context, source, maskedSource, lineStarts);
180
342
  }
181
343
  //# sourceMappingURL=js-text-imports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"js-text-imports.js","sourceRoot":"","sources":["../../../src/indexer/imports/js-text-imports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"js-text-imports.js","sourceRoot":"","sources":["../../../src/indexer/imports/js-text-imports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAUhF,MAAM,mCAAmC,GAAG,IAAI,MAAM,CACpD,MAAM,CAAC,GAAG,CAAA,YAAY,4BAA4B,gBAAgB,4BAA4B,MAAM,EACpG,GAAG,CACJ,CAAC;AACF,MAAM,8BAA8B,GAAG,IAAI,MAAM,CAC/C,MAAM,CAAC,GAAG,CAAA,KAAK,4BAA4B,gBAAgB,4BAA4B,MAAM,EAC7F,GAAG,CACJ,CAAC;AACF,MAAM,wBAAwB,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,eAAe,4BAA4B,IAAI,EAAE,GAAG,CAAC,CAAC;AAC5G,MAAM,uBAAuB,GAAG,IAAI,MAAM,CACxC,MAAM,CAAC,GAAG,CAAA,oDAAoD,4BAA4B,uDAAuD,EACjJ,KAAK,CACN,CAAC;AACF,MAAM,+BAA+B,GAAG,IAAI,MAAM,CAChD,MAAM,CAAC,GAAG,CAAA,KAAK,4BAA4B,YAAY,4BAA4B,MAAM,EACzF,GAAG,CACJ,CAAC;AACF,MAAM,6BAA6B,GAAG,IAAI,MAAM,CAC9C,MAAM,CAAC,GAAG,CAAA,2BAA2B,4BAA4B,uDAAuD,EACxH,KAAK,CACN,CAAC;AACF,MAAM,iCAAiC,GAAG,uDAAuD,CAAC;AAClG,MAAM,6BAA6B,GAAG,wDAAwD,CAAC;AAE/F,SAAS,6BAA6B,CAAC,OAAsC;IAC3E,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAC/F,OAAO,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,MAAc,EAAE,UAA6B,EAAE,KAAa,EAAE,KAAa;IAC7F,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IAC1E,OAAO;QACL,KAAK,EAAE,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC;QAC1C,GAAG,EAAE,gBAAgB,CAAC,UAAU,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,UAAkB;IACtD,MAAM,GAAG,GAA2C,EAAE,CAAC;IACvD,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;QACpD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AACD,SAAS,iBAAiB,CAAC,YAAoB,EAAE,YAAoB;IACnE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,KAAK,GAAG,YAAY,EAAE,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvE,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAC7B,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,MAAc,EACd,YAAoB,EACpB,UAAkB,EAClB,QAAgB;IAEhB,MAAM,GAAG,GAA2C,EAAE,CAAC;IACvD,IAAI,SAAS,GAAG,UAAU,CAAC;IAC3B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,MAAM,IAAI,GAAG,CAAC,GAAW,EAAQ,EAAE;QACjC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;QACpD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,EAAE,CAAC,CAAC;IACxE,CAAC,CAAC;IACF,KAAK,IAAI,KAAK,GAAG,UAAU,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,SAAS,KAAK,GAAG;YAAE,UAAU,IAAI,CAAC,CAAC;aAClC,IAAI,SAAS,KAAK,GAAG;YAAE,UAAU,IAAI,CAAC,CAAC;aACvC,IAAI,SAAS,KAAK,GAAG;YAAE,YAAY,IAAI,CAAC,CAAC;aACzC,IAAI,SAAS,KAAK,GAAG;YAAE,YAAY,IAAI,CAAC,CAAC;aACzC,IAAI,SAAS,KAAK,GAAG;YAAE,UAAU,IAAI,CAAC,CAAC;aACvC,IAAI,SAAS,KAAK,GAAG;YAAE,UAAU,IAAI,CAAC,CAAC;aACvC,IAAI,SAAS,KAAK,GAAG,IAAI,UAAU,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YACzF,IAAI,CAAC,KAAK,CAAC,CAAC;YACZ,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,CAAC;IACf,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAY;IAQ7C,kFAAkF;IAClF,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACtE,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAE,CAAC;QACnC,0FAA0F;QAC1F,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACxD,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAE,CAAC;YAChC,OAAO;gBACL,QAAQ;gBACR,KAAK;gBACL,QAAQ,EAAE,IAAI;gBACd,cAAc;gBACd,WAAW,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;gBACvC,aAAa,EAAE,IAAI;aACpB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,QAAQ;YACR,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,IAAI;YACd,cAAc;YACd,WAAW,EAAE,cAAc;YAC3B,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC9D,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;IAChC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;QAC7B,OAAO;YACL,QAAQ;YACR,KAAK;YACL,QAAQ,EAAE,KAAK;YACf,cAAc,EAAE,CAAC;YACjB,WAAW,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;YACvC,aAAa,EAAE,IAAI;SACpB,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AACjH,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAY;IAO9C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IACnE,+EAA+E;IAC/E,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACtE,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;IAChC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;QAC7B,OAAO;YACL,QAAQ;YACR,KAAK;YACL,cAAc,EAAE,CAAC;YACjB,WAAW,EAAE,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;YAC9C,aAAa,EAAE,IAAI;SACpB,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AAChG,CAAC;AAED,SAAS,iBAAiB,CAAC,YAAoB,EAAE,KAAuB;IACtE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5B,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,SAAS;QAC5B,OAAO,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,OAAsC,EACtC,MAAc,EACd,YAAoB,EACpB,UAA6B;IAE7B,MAAM,cAAc,GAAG,mBAAmB,CAAC;IAC3C,MAAM,WAAW,GAAG,8DAA8D,CAAC;IACnF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC;YAAE,SAAS;QACtD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;QAC7C,IAAI,CAAC,eAAe;YAAE,SAAS;QAC/B,gFAAgF;QAChF,oFAAoF;QACpF,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,YAAY,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;QAChE,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QACtF,MAAM,SAAS,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzG,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAC5D,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9D,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAE,CAAC;YACnC,MAAM,UAAU,GACd,SAAS,GAAG,CAAC;gBACX,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;YAC9F,OAAO,CAAC,WAAW,CAAC;gBAClB,IAAI,EAAE,WAAW;gBACjB,OAAO;gBACP,IAAI,EAAE,eAAe;gBACrB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrC,QAAQ;gBACR,QAAQ;aACT,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC5D,MAAM,WAAW,GACf,eAAe,EAAE,KAAK,KAAK,SAAS;YAClC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE;YACjC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzE,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,UAAU,GACd,SAAS,GAAG,CAAC;gBACX,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;YAC3F,OAAO,CAAC,WAAW,CAAC;gBAClB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,eAAe;gBACrB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrC,QAAQ;gBACR,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QACD,IAAI,eAAe,EAAE,KAAK,KAAK,SAAS,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YAC3D,MAAM,sBAAsB,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvG,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,4BAA4B,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;gBAChG,MAAM,WAAW,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;gBACpD,IAAI,CAAC,WAAW;oBAAE,SAAS;gBAC3B,MAAM,SAAS,GAAG,sBAAsB,GAAG,KAAK,CAAC;gBACjD,MAAM,eAAe,GAAG,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC;gBACzD,MAAM,aAAa,GAAG,UAAU,CAC9B,MAAM,EACN,UAAU,EACV,SAAS,GAAG,WAAW,CAAC,cAAc,EACtC,WAAW,CAAC,QAAQ,CACrB,CAAC;gBACF,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC1G,OAAO,CAAC,WAAW,CAAC;oBAClB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,WAAW,CAAC,KAAK;oBACxB,QAAQ,EAAE,WAAW,CAAC,QAAQ;oBAC9B,IAAI,EAAE,eAAe;oBACrB,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7D,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3C,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrC,QAAQ;oBACR,QAAQ,EAAE,eAAe;iBAC1B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kCAAkC,CAC/C,OAAsC,EACtC,MAAc,EACd,YAAoB,EACpB,UAA6B;IAE7B,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;IACtD,MAAM,oBAAoB,GAAG,kDAAkD,CAAC;IAChF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC;YAAE,SAAS;QACtD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACxB,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;QAC7C,IAAI,CAAC,eAAe;YAAE,SAAS;QAC/B,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QAC/F,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAC5D,OAAO,CAAC,WAAW,CAAC;YAClB,IAAI,EAAE,SAAS;YACf,KAAK;YACL,IAAI,EAAE,eAAe;YACrB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,QAAQ;YACR,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,iCAAiC,CAAC,EAAE,CAAC;QAC7E,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACnE,IAAI,YAAY,GAAG,CAAC;YAAE,SAAS;QAC/B,MAAM,YAAY,GAAG,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,eAAe,GAAG,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC;QACrD,IAAI,CAAC,eAAe;YAAE,SAAS;QAC/B,MAAM,eAAe,GAAG,YAAY,GAAG,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAC5D,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,oCAAoC,CAChE,MAAM,EACN,YAAY,EACZ,eAAe,EACf,YAAY,CACb,EAAE,CAAC;YACF,MAAM,YAAY,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,YAAY;gBAAE,SAAS;YAC5B,MAAM,SAAS,GAAG,eAAe,GAAG,KAAK,CAAC;YAC1C,MAAM,aAAa,GAAG,UAAU,CAC9B,MAAM,EACN,UAAU,EACV,SAAS,GAAG,YAAY,CAAC,cAAc,EACvC,YAAY,CAAC,QAAQ,CACtB,CAAC;YACF,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YAC5G,OAAO,CAAC,WAAW,CAAC;gBAClB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,YAAY,CAAC,KAAK;gBACzB,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,IAAI,EAAE,eAAe;gBACrB,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9D,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrC,QAAQ;gBACR,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,OAAsC,EACtC,MAAc,EACd,YAAoB,EACpB,UAA6B;IAE7B,MAAM,mBAAmB,GAAG,6BAA6B,CAAC;IAC1D,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;IACrD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC;YAAE,SAAS;QACtD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACxB,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;QAC7C,IAAI,CAAC,eAAe;YAAE,SAAS;QAC/B,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QAC7F,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAC5D,OAAO,CAAC,WAAW,CAAC;YAClB,IAAI,EAAE,SAAS;YACf,KAAK;YACL,IAAI,EAAE,eAAe;YACrB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,QAAQ;YACR,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,OAAsC,EACtC,MAAc,EACd,YAAoB,EACpB,UAA6B;IAE7B,MAAM,kCAAkC,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IACpF,MAAM,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CAAC,OAAsC;IAC3F,MAAM,MAAM,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,kCAAkC,CAAC,OAAO,EAAE,MAAM,EAAE,iCAAiC,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;AACnH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAsC;IAC/E,MAAM,MAAM,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,iCAAiC,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAClE,MAAM,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAC1E,CAAC"}
@@ -20,6 +20,9 @@ export declare function appendImplicitImportBinding(context: LanguageSpecificImp
20
20
  resolved: ResolvedImportTarget;
21
21
  typeOnly: boolean;
22
22
  stmtText: string;
23
+ /** UTF-16 start index of `stmtText` within the source file, when known. */
24
+ stmtStartIndex?: number;
25
+ source?: string;
23
26
  alias?: string;
24
27
  wildcard?: boolean;
25
28
  }): void;
@@ -1 +1 @@
1
- {"version":3,"file":"language-specific.d.ts","sourceRoot":"","sources":["../../../src/indexer/imports/language-specific.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE5F,MAAM,MAAM,6BAA6B,GAAG,iBAAiB,GAAG;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,cAAc,CAAC;IAC5B,WAAW,EAAE,MAAM,aAAa,EAAE,CAAC;IACnC,eAAe,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAChC,CAAC;AAEF,wBAAgB,kCAAkC,IAAI,4BAA4B,CAEjF;AA2KD,wBAAsB,+BAA+B,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAM3G;AAuWD,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,6BAA6B,EACtC,KAAK,EAAE,4BAA4B,EACnC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,mBAAmB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,OAAO,CAAC,CAsBlB;AASD,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,6BAA6B,EACtC,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GACA,IAAI,CAuEN"}
1
+ {"version":3,"file":"language-specific.d.ts","sourceRoot":"","sources":["../../../src/indexer/imports/language-specific.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE5F,MAAM,MAAM,6BAA6B,GAAG,iBAAiB,GAAG;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,cAAc,CAAC;IAC5B,WAAW,EAAE,MAAM,aAAa,EAAE,CAAC;IACnC,eAAe,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAChC,CAAC;AAEF,wBAAgB,kCAAkC,IAAI,4BAA4B,CAEjF;AAqMD,wBAAsB,+BAA+B,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAM3G;AA0XD,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,6BAA6B,EACtC,KAAK,EAAE,4BAA4B,EACnC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,mBAAmB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,OAAO,CAAC,CA+BlB;AASD,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,6BAA6B,EACtC,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GACA,IAAI,CAiFN"}