@@ -185,7 +185,6 @@ export class CycloneDxWebpackPlugin {
185185 const cdxExternalReferenceFactory = new CDX . Factories . FromNodePackageJson . ExternalReferenceFactory ( )
186186 const cdxLicenseFactory = new CDX . Factories . LicenseFactory ( )
187187 const cdxPurlFactory = new CDX . Factories . FromNodePackageJson . PackageUrlFactory ( 'npm' )
188- const cdxToolBuilder = new CDX . Builders . FromNodePackageJson . ToolBuilder ( cdxExternalReferenceFactory )
189188 const cdxComponentBuilder = new CDX . Builders . FromNodePackageJson . ComponentBuilder ( cdxExternalReferenceFactory , cdxLicenseFactory )
190189
191190 const bom = new CDX . Models . Bom ( )
@@ -253,7 +252,7 @@ export class CycloneDxWebpackPlugin {
253252 thisLogger . log ( 'generated components.' )
254253
255254 thisLogger . log ( 'finalizing BOM...' )
256- this . #finalizeBom( bom , cdxToolBuilder , cdxPurlFactory , logger . getChildLogger ( 'BomFinalizer' ) )
255+ this . #finalizeBom( bom , cdxComponentBuilder , cdxPurlFactory , logger . getChildLogger ( 'BomFinalizer' ) )
257256 thisLogger . log ( 'finalized BOM.' )
258257 } )
259258
@@ -321,7 +320,7 @@ export class CycloneDxWebpackPlugin {
321320
322321 #finalizeBom (
323322 bom : CDX . Models . Bom ,
324- cdxToolBuilder : CDX . Builders . FromNodePackageJson . ToolBuilder ,
323+ cdxComponentBuilder : CDX . Builders . FromNodePackageJson . ComponentBuilder ,
325324 cdxPurlFactory : CDX . Factories . FromNodePackageJson . PackageUrlFactory ,
326325 logger : WebpackLogger
327326 ) : void {
@@ -332,8 +331,8 @@ export class CycloneDxWebpackPlugin {
332331 ? undefined
333332 : new Date ( )
334333
335- for ( const tool of this . #makeTools ( cdxToolBuilder , logger . getChildLogger ( 'ToolMaker' ) ) ) {
336- bom . metadata . tools . add ( tool )
334+ for ( const toolC of this . #makeToolCs ( cdxComponentBuilder , logger . getChildLogger ( 'ToolMaker' ) ) ) {
335+ bom . metadata . tools . components . add ( toolC )
337336 }
338337
339338 if ( bom . metadata . component !== undefined ) {
@@ -343,8 +342,11 @@ export class CycloneDxWebpackPlugin {
343342 }
344343 }
345344
346- * #makeTools ( builder : CDX . Builders . FromNodePackageJson . ToolBuilder , logger : WebpackLogger ) : Generator < CDX . Models . Tool > {
347- const packageJsonPaths = [ resolve ( module . path , '..' , 'package.json' ) ]
345+ * #makeToolCs ( builder : CDX . Builders . FromNodePackageJson . ComponentBuilder , logger : WebpackLogger ) : Generator < CDX . Models . Component > {
346+ const packageJsonPaths : Array < [ string , CDX . Enums . ComponentType ] > = [
347+ // this plugin is an optional enhancement, not a standalone application -- use as `Library`
348+ [ resolve ( module . path , '..' , 'package.json' ) , CDX . Enums . ComponentType . Library ]
349+ ]
348350
349351 const libs = [
350352 '@cyclonedx/cyclonedx-library'
@@ -356,18 +358,18 @@ export class CycloneDxWebpackPlugin {
356358 for ( const nodeModulePath of nodeModulePaths ) {
357359 const packageJsonPath = resolve ( nodeModulePath , ...lib , 'package.json' )
358360 if ( existsSync ( packageJsonPath ) ) {
359- packageJsonPaths . push ( packageJsonPath )
361+ packageJsonPaths . push ( [ packageJsonPath , CDX . Enums . ComponentType . Library ] )
360362 continue libsLoop
361363 }
362364 }
363365 }
364366 /* eslint-enable no-labels */
365367
366- for ( const packageJsonPath of packageJsonPaths ) {
368+ for ( const [ packageJsonPath , cType ] of packageJsonPaths ) {
367369 logger . log ( 'try to build new Tool from PkgPath' , packageJsonPath )
368370 const packageJson : object = loadJsonFile ( packageJsonPath ) ?? { }
369371 normalizePackageJson ( packageJson , w => { logger . debug ( 'normalizePackageJson from PkgPath' , packageJsonPath , 'caused:' , w ) } )
370- const tool = builder . makeTool ( packageJson )
372+ const tool = builder . makeComponent ( packageJson , cType )
371373 if ( tool !== undefined ) {
372374 yield tool
373375 }
0 commit comments