private function getAvailableVersions()
{
if (!isset($this->availableVersions)) {
$this->availableVersions = [];
foreach ($this->getManifest() as $key => $item) {
if ($missing = array_diff(self::$requiredKeys, array_keys($item))) {
throw new \RuntimeException(sprintf('Manifest item %s missing required key(s): %s', $key, implode(',', $missing)));
}
$this->availableVersions[$item['version']] = $item;
}
}
return $this->availableVersions;
}