code: public function install(InstalledRepositoryInterface $repo, PackageInterface $package)
      {
          $extra = $package->getExtra();
          if (empty($extra['class'])) {
              throw new \UnexpectedValueException('Error while installing '.$package->getPrettyName().', composer-plugin packages should have a class defined in their extra key to be usable.');
          }
  
          parent::install($repo, $package);
          try {
              $this->composer->getPluginManager()->registerPackage($package, true);
          } catch (\Exception $e) {
              // Rollback installation
              $this->io->writeError('Plugin installation failed, rolling back');
              parent::uninstall($repo, $package);
              throw $e;
          }
      }
docs: {@inheritDoc}