@@ -21,8 +21,26 @@ const execa = require('execa');
2121const Installer = require ( '../installer' ) ;
2222const { platform, unzip } = require ( '../common' ) ;
2323
24- function buildURL ( builder ) {
25- return `https://build.webkit.org/api/v2/builders/${ builder } /builds?limit=1&order=-number&property=got_revision&complete=true` ;
24+ async function macName ( ) {
25+ const { default : macosRelease } = await import ( 'macos-release' ) ;
26+ return macosRelease ( ) . name . toLowerCase ( ) ;
27+ }
28+
29+ async function getVersionFromBuilder ( builder ) {
30+ const url = `https://build.webkit.org/api/v2/builders/${ builder } /builds?limit=1&order=-number&property=archive_revision&complete=true` ;
31+ const body = await fetch ( url ) . then ( ( r ) => r . json ( ) ) ;
32+ return body . builds [ 0 ] . properties . archive_revision [ 0 ] . split ( '@' ) [ 0 ] ;
33+ }
34+
35+ async function getMacBuilder ( ) {
36+ switch ( await macName ( ) ) {
37+ case 'ventura' :
38+ return 706 ;
39+ case 'monterey' :
40+ return 368 ;
41+ default :
42+ throw new Error ( `Unknown macOS release: ${ macName ( ) } ` ) ;
43+ }
2644}
2745
2846class JavaScriptCoreInstaller extends Installer {
@@ -44,40 +62,33 @@ class JavaScriptCoreInstaller extends Installer {
4462 if ( version === 'latest' ) {
4563 switch ( platform ) {
4664 case 'linux-x64' :
65+ case 'linux-ia32' :
4766 return fetch ( 'https://webkitgtk.org/jsc-built-products/x86_64/release/LAST-IS' )
4867 . then ( ( r ) => r . text ( ) )
49- . then ( ( n ) => n . trim ( ) . replace ( '.zip' , '' ) ) ;
50- case 'win32-x64' : {
51- const body = await fetch ( buildURL ( 27 ) ) . then ( ( r ) => r . json ( ) ) ;
52- return body . builds [ 0 ] . properties . got_revision [ 0 ] ;
53- }
54- case 'darwin-x64' : {
55- const body = await fetch ( buildURL ( 54 ) ) . then ( ( r ) => r . json ( ) ) ;
56- return body . builds [ 0 ] . properties . got_revision [ 0 ] ;
57- }
58- case 'darwin-arm64' : {
59- const body = await fetch ( buildURL ( 29 ) ) . then ( ( r ) => r . json ( ) ) ;
60- return body . builds [ 0 ] . properties . got_revision [ 0 ] ;
61- }
68+ . then ( ( n ) => n . trim ( ) . replace ( '.zip' , '' ) . split ( '@' ) [ 0 ] ) ;
69+ case 'win32-x64' :
70+ return getVersionFromBuilder ( 27 ) ;
71+ case 'darwin-x64' :
72+ case 'darwin-arm64' :
73+ return getVersionFromBuilder ( await getMacBuilder ( ) ) ;
6274 default :
6375 throw new RangeError ( `Unknown platform ${ platform } ` ) ;
6476 }
6577 }
6678 return version ;
6779 }
6880
69- getDownloadURL ( version ) {
81+ async getDownloadURL ( version ) {
7082 switch ( platform ) {
7183 case 'darwin-x64' :
72- return `https://s3-us-west-2.amazonaws.com/minified-archives.webkit.org/mac-catalina-x86_64-release/${ version } .zip` ;
7384 case 'darwin-arm64' :
74- return `https://s3-us-west-2.amazonaws.com/minified-archives.webkit.org/mac-bigsur -x86_64%20arm64-release/${ version } .zip` ;
85+ return `https://s3-us-west-2.amazonaws.com/minified-archives.webkit.org/mac-${ await macName ( ) } -x86_64%20arm64-release/${ version } @main .zip` ;
7586 case 'linux-ia32' :
76- return `https://webkitgtk.org/jsc-built-products/x86_32/release/${ version } .zip` ;
87+ return `https://webkitgtk.org/jsc-built-products/x86_32/release/${ version } @main .zip` ;
7788 case 'linux-x64' :
78- return `https://webkitgtk.org/jsc-built-products/x86_64/release/${ version } .zip` ;
89+ return `https://webkitgtk.org/jsc-built-products/x86_64/release/${ version } @main .zip` ;
7990 case 'win32-x64' :
80- return `https://s3-us-west-2.amazonaws.com/archives.webkit.org/wincairo-x86_64-release/${ version } .zip` ;
91+ return `https://s3-us-west-2.amazonaws.com/archives.webkit.org/wincairo-x86_64-release/${ version } @main .zip` ;
8192 default :
8293 throw new RangeError ( `Unknown platform ${ platform } ` ) ;
8394 }
0 commit comments