"use strict";

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

function _get() {
  const data = _interopRequireDefault(require("lodash/get"));

  _get = function () {
    return data;
  };

  return data;
}

function _dateformat() {
  const data = _interopRequireDefault(require("dateformat"));

  _dateformat = function () {
    return data;
  };

  return data;
}

function _chalk() {
  const data = _interopRequireDefault(require("chalk"));

  _chalk = function () {
    return data;
  };

  return data;
}

function _fastlane() {
  const data = require("./fastlane");

  _fastlane = function () {
    return data;
  };

  return data;
}

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

const APPLE_DIST_CERTS_TOO_MANY_GENERATED_ERROR = `
You can have only ${_chalk().default.underline('three')} Apple Distribution Certificates generated on your Apple Developer account.
Please revoke the old ones or reuse existing from your other apps.
Please remember that Apple Distribution Certificates are not application specific!
`;

const createManager = ({
  appleId,
  appleIdPassword,
  team
}) => ({
  async list() {
    const args = ['list', appleId, appleIdPassword, team.id, team.inHouse];
    const {
      certs
    } = await (0, _fastlane().runAction)(_fastlane().travelingFastlane.manageDistCerts, args);
    return certs;
  },

  async create() {
    try {
      const args = ['create', appleId, appleIdPassword, team.id, team.inHouse];
      return await (0, _fastlane().runAction)(_fastlane().travelingFastlane.manageDistCerts, args);
    } catch (err) {
      const resultString = (0, _get().default)(err, 'rawDump.resultString');

      if (resultString && resultString.match(/Maximum number of certificates generated/)) {
        const error = new Error(APPLE_DIST_CERTS_TOO_MANY_GENERATED_ERROR);
        error.code = 'APPLE_DIST_CERTS_TOO_MANY_GENERATED_ERROR';
        throw error;
      }

      throw err;
    }
  },

  async revoke(ids) {
    const args = ['revoke', appleId, appleIdPassword, team.id, team.inHouse, ids.join(',')];
    await (0, _fastlane().runAction)(_fastlane().travelingFastlane.manageDistCerts, args);
  },

  format({
    name,
    id,
    status,
    expires,
    created,
    ownerName
  }) {
    const expiresDate = _formatTimestamp(expires);

    const createdDate = _formatTimestamp(created);

    return `${name} (${status}) - ID: ${id} - expires: ${expiresDate} (created: ${createdDate}) - owner: ${ownerName}`;
  }

});

const _formatTimestamp = timestamp => (0, _dateformat().default)(new Date(timestamp * 1000));

var _default = createManager;
exports.default = _default;
//# sourceMappingURL=../../../../__sourcemaps__/commands/build/ios/appleApi/distributionCert.js.map