"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
function _difference() {
const data = _interopRequireDefault(require("lodash/difference"));
_difference = function () {
return data;
};
return data;
}
function _isObject() {
const data = _interopRequireDefault(require("lodash/isObject"));
_isObject = function () {
return data;
};
return data;
}
function _pickBy() {
const data = _interopRequireDefault(require("lodash/pickBy"));
_pickBy = function () {
return data;
};
return data;
}
function _merge() {
const data = _interopRequireDefault(require("lodash/merge"));
_merge = function () {
return data;
};
return data;
}
function _getFromParams() {
const data = _interopRequireDefault(require("./getFromParams"));
_getFromParams = function () {
return data;
};
return data;
}
function _promptForCredentials() {
const data = _interopRequireDefault(require("./promptForCredentials"));
_promptForCredentials = function () {
return data;
};
return data;
}
function _promptForOverrides() {
const data = _interopRequireDefault(require("./promptForOverrides"));
_promptForOverrides = function () {
return data;
};
return data;
}
function constants() {
const data = _interopRequireWildcard(require("../constants"));
constants = function () {
return data;
};
return data;
}
function _log() {
const data = _interopRequireDefault(require("../../../../../log"));
_log = function () {
return data;
};
return data;
}
function _prompt2() {
const data = _interopRequireDefault(require("../../../../../prompt"));
_prompt2 = 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 prompt(appleCtx, options, missingCredentials) {
const credentialsFromParams = await (0, _getFromParams().default)(options);
const stillMissingCredentials = (0, _difference().default)(missingCredentials, Object.keys(credentialsFromParams));
if (stillMissingCredentials.length === 0) {
return {
credentials: _flattenObject(credentialsFromParams),
metadata: {}
};
}
const names = stillMissingCredentials.map(id => constants().CREDENTIALS[id].name).join(', ');
_log().default.warn(`We are missing the following credentials from you: ${names}`);
const {
credentials: answers,
metadata
} = (await _shouldExpoGenerateCerts()) ? await (0, _promptForOverrides().default)(appleCtx, stillMissingCredentials) : await (0, _promptForCredentials().default)(appleCtx, stillMissingCredentials);
const reused = Object.values(answers).filter(i => (0, _isObject().default)(i) && 'reuse' in i).map(i => i.reuse);
const userCredentialsIds = reused.map(i => i.userCredentialsId);
const metadataFromReused = reused.reduce((acc, {
userCredentialsId,
...rest
}) => ({ ...acc,
...rest
}), {});
const toGenerate = Object.keys(answers).filter(key => answers[key] === constants().EXPO_WILL_GENERATE);
const credentialsFromAnswers = (0, _pickBy().default)(answers, val => val !== constants().EXPO_WILL_GENERATE && !((0, _isObject().default)(val) && 'reuse' in val));
const mergedCredentials = (0, _merge().default)({}, credentialsFromParams, credentialsFromAnswers);
const metadataToReturn = { ...metadata,
...metadataFromReused
};
return {
credentials: _flattenObject(mergedCredentials),
userCredentialsIds,
metadata: metadataToReturn,
toGenerate
};
}
async function _shouldExpoGenerateCerts() {
const {
expoShouldGenerateCerts
} = await (0, _prompt2().default)({
type: 'list',
name: 'expoShouldGenerateCerts',
message: 'How would you like to upload your credentials?',
choices: [{
name: 'Expo handles all credentials, you can still provide overrides',
value: true
}, {
name: 'I will provide all the credentials and files needed, Expo does limited validation',
value: false
}]
});
return expoShouldGenerateCerts;
}
const _flattenObject = obj => {
return Object.keys(obj).reduce((acc, key) => {
const value = obj[key];
if ((0, _isObject().default)(value)) {
return { ...acc,
..._flattenObject(value)
};
} else {
return { ...acc,
[key]: value
};
}
}, {});
};
var _default = prompt;
exports.default = _default;
//# sourceMappingURL=../../../../../__sourcemaps__/commands/build/ios/credentials/prompt/index.js.map