diff --git a/Makefile b/Makefile index 3c3406c..488aee1 100644 --- a/Makefile +++ b/Makefile @@ -133,17 +133,6 @@ fix: fixer rector composer-normalize ## Run all fixing recipes check: fixer-check rector-check composer-validate composer-normalize-check deps-analyze phpstan test ## Run all project checks .PHONY: check -compile-stub: - docker run --rm \ - --pull always \ - --user $(CONTAINER_USER) \ - -v $(PWD):/workspace \ - -w /workspace \ - ghcr.io/thesis-php/protoc-plugin:latest \ - --php-plugin_out=genproto \ - protos/*.proto -.PHONY: compile-stub - compile-test-stub: docker run --rm \ --pull always \ diff --git a/packages/client/README.md b/packages/client/README.md index 5ddd42f..75fb280 100644 --- a/packages/client/README.md +++ b/packages/client/README.md @@ -184,17 +184,16 @@ final readonly class RandomBalancerFactory implements LoadBalancerFactory ## Endpoint resolution -Resolver is selected by target scheme. You can override resolver for a specific scheme: +Resolver is selected by target scheme. You can override the resolver for a scheme: ```php use Amp\Cache\LocalCache; use Thesis\Grpc\Client\Builder; use Thesis\Grpc\Client\EndpointResolver\DnsResolver; -use Thesis\Grpc\Client\Scheme; $client = new Builder() ->withHost('dns:///my-grpc-server:50051') - ->withEndpointResolver(Scheme::Dns, new DnsResolver( + ->withEndpointResolver('dns', new DnsResolver( cache: new LocalCache(), minResolveInterval: 60, maxResolveInterval: 600, @@ -208,7 +207,22 @@ Default resolvers by scheme: - `ipv4`, `ipv6`, `unix` -> `StaticResolver` - `passthrough` -> `PassthroughResolver` -You can also implement your own `EndpointResolver` for service discovery backends like Consul/etcd. +### Custom schemes (service discovery) + +Register a resolver under any scheme to plug in a service registry such as etcd or +Consul. The target is then `://[authority]/`, and the endpoint is +handed to the resolver as `$target->opaque`: + +```php +$client = new Builder() + ->withEndpointResolver('etcd', new EtcdResolver($etcd, prefix: '/services/')) + ->withLoadBalancer(new RoundRobinFactory()) + ->withHost('etcd:///echo') + ->build(); +``` + +An `EndpointResolver` returns the current `Resolution` and may push updates over time +through `EndpointResolverListener::onResolve()`, which the balancer picks up live. ## Error handling diff --git a/packages/client/src/Client/Builder.php b/packages/client/src/Client/Builder.php index 1ec6f47..b57e849 100644 --- a/packages/client/src/Client/Builder.php +++ b/packages/client/src/Client/Builder.php @@ -66,13 +66,8 @@ final class Builder private ?LoadBalancerFactory $loadBalancerFactory = null; - /** @var \SplObjectStorage */ - private \SplObjectStorage $endpointResolvers; - - public function __construct() - { - $this->endpointResolvers = new \SplObjectStorage(); - } + /** @var array */ + private array $endpointResolvers = []; public function withProtobuf(Decoder $decoder): self { @@ -204,7 +199,7 @@ public function withLoadBalancer(LoadBalancerFactory $factory): self return $builder; } - public function withEndpointResolver(Scheme $scheme, EndpointResolver $resolver): self + public function withEndpointResolver(string $scheme, EndpointResolver $resolver): self { $builder = clone $this; $builder->endpointResolvers[$scheme] = $resolver; @@ -217,6 +212,9 @@ public static function buildDefault(): Client return new self()->build(); } + /** + * @throws InvalidTarget + */ public function build(): Client { $target = Target::parse($this->host ?? self::DEFAULT_HOST); @@ -230,10 +228,11 @@ public function build(): Client $transferTimeout = $this->transferTimeout; $inactivityTimeout = $this->inactivityTimeout; - $resolver = $this->endpointResolvers[$target->scheme] ?? match ($target->scheme) { + $resolver = $this->endpointResolvers[$target->scheme] ?? match (Scheme::tryFrom($target->scheme)) { Scheme::Dns => new EndpointResolver\DnsResolver(), Scheme::Passthrough => new EndpointResolver\PassthroughResolver(), Scheme::Ipv4, Scheme::Ipv6, Scheme::Unix => new EndpointResolver\StaticResolver(), + null => throw new InvalidTarget($this->host ?? ''), }; $controlMetadata = new Internal\AppendControlMetadataInterceptor( diff --git a/packages/client/src/Client/Target.php b/packages/client/src/Client/Target.php index 316614a..74c5418 100644 --- a/packages/client/src/Client/Target.php +++ b/packages/client/src/Client/Target.php @@ -28,25 +28,33 @@ public static function parse(string $target): self } return match ($scheme) { - Scheme::Dns => self::parseDns($addr, $target, $scheme), + Scheme::Dns => self::parseDns($addr, $target), Scheme::Passthrough => self::parsePassthrough($addr, $target), - Scheme::Ipv4, Scheme::Ipv6 => new self($scheme, self::parseAddresses($addr, $target), opaque: $addr), - Scheme::Unix => new self($scheme, [self::parseUnix($addr, $target)], opaque: $addr), + Scheme::Ipv4, Scheme::Ipv6 => new self($scheme->value, self::parseAddresses($addr, $target), opaque: $addr), + Scheme::Unix => new self($scheme->value, [self::parseUnix($addr, $target)], opaque: $addr), }; } } - return new self(Scheme::Dns, self::parseAddresses($target), opaque: $target); + // A custom scheme in URI form ("://[authority]/") selects + // a user-registered resolver. Only the "//" form is treated as a scheme, so + // a bare "host:port" is still resolved as a DNS target. + if (preg_match('#^([a-z][a-z0-9+.\-]*)://#', $target, $matches) === 1) { + return self::parseCustom($matches[1], $target); + } + + return new self(Scheme::Dns->value, self::parseAddresses($target), opaque: $target); } /** * @internal use {@see Target::parse()} instead + * @param non-empty-string $scheme * @param non-empty-list $addresses * @param non-empty-string $opaque Raw value after scheme prefix * @param ?non-empty-string $authority DNS server address (only for dns://authority/host form) */ public function __construct( - public Scheme $scheme, + public string $scheme, public array $addresses, public string $opaque, public ?string $authority = null, @@ -57,7 +65,7 @@ public function __construct( * @param non-empty-string $target * @throws InvalidTarget */ - private static function parseDns(string $addr, string $target, Scheme $scheme): self + private static function parseDns(string $addr, string $target): self { $opaque = $addr; $authority = null; @@ -81,13 +89,45 @@ private static function parseDns(string $addr, string $target, Scheme $scheme): } return new self( - $scheme, + Scheme::Dns->value, self::parseAddresses($addr, $target), $opaque, $authority, ); } + /** + * A scheme with no built-in parser: "://[authority]/". The + * endpoint is handed to a user-registered resolver as {@see self::$opaque}. + * + * @param non-empty-string $scheme + * @param non-empty-string $target + * @throws InvalidTarget + */ + private static function parseCustom(string $scheme, string $target): self + { + $rest = substr($target, \strlen($scheme) + 3); + + $slash = strpos($rest, '/'); + if ($slash === false) { + throw new InvalidTarget($target); + } + + $authority = substr($rest, 0, $slash); + $endpoint = substr($rest, $slash + 1); + + if ($endpoint === '') { + throw new InvalidTarget($target); + } + + return new self( + $scheme, + [new TargetAddress($endpoint, 0)], + $endpoint, + $authority !== '' ? $authority : null, + ); + } + /** * @param non-empty-string $addr * @param non-empty-string $target @@ -110,7 +150,7 @@ private static function parsePassthrough(string $addr, string $target): self throw new InvalidTarget($target); } - return new self(Scheme::Passthrough, [new TargetAddress($addr, 0)], $addr); + return new self(Scheme::Passthrough->value, [new TargetAddress($addr, 0)], $addr); } /** diff --git a/tests/Client/EndpointResolver/DnsResolverTest.php b/tests/Client/EndpointResolver/DnsResolverTest.php index 8ea4e94..996e281 100644 --- a/tests/Client/EndpointResolver/DnsResolverTest.php +++ b/tests/Client/EndpointResolver/DnsResolverTest.php @@ -15,7 +15,6 @@ use Thesis\Grpc\Client\Endpoint; use Thesis\Grpc\Client\EndpointResolverListener; use Thesis\Grpc\Client\Resolution; -use Thesis\Grpc\Client\Scheme; use Thesis\Grpc\Client\Target; use Thesis\Grpc\Client\TargetAddress; use function Amp\delay; @@ -56,13 +55,13 @@ public function testResolve(Target $target, array $records, array $endpoints): v public static function provideResolveCases(): iterable { yield 'single A record' => [ - new Target(Scheme::Dns, [new TargetAddress('myhost', 50_051)], 'myhost:50051'), + new Target('dns', [new TargetAddress('myhost', 50_051)], 'myhost:50051'), [new DnsRecord('192.168.0.1', DnsRecord::A, 300)], [new Endpoint(new Address('192.168.0.1:50051'))], ]; yield 'multiple A records' => [ - new Target(Scheme::Dns, [new TargetAddress('myhost', 50_051)], 'myhost:50051'), + new Target('dns', [new TargetAddress('myhost', 50_051)], 'myhost:50051'), [ new DnsRecord('192.168.0.1', DnsRecord::A, 300), new DnsRecord('192.168.0.2', DnsRecord::A, 300), @@ -74,13 +73,13 @@ public static function provideResolveCases(): iterable ]; yield 'AAAA record wraps in brackets' => [ - new Target(Scheme::Dns, [new TargetAddress('myhost', 50_051)], 'myhost:50051'), + new Target('dns', [new TargetAddress('myhost', 50_051)], 'myhost:50051'), [new DnsRecord('::1', DnsRecord::AAAA, 300)], [new Endpoint(new Address('[::1]:50051'))], ]; yield 'mixed A and AAAA records' => [ - new Target(Scheme::Dns, [new TargetAddress('myhost', 50_051)], 'myhost:50051'), + new Target('dns', [new TargetAddress('myhost', 50_051)], 'myhost:50051'), [ new DnsRecord('192.168.0.1', DnsRecord::A, 300), new DnsRecord('::1', DnsRecord::AAAA, 300), @@ -114,7 +113,7 @@ public function testResolveListener(): void $resolver = new DnsResolver($dnsResolver, minResolveInterval: 0.1, maxResolveInterval: 0.1); $resolver->resolve( - new Target(Scheme::Dns, [new TargetAddress('myhost', 50_051)], 'myhost:50051'), + new Target('dns', [new TargetAddress('myhost', 50_051)], 'myhost:50051'), $listener, $deferredCancellation->getCancellation(), ); @@ -125,7 +124,7 @@ public function testResolveListener(): void public function testResolveStopOnCancellation(): void { - $target = new Target(Scheme::Dns, [new TargetAddress('myhost', 50_051)], 'myhost:50051'); + $target = new Target('dns', [new TargetAddress('myhost', 50_051)], 'myhost:50051'); $deferredCancellation = new DeferredCancellation(); $dnsResolver = self::createStub(AmphpDnsResolver::class); @@ -147,7 +146,7 @@ public function testResolveStopOnCancellation(): void public function testResolveThrows(): void { - $target = new Target(Scheme::Dns, [new TargetAddress('myhost', 50_051)], 'myhost:50051'); + $target = new Target('dns', [new TargetAddress('myhost', 50_051)], 'myhost:50051'); $deferredCancellation = new DeferredCancellation(); $dnsResolver = $this->createMock(AmphpDnsResolver::class); diff --git a/tests/Client/EndpointResolver/StaticResolverTest.php b/tests/Client/EndpointResolver/StaticResolverTest.php index 366fa65..2b75992 100644 --- a/tests/Client/EndpointResolver/StaticResolverTest.php +++ b/tests/Client/EndpointResolver/StaticResolverTest.php @@ -11,7 +11,6 @@ use Thesis\Grpc\Client\Address; use Thesis\Grpc\Client\Endpoint; use Thesis\Grpc\Client\EndpointResolverListener; -use Thesis\Grpc\Client\Scheme; use Thesis\Grpc\Client\Target; use Thesis\Grpc\Client\TargetAddress; @@ -41,12 +40,12 @@ public function testResolve(Target $target, array $endpoints): void public static function provideResolveCases(): iterable { yield 'ipv4: single address' => [ - new Target(Scheme::Ipv4, [new TargetAddress('192.168.0.1', 50_051)], '192.168.0.1:50051'), + new Target('ipv4', [new TargetAddress('192.168.0.1', 50_051)], '192.168.0.1:50051'), [new Endpoint(new Address('192.168.0.1:50051'))], ]; yield 'ipv4: multiple addresses' => [ - new Target(Scheme::Ipv4, [ + new Target('ipv4', [ new TargetAddress('192.168.0.1', 50_051), new TargetAddress('192.168.0.2', 50_052), ], '192.168.0.1:50051,192.168.0.2:50052'), @@ -57,12 +56,12 @@ public static function provideResolveCases(): iterable ]; yield 'ipv6: single address' => [ - new Target(Scheme::Ipv6, [new TargetAddress('[::1]', 50_051)], '[::1]:50051'), + new Target('ipv6', [new TargetAddress('[::1]', 50_051)], '[::1]:50051'), [new Endpoint(new Address('[::1]:50051'))], ]; yield 'unix: socket path' => [ - new Target(Scheme::Unix, [new TargetAddress('/var/run/grpc.sock', 0)], '///var/run/grpc.sock'), + new Target('unix', [new TargetAddress('/var/run/grpc.sock', 0)], '///var/run/grpc.sock'), [new Endpoint(new Address('/var/run/grpc.sock'))], ]; } diff --git a/tests/Client/TargetTest.php b/tests/Client/TargetTest.php index f08ebe8..652ab3f 100644 --- a/tests/Client/TargetTest.php +++ b/tests/Client/TargetTest.php @@ -28,42 +28,42 @@ public static function provideParseTargetCases(): iterable { yield 'dns:host:port' => [ 'dns:myhost:50051', - new Target(Scheme::Dns, [new TargetAddress('myhost', 50_051)], 'myhost:50051'), + new Target('dns', [new TargetAddress('myhost', 50_051)], 'myhost:50051'), ]; yield 'dns:///host:port' => [ 'dns:///myhost:50051', - new Target(Scheme::Dns, [new TargetAddress('myhost', 50_051)], '///myhost:50051'), + new Target('dns', [new TargetAddress('myhost', 50_051)], '///myhost:50051'), ]; yield 'dns://authority/host:port' => [ 'dns://authority:53/myhost:50051', - new Target(Scheme::Dns, [new TargetAddress('myhost', 50_051)], '//authority:53/myhost:50051', 'authority:53'), + new Target('dns', [new TargetAddress('myhost', 50_051)], '//authority:53/myhost:50051', 'authority:53'), ]; yield 'dns://authority/host:port without authority port' => [ 'dns://authority/myhost:50051', - new Target(Scheme::Dns, [new TargetAddress('myhost', 50_051)], '//authority/myhost:50051', 'authority'), + new Target('dns', [new TargetAddress('myhost', 50_051)], '//authority/myhost:50051', 'authority'), ]; yield 'dns:///ipv6 with brackets' => [ 'dns:///[2001:db8:85a3:8d3:1319:8a2e:370:7348]:443', - new Target(Scheme::Dns, [new TargetAddress('[2001:db8:85a3:8d3:1319:8a2e:370:7348]', 443)], '///[2001:db8:85a3:8d3:1319:8a2e:370:7348]:443'), + new Target('dns', [new TargetAddress('[2001:db8:85a3:8d3:1319:8a2e:370:7348]', 443)], '///[2001:db8:85a3:8d3:1319:8a2e:370:7348]:443'), ]; yield 'dns:///ipv6 percent-encoded brackets' => [ 'dns:///%5B2001:db8:85a3:8d3:1319:8a2e:370:7348%5D:443', - new Target(Scheme::Dns, [new TargetAddress('[2001:db8:85a3:8d3:1319:8a2e:370:7348]', 443)], '///%5B2001:db8:85a3:8d3:1319:8a2e:370:7348%5D:443'), + new Target('dns', [new TargetAddress('[2001:db8:85a3:8d3:1319:8a2e:370:7348]', 443)], '///%5B2001:db8:85a3:8d3:1319:8a2e:370:7348%5D:443'), ]; yield 'ipv4:single address' => [ 'ipv4:192.168.0.1:50051', - new Target(Scheme::Ipv4, [new TargetAddress('192.168.0.1', 50_051)], '192.168.0.1:50051'), + new Target('ipv4', [new TargetAddress('192.168.0.1', 50_051)], '192.168.0.1:50051'), ]; yield 'ipv4:multiple addresses' => [ 'ipv4:192.168.0.1:50051,192.168.0.2:50052', - new Target(Scheme::Ipv4, [ + new Target('ipv4', [ new TargetAddress('192.168.0.1', 50_051), new TargetAddress('192.168.0.2', 50_052), ], '192.168.0.1:50051,192.168.0.2:50052'), @@ -71,7 +71,7 @@ public static function provideParseTargetCases(): iterable yield 'ipv4:multiple addresses with spaces around comma' => [ 'ipv4:192.168.0.1:50051, 192.168.0.2:50052', - new Target(Scheme::Ipv4, [ + new Target('ipv4', [ new TargetAddress('192.168.0.1', 50_051), new TargetAddress('192.168.0.2', 50_052), ], '192.168.0.1:50051, 192.168.0.2:50052'), @@ -79,12 +79,12 @@ public static function provideParseTargetCases(): iterable yield 'ipv6:single address with port' => [ 'ipv6:[::1]:50051', - new Target(Scheme::Ipv6, [new TargetAddress('[::1]', 50_051)], '[::1]:50051'), + new Target('ipv6', [new TargetAddress('[::1]', 50_051)], '[::1]:50051'), ]; yield 'ipv6:multiple addresses' => [ 'ipv6:[::1]:50051,[::2]:50052', - new Target(Scheme::Ipv6, [ + new Target('ipv6', [ new TargetAddress('[::1]', 50_051), new TargetAddress('[::2]', 50_052), ], '[::1]:50051,[::2]:50052'), @@ -92,37 +92,47 @@ public static function provideParseTargetCases(): iterable yield 'bare host:port' => [ 'myhost:50051', - new Target(Scheme::Dns, [new TargetAddress('myhost', 50_051)], 'myhost:50051'), + new Target('dns', [new TargetAddress('myhost', 50_051)], 'myhost:50051'), ]; yield 'bare localhost:port' => [ 'localhost:50051', - new Target(Scheme::Dns, [new TargetAddress('localhost', 50_051)], 'localhost:50051'), + new Target('dns', [new TargetAddress('localhost', 50_051)], 'localhost:50051'), ]; yield 'unix:///path' => [ 'unix:///var/run/grpc.sock', - new Target(Scheme::Unix, [new TargetAddress('/var/run/grpc.sock', 0)], '///var/run/grpc.sock'), + new Target('unix', [new TargetAddress('/var/run/grpc.sock', 0)], '///var/run/grpc.sock'), ]; yield 'unix:/path' => [ 'unix:/var/run/grpc.sock', - new Target(Scheme::Unix, [new TargetAddress('/var/run/grpc.sock', 0)], '/var/run/grpc.sock'), + new Target('unix', [new TargetAddress('/var/run/grpc.sock', 0)], '/var/run/grpc.sock'), ]; yield 'unix:///tmp/test.sock' => [ 'unix:///tmp/test.sock', - new Target(Scheme::Unix, [new TargetAddress('/tmp/test.sock', 0)], '///tmp/test.sock'), + new Target('unix', [new TargetAddress('/tmp/test.sock', 0)], '///tmp/test.sock'), ]; yield 'passthrough:///host:port' => [ 'passthrough:///myhost:50051', - new Target(Scheme::Passthrough, [new TargetAddress('myhost:50051', 0)], 'myhost:50051'), + new Target('passthrough', [new TargetAddress('myhost:50051', 0)], 'myhost:50051'), ]; yield 'bare bracketed ipv6' => [ '[::1]:50051', - new Target(Scheme::Dns, [new TargetAddress('[::1]', 50_051)], '[::1]:50051'), + new Target('dns', [new TargetAddress('[::1]', 50_051)], '[::1]:50051'), + ]; + + yield 'custom scheme etcd:///endpoint' => [ + 'etcd:///services/echo', + new Target('etcd', [new TargetAddress('services/echo', 0)], 'services/echo'), + ]; + + yield 'custom scheme with authority' => [ + 'etcd://registry:2379/services/echo', + new Target('etcd', [new TargetAddress('services/echo', 0)], 'services/echo', 'registry:2379'), ]; } @@ -148,7 +158,8 @@ public static function provideParseTargetThrowsCases(): iterable yield 'ipv4: no address' => ['ipv4:']; yield 'ipv6: no address' => ['ipv6:']; yield 'dns:/// empty host' => ['dns:///']; - yield 'unknown scheme' => ['etcd:myhost:50051']; + yield 'unknown scheme without slashes' => ['etcd:myhost:50051']; + yield 'custom scheme without endpoint' => ['etcd://registry']; yield 'ipv4: trailing comma' => ['ipv4:192.168.0.1:50051,']; yield 'ipv4: leading comma' => ['ipv4:,192.168.0.1:50051']; yield 'http scheme' => ['http://localhost:50051']; diff --git a/tests/genproto/Chat/Api/V1/TestsProtosChatV1DescriptorRegistry.php b/tests/genproto/Chat/Api/V1/DescriptorRegistry.php similarity index 53% rename from tests/genproto/Chat/Api/V1/TestsProtosChatV1DescriptorRegistry.php rename to tests/genproto/Chat/Api/V1/DescriptorRegistry.php index b1e00c6..e6b9a7a 100644 --- a/tests/genproto/Chat/Api/V1/TestsProtosChatV1DescriptorRegistry.php +++ b/tests/genproto/Chat/Api/V1/DescriptorRegistry.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/chat_v1.proto */ @@ -19,14 +19,14 @@ /** * @api */ -final readonly class TestsProtosChatV1DescriptorRegistry implements Registry\Registrar +final readonly class DescriptorRegistry implements Registry\Registrar { - private const string DESCRIPTOR_BUFFER = 'Chp0ZXN0cy9wcm90b3MvY2hhdF92MS5wcm90bxILY2hhdC5hcGkudjEiHQoHTWVzc2FnZRISCgR0ZXh0GAEgASgJUgR0ZXh0MkoKEE1lc3NlbmdlclNlcnZpY2USNgoEQ2hhdBIULmNoYXQuYXBpLnYxLk1lc3NhZ2UaFC5jaGF0LmFwaS52MS5NZXNzYWdlKAEwAUrWAQoGEgQAAAoBCggKAQwSAwAAEgoICgECEgMCABQKCgoCBAASBAQABgEKCgoDBAABEgMECA8KCwoEBAACABIDBQQUCgwKBQQAAgAFEgMFBAoKDAoFBAACAAESAwULDwoMCgUEAAIAAxIDBRITCgoKAgYAEgQIAAoBCgoKAwYAARIDCAgYCgsKBAYAAgASAwkENgoMCgUGAAIAARIDCQgMCgwKBQYAAgAFEgMJDRMKDAoFBgACAAISAwkUGwoMCgUGAAIABhIDCSYsCgwKBQYAAgADEgMJLTRiBnByb3RvMw=='; + private const string CHAT_V1_DESCRIPTOR_BUFFER = 'Chp0ZXN0cy9wcm90b3MvY2hhdF92MS5wcm90bxILY2hhdC5hcGkudjEiHQoHTWVzc2FnZRISCgR0ZXh0GAEgASgJUgR0ZXh0MkoKEE1lc3NlbmdlclNlcnZpY2USNgoEQ2hhdBIULmNoYXQuYXBpLnYxLk1lc3NhZ2UaFC5jaGF0LmFwaS52MS5NZXNzYWdlKAEwAUrWAQoGEgQAAAoBCggKAQwSAwAAEgoICgECEgMCABQKCgoCBAASBAQABgEKCgoDBAABEgMECA8KCwoEBAACABIDBQQUCgwKBQQAAgAFEgMFBAoKDAoFBAACAAESAwULDwoMCgUEAAIAAxIDBRITCgoKAgYAEgQIAAoBCgoKAwYAARIDCAgYCgsKBAYAAgASAwkENgoMCgUGAAIAARIDCQgMCgwKBQYAAgAFEgMJDRMKDAoFBgACAAISAwkUGwoMCgUGAAIABhIDCSYsCgwKBQYAAgADEgMJLTRiBnByb3RvMw=='; #[Override] public function register(Registry\Pool $pool): void { - $pool->add(Registry\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( + $pool->add(Registry\Descriptor::base64(self::CHAT_V1_DESCRIPTOR_BUFFER), new File( name: 'tests/protos/chat_v1.proto', messages: [ new File\MessageDescriptor('chat.api.v1.Message', \Chat\Api\V1\Message::class), diff --git a/tests/genproto/Chat/Api/V1/Message.php b/tests/genproto/Chat/Api/V1/Message.php index 332292f..5e52d09 100644 --- a/tests/genproto/Chat/Api/V1/Message.php +++ b/tests/genproto/Chat/Api/V1/Message.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/chat_v1.proto */ diff --git a/tests/genproto/Chat/Api/V1/MessengerServiceClient.php b/tests/genproto/Chat/Api/V1/MessengerServiceClient.php index 0c44d1f..2f1b633 100644 --- a/tests/genproto/Chat/Api/V1/MessengerServiceClient.php +++ b/tests/genproto/Chat/Api/V1/MessengerServiceClient.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/chat_v1.proto */ diff --git a/tests/genproto/Chat/Api/V1/MessengerServiceServer.php b/tests/genproto/Chat/Api/V1/MessengerServiceServer.php index 6c9ea72..84477b5 100644 --- a/tests/genproto/Chat/Api/V1/MessengerServiceServer.php +++ b/tests/genproto/Chat/Api/V1/MessengerServiceServer.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/chat_v1.proto */ diff --git a/tests/genproto/Chat/Api/V1/MessengerServiceServerRegistry.php b/tests/genproto/Chat/Api/V1/MessengerServiceServerRegistry.php index bb5d527..be24d10 100644 --- a/tests/genproto/Chat/Api/V1/MessengerServiceServerRegistry.php +++ b/tests/genproto/Chat/Api/V1/MessengerServiceServerRegistry.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/chat_v1.proto */ diff --git a/tests/genproto/Chat/Api/V1/autoload.metadata.php b/tests/genproto/Chat/Api/V1/autoload.metadata.php index f2267d7..46eecaf 100644 --- a/tests/genproto/Chat/Api/V1/autoload.metadata.php +++ b/tests/genproto/Chat/Api/V1/autoload.metadata.php @@ -3,12 +3,12 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 */ declare(strict_types=1); \Thesis\Protobuf\Registry\Pool::get()->register( - new \Thesis\Protobuf\Registry\OnceRegistrar(new \Chat\Api\V1\TestsProtosChatV1DescriptorRegistry()), + new \Thesis\Protobuf\Registry\OnceRegistrar(new \Chat\Api\V1\DescriptorRegistry()), ); diff --git a/tests/genproto/Echos/Api/V1/TestsProtosEchoV1DescriptorRegistry.php b/tests/genproto/Echos/Api/V1/DescriptorRegistry.php similarity index 52% rename from tests/genproto/Echos/Api/V1/TestsProtosEchoV1DescriptorRegistry.php rename to tests/genproto/Echos/Api/V1/DescriptorRegistry.php index 137d7bf..1ada19b 100644 --- a/tests/genproto/Echos/Api/V1/TestsProtosEchoV1DescriptorRegistry.php +++ b/tests/genproto/Echos/Api/V1/DescriptorRegistry.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/echo_v1.proto */ @@ -19,14 +19,14 @@ /** * @api */ -final readonly class TestsProtosEchoV1DescriptorRegistry implements Registry\Registrar +final readonly class DescriptorRegistry implements Registry\Registrar { - private const string DESCRIPTOR_BUFFER = 'Chp0ZXN0cy9wcm90b3MvZWNob192MS5wcm90bxIMZWNob3MuYXBpLnYxIikKC0VjaG9SZXF1ZXN0EhoKCHNlbnRlbmNlGAEgASgJUghzZW50ZW5jZSIqCgxFY2hvUmVzcG9uc2USGgoIc2VudGVuY2UYASABKAlSCHNlbnRlbmNlMkwKC0VjaG9TZXJ2aWNlEj0KBEVjaG8SGS5lY2hvcy5hcGkudjEuRWNob1JlcXVlc3QaGi5lY2hvcy5hcGkudjEuRWNob1Jlc3BvbnNlSokCCgYSBAAADgEKCAoBDBIDAAASCggKAQISAwIAFQoKCgIEABIEBAAGAQoKCgMEAAESAwQIEwoLCgQEAAIAEgMFBBgKDAoFBAACAAUSAwUECgoMCgUEAAIAARIDBQsTCgwKBQQAAgADEgMFFhcKCgoCBAESBAgACgEKCgoDBAEBEgMICBQKCwoEBAECABIDCQQYCgwKBQQBAgAFEgMJBAoKDAoFBAECAAESAwkLEwoMCgUEAQIAAxIDCRYXCgoKAgYAEgQMAA4BCgoKAwYAARIDDAgTCgsKBAYAAgASAw0EMQoMCgUGAAIAARIDDQgMCgwKBQYAAgACEgMNDRgKDAoFBgACAAMSAw0jL2IGcHJvdG8z'; + private const string ECHO_V1_DESCRIPTOR_BUFFER = 'Chp0ZXN0cy9wcm90b3MvZWNob192MS5wcm90bxIMZWNob3MuYXBpLnYxIikKC0VjaG9SZXF1ZXN0EhoKCHNlbnRlbmNlGAEgASgJUghzZW50ZW5jZSIqCgxFY2hvUmVzcG9uc2USGgoIc2VudGVuY2UYASABKAlSCHNlbnRlbmNlMkwKC0VjaG9TZXJ2aWNlEj0KBEVjaG8SGS5lY2hvcy5hcGkudjEuRWNob1JlcXVlc3QaGi5lY2hvcy5hcGkudjEuRWNob1Jlc3BvbnNlSokCCgYSBAAADgEKCAoBDBIDAAASCggKAQISAwIAFQoKCgIEABIEBAAGAQoKCgMEAAESAwQIEwoLCgQEAAIAEgMFBBgKDAoFBAACAAUSAwUECgoMCgUEAAIAARIDBQsTCgwKBQQAAgADEgMFFhcKCgoCBAESBAgACgEKCgoDBAEBEgMICBQKCwoEBAECABIDCQQYCgwKBQQBAgAFEgMJBAoKDAoFBAECAAESAwkLEwoMCgUEAQIAAxIDCRYXCgoKAgYAEgQMAA4BCgoKAwYAARIDDAgTCgsKBAYAAgASAw0EMQoMCgUGAAIAARIDDQgMCgwKBQYAAgACEgMNDRgKDAoFBgACAAMSAw0jL2IGcHJvdG8z'; #[Override] public function register(Registry\Pool $pool): void { - $pool->add(Registry\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( + $pool->add(Registry\Descriptor::base64(self::ECHO_V1_DESCRIPTOR_BUFFER), new File( name: 'tests/protos/echo_v1.proto', messages: [ new File\MessageDescriptor('echos.api.v1.EchoRequest', \Echos\Api\V1\EchoRequest::class), diff --git a/tests/genproto/Echos/Api/V1/EchoRequest.php b/tests/genproto/Echos/Api/V1/EchoRequest.php index 62a0de2..4047ac8 100644 --- a/tests/genproto/Echos/Api/V1/EchoRequest.php +++ b/tests/genproto/Echos/Api/V1/EchoRequest.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/echo_v1.proto */ diff --git a/tests/genproto/Echos/Api/V1/EchoResponse.php b/tests/genproto/Echos/Api/V1/EchoResponse.php index d84dd03..91657f0 100644 --- a/tests/genproto/Echos/Api/V1/EchoResponse.php +++ b/tests/genproto/Echos/Api/V1/EchoResponse.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/echo_v1.proto */ diff --git a/tests/genproto/Echos/Api/V1/EchoServiceClient.php b/tests/genproto/Echos/Api/V1/EchoServiceClient.php index deb49b4..79f974a 100644 --- a/tests/genproto/Echos/Api/V1/EchoServiceClient.php +++ b/tests/genproto/Echos/Api/V1/EchoServiceClient.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/echo_v1.proto */ diff --git a/tests/genproto/Echos/Api/V1/EchoServiceServer.php b/tests/genproto/Echos/Api/V1/EchoServiceServer.php index b75d8ec..f491ae8 100644 --- a/tests/genproto/Echos/Api/V1/EchoServiceServer.php +++ b/tests/genproto/Echos/Api/V1/EchoServiceServer.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/echo_v1.proto */ diff --git a/tests/genproto/Echos/Api/V1/EchoServiceServerRegistry.php b/tests/genproto/Echos/Api/V1/EchoServiceServerRegistry.php index 78c85e0..10f3b4a 100644 --- a/tests/genproto/Echos/Api/V1/EchoServiceServerRegistry.php +++ b/tests/genproto/Echos/Api/V1/EchoServiceServerRegistry.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/echo_v1.proto */ diff --git a/tests/genproto/Echos/Api/V1/autoload.metadata.php b/tests/genproto/Echos/Api/V1/autoload.metadata.php index 5179801..8dc6a91 100644 --- a/tests/genproto/Echos/Api/V1/autoload.metadata.php +++ b/tests/genproto/Echos/Api/V1/autoload.metadata.php @@ -3,12 +3,12 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 */ declare(strict_types=1); \Thesis\Protobuf\Registry\Pool::get()->register( - new \Thesis\Protobuf\Registry\OnceRegistrar(new \Echos\Api\V1\TestsProtosEchoV1DescriptorRegistry()), + new \Thesis\Protobuf\Registry\OnceRegistrar(new \Echos\Api\V1\DescriptorRegistry()), ); diff --git a/tests/genproto/File/Api/V1/Chunk.php b/tests/genproto/File/Api/V1/Chunk.php index 46ce8dc..2cd060b 100644 --- a/tests/genproto/File/Api/V1/Chunk.php +++ b/tests/genproto/File/Api/V1/Chunk.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/file_v1.proto */ diff --git a/tests/genproto/File/Api/V1/TestsProtosFileV1DescriptorRegistry.php b/tests/genproto/File/Api/V1/DescriptorRegistry.php similarity index 52% rename from tests/genproto/File/Api/V1/TestsProtosFileV1DescriptorRegistry.php rename to tests/genproto/File/Api/V1/DescriptorRegistry.php index e9e6eca..d4f52cc 100644 --- a/tests/genproto/File/Api/V1/TestsProtosFileV1DescriptorRegistry.php +++ b/tests/genproto/File/Api/V1/DescriptorRegistry.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/file_v1.proto */ @@ -19,14 +19,14 @@ /** * @api */ -final readonly class TestsProtosFileV1DescriptorRegistry implements Registry\Registrar +final readonly class DescriptorRegistry implements Registry\Registrar { - private const string DESCRIPTOR_BUFFER = 'Chp0ZXN0cy9wcm90b3MvZmlsZV92MS5wcm90bxILZmlsZS5hcGkudjEiIQoFQ2h1bmsSGAoHY29udGVudBgBIAEoDFIHY29udGVudCIeCghGaWxlSW5mbxISCgRzaXplGAEgASgFUgRzaXplMkQKC0ZpbGVTZXJ2aWNlEjUKBlVwbG9hZBISLmZpbGUuYXBpLnYxLkNodW5rGhUuZmlsZS5hcGkudjEuRmlsZUluZm8oAUqXAgoGEgQAAA4BCggKAQwSAwAAEgoICgECEgMCABQKCgoCBAASBAQABgEKCgoDBAABEgMECA0KCwoEBAACABIDBQQWCgwKBQQAAgAFEgMFBAkKDAoFBAACAAESAwUKEQoMCgUEAAIAAxIDBRQVCgoKAgQBEgQIAAoBCgoKAwQBARIDCAgQCgsKBAQBAgASAwkEEwoMCgUEAQIABRIDCQQJCgwKBQQBAgABEgMJCg4KDAoFBAECAAMSAwkREgoKCgIGABIEDAAOAQoKCgMGAAESAwwIEwoLCgQGAAIAEgMNBDEKDAoFBgACAAESAw0IDgoMCgUGAAIABRIDDRAWCgwKBQYAAgACEgMNFxwKDAoFBgACAAMSAw0nL2IGcHJvdG8z'; + private const string FILE_V1_DESCRIPTOR_BUFFER = 'Chp0ZXN0cy9wcm90b3MvZmlsZV92MS5wcm90bxILZmlsZS5hcGkudjEiIQoFQ2h1bmsSGAoHY29udGVudBgBIAEoDFIHY29udGVudCIeCghGaWxlSW5mbxISCgRzaXplGAEgASgFUgRzaXplMkQKC0ZpbGVTZXJ2aWNlEjUKBlVwbG9hZBISLmZpbGUuYXBpLnYxLkNodW5rGhUuZmlsZS5hcGkudjEuRmlsZUluZm8oAUqXAgoGEgQAAA4BCggKAQwSAwAAEgoICgECEgMCABQKCgoCBAASBAQABgEKCgoDBAABEgMECA0KCwoEBAACABIDBQQWCgwKBQQAAgAFEgMFBAkKDAoFBAACAAESAwUKEQoMCgUEAAIAAxIDBRQVCgoKAgQBEgQIAAoBCgoKAwQBARIDCAgQCgsKBAQBAgASAwkEEwoMCgUEAQIABRIDCQQJCgwKBQQBAgABEgMJCg4KDAoFBAECAAMSAwkREgoKCgIGABIEDAAOAQoKCgMGAAESAwwIEwoLCgQGAAIAEgMNBDEKDAoFBgACAAESAw0IDgoMCgUGAAIABRIDDRAWCgwKBQYAAgACEgMNFxwKDAoFBgACAAMSAw0nL2IGcHJvdG8z'; #[Override] public function register(Registry\Pool $pool): void { - $pool->add(Registry\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( + $pool->add(Registry\Descriptor::base64(self::FILE_V1_DESCRIPTOR_BUFFER), new File( name: 'tests/protos/file_v1.proto', messages: [ new File\MessageDescriptor('file.api.v1.Chunk', \File\Api\V1\Chunk::class), diff --git a/tests/genproto/File/Api/V1/FileInfo.php b/tests/genproto/File/Api/V1/FileInfo.php index b9e2e98..f94dc28 100644 --- a/tests/genproto/File/Api/V1/FileInfo.php +++ b/tests/genproto/File/Api/V1/FileInfo.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/file_v1.proto */ diff --git a/tests/genproto/File/Api/V1/FileServiceClient.php b/tests/genproto/File/Api/V1/FileServiceClient.php index 546a9da..dcd2463 100644 --- a/tests/genproto/File/Api/V1/FileServiceClient.php +++ b/tests/genproto/File/Api/V1/FileServiceClient.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/file_v1.proto */ diff --git a/tests/genproto/File/Api/V1/FileServiceServer.php b/tests/genproto/File/Api/V1/FileServiceServer.php index 00b211f..5dedae9 100644 --- a/tests/genproto/File/Api/V1/FileServiceServer.php +++ b/tests/genproto/File/Api/V1/FileServiceServer.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/file_v1.proto */ diff --git a/tests/genproto/File/Api/V1/FileServiceServerRegistry.php b/tests/genproto/File/Api/V1/FileServiceServerRegistry.php index 0893cd6..46e5833 100644 --- a/tests/genproto/File/Api/V1/FileServiceServerRegistry.php +++ b/tests/genproto/File/Api/V1/FileServiceServerRegistry.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/file_v1.proto */ diff --git a/tests/genproto/File/Api/V1/autoload.metadata.php b/tests/genproto/File/Api/V1/autoload.metadata.php index 4fed2cd..1f2c056 100644 --- a/tests/genproto/File/Api/V1/autoload.metadata.php +++ b/tests/genproto/File/Api/V1/autoload.metadata.php @@ -3,12 +3,12 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 */ declare(strict_types=1); \Thesis\Protobuf\Registry\Pool::get()->register( - new \Thesis\Protobuf\Registry\OnceRegistrar(new \File\Api\V1\TestsProtosFileV1DescriptorRegistry()), + new \Thesis\Protobuf\Registry\OnceRegistrar(new \File\Api\V1\DescriptorRegistry()), ); diff --git a/tests/genproto/Topic/Api/V1/DescriptorRegistry.php b/tests/genproto/Topic/Api/V1/DescriptorRegistry.php new file mode 100644 index 0000000..b267403 --- /dev/null +++ b/tests/genproto/Topic/Api/V1/DescriptorRegistry.php @@ -0,0 +1,48 @@ +add(Registry\Descriptor::base64(self::TOPIC_V1_DESCRIPTOR_BUFFER), new File( + name: 'tests/protos/topic_v1.proto', + dependencies: [ + 'google/protobuf/timestamp.proto', + ], + messages: [ + new File\MessageDescriptor('topic.api.v1.SubscribeRequest', \Topic\Api\V1\SubscribeRequest::class), + new File\MessageDescriptor('topic.api.v1.Event', \Topic\Api\V1\Event::class), + ], + services: [ + new File\ServiceDescriptor( + name: 'topic.api.v1.TopicService', + methods: [ + new File\MethodDescriptor('Subscribe', false, true), + ], + ), + ], + )); + } +} diff --git a/tests/genproto/Topic/Api/V1/Event.php b/tests/genproto/Topic/Api/V1/Event.php index 368557e..e864259 100644 --- a/tests/genproto/Topic/Api/V1/Event.php +++ b/tests/genproto/Topic/Api/V1/Event.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/topic_v1.proto */ diff --git a/tests/genproto/Topic/Api/V1/SubscribeRequest.php b/tests/genproto/Topic/Api/V1/SubscribeRequest.php index 474a9ea..270ff19 100644 --- a/tests/genproto/Topic/Api/V1/SubscribeRequest.php +++ b/tests/genproto/Topic/Api/V1/SubscribeRequest.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/topic_v1.proto */ diff --git a/tests/genproto/Topic/Api/V1/TestsProtosTopicV1DescriptorRegistry.php b/tests/genproto/Topic/Api/V1/TestsProtosTopicV1DescriptorRegistry.php deleted file mode 100644 index dc068f9..0000000 --- a/tests/genproto/Topic/Api/V1/TestsProtosTopicV1DescriptorRegistry.php +++ /dev/null @@ -1,48 +0,0 @@ -add(Registry\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( - name: 'tests/protos/topic_v1.proto', - dependencies: [ - 'google/protobuf/timestamp.proto', - ], - messages: [ - new File\MessageDescriptor('topic.api.v1.SubscribeRequest', \Topic\Api\V1\SubscribeRequest::class), - new File\MessageDescriptor('topic.api.v1.Event', \Topic\Api\V1\Event::class), - ], - services: [ - new File\ServiceDescriptor( - name: 'topic.api.v1.TopicService', - methods: [ - new File\MethodDescriptor('Subscribe', false, true), - ], - ), - ], - )); - } -} diff --git a/tests/genproto/Topic/Api/V1/TopicServiceClient.php b/tests/genproto/Topic/Api/V1/TopicServiceClient.php index 3b28954..7a47057 100644 --- a/tests/genproto/Topic/Api/V1/TopicServiceClient.php +++ b/tests/genproto/Topic/Api/V1/TopicServiceClient.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/topic_v1.proto */ diff --git a/tests/genproto/Topic/Api/V1/TopicServiceServer.php b/tests/genproto/Topic/Api/V1/TopicServiceServer.php index 52d8da4..412202d 100644 --- a/tests/genproto/Topic/Api/V1/TopicServiceServer.php +++ b/tests/genproto/Topic/Api/V1/TopicServiceServer.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/topic_v1.proto */ diff --git a/tests/genproto/Topic/Api/V1/TopicServiceServerRegistry.php b/tests/genproto/Topic/Api/V1/TopicServiceServerRegistry.php index 27d3781..2dcb4b1 100644 --- a/tests/genproto/Topic/Api/V1/TopicServiceServerRegistry.php +++ b/tests/genproto/Topic/Api/V1/TopicServiceServerRegistry.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 * Source: tests/protos/topic_v1.proto */ diff --git a/tests/genproto/Topic/Api/V1/autoload.metadata.php b/tests/genproto/Topic/Api/V1/autoload.metadata.php index 156170d..6d91223 100644 --- a/tests/genproto/Topic/Api/V1/autoload.metadata.php +++ b/tests/genproto/Topic/Api/V1/autoload.metadata.php @@ -3,12 +3,12 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.3.0 + * thesis/protoc-plugin — v0.4.3 * protoc — v6.33.5 */ declare(strict_types=1); \Thesis\Protobuf\Registry\Pool::get()->register( - new \Thesis\Protobuf\Registry\OnceRegistrar(new \Topic\Api\V1\TestsProtosTopicV1DescriptorRegistry()), + new \Thesis\Protobuf\Registry\OnceRegistrar(new \Topic\Api\V1\DescriptorRegistry()), );