mirror of
https://github.com/github/codeql.git
synced 2026-05-01 03:35:13 +02:00
Merge pull request #19391 from asgerf/js/typescript-path-resolution
JS: Overhaul import resolution
This commit is contained in:
@@ -18,8 +18,8 @@ query predicate amdModuleDefinition(AmdModuleDefinition mod, DataFlow::SourceNod
|
||||
mod.getFactoryNode() = factory
|
||||
}
|
||||
|
||||
query predicate amdModuleDependencies(AmdModuleDefinition mod, PathExpr dependency) {
|
||||
dependency = mod.getADependency()
|
||||
query predicate amdModuleDependencies(AmdModuleDefinition mod, Expr dependency) {
|
||||
dependency = mod.getADependencyExpr()
|
||||
}
|
||||
|
||||
query predicate amdModuleExportedSymbol(AmdModule m, string sym) { sym = m.getAnExportedSymbol() }
|
||||
|
||||
@@ -1,8 +1,17 @@
|
||||
nodes
|
||||
| file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) |
|
||||
| file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) |
|
||||
| tsconfig.json:1:1:7:1 | [JsonObject] {compilerOptions: ...} | semmle.label | [JsonObject] {compilerOptions: ...} |
|
||||
| tsconfig.json:1:1:7:1 | [JsonObject] {compilerOptions: ...} | semmle.order | 1 |
|
||||
| tsconfig.json:2:24:4:5 | [JsonObject] {experimentalDecorators: ...} | semmle.label | [JsonObject] {experimentalDecorators: ...} |
|
||||
| tsconfig.json:3:35:3:38 | [JsonBoolean] true | semmle.label | [JsonBoolean] true |
|
||||
| tsconfig.json:5:16:5:26 | [JsonArray] ["**/*.ts"] | semmle.label | [JsonArray] ["**/*.ts"] |
|
||||
| tsconfig.json:5:17:5:25 | [JsonString] "**/*.ts" | semmle.label | [JsonString] "**/*.ts" |
|
||||
| tsconfig.json:6:12:6:28 | [JsonArray] ["es2015", ...] | semmle.label | [JsonArray] ["es2015", ...] |
|
||||
| tsconfig.json:6:13:6:20 | [JsonString] "es2015" | semmle.label | [JsonString] "es2015" |
|
||||
| tsconfig.json:6:23:6:27 | [JsonString] "dom" | semmle.label | [JsonString] "dom" |
|
||||
| tst.ts:1:1:1:22 | [DeclStmt] const Dec = ... | semmle.label | [DeclStmt] const Dec = ... |
|
||||
| tst.ts:1:1:1:22 | [DeclStmt] const Dec = ... | semmle.order | 1 |
|
||||
| tst.ts:1:1:1:22 | [DeclStmt] const Dec = ... | semmle.order | 2 |
|
||||
| tst.ts:1:7:1:9 | [VarDecl] Dec | semmle.label | [VarDecl] Dec |
|
||||
| tst.ts:1:7:1:21 | [VariableDeclarator] Dec: any = null | semmle.label | [VariableDeclarator] Dec: any = null |
|
||||
| tst.ts:1:12:1:14 | [KeywordTypeExpr] any | semmle.label | [KeywordTypeExpr] any |
|
||||
@@ -11,7 +20,7 @@ nodes
|
||||
| tst.ts:3:2:3:4 | [VarRef] Dec | semmle.label | [VarRef] Dec |
|
||||
| tst.ts:3:2:3:6 | [CallExpr] Dec() | semmle.label | [CallExpr] Dec() |
|
||||
| tst.ts:4:1:8:1 | [ExportDeclaration] export ... id {} } | semmle.label | [ExportDeclaration] export ... id {} } |
|
||||
| tst.ts:4:1:8:1 | [ExportDeclaration] export ... id {} } | semmle.order | 2 |
|
||||
| tst.ts:4:1:8:1 | [ExportDeclaration] export ... id {} } | semmle.order | 3 |
|
||||
| tst.ts:4:8:8:1 | [ClassDefinition,TypeDefinition] class O ... id {} } | semmle.label | [ClassDefinition,TypeDefinition] class O ... id {} } |
|
||||
| tst.ts:4:14:4:30 | [VarDecl] OperatorResolvers | semmle.label | [VarDecl] OperatorResolvers |
|
||||
| tst.ts:4:32:4:31 | [BlockStmt] {} | semmle.label | [BlockStmt] {} |
|
||||
@@ -30,7 +39,7 @@ nodes
|
||||
| tst.ts:7:16:7:19 | [KeywordTypeExpr] void | semmle.label | [KeywordTypeExpr] void |
|
||||
| tst.ts:7:21:7:22 | [BlockStmt] {} | semmle.label | [BlockStmt] {} |
|
||||
| tst.ts:10:1:10:41 | [DeclStmt] const createMethodDecorator = ... | semmle.label | [DeclStmt] const createMethodDecorator = ... |
|
||||
| tst.ts:10:1:10:41 | [DeclStmt] const createMethodDecorator = ... | semmle.order | 3 |
|
||||
| tst.ts:10:1:10:41 | [DeclStmt] const createMethodDecorator = ... | semmle.order | 4 |
|
||||
| tst.ts:10:7:10:27 | [VarDecl] createMethodDecorator | semmle.label | [VarDecl] createMethodDecorator |
|
||||
| tst.ts:10:7:10:40 | [VariableDeclarator] createM ... = null | semmle.label | [VariableDeclarator] createM ... = null |
|
||||
| tst.ts:10:31:10:33 | [KeywordTypeExpr] any | semmle.label | [KeywordTypeExpr] any |
|
||||
@@ -38,7 +47,7 @@ nodes
|
||||
| tst.ts:12:1:12:21 | [VarRef] createMethodDecorator | semmle.label | [VarRef] createMethodDecorator |
|
||||
| tst.ts:12:1:14:2 | [CallExpr] createM ... { }) | semmle.label | [CallExpr] createM ... { }) |
|
||||
| tst.ts:12:1:14:3 | [ExprStmt] createM ... }); | semmle.label | [ExprStmt] createM ... }); |
|
||||
| tst.ts:12:1:14:3 | [ExprStmt] createM ... }); | semmle.order | 4 |
|
||||
| tst.ts:12:1:14:3 | [ExprStmt] createM ... }); | semmle.order | 5 |
|
||||
| tst.ts:12:23:14:1 | [ArrowFunctionExpr] ({ args ... { } | semmle.label | [ArrowFunctionExpr] ({ args ... { } |
|
||||
| tst.ts:12:24:12:40 | [ObjectPattern,Parameter] { args, context } | semmle.label | [ObjectPattern,Parameter] { args, context } |
|
||||
| tst.ts:12:26:12:29 | [Label] args | semmle.label | [Label] args |
|
||||
@@ -56,6 +65,20 @@ edges
|
||||
| file://:0:0:0:0 | (Parameters) | tst.ts:12:24:12:40 | [ObjectPattern,Parameter] { args, context } | semmle.order | 0 |
|
||||
| file://:0:0:0:0 | (Parameters) | tst.ts:12:43:12:46 | [SimpleParameter] next | semmle.label | 1 |
|
||||
| file://:0:0:0:0 | (Parameters) | tst.ts:12:43:12:46 | [SimpleParameter] next | semmle.order | 1 |
|
||||
| tsconfig.json:1:1:7:1 | [JsonObject] {compilerOptions: ...} | tsconfig.json:2:24:4:5 | [JsonObject] {experimentalDecorators: ...} | semmle.label | 0 |
|
||||
| tsconfig.json:1:1:7:1 | [JsonObject] {compilerOptions: ...} | tsconfig.json:2:24:4:5 | [JsonObject] {experimentalDecorators: ...} | semmle.order | 0 |
|
||||
| tsconfig.json:1:1:7:1 | [JsonObject] {compilerOptions: ...} | tsconfig.json:5:16:5:26 | [JsonArray] ["**/*.ts"] | semmle.label | 1 |
|
||||
| tsconfig.json:1:1:7:1 | [JsonObject] {compilerOptions: ...} | tsconfig.json:5:16:5:26 | [JsonArray] ["**/*.ts"] | semmle.order | 1 |
|
||||
| tsconfig.json:1:1:7:1 | [JsonObject] {compilerOptions: ...} | tsconfig.json:6:12:6:28 | [JsonArray] ["es2015", ...] | semmle.label | 2 |
|
||||
| tsconfig.json:1:1:7:1 | [JsonObject] {compilerOptions: ...} | tsconfig.json:6:12:6:28 | [JsonArray] ["es2015", ...] | semmle.order | 2 |
|
||||
| tsconfig.json:2:24:4:5 | [JsonObject] {experimentalDecorators: ...} | tsconfig.json:3:35:3:38 | [JsonBoolean] true | semmle.label | 0 |
|
||||
| tsconfig.json:2:24:4:5 | [JsonObject] {experimentalDecorators: ...} | tsconfig.json:3:35:3:38 | [JsonBoolean] true | semmle.order | 0 |
|
||||
| tsconfig.json:5:16:5:26 | [JsonArray] ["**/*.ts"] | tsconfig.json:5:17:5:25 | [JsonString] "**/*.ts" | semmle.label | 0 |
|
||||
| tsconfig.json:5:16:5:26 | [JsonArray] ["**/*.ts"] | tsconfig.json:5:17:5:25 | [JsonString] "**/*.ts" | semmle.order | 0 |
|
||||
| tsconfig.json:6:12:6:28 | [JsonArray] ["es2015", ...] | tsconfig.json:6:13:6:20 | [JsonString] "es2015" | semmle.label | 0 |
|
||||
| tsconfig.json:6:12:6:28 | [JsonArray] ["es2015", ...] | tsconfig.json:6:13:6:20 | [JsonString] "es2015" | semmle.order | 0 |
|
||||
| tsconfig.json:6:12:6:28 | [JsonArray] ["es2015", ...] | tsconfig.json:6:23:6:27 | [JsonString] "dom" | semmle.label | 1 |
|
||||
| tsconfig.json:6:12:6:28 | [JsonArray] ["es2015", ...] | tsconfig.json:6:23:6:27 | [JsonString] "dom" | semmle.order | 1 |
|
||||
| tst.ts:1:1:1:22 | [DeclStmt] const Dec = ... | tst.ts:1:7:1:21 | [VariableDeclarator] Dec: any = null | semmle.label | 1 |
|
||||
| tst.ts:1:1:1:22 | [DeclStmt] const Dec = ... | tst.ts:1:7:1:21 | [VariableDeclarator] Dec: any = null | semmle.order | 1 |
|
||||
| tst.ts:1:7:1:21 | [VariableDeclarator] Dec: any = null | tst.ts:1:7:1:9 | [VarDecl] Dec | semmle.label | 1 |
|
||||
|
||||
@@ -22,8 +22,8 @@ query predicate test_ImportNamespaceSpecifier(ImportNamespaceSpecifier ins) { an
|
||||
|
||||
query predicate test_ImportSpecifiers(ImportSpecifier is, VarDecl res) { res = is.getLocal() }
|
||||
|
||||
query predicate test_Imports(ImportDeclaration id, PathExpr res0, int res1) {
|
||||
res0 = id.getImportedPath() and res1 = count(id.getASpecifier())
|
||||
query predicate test_Imports(ImportDeclaration id, Expr res0, int res1) {
|
||||
res0 = id.getImportedPathExpr() and res1 = count(id.getASpecifier())
|
||||
}
|
||||
|
||||
query predicate test_Module_exports(Module m, string name, DataFlow::Node exportValue) {
|
||||
|
||||
4
javascript/ql/test/library-tests/NPM/src/node_modules/a/package.json
generated
vendored
Normal file
4
javascript/ql/test/library-tests/NPM/src/node_modules/a/package.json
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "a",
|
||||
"main": "index.js"
|
||||
}
|
||||
5
javascript/ql/test/library-tests/NPM/src/node_modules/nested/node_modules/a/package.json
generated
vendored
Normal file
5
javascript/ql/test/library-tests/NPM/src/node_modules/nested/node_modules/a/package.json
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "a",
|
||||
"main": "index.js",
|
||||
"description": "Nested version of package A"
|
||||
}
|
||||
3
javascript/ql/test/library-tests/NPM/src/node_modules/nested/package.json
generated
vendored
Normal file
3
javascript/ql/test/library-tests/NPM/src/node_modules/nested/package.json
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"name": "nested"
|
||||
}
|
||||
@@ -6,6 +6,7 @@ dependencies
|
||||
importedFile
|
||||
| src/lib/tst2.js:1:1:1:13 | require("..") | src/index.js:0:0:0:0 | src/index.js |
|
||||
| src/node_modules/nested/tst3.js:1:1:1:29 | require ... odule') | src/node_modules/third-party-module/fancy.js:0:0:0:0 | src/node_modules/third-party-module/fancy.js |
|
||||
| src/node_modules/nested/tst3.js:2:1:2:12 | require('a') | src/node_modules/a/index.js:0:0:0:0 | src/node_modules/a/index.js |
|
||||
| src/node_modules/nested/tst3.js:2:1:2:12 | require('a') | src/node_modules/nested/node_modules/a/index.js:0:0:0:0 | src/node_modules/nested/node_modules/a/index.js |
|
||||
| src/node_modules/tst2.js:1:1:1:38 | require ... cy.js') | src/node_modules/third-party-module/fancy.js:0:0:0:0 | src/node_modules/third-party-module/fancy.js |
|
||||
| src/test-submodule.js:1:1:1:24 | require ... odule") | src/node_modules/parent-module/main.js:0:0:0:0 | src/node_modules/parent-module/main.js |
|
||||
@@ -16,6 +17,7 @@ importedFile
|
||||
importedModule
|
||||
| src/lib/tst2.js:1:1:1:13 | require("..") | src/index.js:1:1:4:0 | <toplevel> |
|
||||
| src/node_modules/nested/tst3.js:1:1:1:29 | require ... odule') | src/node_modules/third-party-module/fancy.js:1:1:4:0 | <toplevel> |
|
||||
| src/node_modules/nested/tst3.js:2:1:2:12 | require('a') | src/node_modules/a/index.js:1:1:1:25 | <toplevel> |
|
||||
| src/node_modules/nested/tst3.js:2:1:2:12 | require('a') | src/node_modules/nested/node_modules/a/index.js:1:1:1:25 | <toplevel> |
|
||||
| src/node_modules/tst2.js:1:1:1:38 | require ... cy.js') | src/node_modules/third-party-module/fancy.js:1:1:4:0 | <toplevel> |
|
||||
| src/test-submodule.js:1:1:1:24 | require ... odule") | src/node_modules/parent-module/main.js:1:1:2:0 | <toplevel> |
|
||||
@@ -29,10 +31,13 @@ modules
|
||||
| src | test-package | src/test-submodule.js:1:1:3:0 | <toplevel> |
|
||||
| src | test-package | src/tst2.js:1:1:1:13 | <toplevel> |
|
||||
| src | test-package | src/tst.js:1:1:2:38 | <toplevel> |
|
||||
| src/node_modules/a | a | src/node_modules/a/index.js:1:1:1:25 | <toplevel> |
|
||||
| src/node_modules/b | b | src/node_modules/b/lib/index.js:1:1:2:0 | <toplevel> |
|
||||
| src/node_modules/b | b | src/node_modules/b/lib/util.ts:1:1:2:0 | <toplevel> |
|
||||
| src/node_modules/c | c | src/node_modules/c/src/index.js:1:1:2:0 | <toplevel> |
|
||||
| src/node_modules/d | d | src/node_modules/d/main.js:1:1:2:0 | <toplevel> |
|
||||
| src/node_modules/nested | nested | src/node_modules/nested/tst3.js:1:1:2:13 | <toplevel> |
|
||||
| src/node_modules/nested/node_modules/a | a | src/node_modules/nested/node_modules/a/index.js:1:1:1:25 | <toplevel> |
|
||||
| src/node_modules/parent-module | parent-module | src/node_modules/parent-module/main.js:1:1:2:0 | <toplevel> |
|
||||
| src/node_modules/parent-module | parent-module | src/node_modules/parent-module/sub-module/main.js:1:1:2:0 | <toplevel> |
|
||||
| src/node_modules/parent-module/sub-module | parent-module/sub-module | src/node_modules/parent-module/sub-module/main.js:1:1:2:0 | <toplevel> |
|
||||
@@ -41,17 +46,22 @@ npm
|
||||
| src/node_modules/third-party-module/package.json:1:1:5:1 | {\\n "na ... y.js"\\n} | third-party-module | 23.4.0 |
|
||||
| src/package.json:1:1:20:1 | {\\n "na ... "\\n }\\n} | test-package | 0.1.0 |
|
||||
getMainModule
|
||||
| src/node_modules/a/package.json:1:1:4:1 | {\\n " ... x.js"\\n} | a | src/node_modules/a/index.js:1:1:1:25 | <toplevel> |
|
||||
| src/node_modules/b/package.json:1:1:4:1 | {\\n "na ... "lib"\\n} | b | src/node_modules/b/lib/index.js:1:1:2:0 | <toplevel> |
|
||||
| src/node_modules/c/package.json:1:1:4:1 | {\\n "na ... src/"\\n} | c | src/node_modules/c/src/index.js:1:1:2:0 | <toplevel> |
|
||||
| src/node_modules/d/package.json:1:1:4:1 | {\\n "na ... main"\\n} | d | src/node_modules/d/main.js:1:1:2:0 | <toplevel> |
|
||||
| src/node_modules/nested/node_modules/a/package.json:1:1:5:1 | {\\n " ... ge A"\\n} | a | src/node_modules/nested/node_modules/a/index.js:1:1:1:25 | <toplevel> |
|
||||
| src/node_modules/parent-module/package.json:1:1:4:1 | {\\n "na ... n.js"\\n} | parent-module | src/node_modules/parent-module/main.js:1:1:2:0 | <toplevel> |
|
||||
| src/node_modules/parent-module/sub-module/package.json:1:1:3:1 | {\\n "ma ... n.js"\\n} | parent-module/sub-module | src/node_modules/parent-module/sub-module/main.js:1:1:2:0 | <toplevel> |
|
||||
| src/node_modules/third-party-module/package.json:1:1:5:1 | {\\n "na ... y.js"\\n} | third-party-module | src/node_modules/third-party-module/fancy.js:1:1:4:0 | <toplevel> |
|
||||
| src/package.json:1:1:20:1 | {\\n "na ... "\\n }\\n} | test-package | src/index.js:1:1:4:0 | <toplevel> |
|
||||
packageJson
|
||||
| src/node_modules/a/package.json:1:1:4:1 | {\\n " ... x.js"\\n} |
|
||||
| src/node_modules/b/package.json:1:1:4:1 | {\\n "na ... "lib"\\n} |
|
||||
| src/node_modules/c/package.json:1:1:4:1 | {\\n "na ... src/"\\n} |
|
||||
| src/node_modules/d/package.json:1:1:4:1 | {\\n "na ... main"\\n} |
|
||||
| src/node_modules/nested/node_modules/a/package.json:1:1:5:1 | {\\n " ... ge A"\\n} |
|
||||
| src/node_modules/nested/package.json:1:1:3:1 | {\\n " ... sted"\\n} |
|
||||
| src/node_modules/parent-module/package.json:1:1:4:1 | {\\n "na ... n.js"\\n} |
|
||||
| src/node_modules/parent-module/sub-module/package.json:1:1:3:1 | {\\n "ma ... n.js"\\n} |
|
||||
| src/node_modules/third-party-module/package.json:1:1:5:1 | {\\n "na ... y.js"\\n} |
|
||||
|
||||
@@ -94,14 +94,12 @@ requireImport
|
||||
| a.js:3:6:3:23 | require('./sub/c') | ./sub/c | sub/c.js:1:1:4:0 | <toplevel> |
|
||||
| a.js:4:6:4:29 | require ... /d.js') | ./sub/../d.js | d.js:1:1:7:15 | <toplevel> |
|
||||
| a.js:7:1:7:18 | require('./sub/c') | ./sub/c | sub/c.js:1:1:4:0 | <toplevel> |
|
||||
| a.js:10:1:10:18 | require(__dirname) | | index.js:1:1:3:0 | <toplevel> |
|
||||
| a.js:11:1:11:25 | require ... + '/e') | /e | e.js:1:1:6:0 | <toplevel> |
|
||||
| a.js:12:1:12:28 | require ... + 'c') | ./sub/c | sub/c.js:1:1:4:0 | <toplevel> |
|
||||
| b.js:1:1:1:18 | require('./sub/c') | ./sub/c | sub/c.js:1:1:4:0 | <toplevel> |
|
||||
| d.js:7:1:7:14 | require('foo') | foo | sub/f.js:1:1:4:17 | <toplevel> |
|
||||
| index.js:2:1:2:41 | require ... b.js")) | /index.js/../b.js | b.js:1:1:8:0 | <toplevel> |
|
||||
| mjs-files/require-from-js.js:1:12:1:36 | require ... on-me') | ./depend-on-me | mjs-files/depend-on-me.mjs:1:1:7:1 | <toplevel> |
|
||||
| mjs-files/require-from-js.js:2:12:2:39 | require ... me.js') | ./depend-on-me.js | mjs-files/depend-on-me.js:1:1:8:0 | <toplevel> |
|
||||
| mjs-files/require-from-js.js:2:12:2:39 | require ... me.js') | ./depend-on-me.js | mjs-files/depend-on-me.mjs:1:1:7:1 | <toplevel> |
|
||||
| mjs-files/require-from-js.js:3:12:3:40 | require ... e.mjs') | ./depend-on-me.mjs | mjs-files/depend-on-me.mjs:1:1:7:1 | <toplevel> |
|
||||
| reexport/b.js:1:11:1:24 | require("./a") | ./a | reexport/a.js:1:1:3:1 | <toplevel> |
|
||||
| sub/c.js:1:1:1:15 | require('../a') | ../a | a.js:1:1:14:0 | <toplevel> |
|
||||
|
||||
@@ -26,7 +26,7 @@ query predicate require(Require r) { any() }
|
||||
|
||||
query predicate requireImport(Require r, string path, Module mod) {
|
||||
exists(string fullpath, string prefix |
|
||||
fullpath = r.getImportedPath().getValue() and
|
||||
fullpath = r.getImportedPathString() and
|
||||
sourceLocationPrefix(prefix) and
|
||||
path = fullpath.replaceAll(prefix, "") and
|
||||
mod = r.getImportedModule()
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
import f from '~/a'; // $ importTarget=BabelRootImport/tst1/a.js
|
||||
@@ -0,0 +1 @@
|
||||
import f from '~/a'; // $ importTarget=BabelRootImport/tst1/a.js
|
||||
@@ -0,0 +1,2 @@
|
||||
import g from '~/b.js'; // $ importTarget=BabelRootImport/tst2/src/js/b.js
|
||||
import f from '#/a'; // $ importTarget=BabelRootImport/tst1/a.js
|
||||
@@ -0,0 +1 @@
|
||||
import greeting from '~/b.js'; // $ importTarget=BabelRootImport/tst3/src/b.js
|
||||
@@ -0,0 +1,2 @@
|
||||
import g from '~/b.js'; // $ importTarget=BabelRootImport/tst4/src/js/b.js
|
||||
import f from '#/a'; // $ importTarget=BabelRootImport/tst1/a.js
|
||||
@@ -0,0 +1 @@
|
||||
export const x = "file.ts"
|
||||
@@ -0,0 +1 @@
|
||||
export const x = "index.ts";
|
||||
@@ -0,0 +1 @@
|
||||
export const x = "nostar.ts"
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1,47 @@
|
||||
// Relative import
|
||||
import "../base/lib/file"; // $ importTarget=BaseUrl/base/lib/file.ts
|
||||
import "../base/lib/file.ts"; // $ importTarget=BaseUrl/base/lib/file.ts
|
||||
import "../base/lib/file.js"; // $ importTarget=BaseUrl/base/lib/file.ts
|
||||
import "../base/lib"; // $ importTarget=BaseUrl/base/lib/index.ts
|
||||
import "../base/lib/index"; // $ importTarget=BaseUrl/base/lib/index.ts
|
||||
import "../base/lib/index.ts"; // $ importTarget=BaseUrl/base/lib/index.ts
|
||||
import "../base/lib/index.js"; // $ importTarget=BaseUrl/base/lib/index.ts
|
||||
|
||||
// Import relative to baseUrl
|
||||
import "lib/file"; // $ importTarget=BaseUrl/base/lib/file.ts
|
||||
import "lib/file.ts"; // $ importTarget=BaseUrl/base/lib/file.ts
|
||||
import "lib/file.js"; // $ importTarget=BaseUrl/base/lib/file.ts
|
||||
import "lib"; // $ importTarget=BaseUrl/base/lib/index.ts
|
||||
import "lib/index"; // $ importTarget=BaseUrl/base/lib/index.ts
|
||||
import "lib/index.ts"; // $ importTarget=BaseUrl/base/lib/index.ts
|
||||
import "lib/index.js"; // $ importTarget=BaseUrl/base/lib/index.ts
|
||||
|
||||
// Import matching "@/*" path mapping
|
||||
import "@/file"; // $ importTarget=BaseUrl/base/lib/file.ts
|
||||
import "@/file.ts"; // $ importTarget=BaseUrl/base/lib/file.ts
|
||||
import "@/file.js"; // $ importTarget=BaseUrl/base/lib/file.ts
|
||||
import "@"; // $ importTarget=BaseUrl/base/lib/nostar.ts
|
||||
import "@/index"; // $ importTarget=BaseUrl/base/lib/index.ts
|
||||
import "@/index.ts"; // $ importTarget=BaseUrl/base/lib/index.ts
|
||||
import "@/index.js"; // $ importTarget=BaseUrl/base/lib/index.ts
|
||||
|
||||
// Import matching "#/*" path mapping
|
||||
import "#/file"; // $ importTarget=BaseUrl/base/lib/file.ts
|
||||
import "#/file.ts"; // $ importTarget=BaseUrl/base/lib/file.ts
|
||||
import "#/file.js"; // $ importTarget=BaseUrl/base/lib/file.ts
|
||||
import "#/index"; // $ importTarget=BaseUrl/base/lib/index.ts
|
||||
import "#/index.ts"; // $ importTarget=BaseUrl/base/lib/index.ts
|
||||
import "#/index.js"; // $ importTarget=BaseUrl/base/lib/index.ts
|
||||
|
||||
// Import matching "^lib*" path mapping
|
||||
import "^lib/file"; // $ importTarget=BaseUrl/base/lib/file.ts
|
||||
import "^lib2/file"; // $ importTarget=BaseUrl/base/lib2/file.ts
|
||||
|
||||
// Import matching "@/*.xyz" path mapping. Note that this is not actually supported by TypeScript.
|
||||
import "@/file.xyz";
|
||||
import "@/file.ts.xyz";
|
||||
import "@/file.js.xyz";
|
||||
import "@.xyz";
|
||||
import "@/index.xyz";
|
||||
import "@/index.ts.xyz";
|
||||
import "@/index.js.xyz";
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"include": ["."],
|
||||
"compilerOptions": {
|
||||
// Path mappings are resolved relative to baseUrl
|
||||
"baseUrl": "./base",
|
||||
"paths": {
|
||||
"@/*": ["lib/*"],
|
||||
"#/*": ["./lib/*"], // relative paths here are also resolved from the base url
|
||||
"^lib*": ["./lib*"], // must end with "*" but not necessarily "/*"
|
||||
"@/*.xyz": ["lib/*"],
|
||||
"@": ["lib/nostar.ts"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
import '..'; // $ importTarget=Basic/index.ts
|
||||
import '../'; // $ importTarget=Basic/index.ts
|
||||
import './..'; // $ importTarget=Basic/index.ts
|
||||
import './../'; // $ importTarget=Basic/index.ts
|
||||
@@ -0,0 +1 @@
|
||||
import './Subdir/sub'; // $ importTarget=Basic/Subdir/sub.ts
|
||||
5
javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/split.d.ts
vendored
Normal file
5
javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/split.d.ts
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
// Type declaration for dual-module
|
||||
export interface DualType {
|
||||
prop: string;
|
||||
}
|
||||
export declare function helper(): DualType;
|
||||
@@ -0,0 +1,4 @@
|
||||
// Implementation of dual-module
|
||||
export function helper() {
|
||||
return { prop: "implementation" };
|
||||
}
|
||||
1
javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/typescript.d.ts
vendored
Normal file
1
javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/typescript.d.ts
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export const x: number;
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1,7 @@
|
||||
import "../lib/split"; // $ importTarget=DeclarationFiles/lib/split.d.ts importTarget=DeclarationFiles/lib/split.js
|
||||
import "../lib/split.js"; // $ importTarget=DeclarationFiles/lib/split.js importTarget=DeclarationFiles/lib/split.d.ts
|
||||
import "../lib/split.d.ts"; // $ importTarget=DeclarationFiles/lib/split.d.ts
|
||||
|
||||
import "../lib/typescript"; // $ importTarget=DeclarationFiles/lib/typescript.ts
|
||||
import "../lib/typescript.js"; // $ importTarget=DeclarationFiles/lib/typescript.ts
|
||||
import "../lib/typescript.d.ts"; // $ importTarget=DeclarationFiles/lib/typescript.d.ts
|
||||
@@ -0,0 +1,15 @@
|
||||
// Test for imports using __dirname
|
||||
const path = require('path');
|
||||
|
||||
require(__dirname + '/target.js'); // $ importTarget=DirnameImports/target.js
|
||||
require(__dirname + '/nested/target.js'); // $ importTarget=DirnameImports/nested/target.js
|
||||
require(__dirname + '/../import-packages.ts'); // $ importTarget=import-packages.ts
|
||||
require(__dirname + '/' + 'target.js'); // $ importTarget=DirnameImports/target.js
|
||||
|
||||
require(path.join(__dirname, 'target.js')); // $ importTarget=DirnameImports/target.js
|
||||
require(path.resolve(__dirname, 'target.js')); // $ importTarget=DirnameImports/target.js
|
||||
|
||||
const subdir = 'nested';
|
||||
require(__dirname + '/' + subdir + '/target.js'); // $ importTarget=DirnameImports/nested/target.js
|
||||
|
||||
require(`${__dirname}/target.js`); // $ importTarget=DirnameImports/target.js
|
||||
@@ -0,0 +1,2 @@
|
||||
// Nested target file for __dirname imports
|
||||
module.exports = { name: 'nested-target' };
|
||||
@@ -0,0 +1,2 @@
|
||||
// Target file for __dirname imports
|
||||
module.exports = { name: 'target' };
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"main": "./dist/src/foo.js"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
// The baseUrl is interpreted relative to this file, not the "root" tsconfig.json file extending it.
|
||||
"baseUrl": "./../",
|
||||
"paths": {
|
||||
"@/*": ["lib/*"],
|
||||
"@/*.xyz": ["lib/*"],
|
||||
"@": ["lib/nostar.ts"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export const x = "file.ts"
|
||||
@@ -0,0 +1 @@
|
||||
export const x = "index.ts";
|
||||
@@ -0,0 +1 @@
|
||||
export const x = "nostar.ts"
|
||||
@@ -0,0 +1,35 @@
|
||||
// Relative import
|
||||
import "../lib/file"; // $ importTarget=Extended/lib/file.ts
|
||||
import "../lib/file.ts"; // $ importTarget=Extended/lib/file.ts
|
||||
import "../lib/file.js"; // $ importTarget=Extended/lib/file.ts
|
||||
import "../lib"; // $ importTarget=Extended/lib/index.ts
|
||||
import "../lib/index"; // $ importTarget=Extended/lib/index.ts
|
||||
import "../lib/index.ts"; // $ importTarget=Extended/lib/index.ts
|
||||
import "../lib/index.js"; // $ importTarget=Extended/lib/index.ts
|
||||
|
||||
// Import relative to baseUrl
|
||||
import "lib/file"; // $ importTarget=Extended/lib/file.ts
|
||||
import "lib/file.ts"; // $ importTarget=Extended/lib/file.ts
|
||||
import "lib/file.js"; // $ importTarget=Extended/lib/file.ts
|
||||
import "lib"; // $ importTarget=Extended/lib/index.ts
|
||||
import "lib/index"; // $ importTarget=Extended/lib/index.ts
|
||||
import "lib/index.ts"; // $ importTarget=Extended/lib/index.ts
|
||||
import "lib/index.js"; // $ importTarget=Extended/lib/index.ts
|
||||
|
||||
// Import matching "@/*" path mapping
|
||||
import "@/file"; // $ importTarget=Extended/lib/file.ts
|
||||
import "@/file.ts"; // $ importTarget=Extended/lib/file.ts
|
||||
import "@/file.js"; // $ importTarget=Extended/lib/file.ts
|
||||
import "@"; // $ importTarget=Extended/lib/nostar.ts
|
||||
import "@/index"; // $ importTarget=Extended/lib/index.ts
|
||||
import "@/index.ts"; // $ importTarget=Extended/lib/index.ts
|
||||
import "@/index.js"; // $ importTarget=Extended/lib/index.ts
|
||||
|
||||
// Import matching "@/*.xyz" path mapping. Note that this is not actually supported by TypeScript.
|
||||
import "@/file.xyz";
|
||||
import "@/file.ts.xyz";
|
||||
import "@/file.js.xyz";
|
||||
import "@.xyz";
|
||||
import "@/index.xyz";
|
||||
import "@/index.ts.xyz";
|
||||
import "@/index.js.xyz";
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"include": ["."],
|
||||
"extends": "./base/tsconfig.base.json"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1,10 @@
|
||||
import "@/both" // $ importTarget=Fallback/lib1/both.ts SPURIOUS: importTarget=Fallback/lib2/both.ts
|
||||
import "@/only1" // $ importTarget=Fallback/lib1/only1.ts
|
||||
import "@/only2" // $ importTarget=Fallback/lib2/only2.ts
|
||||
import "@/differentExtension" // $ importTarget=Fallback/lib2/differentExtension.ts SPURIOUS: importTarget=Fallback/lib1/differentExtension.js
|
||||
import "@/differentExtension.js" // $ importTarget=Fallback/lib2/differentExtension.ts SPURIOUS: importTarget=Fallback/lib1/differentExtension.js
|
||||
|
||||
import "@/subdir" // $ importTarget=Fallback/lib1/subdir/index.ts SPURIOUS: importTarget=Fallback/lib2/subdir/index.ts
|
||||
import "@/subdir/both" // $ importTarget=Fallback/lib1/subdir/both.ts SPURIOUS: importTarget=Fallback/lib2/subdir/both.ts
|
||||
import "@/subdir/only1" // $ importTarget=Fallback/lib1/subdir/only1.ts
|
||||
import "@/subdir/only2" // $ importTarget=Fallback/lib2/subdir/only2.ts
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"include": ["."],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"@/*": ["./lib1/*", "./lib2/*"],
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
/**
|
||||
* @providesModule jsdoc-provided-module/foo/bar/baz
|
||||
*/
|
||||
|
||||
export const x = 1;
|
||||
@@ -0,0 +1 @@
|
||||
import 'jsdoc-provided-module/foo/bar/baz'; // $ importTarget=JSDocProvide/lib.js
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@example/main-is-folder",
|
||||
"main": "dist"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"main": "dist/library.min.js"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1 @@
|
||||
export const x = "file.ts"
|
||||
@@ -0,0 +1 @@
|
||||
export const x = "index.ts";
|
||||
@@ -0,0 +1 @@
|
||||
export const x = "nostar.ts"
|
||||
@@ -0,0 +1,35 @@
|
||||
// Relative import
|
||||
import "../lib/file"; // $ importTarget=NoBaseUrl/lib/file.ts
|
||||
import "../lib/file.ts"; // $ importTarget=NoBaseUrl/lib/file.ts
|
||||
import "../lib/file.js"; // $ importTarget=NoBaseUrl/lib/file.ts
|
||||
import "../lib"; // $ importTarget=NoBaseUrl/lib/index.ts
|
||||
import "../lib/index"; // $ importTarget=NoBaseUrl/lib/index.ts
|
||||
import "../lib/index.ts"; // $ importTarget=NoBaseUrl/lib/index.ts
|
||||
import "../lib/index.js"; // $ importTarget=NoBaseUrl/lib/index.ts
|
||||
|
||||
// Import unresolvable due to missing baseUrl
|
||||
import "lib/file";
|
||||
import "lib/file.ts";
|
||||
import "lib/file.js";
|
||||
import "lib";
|
||||
import "lib/index";
|
||||
import "lib/index.ts";
|
||||
import "lib/index.js";
|
||||
|
||||
// Import matching "@/*" path mapping
|
||||
import "@/file"; // $ importTarget=NoBaseUrl/lib/file.ts
|
||||
import "@/file.ts"; // $ importTarget=NoBaseUrl/lib/file.ts
|
||||
import "@/file.js"; // $ importTarget=NoBaseUrl/lib/file.ts
|
||||
import "@"; // $ importTarget=NoBaseUrl/lib/nostar.ts
|
||||
import "@/index"; // $ importTarget=NoBaseUrl/lib/index.ts
|
||||
import "@/index.ts"; // $ importTarget=NoBaseUrl/lib/index.ts
|
||||
import "@/index.js"; // $ importTarget=NoBaseUrl/lib/index.ts
|
||||
|
||||
// Import matching "@/*.xyz" path mapping. Note that this is not actually supported by TypeScript.
|
||||
import "@/file.xyz";
|
||||
import "@/file.ts.xyz";
|
||||
import "@/file.js.xyz";
|
||||
import "@.xyz";
|
||||
import "@/index.xyz";
|
||||
import "@/index.ts.xyz";
|
||||
import "@/index.js.xyz";
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"include": ["."],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"@/*": ["./lib/*"],
|
||||
"@/*.xyz": ["./lib/*"],
|
||||
"@": ["./lib/nostar.ts"]
|
||||
}
|
||||
}
|
||||
}
|
||||
1
javascript/ql/test/library-tests/PathResolution/NodeModules/node_modules/foo/index.js
generated
vendored
Normal file
1
javascript/ql/test/library-tests/PathResolution/NodeModules/node_modules/foo/index.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
3
javascript/ql/test/library-tests/PathResolution/NodeModules/node_modules/foo/package.json
generated
vendored
Normal file
3
javascript/ql/test/library-tests/PathResolution/NodeModules/node_modules/foo/package.json
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"name": "foo"
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
import 'foo'; // $ importTarget=NodeModules/node_modules/foo/index.js
|
||||
import 'bar'; // $ SPURIOUS: importTarget=NodeModules/subfolder/node_modules/bar/index.js // Technically would not resolve
|
||||
1
javascript/ql/test/library-tests/PathResolution/NodeModules/subfolder/node_modules/bar/index.js
generated
vendored
Normal file
1
javascript/ql/test/library-tests/PathResolution/NodeModules/subfolder/node_modules/bar/index.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
3
javascript/ql/test/library-tests/PathResolution/NodeModules/subfolder/node_modules/bar/package.json
generated
vendored
Normal file
3
javascript/ql/test/library-tests/PathResolution/NodeModules/subfolder/node_modules/bar/package.json
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"name": "bar"
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
import 'foo'; // $ importTarget=NodeModules/node_modules/foo/index.js
|
||||
import 'bar'; // $ importTarget=NodeModules/subfolder/node_modules/bar/index.js
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"name": "@example/package-guess1"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "@example/package-guess2",
|
||||
"files": [
|
||||
"./blah/stuff.js"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"name": "@example/package-with-index-file"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"name": "@example/package-with-exports",
|
||||
"exports": {
|
||||
".": {
|
||||
"default": "./main.js"
|
||||
},
|
||||
"./fake-file": {
|
||||
"default": "./fake-file-impl.js"
|
||||
},
|
||||
"./star/*": {
|
||||
"default": "./star-impl/*"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@example/package-with-main",
|
||||
"main": "./main.js"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@example/package-with-main-ext",
|
||||
"main": "./lib/main.js"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@example/package-with-module-main",
|
||||
"module": "./main.js"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"include": ["my-root","my-tests"],
|
||||
"compilerOptions": {
|
||||
"rootDir": "./my-root",
|
||||
"outDir": "./my-out",
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export const x = 1;
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"include": ["src"],
|
||||
"compilerOptions": {
|
||||
// Use unusual name to test independently of naming heuristics
|
||||
"outDir": "./customOutDir"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
import './PackageWithMain/main'; // $ importTarget=PackageWithMain/main.js
|
||||
import '@example/package-with-main'; // $ importTarget=PackageWithMain/main.js
|
||||
|
||||
import './PackageWithModuleMain'; // $ importTarget=PackageWithModuleMain/main.js
|
||||
import '@example/package-with-module-main'; // $ importTarget=PackageWithModuleMain/main.js
|
||||
|
||||
import './PackageWithExports'; // Not a valid import
|
||||
import './PackageWithExports/fake-file'; // Not a valid import
|
||||
import './PackageWithExports/star/foo'; // Not a valid import
|
||||
import '@example/package-with-exports'; // $ importTarget=PackageWithExports/main.js
|
||||
import '@example/package-with-exports/fake-file'; // $ importTarget=PackageWithExports/fake-file-impl.js
|
||||
import '@example/package-with-exports/star/foo'; // $ importTarget=PackageWithExports/star-impl/foo.js
|
||||
|
||||
import './PackageIndexFile'; // $ importTarget=PackageIndexFile/index.js
|
||||
import '@example/package-with-index-file'; // $ importTarget=PackageIndexFile/index.js
|
||||
|
||||
import './PackageGuess1'; // $ importTarget=PackageGuess1/src/index.ts
|
||||
import '@example/package-guess1'; // $ importTarget=PackageGuess1/src/index.ts
|
||||
|
||||
import './PackageGuess2'; // $ importTarget=PackageGuess2/blah/stuff.ts
|
||||
import '@example/package-guess2'; // $ importTarget=PackageGuess2/blah/stuff.ts
|
||||
|
||||
import './PackageWithMainExt'; // $ importTarget=PackageWithMainExt/lib/main.ts
|
||||
import '@example/package-with-main-ext'; // $ importTarget=PackageWithMainExt/lib/main.ts
|
||||
|
||||
import './TSConfigOutDir/customOutDir/foo.js'; // $ importTarget=TSConfigOutDir/src/foo.ts
|
||||
|
||||
import './MainIsFolder'; // $ importTarget=MainIsFolder/src/index.ts
|
||||
import '@example/main-is-folder'; // $ importTarget=MainIsFolder/src/index.ts
|
||||
|
||||
import './DistContainsSrc'; // $ importTarget=DistContainsSrc/src/foo.ts
|
||||
|
||||
import './MinifiedMain'; // $ importTarget=MinifiedMain/src/library.ts
|
||||
|
||||
import './RootDir/my-out/foo.js'; // $ importTarget=RootDir/my-root/foo.ts
|
||||
132
javascript/ql/test/library-tests/PathResolution/test.expected
Normal file
132
javascript/ql/test/library-tests/PathResolution/test.expected
Normal file
@@ -0,0 +1,132 @@
|
||||
| BabelRootImport/tst1/index.js:1:1:1:20 | import f from '~/a'; | BabelRootImport/tst1/a.js |
|
||||
| BabelRootImport/tst1/nested/tst.js:1:1:1:20 | import f from '~/a'; | BabelRootImport/tst1/a.js |
|
||||
| BabelRootImport/tst2/index.js:1:1:1:23 | import ... /b.js'; | BabelRootImport/tst2/src/js/b.js |
|
||||
| BabelRootImport/tst2/index.js:2:1:2:20 | import f from '#/a'; | BabelRootImport/tst1/a.js |
|
||||
| BabelRootImport/tst3/index.js:1:1:1:30 | import ... /b.js'; | BabelRootImport/tst3/src/b.js |
|
||||
| BabelRootImport/tst4/index.js:1:1:1:23 | import ... /b.js'; | BabelRootImport/tst4/src/js/b.js |
|
||||
| BabelRootImport/tst4/index.js:2:1:2:20 | import f from '#/a'; | BabelRootImport/tst1/a.js |
|
||||
| BaseUrl/src/main.ts:2:1:2:26 | import ... /file"; | BaseUrl/base/lib/file.ts |
|
||||
| BaseUrl/src/main.ts:3:1:3:29 | import ... le.ts"; | BaseUrl/base/lib/file.ts |
|
||||
| BaseUrl/src/main.ts:4:1:4:29 | import ... le.js"; | BaseUrl/base/lib/file.ts |
|
||||
| BaseUrl/src/main.ts:5:1:5:21 | import ... e/lib"; | BaseUrl/base/lib/index.ts |
|
||||
| BaseUrl/src/main.ts:6:1:6:27 | import ... index"; | BaseUrl/base/lib/index.ts |
|
||||
| BaseUrl/src/main.ts:7:1:7:30 | import ... ex.ts"; | BaseUrl/base/lib/index.ts |
|
||||
| BaseUrl/src/main.ts:8:1:8:30 | import ... ex.js"; | BaseUrl/base/lib/index.ts |
|
||||
| BaseUrl/src/main.ts:11:1:11:18 | import "lib/file"; | BaseUrl/base/lib/file.ts |
|
||||
| BaseUrl/src/main.ts:12:1:12:21 | import ... le.ts"; | BaseUrl/base/lib/file.ts |
|
||||
| BaseUrl/src/main.ts:13:1:13:21 | import ... le.js"; | BaseUrl/base/lib/file.ts |
|
||||
| BaseUrl/src/main.ts:14:1:14:13 | import "lib"; | BaseUrl/base/lib/index.ts |
|
||||
| BaseUrl/src/main.ts:15:1:15:19 | import "lib/index"; | BaseUrl/base/lib/index.ts |
|
||||
| BaseUrl/src/main.ts:16:1:16:22 | import ... ex.ts"; | BaseUrl/base/lib/index.ts |
|
||||
| BaseUrl/src/main.ts:17:1:17:22 | import ... ex.js"; | BaseUrl/base/lib/index.ts |
|
||||
| BaseUrl/src/main.ts:20:1:20:16 | import "@/file"; | BaseUrl/base/lib/file.ts |
|
||||
| BaseUrl/src/main.ts:21:1:21:19 | import "@/file.ts"; | BaseUrl/base/lib/file.ts |
|
||||
| BaseUrl/src/main.ts:22:1:22:19 | import "@/file.js"; | BaseUrl/base/lib/file.ts |
|
||||
| BaseUrl/src/main.ts:23:1:23:11 | import "@"; | BaseUrl/base/lib/nostar.ts |
|
||||
| BaseUrl/src/main.ts:24:1:24:17 | import "@/index"; | BaseUrl/base/lib/index.ts |
|
||||
| BaseUrl/src/main.ts:25:1:25:20 | import "@/index.ts"; | BaseUrl/base/lib/index.ts |
|
||||
| BaseUrl/src/main.ts:26:1:26:20 | import "@/index.js"; | BaseUrl/base/lib/index.ts |
|
||||
| BaseUrl/src/main.ts:29:1:29:16 | import "#/file"; | BaseUrl/base/lib/file.ts |
|
||||
| BaseUrl/src/main.ts:30:1:30:19 | import "#/file.ts"; | BaseUrl/base/lib/file.ts |
|
||||
| BaseUrl/src/main.ts:31:1:31:19 | import "#/file.js"; | BaseUrl/base/lib/file.ts |
|
||||
| BaseUrl/src/main.ts:32:1:32:17 | import "#/index"; | BaseUrl/base/lib/index.ts |
|
||||
| BaseUrl/src/main.ts:33:1:33:20 | import "#/index.ts"; | BaseUrl/base/lib/index.ts |
|
||||
| BaseUrl/src/main.ts:34:1:34:20 | import "#/index.js"; | BaseUrl/base/lib/index.ts |
|
||||
| BaseUrl/src/main.ts:37:1:37:19 | import "^lib/file"; | BaseUrl/base/lib/file.ts |
|
||||
| BaseUrl/src/main.ts:38:1:38:20 | import "^lib2/file"; | BaseUrl/base/lib2/file.ts |
|
||||
| Basic/Subdir/sub.ts:1:1:1:12 | import '..'; | Basic/index.ts |
|
||||
| Basic/Subdir/sub.ts:2:1:2:13 | import '../'; | Basic/index.ts |
|
||||
| Basic/Subdir/sub.ts:3:1:3:14 | import './..'; | Basic/index.ts |
|
||||
| Basic/Subdir/sub.ts:4:1:4:15 | import './../'; | Basic/index.ts |
|
||||
| Basic/index.ts:1:1:1:22 | import ... r/sub'; | Basic/Subdir/sub.ts |
|
||||
| DeclarationFiles/src/main.ts:1:1:1:22 | import ... split"; | DeclarationFiles/lib/split.d.ts |
|
||||
| DeclarationFiles/src/main.ts:1:1:1:22 | import ... split"; | DeclarationFiles/lib/split.js |
|
||||
| DeclarationFiles/src/main.ts:2:1:2:25 | import ... it.js"; | DeclarationFiles/lib/split.d.ts |
|
||||
| DeclarationFiles/src/main.ts:2:1:2:25 | import ... it.js"; | DeclarationFiles/lib/split.js |
|
||||
| DeclarationFiles/src/main.ts:3:1:3:27 | import ... .d.ts"; | DeclarationFiles/lib/split.d.ts |
|
||||
| DeclarationFiles/src/main.ts:5:1:5:27 | import ... cript"; | DeclarationFiles/lib/typescript.ts |
|
||||
| DeclarationFiles/src/main.ts:6:1:6:30 | import ... pt.js"; | DeclarationFiles/lib/typescript.ts |
|
||||
| DeclarationFiles/src/main.ts:7:1:7:32 | import ... .d.ts"; | DeclarationFiles/lib/typescript.d.ts |
|
||||
| DirnameImports/main.js:4:1:4:33 | require ... et.js') | DirnameImports/target.js |
|
||||
| DirnameImports/main.js:5:1:5:40 | require ... et.js') | DirnameImports/nested/target.js |
|
||||
| DirnameImports/main.js:6:1:6:45 | require ... es.ts') | import-packages.ts |
|
||||
| DirnameImports/main.js:7:1:7:38 | require ... et.js') | DirnameImports/target.js |
|
||||
| DirnameImports/main.js:9:1:9:42 | require ... t.js')) | DirnameImports/target.js |
|
||||
| DirnameImports/main.js:10:1:10:45 | require ... t.js')) | DirnameImports/target.js |
|
||||
| DirnameImports/main.js:13:1:13:48 | require ... et.js') | DirnameImports/nested/target.js |
|
||||
| DirnameImports/main.js:15:1:15:33 | require ... et.js`) | DirnameImports/target.js |
|
||||
| Extended/src/main.ts:2:1:2:21 | import ... /file"; | Extended/lib/file.ts |
|
||||
| Extended/src/main.ts:3:1:3:24 | import ... le.ts"; | Extended/lib/file.ts |
|
||||
| Extended/src/main.ts:4:1:4:24 | import ... le.js"; | Extended/lib/file.ts |
|
||||
| Extended/src/main.ts:5:1:5:16 | import "../lib"; | Extended/lib/index.ts |
|
||||
| Extended/src/main.ts:6:1:6:22 | import ... index"; | Extended/lib/index.ts |
|
||||
| Extended/src/main.ts:7:1:7:25 | import ... ex.ts"; | Extended/lib/index.ts |
|
||||
| Extended/src/main.ts:8:1:8:25 | import ... ex.js"; | Extended/lib/index.ts |
|
||||
| Extended/src/main.ts:11:1:11:18 | import "lib/file"; | Extended/lib/file.ts |
|
||||
| Extended/src/main.ts:12:1:12:21 | import ... le.ts"; | Extended/lib/file.ts |
|
||||
| Extended/src/main.ts:13:1:13:21 | import ... le.js"; | Extended/lib/file.ts |
|
||||
| Extended/src/main.ts:14:1:14:13 | import "lib"; | Extended/lib/index.ts |
|
||||
| Extended/src/main.ts:15:1:15:19 | import "lib/index"; | Extended/lib/index.ts |
|
||||
| Extended/src/main.ts:16:1:16:22 | import ... ex.ts"; | Extended/lib/index.ts |
|
||||
| Extended/src/main.ts:17:1:17:22 | import ... ex.js"; | Extended/lib/index.ts |
|
||||
| Extended/src/main.ts:20:1:20:16 | import "@/file"; | Extended/lib/file.ts |
|
||||
| Extended/src/main.ts:21:1:21:19 | import "@/file.ts"; | Extended/lib/file.ts |
|
||||
| Extended/src/main.ts:22:1:22:19 | import "@/file.js"; | Extended/lib/file.ts |
|
||||
| Extended/src/main.ts:23:1:23:11 | import "@"; | Extended/lib/nostar.ts |
|
||||
| Extended/src/main.ts:24:1:24:17 | import "@/index"; | Extended/lib/index.ts |
|
||||
| Extended/src/main.ts:25:1:25:20 | import "@/index.ts"; | Extended/lib/index.ts |
|
||||
| Extended/src/main.ts:26:1:26:20 | import "@/index.js"; | Extended/lib/index.ts |
|
||||
| Fallback/src/main.ts:1:1:1:15 | import "@/both" | Fallback/lib1/both.ts |
|
||||
| Fallback/src/main.ts:1:1:1:15 | import "@/both" | Fallback/lib2/both.ts |
|
||||
| Fallback/src/main.ts:2:1:2:16 | import "@/only1" | Fallback/lib1/only1.ts |
|
||||
| Fallback/src/main.ts:3:1:3:16 | import "@/only2" | Fallback/lib2/only2.ts |
|
||||
| Fallback/src/main.ts:4:1:4:29 | import ... ension" | Fallback/lib1/differentExtension.js |
|
||||
| Fallback/src/main.ts:4:1:4:29 | import ... ension" | Fallback/lib2/differentExtension.ts |
|
||||
| Fallback/src/main.ts:5:1:5:32 | import ... ion.js" | Fallback/lib1/differentExtension.js |
|
||||
| Fallback/src/main.ts:5:1:5:32 | import ... ion.js" | Fallback/lib2/differentExtension.ts |
|
||||
| Fallback/src/main.ts:7:1:7:17 | import "@/subdir" | Fallback/lib1/subdir/index.ts |
|
||||
| Fallback/src/main.ts:7:1:7:17 | import "@/subdir" | Fallback/lib2/subdir/index.ts |
|
||||
| Fallback/src/main.ts:8:1:8:22 | import ... r/both" | Fallback/lib1/subdir/both.ts |
|
||||
| Fallback/src/main.ts:8:1:8:22 | import ... r/both" | Fallback/lib2/subdir/both.ts |
|
||||
| Fallback/src/main.ts:9:1:9:23 | import ... /only1" | Fallback/lib1/subdir/only1.ts |
|
||||
| Fallback/src/main.ts:10:1:10:23 | import ... /only2" | Fallback/lib2/subdir/only2.ts |
|
||||
| JSDocProvide/main.js:1:1:1:43 | import ... r/baz'; | JSDocProvide/lib.js |
|
||||
| NoBaseUrl/src/main.ts:2:1:2:21 | import ... /file"; | NoBaseUrl/lib/file.ts |
|
||||
| NoBaseUrl/src/main.ts:3:1:3:24 | import ... le.ts"; | NoBaseUrl/lib/file.ts |
|
||||
| NoBaseUrl/src/main.ts:4:1:4:24 | import ... le.js"; | NoBaseUrl/lib/file.ts |
|
||||
| NoBaseUrl/src/main.ts:5:1:5:16 | import "../lib"; | NoBaseUrl/lib/index.ts |
|
||||
| NoBaseUrl/src/main.ts:6:1:6:22 | import ... index"; | NoBaseUrl/lib/index.ts |
|
||||
| NoBaseUrl/src/main.ts:7:1:7:25 | import ... ex.ts"; | NoBaseUrl/lib/index.ts |
|
||||
| NoBaseUrl/src/main.ts:8:1:8:25 | import ... ex.js"; | NoBaseUrl/lib/index.ts |
|
||||
| NoBaseUrl/src/main.ts:20:1:20:16 | import "@/file"; | NoBaseUrl/lib/file.ts |
|
||||
| NoBaseUrl/src/main.ts:21:1:21:19 | import "@/file.ts"; | NoBaseUrl/lib/file.ts |
|
||||
| NoBaseUrl/src/main.ts:22:1:22:19 | import "@/file.js"; | NoBaseUrl/lib/file.ts |
|
||||
| NoBaseUrl/src/main.ts:23:1:23:11 | import "@"; | NoBaseUrl/lib/nostar.ts |
|
||||
| NoBaseUrl/src/main.ts:24:1:24:17 | import "@/index"; | NoBaseUrl/lib/index.ts |
|
||||
| NoBaseUrl/src/main.ts:25:1:25:20 | import "@/index.ts"; | NoBaseUrl/lib/index.ts |
|
||||
| NoBaseUrl/src/main.ts:26:1:26:20 | import "@/index.js"; | NoBaseUrl/lib/index.ts |
|
||||
| NodeModules/outermain.ts:1:1:1:13 | import 'foo'; | NodeModules/node_modules/foo/index.js |
|
||||
| NodeModules/outermain.ts:2:1:2:13 | import 'bar'; | NodeModules/subfolder/node_modules/bar/index.js |
|
||||
| NodeModules/subfolder/src/main.ts:1:1:1:13 | import 'foo'; | NodeModules/node_modules/foo/index.js |
|
||||
| NodeModules/subfolder/src/main.ts:2:1:2:13 | import 'bar'; | NodeModules/subfolder/node_modules/bar/index.js |
|
||||
| import-packages.ts:1:1:1:32 | import ... /main'; | PackageWithMain/main.js |
|
||||
| import-packages.ts:2:1:2:36 | import ... -main'; | PackageWithMain/main.js |
|
||||
| import-packages.ts:4:1:4:33 | import ... eMain'; | PackageWithModuleMain/main.js |
|
||||
| import-packages.ts:5:1:5:43 | import ... -main'; | PackageWithModuleMain/main.js |
|
||||
| import-packages.ts:10:1:10:39 | import ... ports'; | PackageWithExports/main.js |
|
||||
| import-packages.ts:11:1:11:49 | import ... -file'; | PackageWithExports/fake-file-impl.js |
|
||||
| import-packages.ts:12:1:12:48 | import ... r/foo'; | PackageWithExports/star-impl/foo.js |
|
||||
| import-packages.ts:14:1:14:28 | import ... xFile'; | PackageIndexFile/index.js |
|
||||
| import-packages.ts:15:1:15:42 | import ... -file'; | PackageIndexFile/index.js |
|
||||
| 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:20:1:20:25 | import ... uess2'; | PackageGuess2/blah/stuff.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 |
|
||||
| import-packages.ts:26:1:26:46 | import ... oo.js'; | TSConfigOutDir/src/foo.ts |
|
||||
| import-packages.ts:28:1:28:24 | import ... older'; | MainIsFolder/src/index.ts |
|
||||
| import-packages.ts:29:1:29:33 | import ... older'; | MainIsFolder/src/index.ts |
|
||||
| import-packages.ts:31:1:31:27 | import ... nsSrc'; | DistContainsSrc/src/foo.ts |
|
||||
| import-packages.ts:33:1:33:24 | import ... dMain'; | MinifiedMain/src/library.ts |
|
||||
| import-packages.ts:35:1:35:33 | import ... oo.js'; | RootDir/my-root/foo.ts |
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user