gitextract_vzvj21ua/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── pull_request_template.md │ └── workflows/ │ ├── buf.yml │ ├── lint.yml │ ├── release-jetbrains.yml │ ├── release-vscode.yml │ └── test.yml ├── .gitignore ├── .golangci.yml ├── .goreleaser.yaml ├── .octocov.yml ├── .vscode/ │ └── settings.json ├── LICENSE ├── Makefile ├── README.md ├── _examples/ │ ├── 01_minimum/ │ │ ├── .gitignore │ │ ├── .vscode/ │ │ │ └── settings.json │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── grpc-federation.yaml │ │ ├── main_test.go │ │ └── proto/ │ │ ├── buf.yaml │ │ └── federation/ │ │ └── federation.proto │ ├── 02_simple/ │ │ ├── .gitignore │ │ ├── .vscode/ │ │ │ └── settings.json │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── grpc-federation.yaml │ │ ├── main_test.go │ │ ├── post/ │ │ │ ├── post.pb.go │ │ │ └── post_grpc.pb.go │ │ ├── proto/ │ │ │ ├── buf.yaml │ │ │ ├── federation/ │ │ │ │ └── federation.proto │ │ │ ├── post/ │ │ │ │ └── post.proto │ │ │ └── user/ │ │ │ └── user.proto │ │ └── user/ │ │ ├── user.pb.go │ │ └── user_grpc.pb.go │ ├── 03_custom_resolver/ │ │ ├── .gitignore │ │ ├── .vscode/ │ │ │ └── settings.json │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ ├── federation_grpc_federation.pb.go │ │ │ ├── other.pb.go │ │ │ └── other_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main_test.go │ │ ├── post/ │ │ │ ├── post.pb.go │ │ │ └── post_grpc.pb.go │ │ ├── proto/ │ │ │ ├── buf.yaml │ │ │ ├── federation/ │ │ │ │ ├── federation.proto │ │ │ │ └── other.proto │ │ │ ├── post/ │ │ │ │ └── post.proto │ │ │ └── user/ │ │ │ └── user.proto │ │ └── user/ │ │ ├── user.pb.go │ │ └── user_grpc.pb.go │ ├── 04_timeout/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── grpc/ │ │ │ └── federation/ │ │ │ └── federation.pb.go │ │ ├── grpc-federation.yaml │ │ ├── main_test.go │ │ ├── post/ │ │ │ ├── post.pb.go │ │ │ └── post_grpc.pb.go │ │ └── proto/ │ │ ├── buf.yaml │ │ ├── federation/ │ │ │ └── federation.proto │ │ └── post/ │ │ └── post.proto │ ├── 05_async/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── grpc/ │ │ │ └── federation/ │ │ │ └── federation.pb.go │ │ ├── main_test.go │ │ └── proto/ │ │ ├── buf.yaml │ │ └── federation/ │ │ └── federation.proto │ ├── 06_alias/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── grpc/ │ │ │ └── federation/ │ │ │ └── federation.pb.go │ │ ├── main_test.go │ │ ├── post/ │ │ │ ├── post.pb.go │ │ │ ├── post_grpc.pb.go │ │ │ └── v2/ │ │ │ ├── extra.pb.go │ │ │ ├── post.pb.go │ │ │ └── post_grpc.pb.go │ │ └── proto/ │ │ ├── buf.yaml │ │ ├── federation/ │ │ │ └── federation.proto │ │ └── post/ │ │ ├── post.proto │ │ └── v2/ │ │ ├── extra.proto │ │ └── post.proto │ ├── 07_autobind/ │ │ ├── .gitignore │ │ ├── .vscode/ │ │ │ └── settings.json │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main_test.go │ │ ├── post/ │ │ │ ├── post.pb.go │ │ │ └── post_grpc.pb.go │ │ └── proto/ │ │ ├── buf.yaml │ │ ├── federation/ │ │ │ └── federation.proto │ │ └── post/ │ │ └── post.proto │ ├── 08_literal/ │ │ ├── .gitignore │ │ ├── .vscode/ │ │ │ └── settings.json │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── content/ │ │ │ ├── content.pb.go │ │ │ └── content_grpc.pb.go │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main_test.go │ │ └── proto/ │ │ ├── buf.yaml │ │ ├── content/ │ │ │ └── content.proto │ │ └── federation/ │ │ └── federation.proto │ ├── 09_multi_user/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── grpc/ │ │ │ └── federation/ │ │ │ └── federation.pb.go │ │ ├── main_test.go │ │ ├── proto/ │ │ │ ├── buf.yaml │ │ │ ├── federation/ │ │ │ │ └── federation.proto │ │ │ └── user/ │ │ │ └── user.proto │ │ └── user/ │ │ ├── user.pb.go │ │ └── user_grpc.pb.go │ ├── 10_oneof/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── grpc/ │ │ │ └── federation/ │ │ │ └── federation.pb.go │ │ ├── main_test.go │ │ ├── proto/ │ │ │ ├── buf.yaml │ │ │ ├── federation/ │ │ │ │ └── federation.proto │ │ │ └── user/ │ │ │ └── user.proto │ │ └── user/ │ │ ├── user.pb.go │ │ └── user_grpc.pb.go │ ├── 11_multi_service/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── comment/ │ │ │ └── comment.pb.go │ │ ├── favorite/ │ │ │ └── favorite.pb.go │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ ├── federation_grpc_federation.pb.go │ │ │ ├── other.pb.go │ │ │ ├── other_grpc.pb.go │ │ │ ├── other_grpc_federation.pb.go │ │ │ ├── ping.pb.go │ │ │ ├── ping_grpc_federation.pb.go │ │ │ ├── reaction.pb.go │ │ │ └── reaction_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── grpc/ │ │ │ └── federation/ │ │ │ └── federation.pb.go │ │ ├── grpc-federation.yaml │ │ ├── like/ │ │ │ └── like.pb.go │ │ ├── main_test.go │ │ └── proto/ │ │ ├── buf.yaml │ │ ├── comment/ │ │ │ └── comment.proto │ │ ├── favorite/ │ │ │ └── favorite.proto │ │ └── federation/ │ │ ├── federation.proto │ │ ├── other.proto │ │ └── reaction.proto │ ├── 12_validation/ │ │ ├── .gitignore │ │ ├── .vscode/ │ │ │ └── settings.json │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main_test.go │ │ └── proto/ │ │ ├── buf.yaml │ │ └── federation/ │ │ └── federation.proto │ ├── 13_map/ │ │ ├── .gitignore │ │ ├── .vscode/ │ │ │ └── settings.json │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main_test.go │ │ ├── post/ │ │ │ ├── post.pb.go │ │ │ └── post_grpc.pb.go │ │ ├── proto/ │ │ │ ├── buf.yaml │ │ │ ├── federation/ │ │ │ │ └── federation.proto │ │ │ ├── post/ │ │ │ │ └── post.proto │ │ │ └── user/ │ │ │ └── user.proto │ │ └── user/ │ │ ├── user.pb.go │ │ └── user_grpc.pb.go │ ├── 14_condition/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── grpc/ │ │ │ └── federation/ │ │ │ └── federation.pb.go │ │ ├── main_test.go │ │ ├── post/ │ │ │ ├── post.pb.go │ │ │ └── post_grpc.pb.go │ │ └── proto/ │ │ ├── buf.yaml │ │ ├── federation/ │ │ │ └── federation.proto │ │ └── post/ │ │ └── post.proto │ ├── 15_cel_plugin/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── README.md │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── cmd/ │ │ │ └── plugin/ │ │ │ └── main.go │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main_test.go │ │ ├── plugin/ │ │ │ ├── plugin.pb.go │ │ │ └── plugin_grpc_federation.pb.go │ │ └── proto/ │ │ ├── buf.yaml │ │ ├── federation/ │ │ │ └── federation.proto │ │ └── plugin/ │ │ └── plugin.proto │ ├── 16_code_gen_plugin/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── buf.work.yaml │ │ ├── cmd/ │ │ │ ├── config/ │ │ │ │ └── main.go │ │ │ └── plugin/ │ │ │ ├── main.go │ │ │ └── resolver.go.tmpl │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main_test.go │ │ ├── proto/ │ │ │ ├── buf.yaml │ │ │ └── federation/ │ │ │ └── federation.proto │ │ └── resolver_test.go │ ├── 17_error_handler/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── grpc/ │ │ │ └── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── generator.pb.go │ │ │ └── plugin.pb.go │ │ ├── main_test.go │ │ ├── post/ │ │ │ ├── post.pb.go │ │ │ └── post_grpc.pb.go │ │ └── proto/ │ │ ├── buf.yaml │ │ ├── federation/ │ │ │ └── federation.proto │ │ └── post/ │ │ └── post.proto │ ├── 18_load/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── cmd/ │ │ │ └── plugin/ │ │ │ └── main.go │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main_test.go │ │ ├── plugin/ │ │ │ ├── plugin.pb.go │ │ │ └── plugin_grpc_federation.pb.go │ │ └── proto/ │ │ ├── buf.yaml │ │ ├── federation/ │ │ │ └── federation.proto │ │ └── plugin/ │ │ └── plugin.proto │ ├── 19_retry/ │ │ ├── .gitignore │ │ ├── .vscode/ │ │ │ └── settings.json │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main_test.go │ │ ├── post/ │ │ │ ├── post.pb.go │ │ │ └── post_grpc.pb.go │ │ └── proto/ │ │ ├── buf.yaml │ │ ├── federation/ │ │ │ └── federation.proto │ │ └── post/ │ │ └── post.proto │ ├── 20_callopt/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── grpc-federation.yaml │ │ ├── main_test.go │ │ ├── post/ │ │ │ ├── post.pb.go │ │ │ └── post_grpc.pb.go │ │ └── proto/ │ │ ├── buf.yaml │ │ ├── federation/ │ │ │ └── federation.proto │ │ └── post/ │ │ └── post.proto │ ├── 21_wasm_net/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── buf.gen.yaml │ │ ├── buf.work.yaml │ │ ├── cmd/ │ │ │ └── plugin/ │ │ │ └── main.go │ │ ├── federation/ │ │ │ ├── federation.pb.go │ │ │ ├── federation_grpc.pb.go │ │ │ └── federation_grpc_federation.pb.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main_test.go │ │ ├── plugin/ │ │ │ ├── plugin.pb.go │ │ │ └── plugin_grpc_federation.pb.go │ │ └── proto/ │ │ ├── buf.yaml │ │ ├── federation/ │ │ │ └── federation.proto │ │ └── plugin/ │ │ └── plugin.proto │ └── 22_switch/ │ ├── .gitignore │ ├── Makefile │ ├── buf.gen.yaml │ ├── buf.work.yaml │ ├── federation/ │ │ ├── federation.pb.go │ │ ├── federation_grpc.pb.go │ │ └── federation_grpc_federation.pb.go │ ├── go.mod │ ├── go.sum │ ├── grpc/ │ │ └── federation/ │ │ └── federation.pb.go │ ├── grpc-federation.yaml │ ├── main_test.go │ └── proto/ │ ├── buf.yaml │ └── federation/ │ └── federation.proto ├── buf.gen.yaml ├── buf.work.yaml ├── cmd/ │ ├── grpc-federation-generator/ │ │ └── main.go │ ├── grpc-federation-language-server/ │ │ ├── README.md │ │ └── main.go │ ├── grpc-federation-linter/ │ │ └── main.go │ ├── grpc-federation-mcp-server/ │ │ ├── assets/ │ │ │ └── docs.md │ │ └── main.go │ ├── grpcfedctl/ │ │ ├── main.go │ │ ├── plugin.go │ │ └── version.go │ └── protoc-gen-grpc-federation/ │ └── main.go ├── compiler/ │ ├── compiler.go │ ├── compiler_test.go │ └── testdata/ │ ├── post.proto │ ├── service.proto │ └── user.proto ├── demo/ │ ├── Makefile │ ├── README.md │ ├── buf.gen.yaml │ ├── buf.work.yaml │ ├── cmd/ │ │ ├── film/ │ │ │ └── main.go │ │ ├── person/ │ │ │ └── main.go │ │ ├── planet/ │ │ │ └── main.go │ │ ├── species/ │ │ │ └── main.go │ │ ├── starship/ │ │ │ └── main.go │ │ ├── swapi/ │ │ │ └── main.go │ │ └── vehicle/ │ │ └── main.go │ ├── compose.yaml │ ├── go.mod │ ├── go.sum │ ├── proto/ │ │ ├── buf.yaml │ │ ├── film/ │ │ │ └── film.proto │ │ ├── person/ │ │ │ └── person.proto │ │ ├── planet/ │ │ │ └── planet.proto │ │ ├── species/ │ │ │ └── species.proto │ │ ├── starship/ │ │ │ └── starship.proto │ │ ├── swapi.proto │ │ └── vehicle/ │ │ └── vehicle.proto │ ├── services/ │ │ ├── film/ │ │ │ ├── film.go │ │ │ └── film_test.go │ │ ├── person/ │ │ │ ├── person.go │ │ │ └── person_test.go │ │ ├── planet/ │ │ │ ├── planet.go │ │ │ └── planet_test.go │ │ ├── species/ │ │ │ ├── species.go │ │ │ └── species_test.go │ │ ├── starship/ │ │ │ ├── starship.go │ │ │ └── starship_test.go │ │ └── vehicle/ │ │ ├── vehicle.go │ │ └── vehicle_test.go │ ├── swapi/ │ │ ├── film/ │ │ │ ├── film.pb.go │ │ │ └── film_grpc.pb.go │ │ ├── person/ │ │ │ ├── person.pb.go │ │ │ └── person_grpc.pb.go │ │ ├── planet/ │ │ │ ├── planet.pb.go │ │ │ └── planet_grpc.pb.go │ │ ├── species/ │ │ │ ├── species.pb.go │ │ │ └── species_grpc.pb.go │ │ ├── starship/ │ │ │ ├── starship.pb.go │ │ │ └── starship_grpc.pb.go │ │ ├── swapi/ │ │ │ ├── swapi.pb.go │ │ │ ├── swapi_grpc.pb.go │ │ │ └── swapi_grpc_federation.pb.go │ │ └── vehicle/ │ │ ├── vehicle.pb.go │ │ └── vehicle_grpc.pb.go │ └── util/ │ └── util.go ├── docs/ │ ├── cel/ │ │ ├── any.md │ │ ├── enum.md │ │ ├── list.md │ │ ├── log.md │ │ ├── math.md │ │ ├── metadata.md │ │ ├── rand.md │ │ ├── regexp.md │ │ ├── strings.md │ │ ├── time.md │ │ ├── url.md │ │ └── uuid.md │ ├── cel.md │ ├── cel_plugin.md │ ├── code_generation_plugin.md │ ├── getting_started.md │ ├── installation.md │ └── references.md ├── generator/ │ ├── code_generator.go │ ├── code_generator_test.go │ ├── config.go │ ├── funcs.go │ ├── funcs_test.go │ ├── generator.go │ ├── generator_test.go │ ├── plugin_option_test.go │ ├── protoc_gen_go_grpc.go │ ├── templates/ │ │ ├── cast.go.tmpl │ │ ├── error_handler.go.tmpl │ │ ├── eval.go.tmpl │ │ ├── plugin.go.tmpl │ │ ├── retry.go.tmpl │ │ ├── server.go.tmpl │ │ ├── switch.go.tmpl │ │ └── validation.go.tmpl │ ├── testdata/ │ │ ├── expected_alias.go │ │ ├── expected_alias_multifile.go │ │ ├── expected_async.go │ │ ├── expected_autobind.go │ │ ├── expected_condition.go │ │ ├── expected_create_post.go │ │ ├── expected_custom_resolver.go │ │ ├── expected_env.go │ │ ├── expected_error_handler.go │ │ ├── expected_inline_env.go │ │ ├── expected_map.go │ │ ├── expected_minimum.go │ │ ├── expected_multi_user.go │ │ ├── expected_oneof.go │ │ ├── expected_ref_env.go │ │ ├── expected_resolver_overlaps.go │ │ ├── expected_simple_aggregation.go │ │ ├── expected_switch.go │ │ └── expected_validation.go │ ├── wasm.go │ └── watcher.go ├── go.mod ├── go.sum ├── grpc/ │ └── federation/ │ ├── alias.go │ ├── cast.go │ ├── cel/ │ │ ├── any.go │ │ ├── any_test.go │ │ ├── bind.go │ │ ├── bind_test.go │ │ ├── cast.go │ │ ├── cast_test.go │ │ ├── context.go │ │ ├── conv.go │ │ ├── enum.go │ │ ├── lib.go │ │ ├── list.go │ │ ├── list_test.go │ │ ├── log.go │ │ ├── log_test.go │ │ ├── math.go │ │ ├── math_test.go │ │ ├── metadata.go │ │ ├── metadata_test.go │ │ ├── plugin/ │ │ │ └── plugin.pb.go │ │ ├── plugin.go │ │ ├── plugin_test.go │ │ ├── private.pb.go │ │ ├── rand.go │ │ ├── rand_test.go │ │ ├── regexp.go │ │ ├── regexp_test.go │ │ ├── strings.go │ │ ├── strings_test.go │ │ ├── testdata/ │ │ │ ├── Makefile │ │ │ ├── plugin/ │ │ │ │ └── main.go │ │ │ ├── test.proto │ │ │ └── testpb/ │ │ │ └── test.pb.go │ │ ├── time.go │ │ ├── time.pb.go │ │ ├── time_test.go │ │ ├── url.go │ │ ├── url.pb.go │ │ ├── url_test.go │ │ ├── uuid.go │ │ └── uuid_test.go │ ├── cel.go │ ├── cel_plugin.go │ ├── const.go │ ├── context.go │ ├── custom_resolver.go │ ├── error.go │ ├── federation.pb.go │ ├── generator/ │ │ ├── decode.go │ │ ├── encode.go │ │ ├── generator_test.go │ │ ├── plugin/ │ │ │ └── generator.pb.go │ │ └── types.go │ ├── lib.go │ ├── log/ │ │ └── context.go │ ├── net/ │ │ ├── net.go │ │ └── other.go │ ├── otel.go │ ├── plugin.go │ ├── plugin_wasip1.go │ ├── trace/ │ │ ├── alias.go │ │ └── context.go │ ├── validation.go │ ├── version.go │ └── version_test.go ├── internal/ │ └── testutil/ │ ├── builder.go │ ├── cmpopt.go │ └── compiler.go ├── lsp/ │ ├── client/ │ │ ├── jetbrains/ │ │ │ ├── .gitignore │ │ │ ├── .run/ │ │ │ │ ├── Run IDE for UI Tests.run.xml │ │ │ │ ├── Run Plugin.run.xml │ │ │ │ ├── Run Qodana.run.xml │ │ │ │ ├── Run Tests.run.xml │ │ │ │ └── Run Verifications.run.xml │ │ │ ├── CHANGELOG.md │ │ │ ├── README.md │ │ │ ├── build.gradle.kts │ │ │ ├── gradle/ │ │ │ │ ├── libs.versions.toml │ │ │ │ └── wrapper/ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradle.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ ├── qodana.yml │ │ │ ├── settings.gradle.kts │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── kotlin/ │ │ │ │ └── com/ │ │ │ │ └── github/ │ │ │ │ └── mercari/ │ │ │ │ └── grpcfederation/ │ │ │ │ ├── GrpcFederationBundle.kt │ │ │ │ ├── lsp/ │ │ │ │ │ └── GrpcFederationLspServerSupportProvider.kt │ │ │ │ └── settings/ │ │ │ │ ├── ImportPathTableModel.kt │ │ │ │ ├── PathUtils.kt │ │ │ │ ├── ProjectSettingsConfigurable.kt │ │ │ │ ├── ProjectSettingsService.kt │ │ │ │ └── impl/ │ │ │ │ └── ProjectSettingsServiceImpl.kt │ │ │ └── resources/ │ │ │ ├── META-INF/ │ │ │ │ └── plugin.xml │ │ │ └── messages/ │ │ │ └── GrpcFederationBundle.properties │ │ └── vscode/ │ │ ├── .eslintignore │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .vscode/ │ │ │ ├── extensions.json │ │ │ ├── launch.json │ │ │ ├── settings.json │ │ │ └── tasks.json │ │ ├── .vscodeignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── constants.ts │ │ │ └── extension.ts │ │ └── tsconfig.json │ └── server/ │ ├── completion.go │ ├── completion_test.go │ ├── definition.go │ ├── general.go │ ├── handler.go │ ├── handler_test.go │ ├── semantic_tokens.go │ ├── semantic_tokens_test.go │ ├── server.go │ ├── testdata/ │ │ ├── completion.proto │ │ ├── post.proto │ │ ├── service.proto │ │ └── user.proto │ ├── text_document_sync.go │ ├── util.go │ └── validator.go ├── proto/ │ ├── buf.yaml │ └── grpc/ │ └── federation/ │ ├── embed.go │ ├── federation.proto │ ├── generator.proto │ ├── plugin.proto │ ├── private.proto │ ├── time.proto │ └── url.proto ├── proto_deps/ │ └── google/ │ ├── api/ │ │ └── expr/ │ │ └── v1alpha1/ │ │ ├── checked.proto │ │ └── syntax.proto │ └── rpc/ │ ├── code.proto │ ├── embed.go │ └── error_details.proto ├── resolver/ │ ├── candidates.go │ ├── candidates_test.go │ ├── cel.go │ ├── cel_test.go │ ├── context.go │ ├── def.go │ ├── enum.go │ ├── error.go │ ├── extension.go │ ├── field.go │ ├── file.go │ ├── file_test.go │ ├── format.go │ ├── format_test.go │ ├── fqdn.go │ ├── graph.go │ ├── message.go │ ├── method.go │ ├── oneof.go │ ├── resolver.go │ ├── resolver_test.go │ ├── service.go │ ├── std_fd.go │ ├── type_conversion.go │ ├── types.go │ ├── value.go │ └── wellknown_types.go ├── source/ │ ├── clone.go │ ├── file.go │ ├── file_test.go │ ├── location.go │ ├── location_builder.go │ ├── location_test.go │ ├── testdata/ │ │ ├── coverage.proto │ │ ├── post.proto │ │ ├── service.proto │ │ ├── switch.proto │ │ └── user.proto │ ├── type_helper.go │ └── type_helper_test.go ├── testdata/ │ ├── alias.proto │ ├── alias_multifile.proto │ ├── async.proto │ ├── autobind.proto │ ├── condition.proto │ ├── content.proto │ ├── create_post.proto │ ├── custom_resolver.proto │ ├── dependency_base_message.proto │ ├── dependency_child_message.proto │ ├── dependency_message_argument.proto │ ├── dependency_method_response.proto │ ├── dependency_oneof.proto │ ├── dependency_service_variable.proto │ ├── error_handler.proto │ ├── inline_env.proto │ ├── map.proto │ ├── minimum.proto │ ├── multi_user.proto │ ├── nested_post.proto │ ├── oneof.proto │ ├── post.proto │ ├── post_v2.proto │ ├── post_v2_extra.proto │ ├── ref_env.proto │ ├── resolver_overlaps.proto │ ├── simple_aggregation.proto │ ├── switch.proto │ ├── user.proto │ └── validation.proto ├── types/ │ └── types.go ├── util/ │ └── name.go └── validator/ ├── testdata/ │ ├── conflict_service_variable.proto │ ├── conflict_switch_case_variable.proto │ ├── conflict_switch_default_variable.proto │ ├── different_message_argument_type.proto │ ├── duplicated_variable_name.proto │ ├── echo.proto │ ├── empty_response_field.proto │ ├── invalid_autobind.proto │ ├── invalid_call_error_handler.proto │ ├── invalid_call_metadata.proto │ ├── invalid_call_option.proto │ ├── invalid_condition_type.proto │ ├── invalid_enum_alias_target.proto │ ├── invalid_enum_attribute.proto │ ├── invalid_enum_conversion.proto │ ├── invalid_enum_selector.proto │ ├── invalid_enum_value_noalias.proto │ ├── invalid_env.proto │ ├── invalid_error_variable.proto │ ├── invalid_field_option.proto │ ├── invalid_field_type.proto │ ├── invalid_field_type_by_switch.proto │ ├── invalid_file_import.proto │ ├── invalid_go_package.proto │ ├── invalid_list_sort.proto │ ├── invalid_map_iterator_src.proto │ ├── invalid_map_iterator_src_type.proto │ ├── invalid_message_alias.proto │ ├── invalid_message_alias_target.proto │ ├── invalid_message_argument.proto │ ├── invalid_message_field_alias.proto │ ├── invalid_message_map.proto │ ├── invalid_message_map_alias.proto │ ├── invalid_message_name.proto │ ├── invalid_method.proto │ ├── invalid_method_name.proto │ ├── invalid_method_request.proto │ ├── invalid_method_response.proto │ ├── invalid_method_response_option.proto │ ├── invalid_method_service_name.proto │ ├── invalid_method_timeout_format.proto │ ├── invalid_multi_alias.proto │ ├── invalid_multiple_env.proto │ ├── invalid_nested_message_field.proto │ ├── invalid_nested_message_name.proto │ ├── invalid_oneof.proto │ ├── invalid_oneof_selection.proto │ ├── invalid_retry.proto │ ├── invalid_service_variable_switch.proto │ ├── invalid_switch_case_by_type.proto │ ├── invalid_switch_case_if_type.proto │ ├── invalid_switch_default_by_type.proto │ ├── invalid_validation_bad_request.proto │ ├── invalid_validation_code.proto │ ├── invalid_validation_details_return_type.proto │ ├── invalid_validation_localized_message.proto │ ├── invalid_validation_message_argument.proto │ ├── invalid_validation_precondition_failure.proto │ ├── invalid_validation_return_type.proto │ ├── invalid_validation_with_ignore.proto │ ├── invalid_variable_name.proto │ ├── invalid_wrapper_type_conversion.proto │ ├── message_cyclic_dependency.proto │ ├── missing_enum_alias.proto │ ├── missing_enum_value.proto │ ├── missing_enum_value_alias.proto │ ├── missing_field_option.proto │ ├── missing_file_import.proto │ ├── missing_map_iterator.proto │ ├── missing_message_alias.proto │ ├── missing_message_field_alias.proto │ ├── missing_message_option.proto │ ├── missing_method_request_value.proto │ ├── missing_response_message_option.proto │ ├── missing_service_variable.proto │ ├── missing_switch_case.proto │ ├── missing_switch_default.proto │ ├── nested_list.proto │ ├── nested_message_cyclic_dependency.proto │ ├── nested_post.proto │ ├── nested_post2.proto │ ├── post.proto │ ├── recursive_message_name.proto │ ├── repeated_switch_default.proto │ ├── user.proto │ └── valid_enum_value_reference.proto ├── validator.go └── validator_test.go