diff --git a/src/compiler/moduleNameResolver.ts b/src/compiler/moduleNameResolver.ts index 1c5f22e25bd9c..d89b7597014cc 100644 --- a/src/compiler/moduleNameResolver.ts +++ b/src/compiler/moduleNameResolver.ts @@ -2646,7 +2646,7 @@ function loadModuleFromExports(scope: PackageJsonInfo, extensions: Extensions, s } function loadModuleFromImports(extensions: Extensions, moduleName: string, directory: string, state: ModuleResolutionState, cache: ModuleResolutionCache | undefined, redirectedReference: ResolvedProjectReference | undefined): SearchResult { - if (moduleName === "#" || startsWith(moduleName, "#/")) { + if (moduleName === "#") { if (state.traceEnabled) { trace(state.host, Diagnostics.Invalid_import_specifier_0_has_no_possible_resolutions, moduleName); } diff --git a/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node16).errors.txt b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node16).errors.txt new file mode 100644 index 0000000000000..011bfd053655f --- /dev/null +++ b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node16).errors.txt @@ -0,0 +1,51 @@ +index.cts(2,21): error TS1479: The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("#/foo.js")' call instead. +index.cts(3,21): error TS1479: The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("#/features/bar.js")' call instead. +index.cts(4,21): error TS1479: The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("#/nested/deep/baz.js")' call instead. + + +==== package.json (0 errors) ==== + { + "name": "package", + "private": true, + "type": "module", + "imports": { + "#/*": "./src/*" + } + } +==== src/foo.ts (0 errors) ==== + export const foo = "foo"; +==== src/features/bar.ts (0 errors) ==== + export const bar = "bar"; +==== src/nested/deep/baz.ts (0 errors) ==== + export const baz = "baz"; +==== index.ts (0 errors) ==== + // esm format file + import { foo } from "#/foo.js"; + import { bar } from "#/features/bar.js"; + import { baz } from "#/nested/deep/baz.js"; + foo; + bar; + baz; +==== index.mts (0 errors) ==== + // esm format file + import { foo } from "#/foo.js"; + import { bar } from "#/features/bar.js"; + import { baz } from "#/nested/deep/baz.js"; + foo; + bar; + baz; +==== index.cts (3 errors) ==== + // cjs format file + import { foo } from "#/foo.js"; + ~~~~~~~~~~ +!!! error TS1479: The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("#/foo.js")' call instead. + import { bar } from "#/features/bar.js"; + ~~~~~~~~~~~~~~~~~~~ +!!! error TS1479: The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("#/features/bar.js")' call instead. + import { baz } from "#/nested/deep/baz.js"; + ~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS1479: The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("#/nested/deep/baz.js")' call instead. + foo; + bar; + baz; + \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node16).js b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node16).js new file mode 100644 index 0000000000000..bcf39b25bc97d --- /dev/null +++ b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node16).js @@ -0,0 +1,89 @@ +//// [tests/cases/conformance/node/nodeModulesPackageImportsRootWildcard.ts] //// + +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", + "imports": { + "#/*": "./src/*" + } +} +//// [foo.ts] +export const foo = "foo"; +//// [bar.ts] +export const bar = "bar"; +//// [baz.ts] +export const baz = "baz"; +//// [index.ts] +// esm format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; +//// [index.mts] +// esm format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; +//// [index.cts] +// cjs format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; + + +//// [foo.js] +export const foo = "foo"; +//// [bar.js] +export const bar = "bar"; +//// [baz.js] +export const baz = "baz"; +//// [index.js] +// esm format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; +//// [index.mjs] +// esm format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const foo_js_1 = require("#/foo.js"); +const bar_js_1 = require("#/features/bar.js"); +const baz_js_1 = require("#/nested/deep/baz.js"); +foo_js_1.foo; +bar_js_1.bar; +baz_js_1.baz; + + +//// [foo.d.ts] +export declare const foo = "foo"; +//// [bar.d.ts] +export declare const bar = "bar"; +//// [baz.d.ts] +export declare const baz = "baz"; +//// [index.d.ts] +export {}; +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; diff --git a/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node16).symbols b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node16).symbols new file mode 100644 index 0000000000000..e4aebad35fd9e --- /dev/null +++ b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node16).symbols @@ -0,0 +1,74 @@ +//// [tests/cases/conformance/node/nodeModulesPackageImportsRootWildcard.ts] //// + +=== src/foo.ts === +export const foo = "foo"; +>foo : Symbol(foo, Decl(foo.ts, 0, 12)) + +=== src/features/bar.ts === +export const bar = "bar"; +>bar : Symbol(bar, Decl(bar.ts, 0, 12)) + +=== src/nested/deep/baz.ts === +export const baz = "baz"; +>baz : Symbol(baz, Decl(baz.ts, 0, 12)) + +=== index.ts === +// esm format file +import { foo } from "#/foo.js"; +>foo : Symbol(foo, Decl(index.ts, 1, 8)) + +import { bar } from "#/features/bar.js"; +>bar : Symbol(bar, Decl(index.ts, 2, 8)) + +import { baz } from "#/nested/deep/baz.js"; +>baz : Symbol(baz, Decl(index.ts, 3, 8)) + +foo; +>foo : Symbol(foo, Decl(index.ts, 1, 8)) + +bar; +>bar : Symbol(bar, Decl(index.ts, 2, 8)) + +baz; +>baz : Symbol(baz, Decl(index.ts, 3, 8)) + +=== index.mts === +// esm format file +import { foo } from "#/foo.js"; +>foo : Symbol(foo, Decl(index.mts, 1, 8)) + +import { bar } from "#/features/bar.js"; +>bar : Symbol(bar, Decl(index.mts, 2, 8)) + +import { baz } from "#/nested/deep/baz.js"; +>baz : Symbol(baz, Decl(index.mts, 3, 8)) + +foo; +>foo : Symbol(foo, Decl(index.mts, 1, 8)) + +bar; +>bar : Symbol(bar, Decl(index.mts, 2, 8)) + +baz; +>baz : Symbol(baz, Decl(index.mts, 3, 8)) + +=== index.cts === +// cjs format file +import { foo } from "#/foo.js"; +>foo : Symbol(foo, Decl(index.cts, 1, 8)) + +import { bar } from "#/features/bar.js"; +>bar : Symbol(bar, Decl(index.cts, 2, 8)) + +import { baz } from "#/nested/deep/baz.js"; +>baz : Symbol(baz, Decl(index.cts, 3, 8)) + +foo; +>foo : Symbol(foo, Decl(index.cts, 1, 8)) + +bar; +>bar : Symbol(bar, Decl(index.cts, 2, 8)) + +baz; +>baz : Symbol(baz, Decl(index.cts, 3, 8)) + diff --git a/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node16).trace.json b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node16).trace.json new file mode 100644 index 0000000000000..ce2392cc8ed1f --- /dev/null +++ b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node16).trace.json @@ -0,0 +1,195 @@ +[ + "File '/.src/src/package.json' does not exist.", + "Found 'package.json' at '/.src/package.json'.", + "File '/.src/src/features/package.json' does not exist.", + "File '/.src/src/package.json' does not exist according to earlier cached lookups.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "File '/.src/src/nested/deep/package.json' does not exist.", + "File '/.src/src/nested/package.json' does not exist.", + "File '/.src/src/package.json' does not exist according to earlier cached lookups.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "======== Resolving module '#/foo.js' from '/.src/index.ts'. ========", + "Module resolution kind is not specified, using 'Node16'.", + "Resolving in ESM mode with conditions 'import', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/foo.js'.", + "File name '/.src/src/foo.js' has a '.js' extension - stripping it.", + "File '/.src/src/foo.ts' exists - use it as a name resolution result.", + "======== Module name '#/foo.js' was successfully resolved to '/.src/src/foo.ts'. ========", + "======== Resolving module '#/features/bar.js' from '/.src/index.ts'. ========", + "Module resolution kind is not specified, using 'Node16'.", + "Resolving in ESM mode with conditions 'import', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/features/bar.js'.", + "File name '/.src/src/features/bar.js' has a '.js' extension - stripping it.", + "File '/.src/src/features/bar.ts' exists - use it as a name resolution result.", + "======== Module name '#/features/bar.js' was successfully resolved to '/.src/src/features/bar.ts'. ========", + "======== Resolving module '#/nested/deep/baz.js' from '/.src/index.ts'. ========", + "Module resolution kind is not specified, using 'Node16'.", + "Resolving in ESM mode with conditions 'import', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/nested/deep/baz.js'.", + "File name '/.src/src/nested/deep/baz.js' has a '.js' extension - stripping it.", + "File '/.src/src/nested/deep/baz.ts' exists - use it as a name resolution result.", + "======== Module name '#/nested/deep/baz.js' was successfully resolved to '/.src/src/nested/deep/baz.ts'. ========", + "======== Resolving module '#/foo.js' from '/.src/index.mts'. ========", + "Resolution for module '#/foo.js' was found in cache from location '/.src'.", + "======== Module name '#/foo.js' was successfully resolved to '/.src/src/foo.ts'. ========", + "======== Resolving module '#/features/bar.js' from '/.src/index.mts'. ========", + "Resolution for module '#/features/bar.js' was found in cache from location '/.src'.", + "======== Module name '#/features/bar.js' was successfully resolved to '/.src/src/features/bar.ts'. ========", + "======== Resolving module '#/nested/deep/baz.js' from '/.src/index.mts'. ========", + "Resolution for module '#/nested/deep/baz.js' was found in cache from location '/.src'.", + "======== Module name '#/nested/deep/baz.js' was successfully resolved to '/.src/src/nested/deep/baz.ts'. ========", + "======== Resolving module '#/foo.js' from '/.src/index.cts'. ========", + "Module resolution kind is not specified, using 'Node16'.", + "Resolving in CJS mode with conditions 'require', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/foo.js'.", + "File name '/.src/src/foo.js' has a '.js' extension - stripping it.", + "File '/.src/src/foo.ts' exists - use it as a name resolution result.", + "======== Module name '#/foo.js' was successfully resolved to '/.src/src/foo.ts'. ========", + "======== Resolving module '#/features/bar.js' from '/.src/index.cts'. ========", + "Module resolution kind is not specified, using 'Node16'.", + "Resolving in CJS mode with conditions 'require', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/features/bar.js'.", + "File name '/.src/src/features/bar.js' has a '.js' extension - stripping it.", + "File '/.src/src/features/bar.ts' exists - use it as a name resolution result.", + "======== Module name '#/features/bar.js' was successfully resolved to '/.src/src/features/bar.ts'. ========", + "======== Resolving module '#/nested/deep/baz.js' from '/.src/index.cts'. ========", + "Module resolution kind is not specified, using 'Node16'.", + "Resolving in CJS mode with conditions 'require', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/nested/deep/baz.js'.", + "File name '/.src/src/nested/deep/baz.js' has a '.js' extension - stripping it.", + "File '/.src/src/nested/deep/baz.ts' exists - use it as a name resolution result.", + "======== Module name '#/nested/deep/baz.js' was successfully resolved to '/.src/src/nested/deep/baz.ts'. ========", + "File '/.ts/package.json' does not exist.", + "File '/package.json' does not exist.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups." +] \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node16).types b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node16).types new file mode 100644 index 0000000000000..8bb760005c9f6 --- /dev/null +++ b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node16).types @@ -0,0 +1,101 @@ +//// [tests/cases/conformance/node/nodeModulesPackageImportsRootWildcard.ts] //// + +=== src/foo.ts === +export const foo = "foo"; +>foo : "foo" +> : ^^^^^ +>"foo" : "foo" +> : ^^^^^ + +=== src/features/bar.ts === +export const bar = "bar"; +>bar : "bar" +> : ^^^^^ +>"bar" : "bar" +> : ^^^^^ + +=== src/nested/deep/baz.ts === +export const baz = "baz"; +>baz : "baz" +> : ^^^^^ +>"baz" : "baz" +> : ^^^^^ + +=== index.ts === +// esm format file +import { foo } from "#/foo.js"; +>foo : "foo" +> : ^^^^^ + +import { bar } from "#/features/bar.js"; +>bar : "bar" +> : ^^^^^ + +import { baz } from "#/nested/deep/baz.js"; +>baz : "baz" +> : ^^^^^ + +foo; +>foo : "foo" +> : ^^^^^ + +bar; +>bar : "bar" +> : ^^^^^ + +baz; +>baz : "baz" +> : ^^^^^ + +=== index.mts === +// esm format file +import { foo } from "#/foo.js"; +>foo : "foo" +> : ^^^^^ + +import { bar } from "#/features/bar.js"; +>bar : "bar" +> : ^^^^^ + +import { baz } from "#/nested/deep/baz.js"; +>baz : "baz" +> : ^^^^^ + +foo; +>foo : "foo" +> : ^^^^^ + +bar; +>bar : "bar" +> : ^^^^^ + +baz; +>baz : "baz" +> : ^^^^^ + +=== index.cts === +// cjs format file +import { foo } from "#/foo.js"; +>foo : "foo" +> : ^^^^^ + +import { bar } from "#/features/bar.js"; +>bar : "bar" +> : ^^^^^ + +import { baz } from "#/nested/deep/baz.js"; +>baz : "baz" +> : ^^^^^ + +foo; +>foo : "foo" +> : ^^^^^ + +bar; +>bar : "bar" +> : ^^^^^ + +baz; +>baz : "baz" +> : ^^^^^ + diff --git a/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node18).errors.txt b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node18).errors.txt new file mode 100644 index 0000000000000..011bfd053655f --- /dev/null +++ b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node18).errors.txt @@ -0,0 +1,51 @@ +index.cts(2,21): error TS1479: The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("#/foo.js")' call instead. +index.cts(3,21): error TS1479: The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("#/features/bar.js")' call instead. +index.cts(4,21): error TS1479: The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("#/nested/deep/baz.js")' call instead. + + +==== package.json (0 errors) ==== + { + "name": "package", + "private": true, + "type": "module", + "imports": { + "#/*": "./src/*" + } + } +==== src/foo.ts (0 errors) ==== + export const foo = "foo"; +==== src/features/bar.ts (0 errors) ==== + export const bar = "bar"; +==== src/nested/deep/baz.ts (0 errors) ==== + export const baz = "baz"; +==== index.ts (0 errors) ==== + // esm format file + import { foo } from "#/foo.js"; + import { bar } from "#/features/bar.js"; + import { baz } from "#/nested/deep/baz.js"; + foo; + bar; + baz; +==== index.mts (0 errors) ==== + // esm format file + import { foo } from "#/foo.js"; + import { bar } from "#/features/bar.js"; + import { baz } from "#/nested/deep/baz.js"; + foo; + bar; + baz; +==== index.cts (3 errors) ==== + // cjs format file + import { foo } from "#/foo.js"; + ~~~~~~~~~~ +!!! error TS1479: The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("#/foo.js")' call instead. + import { bar } from "#/features/bar.js"; + ~~~~~~~~~~~~~~~~~~~ +!!! error TS1479: The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("#/features/bar.js")' call instead. + import { baz } from "#/nested/deep/baz.js"; + ~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS1479: The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("#/nested/deep/baz.js")' call instead. + foo; + bar; + baz; + \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node18).js b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node18).js new file mode 100644 index 0000000000000..bcf39b25bc97d --- /dev/null +++ b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node18).js @@ -0,0 +1,89 @@ +//// [tests/cases/conformance/node/nodeModulesPackageImportsRootWildcard.ts] //// + +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", + "imports": { + "#/*": "./src/*" + } +} +//// [foo.ts] +export const foo = "foo"; +//// [bar.ts] +export const bar = "bar"; +//// [baz.ts] +export const baz = "baz"; +//// [index.ts] +// esm format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; +//// [index.mts] +// esm format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; +//// [index.cts] +// cjs format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; + + +//// [foo.js] +export const foo = "foo"; +//// [bar.js] +export const bar = "bar"; +//// [baz.js] +export const baz = "baz"; +//// [index.js] +// esm format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; +//// [index.mjs] +// esm format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const foo_js_1 = require("#/foo.js"); +const bar_js_1 = require("#/features/bar.js"); +const baz_js_1 = require("#/nested/deep/baz.js"); +foo_js_1.foo; +bar_js_1.bar; +baz_js_1.baz; + + +//// [foo.d.ts] +export declare const foo = "foo"; +//// [bar.d.ts] +export declare const bar = "bar"; +//// [baz.d.ts] +export declare const baz = "baz"; +//// [index.d.ts] +export {}; +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; diff --git a/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node18).symbols b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node18).symbols new file mode 100644 index 0000000000000..e4aebad35fd9e --- /dev/null +++ b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node18).symbols @@ -0,0 +1,74 @@ +//// [tests/cases/conformance/node/nodeModulesPackageImportsRootWildcard.ts] //// + +=== src/foo.ts === +export const foo = "foo"; +>foo : Symbol(foo, Decl(foo.ts, 0, 12)) + +=== src/features/bar.ts === +export const bar = "bar"; +>bar : Symbol(bar, Decl(bar.ts, 0, 12)) + +=== src/nested/deep/baz.ts === +export const baz = "baz"; +>baz : Symbol(baz, Decl(baz.ts, 0, 12)) + +=== index.ts === +// esm format file +import { foo } from "#/foo.js"; +>foo : Symbol(foo, Decl(index.ts, 1, 8)) + +import { bar } from "#/features/bar.js"; +>bar : Symbol(bar, Decl(index.ts, 2, 8)) + +import { baz } from "#/nested/deep/baz.js"; +>baz : Symbol(baz, Decl(index.ts, 3, 8)) + +foo; +>foo : Symbol(foo, Decl(index.ts, 1, 8)) + +bar; +>bar : Symbol(bar, Decl(index.ts, 2, 8)) + +baz; +>baz : Symbol(baz, Decl(index.ts, 3, 8)) + +=== index.mts === +// esm format file +import { foo } from "#/foo.js"; +>foo : Symbol(foo, Decl(index.mts, 1, 8)) + +import { bar } from "#/features/bar.js"; +>bar : Symbol(bar, Decl(index.mts, 2, 8)) + +import { baz } from "#/nested/deep/baz.js"; +>baz : Symbol(baz, Decl(index.mts, 3, 8)) + +foo; +>foo : Symbol(foo, Decl(index.mts, 1, 8)) + +bar; +>bar : Symbol(bar, Decl(index.mts, 2, 8)) + +baz; +>baz : Symbol(baz, Decl(index.mts, 3, 8)) + +=== index.cts === +// cjs format file +import { foo } from "#/foo.js"; +>foo : Symbol(foo, Decl(index.cts, 1, 8)) + +import { bar } from "#/features/bar.js"; +>bar : Symbol(bar, Decl(index.cts, 2, 8)) + +import { baz } from "#/nested/deep/baz.js"; +>baz : Symbol(baz, Decl(index.cts, 3, 8)) + +foo; +>foo : Symbol(foo, Decl(index.cts, 1, 8)) + +bar; +>bar : Symbol(bar, Decl(index.cts, 2, 8)) + +baz; +>baz : Symbol(baz, Decl(index.cts, 3, 8)) + diff --git a/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node18).trace.json b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node18).trace.json new file mode 100644 index 0000000000000..ce2392cc8ed1f --- /dev/null +++ b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node18).trace.json @@ -0,0 +1,195 @@ +[ + "File '/.src/src/package.json' does not exist.", + "Found 'package.json' at '/.src/package.json'.", + "File '/.src/src/features/package.json' does not exist.", + "File '/.src/src/package.json' does not exist according to earlier cached lookups.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "File '/.src/src/nested/deep/package.json' does not exist.", + "File '/.src/src/nested/package.json' does not exist.", + "File '/.src/src/package.json' does not exist according to earlier cached lookups.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "======== Resolving module '#/foo.js' from '/.src/index.ts'. ========", + "Module resolution kind is not specified, using 'Node16'.", + "Resolving in ESM mode with conditions 'import', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/foo.js'.", + "File name '/.src/src/foo.js' has a '.js' extension - stripping it.", + "File '/.src/src/foo.ts' exists - use it as a name resolution result.", + "======== Module name '#/foo.js' was successfully resolved to '/.src/src/foo.ts'. ========", + "======== Resolving module '#/features/bar.js' from '/.src/index.ts'. ========", + "Module resolution kind is not specified, using 'Node16'.", + "Resolving in ESM mode with conditions 'import', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/features/bar.js'.", + "File name '/.src/src/features/bar.js' has a '.js' extension - stripping it.", + "File '/.src/src/features/bar.ts' exists - use it as a name resolution result.", + "======== Module name '#/features/bar.js' was successfully resolved to '/.src/src/features/bar.ts'. ========", + "======== Resolving module '#/nested/deep/baz.js' from '/.src/index.ts'. ========", + "Module resolution kind is not specified, using 'Node16'.", + "Resolving in ESM mode with conditions 'import', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/nested/deep/baz.js'.", + "File name '/.src/src/nested/deep/baz.js' has a '.js' extension - stripping it.", + "File '/.src/src/nested/deep/baz.ts' exists - use it as a name resolution result.", + "======== Module name '#/nested/deep/baz.js' was successfully resolved to '/.src/src/nested/deep/baz.ts'. ========", + "======== Resolving module '#/foo.js' from '/.src/index.mts'. ========", + "Resolution for module '#/foo.js' was found in cache from location '/.src'.", + "======== Module name '#/foo.js' was successfully resolved to '/.src/src/foo.ts'. ========", + "======== Resolving module '#/features/bar.js' from '/.src/index.mts'. ========", + "Resolution for module '#/features/bar.js' was found in cache from location '/.src'.", + "======== Module name '#/features/bar.js' was successfully resolved to '/.src/src/features/bar.ts'. ========", + "======== Resolving module '#/nested/deep/baz.js' from '/.src/index.mts'. ========", + "Resolution for module '#/nested/deep/baz.js' was found in cache from location '/.src'.", + "======== Module name '#/nested/deep/baz.js' was successfully resolved to '/.src/src/nested/deep/baz.ts'. ========", + "======== Resolving module '#/foo.js' from '/.src/index.cts'. ========", + "Module resolution kind is not specified, using 'Node16'.", + "Resolving in CJS mode with conditions 'require', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/foo.js'.", + "File name '/.src/src/foo.js' has a '.js' extension - stripping it.", + "File '/.src/src/foo.ts' exists - use it as a name resolution result.", + "======== Module name '#/foo.js' was successfully resolved to '/.src/src/foo.ts'. ========", + "======== Resolving module '#/features/bar.js' from '/.src/index.cts'. ========", + "Module resolution kind is not specified, using 'Node16'.", + "Resolving in CJS mode with conditions 'require', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/features/bar.js'.", + "File name '/.src/src/features/bar.js' has a '.js' extension - stripping it.", + "File '/.src/src/features/bar.ts' exists - use it as a name resolution result.", + "======== Module name '#/features/bar.js' was successfully resolved to '/.src/src/features/bar.ts'. ========", + "======== Resolving module '#/nested/deep/baz.js' from '/.src/index.cts'. ========", + "Module resolution kind is not specified, using 'Node16'.", + "Resolving in CJS mode with conditions 'require', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/nested/deep/baz.js'.", + "File name '/.src/src/nested/deep/baz.js' has a '.js' extension - stripping it.", + "File '/.src/src/nested/deep/baz.ts' exists - use it as a name resolution result.", + "======== Module name '#/nested/deep/baz.js' was successfully resolved to '/.src/src/nested/deep/baz.ts'. ========", + "File '/.ts/package.json' does not exist.", + "File '/package.json' does not exist.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups." +] \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node18).types b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node18).types new file mode 100644 index 0000000000000..8bb760005c9f6 --- /dev/null +++ b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node18).types @@ -0,0 +1,101 @@ +//// [tests/cases/conformance/node/nodeModulesPackageImportsRootWildcard.ts] //// + +=== src/foo.ts === +export const foo = "foo"; +>foo : "foo" +> : ^^^^^ +>"foo" : "foo" +> : ^^^^^ + +=== src/features/bar.ts === +export const bar = "bar"; +>bar : "bar" +> : ^^^^^ +>"bar" : "bar" +> : ^^^^^ + +=== src/nested/deep/baz.ts === +export const baz = "baz"; +>baz : "baz" +> : ^^^^^ +>"baz" : "baz" +> : ^^^^^ + +=== index.ts === +// esm format file +import { foo } from "#/foo.js"; +>foo : "foo" +> : ^^^^^ + +import { bar } from "#/features/bar.js"; +>bar : "bar" +> : ^^^^^ + +import { baz } from "#/nested/deep/baz.js"; +>baz : "baz" +> : ^^^^^ + +foo; +>foo : "foo" +> : ^^^^^ + +bar; +>bar : "bar" +> : ^^^^^ + +baz; +>baz : "baz" +> : ^^^^^ + +=== index.mts === +// esm format file +import { foo } from "#/foo.js"; +>foo : "foo" +> : ^^^^^ + +import { bar } from "#/features/bar.js"; +>bar : "bar" +> : ^^^^^ + +import { baz } from "#/nested/deep/baz.js"; +>baz : "baz" +> : ^^^^^ + +foo; +>foo : "foo" +> : ^^^^^ + +bar; +>bar : "bar" +> : ^^^^^ + +baz; +>baz : "baz" +> : ^^^^^ + +=== index.cts === +// cjs format file +import { foo } from "#/foo.js"; +>foo : "foo" +> : ^^^^^ + +import { bar } from "#/features/bar.js"; +>bar : "bar" +> : ^^^^^ + +import { baz } from "#/nested/deep/baz.js"; +>baz : "baz" +> : ^^^^^ + +foo; +>foo : "foo" +> : ^^^^^ + +bar; +>bar : "bar" +> : ^^^^^ + +baz; +>baz : "baz" +> : ^^^^^ + diff --git a/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node20).js b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node20).js new file mode 100644 index 0000000000000..bcf39b25bc97d --- /dev/null +++ b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node20).js @@ -0,0 +1,89 @@ +//// [tests/cases/conformance/node/nodeModulesPackageImportsRootWildcard.ts] //// + +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", + "imports": { + "#/*": "./src/*" + } +} +//// [foo.ts] +export const foo = "foo"; +//// [bar.ts] +export const bar = "bar"; +//// [baz.ts] +export const baz = "baz"; +//// [index.ts] +// esm format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; +//// [index.mts] +// esm format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; +//// [index.cts] +// cjs format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; + + +//// [foo.js] +export const foo = "foo"; +//// [bar.js] +export const bar = "bar"; +//// [baz.js] +export const baz = "baz"; +//// [index.js] +// esm format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; +//// [index.mjs] +// esm format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const foo_js_1 = require("#/foo.js"); +const bar_js_1 = require("#/features/bar.js"); +const baz_js_1 = require("#/nested/deep/baz.js"); +foo_js_1.foo; +bar_js_1.bar; +baz_js_1.baz; + + +//// [foo.d.ts] +export declare const foo = "foo"; +//// [bar.d.ts] +export declare const bar = "bar"; +//// [baz.d.ts] +export declare const baz = "baz"; +//// [index.d.ts] +export {}; +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; diff --git a/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node20).symbols b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node20).symbols new file mode 100644 index 0000000000000..e4aebad35fd9e --- /dev/null +++ b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node20).symbols @@ -0,0 +1,74 @@ +//// [tests/cases/conformance/node/nodeModulesPackageImportsRootWildcard.ts] //// + +=== src/foo.ts === +export const foo = "foo"; +>foo : Symbol(foo, Decl(foo.ts, 0, 12)) + +=== src/features/bar.ts === +export const bar = "bar"; +>bar : Symbol(bar, Decl(bar.ts, 0, 12)) + +=== src/nested/deep/baz.ts === +export const baz = "baz"; +>baz : Symbol(baz, Decl(baz.ts, 0, 12)) + +=== index.ts === +// esm format file +import { foo } from "#/foo.js"; +>foo : Symbol(foo, Decl(index.ts, 1, 8)) + +import { bar } from "#/features/bar.js"; +>bar : Symbol(bar, Decl(index.ts, 2, 8)) + +import { baz } from "#/nested/deep/baz.js"; +>baz : Symbol(baz, Decl(index.ts, 3, 8)) + +foo; +>foo : Symbol(foo, Decl(index.ts, 1, 8)) + +bar; +>bar : Symbol(bar, Decl(index.ts, 2, 8)) + +baz; +>baz : Symbol(baz, Decl(index.ts, 3, 8)) + +=== index.mts === +// esm format file +import { foo } from "#/foo.js"; +>foo : Symbol(foo, Decl(index.mts, 1, 8)) + +import { bar } from "#/features/bar.js"; +>bar : Symbol(bar, Decl(index.mts, 2, 8)) + +import { baz } from "#/nested/deep/baz.js"; +>baz : Symbol(baz, Decl(index.mts, 3, 8)) + +foo; +>foo : Symbol(foo, Decl(index.mts, 1, 8)) + +bar; +>bar : Symbol(bar, Decl(index.mts, 2, 8)) + +baz; +>baz : Symbol(baz, Decl(index.mts, 3, 8)) + +=== index.cts === +// cjs format file +import { foo } from "#/foo.js"; +>foo : Symbol(foo, Decl(index.cts, 1, 8)) + +import { bar } from "#/features/bar.js"; +>bar : Symbol(bar, Decl(index.cts, 2, 8)) + +import { baz } from "#/nested/deep/baz.js"; +>baz : Symbol(baz, Decl(index.cts, 3, 8)) + +foo; +>foo : Symbol(foo, Decl(index.cts, 1, 8)) + +bar; +>bar : Symbol(bar, Decl(index.cts, 2, 8)) + +baz; +>baz : Symbol(baz, Decl(index.cts, 3, 8)) + diff --git a/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node20).trace.json b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node20).trace.json new file mode 100644 index 0000000000000..4b96b1ff9b901 --- /dev/null +++ b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node20).trace.json @@ -0,0 +1,203 @@ +[ + "File '/.src/src/package.json' does not exist.", + "Found 'package.json' at '/.src/package.json'.", + "File '/.src/src/features/package.json' does not exist.", + "File '/.src/src/package.json' does not exist according to earlier cached lookups.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "File '/.src/src/nested/deep/package.json' does not exist.", + "File '/.src/src/nested/package.json' does not exist.", + "File '/.src/src/package.json' does not exist according to earlier cached lookups.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "======== Resolving module '#/foo.js' from '/.src/index.ts'. ========", + "Module resolution kind is not specified, using 'Node16'.", + "Resolving in ESM mode with conditions 'import', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/foo.js'.", + "File name '/.src/src/foo.js' has a '.js' extension - stripping it.", + "File '/.src/src/foo.ts' exists - use it as a name resolution result.", + "======== Module name '#/foo.js' was successfully resolved to '/.src/src/foo.ts'. ========", + "======== Resolving module '#/features/bar.js' from '/.src/index.ts'. ========", + "Module resolution kind is not specified, using 'Node16'.", + "Resolving in ESM mode with conditions 'import', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/features/bar.js'.", + "File name '/.src/src/features/bar.js' has a '.js' extension - stripping it.", + "File '/.src/src/features/bar.ts' exists - use it as a name resolution result.", + "======== Module name '#/features/bar.js' was successfully resolved to '/.src/src/features/bar.ts'. ========", + "======== Resolving module '#/nested/deep/baz.js' from '/.src/index.ts'. ========", + "Module resolution kind is not specified, using 'Node16'.", + "Resolving in ESM mode with conditions 'import', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/nested/deep/baz.js'.", + "File name '/.src/src/nested/deep/baz.js' has a '.js' extension - stripping it.", + "File '/.src/src/nested/deep/baz.ts' exists - use it as a name resolution result.", + "======== Module name '#/nested/deep/baz.js' was successfully resolved to '/.src/src/nested/deep/baz.ts'. ========", + "======== Resolving module '#/foo.js' from '/.src/index.mts'. ========", + "Resolution for module '#/foo.js' was found in cache from location '/.src'.", + "======== Module name '#/foo.js' was successfully resolved to '/.src/src/foo.ts'. ========", + "======== Resolving module '#/features/bar.js' from '/.src/index.mts'. ========", + "Resolution for module '#/features/bar.js' was found in cache from location '/.src'.", + "======== Module name '#/features/bar.js' was successfully resolved to '/.src/src/features/bar.ts'. ========", + "======== Resolving module '#/nested/deep/baz.js' from '/.src/index.mts'. ========", + "Resolution for module '#/nested/deep/baz.js' was found in cache from location '/.src'.", + "======== Module name '#/nested/deep/baz.js' was successfully resolved to '/.src/src/nested/deep/baz.ts'. ========", + "======== Resolving module '#/foo.js' from '/.src/index.cts'. ========", + "Module resolution kind is not specified, using 'Node16'.", + "Resolving in CJS mode with conditions 'require', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/foo.js'.", + "File name '/.src/src/foo.js' has a '.js' extension - stripping it.", + "File '/.src/src/foo.ts' exists - use it as a name resolution result.", + "======== Module name '#/foo.js' was successfully resolved to '/.src/src/foo.ts'. ========", + "======== Resolving module '#/features/bar.js' from '/.src/index.cts'. ========", + "Module resolution kind is not specified, using 'Node16'.", + "Resolving in CJS mode with conditions 'require', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/features/bar.js'.", + "File name '/.src/src/features/bar.js' has a '.js' extension - stripping it.", + "File '/.src/src/features/bar.ts' exists - use it as a name resolution result.", + "======== Module name '#/features/bar.js' was successfully resolved to '/.src/src/features/bar.ts'. ========", + "======== Resolving module '#/nested/deep/baz.js' from '/.src/index.cts'. ========", + "Module resolution kind is not specified, using 'Node16'.", + "Resolving in CJS mode with conditions 'require', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/nested/deep/baz.js'.", + "File name '/.src/src/nested/deep/baz.js' has a '.js' extension - stripping it.", + "File '/.src/src/nested/deep/baz.ts' exists - use it as a name resolution result.", + "======== Module name '#/nested/deep/baz.js' was successfully resolved to '/.src/src/nested/deep/baz.ts'. ========", + "File '/.ts/package.json' does not exist.", + "File '/package.json' does not exist.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups." +] \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node20).types b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node20).types new file mode 100644 index 0000000000000..8bb760005c9f6 --- /dev/null +++ b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node20).types @@ -0,0 +1,101 @@ +//// [tests/cases/conformance/node/nodeModulesPackageImportsRootWildcard.ts] //// + +=== src/foo.ts === +export const foo = "foo"; +>foo : "foo" +> : ^^^^^ +>"foo" : "foo" +> : ^^^^^ + +=== src/features/bar.ts === +export const bar = "bar"; +>bar : "bar" +> : ^^^^^ +>"bar" : "bar" +> : ^^^^^ + +=== src/nested/deep/baz.ts === +export const baz = "baz"; +>baz : "baz" +> : ^^^^^ +>"baz" : "baz" +> : ^^^^^ + +=== index.ts === +// esm format file +import { foo } from "#/foo.js"; +>foo : "foo" +> : ^^^^^ + +import { bar } from "#/features/bar.js"; +>bar : "bar" +> : ^^^^^ + +import { baz } from "#/nested/deep/baz.js"; +>baz : "baz" +> : ^^^^^ + +foo; +>foo : "foo" +> : ^^^^^ + +bar; +>bar : "bar" +> : ^^^^^ + +baz; +>baz : "baz" +> : ^^^^^ + +=== index.mts === +// esm format file +import { foo } from "#/foo.js"; +>foo : "foo" +> : ^^^^^ + +import { bar } from "#/features/bar.js"; +>bar : "bar" +> : ^^^^^ + +import { baz } from "#/nested/deep/baz.js"; +>baz : "baz" +> : ^^^^^ + +foo; +>foo : "foo" +> : ^^^^^ + +bar; +>bar : "bar" +> : ^^^^^ + +baz; +>baz : "baz" +> : ^^^^^ + +=== index.cts === +// cjs format file +import { foo } from "#/foo.js"; +>foo : "foo" +> : ^^^^^ + +import { bar } from "#/features/bar.js"; +>bar : "bar" +> : ^^^^^ + +import { baz } from "#/nested/deep/baz.js"; +>baz : "baz" +> : ^^^^^ + +foo; +>foo : "foo" +> : ^^^^^ + +bar; +>bar : "bar" +> : ^^^^^ + +baz; +>baz : "baz" +> : ^^^^^ + diff --git a/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=nodenext).js b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=nodenext).js new file mode 100644 index 0000000000000..bcf39b25bc97d --- /dev/null +++ b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=nodenext).js @@ -0,0 +1,89 @@ +//// [tests/cases/conformance/node/nodeModulesPackageImportsRootWildcard.ts] //// + +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", + "imports": { + "#/*": "./src/*" + } +} +//// [foo.ts] +export const foo = "foo"; +//// [bar.ts] +export const bar = "bar"; +//// [baz.ts] +export const baz = "baz"; +//// [index.ts] +// esm format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; +//// [index.mts] +// esm format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; +//// [index.cts] +// cjs format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; + + +//// [foo.js] +export const foo = "foo"; +//// [bar.js] +export const bar = "bar"; +//// [baz.js] +export const baz = "baz"; +//// [index.js] +// esm format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; +//// [index.mjs] +// esm format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const foo_js_1 = require("#/foo.js"); +const bar_js_1 = require("#/features/bar.js"); +const baz_js_1 = require("#/nested/deep/baz.js"); +foo_js_1.foo; +bar_js_1.bar; +baz_js_1.baz; + + +//// [foo.d.ts] +export declare const foo = "foo"; +//// [bar.d.ts] +export declare const bar = "bar"; +//// [baz.d.ts] +export declare const baz = "baz"; +//// [index.d.ts] +export {}; +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; diff --git a/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=nodenext).symbols b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=nodenext).symbols new file mode 100644 index 0000000000000..e4aebad35fd9e --- /dev/null +++ b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=nodenext).symbols @@ -0,0 +1,74 @@ +//// [tests/cases/conformance/node/nodeModulesPackageImportsRootWildcard.ts] //// + +=== src/foo.ts === +export const foo = "foo"; +>foo : Symbol(foo, Decl(foo.ts, 0, 12)) + +=== src/features/bar.ts === +export const bar = "bar"; +>bar : Symbol(bar, Decl(bar.ts, 0, 12)) + +=== src/nested/deep/baz.ts === +export const baz = "baz"; +>baz : Symbol(baz, Decl(baz.ts, 0, 12)) + +=== index.ts === +// esm format file +import { foo } from "#/foo.js"; +>foo : Symbol(foo, Decl(index.ts, 1, 8)) + +import { bar } from "#/features/bar.js"; +>bar : Symbol(bar, Decl(index.ts, 2, 8)) + +import { baz } from "#/nested/deep/baz.js"; +>baz : Symbol(baz, Decl(index.ts, 3, 8)) + +foo; +>foo : Symbol(foo, Decl(index.ts, 1, 8)) + +bar; +>bar : Symbol(bar, Decl(index.ts, 2, 8)) + +baz; +>baz : Symbol(baz, Decl(index.ts, 3, 8)) + +=== index.mts === +// esm format file +import { foo } from "#/foo.js"; +>foo : Symbol(foo, Decl(index.mts, 1, 8)) + +import { bar } from "#/features/bar.js"; +>bar : Symbol(bar, Decl(index.mts, 2, 8)) + +import { baz } from "#/nested/deep/baz.js"; +>baz : Symbol(baz, Decl(index.mts, 3, 8)) + +foo; +>foo : Symbol(foo, Decl(index.mts, 1, 8)) + +bar; +>bar : Symbol(bar, Decl(index.mts, 2, 8)) + +baz; +>baz : Symbol(baz, Decl(index.mts, 3, 8)) + +=== index.cts === +// cjs format file +import { foo } from "#/foo.js"; +>foo : Symbol(foo, Decl(index.cts, 1, 8)) + +import { bar } from "#/features/bar.js"; +>bar : Symbol(bar, Decl(index.cts, 2, 8)) + +import { baz } from "#/nested/deep/baz.js"; +>baz : Symbol(baz, Decl(index.cts, 3, 8)) + +foo; +>foo : Symbol(foo, Decl(index.cts, 1, 8)) + +bar; +>bar : Symbol(bar, Decl(index.cts, 2, 8)) + +baz; +>baz : Symbol(baz, Decl(index.cts, 3, 8)) + diff --git a/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=nodenext).trace.json b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=nodenext).trace.json new file mode 100644 index 0000000000000..0288c73254478 --- /dev/null +++ b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=nodenext).trace.json @@ -0,0 +1,243 @@ +[ + "File '/.src/src/package.json' does not exist.", + "Found 'package.json' at '/.src/package.json'.", + "File '/.src/src/features/package.json' does not exist.", + "File '/.src/src/package.json' does not exist according to earlier cached lookups.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "File '/.src/src/nested/deep/package.json' does not exist.", + "File '/.src/src/nested/package.json' does not exist.", + "File '/.src/src/package.json' does not exist according to earlier cached lookups.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "======== Resolving module '#/foo.js' from '/.src/index.ts'. ========", + "Module resolution kind is not specified, using 'NodeNext'.", + "Resolving in ESM mode with conditions 'import', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/foo.js'.", + "File name '/.src/src/foo.js' has a '.js' extension - stripping it.", + "File '/.src/src/foo.ts' exists - use it as a name resolution result.", + "======== Module name '#/foo.js' was successfully resolved to '/.src/src/foo.ts'. ========", + "======== Resolving module '#/features/bar.js' from '/.src/index.ts'. ========", + "Module resolution kind is not specified, using 'NodeNext'.", + "Resolving in ESM mode with conditions 'import', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/features/bar.js'.", + "File name '/.src/src/features/bar.js' has a '.js' extension - stripping it.", + "File '/.src/src/features/bar.ts' exists - use it as a name resolution result.", + "======== Module name '#/features/bar.js' was successfully resolved to '/.src/src/features/bar.ts'. ========", + "======== Resolving module '#/nested/deep/baz.js' from '/.src/index.ts'. ========", + "Module resolution kind is not specified, using 'NodeNext'.", + "Resolving in ESM mode with conditions 'import', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/nested/deep/baz.js'.", + "File name '/.src/src/nested/deep/baz.js' has a '.js' extension - stripping it.", + "File '/.src/src/nested/deep/baz.ts' exists - use it as a name resolution result.", + "======== Module name '#/nested/deep/baz.js' was successfully resolved to '/.src/src/nested/deep/baz.ts'. ========", + "======== Resolving module '#/foo.js' from '/.src/index.mts'. ========", + "Resolution for module '#/foo.js' was found in cache from location '/.src'.", + "======== Module name '#/foo.js' was successfully resolved to '/.src/src/foo.ts'. ========", + "======== Resolving module '#/features/bar.js' from '/.src/index.mts'. ========", + "Resolution for module '#/features/bar.js' was found in cache from location '/.src'.", + "======== Module name '#/features/bar.js' was successfully resolved to '/.src/src/features/bar.ts'. ========", + "======== Resolving module '#/nested/deep/baz.js' from '/.src/index.mts'. ========", + "Resolution for module '#/nested/deep/baz.js' was found in cache from location '/.src'.", + "======== Module name '#/nested/deep/baz.js' was successfully resolved to '/.src/src/nested/deep/baz.ts'. ========", + "======== Resolving module '#/foo.js' from '/.src/index.cts'. ========", + "Module resolution kind is not specified, using 'NodeNext'.", + "Resolving in CJS mode with conditions 'require', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/foo.js'.", + "File name '/.src/src/foo.js' has a '.js' extension - stripping it.", + "File '/.src/src/foo.ts' exists - use it as a name resolution result.", + "======== Module name '#/foo.js' was successfully resolved to '/.src/src/foo.ts'. ========", + "======== Resolving module '#/features/bar.js' from '/.src/index.cts'. ========", + "Module resolution kind is not specified, using 'NodeNext'.", + "Resolving in CJS mode with conditions 'require', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/features/bar.js'.", + "File name '/.src/src/features/bar.js' has a '.js' extension - stripping it.", + "File '/.src/src/features/bar.ts' exists - use it as a name resolution result.", + "======== Module name '#/features/bar.js' was successfully resolved to '/.src/src/features/bar.ts'. ========", + "======== Resolving module '#/nested/deep/baz.js' from '/.src/index.cts'. ========", + "Module resolution kind is not specified, using 'NodeNext'.", + "Resolving in CJS mode with conditions 'require', 'types', 'node'.", + "File '/.src/package.json' exists according to earlier cached lookups.", + "Using 'imports' subpath '#/*' with target './src/nested/deep/baz.js'.", + "File name '/.src/src/nested/deep/baz.js' has a '.js' extension - stripping it.", + "File '/.src/src/nested/deep/baz.ts' exists - use it as a name resolution result.", + "======== Module name '#/nested/deep/baz.js' was successfully resolved to '/.src/src/nested/deep/baz.ts'. ========", + "File '/.ts/package.json' does not exist.", + "File '/package.json' does not exist.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File '/.ts/package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups." +] \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=nodenext).types b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=nodenext).types new file mode 100644 index 0000000000000..8bb760005c9f6 --- /dev/null +++ b/tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=nodenext).types @@ -0,0 +1,101 @@ +//// [tests/cases/conformance/node/nodeModulesPackageImportsRootWildcard.ts] //// + +=== src/foo.ts === +export const foo = "foo"; +>foo : "foo" +> : ^^^^^ +>"foo" : "foo" +> : ^^^^^ + +=== src/features/bar.ts === +export const bar = "bar"; +>bar : "bar" +> : ^^^^^ +>"bar" : "bar" +> : ^^^^^ + +=== src/nested/deep/baz.ts === +export const baz = "baz"; +>baz : "baz" +> : ^^^^^ +>"baz" : "baz" +> : ^^^^^ + +=== index.ts === +// esm format file +import { foo } from "#/foo.js"; +>foo : "foo" +> : ^^^^^ + +import { bar } from "#/features/bar.js"; +>bar : "bar" +> : ^^^^^ + +import { baz } from "#/nested/deep/baz.js"; +>baz : "baz" +> : ^^^^^ + +foo; +>foo : "foo" +> : ^^^^^ + +bar; +>bar : "bar" +> : ^^^^^ + +baz; +>baz : "baz" +> : ^^^^^ + +=== index.mts === +// esm format file +import { foo } from "#/foo.js"; +>foo : "foo" +> : ^^^^^ + +import { bar } from "#/features/bar.js"; +>bar : "bar" +> : ^^^^^ + +import { baz } from "#/nested/deep/baz.js"; +>baz : "baz" +> : ^^^^^ + +foo; +>foo : "foo" +> : ^^^^^ + +bar; +>bar : "bar" +> : ^^^^^ + +baz; +>baz : "baz" +> : ^^^^^ + +=== index.cts === +// cjs format file +import { foo } from "#/foo.js"; +>foo : "foo" +> : ^^^^^ + +import { bar } from "#/features/bar.js"; +>bar : "bar" +> : ^^^^^ + +import { baz } from "#/nested/deep/baz.js"; +>baz : "baz" +> : ^^^^^ + +foo; +>foo : "foo" +> : ^^^^^ + +bar; +>bar : "bar" +> : ^^^^^ + +baz; +>baz : "baz" +> : ^^^^^ + diff --git a/tests/cases/conformance/node/nodeModulesPackageImportsRootWildcard.ts b/tests/cases/conformance/node/nodeModulesPackageImportsRootWildcard.ts new file mode 100644 index 0000000000000..69e5d506512ff --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesPackageImportsRootWildcard.ts @@ -0,0 +1,42 @@ +// @module: node16,node18,node20,nodenext +// @declaration: true +// @traceResolution: true +// @filename: package.json +{ + "name": "package", + "private": true, + "type": "module", + "imports": { + "#/*": "./src/*" + } +} +// @filename: src/foo.ts +export const foo = "foo"; +// @filename: src/features/bar.ts +export const bar = "bar"; +// @filename: src/nested/deep/baz.ts +export const baz = "baz"; +// @filename: index.ts +// esm format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; +// @filename: index.mts +// esm format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; +// @filename: index.cts +// cjs format file +import { foo } from "#/foo.js"; +import { bar } from "#/features/bar.js"; +import { baz } from "#/nested/deep/baz.js"; +foo; +bar; +baz; diff --git a/tests/cases/fourslash/importCompletionsPackageJsonImportsPatternRootWildcard.ts b/tests/cases/fourslash/importCompletionsPackageJsonImportsPatternRootWildcard.ts new file mode 100644 index 0000000000000..34d036e3b622b --- /dev/null +++ b/tests/cases/fourslash/importCompletionsPackageJsonImportsPatternRootWildcard.ts @@ -0,0 +1,25 @@ +/// + +// @module: node18 + +// @Filename: /package.json +//// { +//// "imports": { +//// "#/*": "./src/*" +//// } +//// } + +// @Filename: /src/something.ts +//// export function something(name: string): any; + +// @Filename: /src/features/bar.ts +//// export function bar(): any; + +// @Filename: /a.ts +//// import {} from "#//*1*/"; + +verify.completions({ + marker: ["1"], + exact: ["something.js", "features"], + isNewIdentifierLocation: true, +});