@@ -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
@@ -87,6 +88,7 @@ interface UpdateablePackage {
8788 name : NpmAudit . PackageName ;
8889 vulnerableRange : string ;
8990 safeRange ?: string ;
91+ error ?: Error ;
9092}
9193
9294/**
@@ -97,18 +99,23 @@ interface UpdateablePackage {
9799 * Using the ^ version range avoids this, as the version is specific enough for npm.
98100 */
99101async function findSafeVersion ( { name, range } : NpmAudit . Dependency ) : Promise < UpdateablePackage > {
102+ const updateablePackage = { name, vulnerableRange : range } ;
100103 const escapedName = encodeURI ( name ) ; // npm package names must be usable as part of a URL
101- const versions = await promisify ( exec ) ( `npm show ${ escapedName } versions --json` ) . then (
102- ( { stdout } ) => JSON . parse ( stdout ) as string [ ]
103- ) ;
104+ const versions = await promisify ( exec ) ( `npm show ${ escapedName } versions --json` )
105+ . then ( ( { stdout } ) => JSON . parse ( stdout ) as string [ ] )
106+ . catch ( _ => new Error ( "Unable to fetch available versions" ) ) ;
107+
108+ if ( versions instanceof Error ) {
109+ return { ...updateablePackage , error : versions } ;
110+ }
104111
105112 const maxVulnerable = maxSatisfying ( versions , range ) ;
106113 const gtMaxVulnerable = ">" + maxVulnerable ;
107114 const minNonVulnerable = minSatisfying ( versions , gtMaxVulnerable ) ;
108115
109116 if ( ! minNonVulnerable ) {
110- return { name , vulnerableRange : range } ;
117+ return updateablePackage ;
111118 }
112119
113- return { name , vulnerableRange : range , safeRange : "^" + minNonVulnerable } ;
120+ return { ... updateablePackage , safeRange : "^" + minNonVulnerable } ;
114121}
0 commit comments