@lzehrung/codegraph 2.3.24 → 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.
- package/README.md +1 -1
- package/codegraph-skill/codegraph/SKILL.md +1 -1
- package/dist/bin/cli.js +3420 -1620
- package/dist/bin/query-index-worker.js +569 -229
- package/dist/cli/context.d.ts.map +1 -1
- package/dist/cli/context.js +7 -4
- package/dist/cli/context.js.map +1 -1
- package/dist/cli/doctor.d.ts +1 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +8 -1
- package/dist/cli/doctor.js.map +1 -1
- package/dist/document-links/asciidoc.d.ts.map +1 -1
- package/dist/document-links/asciidoc.js +33 -0
- package/dist/document-links/asciidoc.js.map +1 -1
- package/dist/document-links/language-ids.d.ts +10 -0
- package/dist/document-links/language-ids.d.ts.map +1 -0
- package/dist/document-links/language-ids.js +15 -0
- package/dist/document-links/language-ids.js.map +1 -0
- package/dist/document-links/markdown.d.ts.map +1 -1
- package/dist/document-links/markdown.js +103 -21
- package/dist/document-links/markdown.js.map +1 -1
- package/dist/document-links/shared.d.ts.map +1 -1
- package/dist/document-links/shared.js +1 -0
- package/dist/document-links/shared.js.map +1 -1
- package/dist/document-links.d.ts +1 -3
- package/dist/document-links.d.ts.map +1 -1
- package/dist/document-links.js +1 -8
- package/dist/document-links.js.map +1 -1
- package/dist/duplicates/unit-cache.d.ts +1 -1
- package/dist/duplicates/unit-cache.d.ts.map +1 -1
- package/dist/duplicates/unit-cache.js +4 -1
- package/dist/duplicates/unit-cache.js.map +1 -1
- package/dist/duplicates/units.d.ts +1 -0
- package/dist/duplicates/units.d.ts.map +1 -1
- package/dist/duplicates/units.js +55 -10
- package/dist/duplicates/units.js.map +1 -1
- package/dist/graphs/edge-resolution.d.ts.map +1 -1
- package/dist/graphs/edge-resolution.js +3 -0
- package/dist/graphs/edge-resolution.js.map +1 -1
- package/dist/graphs/external/stdlib.d.ts.map +1 -1
- package/dist/graphs/external/stdlib.js +18 -11
- package/dist/graphs/external/stdlib.js.map +1 -1
- package/dist/graphs/specifiers.d.ts +3 -2
- package/dist/graphs/specifiers.d.ts.map +1 -1
- package/dist/graphs/specifiers.js +76 -39
- package/dist/graphs/specifiers.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js +1 -1
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
- package/dist/indexer/build-cache/options.d.ts +8 -2
- package/dist/indexer/build-cache/options.d.ts.map +1 -1
- package/dist/indexer/build-cache/options.js +10 -2
- package/dist/indexer/build-cache/options.js.map +1 -1
- package/dist/indexer/build-cache/reports.d.ts.map +1 -1
- package/dist/indexer/build-cache/reports.js +29 -21
- package/dist/indexer/build-cache/reports.js.map +1 -1
- package/dist/indexer/expand-star-imports.d.ts.map +1 -1
- package/dist/indexer/expand-star-imports.js +8 -3
- package/dist/indexer/expand-star-imports.js.map +1 -1
- package/dist/indexer/imports/language-specific.d.ts.map +1 -1
- package/dist/indexer/imports/language-specific.js +166 -32
- package/dist/indexer/imports/language-specific.js.map +1 -1
- package/dist/indexer/imports/native-captures.d.ts.map +1 -1
- package/dist/indexer/imports/native-captures.js +4 -3
- package/dist/indexer/imports/native-captures.js.map +1 -1
- package/dist/indexer/imports/python.d.ts +2 -0
- package/dist/indexer/imports/python.d.ts.map +1 -1
- package/dist/indexer/imports/python.js +113 -8
- package/dist/indexer/imports/python.js.map +1 -1
- package/dist/indexer/imports.d.ts.map +1 -1
- package/dist/indexer/imports.js +25 -12
- package/dist/indexer/imports.js.map +1 -1
- package/dist/indexer/locals-and-exports.d.ts.map +1 -1
- package/dist/indexer/locals-and-exports.js +153 -38
- package/dist/indexer/locals-and-exports.js.map +1 -1
- package/dist/indexer/navigation-goto.js +1 -1
- package/dist/indexer/navigation-goto.js.map +1 -1
- package/dist/indexer/scope-types.d.ts +1 -1
- package/dist/indexer/scope-types.d.ts.map +1 -1
- package/dist/indexer/scope.d.ts.map +1 -1
- package/dist/indexer/scope.js +43 -2
- package/dist/indexer/scope.js.map +1 -1
- package/dist/languages/definitions/c-family.d.ts +5 -0
- package/dist/languages/definitions/c-family.d.ts.map +1 -1
- package/dist/languages/definitions/c-family.js +27 -6
- package/dist/languages/definitions/c-family.js.map +1 -1
- package/dist/languages/definitions/c.d.ts.map +1 -1
- package/dist/languages/definitions/c.js +5 -0
- package/dist/languages/definitions/c.js.map +1 -1
- package/dist/languages/definitions/cpp.d.ts.map +1 -1
- package/dist/languages/definitions/cpp.js +41 -3
- package/dist/languages/definitions/cpp.js.map +1 -1
- package/dist/languages/definitions/csharp.d.ts.map +1 -1
- package/dist/languages/definitions/csharp.js +52 -21
- package/dist/languages/definitions/csharp.js.map +1 -1
- package/dist/languages/definitions/go.d.ts.map +1 -1
- package/dist/languages/definitions/go.js +10 -7
- package/dist/languages/definitions/go.js.map +1 -1
- package/dist/languages/definitions/html-stub.d.ts +6 -7
- package/dist/languages/definitions/html-stub.d.ts.map +1 -1
- package/dist/languages/definitions/html-stub.js +6 -7
- package/dist/languages/definitions/html-stub.js.map +1 -1
- package/dist/languages/definitions/html.js +13 -13
- package/dist/languages/definitions/html.js.map +1 -1
- package/dist/languages/definitions/java.d.ts.map +1 -1
- package/dist/languages/definitions/java.js +6 -0
- package/dist/languages/definitions/java.js.map +1 -1
- package/dist/languages/definitions/javascript.d.ts.map +1 -1
- package/dist/languages/definitions/javascript.js +48 -30
- package/dist/languages/definitions/javascript.js.map +1 -1
- package/dist/languages/definitions/kotlin.d.ts.map +1 -1
- package/dist/languages/definitions/kotlin.js +49 -61
- package/dist/languages/definitions/kotlin.js.map +1 -1
- package/dist/languages/definitions/php.js +1 -1
- package/dist/languages/definitions/php.js.map +1 -1
- package/dist/languages/definitions/python.d.ts.map +1 -1
- package/dist/languages/definitions/python.js +85 -20
- package/dist/languages/definitions/python.js.map +1 -1
- package/dist/languages/definitions/ruby.d.ts.map +1 -1
- package/dist/languages/definitions/ruby.js +13 -11
- package/dist/languages/definitions/ruby.js.map +1 -1
- package/dist/languages/definitions/rust.d.ts.map +1 -1
- package/dist/languages/definitions/rust.js +22 -5
- package/dist/languages/definitions/rust.js.map +1 -1
- package/dist/languages/definitions/scss.d.ts.map +1 -1
- package/dist/languages/definitions/scss.js +21 -17
- package/dist/languages/definitions/scss.js.map +1 -1
- package/dist/languages/definitions/sql.js +1 -1
- package/dist/languages/definitions/sql.js.map +1 -1
- package/dist/languages/definitions/swift.d.ts.map +1 -1
- package/dist/languages/definitions/swift.js +66 -16
- package/dist/languages/definitions/swift.js.map +1 -1
- package/dist/languages/definitions/typescript.d.ts.map +1 -1
- package/dist/languages/definitions/typescript.js +30 -9
- package/dist/languages/definitions/typescript.js.map +1 -1
- package/dist/languages/definitions/zig.d.ts.map +1 -1
- package/dist/languages/definitions/zig.js +26 -5
- package/dist/languages/definitions/zig.js.map +1 -1
- package/dist/languages/import-statement-parsers.d.ts +14 -1
- package/dist/languages/import-statement-parsers.d.ts.map +1 -1
- package/dist/languages/import-statement-parsers.js +473 -45
- package/dist/languages/import-statement-parsers.js.map +1 -1
- package/dist/languages/types.d.ts +11 -0
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages.d.ts +1 -0
- package/dist/languages.d.ts.map +1 -1
- package/dist/languages.js +9 -2
- package/dist/languages.js.map +1 -1
- package/dist/native/backend-report-format.d.ts +4 -0
- package/dist/native/backend-report-format.d.ts.map +1 -0
- package/dist/native/backend-report-format.js +14 -0
- package/dist/native/backend-report-format.js.map +1 -0
- package/dist/native/contracts.d.ts +2 -0
- package/dist/native/contracts.d.ts.map +1 -1
- package/dist/util/comments.js +1 -1
- package/dist/util/comments.js.map +1 -1
- package/dist/util/member-access.d.ts +1 -1
- package/dist/util/member-access.d.ts.map +1 -1
- package/dist/util/member-access.js +5 -2
- package/dist/util/member-access.js.map +1 -1
- package/dist/util/project-files.js +1 -1
- package/dist/util/project-files.js.map +1 -1
- package/dist/util/resolution/rust.d.ts +8 -1
- package/dist/util/resolution/rust.d.ts.map +1 -1
- package/dist/util/resolution/rust.js +521 -7
- package/dist/util/resolution/rust.js.map +1 -1
- package/dist/util/resolution-candidates.d.ts +1 -1
- package/dist/util/resolution-candidates.d.ts.map +1 -1
- package/dist/util/resolution-candidates.js +11 -8
- package/dist/util/resolution-candidates.js.map +1 -1
- package/dist/util/resolution.d.ts +5 -0
- package/dist/util/resolution.d.ts.map +1 -1
- package/dist/util/resolution.js +18 -7
- package/dist/util/resolution.js.map +1 -1
- package/dist/util/rust-test-modules.d.ts.map +1 -1
- package/dist/util/rust-test-modules.js +2 -5
- package/dist/util/rust-test-modules.js.map +1 -1
- package/dist/util/specifiers.d.ts +8 -0
- package/dist/util/specifiers.d.ts.map +1 -1
- package/dist/util/specifiers.js +33 -7
- package/dist/util/specifiers.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
import fsp from "node:fs/promises";
|
|
1
2
|
import path from "node:path";
|
|
3
|
+
import { isRustItemStartBoundary, skipRustAttribute, skipRustBalancedDelimiters, skipRustCommentOrLiteral, skipRustCommentsAndWhitespaceBackward, skipRustMacroTokenTree, skipRustOuterAttribute, } from "../../languages/import-statement-parsers.js";
|
|
4
|
+
import { XID_IDENTIFIER_SOURCE } from "../identifiers.js";
|
|
5
|
+
import { lruMapGet, lruMapSet } from "../lru-map.js";
|
|
6
|
+
import { isFilePathWithinRoot } from "../paths.js";
|
|
2
7
|
import { fileExists } from "../workspace.js";
|
|
3
8
|
function isWithinOrEqual(candidate, root) {
|
|
4
9
|
const relative = path.relative(root, candidate);
|
|
@@ -52,15 +57,524 @@ function parentRustModuleDir(fromFile, currentDir) {
|
|
|
52
57
|
async function resolveRustModuleParts(baseDir, parts) {
|
|
53
58
|
return firstExistingFile(rustModuleCandidates(baseDir, parts));
|
|
54
59
|
}
|
|
55
|
-
|
|
60
|
+
const RUST_PATH_ATTRIBUTE_PATTERN = /#\s*\[\s*path\s*=\s*(?:r(#*)"([\s\S]*?)"\1|"([^"]*)")\s*\]/gu;
|
|
61
|
+
const RUST_CFG_TEST_ATTRIBUTE_PATTERN = /#\s*\[\s*cfg\s*\(\s*test\s*\)\s*\]/;
|
|
62
|
+
const RUST_VISIBILITY_PATTERN = /^(?:pub(?:\s*\([^)]*\))?\s+)/;
|
|
63
|
+
const RUST_MOD_NAME_PATTERN = new RegExp(String.raw `^mod\s+(${XID_IDENTIFIER_SOURCE})`, "u");
|
|
64
|
+
const MAX_RUST_PATH_ATTRIBUTE_CACHE_ENTRIES = 256;
|
|
65
|
+
const EMPTY_RUST_MODULE_SCOPE = {
|
|
66
|
+
pathAttributes: new Map(),
|
|
67
|
+
inlineModules: new Map(),
|
|
68
|
+
};
|
|
69
|
+
const rustPathAttributeCache = new Map();
|
|
70
|
+
const rustPathAttributeInflight = new Map();
|
|
71
|
+
function createRustModuleScope() {
|
|
72
|
+
return { pathAttributes: new Map(), inlineModules: new Map() };
|
|
73
|
+
}
|
|
74
|
+
function pathAttributeFromAttributeBlock(attributes) {
|
|
75
|
+
let last;
|
|
76
|
+
RUST_PATH_ATTRIBUTE_PATTERN.lastIndex = 0;
|
|
77
|
+
for (const match of attributes.matchAll(RUST_PATH_ATTRIBUTE_PATTERN)) {
|
|
78
|
+
last = match[2] ?? match[3];
|
|
79
|
+
}
|
|
80
|
+
return last;
|
|
81
|
+
}
|
|
82
|
+
export function takeTrailingRustAttributes(source, statementIndex) {
|
|
83
|
+
let index = skipRustCommentsAndWhitespaceBackward(source, statementIndex);
|
|
84
|
+
const chunks = [];
|
|
85
|
+
while (index > 0) {
|
|
86
|
+
if (source[index - 1] !== "]")
|
|
87
|
+
break;
|
|
88
|
+
const attrStart = rustOuterAttributeStartEndingAt(source, index);
|
|
89
|
+
if (attrStart === null)
|
|
90
|
+
break;
|
|
91
|
+
chunks.unshift(source.slice(attrStart, index));
|
|
92
|
+
index = skipRustCommentsAndWhitespaceBackward(source, attrStart);
|
|
93
|
+
}
|
|
94
|
+
return chunks.join("\n");
|
|
95
|
+
}
|
|
96
|
+
export function rustItemKeywordIndex(source, start) {
|
|
97
|
+
let index = start;
|
|
98
|
+
while (index < source.length) {
|
|
99
|
+
if (/\s/.test(source[index])) {
|
|
100
|
+
index += 1;
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
const skipped = skipRustCommentOrLiteral(source, index);
|
|
104
|
+
if (skipped) {
|
|
105
|
+
index = skipped.end;
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
const attrEnd = skipRustOuterAttribute(source, index);
|
|
109
|
+
if (attrEnd !== null) {
|
|
110
|
+
index = attrEnd;
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
return index;
|
|
116
|
+
}
|
|
117
|
+
export function rustLeadingAttributesIncludeCfgTest(source, statementIndex) {
|
|
118
|
+
const keywordIndex = rustItemKeywordIndex(source, statementIndex);
|
|
119
|
+
return RUST_CFG_TEST_ATTRIBUTE_PATTERN.test(takeTrailingRustAttributes(source, keywordIndex));
|
|
120
|
+
}
|
|
121
|
+
function enclosingInlineModulePath(scope, index) {
|
|
122
|
+
for (const [name, child] of scope.inlineModules) {
|
|
123
|
+
const location = child.inlineLocation;
|
|
124
|
+
if (!location || index < location.start || index >= location.end)
|
|
125
|
+
continue;
|
|
126
|
+
return [name, ...enclosingInlineModulePath(child, index)];
|
|
127
|
+
}
|
|
128
|
+
return [];
|
|
129
|
+
}
|
|
130
|
+
export function rustEnclosingInlineModulePath(source, statementStartIndex) {
|
|
131
|
+
return enclosingInlineModulePath(extractRustModPathAttributeScopes(source), statementStartIndex);
|
|
132
|
+
}
|
|
133
|
+
function findPathAttributedModulePath(scope, moduleName, prefix) {
|
|
134
|
+
if (scope.pathAttributes.has(moduleName))
|
|
135
|
+
return [...prefix, moduleName];
|
|
136
|
+
for (const [childName, child] of scope.inlineModules) {
|
|
137
|
+
const hit = findPathAttributedModulePath(child, moduleName, [...prefix, childName]);
|
|
138
|
+
if (hit)
|
|
139
|
+
return hit;
|
|
140
|
+
}
|
|
141
|
+
return undefined;
|
|
142
|
+
}
|
|
143
|
+
export function rustGraphModuleSpecifier(source, moduleName, statementStartIndex) {
|
|
144
|
+
if (statementStartIndex !== undefined) {
|
|
145
|
+
const pathAttribute = extractRustModPathAttribute(source, moduleName, statementStartIndex);
|
|
146
|
+
if (!pathAttribute)
|
|
147
|
+
return moduleName;
|
|
148
|
+
const prefix = rustEnclosingInlineModulePath(source, statementStartIndex);
|
|
149
|
+
return prefix.length ? `${prefix.join("::")}::${moduleName}` : moduleName;
|
|
150
|
+
}
|
|
151
|
+
const found = findPathAttributedModulePath(extractRustModPathAttributeScopes(source), moduleName, []);
|
|
152
|
+
return found?.join("::") ?? moduleName;
|
|
153
|
+
}
|
|
154
|
+
export function rustStatementStartIndex(source, statementText, statementStartIndex, searchFrom = 0) {
|
|
155
|
+
if (statementStartIndex !== undefined)
|
|
156
|
+
return statementStartIndex;
|
|
157
|
+
const normalized = statementText.trim();
|
|
158
|
+
if (!normalized)
|
|
159
|
+
return undefined;
|
|
160
|
+
const index = source.indexOf(normalized, searchFrom);
|
|
161
|
+
return index >= 0 ? index : undefined;
|
|
162
|
+
}
|
|
163
|
+
function rustOuterAttributeStartEndingAt(source, end) {
|
|
164
|
+
for (let start = end - 2; start >= 0; start -= 1) {
|
|
165
|
+
if (source[start] !== "#")
|
|
166
|
+
continue;
|
|
167
|
+
if (skipRustOuterAttribute(source, start) === end)
|
|
168
|
+
return start;
|
|
169
|
+
}
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
function collectLeadingRustOuterAttributes(source, start) {
|
|
173
|
+
let cursor = start;
|
|
174
|
+
const chunks = [];
|
|
175
|
+
while (cursor < source.length) {
|
|
176
|
+
if (/\s/.test(source[cursor])) {
|
|
177
|
+
cursor += 1;
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
const skipped = skipRustCommentOrLiteral(source, cursor);
|
|
181
|
+
if (skipped) {
|
|
182
|
+
cursor = skipped.end;
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
const attrEnd = skipRustOuterAttribute(source, cursor);
|
|
186
|
+
if (attrEnd === null)
|
|
187
|
+
break;
|
|
188
|
+
chunks.push(source.slice(cursor, attrEnd));
|
|
189
|
+
cursor = attrEnd;
|
|
190
|
+
}
|
|
191
|
+
return chunks.join("\n");
|
|
192
|
+
}
|
|
193
|
+
function skipRustTrivia(source, index, end) {
|
|
194
|
+
let cursor = index;
|
|
195
|
+
while (cursor < end) {
|
|
196
|
+
if (/\s/.test(source[cursor])) {
|
|
197
|
+
cursor += 1;
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
const skipped = skipRustCommentOrLiteral(source, cursor);
|
|
201
|
+
if (skipped) {
|
|
202
|
+
cursor = skipped.end < end ? skipped.end : end;
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
return cursor;
|
|
208
|
+
}
|
|
209
|
+
function extractRustModPathAttributeScopes(source) {
|
|
210
|
+
const root = createRustModuleScope();
|
|
211
|
+
scanRustModuleScope(source, 0, source.length, root);
|
|
212
|
+
return root;
|
|
213
|
+
}
|
|
214
|
+
function scanRustModuleScope(source, start, end, scope) {
|
|
215
|
+
let index = start;
|
|
216
|
+
while (index < end) {
|
|
217
|
+
const skipped = skipRustCommentOrLiteral(source, index) ?? skipRustMacroTokenTree(source, index);
|
|
218
|
+
if (skipped) {
|
|
219
|
+
index = skipped.end < end ? skipped.end : end;
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
if (/\s/.test(source[index])) {
|
|
223
|
+
index += 1;
|
|
224
|
+
continue;
|
|
225
|
+
}
|
|
226
|
+
const attrEnd = skipRustAttribute(source, index);
|
|
227
|
+
if (attrEnd !== null) {
|
|
228
|
+
index = attrEnd < end ? attrEnd : end;
|
|
229
|
+
continue;
|
|
230
|
+
}
|
|
231
|
+
if (!isRustItemStartBoundary(source, index)) {
|
|
232
|
+
index += 1;
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
const visMatch = source.slice(index, end).match(RUST_VISIBILITY_PATTERN);
|
|
236
|
+
const afterVis = visMatch ? index + visMatch[0].length : index;
|
|
237
|
+
const modMatch = source.slice(afterVis, end).match(RUST_MOD_NAME_PATTERN);
|
|
238
|
+
if (modMatch?.[1]) {
|
|
239
|
+
const moduleName = modMatch[1];
|
|
240
|
+
const headerEnd = afterVis + modMatch[0].length;
|
|
241
|
+
const attrs = takeTrailingRustAttributes(source, index);
|
|
242
|
+
const testOnly = RUST_CFG_TEST_ATTRIBUTE_PATTERN.test(attrs);
|
|
243
|
+
const pathValue = pathAttributeFromAttributeBlock(attrs);
|
|
244
|
+
const cursor = skipRustTrivia(source, headerEnd, end);
|
|
245
|
+
if (source[cursor] === ";") {
|
|
246
|
+
if (!testOnly && pathValue && !scope.pathAttributes.has(moduleName)) {
|
|
247
|
+
scope.pathAttributes.set(moduleName, pathValue);
|
|
248
|
+
}
|
|
249
|
+
index = cursor + 1;
|
|
250
|
+
continue;
|
|
251
|
+
}
|
|
252
|
+
if (source[cursor] === "{") {
|
|
253
|
+
const bodyEnd = skipRustBalancedDelimiters(source, cursor + 1, "}");
|
|
254
|
+
const boundedEnd = bodyEnd < end ? bodyEnd : end;
|
|
255
|
+
if (!testOnly) {
|
|
256
|
+
let child = scope.inlineModules.get(moduleName);
|
|
257
|
+
if (!child) {
|
|
258
|
+
child = createRustModuleScope();
|
|
259
|
+
scope.inlineModules.set(moduleName, child);
|
|
260
|
+
}
|
|
261
|
+
const bodyExclusiveEnd = boundedEnd > cursor + 1 ? boundedEnd - 1 : boundedEnd;
|
|
262
|
+
child.inlineLocation = { start: cursor + 1, end: bodyExclusiveEnd, directory: pathValue ?? moduleName };
|
|
263
|
+
scanRustModuleScope(source, cursor + 1, bodyExclusiveEnd, child);
|
|
264
|
+
}
|
|
265
|
+
index = boundedEnd;
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
index = headerEnd;
|
|
269
|
+
continue;
|
|
270
|
+
}
|
|
271
|
+
if (source[index] === "{") {
|
|
272
|
+
const skippedBlock = skipRustBalancedDelimiters(source, index + 1, "}");
|
|
273
|
+
index = skippedBlock < end ? skippedBlock : end;
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
index += 1;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
export function extractRustModPathAttribute(source, moduleName, statementStartIndex) {
|
|
280
|
+
if (statementStartIndex !== undefined) {
|
|
281
|
+
const leadingWhitespace = source.slice(statementStartIndex).search(/\S/);
|
|
282
|
+
const index = statementStartIndex + Math.max(0, leadingWhitespace);
|
|
283
|
+
if (source[index] === "#") {
|
|
284
|
+
return pathAttributeFromAttributeBlock(collectLeadingRustOuterAttributes(source, index));
|
|
285
|
+
}
|
|
286
|
+
return pathAttributeFromAttributeBlock(takeTrailingRustAttributes(source, index));
|
|
287
|
+
}
|
|
288
|
+
if (!moduleName)
|
|
289
|
+
return undefined;
|
|
290
|
+
return extractRustModPathAttributeScopes(source).pathAttributes.get(moduleName);
|
|
291
|
+
}
|
|
292
|
+
async function isExistingAttributedPathInsideProject(projectRoot, attributedPath) {
|
|
293
|
+
if (!(await fileExists(attributedPath)))
|
|
294
|
+
return false;
|
|
295
|
+
if (!isFilePathWithinRoot(projectRoot, attributedPath))
|
|
296
|
+
return false;
|
|
297
|
+
try {
|
|
298
|
+
const realRoot = await fsp.realpath(projectRoot);
|
|
299
|
+
const realCandidate = await fsp.realpath(attributedPath);
|
|
300
|
+
return isFilePathWithinRoot(realRoot, realCandidate);
|
|
301
|
+
}
|
|
302
|
+
catch {
|
|
303
|
+
return false;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
function rustPathAttributeSignature(stat) {
|
|
307
|
+
return `${stat.size}:${stat.mtimeMs}`;
|
|
308
|
+
}
|
|
309
|
+
async function loadRustPathAttributeScope(file) {
|
|
310
|
+
const resolved = path.resolve(file);
|
|
311
|
+
let signature;
|
|
312
|
+
try {
|
|
313
|
+
const stat = await fsp.stat(resolved);
|
|
314
|
+
if (!stat.isFile())
|
|
315
|
+
return EMPTY_RUST_MODULE_SCOPE;
|
|
316
|
+
signature = rustPathAttributeSignature(stat);
|
|
317
|
+
}
|
|
318
|
+
catch {
|
|
319
|
+
return EMPTY_RUST_MODULE_SCOPE;
|
|
320
|
+
}
|
|
321
|
+
const cached = lruMapGet(rustPathAttributeCache, resolved);
|
|
322
|
+
if (cached && cached.signature === signature)
|
|
323
|
+
return cached.attributes;
|
|
324
|
+
const inflightKey = `${resolved}::${signature}`;
|
|
325
|
+
const inflight = rustPathAttributeInflight.get(inflightKey);
|
|
326
|
+
if (inflight)
|
|
327
|
+
return await inflight;
|
|
328
|
+
const pending = (async () => {
|
|
329
|
+
try {
|
|
330
|
+
const source = await fsp.readFile(resolved, "utf8");
|
|
331
|
+
const attributes = extractRustModPathAttributeScopes(source);
|
|
332
|
+
lruMapSet(rustPathAttributeCache, resolved, { signature, attributes }, MAX_RUST_PATH_ATTRIBUTE_CACHE_ENTRIES);
|
|
333
|
+
return attributes;
|
|
334
|
+
}
|
|
335
|
+
catch {
|
|
336
|
+
return EMPTY_RUST_MODULE_SCOPE;
|
|
337
|
+
}
|
|
338
|
+
finally {
|
|
339
|
+
rustPathAttributeInflight.delete(inflightKey);
|
|
340
|
+
}
|
|
341
|
+
})();
|
|
342
|
+
rustPathAttributeInflight.set(inflightKey, pending);
|
|
343
|
+
return await pending;
|
|
344
|
+
}
|
|
345
|
+
function rustChildModuleDir(parentFile) {
|
|
346
|
+
const dir = path.dirname(parentFile);
|
|
347
|
+
const stem = path.basename(parentFile, ".rs");
|
|
348
|
+
if (stem === "mod" || stem === "lib" || stem === "main")
|
|
349
|
+
return dir;
|
|
350
|
+
return path.join(dir, stem);
|
|
351
|
+
}
|
|
352
|
+
async function rustDeclaringFileCandidates(fromFile, sourceRoot) {
|
|
353
|
+
const files = [];
|
|
354
|
+
const seen = new Set();
|
|
355
|
+
const root = path.resolve(sourceRoot);
|
|
356
|
+
const resolvedFrom = path.resolve(fromFile);
|
|
357
|
+
let dir = path.dirname(resolvedFrom);
|
|
358
|
+
for (let depth = 0; depth < 16; depth += 1) {
|
|
359
|
+
let entries = [];
|
|
360
|
+
try {
|
|
361
|
+
entries = await fsp.readdir(dir);
|
|
362
|
+
}
|
|
363
|
+
catch {
|
|
364
|
+
entries = [];
|
|
365
|
+
}
|
|
366
|
+
for (const entry of entries) {
|
|
367
|
+
if (!entry.endsWith(".rs"))
|
|
368
|
+
continue;
|
|
369
|
+
const abs = path.resolve(dir, entry);
|
|
370
|
+
if (abs === resolvedFrom || seen.has(abs))
|
|
371
|
+
continue;
|
|
372
|
+
seen.add(abs);
|
|
373
|
+
files.push(abs);
|
|
374
|
+
}
|
|
375
|
+
if (path.resolve(dir) === root)
|
|
376
|
+
break;
|
|
377
|
+
const parent = path.dirname(dir);
|
|
378
|
+
if (parent === dir)
|
|
379
|
+
break;
|
|
380
|
+
if (!isWithinOrEqual(parent, root) && path.resolve(dir) !== root) {
|
|
381
|
+
if (!seen.has(root)) {
|
|
382
|
+
let rootEntries = [];
|
|
383
|
+
try {
|
|
384
|
+
rootEntries = await fsp.readdir(root);
|
|
385
|
+
}
|
|
386
|
+
catch {
|
|
387
|
+
rootEntries = [];
|
|
388
|
+
}
|
|
389
|
+
for (const entry of rootEntries) {
|
|
390
|
+
if (!entry.endsWith(".rs"))
|
|
391
|
+
continue;
|
|
392
|
+
const abs = path.resolve(root, entry);
|
|
393
|
+
if (abs === resolvedFrom || seen.has(abs))
|
|
394
|
+
continue;
|
|
395
|
+
seen.add(abs);
|
|
396
|
+
files.push(abs);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
break;
|
|
400
|
+
}
|
|
401
|
+
dir = parent;
|
|
402
|
+
}
|
|
403
|
+
return files;
|
|
404
|
+
}
|
|
405
|
+
async function findAttributedDeclarationParent(projectRoot, declaringFile, targetFile) {
|
|
406
|
+
const resolvedTarget = path.resolve(targetFile);
|
|
407
|
+
const walk = async (scope, currentFile, currentModuleDir, attributeDirectory) => {
|
|
408
|
+
for (const pathValue of scope.pathAttributes.values()) {
|
|
409
|
+
const attributedPath = path.resolve(attributeDirectory, pathValue);
|
|
410
|
+
if (path.resolve(attributedPath) !== resolvedTarget)
|
|
411
|
+
continue;
|
|
412
|
+
if (!(await isExistingAttributedPathInsideProject(projectRoot, attributedPath)))
|
|
413
|
+
continue;
|
|
414
|
+
return { parentFile: currentFile, parentModuleDir: currentModuleDir };
|
|
415
|
+
}
|
|
416
|
+
for (const [name, child] of scope.inlineModules) {
|
|
417
|
+
const nextDir = path.resolve(currentModuleDir, child.inlineLocation?.directory ?? name);
|
|
418
|
+
const hit = await walk(child, currentFile, nextDir, nextDir);
|
|
419
|
+
if (hit)
|
|
420
|
+
return hit;
|
|
421
|
+
}
|
|
422
|
+
return null;
|
|
423
|
+
};
|
|
424
|
+
const scope = await loadRustPathAttributeScope(declaringFile);
|
|
425
|
+
return walk(scope, path.resolve(declaringFile), rustChildModuleDir(declaringFile), path.dirname(declaringFile));
|
|
426
|
+
}
|
|
427
|
+
async function findPathAttributeParent(projectRoot, fromFile, sourceRoot) {
|
|
428
|
+
const candidates = await rustDeclaringFileCandidates(fromFile, sourceRoot);
|
|
429
|
+
for (const candidate of candidates) {
|
|
430
|
+
const found = await findAttributedDeclarationParent(projectRoot, candidate, fromFile);
|
|
431
|
+
if (found)
|
|
432
|
+
return found;
|
|
433
|
+
}
|
|
434
|
+
return null;
|
|
435
|
+
}
|
|
436
|
+
async function rustSuperModuleContext(projectRoot, fromFile, sourceRoot) {
|
|
437
|
+
const attributed = await findPathAttributeParent(projectRoot, fromFile, sourceRoot);
|
|
438
|
+
if (attributed)
|
|
439
|
+
return attributed;
|
|
440
|
+
const currentDir = path.dirname(fromFile);
|
|
441
|
+
const parentModuleDir = parentRustModuleDir(fromFile, currentDir);
|
|
442
|
+
return { parentFile: await resolveRustModuleParts(parentModuleDir, []), parentModuleDir };
|
|
443
|
+
}
|
|
444
|
+
async function declaringFileForSpecifierHead(projectRoot, fromFile, sourceRoot, head) {
|
|
445
|
+
if (head === "*")
|
|
446
|
+
return null;
|
|
447
|
+
if (head === "crate") {
|
|
448
|
+
return resolveRustModuleParts(sourceRoot, []);
|
|
449
|
+
}
|
|
450
|
+
if (head === "self") {
|
|
451
|
+
return path.resolve(fromFile);
|
|
452
|
+
}
|
|
453
|
+
if (head === "super") {
|
|
454
|
+
const context = await rustSuperModuleContext(projectRoot, fromFile, sourceRoot);
|
|
455
|
+
return context.parentFile;
|
|
456
|
+
}
|
|
457
|
+
return path.resolve(fromFile);
|
|
458
|
+
}
|
|
459
|
+
function rustScopeAtDirectory(scope, fromDir, toDir) {
|
|
460
|
+
const relative = path.relative(fromDir, toDir);
|
|
461
|
+
if (!relative || relative.startsWith("..") || path.isAbsolute(relative))
|
|
462
|
+
return scope;
|
|
463
|
+
let current = scope;
|
|
464
|
+
for (const part of relative.split(/[\\/]/).filter(Boolean)) {
|
|
465
|
+
const child = current.inlineModules.get(part);
|
|
466
|
+
if (!child)
|
|
467
|
+
return current;
|
|
468
|
+
current = child;
|
|
469
|
+
}
|
|
470
|
+
return current;
|
|
471
|
+
}
|
|
472
|
+
async function resolveAttributedRustModulePath(projectRoot, fromFile, parts, sourceRoot) {
|
|
473
|
+
const head = parts[0];
|
|
474
|
+
if (!head)
|
|
475
|
+
return undefined;
|
|
476
|
+
let startFile;
|
|
477
|
+
let startModuleDir;
|
|
478
|
+
if (head === "super") {
|
|
479
|
+
const context = await rustSuperModuleContext(projectRoot, fromFile, sourceRoot);
|
|
480
|
+
startFile = context.parentFile;
|
|
481
|
+
startModuleDir = context.parentModuleDir;
|
|
482
|
+
}
|
|
483
|
+
else {
|
|
484
|
+
startFile = await declaringFileForSpecifierHead(projectRoot, fromFile, sourceRoot, head);
|
|
485
|
+
}
|
|
486
|
+
if (!startFile)
|
|
487
|
+
return undefined;
|
|
488
|
+
let childParts = parts;
|
|
489
|
+
if (head === "crate" || head === "self" || head === "super") {
|
|
490
|
+
childParts = parts.slice(1);
|
|
491
|
+
}
|
|
492
|
+
let currentFile = startFile;
|
|
493
|
+
let currentScope = await loadRustPathAttributeScope(currentFile);
|
|
494
|
+
let currentModuleDir = startModuleDir ?? rustChildModuleDir(currentFile);
|
|
495
|
+
if (startModuleDir) {
|
|
496
|
+
currentScope = rustScopeAtDirectory(currentScope, rustChildModuleDir(currentFile), startModuleDir);
|
|
497
|
+
}
|
|
498
|
+
let attributeDirectory = path.dirname(currentFile);
|
|
499
|
+
if (startModuleDir)
|
|
500
|
+
attributeDirectory = startModuleDir;
|
|
501
|
+
let usedAttribute = false;
|
|
502
|
+
for (const child of childParts) {
|
|
503
|
+
if (!child || child === "*") {
|
|
504
|
+
if (usedAttribute)
|
|
505
|
+
return currentFile;
|
|
506
|
+
return undefined;
|
|
507
|
+
}
|
|
508
|
+
const pathValue = currentScope.pathAttributes.get(child);
|
|
509
|
+
if (pathValue) {
|
|
510
|
+
const attributedPath = path.resolve(attributeDirectory, pathValue);
|
|
511
|
+
if (!(await isExistingAttributedPathInsideProject(projectRoot, attributedPath))) {
|
|
512
|
+
return null;
|
|
513
|
+
}
|
|
514
|
+
currentFile = path.resolve(attributedPath);
|
|
515
|
+
currentScope = await loadRustPathAttributeScope(currentFile);
|
|
516
|
+
currentModuleDir = rustChildModuleDir(currentFile);
|
|
517
|
+
attributeDirectory = path.dirname(currentFile);
|
|
518
|
+
usedAttribute = true;
|
|
519
|
+
continue;
|
|
520
|
+
}
|
|
521
|
+
const inline = currentScope.inlineModules.get(child);
|
|
522
|
+
if (inline) {
|
|
523
|
+
currentScope = inline;
|
|
524
|
+
currentModuleDir = path.resolve(currentModuleDir, inline.inlineLocation?.directory ?? child);
|
|
525
|
+
attributeDirectory = currentModuleDir;
|
|
526
|
+
continue;
|
|
527
|
+
}
|
|
528
|
+
const conventional = await resolveRustModuleParts(currentModuleDir, [child]);
|
|
529
|
+
if (!conventional) {
|
|
530
|
+
if (usedAttribute)
|
|
531
|
+
return null;
|
|
532
|
+
return undefined;
|
|
533
|
+
}
|
|
534
|
+
currentFile = conventional;
|
|
535
|
+
currentScope = await loadRustPathAttributeScope(currentFile);
|
|
536
|
+
currentModuleDir = rustChildModuleDir(currentFile);
|
|
537
|
+
attributeDirectory = path.dirname(currentFile);
|
|
538
|
+
}
|
|
539
|
+
if (usedAttribute)
|
|
540
|
+
return currentFile;
|
|
541
|
+
return undefined;
|
|
542
|
+
}
|
|
543
|
+
function inlineAttributeDirectory(scope, index, moduleDir) {
|
|
544
|
+
for (const child of scope.inlineModules.values()) {
|
|
545
|
+
const location = child.inlineLocation;
|
|
546
|
+
if (!location || index < location.start || index >= location.end)
|
|
547
|
+
continue;
|
|
548
|
+
const directory = path.resolve(moduleDir, location.directory);
|
|
549
|
+
return inlineAttributeDirectory(child, index, directory) ?? directory;
|
|
550
|
+
}
|
|
551
|
+
return undefined;
|
|
552
|
+
}
|
|
553
|
+
export async function resolveRustImportPath(projectRoot, fromFile, spec, pathAttribute, statementStartIndex) {
|
|
56
554
|
const normalized = normalizeRustModuleSpecifier(spec);
|
|
57
555
|
if (!normalized)
|
|
58
556
|
return null;
|
|
59
557
|
const parts = normalized.split("::").filter(Boolean);
|
|
60
558
|
if (!parts.length)
|
|
61
559
|
return null;
|
|
560
|
+
if (pathAttribute) {
|
|
561
|
+
let attributeDirectory = path.dirname(fromFile);
|
|
562
|
+
if (statementStartIndex !== undefined) {
|
|
563
|
+
const scope = await loadRustPathAttributeScope(fromFile);
|
|
564
|
+
attributeDirectory =
|
|
565
|
+
inlineAttributeDirectory(scope, statementStartIndex, rustChildModuleDir(fromFile)) ?? attributeDirectory;
|
|
566
|
+
}
|
|
567
|
+
const attributedPath = path.resolve(attributeDirectory, pathAttribute);
|
|
568
|
+
if (await isExistingAttributedPathInsideProject(projectRoot, attributedPath)) {
|
|
569
|
+
return path.resolve(attributedPath);
|
|
570
|
+
}
|
|
571
|
+
return null;
|
|
572
|
+
}
|
|
62
573
|
const cargoRoot = await findNearestCargoRoot(fromFile, projectRoot);
|
|
63
574
|
const sourceRoot = crateSourceRoot(cargoRoot, projectRoot);
|
|
575
|
+
const walked = await resolveAttributedRustModulePath(projectRoot, fromFile, parts, sourceRoot);
|
|
576
|
+
if (walked !== undefined)
|
|
577
|
+
return walked;
|
|
64
578
|
const currentDir = path.dirname(fromFile);
|
|
65
579
|
const head = parts[0];
|
|
66
580
|
const tail = parts.slice(1);
|
|
@@ -68,15 +582,15 @@ export async function resolveRustImportPath(projectRoot, fromFile, spec) {
|
|
|
68
582
|
return resolveRustModuleParts(sourceRoot, tail);
|
|
69
583
|
}
|
|
70
584
|
if (head === "self") {
|
|
585
|
+
if (!tail.length)
|
|
586
|
+
return path.resolve(fromFile);
|
|
71
587
|
return resolveRustModuleParts(currentDir, tail);
|
|
72
588
|
}
|
|
73
589
|
if (head === "super") {
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
return resolveRustModuleParts(parentModuleDir, tail);
|
|
590
|
+
const context = await rustSuperModuleContext(projectRoot, fromFile, sourceRoot);
|
|
591
|
+
if (!tail.length)
|
|
592
|
+
return context.parentFile;
|
|
593
|
+
return resolveRustModuleParts(context.parentModuleDir, tail);
|
|
80
594
|
}
|
|
81
595
|
const siblingModule = await resolveRustModuleParts(currentDir, parts);
|
|
82
596
|
if (siblingModule) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rust.js","sourceRoot":"","sources":["../../../src/util/resolution/rust.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rust.js","sourceRoot":"","sources":["../../../src/util/resolution/rust.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const STYLESHEET_RESOLUTION_EXTENSIONS: readonly [".css", ".scss", ".less"];
|
|
2
|
-
export declare const DEFAULT_RESOLUTION_EXTENSIONS: readonly [".ts", ".tsx", ".js", ".jsx", ".mts", ".cts", ".mjs", ".cjs", ".json", ".css", ".scss", ".less", ".php", ".html", ".vue", ".svelte", ".go", ".java", ".cs", ".rb", ".rs", ".c", ".h", ".cc", ".cpp", ".cxx", ".c++", ".hpp", ".hh", ".hxx", ".ipp", ".tpp", ".inl", ".kt", ".kts", ".swift"];
|
|
2
|
+
export declare const DEFAULT_RESOLUTION_EXTENSIONS: readonly [".ts", ".tsx", ".d.ts", ".js", ".jsx", ".mts", ".d.mts", ".cts", ".d.cts", ".mjs", ".cjs", ".json", ".css", ".scss", ".less", ".php", ".html", ".vue", ".svelte", ".go", ".java", ".cs", ".rb", ".rs", ".c", ".h", ".cc", ".cpp", ".cxx", ".c++", ".hpp", ".hh", ".hxx", ".ipp", ".tpp", ".inl", ".kt", ".kts", ".swift"];
|
|
3
3
|
export declare function getResolutionExtensions(resolutionExtensions?: readonly string[]): string[];
|
|
4
4
|
export declare function listResolutionCandidates(base: string, resolutionExtensions?: readonly string[]): string[];
|
|
5
5
|
//# sourceMappingURL=resolution-candidates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolution-candidates.d.ts","sourceRoot":"","sources":["../../src/util/resolution-candidates.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gCAAgC,qCAAsC,CAAC;AAEpF,eAAO,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"resolution-candidates.d.ts","sourceRoot":"","sources":["../../src/util/resolution-candidates.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gCAAgC,qCAAsC,CAAC;AAEpF,eAAO,MAAM,6BAA6B,qUAsChC,CAAC;AAaX,wBAAgB,uBAAuB,CAAC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAG1F;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAmBzG"}
|
|
@@ -3,10 +3,13 @@ export const STYLESHEET_RESOLUTION_EXTENSIONS = [".css", ".scss", ".less"];
|
|
|
3
3
|
export const DEFAULT_RESOLUTION_EXTENSIONS = [
|
|
4
4
|
".ts",
|
|
5
5
|
".tsx",
|
|
6
|
+
".d.ts",
|
|
6
7
|
".js",
|
|
7
8
|
".jsx",
|
|
8
9
|
".mts",
|
|
10
|
+
".d.mts",
|
|
9
11
|
".cts",
|
|
12
|
+
".d.cts",
|
|
10
13
|
".mjs",
|
|
11
14
|
".cjs",
|
|
12
15
|
".json",
|
|
@@ -37,14 +40,14 @@ export const DEFAULT_RESOLUTION_EXTENSIONS = [
|
|
|
37
40
|
".swift",
|
|
38
41
|
];
|
|
39
42
|
const EXPLICIT_SPECIFIER_EXTENSION_FAMILIES = {
|
|
40
|
-
".ts": [".ts", ".tsx", ".js", ".jsx"],
|
|
41
|
-
".tsx": [".tsx", ".jsx", ".ts", ".js"],
|
|
42
|
-
".js": [".ts", ".tsx", ".js", ".jsx"],
|
|
43
|
-
".jsx": [".tsx", ".jsx", ".ts", ".js"],
|
|
44
|
-
".mts": [".mts", ".mjs"],
|
|
45
|
-
".mjs": [".mts", ".mjs"],
|
|
46
|
-
".cts": [".cts", ".cjs"],
|
|
47
|
-
".cjs": [".cts", ".cjs"],
|
|
43
|
+
".ts": [".ts", ".tsx", ".d.ts", ".js", ".jsx"],
|
|
44
|
+
".tsx": [".tsx", ".jsx", ".ts", ".d.ts", ".js"],
|
|
45
|
+
".js": [".ts", ".tsx", ".d.ts", ".js", ".jsx"],
|
|
46
|
+
".jsx": [".tsx", ".jsx", ".ts", ".d.ts", ".js"],
|
|
47
|
+
".mts": [".mts", ".d.mts", ".mjs"],
|
|
48
|
+
".mjs": [".mts", ".d.mts", ".mjs"],
|
|
49
|
+
".cts": [".cts", ".d.cts", ".cjs"],
|
|
50
|
+
".cjs": [".cts", ".d.cts", ".cjs"],
|
|
48
51
|
};
|
|
49
52
|
export function getResolutionExtensions(resolutionExtensions) {
|
|
50
53
|
const extensions = resolutionExtensions === undefined ? DEFAULT_RESOLUTION_EXTENSIONS : resolutionExtensions;
|