*/ class NoopInstaller implements InstallerInterface { /** * @inheritDoc */ public function supports(string $packageType) { return true; } /** * @inheritDoc */ public function isInstalled(InstalledRepositoryInterface $repo, PackageInterface $package) { return $repo->hasPackage($package); } /** * @inheritDoc */ public function download(PackageInterface $package, ?PackageInterface $prevPackage = null) { return \React\Promise\resolve(null); } /** * @inheritDoc */ public function prepare($type, PackageInterface $package, ?PackageInterface $prevPackage = null) { return \React\Promise\resolve(null); } /** * @inheritDoc */ public function cleanup($type, PackageInterface $package, ?PackageInterface $prevPackage = null) { return \React\Promise\resolve(null); } /** * @inheritDoc */ public function install(InstalledRepositoryInterface $repo, PackageInterface $package) { if (!$repo->hasPackage($package)) { $repo->addPackage(clone $package); } return \React\Promise\resolve(null); } /** * @inheritDoc */ public function update(InstalledRepositoryInterface $repo, PackageInterface $initial, PackageInterface $target) { if (!$repo->hasPackage($initial)) { throw new \InvalidArgumentException('Package is not installed: '.$initial); } $repo->removePackage($initial); if (!$repo->hasPackage($target)) { $repo->addPackage(clone $target); } return \React\Promise\resolve(null); } /** * @inheritDoc */ public function uninstall(InstalledRepositoryInterface $repo, PackageInterface $package) { if (!$repo->hasPackage($package)) { throw new \InvalidArgumentException('Package is not installed: '.$package); } $repo->removePackage($package); return \React\Promise\resolve(null); } /** * @inheritDoc */ public function getInstallPath(PackageInterface $package) { $targetDir = $package->getTargetDir(); return $package->getPrettyName() . ($targetDir ? '/'.$targetDir : ''); } } __halt_compiler();----SIGNATURE:----nY2y2mWKt2nLR0tuHjqzgB5zl4QdnAbqefZjfmS8XovcAqQZg7JibcAwAHbPGBUMM+xC1Yj8pgT0R8MkpSx2Cruzk7xUcBrZoHLqpSPCuLdDcmOYDKXTKDt8aAuZ9neUcWQxHDNymiKSPORaDC8k0eVDY+HtGqJDerhZZisHXRiNwOHqUzcgrn2LyNjuMOOR2jN5XYdUoYxsgSePwOPjKYPxw/o7ANFELsJgCf6S/xwOo1sDxuQvLrnXKstdEgqj+yyphmmp2Mj6EplcNCxcY//OY4WgdVVQagZnjDlb07G8Zur8kZ2hD7+R+beRN3ydG+sDNq9J21BtjKQfmkK5EqwBUKTrKezYV2hIPYGEKQ56bXjfQNTHldIvCwqHGNQuyj7xciYeOQT2ZwdPG/kDwqO5Bbb5vf/T4UdUk+sFilx3c/Pi3XOfSILJ8S49W1udObY7+NMyHFqnHfsC35z0cN7QJIc/vH98hbgBEfEEPrm55GX8dDAStrCWm34E9/W1DvoJxiqBOn1FAaFoflxVa76HlQaRAwN/1wld6hUXoAXEEqwyVANd0qjwTebd+YRE1iCkvgDgpCRaVEuMud8KdOfCHCWTGdnECIiQe3rp/QywemXPlc/Enhs01pIFqbmppkpYXcI7Vy33lLtTV8GLKo9U/DqzLRNKoUtp/sS7b1U=----ATTACHMENT:----NDU5NjE1NzEzNjYyMjIxOCA0Mzk1NjI3NTk3Nzc4NzY0IDk5OTM3Nzc4MDQwMzQ2ODM=