"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

function apple() {
  const data = _interopRequireWildcard(require("../appleApi"));

  apple = function () {
    return data;
  };

  return data;
}

function _prompt() {
  const data = _interopRequireDefault(require("../../../../prompt"));

  _prompt = function () {
    return data;
  };

  return data;
}

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

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; } }

async function revoke(appleCtx, typesToRevoke) {
  const managers = apple().createManagers(appleCtx);

  for (const type of typesToRevoke) {
    const manager = managers[type];

    if (manager) {
      await _revokeByType(manager);
    }
  }
}

async function _revokeByType(manager) {
  if (manager.list) {
    const list = await manager.list();

    if (!list || list.length === 0) {
      return;
    }

    const choices = list.map(cert => ({
      name: manager.format(cert),
      value: cert.id
    }));
    const ids = await _askWhatToRevoke(choices);
    await manager.revoke(ids);
  } else {
    await manager.revoke();
  }
}

async function _askWhatToRevoke(choices) {
  const {
    ids
  } = await (0, _prompt().default)({
    type: 'checkbox',
    name: 'ids',
    message: `What would you like to revoke?`,
    pageSize: Infinity,
    choices
  });
  return ids;
}

var _default = revoke;
exports.default = _default;
//# sourceMappingURL=../../../../__sourcemaps__/commands/build/ios/credentials/revoke.js.map