@@ -220,10 +220,24 @@ export class WorkspaceManifestFactory {
220220 // → package never installed.
221221 const depResolverEntry = component . get ( DependencyResolverAspect . id ) ;
222222 const explicitPolicy = depResolverEntry ?. config ?. policy ?? { } ;
223- const componentExplicitPkgs = new Set ( [
224- ...Object . keys ( explicitPolicy . dependencies ?? { } ) ,
225- ...Object . keys ( explicitPolicy . devDependencies ?? { } ) ,
226- ...Object . keys ( explicitPolicy . peerDependencies ?? { } ) ,
223+ const nonRemovedEntryNames = ( policySection ?: Record < string , unknown > ) : string [ ] => {
224+ if ( ! policySection ) return [ ] ;
225+ return Object . entries ( policySection )
226+ . filter ( ( [ , val ] ) => {
227+ // Skip explicit removals expressed as "-" or as removal objects.
228+ if ( val === '-' ) return false ;
229+ if ( val && typeof val === 'object' ) {
230+ const v = val as { version ?: string ; remove ?: boolean } ;
231+ if ( v . version === '-' || v . remove ) return false ;
232+ }
233+ return true ;
234+ } )
235+ . map ( ( [ name ] ) => name ) ;
236+ } ;
237+ const componentExplicitPkgs = new Set < string > ( [
238+ ...nonRemovedEntryNames ( explicitPolicy . dependencies ) ,
239+ ...nonRemovedEntryNames ( explicitPolicy . devDependencies ) ,
240+ ...nonRemovedEntryNames ( explicitPolicy . peerDependencies ) ,
227241 ] ) ;
228242
229243 const usedPeerDependencies = pickBy ( defaultPeerDependencies , ( _val , pkgName ) => {
0 commit comments