"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.RemoveProvisioningProfile = void 0;
function _chalk() {
const data = _interopRequireDefault(require("chalk"));
_chalk = 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 _appleApi() {
const data = require("../../appleApi");
_appleApi = function () {
return data;
};
return data;
}
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class RemoveProvisioningProfile {
constructor(shouldRevoke = false) {
this.shouldRevoke = shouldRevoke;
}
async open(ctx) {
const selected = await selectProfileFromList(ctx.ios.credentials);
if (selected) {
await this.removeSpecific(ctx, selected);
(0, _log().default)(_chalk().default.green(`Successfully removed Provisioning Profile for ${selected.experienceName} (${selected.bundleIdentifier})`));
}
return null;
}
async removeSpecific(ctx, selected) {
await ctx.ios.deleteProvisioningProfile(selected.experienceName, selected.bundleIdentifier);
const {
revoke
} = await (0, _prompt().default)([{
type: 'confirm',
name: 'revoke',
message: 'Do you also want to revoke it on Apple Developer Portal?',
when: !this.shouldRevoke
}]);
if (revoke || this.shouldRevoke) {
await ctx.ensureAppleCtx();
const ppManager = new (_appleApi().ProvisioningProfileManager)(ctx.appleCtx);
await ppManager.revoke(selected.bundleIdentifier);
}
}
}
exports.RemoveProvisioningProfile = RemoveProvisioningProfile;
async function selectProfileFromList(iosCredentials) {
const profiles = iosCredentials.appCredentials.filter(({
credentials
}) => !!credentials.provisioningProfile && !!credentials.provisioningProfileId);
if (profiles.length === 0) {
_log().default.warn('There are no Provisioning Profiles available in your account');
return null;
}
const getName = profile => {
const id = _chalk().default.green(profile.credentials.provisioningProfileId || '-----');
const teamId = profile.credentials.teamId || '------';
return `Provisioning Profile (ID: ${id}, Team ID: ${teamId})`;
};
const question = {
type: 'list',
name: 'credentialsIndex',
message: 'Select Provisioning Profile from the list.',
choices: profiles.map((entry, index) => ({
name: getName(entry),
value: index
}))
};
const {
credentialsIndex
} = await (0, _prompt().default)(question);
return profiles[credentialsIndex];
}
//# sourceMappingURL=../../__sourcemaps__/credentials/views/IosProvisioningProfile.js.map