From d1cdf65b106e1bcb3a2b324c013f908c12d6368f Mon Sep 17 00:00:00 2001 From: David Sherret Date: Fri, 6 Jan 2023 12:57:52 -0500 Subject: fix(npm): handle declaration file resolution where packages incorrectly define "types" last in "exports" (#17290) Closes #17279 --- .../types-exports-subpaths/1.0.0/dist/entry-a.d.ts | 1 + .../@denotest/types-exports-subpaths/1.0.0/dist/entry-a.js | 3 +++ .../types-exports-subpaths/1.0.0/dist/entry-c.d.ts | 1 - .../@denotest/types-exports-subpaths/1.0.0/dist/entry-c.js | 3 --- .../@denotest/types-exports-subpaths/1.0.0/entry-b.d.ts | 2 -- .../types-exports-subpaths/1.0.0/entry-import.d.ts | 1 + .../@denotest/types-exports-subpaths/1.0.0/entry-import.js | 0 .../types-exports-subpaths/1.0.0/entry-js-only.js | 0 .../types-exports-subpaths/1.0.0/entry-types.d.ts | 1 + .../@denotest/types-exports-subpaths/1.0.0/package.json | 14 +++++++++----- 10 files changed, 15 insertions(+), 11 deletions(-) create mode 100644 cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/dist/entry-a.d.ts create mode 100644 cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/dist/entry-a.js delete mode 100644 cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/dist/entry-c.d.ts delete mode 100644 cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/dist/entry-c.js delete mode 100644 cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/entry-b.d.ts create mode 100644 cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/entry-import.d.ts create mode 100644 cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/entry-import.js create mode 100644 cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/entry-js-only.js create mode 100644 cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/entry-types.d.ts (limited to 'cli/tests/testdata/npm/registry') diff --git a/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/dist/entry-a.d.ts b/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/dist/entry-a.d.ts new file mode 100644 index 000000000..f49faf22f --- /dev/null +++ b/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/dist/entry-a.d.ts @@ -0,0 +1 @@ +export function entryA(): 12; diff --git a/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/dist/entry-a.js b/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/dist/entry-a.js new file mode 100644 index 000000000..070b1ccbd --- /dev/null +++ b/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/dist/entry-a.js @@ -0,0 +1,3 @@ +export function entryC() { + return 12; +} diff --git a/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/dist/entry-c.d.ts b/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/dist/entry-c.d.ts deleted file mode 100644 index e18f8b551..000000000 --- a/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/dist/entry-c.d.ts +++ /dev/null @@ -1 +0,0 @@ -export function entryC(): 12; diff --git a/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/dist/entry-c.js b/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/dist/entry-c.js deleted file mode 100644 index 070b1ccbd..000000000 --- a/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/dist/entry-c.js +++ /dev/null @@ -1,3 +0,0 @@ -export function entryC() { - return 12; -} diff --git a/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/entry-b.d.ts b/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/entry-b.d.ts deleted file mode 100644 index 79c9c8434..000000000 --- a/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/entry-b.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -// it will go to this and not the types entry because this entry was first -export function entryB(): string; \ No newline at end of file diff --git a/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/entry-import.d.ts b/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/entry-import.d.ts new file mode 100644 index 000000000..253279e6c --- /dev/null +++ b/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/entry-import.d.ts @@ -0,0 +1 @@ +export function entryImport(): "import"; diff --git a/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/entry-import.js b/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/entry-import.js new file mode 100644 index 000000000..e69de29bb diff --git a/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/entry-js-only.js b/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/entry-js-only.js new file mode 100644 index 000000000..e69de29bb diff --git a/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/entry-types.d.ts b/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/entry-types.d.ts new file mode 100644 index 000000000..bd1ff702f --- /dev/null +++ b/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/entry-types.d.ts @@ -0,0 +1 @@ +export function entryTypes(): "types"; diff --git a/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/package.json b/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/package.json index 35a1cd9f5..169017560 100644 --- a/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/package.json +++ b/cli/tests/testdata/npm/registry/@denotest/types-exports-subpaths/1.0.0/package.json @@ -8,12 +8,16 @@ }, "import": "./dist/client.mjs" }, - "./entry-b": { - "import": "./entry-b.d.ts", - "types": "./dist/entry-b-wrong.d.ts" + "./entry-import": { + "import": "./entry-import.d.ts", + "types": "./entry-types.d.ts" }, - "./entry-c": { - "import": "./dist/entry-c.js" + "./entry-types-last-no-declaration-before": { + "import": "./entry-js-only.js", + "types": "./entry-types.d.ts" + }, + "./entry-a": { + "import": "./dist/entry-a.js" } } } -- cgit v1.2.3