diff --git a/.pnp.cjs b/.pnp.cjs index a3b386ec87fd..d9ba211bb545 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -8137,6 +8137,23 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@types/lodash", "npm:4.14.168"] ], "linkType": "HARD", + }], + ["npm:4.14.172", { + "packageLocation": "./.yarn/cache/@types-lodash-npm-4.14.172-e52063c461-5fc51ea40d.zip/node_modules/@types/lodash/", + "packageDependencies": [ + ["@types/lodash", "npm:4.14.172"] + ], + "linkType": "HARD", + }] + ]], + ["@types/lodash-es", [ + ["npm:4.17.4", { + "packageLocation": "./.yarn/cache/@types-lodash-es-npm-4.17.4-feabb24815-acffe910e8.zip/node_modules/@types/lodash-es/", + "packageDependencies": [ + ["@types/lodash-es", "npm:4.17.4"], + ["@types/lodash", "npm:4.14.172"] + ], + "linkType": "HARD", }] ]], ["@types/marked", [ @@ -10595,6 +10612,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/@yarnpkg-plugin-compat-virtual-4a5b883314/1/packages/plugin-compat/", "packageDependencies": [ ["@yarnpkg/plugin-compat", "virtual:16f564b30745199d7e07a913c371ce0c078051290c6e08b972f07b3f1bf057a6993fe67b7c6ee24931d0b1dd67e1274151612081733a79b961dd8336318fdfb9#workspace:packages/plugin-compat"], + ["@types/lodash-es", "npm:4.17.4"], ["@types/resolve", "npm:1.17.1"], ["@types/yarnpkg__core", null], ["@types/yarnpkg__plugin-patch", null], @@ -10619,6 +10637,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/@yarnpkg-plugin-compat-virtual-b605a03544/1/packages/plugin-compat/", "packageDependencies": [ ["@yarnpkg/plugin-compat", "virtual:1c3d72c6b31a8950672985f8306a860ecc80c9a006aac95cf4a7ba13a6e7cc4e095e37186a53c9909e9efe97bc0f7f570a74b3879778e2a2356cdcf407120006#workspace:packages/plugin-compat"], + ["@types/lodash-es", "npm:4.17.4"], ["@types/resolve", "npm:1.17.1"], ["@types/yarnpkg__core", null], ["@types/yarnpkg__plugin-patch", null], @@ -10643,6 +10662,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/@yarnpkg-plugin-compat-virtual-b70719e1cf/1/packages/plugin-compat/", "packageDependencies": [ ["@yarnpkg/plugin-compat", "virtual:2351fd5ac4f83ad35b714d8af9fdeea561ada341d529d0dba50742dd5735dc3750df6c56bd680e14833d5b987026a1eab6618211ea0ef1b34b727372b3c77bc9#workspace:packages/plugin-compat"], + ["@types/lodash-es", "npm:4.17.4"], ["@types/resolve", "npm:1.17.1"], ["@types/yarnpkg__core", null], ["@types/yarnpkg__plugin-patch", null], @@ -10667,6 +10687,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/@yarnpkg-plugin-compat-virtual-6f8b2cc32d/1/packages/plugin-compat/", "packageDependencies": [ ["@yarnpkg/plugin-compat", "virtual:45a6746f11cef24d8db9429cc5650999571e6bb77a8cfb3904a0e832f542be35246ec490516049308ca15b8678eb03bcf394199e514a8145ec32731af7235c91#workspace:packages/plugin-compat"], + ["@types/lodash-es", "npm:4.17.4"], ["@types/resolve", "npm:1.17.1"], ["@types/yarnpkg__core", null], ["@types/yarnpkg__plugin-patch", null], @@ -10691,6 +10712,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/@yarnpkg-plugin-compat-virtual-5fe64685a8/1/packages/plugin-compat/", "packageDependencies": [ ["@yarnpkg/plugin-compat", "virtual:4864d30fc563f2fd1b72a5e3869493c5f50bf38f98ed3886173d80c044d981c3f68220dbf17f2b5fc5b4c5fba7d0af2e003926efe3487086484049f41c449852#workspace:packages/plugin-compat"], + ["@types/lodash-es", "npm:4.17.4"], ["@types/resolve", "npm:1.17.1"], ["@types/yarnpkg__core", null], ["@types/yarnpkg__plugin-patch", null], @@ -10715,6 +10737,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/@yarnpkg-plugin-compat-virtual-adab3602d7/1/packages/plugin-compat/", "packageDependencies": [ ["@yarnpkg/plugin-compat", "virtual:83b7a14498f70e120fb6f455fa263877f0d2954cbb68f3216e842cf37532afa9fe7895f2327708b45ae12ab75df0f3b07ed6e746fa7001bc6460dba7aaf38d31#workspace:packages/plugin-compat"], + ["@types/lodash-es", "npm:4.17.4"], ["@types/resolve", "npm:1.17.1"], ["@types/yarnpkg__core", null], ["@types/yarnpkg__plugin-patch", null], @@ -10739,6 +10762,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/@yarnpkg-plugin-compat-virtual-08fe6ad7a7/1/packages/plugin-compat/", "packageDependencies": [ ["@yarnpkg/plugin-compat", "virtual:a7c38e9a420fd3b408ea245831c2c9f0e880eac64b268fab3219f5f0b1d6015f44b1f92d23aabfc6e980bbbbda00a23e9faa983fb98544fab94119ccd31f2440#workspace:packages/plugin-compat"], + ["@types/lodash-es", "npm:4.17.4"], ["@types/resolve", "npm:1.17.1"], ["@types/yarnpkg__core", null], ["@types/yarnpkg__plugin-patch", null], @@ -10763,6 +10787,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/@yarnpkg-plugin-compat-virtual-4e0e483559/1/packages/plugin-compat/", "packageDependencies": [ ["@yarnpkg/plugin-compat", "virtual:adaf1cec8728346f1bf6a263f1954625a52d60518b8d2084da8a926203282105d2b95fb9da84922062af8d4fc84b8a1c39f220238424024e56f55577bdbc7208#workspace:packages/plugin-compat"], + ["@types/lodash-es", "npm:4.17.4"], ["@types/resolve", "npm:1.17.1"], ["@types/yarnpkg__core", null], ["@types/yarnpkg__plugin-patch", null], @@ -10787,6 +10812,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/@yarnpkg-plugin-compat-virtual-bc7b846a45/1/packages/plugin-compat/", "packageDependencies": [ ["@yarnpkg/plugin-compat", "virtual:b4c0e602e8ac4e01a7b08db41bb5808da767dd1f6802758faa5125fb2423614bb0a8806ee1b30c3a0769f86da15ad37377f5118d93cd93fa48df0008a448fb35#workspace:packages/plugin-compat"], + ["@types/lodash-es", "npm:4.17.4"], ["@types/resolve", "npm:1.17.1"], ["@types/yarnpkg__core", null], ["@types/yarnpkg__plugin-patch", null], @@ -10811,6 +10837,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/@yarnpkg-plugin-compat-virtual-506110722c/1/packages/plugin-compat/", "packageDependencies": [ ["@yarnpkg/plugin-compat", "virtual:c44c4b6360dc34d25da6d32e39622e7e40f36f37b99dc66b6ebbd615fdd49465f496bf10f81b6fa5f71b95443fda61174ad51d2799fc7ca433af9a9666cd0f37#workspace:packages/plugin-compat"], + ["@types/lodash-es", "npm:4.17.4"], ["@types/resolve", "npm:1.17.1"], ["@types/yarnpkg__core", null], ["@types/yarnpkg__plugin-patch", null], @@ -10835,6 +10862,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/@yarnpkg-plugin-compat-virtual-f9d90af7d7/1/packages/plugin-compat/", "packageDependencies": [ ["@yarnpkg/plugin-compat", "virtual:cd2af72718007566941ac9f5a6def4d055c38029c95c3ac065493603e6055c1d77b2f2df752588114932973488b5a566f49b00118e7e12f48aa0798ea38cc15b#workspace:packages/plugin-compat"], + ["@types/lodash-es", "npm:4.17.4"], ["@types/resolve", "npm:1.17.1"], ["@types/yarnpkg__core", null], ["@types/yarnpkg__plugin-patch", null], @@ -10859,6 +10887,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/@yarnpkg-plugin-compat-virtual-9d09146e76/1/packages/plugin-compat/", "packageDependencies": [ ["@yarnpkg/plugin-compat", "virtual:d1d72d9e3903ca8b8d9c23a360395cc764db2689e5992ef9af91c79f03a839db10ec675af9e4c1c8f4842aff1a614eb5b115fcc0afe8256630151ef1252de94b#workspace:packages/plugin-compat"], + ["@types/lodash-es", "npm:4.17.4"], ["@types/resolve", "npm:1.17.1"], ["@types/yarnpkg__core", null], ["@types/yarnpkg__plugin-patch", null], @@ -10883,6 +10912,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/@yarnpkg-plugin-compat-virtual-10001d27b8/1/packages/plugin-compat/", "packageDependencies": [ ["@yarnpkg/plugin-compat", "virtual:f8376ca2bc11738adced76b97627e7eff07ec08f93f5b76caf8d6bd4f78f5ae9c1911cb9d1a0bd256ef3e0601dedeba933acf0d2381588b6513ee81e25626459#workspace:packages/plugin-compat"], + ["@types/lodash-es", "npm:4.17.4"], ["@types/resolve", "npm:1.17.1"], ["@types/yarnpkg__core", null], ["@types/yarnpkg__plugin-patch", null], @@ -10907,6 +10937,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./packages/plugin-compat/", "packageDependencies": [ ["@yarnpkg/plugin-compat", "workspace:packages/plugin-compat"], + ["@types/lodash-es", "npm:4.17.4"], ["@types/resolve", "npm:1.17.1"], ["@yarnpkg/cli", "virtual:f4e4f4a9a0213f122880195b39adaee7de5cb560c1d806ebc8bace6a3124e5b8f820bbb89ebecd4d535caeb6f527d343143210aa405689c118ff2813b78998a0#workspace:packages/yarnpkg-cli"], ["@yarnpkg/core", "workspace:packages/yarnpkg-core"], diff --git a/.yarn/cache/@types-lodash-es-npm-4.17.4-feabb24815-acffe910e8.zip b/.yarn/cache/@types-lodash-es-npm-4.17.4-feabb24815-acffe910e8.zip new file mode 100644 index 000000000000..8b380f660b27 Binary files /dev/null and b/.yarn/cache/@types-lodash-es-npm-4.17.4-feabb24815-acffe910e8.zip differ diff --git a/.yarn/cache/@types-lodash-npm-4.14.172-e52063c461-5fc51ea40d.zip b/.yarn/cache/@types-lodash-npm-4.14.172-e52063c461-5fc51ea40d.zip new file mode 100644 index 000000000000..558cf9ddcb81 Binary files /dev/null and b/.yarn/cache/@types-lodash-npm-4.14.172-e52063c461-5fc51ea40d.zip differ diff --git a/packages/plugin-compat/package.json b/packages/plugin-compat/package.json index cf4e536fcaa4..e73a7e3b690f 100644 --- a/packages/plugin-compat/package.json +++ b/packages/plugin-compat/package.json @@ -8,6 +8,7 @@ "@yarnpkg/plugin-patch": "^3.0.0" }, "devDependencies": { + "@types/lodash-es": "4.17.4", "@types/resolve": "^1.17.1", "@yarnpkg/cli": "workspace:*", "@yarnpkg/core": "workspace:*", diff --git a/packages/plugin-compat/typescript-tests/similar-basename.ts b/packages/plugin-compat/typescript-tests/similar-basename.ts new file mode 100644 index 000000000000..8ccfa946cd80 --- /dev/null +++ b/packages/plugin-compat/typescript-tests/similar-basename.ts @@ -0,0 +1,19 @@ +// Test for https://github.com/yarnpkg/berry/issues/3058 +// Fixed by https://github.com/merceyz/TypeScript/commit/98866a5a740b487c20046d4ffaa36aa1f202dde9 + +// The PnP patch returned the packageLocation with a trailing `/` which +// caused TypeScript to calculate the `subModuleName` incorrectly[1]. +// This caused different files where only the first character of their +// basename was different to end up with the same packageIdKey[2]. +// In this test the affected files were +// @types/lodash-es/find.d.ts -> @types/lodash-es/ind.d.ts@4.17.4 +// @types/lodash-es/bind.d.ts -> @types/lodash-es/ind.d.ts@4.17.4 +// +// 1: https://github.com/microsoft/TypeScript/blob/98866a5a740b487c20046d4ffaa36aa1f202dde9/src/compiler/moduleNameResolver.ts#L20 +// 2: https://github.com/arcanis/TypeScript/blob/36225c32609137d29008e9d3ecf48c6f51456eb5/src/compiler/program.ts#L2625 + +import {find} from 'lodash-es'; + +find([``], () => true); + +// This test is tested by typechecking the repository diff --git a/yarn.lock b/yarn.lock index 10917df9c192..9c5911b368c0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4238,6 +4238,22 @@ __metadata: languageName: node linkType: hard +"@types/lodash-es@npm:4.17.4": + version: 4.17.4 + resolution: "@types/lodash-es@npm:4.17.4" + dependencies: + "@types/lodash": "*" + checksum: acffe910e8cffe475b854d74f4372549ec700ac00d9ed885fd85ec34c3f9af1a262bf667000ea9126dc39a05a75f64593d8a5f312cfd7d90e91294d458be08a7 + languageName: node + linkType: hard + +"@types/lodash@npm:*": + version: 4.14.172 + resolution: "@types/lodash@npm:4.14.172" + checksum: 5fc51ea40d7e455bd1c760bcc60c9e81f82d85988666d4d4969bd8311367c63bbf1fe2be48755ba87836710e45fff94014ec164ebe6ccaa72815014981152434 + languageName: node + linkType: hard + "@types/lodash@npm:^4.14.136, @types/lodash@npm:^4.14.165, @types/lodash@npm:^4.14.92": version: 4.14.168 resolution: "@types/lodash@npm:4.14.168" @@ -5618,6 +5634,7 @@ __metadata: version: 0.0.0-use.local resolution: "@yarnpkg/plugin-compat@workspace:packages/plugin-compat" dependencies: + "@types/lodash-es": 4.17.4 "@types/resolve": ^1.17.1 "@yarnpkg/cli": "workspace:*" "@yarnpkg/core": "workspace:*"