diff --git a/.gitignore b/.gitignore index 33aac5b14bf7b..857d52de7ec1d 100644 --- a/.gitignore +++ b/.gitignore @@ -113,3 +113,10 @@ website/www/site/code_samples website/www/site/_config_branch_repo.toml website/www/yarn-error.log !website/www/site/content + +# Dart/Flutter +**/.dart_tool +**/.packages +**/.flutter-plugins +**/.flutter-plugins-dependencies +**/generated_plugin_registrant.dart \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index a0f6313875408..b10b88dca53fb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -124,9 +124,7 @@ tasks.rat { // Ignore Flutter autogenerated files for Playground "playground/frontend/.metadata", "playground/frontend/pubspec.lock", - "playground/frontend/assets/**/*.svg", - "playground/frontend/assets/**/*.png", - "playground/frontend/assets/**/*.jpg", + "playground/frontend/**/*.svg", // Ignore .gitkeep file "**/.gitkeep" @@ -249,6 +247,15 @@ task("goIntegrationTests") { dependsOn(":runners:google-cloud-dataflow-java:worker:shadowJar") } +task("playgroundPreCommit") { + dependsOn(":playground:backend:tidy") + dependsOn(":playground:backend:test") + + dependsOn(":playground:frontend:pubGet") + dependsOn(":playground:frontend:analyze") + dependsOn(":playground:frontend:test") +} + task("pythonPreCommit") { dependsOn(":sdks:python:test-suites:tox:pycommon:preCommitPyCommon") dependsOn(":sdks:python:test-suites:tox:py36:preCommitPy36") diff --git a/playground/README.md b/playground/README.md new file mode 100644 index 0000000000000..fe90b2e6ae5d1 --- /dev/null +++ b/playground/README.md @@ -0,0 +1,57 @@ + + +# Playground + +The Beam Playground is a web application to run Beam code snippets in a modern +browser. This directory holds code to build, test, and deploy the frontend +and backend services. + +# Requirements + +The following requirements are needed for development, testing, and deploying. + +- [go 1.16+](https://golang.org) +- [flutter](https://flutter.dev/) +- Go protobuf dependencies (See [Go gRPC Quickstart](https://grpc.io/docs/languages/go/quickstart/)) +- Dart protobuf dependencies (See [Dart gRPC Quickstart](https://grpc.io/docs/languages/dart/)) +- [buf](https://docs.buf.build/installation) + +# Available Gradle Tasks + +## Perform overall pre-commit checks + +``` +cd beam +./gradlew playgroundPrecommit +``` + +## To see available gradle tasks for playground: + +``` +cd beam +./gradlew playground:tasks +``` + +## Re-generate protobuf + +``` +cd beam +./gradlew playground:generateProto +``` diff --git a/playground/playground/v1/playground.proto b/playground/api/v1/api.proto similarity index 96% rename from playground/playground/v1/playground.proto rename to playground/api/v1/api.proto index 7c26e0009d76e..b132980f85685 100644 --- a/playground/playground/v1/playground.proto +++ b/playground/api/v1/api.proto @@ -17,9 +17,9 @@ */ syntax = "proto3"; +option go_package = "beam.apache.org/playground/backend/internal;playground"; -option go_package = "github.com/apache/beam/playground/v1;playground"; -package playground.v1; +package api.v1; enum Sdk { SDK_UNSPECIFIED = 0; @@ -92,4 +92,4 @@ service PlaygroundService { // Get the result of pipeline compilation. rpc GetCompileOutput(GetCompileOutputRequest) returns (GetCompileOutputResponse); -} \ No newline at end of file +} diff --git a/playground/backend/build.gradle.kts b/playground/backend/build.gradle.kts new file mode 100644 index 0000000000000..0547b7cb1c779 --- /dev/null +++ b/playground/backend/build.gradle.kts @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +description = "Apache Beam :: Playground :: Backend" + +task("format") { + group = "build" + description = "Format backend go code" + doLast { + exec { + executable("gofmt") + args("-w", ".") + } + } +} + +task("tidy") { + group = "build" + description = "Run go mod tidy" + doLast { + exec { + executable("go") + args("mod", "tidy") + } + } +} + +task("test") { + group = "verification" + description = "Test the backend" + doLast { + exec { + executable("go") + args("test", "internal/...") + } + } +} diff --git a/playground/backend/cmd/server/controller.go b/playground/backend/cmd/server/controller.go index 13ab658557693..d38ff98630f10 100644 --- a/playground/backend/cmd/server/controller.go +++ b/playground/backend/cmd/server/controller.go @@ -15,8 +15,9 @@ package main import ( - pb "beam.apache.org/playground/backend/internal/api" "context" + + pb "beam.apache.org/playground/backend/internal/api/v1" "github.com/google/uuid" ) diff --git a/playground/backend/cmd/server/controller_test.go b/playground/backend/cmd/server/controller_test.go index 38885ec1e5e7c..a7f971ea50a5c 100644 --- a/playground/backend/cmd/server/controller_test.go +++ b/playground/backend/cmd/server/controller_test.go @@ -15,7 +15,7 @@ package main import ( - pb "beam.apache.org/playground/backend/internal/api" + pb "beam.apache.org/playground/backend/internal/api/v1" "context" "github.com/google/uuid" "google.golang.org/grpc" diff --git a/playground/backend/cmd/server/server.go b/playground/backend/cmd/server/server.go index 05045ea7d9ee4..310218845cb84 100644 --- a/playground/backend/cmd/server/server.go +++ b/playground/backend/cmd/server/server.go @@ -16,14 +16,15 @@ package main import ( - pb "beam.apache.org/playground/backend/internal/api" - "beam.apache.org/playground/backend/internal/environment" "context" + "log" + "os" + + pb "beam.apache.org/playground/backend/internal/api/v1" + "beam.apache.org/playground/backend/internal/environment" "github.com/improbable-eng/grpc-web/go/grpcweb" "google.golang.org/grpc" "google.golang.org/grpc/grpclog" - "log" - "os" ) // runServer is starting http server wrapped on grpc @@ -39,7 +40,7 @@ func runServer() error { handler := Wrap(grpcServer, getGrpcWebOptions()) errChan := make(chan error) - go listenHttp(ctx, errChan, envService.ServerEnvs, handler) + go listenHttp(ctx, errChan, envService, handler) for { select { diff --git a/playground/backend/go.sum b/playground/backend/go.sum index 3c4a244c8ef45..5c432804cf47e 100644 --- a/playground/backend/go.sum +++ b/playground/backend/go.sum @@ -4,7 +4,6 @@ dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= @@ -31,13 +30,11 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= @@ -47,6 +44,7 @@ github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfc github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= @@ -61,7 +59,6 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -69,8 +66,10 @@ github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVB github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do= +github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -81,14 +80,20 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM= +github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY= +github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/validator/v10 v10.2.0 h1:KgJ0snyC2R9VXYN2rneOtQcw5aHQB1Vv0sFl1UcHBOY= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= +github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -113,8 +118,6 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0 h1:LUVKkCeviFUMKqHa4tXIIij/lbhnMbP7Fn5wKdKkRh4= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -136,6 +139,7 @@ github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51 github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= @@ -175,6 +179,7 @@ github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCV github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= @@ -182,9 +187,8 @@ github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8 github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.11.7 h1:0hzRabrMN4tSTvMfnL3SCv1ZGeAP23ynzodBgaHeMeg= github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -192,6 +196,7 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw= +github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= @@ -200,6 +205,7 @@ github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaO github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= +github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -212,10 +218,13 @@ github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0Qu github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/grpc-proxy v0.0.0-20181017164139-0f1106ef9c76/go.mod h1:x5OoJHDHqxHS801UIuhqGl6QdSAEJvtausosHSdazIo= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= @@ -250,6 +259,7 @@ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= @@ -294,7 +304,6 @@ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1 github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -307,9 +316,12 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= @@ -367,11 +379,9 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202 h1:VvcQYSHwXgi7W+TpUR6A9g6Up98WAHf3f/ulnJ62IyA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20211007125505-59d4e928ea9d h1:QWMn1lFvU/nZ58ssWqiFJMd3DKIII8NYc4sn708XgKs= -golang.org/x/net v0.0.0-20211007125505-59d4e928ea9d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -402,26 +412,20 @@ golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac h1:oN6lz7iLW/YC7un8pq+9bOLyXrprv2+DKfkJY+2LJJw= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -454,11 +458,9 @@ google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dT google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506 h1:uLBY0yHDCj2PMQ98KWDSIDFwn9zK2zh+tgWtbvPPBjI= google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20211007155348-82e027067bd4 h1:YXPV/eKW0ZWRdB5tyI6aPoaa2Wxb4OSlFrTREMdwn64= -google.golang.org/genproto v0.0.0-20211007155348-82e027067bd4/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -474,7 +476,6 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.41.0 h1:f+PlOh7QV4iIJkPrx5NQ7qaNGFQ3OTse67yaDHfju4E= google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -488,7 +489,6 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= @@ -511,15 +511,16 @@ gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= -nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g= -nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/playground/backend/internal/api/playground.pb.go b/playground/backend/internal/api/v1/api.pb.go similarity index 55% rename from playground/backend/internal/api/playground.pb.go rename to playground/backend/internal/api/v1/api.pb.go index cc3ebdf1b32bc..b440b1984dbf5 100644 --- a/playground/backend/internal/api/playground.pb.go +++ b/playground/backend/internal/api/v1/api.pb.go @@ -17,9 +17,9 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.27.1 +// protoc-gen-go v1.26.0 // protoc v3.17.3 -// source: playground.proto +// source: api/v1/api.proto package playground @@ -76,11 +76,11 @@ func (x Sdk) String() string { } func (Sdk) Descriptor() protoreflect.EnumDescriptor { - return file_playground_proto_enumTypes[0].Descriptor() + return file_api_v1_api_proto_enumTypes[0].Descriptor() } func (Sdk) Type() protoreflect.EnumType { - return &file_playground_proto_enumTypes[0] + return &file_api_v1_api_proto_enumTypes[0] } func (x Sdk) Number() protoreflect.EnumNumber { @@ -89,7 +89,7 @@ func (x Sdk) Number() protoreflect.EnumNumber { // Deprecated: Use Sdk.Descriptor instead. func (Sdk) EnumDescriptor() ([]byte, []int) { - return file_playground_proto_rawDescGZIP(), []int{0} + return file_api_v1_api_proto_rawDescGZIP(), []int{0} } type Status int32 @@ -128,11 +128,11 @@ func (x Status) String() string { } func (Status) Descriptor() protoreflect.EnumDescriptor { - return file_playground_proto_enumTypes[1].Descriptor() + return file_api_v1_api_proto_enumTypes[1].Descriptor() } func (Status) Type() protoreflect.EnumType { - return &file_playground_proto_enumTypes[1] + return &file_api_v1_api_proto_enumTypes[1] } func (x Status) Number() protoreflect.EnumNumber { @@ -141,7 +141,7 @@ func (x Status) Number() protoreflect.EnumNumber { // Deprecated: Use Status.Descriptor instead. func (Status) EnumDescriptor() ([]byte, []int) { - return file_playground_proto_rawDescGZIP(), []int{1} + return file_api_v1_api_proto_rawDescGZIP(), []int{1} } // RunCodeRequest represents a code text and options of SDK which executes the code. @@ -151,13 +151,13 @@ type RunCodeRequest struct { unknownFields protoimpl.UnknownFields Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` - Sdk Sdk `protobuf:"varint,2,opt,name=sdk,proto3,enum=playground.v1.Sdk" json:"sdk,omitempty"` + Sdk Sdk `protobuf:"varint,2,opt,name=sdk,proto3,enum=api.v1.Sdk" json:"sdk,omitempty"` } func (x *RunCodeRequest) Reset() { *x = RunCodeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_playground_proto_msgTypes[0] + mi := &file_api_v1_api_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -170,7 +170,7 @@ func (x *RunCodeRequest) String() string { func (*RunCodeRequest) ProtoMessage() {} func (x *RunCodeRequest) ProtoReflect() protoreflect.Message { - mi := &file_playground_proto_msgTypes[0] + mi := &file_api_v1_api_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -183,7 +183,7 @@ func (x *RunCodeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RunCodeRequest.ProtoReflect.Descriptor instead. func (*RunCodeRequest) Descriptor() ([]byte, []int) { - return file_playground_proto_rawDescGZIP(), []int{0} + return file_api_v1_api_proto_rawDescGZIP(), []int{0} } func (x *RunCodeRequest) GetCode() string { @@ -212,7 +212,7 @@ type RunCodeResponse struct { func (x *RunCodeResponse) Reset() { *x = RunCodeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_playground_proto_msgTypes[1] + mi := &file_api_v1_api_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -225,7 +225,7 @@ func (x *RunCodeResponse) String() string { func (*RunCodeResponse) ProtoMessage() {} func (x *RunCodeResponse) ProtoReflect() protoreflect.Message { - mi := &file_playground_proto_msgTypes[1] + mi := &file_api_v1_api_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -238,7 +238,7 @@ func (x *RunCodeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RunCodeResponse.ProtoReflect.Descriptor instead. func (*RunCodeResponse) Descriptor() ([]byte, []int) { - return file_playground_proto_rawDescGZIP(), []int{1} + return file_api_v1_api_proto_rawDescGZIP(), []int{1} } func (x *RunCodeResponse) GetPipelineUuid() string { @@ -260,7 +260,7 @@ type CheckStatusRequest struct { func (x *CheckStatusRequest) Reset() { *x = CheckStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_playground_proto_msgTypes[2] + mi := &file_api_v1_api_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -273,7 +273,7 @@ func (x *CheckStatusRequest) String() string { func (*CheckStatusRequest) ProtoMessage() {} func (x *CheckStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_playground_proto_msgTypes[2] + mi := &file_api_v1_api_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -286,7 +286,7 @@ func (x *CheckStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckStatusRequest.ProtoReflect.Descriptor instead. func (*CheckStatusRequest) Descriptor() ([]byte, []int) { - return file_playground_proto_rawDescGZIP(), []int{2} + return file_api_v1_api_proto_rawDescGZIP(), []int{2} } func (x *CheckStatusRequest) GetPipelineUuid() string { @@ -302,13 +302,13 @@ type CheckStatusResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=playground.v1.Status" json:"status,omitempty"` + Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=api.v1.Status" json:"status,omitempty"` } func (x *CheckStatusResponse) Reset() { *x = CheckStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_playground_proto_msgTypes[3] + mi := &file_api_v1_api_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -321,7 +321,7 @@ func (x *CheckStatusResponse) String() string { func (*CheckStatusResponse) ProtoMessage() {} func (x *CheckStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_playground_proto_msgTypes[3] + mi := &file_api_v1_api_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -334,7 +334,7 @@ func (x *CheckStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckStatusResponse.ProtoReflect.Descriptor instead. func (*CheckStatusResponse) Descriptor() ([]byte, []int) { - return file_playground_proto_rawDescGZIP(), []int{3} + return file_api_v1_api_proto_rawDescGZIP(), []int{3} } func (x *CheckStatusResponse) GetStatus() Status { @@ -356,7 +356,7 @@ type GetCompileOutputRequest struct { func (x *GetCompileOutputRequest) Reset() { *x = GetCompileOutputRequest{} if protoimpl.UnsafeEnabled { - mi := &file_playground_proto_msgTypes[4] + mi := &file_api_v1_api_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -369,7 +369,7 @@ func (x *GetCompileOutputRequest) String() string { func (*GetCompileOutputRequest) ProtoMessage() {} func (x *GetCompileOutputRequest) ProtoReflect() protoreflect.Message { - mi := &file_playground_proto_msgTypes[4] + mi := &file_api_v1_api_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -382,7 +382,7 @@ func (x *GetCompileOutputRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCompileOutputRequest.ProtoReflect.Descriptor instead. func (*GetCompileOutputRequest) Descriptor() ([]byte, []int) { - return file_playground_proto_rawDescGZIP(), []int{4} + return file_api_v1_api_proto_rawDescGZIP(), []int{4} } func (x *GetCompileOutputRequest) GetPipelineUuid() string { @@ -399,13 +399,13 @@ type GetCompileOutputResponse struct { unknownFields protoimpl.UnknownFields Output string `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` - CompilationStatus Status `protobuf:"varint,2,opt,name=compilation_status,json=compilationStatus,proto3,enum=playground.v1.Status" json:"compilation_status,omitempty"` + CompilationStatus Status `protobuf:"varint,2,opt,name=compilation_status,json=compilationStatus,proto3,enum=api.v1.Status" json:"compilation_status,omitempty"` } func (x *GetCompileOutputResponse) Reset() { *x = GetCompileOutputResponse{} if protoimpl.UnsafeEnabled { - mi := &file_playground_proto_msgTypes[5] + mi := &file_api_v1_api_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -418,7 +418,7 @@ func (x *GetCompileOutputResponse) String() string { func (*GetCompileOutputResponse) ProtoMessage() {} func (x *GetCompileOutputResponse) ProtoReflect() protoreflect.Message { - mi := &file_playground_proto_msgTypes[5] + mi := &file_api_v1_api_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -431,7 +431,7 @@ func (x *GetCompileOutputResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCompileOutputResponse.ProtoReflect.Descriptor instead. func (*GetCompileOutputResponse) Descriptor() ([]byte, []int) { - return file_playground_proto_rawDescGZIP(), []int{5} + return file_api_v1_api_proto_rawDescGZIP(), []int{5} } func (x *GetCompileOutputResponse) GetOutput() string { @@ -460,7 +460,7 @@ type GetRunOutputRequest struct { func (x *GetRunOutputRequest) Reset() { *x = GetRunOutputRequest{} if protoimpl.UnsafeEnabled { - mi := &file_playground_proto_msgTypes[6] + mi := &file_api_v1_api_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -473,7 +473,7 @@ func (x *GetRunOutputRequest) String() string { func (*GetRunOutputRequest) ProtoMessage() {} func (x *GetRunOutputRequest) ProtoReflect() protoreflect.Message { - mi := &file_playground_proto_msgTypes[6] + mi := &file_api_v1_api_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -486,7 +486,7 @@ func (x *GetRunOutputRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRunOutputRequest.ProtoReflect.Descriptor instead. func (*GetRunOutputRequest) Descriptor() ([]byte, []int) { - return file_playground_proto_rawDescGZIP(), []int{6} + return file_api_v1_api_proto_rawDescGZIP(), []int{6} } func (x *GetRunOutputRequest) GetPipelineUuid() string { @@ -503,13 +503,13 @@ type GetRunOutputResponse struct { unknownFields protoimpl.UnknownFields Output string `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` - CompilationStatus Status `protobuf:"varint,2,opt,name=compilation_status,json=compilationStatus,proto3,enum=playground.v1.Status" json:"compilation_status,omitempty"` + CompilationStatus Status `protobuf:"varint,2,opt,name=compilation_status,json=compilationStatus,proto3,enum=api.v1.Status" json:"compilation_status,omitempty"` } func (x *GetRunOutputResponse) Reset() { *x = GetRunOutputResponse{} if protoimpl.UnsafeEnabled { - mi := &file_playground_proto_msgTypes[7] + mi := &file_api_v1_api_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -522,7 +522,7 @@ func (x *GetRunOutputResponse) String() string { func (*GetRunOutputResponse) ProtoMessage() {} func (x *GetRunOutputResponse) ProtoReflect() protoreflect.Message { - mi := &file_playground_proto_msgTypes[7] + mi := &file_api_v1_api_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -535,7 +535,7 @@ func (x *GetRunOutputResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRunOutputResponse.ProtoReflect.Descriptor instead. func (*GetRunOutputResponse) Descriptor() ([]byte, []int) { - return file_playground_proto_rawDescGZIP(), []int{7} + return file_api_v1_api_proto_rawDescGZIP(), []int{7} } func (x *GetRunOutputResponse) GetOutput() string { @@ -552,130 +552,124 @@ func (x *GetRunOutputResponse) GetCompilationStatus() Status { return Status_STATUS_UNSPECIFIED } -var File_playground_proto protoreflect.FileDescriptor - -var file_playground_proto_rawDesc = []byte{ - 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76, - 0x31, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x03, 0x73, 0x64, 0x6b, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x03, 0x73, 0x64, 0x6b, 0x22, 0x36, 0x0a, - 0x0f, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x75, 0x75, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x55, 0x75, 0x69, 0x64, 0x22, 0x39, 0x0a, 0x12, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x70, +var File_api_v1_api_proto protoreflect.FileDescriptor + +var file_api_v1_api_proto_rawDesc = []byte{ + 0x0a, 0x10, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x06, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x22, 0x43, 0x0a, 0x0e, 0x52, 0x75, + 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x12, 0x1d, 0x0a, 0x03, 0x73, 0x64, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x03, 0x73, 0x64, 0x6b, 0x22, + 0x36, 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x75, + 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x69, 0x70, 0x65, 0x6c, + 0x69, 0x6e, 0x65, 0x55, 0x75, 0x69, 0x64, 0x22, 0x39, 0x0a, 0x12, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, + 0x0d, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x55, 0x75, + 0x69, 0x64, 0x22, 0x3d, 0x0a, 0x13, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x22, 0x3e, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, + 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x55, 0x75, 0x69, + 0x64, 0x22, 0x71, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x3d, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x22, 0x3a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x55, 0x75, 0x69, 0x64, - 0x22, 0x44, 0x0a, 0x13, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x3e, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, - 0x70, 0x69, 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x75, 0x75, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, - 0x6e, 0x65, 0x55, 0x75, 0x69, 0x64, 0x22, 0x78, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, - 0x70, 0x69, 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x44, 0x0a, 0x12, 0x63, 0x6f, - 0x6d, 0x70, 0x69, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x11, 0x63, - 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x3a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x69, 0x70, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x55, 0x75, 0x69, 0x64, 0x22, 0x74, 0x0a, 0x14, - 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x44, 0x0a, 0x12, - 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x2a, 0x52, 0x0a, 0x03, 0x53, 0x64, 0x6b, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x44, 0x4b, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, - 0x0a, 0x08, 0x53, 0x44, 0x4b, 0x5f, 0x4a, 0x41, 0x56, 0x41, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, - 0x53, 0x44, 0x4b, 0x5f, 0x47, 0x4f, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x44, 0x4b, 0x5f, - 0x50, 0x59, 0x54, 0x48, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x44, 0x4b, 0x5f, - 0x53, 0x43, 0x49, 0x4f, 0x10, 0x04, 0x2a, 0x5d, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x13, - 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, - 0x44, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, - 0x52, 0x4f, 0x52, 0x10, 0x03, 0x32, 0xf1, 0x02, 0x0a, 0x11, 0x50, 0x6c, 0x61, 0x79, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x07, 0x52, - 0x75, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0c, 0x47, - 0x65, 0x74, 0x52, 0x75, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x22, 0x2e, 0x70, 0x6c, - 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, - 0x75, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x23, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x69, - 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x26, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, - 0x69, 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x27, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2f, 0x62, - 0x65, 0x61, 0x6d, 0x2f, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2f, 0x76, - 0x31, 0x3b, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x22, 0x6d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x12, 0x3d, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x11, 0x63, 0x6f, + 0x6d, 0x70, 0x69, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, + 0x52, 0x0a, 0x03, 0x53, 0x64, 0x6b, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x44, 0x4b, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x53, + 0x44, 0x4b, 0x5f, 0x4a, 0x41, 0x56, 0x41, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x44, 0x4b, + 0x5f, 0x47, 0x4f, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x44, 0x4b, 0x5f, 0x50, 0x59, 0x54, + 0x48, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x44, 0x4b, 0x5f, 0x53, 0x43, 0x49, + 0x4f, 0x10, 0x04, 0x2a, 0x5d, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, + 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, + 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x02, + 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x10, 0x03, 0x32, 0xb9, 0x02, 0x0a, 0x11, 0x50, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x52, 0x75, 0x6e, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, + 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0c, + 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1b, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, + 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1f, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x38, + 0x5a, 0x36, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, + 0x67, 0x2f, 0x70, 0x6c, 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2f, 0x62, 0x61, 0x63, + 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3b, 0x70, 0x6c, + 0x61, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_playground_proto_rawDescOnce sync.Once - file_playground_proto_rawDescData = file_playground_proto_rawDesc + file_api_v1_api_proto_rawDescOnce sync.Once + file_api_v1_api_proto_rawDescData = file_api_v1_api_proto_rawDesc ) -func file_playground_proto_rawDescGZIP() []byte { - file_playground_proto_rawDescOnce.Do(func() { - file_playground_proto_rawDescData = protoimpl.X.CompressGZIP(file_playground_proto_rawDescData) +func file_api_v1_api_proto_rawDescGZIP() []byte { + file_api_v1_api_proto_rawDescOnce.Do(func() { + file_api_v1_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_v1_api_proto_rawDescData) }) - return file_playground_proto_rawDescData -} - -var file_playground_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_playground_proto_msgTypes = make([]protoimpl.MessageInfo, 8) -var file_playground_proto_goTypes = []interface{}{ - (Sdk)(0), // 0: playground.v1.Sdk - (Status)(0), // 1: playground.v1.Status - (*RunCodeRequest)(nil), // 2: playground.v1.RunCodeRequest - (*RunCodeResponse)(nil), // 3: playground.v1.RunCodeResponse - (*CheckStatusRequest)(nil), // 4: playground.v1.CheckStatusRequest - (*CheckStatusResponse)(nil), // 5: playground.v1.CheckStatusResponse - (*GetCompileOutputRequest)(nil), // 6: playground.v1.GetCompileOutputRequest - (*GetCompileOutputResponse)(nil), // 7: playground.v1.GetCompileOutputResponse - (*GetRunOutputRequest)(nil), // 8: playground.v1.GetRunOutputRequest - (*GetRunOutputResponse)(nil), // 9: playground.v1.GetRunOutputResponse -} -var file_playground_proto_depIdxs = []int32{ - 0, // 0: playground.v1.RunCodeRequest.sdk:type_name -> playground.v1.Sdk - 1, // 1: playground.v1.CheckStatusResponse.status:type_name -> playground.v1.Status - 1, // 2: playground.v1.GetCompileOutputResponse.compilation_status:type_name -> playground.v1.Status - 1, // 3: playground.v1.GetRunOutputResponse.compilation_status:type_name -> playground.v1.Status - 2, // 4: playground.v1.PlaygroundService.RunCode:input_type -> playground.v1.RunCodeRequest - 4, // 5: playground.v1.PlaygroundService.CheckStatus:input_type -> playground.v1.CheckStatusRequest - 8, // 6: playground.v1.PlaygroundService.GetRunOutput:input_type -> playground.v1.GetRunOutputRequest - 6, // 7: playground.v1.PlaygroundService.GetCompileOutput:input_type -> playground.v1.GetCompileOutputRequest - 3, // 8: playground.v1.PlaygroundService.RunCode:output_type -> playground.v1.RunCodeResponse - 5, // 9: playground.v1.PlaygroundService.CheckStatus:output_type -> playground.v1.CheckStatusResponse - 9, // 10: playground.v1.PlaygroundService.GetRunOutput:output_type -> playground.v1.GetRunOutputResponse - 7, // 11: playground.v1.PlaygroundService.GetCompileOutput:output_type -> playground.v1.GetCompileOutputResponse + return file_api_v1_api_proto_rawDescData +} + +var file_api_v1_api_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_api_v1_api_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_api_v1_api_proto_goTypes = []interface{}{ + (Sdk)(0), // 0: api.v1.Sdk + (Status)(0), // 1: api.v1.Status + (*RunCodeRequest)(nil), // 2: api.v1.RunCodeRequest + (*RunCodeResponse)(nil), // 3: api.v1.RunCodeResponse + (*CheckStatusRequest)(nil), // 4: api.v1.CheckStatusRequest + (*CheckStatusResponse)(nil), // 5: api.v1.CheckStatusResponse + (*GetCompileOutputRequest)(nil), // 6: api.v1.GetCompileOutputRequest + (*GetCompileOutputResponse)(nil), // 7: api.v1.GetCompileOutputResponse + (*GetRunOutputRequest)(nil), // 8: api.v1.GetRunOutputRequest + (*GetRunOutputResponse)(nil), // 9: api.v1.GetRunOutputResponse +} +var file_api_v1_api_proto_depIdxs = []int32{ + 0, // 0: api.v1.RunCodeRequest.sdk:type_name -> api.v1.Sdk + 1, // 1: api.v1.CheckStatusResponse.status:type_name -> api.v1.Status + 1, // 2: api.v1.GetCompileOutputResponse.compilation_status:type_name -> api.v1.Status + 1, // 3: api.v1.GetRunOutputResponse.compilation_status:type_name -> api.v1.Status + 2, // 4: api.v1.PlaygroundService.RunCode:input_type -> api.v1.RunCodeRequest + 4, // 5: api.v1.PlaygroundService.CheckStatus:input_type -> api.v1.CheckStatusRequest + 8, // 6: api.v1.PlaygroundService.GetRunOutput:input_type -> api.v1.GetRunOutputRequest + 6, // 7: api.v1.PlaygroundService.GetCompileOutput:input_type -> api.v1.GetCompileOutputRequest + 3, // 8: api.v1.PlaygroundService.RunCode:output_type -> api.v1.RunCodeResponse + 5, // 9: api.v1.PlaygroundService.CheckStatus:output_type -> api.v1.CheckStatusResponse + 9, // 10: api.v1.PlaygroundService.GetRunOutput:output_type -> api.v1.GetRunOutputResponse + 7, // 11: api.v1.PlaygroundService.GetCompileOutput:output_type -> api.v1.GetCompileOutputResponse 8, // [8:12] is the sub-list for method output_type 4, // [4:8] is the sub-list for method input_type 4, // [4:4] is the sub-list for extension type_name @@ -683,13 +677,13 @@ var file_playground_proto_depIdxs = []int32{ 0, // [0:4] is the sub-list for field type_name } -func init() { file_playground_proto_init() } -func file_playground_proto_init() { - if File_playground_proto != nil { +func init() { file_api_v1_api_proto_init() } +func file_api_v1_api_proto_init() { + if File_api_v1_api_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_playground_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RunCodeRequest); i { case 0: return &v.state @@ -701,7 +695,7 @@ func file_playground_proto_init() { return nil } } - file_playground_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RunCodeResponse); i { case 0: return &v.state @@ -713,7 +707,7 @@ func file_playground_proto_init() { return nil } } - file_playground_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckStatusRequest); i { case 0: return &v.state @@ -725,7 +719,7 @@ func file_playground_proto_init() { return nil } } - file_playground_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckStatusResponse); i { case 0: return &v.state @@ -737,7 +731,7 @@ func file_playground_proto_init() { return nil } } - file_playground_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCompileOutputRequest); i { case 0: return &v.state @@ -749,7 +743,7 @@ func file_playground_proto_init() { return nil } } - file_playground_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCompileOutputResponse); i { case 0: return &v.state @@ -761,7 +755,7 @@ func file_playground_proto_init() { return nil } } - file_playground_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRunOutputRequest); i { case 0: return &v.state @@ -773,7 +767,7 @@ func file_playground_proto_init() { return nil } } - file_playground_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRunOutputResponse); i { case 0: return &v.state @@ -790,19 +784,19 @@ func file_playground_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_playground_proto_rawDesc, + RawDescriptor: file_api_v1_api_proto_rawDesc, NumEnums: 2, NumMessages: 8, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_playground_proto_goTypes, - DependencyIndexes: file_playground_proto_depIdxs, - EnumInfos: file_playground_proto_enumTypes, - MessageInfos: file_playground_proto_msgTypes, + GoTypes: file_api_v1_api_proto_goTypes, + DependencyIndexes: file_api_v1_api_proto_depIdxs, + EnumInfos: file_api_v1_api_proto_enumTypes, + MessageInfos: file_api_v1_api_proto_msgTypes, }.Build() - File_playground_proto = out.File - file_playground_proto_rawDesc = nil - file_playground_proto_goTypes = nil - file_playground_proto_depIdxs = nil + File_api_v1_api_proto = out.File + file_api_v1_api_proto_rawDesc = nil + file_api_v1_api_proto_goTypes = nil + file_api_v1_api_proto_depIdxs = nil } diff --git a/playground/backend/internal/api/playground_grpc.pb.go b/playground/backend/internal/api/v1/api_grpc.pb.go similarity index 89% rename from playground/backend/internal/api/playground_grpc.pb.go rename to playground/backend/internal/api/v1/api_grpc.pb.go index f8e11caac072e..63c0748111cca 100644 --- a/playground/backend/internal/api/playground_grpc.pb.go +++ b/playground/backend/internal/api/v1/api_grpc.pb.go @@ -12,7 +12,6 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. - // Code generated by protoc-gen-go-grpc. DO NOT EDIT. package playground @@ -53,7 +52,7 @@ func NewPlaygroundServiceClient(cc grpc.ClientConnInterface) PlaygroundServiceCl func (c *playgroundServiceClient) RunCode(ctx context.Context, in *RunCodeRequest, opts ...grpc.CallOption) (*RunCodeResponse, error) { out := new(RunCodeResponse) - err := c.cc.Invoke(ctx, "/playground.v1.PlaygroundService/RunCode", in, out, opts...) + err := c.cc.Invoke(ctx, "/api.v1.PlaygroundService/RunCode", in, out, opts...) if err != nil { return nil, err } @@ -62,7 +61,7 @@ func (c *playgroundServiceClient) RunCode(ctx context.Context, in *RunCodeReques func (c *playgroundServiceClient) CheckStatus(ctx context.Context, in *CheckStatusRequest, opts ...grpc.CallOption) (*CheckStatusResponse, error) { out := new(CheckStatusResponse) - err := c.cc.Invoke(ctx, "/playground.v1.PlaygroundService/CheckStatus", in, out, opts...) + err := c.cc.Invoke(ctx, "/api.v1.PlaygroundService/CheckStatus", in, out, opts...) if err != nil { return nil, err } @@ -71,7 +70,7 @@ func (c *playgroundServiceClient) CheckStatus(ctx context.Context, in *CheckStat func (c *playgroundServiceClient) GetRunOutput(ctx context.Context, in *GetRunOutputRequest, opts ...grpc.CallOption) (*GetRunOutputResponse, error) { out := new(GetRunOutputResponse) - err := c.cc.Invoke(ctx, "/playground.v1.PlaygroundService/GetRunOutput", in, out, opts...) + err := c.cc.Invoke(ctx, "/api.v1.PlaygroundService/GetRunOutput", in, out, opts...) if err != nil { return nil, err } @@ -80,7 +79,7 @@ func (c *playgroundServiceClient) GetRunOutput(ctx context.Context, in *GetRunOu func (c *playgroundServiceClient) GetCompileOutput(ctx context.Context, in *GetCompileOutputRequest, opts ...grpc.CallOption) (*GetCompileOutputResponse, error) { out := new(GetCompileOutputResponse) - err := c.cc.Invoke(ctx, "/playground.v1.PlaygroundService/GetCompileOutput", in, out, opts...) + err := c.cc.Invoke(ctx, "/api.v1.PlaygroundService/GetCompileOutput", in, out, opts...) if err != nil { return nil, err } @@ -88,7 +87,7 @@ func (c *playgroundServiceClient) GetCompileOutput(ctx context.Context, in *GetC } // PlaygroundServiceServer is the server API for PlaygroundService service. -// All implementations must embed UnimplementedPlaygroundServiceServer +// All implementations should embed UnimplementedPlaygroundServiceServer // for forward compatibility type PlaygroundServiceServer interface { // Submit the job for an execution and get the pipeline uuid. @@ -99,10 +98,9 @@ type PlaygroundServiceServer interface { GetRunOutput(context.Context, *GetRunOutputRequest) (*GetRunOutputResponse, error) // Get the result of pipeline compilation. GetCompileOutput(context.Context, *GetCompileOutputRequest) (*GetCompileOutputResponse, error) - mustEmbedUnimplementedPlaygroundServiceServer() } -// UnimplementedPlaygroundServiceServer must be embedded to have forward compatible implementations. +// UnimplementedPlaygroundServiceServer should be embedded to have forward compatible implementations. type UnimplementedPlaygroundServiceServer struct { } @@ -118,7 +116,6 @@ func (UnimplementedPlaygroundServiceServer) GetRunOutput(context.Context, *GetRu func (UnimplementedPlaygroundServiceServer) GetCompileOutput(context.Context, *GetCompileOutputRequest) (*GetCompileOutputResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetCompileOutput not implemented") } -func (UnimplementedPlaygroundServiceServer) mustEmbedUnimplementedPlaygroundServiceServer() {} // UnsafePlaygroundServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to PlaygroundServiceServer will @@ -141,7 +138,7 @@ func _PlaygroundService_RunCode_Handler(srv interface{}, ctx context.Context, de } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/playground.v1.PlaygroundService/RunCode", + FullMethod: "/api.v1.PlaygroundService/RunCode", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(PlaygroundServiceServer).RunCode(ctx, req.(*RunCodeRequest)) @@ -159,7 +156,7 @@ func _PlaygroundService_CheckStatus_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/playground.v1.PlaygroundService/CheckStatus", + FullMethod: "/api.v1.PlaygroundService/CheckStatus", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(PlaygroundServiceServer).CheckStatus(ctx, req.(*CheckStatusRequest)) @@ -177,7 +174,7 @@ func _PlaygroundService_GetRunOutput_Handler(srv interface{}, ctx context.Contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/playground.v1.PlaygroundService/GetRunOutput", + FullMethod: "/api.v1.PlaygroundService/GetRunOutput", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(PlaygroundServiceServer).GetRunOutput(ctx, req.(*GetRunOutputRequest)) @@ -195,7 +192,7 @@ func _PlaygroundService_GetCompileOutput_Handler(srv interface{}, ctx context.Co } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/playground.v1.PlaygroundService/GetCompileOutput", + FullMethod: "/api.v1.PlaygroundService/GetCompileOutput", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(PlaygroundServiceServer).GetCompileOutput(ctx, req.(*GetCompileOutputRequest)) @@ -207,7 +204,7 @@ func _PlaygroundService_GetCompileOutput_Handler(srv interface{}, ctx context.Co // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) var PlaygroundService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "playground.v1.PlaygroundService", + ServiceName: "api.v1.PlaygroundService", HandlerType: (*PlaygroundServiceServer)(nil), Methods: []grpc.MethodDesc{ { @@ -228,5 +225,5 @@ var PlaygroundService_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "playground.proto", + Metadata: "api/v1/api.proto", } diff --git a/playground/backend/internal/environment/environment.go b/playground/backend/internal/environment/environment.go new file mode 100644 index 0000000000000..910dec9068a62 --- /dev/null +++ b/playground/backend/internal/environment/environment.go @@ -0,0 +1,28 @@ +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// TODO: remove this code when merging https://github.com/apache/beam/pull/15654 + +package environment + +type ServerEnvs struct {} + +func (envs ServerEnvs) Address() string { + return "" +} + +func NewEnvironment() ServerEnvs { + return ServerEnvs{} +} diff --git a/playground/backend/internal/executors/executor.go b/playground/backend/internal/executors/executor.go index a5e258ddf623b..b85641b7e185e 100644 --- a/playground/backend/internal/executors/executor.go +++ b/playground/backend/internal/executors/executor.go @@ -17,7 +17,7 @@ package executors import ( - pb "beam.apache.org/playground/backend/internal/api" + pb "beam.apache.org/playground/backend/internal/api/v1" "beam.apache.org/playground/backend/internal/fs_tool" "fmt" "os/exec" diff --git a/playground/backend/internal/executors/go_helper.go b/playground/backend/internal/executors/go_helper.go index a9d72bbc00970..6772145022a77 100644 --- a/playground/backend/internal/executors/go_helper.go +++ b/playground/backend/internal/executors/go_helper.go @@ -16,6 +16,8 @@ // Package executors package executors +import "beam.apache.org/playground/backend/internal/fs_tool" + // NewGoExecutor creates an executor with Go specifics func NewGoExecutor(fs *fs_tool.LifeCycle, javaValidators *[]validatorWithArgs) *Executor { return nil diff --git a/playground/backend/internal/executors/java_helper_test.go b/playground/backend/internal/executors/java_helper_test.go index 332717affeca8..19b39344fb64e 100644 --- a/playground/backend/internal/executors/java_helper_test.go +++ b/playground/backend/internal/executors/java_helper_test.go @@ -16,7 +16,7 @@ package executors import ( - pb "beam.apache.org/playground/backend/internal/api" + pb "beam.apache.org/playground/backend/internal/api/v1" "beam.apache.org/playground/backend/internal/fs_tool" "github.com/google/uuid" "testing" diff --git a/playground/backend/internal/fs_tool/fs.go b/playground/backend/internal/fs_tool/fs.go index 481fadedf4c08..7b99fd906ca93 100644 --- a/playground/backend/internal/fs_tool/fs.go +++ b/playground/backend/internal/fs_tool/fs.go @@ -16,7 +16,7 @@ package fs_tool import ( - pb "beam.apache.org/playground/backend/internal/api" + pb "beam.apache.org/playground/backend/internal/api/v1" "errors" "fmt" "github.com/google/uuid" diff --git a/playground/backend/internal/fs_tool/fs_test.go b/playground/backend/internal/fs_tool/fs_test.go index 1b1b304bed3dc..c1b00d2dfa8e0 100644 --- a/playground/backend/internal/fs_tool/fs_test.go +++ b/playground/backend/internal/fs_tool/fs_test.go @@ -16,7 +16,7 @@ package fs_tool import ( - pb "beam.apache.org/playground/backend/internal/api" + pb "beam.apache.org/playground/backend/internal/api/v1" "fmt" "github.com/google/uuid" "io/fs" diff --git a/playground/buf.gen.yaml b/playground/buf.gen.yaml new file mode 100644 index 0000000000000..bd9b9f3d83090 --- /dev/null +++ b/playground/buf.gen.yaml @@ -0,0 +1,32 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +version: v1 +plugins: +- name: go + out: backend/internal + opt: paths=source_relative +- name: go-grpc + out: backend/internal + opt: + - paths=source_relative + - require_unimplemented_servers=false +- name: dart + out: frontend/lib + opt: grpc \ No newline at end of file diff --git a/playground/build.gradle.kts b/playground/build.gradle.kts new file mode 100644 index 0000000000000..b511c4806a5dc --- /dev/null +++ b/playground/build.gradle.kts @@ -0,0 +1,30 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +description = "Apache Beam :: Playground" + +// generate protobuf client and server stubs +task("generateProto") { + group = "build" + doLast { + exec { + executable("buf") + args("generate") + } + } +} diff --git a/playground/frontend/README.md b/playground/frontend/README.md index acdea1de48439..7c3b489483ba4 100644 --- a/playground/frontend/README.md +++ b/playground/frontend/README.md @@ -26,11 +26,7 @@ It provides a portable API layer for building sophisticated data-parallel proces ## Getting Started -Website development requires [Flutter](https://flutter.dev/docs/get-started/install) installed. - -Create /lib/generated folder and run the next command to generate grpc files from proto: - -`$ protoc playground.proto --dart_out=grpc:lib/generated --proto_path=$(pwd)/../playground/v1` +See [playground/README.md](../README.md) for details on requirements and setup. The following command is used to build and serve the website locally: diff --git a/playground/frontend/analysis_options.yaml b/playground/frontend/analysis_options.yaml index 38742fed9d795..41ffd37c8059d 100644 --- a/playground/frontend/analysis_options.yaml +++ b/playground/frontend/analysis_options.yaml @@ -26,6 +26,10 @@ # packages, and plugins designed to encourage good coding practices. include: package:flutter_lints/flutter.yaml +# exclude generated files +analyzer: + exclude: [lib/api/**, test/**.mocks.dart, lib/**.g.dart] + linter: # The lint rules applied to this project can be customized in the # section below to disable rules from the `package:flutter_lints/flutter.yaml` diff --git a/playground/frontend/build.gradle.kts b/playground/frontend/build.gradle.kts new file mode 100644 index 0000000000000..5533526bec106 --- /dev/null +++ b/playground/frontend/build.gradle.kts @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +description = "Apache Beam :: Playground :: Frontend" + +task("analyze") { + group = "verification" + description = "Analyze dart code" + doLast { + exec { + executable("dart") + args("analyze", ".") + } + } +} + +task("pubGet") { + group = "build" + description = "Get packages for the playground frontend project" + doLast { + exec { + executable("flutter") + args("pub", "get") + } + } +} + +task("format") { + group = "build" + description = "Idiomatically format Dart source code" + doLast { + exec { + executable("dart") + args("format", ".") + } + } +} + +task("run") { + group = "application" + description = "Run application on Google Chrome" + doLast { + exec { + executable("flutter") + args("run", "-d", "chrome") + } + } +} + +task("test") { + group = "verification" + description = "flutter test" + doLast { + exec { + executable("flutter") + args("test") + } + } +} \ No newline at end of file diff --git a/playground/frontend/lib/api/v1/api.pb.dart b/playground/frontend/lib/api/v1/api.pb.dart new file mode 100644 index 0000000000000..9c503e45d3903 --- /dev/null +++ b/playground/frontend/lib/api/v1/api.pb.dart @@ -0,0 +1,450 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/// +// Generated code. Do not modify. +// source: api/v1/api.proto +// +// @dart = 2.12 +// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields + +import 'dart:core' as $core; + +import 'package:protobuf/protobuf.dart' as $pb; + +import 'api.pbenum.dart'; + +export 'api.pbenum.dart'; + +class RunCodeRequest extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'RunCodeRequest', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'api.v1'), createEmptyInstance: create) + ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'code') + ..e(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'sdk', $pb.PbFieldType.OE, defaultOrMaker: Sdk.SDK_UNSPECIFIED, valueOf: Sdk.valueOf, enumValues: Sdk.values) + ..hasRequiredFields = false + ; + + RunCodeRequest._() : super(); + factory RunCodeRequest({ + $core.String? code, + Sdk? sdk, + }) { + final _result = create(); + if (code != null) { + _result.code = code; + } + if (sdk != null) { + _result.sdk = sdk; + } + return _result; + } + factory RunCodeRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory RunCodeRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + RunCodeRequest clone() => RunCodeRequest()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + RunCodeRequest copyWith(void Function(RunCodeRequest) updates) => super.copyWith((message) => updates(message as RunCodeRequest)) as RunCodeRequest; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static RunCodeRequest create() => RunCodeRequest._(); + RunCodeRequest createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static RunCodeRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static RunCodeRequest? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get code => $_getSZ(0); + @$pb.TagNumber(1) + set code($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasCode() => $_has(0); + @$pb.TagNumber(1) + void clearCode() => clearField(1); + + @$pb.TagNumber(2) + Sdk get sdk => $_getN(1); + @$pb.TagNumber(2) + set sdk(Sdk v) { setField(2, v); } + @$pb.TagNumber(2) + $core.bool hasSdk() => $_has(1); + @$pb.TagNumber(2) + void clearSdk() => clearField(2); +} + +class RunCodeResponse extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'RunCodeResponse', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'api.v1'), createEmptyInstance: create) + ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'pipelineUuid') + ..hasRequiredFields = false + ; + + RunCodeResponse._() : super(); + factory RunCodeResponse({ + $core.String? pipelineUuid, + }) { + final _result = create(); + if (pipelineUuid != null) { + _result.pipelineUuid = pipelineUuid; + } + return _result; + } + factory RunCodeResponse.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory RunCodeResponse.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + RunCodeResponse clone() => RunCodeResponse()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + RunCodeResponse copyWith(void Function(RunCodeResponse) updates) => super.copyWith((message) => updates(message as RunCodeResponse)) as RunCodeResponse; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static RunCodeResponse create() => RunCodeResponse._(); + RunCodeResponse createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static RunCodeResponse getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static RunCodeResponse? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get pipelineUuid => $_getSZ(0); + @$pb.TagNumber(1) + set pipelineUuid($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasPipelineUuid() => $_has(0); + @$pb.TagNumber(1) + void clearPipelineUuid() => clearField(1); +} + +class CheckStatusRequest extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'CheckStatusRequest', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'api.v1'), createEmptyInstance: create) + ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'pipelineUuid') + ..hasRequiredFields = false + ; + + CheckStatusRequest._() : super(); + factory CheckStatusRequest({ + $core.String? pipelineUuid, + }) { + final _result = create(); + if (pipelineUuid != null) { + _result.pipelineUuid = pipelineUuid; + } + return _result; + } + factory CheckStatusRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory CheckStatusRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + CheckStatusRequest clone() => CheckStatusRequest()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + CheckStatusRequest copyWith(void Function(CheckStatusRequest) updates) => super.copyWith((message) => updates(message as CheckStatusRequest)) as CheckStatusRequest; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static CheckStatusRequest create() => CheckStatusRequest._(); + CheckStatusRequest createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static CheckStatusRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static CheckStatusRequest? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get pipelineUuid => $_getSZ(0); + @$pb.TagNumber(1) + set pipelineUuid($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasPipelineUuid() => $_has(0); + @$pb.TagNumber(1) + void clearPipelineUuid() => clearField(1); +} + +class CheckStatusResponse extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'CheckStatusResponse', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'api.v1'), createEmptyInstance: create) + ..e(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'status', $pb.PbFieldType.OE, defaultOrMaker: Status.STATUS_UNSPECIFIED, valueOf: Status.valueOf, enumValues: Status.values) + ..hasRequiredFields = false + ; + + CheckStatusResponse._() : super(); + factory CheckStatusResponse({ + Status? status, + }) { + final _result = create(); + if (status != null) { + _result.status = status; + } + return _result; + } + factory CheckStatusResponse.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory CheckStatusResponse.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + CheckStatusResponse clone() => CheckStatusResponse()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + CheckStatusResponse copyWith(void Function(CheckStatusResponse) updates) => super.copyWith((message) => updates(message as CheckStatusResponse)) as CheckStatusResponse; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static CheckStatusResponse create() => CheckStatusResponse._(); + CheckStatusResponse createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static CheckStatusResponse getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static CheckStatusResponse? _defaultInstance; + + @$pb.TagNumber(1) + Status get status => $_getN(0); + @$pb.TagNumber(1) + set status(Status v) { setField(1, v); } + @$pb.TagNumber(1) + $core.bool hasStatus() => $_has(0); + @$pb.TagNumber(1) + void clearStatus() => clearField(1); +} + +class GetCompileOutputRequest extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'GetCompileOutputRequest', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'api.v1'), createEmptyInstance: create) + ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'pipelineUuid') + ..hasRequiredFields = false + ; + + GetCompileOutputRequest._() : super(); + factory GetCompileOutputRequest({ + $core.String? pipelineUuid, + }) { + final _result = create(); + if (pipelineUuid != null) { + _result.pipelineUuid = pipelineUuid; + } + return _result; + } + factory GetCompileOutputRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory GetCompileOutputRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + GetCompileOutputRequest clone() => GetCompileOutputRequest()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + GetCompileOutputRequest copyWith(void Function(GetCompileOutputRequest) updates) => super.copyWith((message) => updates(message as GetCompileOutputRequest)) as GetCompileOutputRequest; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static GetCompileOutputRequest create() => GetCompileOutputRequest._(); + GetCompileOutputRequest createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static GetCompileOutputRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static GetCompileOutputRequest? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get pipelineUuid => $_getSZ(0); + @$pb.TagNumber(1) + set pipelineUuid($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasPipelineUuid() => $_has(0); + @$pb.TagNumber(1) + void clearPipelineUuid() => clearField(1); +} + +class GetCompileOutputResponse extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'GetCompileOutputResponse', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'api.v1'), createEmptyInstance: create) + ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'output') + ..e(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'compilationStatus', $pb.PbFieldType.OE, defaultOrMaker: Status.STATUS_UNSPECIFIED, valueOf: Status.valueOf, enumValues: Status.values) + ..hasRequiredFields = false + ; + + GetCompileOutputResponse._() : super(); + factory GetCompileOutputResponse({ + $core.String? output, + Status? compilationStatus, + }) { + final _result = create(); + if (output != null) { + _result.output = output; + } + if (compilationStatus != null) { + _result.compilationStatus = compilationStatus; + } + return _result; + } + factory GetCompileOutputResponse.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory GetCompileOutputResponse.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + GetCompileOutputResponse clone() => GetCompileOutputResponse()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + GetCompileOutputResponse copyWith(void Function(GetCompileOutputResponse) updates) => super.copyWith((message) => updates(message as GetCompileOutputResponse)) as GetCompileOutputResponse; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static GetCompileOutputResponse create() => GetCompileOutputResponse._(); + GetCompileOutputResponse createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static GetCompileOutputResponse getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static GetCompileOutputResponse? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get output => $_getSZ(0); + @$pb.TagNumber(1) + set output($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasOutput() => $_has(0); + @$pb.TagNumber(1) + void clearOutput() => clearField(1); + + @$pb.TagNumber(2) + Status get compilationStatus => $_getN(1); + @$pb.TagNumber(2) + set compilationStatus(Status v) { setField(2, v); } + @$pb.TagNumber(2) + $core.bool hasCompilationStatus() => $_has(1); + @$pb.TagNumber(2) + void clearCompilationStatus() => clearField(2); +} + +class GetRunOutputRequest extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'GetRunOutputRequest', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'api.v1'), createEmptyInstance: create) + ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'pipelineUuid') + ..hasRequiredFields = false + ; + + GetRunOutputRequest._() : super(); + factory GetRunOutputRequest({ + $core.String? pipelineUuid, + }) { + final _result = create(); + if (pipelineUuid != null) { + _result.pipelineUuid = pipelineUuid; + } + return _result; + } + factory GetRunOutputRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory GetRunOutputRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + GetRunOutputRequest clone() => GetRunOutputRequest()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + GetRunOutputRequest copyWith(void Function(GetRunOutputRequest) updates) => super.copyWith((message) => updates(message as GetRunOutputRequest)) as GetRunOutputRequest; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static GetRunOutputRequest create() => GetRunOutputRequest._(); + GetRunOutputRequest createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static GetRunOutputRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static GetRunOutputRequest? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get pipelineUuid => $_getSZ(0); + @$pb.TagNumber(1) + set pipelineUuid($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasPipelineUuid() => $_has(0); + @$pb.TagNumber(1) + void clearPipelineUuid() => clearField(1); +} + +class GetRunOutputResponse extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'GetRunOutputResponse', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'api.v1'), createEmptyInstance: create) + ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'output') + ..e(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'compilationStatus', $pb.PbFieldType.OE, defaultOrMaker: Status.STATUS_UNSPECIFIED, valueOf: Status.valueOf, enumValues: Status.values) + ..hasRequiredFields = false + ; + + GetRunOutputResponse._() : super(); + factory GetRunOutputResponse({ + $core.String? output, + Status? compilationStatus, + }) { + final _result = create(); + if (output != null) { + _result.output = output; + } + if (compilationStatus != null) { + _result.compilationStatus = compilationStatus; + } + return _result; + } + factory GetRunOutputResponse.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory GetRunOutputResponse.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + GetRunOutputResponse clone() => GetRunOutputResponse()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + GetRunOutputResponse copyWith(void Function(GetRunOutputResponse) updates) => super.copyWith((message) => updates(message as GetRunOutputResponse)) as GetRunOutputResponse; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static GetRunOutputResponse create() => GetRunOutputResponse._(); + GetRunOutputResponse createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static GetRunOutputResponse getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static GetRunOutputResponse? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get output => $_getSZ(0); + @$pb.TagNumber(1) + set output($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasOutput() => $_has(0); + @$pb.TagNumber(1) + void clearOutput() => clearField(1); + + @$pb.TagNumber(2) + Status get compilationStatus => $_getN(1); + @$pb.TagNumber(2) + set compilationStatus(Status v) { setField(2, v); } + @$pb.TagNumber(2) + $core.bool hasCompilationStatus() => $_has(1); + @$pb.TagNumber(2) + void clearCompilationStatus() => clearField(2); +} + diff --git a/playground/frontend/lib/api/v1/api.pbenum.dart b/playground/frontend/lib/api/v1/api.pbenum.dart new file mode 100644 index 0000000000000..e1cf8498de720 --- /dev/null +++ b/playground/frontend/lib/api/v1/api.pbenum.dart @@ -0,0 +1,68 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/// +// Generated code. Do not modify. +// source: api/v1/api.proto +// +// @dart = 2.12 +// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields + +// ignore_for_file: UNDEFINED_SHOWN_NAME +import 'dart:core' as $core; +import 'package:protobuf/protobuf.dart' as $pb; + +class Sdk extends $pb.ProtobufEnum { + static const Sdk SDK_UNSPECIFIED = Sdk._(0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'SDK_UNSPECIFIED'); + static const Sdk SDK_JAVA = Sdk._(1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'SDK_JAVA'); + static const Sdk SDK_GO = Sdk._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'SDK_GO'); + static const Sdk SDK_PYTHON = Sdk._(3, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'SDK_PYTHON'); + static const Sdk SDK_SCIO = Sdk._(4, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'SDK_SCIO'); + + static const $core.List values = [ + SDK_UNSPECIFIED, + SDK_JAVA, + SDK_GO, + SDK_PYTHON, + SDK_SCIO, + ]; + + static final $core.Map<$core.int, Sdk> _byValue = $pb.ProtobufEnum.initByValue(values); + static Sdk? valueOf($core.int value) => _byValue[value]; + + const Sdk._($core.int v, $core.String n) : super(v, n); +} + +class Status extends $pb.ProtobufEnum { + static const Status STATUS_UNSPECIFIED = Status._(0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'STATUS_UNSPECIFIED'); + static const Status STATUS_EXECUTING = Status._(1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'STATUS_EXECUTING'); + static const Status STATUS_FINISHED = Status._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'STATUS_FINISHED'); + static const Status STATUS_ERROR = Status._(3, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'STATUS_ERROR'); + + static const $core.List values = [ + STATUS_UNSPECIFIED, + STATUS_EXECUTING, + STATUS_FINISHED, + STATUS_ERROR, + ]; + + static final $core.Map<$core.int, Status> _byValue = $pb.ProtobufEnum.initByValue(values); + static Status? valueOf($core.int value) => _byValue[value]; + + const Status._($core.int v, $core.String n) : super(v, n); +} + diff --git a/playground/frontend/lib/api/v1/api.pbgrpc.dart b/playground/frontend/lib/api/v1/api.pbgrpc.dart new file mode 100644 index 0000000000000..3cfd2583575e4 --- /dev/null +++ b/playground/frontend/lib/api/v1/api.pbgrpc.dart @@ -0,0 +1,158 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/// +// Generated code. Do not modify. +// source: api/v1/api.proto +// +// @dart = 2.12 +// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields + +import 'dart:async' as $async; + +import 'dart:core' as $core; + +import 'package:grpc/service_api.dart' as $grpc; +import 'api.pb.dart' as $0; +export 'api.pb.dart'; + +class PlaygroundServiceClient extends $grpc.Client { + static final _$runCode = + $grpc.ClientMethod<$0.RunCodeRequest, $0.RunCodeResponse>( + '/api.v1.PlaygroundService/RunCode', + ($0.RunCodeRequest value) => value.writeToBuffer(), + ($core.List<$core.int> value) => + $0.RunCodeResponse.fromBuffer(value)); + static final _$checkStatus = + $grpc.ClientMethod<$0.CheckStatusRequest, $0.CheckStatusResponse>( + '/api.v1.PlaygroundService/CheckStatus', + ($0.CheckStatusRequest value) => value.writeToBuffer(), + ($core.List<$core.int> value) => + $0.CheckStatusResponse.fromBuffer(value)); + static final _$getRunOutput = + $grpc.ClientMethod<$0.GetRunOutputRequest, $0.GetRunOutputResponse>( + '/api.v1.PlaygroundService/GetRunOutput', + ($0.GetRunOutputRequest value) => value.writeToBuffer(), + ($core.List<$core.int> value) => + $0.GetRunOutputResponse.fromBuffer(value)); + static final _$getCompileOutput = $grpc.ClientMethod< + $0.GetCompileOutputRequest, $0.GetCompileOutputResponse>( + '/api.v1.PlaygroundService/GetCompileOutput', + ($0.GetCompileOutputRequest value) => value.writeToBuffer(), + ($core.List<$core.int> value) => + $0.GetCompileOutputResponse.fromBuffer(value)); + + PlaygroundServiceClient($grpc.ClientChannel channel, + {$grpc.CallOptions? options, + $core.Iterable<$grpc.ClientInterceptor>? interceptors}) + : super(channel, options: options, interceptors: interceptors); + + $grpc.ResponseFuture<$0.RunCodeResponse> runCode($0.RunCodeRequest request, + {$grpc.CallOptions? options}) { + return $createUnaryCall(_$runCode, request, options: options); + } + + $grpc.ResponseFuture<$0.CheckStatusResponse> checkStatus( + $0.CheckStatusRequest request, + {$grpc.CallOptions? options}) { + return $createUnaryCall(_$checkStatus, request, options: options); + } + + $grpc.ResponseFuture<$0.GetRunOutputResponse> getRunOutput( + $0.GetRunOutputRequest request, + {$grpc.CallOptions? options}) { + return $createUnaryCall(_$getRunOutput, request, options: options); + } + + $grpc.ResponseFuture<$0.GetCompileOutputResponse> getCompileOutput( + $0.GetCompileOutputRequest request, + {$grpc.CallOptions? options}) { + return $createUnaryCall(_$getCompileOutput, request, options: options); + } +} + +abstract class PlaygroundServiceBase extends $grpc.Service { + $core.String get $name => 'api.v1.PlaygroundService'; + + PlaygroundServiceBase() { + $addMethod($grpc.ServiceMethod<$0.RunCodeRequest, $0.RunCodeResponse>( + 'RunCode', + runCode_Pre, + false, + false, + ($core.List<$core.int> value) => $0.RunCodeRequest.fromBuffer(value), + ($0.RunCodeResponse value) => value.writeToBuffer())); + $addMethod( + $grpc.ServiceMethod<$0.CheckStatusRequest, $0.CheckStatusResponse>( + 'CheckStatus', + checkStatus_Pre, + false, + false, + ($core.List<$core.int> value) => + $0.CheckStatusRequest.fromBuffer(value), + ($0.CheckStatusResponse value) => value.writeToBuffer())); + $addMethod( + $grpc.ServiceMethod<$0.GetRunOutputRequest, $0.GetRunOutputResponse>( + 'GetRunOutput', + getRunOutput_Pre, + false, + false, + ($core.List<$core.int> value) => + $0.GetRunOutputRequest.fromBuffer(value), + ($0.GetRunOutputResponse value) => value.writeToBuffer())); + $addMethod($grpc.ServiceMethod<$0.GetCompileOutputRequest, + $0.GetCompileOutputResponse>( + 'GetCompileOutput', + getCompileOutput_Pre, + false, + false, + ($core.List<$core.int> value) => + $0.GetCompileOutputRequest.fromBuffer(value), + ($0.GetCompileOutputResponse value) => value.writeToBuffer())); + } + + $async.Future<$0.RunCodeResponse> runCode_Pre( + $grpc.ServiceCall call, $async.Future<$0.RunCodeRequest> request) async { + return runCode(call, await request); + } + + $async.Future<$0.CheckStatusResponse> checkStatus_Pre($grpc.ServiceCall call, + $async.Future<$0.CheckStatusRequest> request) async { + return checkStatus(call, await request); + } + + $async.Future<$0.GetRunOutputResponse> getRunOutput_Pre( + $grpc.ServiceCall call, + $async.Future<$0.GetRunOutputRequest> request) async { + return getRunOutput(call, await request); + } + + $async.Future<$0.GetCompileOutputResponse> getCompileOutput_Pre( + $grpc.ServiceCall call, + $async.Future<$0.GetCompileOutputRequest> request) async { + return getCompileOutput(call, await request); + } + + $async.Future<$0.RunCodeResponse> runCode( + $grpc.ServiceCall call, $0.RunCodeRequest request); + $async.Future<$0.CheckStatusResponse> checkStatus( + $grpc.ServiceCall call, $0.CheckStatusRequest request); + $async.Future<$0.GetRunOutputResponse> getRunOutput( + $grpc.ServiceCall call, $0.GetRunOutputRequest request); + $async.Future<$0.GetCompileOutputResponse> getCompileOutput( + $grpc.ServiceCall call, $0.GetCompileOutputRequest request); +} diff --git a/playground/frontend/lib/api/v1/api.pbjson.dart b/playground/frontend/lib/api/v1/api.pbjson.dart new file mode 100644 index 0000000000000..4b29e56722e25 --- /dev/null +++ b/playground/frontend/lib/api/v1/api.pbjson.dart @@ -0,0 +1,137 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/// +// Generated code. Do not modify. +// source: api/v1/api.proto +// +// @dart = 2.12 +// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields,deprecated_member_use_from_same_package + +import 'dart:core' as $core; +import 'dart:convert' as $convert; +import 'dart:typed_data' as $typed_data; +@$core.Deprecated('Use sdkDescriptor instead') +const Sdk$json = const { + '1': 'Sdk', + '2': const [ + const {'1': 'SDK_UNSPECIFIED', '2': 0}, + const {'1': 'SDK_JAVA', '2': 1}, + const {'1': 'SDK_GO', '2': 2}, + const {'1': 'SDK_PYTHON', '2': 3}, + const {'1': 'SDK_SCIO', '2': 4}, + ], +}; + +/// Descriptor for `Sdk`. Decode as a `google.protobuf.EnumDescriptorProto`. +final $typed_data.Uint8List sdkDescriptor = $convert.base64Decode('CgNTZGsSEwoPU0RLX1VOU1BFQ0lGSUVEEAASDAoIU0RLX0pBVkEQARIKCgZTREtfR08QAhIOCgpTREtfUFlUSE9OEAMSDAoIU0RLX1NDSU8QBA=='); +@$core.Deprecated('Use statusDescriptor instead') +const Status$json = const { + '1': 'Status', + '2': const [ + const {'1': 'STATUS_UNSPECIFIED', '2': 0}, + const {'1': 'STATUS_EXECUTING', '2': 1}, + const {'1': 'STATUS_FINISHED', '2': 2}, + const {'1': 'STATUS_ERROR', '2': 3}, + ], +}; + +/// Descriptor for `Status`. Decode as a `google.protobuf.EnumDescriptorProto`. +final $typed_data.Uint8List statusDescriptor = $convert.base64Decode('CgZTdGF0dXMSFgoSU1RBVFVTX1VOU1BFQ0lGSUVEEAASFAoQU1RBVFVTX0VYRUNVVElORxABEhMKD1NUQVRVU19GSU5JU0hFRBACEhAKDFNUQVRVU19FUlJPUhAD'); +@$core.Deprecated('Use runCodeRequestDescriptor instead') +const RunCodeRequest$json = const { + '1': 'RunCodeRequest', + '2': const [ + const {'1': 'code', '3': 1, '4': 1, '5': 9, '10': 'code'}, + const {'1': 'sdk', '3': 2, '4': 1, '5': 14, '6': '.api.v1.Sdk', '10': 'sdk'}, + ], +}; + +/// Descriptor for `RunCodeRequest`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List runCodeRequestDescriptor = $convert.base64Decode('Cg5SdW5Db2RlUmVxdWVzdBISCgRjb2RlGAEgASgJUgRjb2RlEh0KA3NkaxgCIAEoDjILLmFwaS52MS5TZGtSA3Nkaw=='); +@$core.Deprecated('Use runCodeResponseDescriptor instead') +const RunCodeResponse$json = const { + '1': 'RunCodeResponse', + '2': const [ + const {'1': 'pipeline_uuid', '3': 1, '4': 1, '5': 9, '10': 'pipelineUuid'}, + ], +}; + +/// Descriptor for `RunCodeResponse`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List runCodeResponseDescriptor = $convert.base64Decode('Cg9SdW5Db2RlUmVzcG9uc2USIwoNcGlwZWxpbmVfdXVpZBgBIAEoCVIMcGlwZWxpbmVVdWlk'); +@$core.Deprecated('Use checkStatusRequestDescriptor instead') +const CheckStatusRequest$json = const { + '1': 'CheckStatusRequest', + '2': const [ + const {'1': 'pipeline_uuid', '3': 1, '4': 1, '5': 9, '10': 'pipelineUuid'}, + ], +}; + +/// Descriptor for `CheckStatusRequest`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List checkStatusRequestDescriptor = $convert.base64Decode('ChJDaGVja1N0YXR1c1JlcXVlc3QSIwoNcGlwZWxpbmVfdXVpZBgBIAEoCVIMcGlwZWxpbmVVdWlk'); +@$core.Deprecated('Use checkStatusResponseDescriptor instead') +const CheckStatusResponse$json = const { + '1': 'CheckStatusResponse', + '2': const [ + const {'1': 'status', '3': 1, '4': 1, '5': 14, '6': '.api.v1.Status', '10': 'status'}, + ], +}; + +/// Descriptor for `CheckStatusResponse`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List checkStatusResponseDescriptor = $convert.base64Decode('ChNDaGVja1N0YXR1c1Jlc3BvbnNlEiYKBnN0YXR1cxgBIAEoDjIOLmFwaS52MS5TdGF0dXNSBnN0YXR1cw=='); +@$core.Deprecated('Use getCompileOutputRequestDescriptor instead') +const GetCompileOutputRequest$json = const { + '1': 'GetCompileOutputRequest', + '2': const [ + const {'1': 'pipeline_uuid', '3': 1, '4': 1, '5': 9, '10': 'pipelineUuid'}, + ], +}; + +/// Descriptor for `GetCompileOutputRequest`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List getCompileOutputRequestDescriptor = $convert.base64Decode('ChdHZXRDb21waWxlT3V0cHV0UmVxdWVzdBIjCg1waXBlbGluZV91dWlkGAEgASgJUgxwaXBlbGluZVV1aWQ='); +@$core.Deprecated('Use getCompileOutputResponseDescriptor instead') +const GetCompileOutputResponse$json = const { + '1': 'GetCompileOutputResponse', + '2': const [ + const {'1': 'output', '3': 1, '4': 1, '5': 9, '10': 'output'}, + const {'1': 'compilation_status', '3': 2, '4': 1, '5': 14, '6': '.api.v1.Status', '10': 'compilationStatus'}, + ], +}; + +/// Descriptor for `GetCompileOutputResponse`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List getCompileOutputResponseDescriptor = $convert.base64Decode('ChhHZXRDb21waWxlT3V0cHV0UmVzcG9uc2USFgoGb3V0cHV0GAEgASgJUgZvdXRwdXQSPQoSY29tcGlsYXRpb25fc3RhdHVzGAIgASgOMg4uYXBpLnYxLlN0YXR1c1IRY29tcGlsYXRpb25TdGF0dXM='); +@$core.Deprecated('Use getRunOutputRequestDescriptor instead') +const GetRunOutputRequest$json = const { + '1': 'GetRunOutputRequest', + '2': const [ + const {'1': 'pipeline_uuid', '3': 1, '4': 1, '5': 9, '10': 'pipelineUuid'}, + ], +}; + +/// Descriptor for `GetRunOutputRequest`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List getRunOutputRequestDescriptor = $convert.base64Decode('ChNHZXRSdW5PdXRwdXRSZXF1ZXN0EiMKDXBpcGVsaW5lX3V1aWQYASABKAlSDHBpcGVsaW5lVXVpZA=='); +@$core.Deprecated('Use getRunOutputResponseDescriptor instead') +const GetRunOutputResponse$json = const { + '1': 'GetRunOutputResponse', + '2': const [ + const {'1': 'output', '3': 1, '4': 1, '5': 9, '10': 'output'}, + const {'1': 'compilation_status', '3': 2, '4': 1, '5': 14, '6': '.api.v1.Status', '10': 'compilationStatus'}, + ], +}; + +/// Descriptor for `GetRunOutputResponse`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List getRunOutputResponseDescriptor = $convert.base64Decode('ChRHZXRSdW5PdXRwdXRSZXNwb25zZRIWCgZvdXRwdXQYASABKAlSBm91dHB1dBI9ChJjb21waWxhdGlvbl9zdGF0dXMYAiABKA4yDi5hcGkudjEuU3RhdHVzUhFjb21waWxhdGlvblN0YXR1cw=='); diff --git a/playground/frontend/lib/modules/editor/repository/code_repository/code_client/grpc_code_client.dart b/playground/frontend/lib/modules/editor/repository/code_repository/code_client/grpc_code_client.dart index 51735427be79e..93ee0efe4055d 100644 --- a/playground/frontend/lib/modules/editor/repository/code_repository/code_client/grpc_code_client.dart +++ b/playground/frontend/lib/modules/editor/repository/code_repository/code_client/grpc_code_client.dart @@ -18,7 +18,7 @@ import 'package:grpc/grpc_web.dart'; import 'package:playground/constants/api.dart'; -import 'package:playground/generated/playground.pbgrpc.dart' as grpc; +import 'package:playground/api/v1/api.pbgrpc.dart' as grpc; import 'package:playground/modules/editor/repository/code_repository/code_client/check_status_response.dart'; import 'package:playground/modules/editor/repository/code_repository/code_client/code_client.dart'; import 'package:playground/modules/editor/repository/code_repository/code_client/output_response.dart'; diff --git a/playground/frontend/test/modules/editor/repository/code_repository/code_repository_test.mocks.dart b/playground/frontend/test/modules/editor/repository/code_repository/code_repository_test.mocks.dart new file mode 100644 index 0000000000000..11c8517ca1a54 --- /dev/null +++ b/playground/frontend/test/modules/editor/repository/code_repository/code_repository_test.mocks.dart @@ -0,0 +1,86 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Mocks generated by Mockito 5.0.16 from annotations +// in playground/test/modules/editor/repository/code_repository/code_repository_test.dart. +// Do not manually edit this file. + +import 'dart:async' as _i6; + +import 'package:mockito/mockito.dart' as _i1; +import 'package:playground/modules/editor/repository/code_repository/code_client/check_status_response.dart' + as _i3; +import 'package:playground/modules/editor/repository/code_repository/code_client/code_client.dart' + as _i5; +import 'package:playground/modules/editor/repository/code_repository/code_client/output_response.dart' + as _i4; +import 'package:playground/modules/editor/repository/code_repository/code_client/run_code_response.dart' + as _i2; +import 'package:playground/modules/editor/repository/code_repository/run_code_request.dart' + as _i7; + +// ignore_for_file: avoid_redundant_argument_values +// ignore_for_file: avoid_setters_without_getters +// ignore_for_file: comment_references +// ignore_for_file: implementation_imports +// ignore_for_file: invalid_use_of_visible_for_testing_member +// ignore_for_file: prefer_const_constructors +// ignore_for_file: unnecessary_parenthesis +// ignore_for_file: camel_case_types + +class _FakeRunCodeResponse_0 extends _i1.Fake implements _i2.RunCodeResponse {} + +class _FakeCheckStatusResponse_1 extends _i1.Fake + implements _i3.CheckStatusResponse {} + +class _FakeOutputResponse_2 extends _i1.Fake implements _i4.OutputResponse {} + +/// A class which mocks [CodeClient]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockCodeClient extends _i1.Mock implements _i5.CodeClient { + MockCodeClient() { + _i1.throwOnMissingStub(this); + } + + @override + _i6.Future<_i2.RunCodeResponse> runCode(_i7.RunCodeRequestWrapper? request) => + (super.noSuchMethod(Invocation.method(#runCode, [request]), + returnValue: + Future<_i2.RunCodeResponse>.value(_FakeRunCodeResponse_0())) + as _i6.Future<_i2.RunCodeResponse>); + @override + _i6.Future<_i3.CheckStatusResponse> checkStatus(String? pipelineUuid) => + (super.noSuchMethod(Invocation.method(#checkStatus, [pipelineUuid]), + returnValue: Future<_i3.CheckStatusResponse>.value( + _FakeCheckStatusResponse_1())) + as _i6.Future<_i3.CheckStatusResponse>); + @override + _i6.Future<_i4.OutputResponse> getCompileOutput(String? pipelineUuid) => + (super.noSuchMethod(Invocation.method(#getCompileOutput, [pipelineUuid]), + returnValue: + Future<_i4.OutputResponse>.value(_FakeOutputResponse_2())) + as _i6.Future<_i4.OutputResponse>); + @override + _i6.Future<_i4.OutputResponse> getRunOutput(String? pipelineUuid) => + (super.noSuchMethod(Invocation.method(#getRunOutput, [pipelineUuid]), + returnValue: + Future<_i4.OutputResponse>.value(_FakeOutputResponse_2())) + as _i6.Future<_i4.OutputResponse>); + @override + String toString() => super.toString(); +} diff --git a/settings.gradle.kts b/settings.gradle.kts index d9d45933b226b..4c74386a356e4 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -56,6 +56,9 @@ include(":examples:kotlin") include(":model:fn-execution") include(":model:job-management") include(":model:pipeline") +include(":playground") +include(":playground:backend") +include(":playground:frontend") include(":runners:core-construction-java") include(":runners:core-java") include(":runners:direct-java")