@@ -49,7 +49,8 @@ export async function auditPluggableWidgetsTools(fix: boolean = false) {
4949 const update = p . safeRange
5050 ? green ( `${ symbols . pointerSmall } ${ p . safeRange } ` )
5151 : red ( `${ symbols . cross } No update available` ) ;
52- console . log ( ` ${ whiteBright ( bold ( p . name ) ) } ${ p . vulnerableRange } ${ update } ` ) ;
52+ const status = p . error ? red ( p . error . message ) : update ;
53+ console . log ( ` ${ whiteBright ( bold ( p . name ) ) } ${ p . vulnerableRange } ${ status } ` ) ;
5354 } ) ;
5455
5556 // Add overrides for updateable dependencies
@@ -86,6 +87,7 @@ interface UpdateablePackage {
8687 name : NpmAudit . PackageName ;
8788 vulnerableRange : string ;
8889 safeRange ?: string ;
90+ error ?: Error ;
8991}
9092
9193/**
@@ -96,18 +98,23 @@ interface UpdateablePackage {
9698 * Using the ^ version range avoids this, as the version is specific enough for npm.
9799 */
98100async function findSafeVersion ( { name, range } : NpmAudit . Dependency ) : Promise < UpdateablePackage > {
101+ const updateablePackage = { name, vulnerableRange : range } ;
99102 const escapedName = encodeURI ( name ) ; // npm package names must be usable as part of a URL
100- const versions = await promisify ( exec ) ( `npm show ${ escapedName } versions --json` ) . then (
101- ( { stdout } ) => JSON . parse ( stdout ) as string [ ]
102- ) ;
103+ const versions = await promisify ( exec ) ( `npm show ${ escapedName } versions --json` )
104+ . then ( ( { stdout } ) => JSON . parse ( stdout ) as string [ ] )
105+ . catch ( _ => new Error ( "Unable to fetch available versions" ) ) ;
106+
107+ if ( versions instanceof Error ) {
108+ return { ...updateablePackage , error : versions } ;
109+ }
103110
104111 const maxVulnerable = maxSatisfying ( versions , range ) ;
105112 const gtMaxVulnerable = ">" + maxVulnerable ;
106113 const minNonVulnerable = minSatisfying ( versions , gtMaxVulnerable ) ;
107114
108115 if ( ! minNonVulnerable ) {
109- return { name , vulnerableRange : range } ;
116+ return updateablePackage ;
110117 }
111118
112- return { name , vulnerableRange : range , safeRange : "^" + minNonVulnerable } ;
119+ return { ... updateablePackage , safeRange : "^" + minNonVulnerable } ;
113120}
0 commit comments