@@ -95,30 +95,30 @@ function compareVersions(v1, v2) {
9595 const split2 = v2 . split ( "-" ) ;
9696 const parts1 = split1 [ 0 ] . split ( "." ) . map ( Number ) ;
9797 const parts2 = split2 [ 0 ] . split ( "." ) . map ( Number ) ;
98-
98+
9999 // Compare major.minor.patch
100100 for ( let i = 0 ; i < Math . max ( parts1 . length , parts2 . length ) ; i ++ ) {
101101 const p1 = parts1 [ i ] || 0 ;
102102 const p2 = parts2 [ i ] || 0 ;
103103 if ( p1 > p2 ) return 1 ;
104104 if ( p1 < p2 ) return - 1 ;
105105 }
106-
106+
107107 // If base versions are equal, compare pre-release tags.
108108 // A version WITH a pre-release tag is LOWER than a version WITHOUT one.
109109 // e.g. 0.1.8-beta is less than 0.1.8. 0.1.8 is the final release.
110110 const hasPre1 = split1 . length > 1 ;
111111 const hasPre2 = split2 . length > 1 ;
112-
112+
113113 if ( hasPre1 && ! hasPre2 ) return - 1 ; // v1 is a beta, v2 is a full release
114114 if ( ! hasPre1 && hasPre2 ) return 1 ; // v1 is a full release, v2 is a beta
115115 if ( ! hasPre1 && ! hasPre2 ) return 0 ; // both are full releases and equal
116-
116+
117117 // If both are pre-releases, do a basic string compare on the tag
118118 // "alpha" < "beta" < "rc"
119119 if ( split1 [ 1 ] > split2 [ 1 ] ) return 1 ;
120120 if ( split1 [ 1 ] < split2 [ 1 ] ) return - 1 ;
121-
121+
122122 return 0 ;
123123}
124124
@@ -202,7 +202,7 @@ export function startUpdateChecker(log) {
202202 child . stdout . on ( "data" , ( data ) => {
203203 const outText = data . toString ( ) ;
204204 log . info ?. ( `${ ANSI . CYAN } [${ cliName } -cli]${ ANSI . RESET } \n${ outText . trim ( ) } ` ) ;
205-
205+
206206 // Auto-reply to any [y/N] prompts from the CLI
207207 if ( outText . toLowerCase ( ) . includes ( "[y/n]" ) ) {
208208 child . stdin . write ( "y\n" ) ;
@@ -212,7 +212,7 @@ export function startUpdateChecker(log) {
212212 child . stderr . on ( "data" , ( data ) => {
213213 const errText = data . toString ( ) ;
214214 log . warn ?. ( `${ ANSI . RED } [${ cliName } -cli]${ ANSI . RESET } \n${ errText . trim ( ) } ` ) ;
215-
215+
216216 // Some CLIs output interactive prompts to stderr instead of stdout
217217 if ( errText . toLowerCase ( ) . includes ( "[y/n]" ) ) {
218218 child . stdin . write ( "y\n" ) ;
0 commit comments