"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generate = generate; exports.determineMissingCredentials = determineMissingCredentials; function _ora() { const data = _interopRequireDefault(require("ora")); _ora = function () { return data; }; return data; } function _chalk() { const data = _interopRequireDefault(require("chalk")); _chalk = function () { return data; }; return data; } function _intersection() { const data = _interopRequireDefault(require("lodash/intersection")); _intersection = 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 apple() { const data = _interopRequireWildcard(require("../appleApi")); apple = 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 generate(appleCtx, credentialsToGenerate, metadata) { if (!credentialsToGenerate || credentialsToGenerate.length === 0) { return {}; } await apple().ensureAppExists(appleCtx, { enablePushNotifications: true }); (0, _log().default)(`We're going to generate:`); credentialsToGenerate.forEach(type => { (0, _log().default)(`- ${constants().CREDENTIALS[type].name}`); }); let newCredentials = {}; for (const id of credentialsToGenerate) { const { name } = constants().CREDENTIALS[id]; const spinner = (0, _ora().default)(`Generating ${name}...`).start(); try { const generated = await _create(appleCtx, id, metadata); spinner.succeed(`Generated ${name}`); newCredentials = { ...newCredentials, ...generated }; } catch (err) { spinner.fail(`Failed to generate ${name}`); throw err; } } return newCredentials; } async function _create(appleCtx, type, metadata) { const manager = apple().createManagers(appleCtx)[type]; return await manager.create(metadata); } function determineMissingCredentials(existingCredentials = {}) { const existingCredentialsKeys = Object.keys(existingCredentials); const missing = constants().REQUIRED_CREDENTIALS.reduce((acc, ruleOrCondition) => { const id = _applyRuleOrCondition(existingCredentialsKeys, ruleOrCondition); if (id) { acc.push(id); } return acc; }, []); return missing.length === 0 ? null : missing; } function _applyRuleOrCondition(keys, ruleOrCondition) { if ('or' in ruleOrCondition) { return _applyOrCondition(keys, ruleOrCondition.or); } else { return _applyRule(keys, ruleOrCondition); } } function _applyOrCondition(keys, condition) { const applyingRules = condition.filter(rule => _doCredentialsExist(keys, rule)); if (applyingRules.length === 0) { const notDeprecatedRule = condition.find(rule => !rule.deprecated); return notDeprecatedRule.id; } else if (applyingRules.length === 1) { const { deprecated, name, migrationDocs } = applyingRules[0]; if (deprecated) { _log().default.warn(`You're using deprecated ${name}. Read our docs to learn how to use more modern solution. ${migrationDocs ? _chalk().default.underline(migrationDocs) : ''}`); } return null; } } const _applyRule = (keys, rule) => !_doCredentialsExist(keys, rule) ? rule.id : null; function _doCredentialsExist(keys, rule) { const common = (0, _intersection().default)(keys, rule.required); return rule.required.length === common.length; } //# sourceMappingURL=../../../../__sourcemaps__/commands/build/ios/credentials/generate.js.map