@@ -144,7 +144,11 @@ export class AddCommandModule
144144    const  usingYarn  =  packageManager . name  ===  PackageManager . Yarn ; 
145145    spinner . info ( `Using package manager: ${ colors . grey ( packageManager . name ) }  ` ) ; 
146146
147-     if  ( packageIdentifier . name  &&  packageIdentifier . type  ===  'tag'  &&  ! packageIdentifier . rawSpec )  { 
147+     if  ( 
148+       packageIdentifier . name  && 
149+       packageIdentifier . type  ===  'range'  && 
150+       packageIdentifier . rawSpec  ===  '*' 
151+     )  { 
148152      // only package name provided; search for viable version 
149153      // plus special cases for packages that did not have peer deps setup 
150154      spinner . start ( 'Searching for compatible package version...' ) ; 
@@ -316,21 +320,31 @@ export class AddCommandModule
316320      return  false ; 
317321    } 
318322
319-     let  validVersion  =  false ; 
320323    const  installedVersion  =  await  this . findProjectVersion ( packageIdentifier . name ) ; 
321-     if  ( installedVersion )  { 
322-       if  ( packageIdentifier . type  ===  'range'  &&  packageIdentifier . fetchSpec )  { 
323-         validVersion  =  satisfies ( installedVersion ,  packageIdentifier . fetchSpec ) ; 
324-       }  else  if  ( packageIdentifier . type  ===  'version' )  { 
325-         const  v1  =  valid ( packageIdentifier . fetchSpec ) ; 
326-         const  v2  =  valid ( installedVersion ) ; 
327-         validVersion  =  v1  !==  null  &&  v1  ===  v2 ; 
328-       }  else  if  ( ! packageIdentifier . rawSpec )  { 
329-         validVersion  =  true ; 
330-       } 
324+     if  ( ! installedVersion )  { 
325+       return  false ; 
326+     } 
327+ 
328+     if  ( packageIdentifier . rawSpec  ===  '*' )  { 
329+       return  true ; 
331330    } 
332331
333-     return  validVersion ; 
332+     if  ( 
333+       packageIdentifier . type  ===  'range'  && 
334+       packageIdentifier . fetchSpec  && 
335+       packageIdentifier . fetchSpec  !==  '*' 
336+     )  { 
337+       return  satisfies ( installedVersion ,  packageIdentifier . fetchSpec ) ; 
338+     } 
339+ 
340+     if  ( packageIdentifier . type  ===  'version' )  { 
341+       const  v1  =  valid ( packageIdentifier . fetchSpec ) ; 
342+       const  v2  =  valid ( installedVersion ) ; 
343+ 
344+       return  v1  !==  null  &&  v1  ===  v2 ; 
345+     } 
346+ 
347+     return  false ; 
334348  } 
335349
336350  private  async  getCollectionName ( ) : Promise < string >  { 
0 commit comments