@@ -1192,13 +1192,12 @@ export async function parsePkgLock(pkgLockFile, options = {}) {
1192
1192
} `
1193
1193
: author ;
1194
1194
if ( node === rootNode ) {
1195
- purlString = new PackageURL (
1196
- "npm" ,
1197
- options . projectGroup || "" ,
1198
- "project-name" in options ? options . projectName : node . packageName ,
1199
- options . projectVersion || node . version ,
1200
- null ,
1201
- null ,
1195
+ const projectGroup = options . projectGroup ;
1196
+ const projectName =
1197
+ "project-name" in options ? options . projectName : node . packageName ;
1198
+ const projectVersion = options . projectVersion || node . version ;
1199
+ purlString = PackageURL . fromString (
1200
+ `pkg:npm/${ projectGroup ? `${ encodeURIComponent ( projectGroup ) . replace ( / % 2 F / g, "/" ) } /` : "" } ${ encodeURIComponent ( projectName ) . replace ( / % 2 F / g, "/" ) } @${ projectVersion } ` ,
1202
1201
)
1203
1202
. toString ( )
1204
1203
. replace ( / % 2 F / g, "/" ) ;
@@ -1213,13 +1212,8 @@ export async function parsePkgLock(pkgLockFile, options = {}) {
1213
1212
"bom-ref" : decodeURIComponent ( purlString ) ,
1214
1213
} ;
1215
1214
} else {
1216
- purlString = new PackageURL (
1217
- "npm" ,
1218
- "" ,
1219
- node . packageName ,
1220
- node . version ,
1221
- null ,
1222
- null ,
1215
+ purlString = PackageURL . fromString (
1216
+ `pkg:npm/${ encodeURIComponent ( node . packageName ) . replace ( / % 2 F / g, "/" ) } @${ node . version } ` ,
1223
1217
)
1224
1218
. toString ( )
1225
1219
. replace ( / % 2 F / g, "/" ) ;
@@ -1558,7 +1552,9 @@ export async function parsePkgLock(pkgLockFile, options = {}) {
1558
1552
continue ;
1559
1553
}
1560
1554
const depPurlString = decodeURIComponent (
1561
- new PackageURL ( "npm" , "" , targetName , targetVersion , null , null )
1555
+ PackageURL . fromString (
1556
+ `pkg:npm/${ encodeURIComponent ( targetName ) . replace ( / % 2 F / g, "/" ) } @${ targetVersion } ` ,
1557
+ )
1562
1558
. toString ( )
1563
1559
. replace ( / % 2 F / g, "/" ) ,
1564
1560
) ;
@@ -1945,13 +1941,8 @@ export async function parseYarnLock(yarnLockFile) {
1945
1941
// Handle case where the dependency name is really an alias.
1946
1942
// Eg: legacy-swc-helpers "npm:@swc/helpers@=0.4.14". Here the dgroupname=@swc/helpers
1947
1943
1948
- const depPurlString = new PackageURL (
1949
- "npm" ,
1950
- null ,
1951
- dgroupnameToUse ,
1952
- resolvedVersion ,
1953
- null ,
1954
- null ,
1944
+ const depPurlString = PackageURL . fromString (
1945
+ `pkg:npm/${ encodeURIComponent ( dgroupnameToUse ) . replace ( / % 2 F / g, "/" ) } @${ resolvedVersion } ` ,
1955
1946
) . toString ( ) ;
1956
1947
deplist . add ( decodeURIComponent ( depPurlString ) ) ;
1957
1948
}
@@ -2556,13 +2547,8 @@ export async function parsePnpmLock(
2556
2547
if ( vers ?. includes ( "(" ) ) {
2557
2548
vers = vers . split ( "(" ) [ 0 ] ;
2558
2549
}
2559
- const opurlString = new PackageURL (
2560
- "npm" ,
2561
- "" ,
2562
- opkgName ,
2563
- vers ,
2564
- null ,
2565
- null ,
2550
+ const opurlString = PackageURL . fromString (
2551
+ `pkg:npm${ encodeURIComponent ( opkgName ) . replace ( / % 2 F / g, "/" ) } @${ vers } ` ,
2566
2552
) . toString ( ) ;
2567
2553
const obomRef = decodeURIComponent ( opurlString ) ;
2568
2554
if ( possibleOptionalDeps [ obomRef ] === undefined ) {
@@ -2700,13 +2686,8 @@ export async function parsePnpmLock(
2700
2686
. replace ( / ^ \/ / , "" ) ;
2701
2687
vers = overrideVersion ;
2702
2688
}
2703
- const dpurlString = new PackageURL (
2704
- "npm" ,
2705
- "" ,
2706
- dpkgName ,
2707
- vers ,
2708
- null ,
2709
- null ,
2689
+ const dpurlString = PackageURL . fromString (
2690
+ `pkg:npm/${ encodeURIComponent ( dpkgName ) . replace ( / % 2 F / g, "/" ) } @${ vers } ` ,
2710
2691
) . toString ( ) ;
2711
2692
const dbomRef = decodeURIComponent ( dpurlString ) ;
2712
2693
deplist . push ( dbomRef ) ;
0 commit comments