@@ -66577,7 +66577,7 @@ function findRelease(releases, pythonVersion, pypyVersion, architecture) {
66577
66577
semver.satisfies(pypyVersionToSemantic(item.pypy_version), pypyVersion);
66578
66578
const isArchPresent = item.files &&
66579
66579
(utils_1.IS_WINDOWS
66580
- ? isArchPresentForWindows(item)
66580
+ ? isArchPresentForWindows(item, architecture )
66581
66581
: isArchPresentForMacOrLinux(item, architecture, process.platform));
66582
66582
return isPythonVersionSatisfied && isPyPyVersionSatisfied && isArchPresent;
66583
66583
});
@@ -66590,7 +66590,7 @@ function findRelease(releases, pythonVersion, pypyVersion, architecture) {
66590
66590
});
66591
66591
const foundRelease = sortedReleases[0];
66592
66592
const foundAsset = utils_1.IS_WINDOWS
66593
- ? findAssetForWindows(foundRelease)
66593
+ ? findAssetForWindows(foundRelease, architecture )
66594
66594
: findAssetForMacOrLinux(foundRelease, architecture, process.platform);
66595
66595
return {
66596
66596
foundAsset,
@@ -66613,24 +66613,31 @@ function pypyVersionToSemantic(versionSpec) {
66613
66613
return versionSpec.replace(prereleaseVersion, '$1-$2.$3');
66614
66614
}
66615
66615
exports.pypyVersionToSemantic = pypyVersionToSemantic;
66616
- function isArchPresentForWindows(item) {
66617
- return item.files.some((file) => utils_1.WINDOWS_ARCHS.includes(file.arch) &&
66618
- utils_1.WINDOWS_PLATFORMS.includes(file.platform));
66616
+ function isArchPresentForWindows(item, architecture ) {
66617
+ architecture = replaceX32toX86(architecture);
66618
+ return item.files.some((file) => utils_1.WINDOWS_PLATFORMS.includes(file.platform) && file.arch === architecture );
66619
66619
}
66620
66620
exports.isArchPresentForWindows = isArchPresentForWindows;
66621
66621
function isArchPresentForMacOrLinux(item, architecture, platform) {
66622
66622
return item.files.some((file) => file.arch === architecture && file.platform === platform);
66623
66623
}
66624
66624
exports.isArchPresentForMacOrLinux = isArchPresentForMacOrLinux;
66625
- function findAssetForWindows(releases) {
66626
- return releases.files.find((item) => utils_1.WINDOWS_ARCHS.includes(item.arch) &&
66627
- utils_1.WINDOWS_PLATFORMS.includes(item.platform));
66625
+ function findAssetForWindows(releases, architecture ) {
66626
+ architecture = replaceX32toX86(architecture);
66627
+ return releases.files.find((item) => utils_1.WINDOWS_PLATFORMS.includes(item.platform) && item.arch === architecture );
66628
66628
}
66629
66629
exports.findAssetForWindows = findAssetForWindows;
66630
66630
function findAssetForMacOrLinux(releases, architecture, platform) {
66631
66631
return releases.files.find((item) => item.arch === architecture && item.platform === platform);
66632
66632
}
66633
66633
exports.findAssetForMacOrLinux = findAssetForMacOrLinux;
66634
+ function replaceX32toX86(architecture) {
66635
+ // convert x32 to x86 because os.arch() returns x32 for 32-bit systems but PyPy releases json has x86 arch value.
66636
+ if (architecture === 'x32') {
66637
+ architecture = 'x86';
66638
+ }
66639
+ return architecture;
66640
+ }
66634
66641
66635
66642
66636
66643
/***/ }),
0 commit comments