"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