"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.updateSdkVersionsAsync = updateSdkVersionsAsync;
exports.updateIOSSimulatorBuild = updateIOSSimulatorBuild;
exports.updateAndroidApk = updateAndroidApk;
function _fs() {
const data = _interopRequireDefault(require("fs"));
_fs = function () {
return data;
};
return data;
}
function _path() {
const data = _interopRequireDefault(require("path"));
_path = function () {
return data;
};
return data;
}
function _semver() {
const data = _interopRequireDefault(require("semver"));
_semver = function () {
return data;
};
return data;
}
function _spawnAsync() {
const data = _interopRequireDefault(require("@expo/spawn-async"));
_spawnAsync = function () {
return data;
};
return data;
}
function Versions() {
const data = _interopRequireWildcard(require("../Versions"));
Versions = function () {
return data;
};
return data;
}
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
async function updateSdkVersionsAsync(sdkVersion, reactNativeTag, facebookRNVersion, facebookReactVersion) {
let versions = await Versions().versionsAsync();
versions.sdkVersions[sdkVersion] = { ...versions.sdkVersions[sdkVersion],
expoReactNativeTag: reactNativeTag,
facebookReactNativeVersion: facebookRNVersion,
facebookReactVersion
};
await Versions().setVersionsAsync(versions);
}
async function updateIOSSimulatorBuild(s3Client, pathToApp, appVersion, sdkVersion) {
let tempAppPath = _path().default.join(process.cwd(), 'temp-app.tar.gz');
await (0, _spawnAsync().default)('tar', ['-zcvf', tempAppPath, '-C', pathToApp, '.'], {
cwd: process.cwd(),
stdio: ['ignore', 'ignore', 'inherit'] // only stderr
});
let file = _fs().default.createReadStream(tempAppPath);
console.log('Uploading...');
await s3Client.putObject({
Bucket: 'exp-ios-simulator-apps',
Key: `Exponent-${appVersion}.tar.gz`,
Body: file,
ACL: 'public-read'
}).promise();
await (0, _spawnAsync().default)('rm', [tempAppPath]);
console.log('Adding to server config...');
const clientUrl = `https://dpq5q02fu5f55.cloudfront.net/Exponent-${appVersion}.tar.gz`;
await updateClientUrlAndVersionAsync(sdkVersion, 'ios', clientUrl, appVersion);
}
async function updateAndroidApk(s3Client, pathToApp, appVersion, sdkVersion) {
let file = _fs().default.createReadStream(pathToApp);
console.log('Uploading...');
await s3Client.putObject({
Bucket: 'exp-android-apks',
Key: `Exponent-${appVersion}.apk`,
Body: file,
ACL: 'public-read'
}).promise();
console.log('Adding to server config...');
const clientUrl = `https://d1ahtucjixef4r.cloudfront.net/Exponent-${appVersion}.apk`;
await updateClientUrlAndVersionAsync(sdkVersion, 'android', clientUrl, appVersion);
}
async function updateClientUrlAndVersionAsync(sdkVersion, platform, clientUrl, appVersion) {
// Unfortunately it needs to be of `any` type to be able to change dynamic keys in the object.
const versions = await Versions().versionsAsync(); // Create new SDK version config if it's not there yet.
if (sdkVersion && !versions.sdkVersions[sdkVersion]) {
versions.sdkVersions[sdkVersion] = {};
} // For compatibility reasons we have to maintain that global config, but only when we're updating the most recent SDK.
if (!sdkVersion || Object.keys(versions.sdkVersions).sort(_semver().default.rcompare)[0] === sdkVersion) {
versions[`${platform}Version`] = appVersion;
versions[`${platform}Url`] = clientUrl;
} // Update SDK version config.
if (sdkVersion) {
const sdkVersionConfig = versions.sdkVersions[sdkVersion];
sdkVersionConfig[`${platform}ClientUrl`] = clientUrl;
sdkVersionConfig[`${platform}ClientVersion`] = appVersion;
}
await Versions().setVersionsAsync(versions);
}
//# sourceMappingURL=../__sourcemaps__/tools/UpdateVersions.js.map