@@ -21,8 +21,26 @@ const execa = require('execa');
21
21
const Installer = require ( '../installer' ) ;
22
22
const { platform, unzip } = require ( '../common' ) ;
23
23
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
+ }
26
44
}
27
45
28
46
class JavaScriptCoreInstaller extends Installer {
@@ -44,40 +62,33 @@ class JavaScriptCoreInstaller extends Installer {
44
62
if ( version === 'latest' ) {
45
63
switch ( platform ) {
46
64
case 'linux-x64' :
65
+ case 'linux-ia32' :
47
66
return fetch ( 'https://webkitgtk.org/jsc-built-products/x86_64/release/LAST-IS' )
48
67
. 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 ( ) ) ;
62
74
default :
63
75
throw new RangeError ( `Unknown platform ${ platform } ` ) ;
64
76
}
65
77
}
66
78
return version ;
67
79
}
68
80
69
- getDownloadURL ( version ) {
81
+ async getDownloadURL ( version ) {
70
82
switch ( platform ) {
71
83
case 'darwin-x64' :
72
- return `https://s3-us-west-2.amazonaws.com/minified-archives.webkit.org/mac-catalina-x86_64-release/${ version } .zip` ;
73
84
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` ;
75
86
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` ;
77
88
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` ;
79
90
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` ;
81
92
default :
82
93
throw new RangeError ( `Unknown platform ${ platform } ` ) ;
83
94
}
0 commit comments