"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
function _has() {
const data = _interopRequireDefault(require("lodash/has"));
_has = function () {
return data;
};
return data;
}
function _fsExtra() {
const data = _interopRequireDefault(require("fs-extra"));
_fsExtra = function () {
return data;
};
return data;
}
function _BaseUploader() {
const data = _interopRequireDefault(require("./BaseUploader"));
_BaseUploader = function () {
return data;
};
return data;
}
function _utils() {
const data = require("./utils");
_utils = function () {
return data;
};
return data;
}
function _prompt() {
const data = _interopRequireDefault(require("../../prompt"));
_prompt = function () {
return data;
};
return data;
}
function _log() {
const data = _interopRequireDefault(require("../../log"));
_log = function () {
return data;
};
return data;
}
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const PLATFORM = 'android';
const FILE_DOESNT_EXIST_ERROR = path => `File ${path} doesn't exist.`;
const SERVICE_ACCOUNT_JSON_QUESTION = {
name: 'key',
message: 'The path to the file containing service account JSON, used to authenticate with Google:',
type: 'input',
validate: function validate(path) {
const done = this.async();
_fsExtra().default.pathExists(path).then(exists => {
if (exists) {
done(null, true);
} else {
done(FILE_DOESNT_EXIST_ERROR(path));
}
}).catch(err => done(err));
}
};
class AndroidUploader extends _BaseUploader().default {
constructor(projectDir, options) {
super(PLATFORM, projectDir, options);
}
_ensureExperienceIsValid(exp) {
if (!(0, _has().default)(exp, 'android.package')) {
throw new Error('You must specify an Android package in app.json.');
}
}
async _getPlatformSpecificOptions() {
const key = await this._getServiceAccountJSONPath();
return {
key,
track: this.options.track
};
}
async _getServiceAccountJSONPath() {
const {
key
} = this.options;
if (key && (await _fsExtra().default.pathExists(key))) {
return key;
} else {
if (key) {
(0, _log().default)(FILE_DOESNT_EXIST_ERROR(key));
}
return await this._askForServiceAccountJSONPath();
}
}
async _askForServiceAccountJSONPath() {
const answer = await (0, _prompt().default)(SERVICE_ACCOUNT_JSON_QUESTION);
return answer.key;
}
async _uploadToTheStore(platformData, path) {
const {
fastlane
} = this;
const {
key,
track
} = platformData;
const {
package: androidPackage
} = this._exp.android;
await (0, _utils().runFastlaneAsync)(fastlane.supplyAndroid, [path, androidPackage, key, track], {}, true);
}
}
exports.default = AndroidUploader;
//# sourceMappingURL=../../__sourcemaps__/commands/upload/AndroidUploader.js.map