"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_KEYS_TOO_MANY_GENERATED_ERROR = `
You can have only ${_chalk().default.underline('two')} Apple Keys generated on your Apple Developer account.
Please revoke the old ones or reuse existing from your other apps.
Please remember that Apple Keys are not application specific!
`;

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

  async create(metadata, name = `Expo Push Notifications Key ${(0, _dateformat().default)('yyyymmddHHMMss')}`) {
    try {
      const args = ['create', appleId, appleIdPassword, team.id, name];
      return await (0, _fastlane().runAction)(_fastlane().travelingFastlane.managePushKeys, args);
    } catch (err) {
      const userString = (0, _get().default)(err, 'rawDump.userString');

      if (userString && userString.match(/maximum allowed number of Keys/)) {
        const error = new Error(APPLE_KEYS_TOO_MANY_GENERATED_ERROR);
        error.code = 'APPLE_KEYS_TOO_MANY_GENERATED_ERROR';
        throw error;
      }

      throw err;
    }
  },

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

  format({
    id,
    name
  }) {
    return `${name} - ID: ${id}`;
  }

});

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