"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.PushKeyManager = 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 _CommandError() {
  const data = _interopRequireDefault(require("../CommandError"));

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

class PushKeyManager {
  constructor(appleCtx) {
    this.ctx = appleCtx;
  }

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

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

      if (resultString && resultString.match(/maximum allowed number of Keys/)) {
        throw new (_CommandError().default)('APPLE_PUSH_KEYS_TOO_MANY_GENERATED_ERROR');
      }

      throw err;
    }
  }

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

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

}

exports.PushKeyManager = PushKeyManager;
;
//# sourceMappingURL=../__sourcemaps__/appleApi/pushKey.js.map