@@ -375,6 +375,12 @@ function addTransitiveDeps(sbom, metadata, packageId, ignoredDeps, visited) {
375375 if ( ! depPackage ) { continue }
376376 if ( isDepIgnored ( depPackage . name , ignoredDeps ) ) { continue }
377377
378+ if ( depPackage . source == null ) {
379+ // Path dependency — don't add to SBOM, but still walk its deps
380+ addTransitiveDeps ( sbom , metadata , depId , ignoredDeps , visited )
381+ continue
382+ }
383+
378384 let depPurl = toPurl ( depPackage . name , depPackage . version )
379385 sbom . addDependency ( sourcePurl , depPurl )
380386 addTransitiveDeps ( sbom , metadata , depId , ignoredDeps , visited )
@@ -400,6 +406,7 @@ function addDirectDeps(sbom, metadata, packageId, parentPurl, ignoredDeps) {
400406 let depPackage = findPackageById ( metadata , depId )
401407 if ( ! depPackage ) { continue }
402408 if ( isDepIgnored ( depPackage . name , ignoredDeps ) ) { continue }
409+ if ( depPackage . source == null ) { continue }
403410
404411 let depPurl = toPurl ( depPackage . name , depPackage . version )
405412 sbom . addDependency ( parentPurl , depPurl )
@@ -454,13 +461,9 @@ function findResolveNode(metadata, packageId) {
454461 * @private
455462 */
456463function getWorkspaceDepsFromManifest ( manifest ) {
457- try {
458- let content = fs . readFileSync ( manifest , 'utf-8' )
459- let parsed = parseToml ( content )
460- return Object . keys ( parsed . workspace ?. dependencies || { } )
461- } catch ( _ ) {
462- return [ ]
463- }
464+ let content = fs . readFileSync ( manifest , 'utf-8' )
465+ let parsed = parseToml ( content )
466+ return Object . keys ( parsed . workspace ?. dependencies || { } )
464467}
465468
466469/**
0 commit comments