/**
  * Returns class alias map for given package
  *
  * @param PackageInterface $package The package to generate the class alias info for
  * @throws \TYPO3\CMS\Core\Error\Exception
  * @return array
  */
 public function buildClassAliasMapForPackage(PackageInterface $package)
 {
     $aliasToClassNameMapping = [];
     $classNameToAliasMapping = [];
     $possibleClassAliasFiles = [];
     $manifest = $package->getValueFromComposerManifest();
     if (!empty($manifest->extra->{'typo3/class-alias-loader'}->{'class-alias-maps'})) {
         $possibleClassAliasFiles = $manifest->extra->{'typo3/class-alias-loader'}->{'class-alias-maps'};
         if (!is_array($possibleClassAliasFiles)) {
             throw new \TYPO3\CMS\Core\Error\Exception('"typo3/class-alias-loader"/"class-alias-maps" must return an array!', 1444142481);
         }
     } else {
         $possibleClassAliasFiles[] = 'Migrations/Code/ClassAliasMap.php';
     }
     $packagePath = $package->getPackagePath();
     foreach ($possibleClassAliasFiles as $possibleClassAliasFile) {
         $possiblePathToClassAliasFile = $packagePath . $possibleClassAliasFile;
         if (file_exists($possiblePathToClassAliasFile)) {
             $packageAliasMap = (require $possiblePathToClassAliasFile);
             if (!is_array($packageAliasMap)) {
                 throw new \TYPO3\CMS\Core\Error\Exception('"class alias maps" must return an array', 1422625075);
             }
             foreach ($packageAliasMap as $aliasClassName => $className) {
                 $lowerCasedAliasClassName = strtolower($aliasClassName);
                 $aliasToClassNameMapping[$lowerCasedAliasClassName] = $className;
                 $classNameToAliasMapping[$className][$lowerCasedAliasClassName] = $lowerCasedAliasClassName;
             }
         }
     }
     return array('aliasToClassNameMapping' => $aliasToClassNameMapping, 'classNameToAliasMapping' => $classNameToAliasMapping);
 }
 /**
  * Check if the package is a framework package (located in typo3/sysext)
  *
  * @param PackageInterface $package
  * @return bool
  */
 protected static function isFrameworkPackage(PackageInterface $package)
 {
     return $package->getValueFromComposerManifest('type') === 'typo3-cms-framework';
 }