aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe-php-rpc/php/guards/Composer/Repository
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-08-16 13:59:28 +0900
committernsfisis <nsfisis@gmail.com>2026-08-16 13:59:28 +0900
commitb4ab3df2ec85fbe477d7721344a8cd3630b437a1 (patch)
treeeb618cbbdfa46cf829031f9c427dc09ef7584831 /crates/shirabe-php-rpc/php/guards/Composer/Repository
parentbaf9aff3134ac5a10260d3be421a2c17a0180d64 (diff)
downloadphp-shirabe-b4ab3df2ec85fbe477d7721344a8cd3630b437a1.tar.gz
php-shirabe-b4ab3df2ec85fbe477d7721344a8cd3630b437a1.tar.zst
php-shirabe-b4ab3df2ec85fbe477d7721344a8cd3630b437a1.zip
feat(plugin): guard Rust-owned classes the worker has no proxy for
The worker's autoloader fell through to the real Composer source for every Rust-owned FQCN without a proxy stub, so plugin code doing `new Filesystem()` or subclassing `LibraryInstaller` silently ran on a second instance the Rust side never sees. An unimplemented part of the plugin API has to fail with an explicit error naming it, not quietly work on a disconnected copy. The stub generator now emits a guard class for each of those FQCNs: the real declaration, hierarchy and constants, with every constructor and method raising an explicit error. References satisfied by the declaration alone (`instanceof`, `X::class`, `Link::TYPE_REQUIRE`) keep working. Two FQCNs stay resolvable to the real class, each listed with the worker-side mechanism that makes a natively constructed instance correct. The error had nowhere to go: `Installer::run` dropped the `Result` of both `dispatch_script` calls, so an exception from a listener ended in exit 0. Both propagate now, the way the exception does upstream. Three real-plugin E2E comparisons stop at a guard and are ignored, each naming the class it needs. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe-php-rpc/php/guards/Composer/Repository')
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/ArtifactRepository.php34
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/ComposerRepository.php108
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/CompositeRepository.php80
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/FilterRepository.php80
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/InstalledRepository.php39
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/LockArrayRepository.php27
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/PackageRepository.php37
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/PathRepository.php38
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/PearRepository.php17
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/PlatformRepository.php63
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/RepositoryFactory.php58
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/RepositorySet.php93
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/RootPackageRepository.php24
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/ForgejoDriver.php122
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/FossilDriver.php116
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/GitBitbucketDriver.php137
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/GitDriver.php106
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/GitHubDriver.php147
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/GitLabDriver.php165
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/HgDriver.php106
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/PerforceDriver.php117
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/SvnDriver.php121
-rw-r--r--crates/shirabe-php-rpc/php/guards/Composer/Repository/VcsRepository.php70
23 files changed, 1905 insertions, 0 deletions
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/ArtifactRepository.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/ArtifactRepository.php
new file mode 100644
index 00000000..893facda
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/ArtifactRepository.php
@@ -0,0 +1,34 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\ArtifactRepository.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+
+namespace Composer\Repository;
+
+use Composer\IO\IOInterface;
+
+class ArtifactRepository extends ArrayRepository implements ConfigurableRepositoryInterface
+{
+ public function __construct(array $repoConfig, IOInterface $io)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function getRepoName()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepoName');
+ }
+
+ public function getRepoConfig()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepoConfig');
+ }
+
+ protected function initialize()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'initialize');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/ComposerRepository.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/ComposerRepository.php
new file mode 100644
index 00000000..e36e1c4b
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/ComposerRepository.php
@@ -0,0 +1,108 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\ComposerRepository.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+
+namespace Composer\Repository;
+
+use Composer\Package\PackageInterface;
+use Composer\Config;
+use Composer\IO\IOInterface;
+use Composer\Util\HttpDownloader;
+use Composer\EventDispatcher\EventDispatcher;
+
+class ComposerRepository extends ArrayRepository implements ConfigurableRepositoryInterface, AdvisoryProviderInterface
+{
+ public function __construct(array $repoConfig, IOInterface $io, Config $config, HttpDownloader $httpDownloader, ?EventDispatcher $eventDispatcher = null)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function getRepoName()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepoName');
+ }
+
+ public function getRepoConfig()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepoConfig');
+ }
+
+ public function findPackage(string $name, $constraint)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'findPackage');
+ }
+
+ public function findPackages(string $name, $constraint = null)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'findPackages');
+ }
+
+ public function getPackages()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getPackages');
+ }
+
+ public function getPackageNames(?string $packageFilter = null)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getPackageNames');
+ }
+
+ public function loadPackages(array $packageNameMap, array $acceptableStabilities, array $stabilityFlags, array $alreadyLoaded = [])
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'loadPackages');
+ }
+
+ public function search(string $query, int $mode = 0, ?string $type = null)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'search');
+ }
+
+ public function hasSecurityAdvisories(): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'hasSecurityAdvisories');
+ }
+
+ public function getSecurityAdvisories(array $packageConstraintMap, bool $allowPartialAdvisories = false): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getSecurityAdvisories');
+ }
+
+ public function getProviders(string $packageName)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getProviders');
+ }
+
+ protected function configurePackageTransportOptions(PackageInterface $package): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'configurePackageTransportOptions');
+ }
+
+ protected function initialize()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'initialize');
+ }
+
+ public function addPackage(PackageInterface $package)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'addPackage');
+ }
+
+ protected function loadRootServerFile(?int $rootMaxAge = null)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'loadRootServerFile');
+ }
+
+ protected function fetchFile(string $filename, ?string $cacheKey = null, ?string $sha256 = null, bool $storeLastModifiedTime = false)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'fetchFile');
+ }
+
+ protected function lazyProvidersRepoContains(string $name)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'lazyProvidersRepoContains');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/CompositeRepository.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/CompositeRepository.php
new file mode 100644
index 00000000..691a797b
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/CompositeRepository.php
@@ -0,0 +1,80 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\CompositeRepository.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+
+namespace Composer\Repository;
+
+use Composer\Package\BasePackage;
+use Composer\Package\PackageInterface;
+
+class CompositeRepository implements RepositoryInterface
+{
+ public function __construct(array $repositories)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function getRepoName(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepoName');
+ }
+
+ public function getRepositories(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepositories');
+ }
+
+ public function hasPackage(PackageInterface $package): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'hasPackage');
+ }
+
+ public function findPackage($name, $constraint): ?BasePackage
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'findPackage');
+ }
+
+ public function findPackages($name, $constraint = null): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'findPackages');
+ }
+
+ public function loadPackages(array $packageNameMap, array $acceptableStabilities, array $stabilityFlags, array $alreadyLoaded = []): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'loadPackages');
+ }
+
+ public function search(string $query, int $mode = 0, ?string $type = null): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'search');
+ }
+
+ public function getPackages(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getPackages');
+ }
+
+ public function getProviders($packageName): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getProviders');
+ }
+
+ public function removePackage(PackageInterface $package): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'removePackage');
+ }
+
+ public function count(): int
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'count');
+ }
+
+ public function addRepository(RepositoryInterface $repository): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'addRepository');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/FilterRepository.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/FilterRepository.php
new file mode 100644
index 00000000..866585a1
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/FilterRepository.php
@@ -0,0 +1,80 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\FilterRepository.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+
+namespace Composer\Repository;
+
+use Composer\Package\PackageInterface;
+use Composer\Package\BasePackage;
+
+class FilterRepository implements RepositoryInterface, AdvisoryProviderInterface
+{
+ public function __construct(RepositoryInterface $repo, array $options)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function getRepoName(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepoName');
+ }
+
+ public function getRepository(): RepositoryInterface
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepository');
+ }
+
+ public function hasPackage(PackageInterface $package): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'hasPackage');
+ }
+
+ public function findPackage($name, $constraint): ?BasePackage
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'findPackage');
+ }
+
+ public function findPackages($name, $constraint = null): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'findPackages');
+ }
+
+ public function loadPackages(array $packageNameMap, array $acceptableStabilities, array $stabilityFlags, array $alreadyLoaded = []): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'loadPackages');
+ }
+
+ public function search(string $query, int $mode = 0, ?string $type = null): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'search');
+ }
+
+ public function getPackages(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getPackages');
+ }
+
+ public function getProviders($packageName): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getProviders');
+ }
+
+ public function count(): int
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'count');
+ }
+
+ public function hasSecurityAdvisories(): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'hasSecurityAdvisories');
+ }
+
+ public function getSecurityAdvisories(array $packageConstraintMap, bool $allowPartialAdvisories = false): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getSecurityAdvisories');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/InstalledRepository.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/InstalledRepository.php
new file mode 100644
index 00000000..6add0007
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/InstalledRepository.php
@@ -0,0 +1,39 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\InstalledRepository.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+
+namespace Composer\Repository;
+
+use Composer\Semver\Constraint\ConstraintInterface;
+
+class InstalledRepository extends CompositeRepository
+{
+ public function __construct()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function findPackagesWithReplacersAndProviders(string $name, $constraint = null): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'findPackagesWithReplacersAndProviders');
+ }
+
+ public function getDependents($needle, ?ConstraintInterface $constraint = null, bool $invert = false, bool $recurse = true, ?array $packagesFound = null): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getDependents');
+ }
+
+ public function getRepoName(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepoName');
+ }
+
+ public function addRepository(RepositoryInterface $repository): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'addRepository');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/LockArrayRepository.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/LockArrayRepository.php
new file mode 100644
index 00000000..afa486cf
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/LockArrayRepository.php
@@ -0,0 +1,27 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\LockArrayRepository.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+
+namespace Composer\Repository;
+
+class LockArrayRepository extends ArrayRepository
+{
+ public function __construct()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function getRepoName(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepoName');
+ }
+
+ public function getCanonicalPackages()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getCanonicalPackages');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/PackageRepository.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/PackageRepository.php
new file mode 100644
index 00000000..6ea6629b
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/PackageRepository.php
@@ -0,0 +1,37 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\PackageRepository.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+
+namespace Composer\Repository;
+
+class PackageRepository extends ArrayRepository implements AdvisoryProviderInterface
+{
+ public function __construct(array $config)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ protected function initialize(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'initialize');
+ }
+
+ public function getRepoName(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepoName');
+ }
+
+ public function hasSecurityAdvisories(): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'hasSecurityAdvisories');
+ }
+
+ public function getSecurityAdvisories(array $packageConstraintMap, bool $allowPartialAdvisories = false): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getSecurityAdvisories');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/PathRepository.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/PathRepository.php
new file mode 100644
index 00000000..2c664d1b
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/PathRepository.php
@@ -0,0 +1,38 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\PathRepository.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+
+namespace Composer\Repository;
+
+use Composer\Config;
+use Composer\EventDispatcher\EventDispatcher;
+use Composer\IO\IOInterface;
+use Composer\Util\HttpDownloader;
+use Composer\Util\ProcessExecutor;
+
+class PathRepository extends ArrayRepository implements ConfigurableRepositoryInterface
+{
+ public function __construct(array $repoConfig, IOInterface $io, Config $config, ?HttpDownloader $httpDownloader = null, ?EventDispatcher $dispatcher = null, ?ProcessExecutor $process = null)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function getRepoName(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepoName');
+ }
+
+ public function getRepoConfig(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepoConfig');
+ }
+
+ protected function initialize(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'initialize');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/PearRepository.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/PearRepository.php
new file mode 100644
index 00000000..abba7813
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/PearRepository.php
@@ -0,0 +1,17 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\PearRepository.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+
+namespace Composer\Repository;
+
+class PearRepository extends ArrayRepository
+{
+ public function __construct()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/PlatformRepository.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/PlatformRepository.php
new file mode 100644
index 00000000..665ead73
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/PlatformRepository.php
@@ -0,0 +1,63 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\PlatformRepository.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+
+namespace Composer\Repository;
+
+use Composer\Package\PackageInterface;
+use Composer\Platform\HhvmDetector;
+use Composer\Platform\Runtime;
+
+class PlatformRepository extends ArrayRepository
+{
+ public const PLATFORM_PACKAGE_REGEX = '{^(?:php(?:-64bit|-ipv6|-zts|-debug)?|hhvm|(?:ext|lib)-[a-z0-9](?:[_.-]?[a-z0-9]+)*|composer(?:-(?:plugin|runtime)-api)?)$}iD';
+
+ public function __construct(array $packages = [], array $overrides = [], ?Runtime $runtime = null, ?HhvmDetector $hhvmDetector = null)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function getRepoName(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepoName');
+ }
+
+ public function isPlatformPackageDisabled(string $name): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'isPlatformPackageDisabled');
+ }
+
+ public function getDisabledPackages(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getDisabledPackages');
+ }
+
+ protected function initialize(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'initialize');
+ }
+
+ public function addPackage(PackageInterface $package): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'addPackage');
+ }
+
+ public static function isPlatformPackage(string $name): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'isPlatformPackage');
+ }
+
+ public static function getPlatformPhpVersion(): ?string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getPlatformPhpVersion');
+ }
+
+ public function search(string $query, int $mode = 0, ?string $type = null): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'search');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/RepositoryFactory.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/RepositoryFactory.php
new file mode 100644
index 00000000..e2f3a1b7
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/RepositoryFactory.php
@@ -0,0 +1,58 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\RepositoryFactory.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+
+namespace Composer\Repository;
+
+use Composer\IO\IOInterface;
+use Composer\Config;
+use Composer\EventDispatcher\EventDispatcher;
+use Composer\Util\HttpDownloader;
+use Composer\Util\ProcessExecutor;
+
+class RepositoryFactory
+{
+ public function __construct()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public static function configFromString(IOInterface $io, Config $config, string $repository, bool $allowFilesystem = false)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'configFromString');
+ }
+
+ public static function fromString(IOInterface $io, Config $config, string $repository, bool $allowFilesystem = false, ?RepositoryManager $rm = null): RepositoryInterface
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'fromString');
+ }
+
+ public static function createRepo(IOInterface $io, Config $config, array $repoConfig, ?RepositoryManager $rm = null): RepositoryInterface
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'createRepo');
+ }
+
+ public static function defaultRepos(?IOInterface $io = null, ?Config $config = null, ?RepositoryManager $rm = null): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'defaultRepos');
+ }
+
+ public static function manager(IOInterface $io, Config $config, ?HttpDownloader $httpDownloader = null, ?EventDispatcher $eventDispatcher = null, ?ProcessExecutor $process = null): RepositoryManager
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'manager');
+ }
+
+ public static function defaultReposWithDefaultManager(IOInterface $io): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'defaultReposWithDefaultManager');
+ }
+
+ public static function generateRepositoryName($index, array $repo, array $existingRepos): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'generateRepositoryName');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/RepositorySet.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/RepositorySet.php
new file mode 100644
index 00000000..0c846767
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/RepositorySet.php
@@ -0,0 +1,93 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\RepositorySet.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+
+namespace Composer\Repository;
+
+use Composer\DependencyResolver\PoolOptimizer;
+use Composer\DependencyResolver\Pool;
+use Composer\DependencyResolver\Request;
+use Composer\DependencyResolver\SecurityAdvisoryPoolFilter;
+use Composer\EventDispatcher\EventDispatcher;
+use Composer\IO\IOInterface;
+use Composer\Semver\Constraint\ConstraintInterface;
+
+class RepositorySet
+{
+ public const ALLOW_UNACCEPTABLE_STABILITIES = 1;
+ public const ALLOW_SHADOWED_REPOSITORIES = 2;
+
+ public function __construct(string $minimumStability = 'stable', array $stabilityFlags = [], array $rootAliases = [], array $rootReferences = [], array $rootRequires = [], array $temporaryConstraints = [])
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function allowInstalledRepositories(bool $allow = true): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'allowInstalledRepositories');
+ }
+
+ public function getRootRequires(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRootRequires');
+ }
+
+ public function getTemporaryConstraints(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getTemporaryConstraints');
+ }
+
+ public function addRepository(RepositoryInterface $repo): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'addRepository');
+ }
+
+ public function findPackages(string $name, ?ConstraintInterface $constraint = null, int $flags = 0): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'findPackages');
+ }
+
+ public function getSecurityAdvisories(array $packageNames, bool $allowPartialAdvisories, bool $ignoreUnreachable = false): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getSecurityAdvisories');
+ }
+
+ public function getMatchingSecurityAdvisories(array $packages, bool $allowPartialAdvisories = false, bool $ignoreUnreachable = false): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getMatchingSecurityAdvisories');
+ }
+
+ public function getProviders(string $packageName): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getProviders');
+ }
+
+ public function isPackageAcceptable(array $names, string $stability): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'isPackageAcceptable');
+ }
+
+ public function createPool(Request $request, IOInterface $io, ?EventDispatcher $eventDispatcher = null, ?PoolOptimizer $poolOptimizer = null, array $ignoredTypes = [], ?array $allowedTypes = null, ?SecurityAdvisoryPoolFilter $securityAdvisoryPoolFilter = null): Pool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'createPool');
+ }
+
+ public function createPoolWithAllPackages(): Pool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'createPoolWithAllPackages');
+ }
+
+ public function createPoolForPackage(string $packageName, ?LockArrayRepository $lockedRepo = null): Pool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'createPoolForPackage');
+ }
+
+ public function createPoolForPackages(array $packageNames, ?LockArrayRepository $lockedRepo = null): Pool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'createPoolForPackages');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/RootPackageRepository.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/RootPackageRepository.php
new file mode 100644
index 00000000..ea7abae1
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/RootPackageRepository.php
@@ -0,0 +1,24 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\RootPackageRepository.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+
+namespace Composer\Repository;
+
+use Composer\Package\RootPackageInterface;
+
+class RootPackageRepository extends ArrayRepository
+{
+ public function __construct(RootPackageInterface $package)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function getRepoName(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepoName');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/ForgejoDriver.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/ForgejoDriver.php
new file mode 100644
index 00000000..0e812dfe
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/ForgejoDriver.php
@@ -0,0 +1,122 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\Vcs\ForgejoDriver.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+// Composer\Repository\Vcs\VcsDriver::__construct() is final, so it keeps running the real implementation here.
+
+namespace Composer\Repository\Vcs;
+
+use Composer\Config;
+use Composer\IO\IOInterface;
+use Composer\Util\Http\Response;
+
+class ForgejoDriver extends VcsDriver
+{
+ public function __construct()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function initialize(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'initialize');
+ }
+
+ public function getFileContent(string $file, string $identifier): ?string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getFileContent');
+ }
+
+ public function getChangeDate(string $identifier): ?\DateTimeImmutable
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getChangeDate');
+ }
+
+ public function getRootIdentifier(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRootIdentifier');
+ }
+
+ public function getBranches(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBranches');
+ }
+
+ public function getTags(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getTags');
+ }
+
+ public function getDist(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getDist');
+ }
+
+ public function getComposerInformation(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getComposerInformation');
+ }
+
+ public function getSource(string $identifier): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getSource');
+ }
+
+ public function getUrl(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getUrl');
+ }
+
+ public static function supports(IOInterface $io, Config $config, string $url, bool $deep = false): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'supports');
+ }
+
+ protected function setupGitDriver(string $url): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'setupGitDriver');
+ }
+
+ protected function getNextPage(Response $response): ?string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getNextPage');
+ }
+
+ protected function getContents(string $url, bool $fetchingRepoData = false): Response
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getContents');
+ }
+
+ protected function attemptCloneFallback(): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'attemptCloneFallback');
+ }
+
+ protected function shouldCache(string $identifier): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'shouldCache');
+ }
+
+ protected function getBaseComposerInformation(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBaseComposerInformation');
+ }
+
+ public function hasComposerFile(string $identifier): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'hasComposerFile');
+ }
+
+ protected function getScheme(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getScheme');
+ }
+
+ public function cleanup(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'cleanup');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/FossilDriver.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/FossilDriver.php
new file mode 100644
index 00000000..0bf55416
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/FossilDriver.php
@@ -0,0 +1,116 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\Vcs\FossilDriver.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+// Composer\Repository\Vcs\VcsDriver::__construct() is final, so it keeps running the real implementation here.
+
+namespace Composer\Repository\Vcs;
+
+use Composer\Config;
+use Composer\IO\IOInterface;
+
+class FossilDriver extends VcsDriver
+{
+ public function __construct()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function initialize(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'initialize');
+ }
+
+ protected function checkFossil(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'checkFossil');
+ }
+
+ protected function updateLocalRepo(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'updateLocalRepo');
+ }
+
+ public function getRootIdentifier(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRootIdentifier');
+ }
+
+ public function getUrl(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getUrl');
+ }
+
+ public function getSource(string $identifier): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getSource');
+ }
+
+ public function getDist(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getDist');
+ }
+
+ public function getFileContent(string $file, string $identifier): ?string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getFileContent');
+ }
+
+ public function getChangeDate(string $identifier): ?\DateTimeImmutable
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getChangeDate');
+ }
+
+ public function getTags(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getTags');
+ }
+
+ public function getBranches(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBranches');
+ }
+
+ public static function supports(IOInterface $io, Config $config, string $url, bool $deep = false): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'supports');
+ }
+
+ protected function shouldCache(string $identifier): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'shouldCache');
+ }
+
+ public function getComposerInformation(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getComposerInformation');
+ }
+
+ protected function getBaseComposerInformation(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBaseComposerInformation');
+ }
+
+ public function hasComposerFile(string $identifier): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'hasComposerFile');
+ }
+
+ protected function getScheme(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getScheme');
+ }
+
+ protected function getContents(string $url): Response
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getContents');
+ }
+
+ public function cleanup(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'cleanup');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/GitBitbucketDriver.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/GitBitbucketDriver.php
new file mode 100644
index 00000000..1249b6a9
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/GitBitbucketDriver.php
@@ -0,0 +1,137 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\Vcs\GitBitbucketDriver.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+// Composer\Repository\Vcs\VcsDriver::__construct() is final, so it keeps running the real implementation here.
+
+namespace Composer\Repository\Vcs;
+
+use Composer\Config;
+use Composer\IO\IOInterface;
+use Composer\Util\Http\Response;
+
+class GitBitbucketDriver extends VcsDriver
+{
+ public function __construct()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function initialize(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'initialize');
+ }
+
+ public function getUrl(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getUrl');
+ }
+
+ protected function getRepoData(): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepoData');
+ }
+
+ public function getComposerInformation(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getComposerInformation');
+ }
+
+ public function getFileContent(string $file, string $identifier): ?string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getFileContent');
+ }
+
+ public function getChangeDate(string $identifier): ?\DateTimeImmutable
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getChangeDate');
+ }
+
+ public function getSource(string $identifier): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getSource');
+ }
+
+ public function getDist(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getDist');
+ }
+
+ public function getTags(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getTags');
+ }
+
+ public function getBranches(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBranches');
+ }
+
+ protected function fetchWithOAuthCredentials(string $url, bool $fetchingRepoData = false): Response
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'fetchWithOAuthCredentials');
+ }
+
+ protected function generateSshUrl(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'generateSshUrl');
+ }
+
+ protected function attemptCloneFallback(): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'attemptCloneFallback');
+ }
+
+ protected function setupFallbackDriver(string $url): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'setupFallbackDriver');
+ }
+
+ protected function parseCloneUrls(array $cloneLinks): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'parseCloneUrls');
+ }
+
+ public function getRootIdentifier(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRootIdentifier');
+ }
+
+ public static function supports(IOInterface $io, Config $config, string $url, bool $deep = false): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'supports');
+ }
+
+ protected function shouldCache(string $identifier): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'shouldCache');
+ }
+
+ protected function getBaseComposerInformation(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBaseComposerInformation');
+ }
+
+ public function hasComposerFile(string $identifier): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'hasComposerFile');
+ }
+
+ protected function getScheme(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getScheme');
+ }
+
+ protected function getContents(string $url): Response
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getContents');
+ }
+
+ public function cleanup(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'cleanup');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/GitDriver.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/GitDriver.php
new file mode 100644
index 00000000..ae4ed49b
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/GitDriver.php
@@ -0,0 +1,106 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\Vcs\GitDriver.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+// Composer\Repository\Vcs\VcsDriver::__construct() is final, so it keeps running the real implementation here.
+
+namespace Composer\Repository\Vcs;
+
+use Composer\IO\IOInterface;
+use Composer\Config;
+
+class GitDriver extends VcsDriver
+{
+ public function __construct()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function initialize(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'initialize');
+ }
+
+ public function getRootIdentifier(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRootIdentifier');
+ }
+
+ public function getUrl(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getUrl');
+ }
+
+ public function getSource(string $identifier): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getSource');
+ }
+
+ public function getDist(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getDist');
+ }
+
+ public function getFileContent(string $file, string $identifier): ?string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getFileContent');
+ }
+
+ public function getChangeDate(string $identifier): ?\DateTimeImmutable
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getChangeDate');
+ }
+
+ public function getTags(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getTags');
+ }
+
+ public function getBranches(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBranches');
+ }
+
+ public static function supports(IOInterface $io, Config $config, string $url, bool $deep = false): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'supports');
+ }
+
+ protected function shouldCache(string $identifier): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'shouldCache');
+ }
+
+ public function getComposerInformation(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getComposerInformation');
+ }
+
+ protected function getBaseComposerInformation(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBaseComposerInformation');
+ }
+
+ public function hasComposerFile(string $identifier): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'hasComposerFile');
+ }
+
+ protected function getScheme(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getScheme');
+ }
+
+ protected function getContents(string $url): Response
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getContents');
+ }
+
+ public function cleanup(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'cleanup');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/GitHubDriver.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/GitHubDriver.php
new file mode 100644
index 00000000..32b3551d
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/GitHubDriver.php
@@ -0,0 +1,147 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\Vcs\GitHubDriver.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+// Composer\Repository\Vcs\VcsDriver::__construct() is final, so it keeps running the real implementation here.
+
+namespace Composer\Repository\Vcs;
+
+use Composer\Config;
+use Composer\IO\IOInterface;
+use Composer\Util\Http\Response;
+
+class GitHubDriver extends VcsDriver
+{
+ public function __construct()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function initialize(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'initialize');
+ }
+
+ public function getRepositoryUrl(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepositoryUrl');
+ }
+
+ public function getRootIdentifier(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRootIdentifier');
+ }
+
+ public function getUrl(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getUrl');
+ }
+
+ protected function getApiUrl(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getApiUrl');
+ }
+
+ public function getSource(string $identifier): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getSource');
+ }
+
+ public function getDist(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getDist');
+ }
+
+ public function getComposerInformation(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getComposerInformation');
+ }
+
+ public function getFileContent(string $file, string $identifier): ?string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getFileContent');
+ }
+
+ public function getChangeDate(string $identifier): ?\DateTimeImmutable
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getChangeDate');
+ }
+
+ public function getTags(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getTags');
+ }
+
+ public function getBranches(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBranches');
+ }
+
+ public static function supports(IOInterface $io, Config $config, string $url, bool $deep = false): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'supports');
+ }
+
+ public function getRepoData(): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepoData');
+ }
+
+ protected function generateSshUrl(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'generateSshUrl');
+ }
+
+ protected function getContents(string $url, bool $fetchingRepoData = false): Response
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getContents');
+ }
+
+ protected function fetchRootIdentifier(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'fetchRootIdentifier');
+ }
+
+ protected function attemptCloneFallback(?\Throwable $e = null): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'attemptCloneFallback');
+ }
+
+ protected function setupGitDriver(string $url): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'setupGitDriver');
+ }
+
+ protected function getNextPage(Response $response): ?string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getNextPage');
+ }
+
+ protected function shouldCache(string $identifier): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'shouldCache');
+ }
+
+ protected function getBaseComposerInformation(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBaseComposerInformation');
+ }
+
+ public function hasComposerFile(string $identifier): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'hasComposerFile');
+ }
+
+ protected function getScheme(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getScheme');
+ }
+
+ public function cleanup(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'cleanup');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/GitLabDriver.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/GitLabDriver.php
new file mode 100644
index 00000000..b1d0c34d
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/GitLabDriver.php
@@ -0,0 +1,165 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\Vcs\GitLabDriver.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+// Composer\Repository\Vcs\VcsDriver::__construct() is final, so it keeps running the real implementation here.
+
+namespace Composer\Repository\Vcs;
+
+use Composer\Config;
+use Composer\IO\IOInterface;
+use Composer\Util\HttpDownloader;
+use Composer\Util\Http\Response;
+
+class GitLabDriver extends VcsDriver
+{
+ public const URL_REGEX = '#^(?:(?P<scheme>https?)://(?P<domain>.+?)(?::(?P<port>[0-9]+))?/|git@(?P<domain2>[^:]+):)(?P<parts>.+)/(?P<repo>[^/]+?)(?:\.git|/)?$#';
+
+ public function __construct()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function initialize(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'initialize');
+ }
+
+ public function setHttpDownloader(HttpDownloader $httpDownloader): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'setHttpDownloader');
+ }
+
+ public function getComposerInformation(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getComposerInformation');
+ }
+
+ public function getFileContent(string $file, string $identifier): ?string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getFileContent');
+ }
+
+ public function getChangeDate(string $identifier): ?\DateTimeImmutable
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getChangeDate');
+ }
+
+ public function getRepositoryUrl(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepositoryUrl');
+ }
+
+ public function getUrl(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getUrl');
+ }
+
+ public function getDist(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getDist');
+ }
+
+ public function getSource(string $identifier): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getSource');
+ }
+
+ public function getRootIdentifier(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRootIdentifier');
+ }
+
+ public function getBranches(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBranches');
+ }
+
+ public function getTags(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getTags');
+ }
+
+ public function getApiUrl(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getApiUrl');
+ }
+
+ protected function getReferences(string $type): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getReferences');
+ }
+
+ protected function fetchProject(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'fetchProject');
+ }
+
+ protected function attemptCloneFallback(): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'attemptCloneFallback');
+ }
+
+ protected function generateSshUrl(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'generateSshUrl');
+ }
+
+ protected function generatePublicUrl(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'generatePublicUrl');
+ }
+
+ protected function setupGitDriver(string $url): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'setupGitDriver');
+ }
+
+ protected function getContents(string $url, bool $fetchingRepoData = false): Response
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getContents');
+ }
+
+ public static function supports(IOInterface $io, Config $config, string $url, bool $deep = false): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'supports');
+ }
+
+ public function getRepoData(): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepoData');
+ }
+
+ protected function getNextPage(Response $response): ?string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getNextPage');
+ }
+
+ protected function shouldCache(string $identifier): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'shouldCache');
+ }
+
+ protected function getBaseComposerInformation(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBaseComposerInformation');
+ }
+
+ public function hasComposerFile(string $identifier): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'hasComposerFile');
+ }
+
+ protected function getScheme(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getScheme');
+ }
+
+ public function cleanup(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'cleanup');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/HgDriver.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/HgDriver.php
new file mode 100644
index 00000000..18cf388d
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/HgDriver.php
@@ -0,0 +1,106 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\Vcs\HgDriver.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+// Composer\Repository\Vcs\VcsDriver::__construct() is final, so it keeps running the real implementation here.
+
+namespace Composer\Repository\Vcs;
+
+use Composer\Config;
+use Composer\IO\IOInterface;
+
+class HgDriver extends VcsDriver
+{
+ public function __construct()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function initialize(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'initialize');
+ }
+
+ public function getRootIdentifier(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRootIdentifier');
+ }
+
+ public function getUrl(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getUrl');
+ }
+
+ public function getSource(string $identifier): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getSource');
+ }
+
+ public function getDist(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getDist');
+ }
+
+ public function getFileContent(string $file, string $identifier): ?string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getFileContent');
+ }
+
+ public function getChangeDate(string $identifier): ?\DateTimeImmutable
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getChangeDate');
+ }
+
+ public function getTags(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getTags');
+ }
+
+ public function getBranches(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBranches');
+ }
+
+ public static function supports(IOInterface $io, Config $config, string $url, bool $deep = false): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'supports');
+ }
+
+ protected function shouldCache(string $identifier): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'shouldCache');
+ }
+
+ public function getComposerInformation(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getComposerInformation');
+ }
+
+ protected function getBaseComposerInformation(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBaseComposerInformation');
+ }
+
+ public function hasComposerFile(string $identifier): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'hasComposerFile');
+ }
+
+ protected function getScheme(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getScheme');
+ }
+
+ protected function getContents(string $url): Response
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getContents');
+ }
+
+ public function cleanup(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'cleanup');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/PerforceDriver.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/PerforceDriver.php
new file mode 100644
index 00000000..fbff0a56
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/PerforceDriver.php
@@ -0,0 +1,117 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\Vcs\PerforceDriver.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+// Composer\Repository\Vcs\VcsDriver::__construct() is final, so it keeps running the real implementation here.
+
+namespace Composer\Repository\Vcs;
+
+use Composer\Config;
+use Composer\IO\IOInterface;
+use Composer\Util\Http\Response;
+
+class PerforceDriver extends VcsDriver
+{
+ public function __construct()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function initialize(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'initialize');
+ }
+
+ public function getFileContent(string $file, string $identifier): ?string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getFileContent');
+ }
+
+ public function getChangeDate(string $identifier): ?\DateTimeImmutable
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getChangeDate');
+ }
+
+ public function getRootIdentifier(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRootIdentifier');
+ }
+
+ public function getBranches(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBranches');
+ }
+
+ public function getTags(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getTags');
+ }
+
+ public function getDist(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getDist');
+ }
+
+ public function getSource(string $identifier): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getSource');
+ }
+
+ public function getUrl(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getUrl');
+ }
+
+ public function hasComposerFile(string $identifier): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'hasComposerFile');
+ }
+
+ public function getContents(string $url): Response
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getContents');
+ }
+
+ public static function supports(IOInterface $io, Config $config, string $url, bool $deep = false): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'supports');
+ }
+
+ public function cleanup(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'cleanup');
+ }
+
+ public function getDepot(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getDepot');
+ }
+
+ public function getBranch(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBranch');
+ }
+
+ protected function shouldCache(string $identifier): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'shouldCache');
+ }
+
+ public function getComposerInformation(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getComposerInformation');
+ }
+
+ protected function getBaseComposerInformation(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBaseComposerInformation');
+ }
+
+ protected function getScheme(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getScheme');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/SvnDriver.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/SvnDriver.php
new file mode 100644
index 00000000..3f9b1569
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/Vcs/SvnDriver.php
@@ -0,0 +1,121 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\Vcs\SvnDriver.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+// Composer\Repository\Vcs\VcsDriver::__construct() is final, so it keeps running the real implementation here.
+
+namespace Composer\Repository\Vcs;
+
+use Composer\Config;
+use Composer\IO\IOInterface;
+
+class SvnDriver extends VcsDriver
+{
+ public function __construct()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function initialize(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'initialize');
+ }
+
+ public function getRootIdentifier(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRootIdentifier');
+ }
+
+ public function getUrl(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getUrl');
+ }
+
+ public function getSource(string $identifier): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getSource');
+ }
+
+ public function getDist(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getDist');
+ }
+
+ protected function shouldCache(string $identifier): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'shouldCache');
+ }
+
+ public function getComposerInformation(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getComposerInformation');
+ }
+
+ public function getFileContent(string $file, string $identifier): ?string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getFileContent');
+ }
+
+ public function getChangeDate(string $identifier): ?\DateTimeImmutable
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getChangeDate');
+ }
+
+ public function getTags(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getTags');
+ }
+
+ public function getBranches(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBranches');
+ }
+
+ public static function supports(IOInterface $io, Config $config, string $url, bool $deep = false): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'supports');
+ }
+
+ protected static function normalizeUrl(string $url): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'normalizeUrl');
+ }
+
+ protected function execute(array $command, string $url): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'execute');
+ }
+
+ protected function buildIdentifier(string $baseDir, int $revision): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'buildIdentifier');
+ }
+
+ protected function getBaseComposerInformation(string $identifier): ?array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getBaseComposerInformation');
+ }
+
+ public function hasComposerFile(string $identifier): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'hasComposerFile');
+ }
+
+ protected function getScheme(): string
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getScheme');
+ }
+
+ protected function getContents(string $url): Response
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getContents');
+ }
+
+ public function cleanup(): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'cleanup');
+ }
+}
diff --git a/crates/shirabe-php-rpc/php/guards/Composer/Repository/VcsRepository.php b/crates/shirabe-php-rpc/php/guards/Composer/Repository/VcsRepository.php
new file mode 100644
index 00000000..0c3e612e
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/guards/Composer/Repository/VcsRepository.php
@@ -0,0 +1,70 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Guard for Composer\Repository\VcsRepository.
+// The Rust side owns this class and the worker has no proxy for it, so this
+// declaration shadows the real one: the constants and the hierarchy stay, while
+// constructing it or calling anything on it raises an explicit error.
+
+namespace Composer\Repository;
+
+use Composer\Repository\Vcs\VcsDriverInterface;
+use Composer\Package\Loader\LoaderInterface;
+use Composer\EventDispatcher\EventDispatcher;
+use Composer\Util\ProcessExecutor;
+use Composer\Util\HttpDownloader;
+use Composer\IO\IOInterface;
+use Composer\Config;
+
+class VcsRepository extends ArrayRepository implements ConfigurableRepositoryInterface
+{
+ public function __construct(array $repoConfig, IOInterface $io, Config $config, HttpDownloader $httpDownloader, ?EventDispatcher $dispatcher = null, ?ProcessExecutor $process = null, ?array $drivers = null, ?VersionCacheInterface $versionCache = null)
+ {
+ \ShirabeUnsupportedClass::fail(self::class, '__construct');
+ }
+
+ public function getRepoName()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepoName');
+ }
+
+ public function getRepoConfig()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getRepoConfig');
+ }
+
+ public function setLoader(LoaderInterface $loader): void
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'setLoader');
+ }
+
+ public function getDriver(): ?VcsDriverInterface
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getDriver');
+ }
+
+ public function hadInvalidBranches(): bool
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'hadInvalidBranches');
+ }
+
+ public function getEmptyReferences(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getEmptyReferences');
+ }
+
+ public function getVersionTransportExceptions(): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'getVersionTransportExceptions');
+ }
+
+ protected function initialize()
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'initialize');
+ }
+
+ protected function preProcess(VcsDriverInterface $driver, array $data, string $identifier): array
+ {
+ \ShirabeUnsupportedClass::fail(self::class, 'preProcess');
+ }
+}