"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.fetch = fetch;
exports.getDistributionCertSerialNumber = getDistributionCertSerialNumber;
exports.update = update;
exports.clear = clear;
Object.defineProperty(exports, "prompt", {
  enumerable: true,
  get: function () {
    return _prompt().default;
  }
});
Object.defineProperty(exports, "revoke", {
  enumerable: true,
  get: function () {
    return _revoke().default;
  }
});
Object.defineProperty(exports, "generate", {
  enumerable: true,
  get: function () {
    return _generate().generate;
  }
});
Object.defineProperty(exports, "determineMissingCredentials", {
  enumerable: true,
  get: function () {
    return _generate().determineMissingCredentials;
  }
});

function _xdl() {
  const data = require("@expo/xdl");

  _xdl = function () {
    return data;
  };

  return data;
}

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

  _prompt = function () {
    return data;
  };

  return data;
}

function _revoke() {
  const data = _interopRequireDefault(require("./revoke"));

  _revoke = function () {
    return data;
  };

  return data;
}

function _generate() {
  const data = require("./generate");

  _generate = function () {
    return data;
  };

  return data;
}

function _constants() {
  const data = require("../../constants");

  _constants = function () {
    return data;
  };

  return data;
}

function _log() {
  const data = _interopRequireDefault(require("../../../../log"));

  _log = function () {
    return data;
  };

  return data;
}

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

async function fetch(projectMetadata, decrypt = false) {
  const query = { ...projectMetadata,
    platform: _constants().PLATFORMS.IOS
  };
  return decrypt ? await _xdl().Credentials.getCredentialsForPlatform(query) : await _xdl().Credentials.getEncryptedCredentialsForPlatformAsync(query);
}

async function getDistributionCertSerialNumber(projectMetadata) {
  const {
    certP12,
    certPassword
  } = await fetch(projectMetadata, true);

  if (certP12 && certPassword) {
    return _xdl().IosCodeSigning.findP12CertSerialNumber(certP12, certPassword);
  } else {
    return null;
  }
}

async function update(projectMetadata, credentials, userCredentialsIds) {
  await _xdl().Credentials.updateCredentialsForPlatform(_constants().PLATFORMS.IOS, credentials, userCredentialsIds, projectMetadata);

  _log().default.warn('Encrypted credentials and saved to the Expo servers');
}

async function clear({
  username,
  experienceName,
  bundleIdentifier
}, only) {
  await _xdl().Credentials.removeCredentialsForPlatform(_constants().PLATFORMS.IOS, {
    username,
    experienceName,
    bundleIdentifier,
    only
  });

  _log().default.warn('Removed existing credentials from expo servers');
}
//# sourceMappingURL=../../../../__sourcemaps__/commands/build/ios/credentials/index.js.map