From 76ad3e67056026da66603da7857f3bcb25f979fa Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 7 Apr 2025 21:41:38 +0200 Subject: [PATCH] JS: Fix automatic file extensions in main file resolution --- .../ql/lib/semmle/javascript/internal/PathResolution.qll | 2 ++ .../ql/test/library-tests/PathResolution/import-packages.ts | 4 ++-- javascript/ql/test/library-tests/PathResolution/test.expected | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/internal/PathResolution.qll b/javascript/ql/lib/semmle/javascript/internal/PathResolution.qll index 2b68652bb33..efc42f27ba6 100644 --- a/javascript/ql/lib/semmle/javascript/internal/PathResolution.qll +++ b/javascript/ql/lib/semmle/javascript/internal/PathResolution.qll @@ -373,6 +373,8 @@ module PathResolution { } predicate shouldResolve(Container base, string path) { shouldResolve(_, base, path) } + + predicate getAnAdditionalChild = AutomaticFileExtensions::getAnAdditionalChild/2; } private module ResolvePackageMain = ResolvePaths; diff --git a/javascript/ql/test/library-tests/PathResolution/import-packages.ts b/javascript/ql/test/library-tests/PathResolution/import-packages.ts index 4562d9aab54..f4ec0c55b98 100644 --- a/javascript/ql/test/library-tests/PathResolution/import-packages.ts +++ b/javascript/ql/test/library-tests/PathResolution/import-packages.ts @@ -20,5 +20,5 @@ import '@example/package-guess1'; // $ importTarget=PackageGuess1/src/index.ts import './PackageGuess2'; // $ MISSING: importTarget=PackageGuess2/blah/stuff.ts import '@example/package-guess2'; // $ importTarget=PackageGuess2/blah/stuff.ts -import './PackageWithModuleMainExt'; // $ MISSING: importTarget=PackageWithModuleMainExt/lib/main.ts -import '@example/package-with-module-main-ext'; // $ MISSING: importTarget=PackageWithModuleMainExt/lib/main.ts +import './PackageWithMainExt'; // $ importTarget=PackageWithMainExt/lib/main.ts +import '@example/package-with-main-ext'; // $ importTarget=PackageWithMainExt/lib/main.ts diff --git a/javascript/ql/test/library-tests/PathResolution/test.expected b/javascript/ql/test/library-tests/PathResolution/test.expected index 89eca12e2fc..a9915147e8e 100644 --- a/javascript/ql/test/library-tests/PathResolution/test.expected +++ b/javascript/ql/test/library-tests/PathResolution/test.expected @@ -71,3 +71,5 @@ | import-packages.ts:17:1:17:25 | import ... uess1'; | PackageGuess1/src/index.ts | | import-packages.ts:18:1:18:33 | import ... uess1'; | PackageGuess1/src/index.ts | | import-packages.ts:21:1:21:33 | import ... uess2'; | PackageGuess2/blah/stuff.ts | +| import-packages.ts:23:1:23:30 | import ... inExt'; | PackageWithMainExt/lib/main.ts | +| import-packages.ts:24:1:24:40 | import ... n-ext'; | PackageWithMainExt/lib/main.ts |