From cb0124ab344088dddbcb63420c711ea27107b3e3 Mon Sep 17 00:00:00 2001 From: Mihir Seth Date: Tue, 14 Jul 2026 14:17:44 -0400 Subject: [PATCH] fix(scripts): skip overrides that are already direct bitgo deps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When generating npm-shrinkwrap.json, flat overrides for packages that bitgo already declares as direct dependencies are redundant — npm pins those versions directly and the override adds no value. Filter them out so the shrinkwrap's overrides block only covers transitive-only pins. Nested overrides (scoped to a parent package) are always kept since their top-level key is a context scope, not the pinned package itself. TICKET: WCN-604 --- scripts/generate-bitgo-shrinkwrap.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/scripts/generate-bitgo-shrinkwrap.ts b/scripts/generate-bitgo-shrinkwrap.ts index c69096478e..0c67467e83 100644 --- a/scripts/generate-bitgo-shrinkwrap.ts +++ b/scripts/generate-bitgo-shrinkwrap.ts @@ -59,7 +59,17 @@ async function main() { isolatedPackageJson.dependencies = Object.fromEntries( Object.entries(bitgoPackageJson.dependencies ?? {}).filter(([name]) => !name.startsWith('@bitgo/')) ); - isolatedPackageJson.overrides = rootPackageJson.overrides; + const directDeps = new Set(Object.keys(bitgoPackageJson.dependencies ?? {})); + const filteredOverrides = Object.fromEntries( + Object.entries(rootPackageJson.overrides as Record).filter( + ([name, value]) => typeof value !== 'string' || !directDeps.has(name) + ) + ); + const filteredCount = Object.keys(rootPackageJson.overrides).length - Object.keys(filteredOverrides).length; + if (filteredCount > 0) { + console.log(`Skipping ${filteredCount} override(s) already pinned as direct bitgo dependencies.`); + } + isolatedPackageJson.overrides = filteredOverrides; fs.writeFileSync(path.join(tempDir, 'package.json'), JSON.stringify(isolatedPackageJson, null, 2) + '\n');