planetscale 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.github/workflows/ci.yml +24 -0
- data/.github/workflows/gem-push.yml +38 -0
- data/.github/workflows/licensed.yml +43 -0
- data/.gitignore +10 -0
- data/.licensed.yml +9 -0
- data/.licenses/go/github.com/armon/circbuf.dep.yml +31 -0
- data/.licenses/go/github.com/gorilla/mux.dep.yml +41 -0
- data/.licenses/go/github.com/hashicorp/go-cleanhttp.dep.yml +375 -0
- data/.licenses/go/github.com/mitchellh/go-homedir.dep.yml +32 -0
- data/.licenses/go/github.com/pkg/errors.dep.yml +36 -0
- data/.licenses/go/github.com/planetscale/planetscale-go/planetscale.dep.yml +160 -0
- data/.licenses/go/github.com/planetscale/sql-proxy/proxy.dep.yml +180 -0
- data/.licenses/go/go.uber.org/atomic.dep.yml +31 -0
- data/.licenses/go/go.uber.org/multierr.dep.yml +30 -0
- data/.licenses/go/go.uber.org/zap.dep.yml +30 -0
- data/.licenses/go/go.uber.org/zap/buffer.dep.yml +30 -0
- data/.licenses/go/go.uber.org/zap/internal/bufferpool.dep.yml +30 -0
- data/.licenses/go/go.uber.org/zap/internal/color.dep.yml +30 -0
- data/.licenses/go/go.uber.org/zap/internal/exit.dep.yml +31 -0
- data/.licenses/go/go.uber.org/zap/zapcore.dep.yml +31 -0
- data/.licenses/go/golang.org/x/net/context/ctxhttp.dep.yml +63 -0
- data/.licenses/go/golang.org/x/oauth2.dep.yml +44 -0
- data/.licenses/go/golang.org/x/oauth2/internal.dep.yml +38 -0
- data/.ruby_version +1 -0
- data/Gemfile +8 -0
- data/LICENSE +201 -0
- data/README.md +88 -0
- data/Rakefile +10 -0
- data/bin/console +15 -0
- data/bin/setup +17 -0
- data/controller.go +255 -0
- data/go.mod +16 -0
- data/go.sum +428 -0
- data/lib/generators/planetscale/install_generator.rb +58 -0
- data/lib/planetscale.rb +137 -0
- data/lib/planetscale/version.rb +5 -0
- data/planetscale.gemspec +44 -0
- data/proxy.go +128 -0
- data/vendor/github.com/armon/circbuf/.gitignore +22 -0
- data/vendor/github.com/armon/circbuf/LICENSE +20 -0
- data/vendor/github.com/armon/circbuf/README.md +28 -0
- data/vendor/github.com/armon/circbuf/circbuf.go +92 -0
- data/vendor/github.com/armon/circbuf/go.mod +1 -0
- data/vendor/github.com/golang/protobuf/AUTHORS +3 -0
- data/vendor/github.com/golang/protobuf/CONTRIBUTORS +3 -0
- data/vendor/github.com/golang/protobuf/LICENSE +28 -0
- data/vendor/github.com/golang/protobuf/proto/buffer.go +324 -0
- data/vendor/github.com/golang/protobuf/proto/defaults.go +63 -0
- data/vendor/github.com/golang/protobuf/proto/deprecated.go +113 -0
- data/vendor/github.com/golang/protobuf/proto/discard.go +58 -0
- data/vendor/github.com/golang/protobuf/proto/extensions.go +356 -0
- data/vendor/github.com/golang/protobuf/proto/properties.go +306 -0
- data/vendor/github.com/golang/protobuf/proto/proto.go +167 -0
- data/vendor/github.com/golang/protobuf/proto/registry.go +317 -0
- data/vendor/github.com/golang/protobuf/proto/text_decode.go +801 -0
- data/vendor/github.com/golang/protobuf/proto/text_encode.go +560 -0
- data/vendor/github.com/golang/protobuf/proto/wire.go +78 -0
- data/vendor/github.com/golang/protobuf/proto/wrappers.go +34 -0
- data/vendor/github.com/gorilla/mux/AUTHORS +8 -0
- data/vendor/github.com/gorilla/mux/LICENSE +27 -0
- data/vendor/github.com/gorilla/mux/README.md +805 -0
- data/vendor/github.com/gorilla/mux/doc.go +306 -0
- data/vendor/github.com/gorilla/mux/go.mod +3 -0
- data/vendor/github.com/gorilla/mux/middleware.go +74 -0
- data/vendor/github.com/gorilla/mux/mux.go +606 -0
- data/vendor/github.com/gorilla/mux/regexp.go +388 -0
- data/vendor/github.com/gorilla/mux/route.go +736 -0
- data/vendor/github.com/gorilla/mux/test_helpers.go +19 -0
- data/vendor/github.com/hashicorp/go-cleanhttp/LICENSE +363 -0
- data/vendor/github.com/hashicorp/go-cleanhttp/README.md +30 -0
- data/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +58 -0
- data/vendor/github.com/hashicorp/go-cleanhttp/doc.go +20 -0
- data/vendor/github.com/hashicorp/go-cleanhttp/go.mod +3 -0
- data/vendor/github.com/hashicorp/go-cleanhttp/handlers.go +48 -0
- data/vendor/github.com/mitchellh/go-homedir/LICENSE +21 -0
- data/vendor/github.com/mitchellh/go-homedir/README.md +14 -0
- data/vendor/github.com/mitchellh/go-homedir/go.mod +1 -0
- data/vendor/github.com/mitchellh/go-homedir/homedir.go +167 -0
- data/vendor/github.com/pkg/errors/.gitignore +24 -0
- data/vendor/github.com/pkg/errors/.travis.yml +10 -0
- data/vendor/github.com/pkg/errors/LICENSE +23 -0
- data/vendor/github.com/pkg/errors/Makefile +44 -0
- data/vendor/github.com/pkg/errors/README.md +59 -0
- data/vendor/github.com/pkg/errors/appveyor.yml +32 -0
- data/vendor/github.com/pkg/errors/errors.go +288 -0
- data/vendor/github.com/pkg/errors/go113.go +38 -0
- data/vendor/github.com/pkg/errors/stack.go +177 -0
- data/vendor/github.com/planetscale/planetscale-go/planetscale/backups.go +139 -0
- data/vendor/github.com/planetscale/planetscale-go/planetscale/branches.go +258 -0
- data/vendor/github.com/planetscale/planetscale-go/planetscale/certs.go +142 -0
- data/vendor/github.com/planetscale/planetscale-go/planetscale/client.go +305 -0
- data/vendor/github.com/planetscale/planetscale-go/planetscale/databases.go +131 -0
- data/vendor/github.com/planetscale/planetscale-go/planetscale/deploy_requests.go +368 -0
- data/vendor/github.com/planetscale/planetscale-go/planetscale/organizations.go +78 -0
- data/vendor/github.com/planetscale/planetscale-go/planetscale/service_tokens.go +163 -0
- data/vendor/github.com/planetscale/sql-proxy/proxy/client.go +467 -0
- data/vendor/github.com/planetscale/sql-proxy/proxy/tls_cache.go +73 -0
- data/vendor/go.uber.org/atomic/.codecov.yml +19 -0
- data/vendor/go.uber.org/atomic/.gitignore +12 -0
- data/vendor/go.uber.org/atomic/.travis.yml +27 -0
- data/vendor/go.uber.org/atomic/CHANGELOG.md +76 -0
- data/vendor/go.uber.org/atomic/LICENSE.txt +19 -0
- data/vendor/go.uber.org/atomic/Makefile +78 -0
- data/vendor/go.uber.org/atomic/README.md +63 -0
- data/vendor/go.uber.org/atomic/bool.go +81 -0
- data/vendor/go.uber.org/atomic/bool_ext.go +53 -0
- data/vendor/go.uber.org/atomic/doc.go +23 -0
- data/vendor/go.uber.org/atomic/duration.go +82 -0
- data/vendor/go.uber.org/atomic/duration_ext.go +40 -0
- data/vendor/go.uber.org/atomic/error.go +51 -0
- data/vendor/go.uber.org/atomic/error_ext.go +39 -0
- data/vendor/go.uber.org/atomic/float64.go +76 -0
- data/vendor/go.uber.org/atomic/float64_ext.go +47 -0
- data/vendor/go.uber.org/atomic/gen.go +26 -0
- data/vendor/go.uber.org/atomic/go.mod +8 -0
- data/vendor/go.uber.org/atomic/go.sum +9 -0
- data/vendor/go.uber.org/atomic/int32.go +102 -0
- data/vendor/go.uber.org/atomic/int64.go +102 -0
- data/vendor/go.uber.org/atomic/nocmp.go +35 -0
- data/vendor/go.uber.org/atomic/string.go +54 -0
- data/vendor/go.uber.org/atomic/string_ext.go +43 -0
- data/vendor/go.uber.org/atomic/uint32.go +102 -0
- data/vendor/go.uber.org/atomic/uint64.go +102 -0
- data/vendor/go.uber.org/atomic/value.go +31 -0
- data/vendor/go.uber.org/multierr/.codecov.yml +15 -0
- data/vendor/go.uber.org/multierr/.gitignore +4 -0
- data/vendor/go.uber.org/multierr/.travis.yml +23 -0
- data/vendor/go.uber.org/multierr/CHANGELOG.md +60 -0
- data/vendor/go.uber.org/multierr/LICENSE.txt +19 -0
- data/vendor/go.uber.org/multierr/Makefile +42 -0
- data/vendor/go.uber.org/multierr/README.md +23 -0
- data/vendor/go.uber.org/multierr/error.go +449 -0
- data/vendor/go.uber.org/multierr/glide.yaml +8 -0
- data/vendor/go.uber.org/multierr/go.mod +8 -0
- data/vendor/go.uber.org/multierr/go.sum +11 -0
- data/vendor/go.uber.org/multierr/go113.go +52 -0
- data/vendor/go.uber.org/zap/.codecov.yml +17 -0
- data/vendor/go.uber.org/zap/.gitignore +32 -0
- data/vendor/go.uber.org/zap/.readme.tmpl +109 -0
- data/vendor/go.uber.org/zap/.travis.yml +23 -0
- data/vendor/go.uber.org/zap/CHANGELOG.md +432 -0
- data/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +75 -0
- data/vendor/go.uber.org/zap/CONTRIBUTING.md +81 -0
- data/vendor/go.uber.org/zap/FAQ.md +156 -0
- data/vendor/go.uber.org/zap/LICENSE.txt +19 -0
- data/vendor/go.uber.org/zap/Makefile +63 -0
- data/vendor/go.uber.org/zap/README.md +134 -0
- data/vendor/go.uber.org/zap/array.go +320 -0
- data/vendor/go.uber.org/zap/buffer/buffer.go +123 -0
- data/vendor/go.uber.org/zap/buffer/pool.go +49 -0
- data/vendor/go.uber.org/zap/checklicense.sh +17 -0
- data/vendor/go.uber.org/zap/config.go +264 -0
- data/vendor/go.uber.org/zap/doc.go +113 -0
- data/vendor/go.uber.org/zap/encoder.go +79 -0
- data/vendor/go.uber.org/zap/error.go +80 -0
- data/vendor/go.uber.org/zap/field.go +539 -0
- data/vendor/go.uber.org/zap/flag.go +39 -0
- data/vendor/go.uber.org/zap/glide.yaml +34 -0
- data/vendor/go.uber.org/zap/global.go +168 -0
- data/vendor/go.uber.org/zap/global_go112.go +26 -0
- data/vendor/go.uber.org/zap/global_prego112.go +26 -0
- data/vendor/go.uber.org/zap/go.mod +13 -0
- data/vendor/go.uber.org/zap/go.sum +56 -0
- data/vendor/go.uber.org/zap/http_handler.go +81 -0
- data/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +31 -0
- data/vendor/go.uber.org/zap/internal/color/color.go +44 -0
- data/vendor/go.uber.org/zap/internal/exit/exit.go +64 -0
- data/vendor/go.uber.org/zap/level.go +132 -0
- data/vendor/go.uber.org/zap/logger.go +344 -0
- data/vendor/go.uber.org/zap/options.go +140 -0
- data/vendor/go.uber.org/zap/sink.go +161 -0
- data/vendor/go.uber.org/zap/stacktrace.go +85 -0
- data/vendor/go.uber.org/zap/sugar.go +304 -0
- data/vendor/go.uber.org/zap/time.go +27 -0
- data/vendor/go.uber.org/zap/writer.go +99 -0
- data/vendor/go.uber.org/zap/zapcore/console_encoder.go +161 -0
- data/vendor/go.uber.org/zap/zapcore/core.go +113 -0
- data/vendor/go.uber.org/zap/zapcore/doc.go +24 -0
- data/vendor/go.uber.org/zap/zapcore/encoder.go +443 -0
- data/vendor/go.uber.org/zap/zapcore/entry.go +264 -0
- data/vendor/go.uber.org/zap/zapcore/error.go +115 -0
- data/vendor/go.uber.org/zap/zapcore/field.go +227 -0
- data/vendor/go.uber.org/zap/zapcore/hook.go +68 -0
- data/vendor/go.uber.org/zap/zapcore/increase_level.go +66 -0
- data/vendor/go.uber.org/zap/zapcore/json_encoder.go +534 -0
- data/vendor/go.uber.org/zap/zapcore/level.go +175 -0
- data/vendor/go.uber.org/zap/zapcore/level_strings.go +46 -0
- data/vendor/go.uber.org/zap/zapcore/marshaler.go +61 -0
- data/vendor/go.uber.org/zap/zapcore/memory_encoder.go +179 -0
- data/vendor/go.uber.org/zap/zapcore/sampler.go +208 -0
- data/vendor/go.uber.org/zap/zapcore/tee.go +81 -0
- data/vendor/go.uber.org/zap/zapcore/write_syncer.go +123 -0
- data/vendor/golang.org/x/net/AUTHORS +3 -0
- data/vendor/golang.org/x/net/CONTRIBUTORS +3 -0
- data/vendor/golang.org/x/net/LICENSE +27 -0
- data/vendor/golang.org/x/net/PATENTS +22 -0
- data/vendor/golang.org/x/net/context/context.go +56 -0
- data/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +71 -0
- data/vendor/golang.org/x/net/context/go17.go +73 -0
- data/vendor/golang.org/x/net/context/go19.go +21 -0
- data/vendor/golang.org/x/net/context/pre_go17.go +301 -0
- data/vendor/golang.org/x/net/context/pre_go19.go +110 -0
- data/vendor/golang.org/x/oauth2/.travis.yml +13 -0
- data/vendor/golang.org/x/oauth2/AUTHORS +3 -0
- data/vendor/golang.org/x/oauth2/CONTRIBUTING.md +26 -0
- data/vendor/golang.org/x/oauth2/CONTRIBUTORS +3 -0
- data/vendor/golang.org/x/oauth2/LICENSE +27 -0
- data/vendor/golang.org/x/oauth2/README.md +36 -0
- data/vendor/golang.org/x/oauth2/go.mod +9 -0
- data/vendor/golang.org/x/oauth2/go.sum +361 -0
- data/vendor/golang.org/x/oauth2/internal/client_appengine.go +14 -0
- data/vendor/golang.org/x/oauth2/internal/doc.go +6 -0
- data/vendor/golang.org/x/oauth2/internal/oauth2.go +37 -0
- data/vendor/golang.org/x/oauth2/internal/token.go +294 -0
- data/vendor/golang.org/x/oauth2/internal/transport.go +33 -0
- data/vendor/golang.org/x/oauth2/oauth2.go +381 -0
- data/vendor/golang.org/x/oauth2/token.go +178 -0
- data/vendor/golang.org/x/oauth2/transport.go +89 -0
- data/vendor/google.golang.org/appengine/LICENSE +202 -0
- data/vendor/google.golang.org/appengine/internal/api.go +678 -0
- data/vendor/google.golang.org/appengine/internal/api_classic.go +169 -0
- data/vendor/google.golang.org/appengine/internal/api_common.go +123 -0
- data/vendor/google.golang.org/appengine/internal/app_id.go +28 -0
- data/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +308 -0
- data/vendor/google.golang.org/appengine/internal/base/api_base.proto +33 -0
- data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +4367 -0
- data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +551 -0
- data/vendor/google.golang.org/appengine/internal/identity.go +55 -0
- data/vendor/google.golang.org/appengine/internal/identity_classic.go +61 -0
- data/vendor/google.golang.org/appengine/internal/identity_flex.go +11 -0
- data/vendor/google.golang.org/appengine/internal/identity_vm.go +134 -0
- data/vendor/google.golang.org/appengine/internal/internal.go +110 -0
- data/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +1313 -0
- data/vendor/google.golang.org/appengine/internal/log/log_service.proto +150 -0
- data/vendor/google.golang.org/appengine/internal/main.go +16 -0
- data/vendor/google.golang.org/appengine/internal/main_common.go +7 -0
- data/vendor/google.golang.org/appengine/internal/main_vm.go +69 -0
- data/vendor/google.golang.org/appengine/internal/metadata.go +60 -0
- data/vendor/google.golang.org/appengine/internal/net.go +56 -0
- data/vendor/google.golang.org/appengine/internal/regen.sh +40 -0
- data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +361 -0
- data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +44 -0
- data/vendor/google.golang.org/appengine/internal/transaction.go +115 -0
- data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +527 -0
- data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +64 -0
- data/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +210 -0
- data/vendor/google.golang.org/protobuf/AUTHORS +3 -0
- data/vendor/google.golang.org/protobuf/CONTRIBUTORS +3 -0
- data/vendor/google.golang.org/protobuf/LICENSE +27 -0
- data/vendor/google.golang.org/protobuf/PATENTS +22 -0
- data/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +773 -0
- data/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +7 -0
- data/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +371 -0
- data/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +538 -0
- data/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +318 -0
- data/vendor/google.golang.org/protobuf/internal/descopts/options.go +29 -0
- data/vendor/google.golang.org/protobuf/internal/detrand/rand.go +69 -0
- data/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +213 -0
- data/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +241 -0
- data/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +207 -0
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +665 -0
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +190 -0
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +161 -0
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +373 -0
- data/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +29 -0
- data/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +265 -0
- data/vendor/google.golang.org/protobuf/internal/errors/errors.go +89 -0
- data/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +39 -0
- data/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +12 -0
- data/vendor/google.golang.org/protobuf/internal/filedesc/build.go +158 -0
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +631 -0
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +471 -0
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +704 -0
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +450 -0
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +356 -0
- data/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +107 -0
- data/vendor/google.golang.org/protobuf/internal/filetype/build.go +297 -0
- data/vendor/google.golang.org/protobuf/internal/flags/flags.go +24 -0
- data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +9 -0
- data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +9 -0
- data/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +34 -0
- data/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +106 -0
- data/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +829 -0
- data/vendor/google.golang.org/protobuf/internal/genid/doc.go +11 -0
- data/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +34 -0
- data/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +19 -0
- data/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +31 -0
- data/vendor/google.golang.org/protobuf/internal/genid/goname.go +25 -0
- data/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +16 -0
- data/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +31 -0
- data/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +116 -0
- data/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +34 -0
- data/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +184 -0
- data/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +13 -0
- data/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +175 -0
- data/vendor/google.golang.org/protobuf/internal/impl/api_export.go +177 -0
- data/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +141 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +223 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +830 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +5637 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +388 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +37 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +11 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +217 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +123 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +209 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +557 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +17 -0
- data/vendor/google.golang.org/protobuf/internal/impl/convert.go +496 -0
- data/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +141 -0
- data/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +121 -0
- data/vendor/google.golang.org/protobuf/internal/impl/decode.go +276 -0
- data/vendor/google.golang.org/protobuf/internal/impl/encode.go +201 -0
- data/vendor/google.golang.org/protobuf/internal/impl/enum.go +21 -0
- data/vendor/google.golang.org/protobuf/internal/impl/extension.go +156 -0
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +219 -0
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +92 -0
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +176 -0
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +81 -0
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +558 -0
- data/vendor/google.golang.org/protobuf/internal/impl/merge.go +176 -0
- data/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +209 -0
- data/vendor/google.golang.org/protobuf/internal/impl/message.go +276 -0
- data/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +465 -0
- data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +543 -0
- data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +249 -0
- data/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +178 -0
- data/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +174 -0
- data/vendor/google.golang.org/protobuf/internal/impl/validate.go +576 -0
- data/vendor/google.golang.org/protobuf/internal/impl/weak.go +74 -0
- data/vendor/google.golang.org/protobuf/internal/order/order.go +89 -0
- data/vendor/google.golang.org/protobuf/internal/order/range.go +115 -0
- data/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +29 -0
- data/vendor/google.golang.org/protobuf/internal/set/ints.go +58 -0
- data/vendor/google.golang.org/protobuf/internal/strs/strings.go +196 -0
- data/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +27 -0
- data/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +94 -0
- data/vendor/google.golang.org/protobuf/internal/version/version.go +79 -0
- data/vendor/google.golang.org/protobuf/proto/checkinit.go +71 -0
- data/vendor/google.golang.org/protobuf/proto/decode.go +278 -0
- data/vendor/google.golang.org/protobuf/proto/decode_gen.go +603 -0
- data/vendor/google.golang.org/protobuf/proto/doc.go +94 -0
- data/vendor/google.golang.org/protobuf/proto/encode.go +319 -0
- data/vendor/google.golang.org/protobuf/proto/encode_gen.go +97 -0
- data/vendor/google.golang.org/protobuf/proto/equal.go +167 -0
- data/vendor/google.golang.org/protobuf/proto/extension.go +92 -0
- data/vendor/google.golang.org/protobuf/proto/merge.go +139 -0
- data/vendor/google.golang.org/protobuf/proto/messageset.go +93 -0
- data/vendor/google.golang.org/protobuf/proto/proto.go +43 -0
- data/vendor/google.golang.org/protobuf/proto/proto_methods.go +19 -0
- data/vendor/google.golang.org/protobuf/proto/proto_reflect.go +19 -0
- data/vendor/google.golang.org/protobuf/proto/reset.go +43 -0
- data/vendor/google.golang.org/protobuf/proto/size.go +97 -0
- data/vendor/google.golang.org/protobuf/proto/size_gen.go +55 -0
- data/vendor/google.golang.org/protobuf/proto/wrappers.go +29 -0
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +276 -0
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +248 -0
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +286 -0
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +374 -0
- data/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +252 -0
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +77 -0
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +504 -0
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +128 -0
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +461 -0
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +665 -0
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +285 -0
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +59 -0
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +411 -0
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +98 -0
- data/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +869 -0
- data/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +15 -0
- data/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +167 -0
- data/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +44 -0
- data/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +56 -0
- data/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +4039 -0
- data/vendor/modules.txt +79 -0
- metadata +495 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Copyright 2018 The Go Authors. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style
|
|
3
|
+
// license that can be found in the LICENSE file.
|
|
4
|
+
|
|
5
|
+
// Package text implements the text format for protocol buffers.
|
|
6
|
+
// This package has no semantic understanding for protocol buffers and is only
|
|
7
|
+
// a parser and composer for the format.
|
|
8
|
+
//
|
|
9
|
+
// There is no formal specification for the protobuf text format, as such the
|
|
10
|
+
// C++ implementation (see google::protobuf::TextFormat) is the reference
|
|
11
|
+
// implementation of the text format.
|
|
12
|
+
//
|
|
13
|
+
// This package is neither a superset nor a subset of the C++ implementation.
|
|
14
|
+
// This implementation permits a more liberal grammar in some cases to be
|
|
15
|
+
// backwards compatible with the historical Go implementation.
|
|
16
|
+
// Future parsings unique to Go should not be added.
|
|
17
|
+
// Some grammars allowed by the C++ implementation are deliberately
|
|
18
|
+
// not implemented here because they are considered a bug by the protobuf team
|
|
19
|
+
// and should not be replicated.
|
|
20
|
+
//
|
|
21
|
+
// The Go implementation should implement a sufficient amount of the C++
|
|
22
|
+
// grammar such that the default text serialization by C++ can be parsed by Go.
|
|
23
|
+
// However, just because the C++ parser accepts some input does not mean that
|
|
24
|
+
// the Go implementation should as well.
|
|
25
|
+
//
|
|
26
|
+
// The text format is almost a superset of JSON except:
|
|
27
|
+
// * message keys are not quoted strings, but identifiers
|
|
28
|
+
// * the top-level value must be a message without the delimiters
|
|
29
|
+
package text
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
// Copyright 2018 The Go Authors. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style
|
|
3
|
+
// license that can be found in the LICENSE file.
|
|
4
|
+
|
|
5
|
+
package text
|
|
6
|
+
|
|
7
|
+
import (
|
|
8
|
+
"math"
|
|
9
|
+
"math/bits"
|
|
10
|
+
"strconv"
|
|
11
|
+
"strings"
|
|
12
|
+
"unicode/utf8"
|
|
13
|
+
|
|
14
|
+
"google.golang.org/protobuf/internal/detrand"
|
|
15
|
+
"google.golang.org/protobuf/internal/errors"
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
// encType represents an encoding type.
|
|
19
|
+
type encType uint8
|
|
20
|
+
|
|
21
|
+
const (
|
|
22
|
+
_ encType = (1 << iota) / 2
|
|
23
|
+
name
|
|
24
|
+
scalar
|
|
25
|
+
messageOpen
|
|
26
|
+
messageClose
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
// Encoder provides methods to write out textproto constructs and values. The user is
|
|
30
|
+
// responsible for producing valid sequences of constructs and values.
|
|
31
|
+
type Encoder struct {
|
|
32
|
+
encoderState
|
|
33
|
+
|
|
34
|
+
indent string
|
|
35
|
+
delims [2]byte
|
|
36
|
+
outputASCII bool
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
type encoderState struct {
|
|
40
|
+
lastType encType
|
|
41
|
+
indents []byte
|
|
42
|
+
out []byte
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// NewEncoder returns an Encoder.
|
|
46
|
+
//
|
|
47
|
+
// If indent is a non-empty string, it causes every entry in a List or Message
|
|
48
|
+
// to be preceded by the indent and trailed by a newline.
|
|
49
|
+
//
|
|
50
|
+
// If delims is not the zero value, it controls the delimiter characters used
|
|
51
|
+
// for messages (e.g., "{}" vs "<>").
|
|
52
|
+
//
|
|
53
|
+
// If outputASCII is true, strings will be serialized in such a way that
|
|
54
|
+
// multi-byte UTF-8 sequences are escaped. This property ensures that the
|
|
55
|
+
// overall output is ASCII (as opposed to UTF-8).
|
|
56
|
+
func NewEncoder(indent string, delims [2]byte, outputASCII bool) (*Encoder, error) {
|
|
57
|
+
e := &Encoder{}
|
|
58
|
+
if len(indent) > 0 {
|
|
59
|
+
if strings.Trim(indent, " \t") != "" {
|
|
60
|
+
return nil, errors.New("indent may only be composed of space and tab characters")
|
|
61
|
+
}
|
|
62
|
+
e.indent = indent
|
|
63
|
+
}
|
|
64
|
+
switch delims {
|
|
65
|
+
case [2]byte{0, 0}:
|
|
66
|
+
e.delims = [2]byte{'{', '}'}
|
|
67
|
+
case [2]byte{'{', '}'}, [2]byte{'<', '>'}:
|
|
68
|
+
e.delims = delims
|
|
69
|
+
default:
|
|
70
|
+
return nil, errors.New("delimiters may only be \"{}\" or \"<>\"")
|
|
71
|
+
}
|
|
72
|
+
e.outputASCII = outputASCII
|
|
73
|
+
|
|
74
|
+
return e, nil
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Bytes returns the content of the written bytes.
|
|
78
|
+
func (e *Encoder) Bytes() []byte {
|
|
79
|
+
return e.out
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// StartMessage writes out the '{' or '<' symbol.
|
|
83
|
+
func (e *Encoder) StartMessage() {
|
|
84
|
+
e.prepareNext(messageOpen)
|
|
85
|
+
e.out = append(e.out, e.delims[0])
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// EndMessage writes out the '}' or '>' symbol.
|
|
89
|
+
func (e *Encoder) EndMessage() {
|
|
90
|
+
e.prepareNext(messageClose)
|
|
91
|
+
e.out = append(e.out, e.delims[1])
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// WriteName writes out the field name and the separator ':'.
|
|
95
|
+
func (e *Encoder) WriteName(s string) {
|
|
96
|
+
e.prepareNext(name)
|
|
97
|
+
e.out = append(e.out, s...)
|
|
98
|
+
e.out = append(e.out, ':')
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// WriteBool writes out the given boolean value.
|
|
102
|
+
func (e *Encoder) WriteBool(b bool) {
|
|
103
|
+
if b {
|
|
104
|
+
e.WriteLiteral("true")
|
|
105
|
+
} else {
|
|
106
|
+
e.WriteLiteral("false")
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// WriteString writes out the given string value.
|
|
111
|
+
func (e *Encoder) WriteString(s string) {
|
|
112
|
+
e.prepareNext(scalar)
|
|
113
|
+
e.out = appendString(e.out, s, e.outputASCII)
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
func appendString(out []byte, in string, outputASCII bool) []byte {
|
|
117
|
+
out = append(out, '"')
|
|
118
|
+
i := indexNeedEscapeInString(in)
|
|
119
|
+
in, out = in[i:], append(out, in[:i]...)
|
|
120
|
+
for len(in) > 0 {
|
|
121
|
+
switch r, n := utf8.DecodeRuneInString(in); {
|
|
122
|
+
case r == utf8.RuneError && n == 1:
|
|
123
|
+
// We do not report invalid UTF-8 because strings in the text format
|
|
124
|
+
// are used to represent both the proto string and bytes type.
|
|
125
|
+
r = rune(in[0])
|
|
126
|
+
fallthrough
|
|
127
|
+
case r < ' ' || r == '"' || r == '\\' || r == 0x7f:
|
|
128
|
+
out = append(out, '\\')
|
|
129
|
+
switch r {
|
|
130
|
+
case '"', '\\':
|
|
131
|
+
out = append(out, byte(r))
|
|
132
|
+
case '\n':
|
|
133
|
+
out = append(out, 'n')
|
|
134
|
+
case '\r':
|
|
135
|
+
out = append(out, 'r')
|
|
136
|
+
case '\t':
|
|
137
|
+
out = append(out, 't')
|
|
138
|
+
default:
|
|
139
|
+
out = append(out, 'x')
|
|
140
|
+
out = append(out, "00"[1+(bits.Len32(uint32(r))-1)/4:]...)
|
|
141
|
+
out = strconv.AppendUint(out, uint64(r), 16)
|
|
142
|
+
}
|
|
143
|
+
in = in[n:]
|
|
144
|
+
case r >= utf8.RuneSelf && (outputASCII || r <= 0x009f):
|
|
145
|
+
out = append(out, '\\')
|
|
146
|
+
if r <= math.MaxUint16 {
|
|
147
|
+
out = append(out, 'u')
|
|
148
|
+
out = append(out, "0000"[1+(bits.Len32(uint32(r))-1)/4:]...)
|
|
149
|
+
out = strconv.AppendUint(out, uint64(r), 16)
|
|
150
|
+
} else {
|
|
151
|
+
out = append(out, 'U')
|
|
152
|
+
out = append(out, "00000000"[1+(bits.Len32(uint32(r))-1)/4:]...)
|
|
153
|
+
out = strconv.AppendUint(out, uint64(r), 16)
|
|
154
|
+
}
|
|
155
|
+
in = in[n:]
|
|
156
|
+
default:
|
|
157
|
+
i := indexNeedEscapeInString(in[n:])
|
|
158
|
+
in, out = in[n+i:], append(out, in[:n+i]...)
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
out = append(out, '"')
|
|
162
|
+
return out
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// indexNeedEscapeInString returns the index of the character that needs
|
|
166
|
+
// escaping. If no characters need escaping, this returns the input length.
|
|
167
|
+
func indexNeedEscapeInString(s string) int {
|
|
168
|
+
for i := 0; i < len(s); i++ {
|
|
169
|
+
if c := s[i]; c < ' ' || c == '"' || c == '\'' || c == '\\' || c >= 0x7f {
|
|
170
|
+
return i
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return len(s)
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// WriteFloat writes out the given float value for given bitSize.
|
|
177
|
+
func (e *Encoder) WriteFloat(n float64, bitSize int) {
|
|
178
|
+
e.prepareNext(scalar)
|
|
179
|
+
e.out = appendFloat(e.out, n, bitSize)
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
func appendFloat(out []byte, n float64, bitSize int) []byte {
|
|
183
|
+
switch {
|
|
184
|
+
case math.IsNaN(n):
|
|
185
|
+
return append(out, "nan"...)
|
|
186
|
+
case math.IsInf(n, +1):
|
|
187
|
+
return append(out, "inf"...)
|
|
188
|
+
case math.IsInf(n, -1):
|
|
189
|
+
return append(out, "-inf"...)
|
|
190
|
+
default:
|
|
191
|
+
return strconv.AppendFloat(out, n, 'g', -1, bitSize)
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// WriteInt writes out the given signed integer value.
|
|
196
|
+
func (e *Encoder) WriteInt(n int64) {
|
|
197
|
+
e.prepareNext(scalar)
|
|
198
|
+
e.out = append(e.out, strconv.FormatInt(n, 10)...)
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// WriteUint writes out the given unsigned integer value.
|
|
202
|
+
func (e *Encoder) WriteUint(n uint64) {
|
|
203
|
+
e.prepareNext(scalar)
|
|
204
|
+
e.out = append(e.out, strconv.FormatUint(n, 10)...)
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// WriteLiteral writes out the given string as a literal value without quotes.
|
|
208
|
+
// This is used for writing enum literal strings.
|
|
209
|
+
func (e *Encoder) WriteLiteral(s string) {
|
|
210
|
+
e.prepareNext(scalar)
|
|
211
|
+
e.out = append(e.out, s...)
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
// prepareNext adds possible space and indentation for the next value based
|
|
215
|
+
// on last encType and indent option. It also updates e.lastType to next.
|
|
216
|
+
func (e *Encoder) prepareNext(next encType) {
|
|
217
|
+
defer func() {
|
|
218
|
+
e.lastType = next
|
|
219
|
+
}()
|
|
220
|
+
|
|
221
|
+
// Single line.
|
|
222
|
+
if len(e.indent) == 0 {
|
|
223
|
+
// Add space after each field before the next one.
|
|
224
|
+
if e.lastType&(scalar|messageClose) != 0 && next == name {
|
|
225
|
+
e.out = append(e.out, ' ')
|
|
226
|
+
// Add a random extra space to make output unstable.
|
|
227
|
+
if detrand.Bool() {
|
|
228
|
+
e.out = append(e.out, ' ')
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// Multi-line.
|
|
235
|
+
switch {
|
|
236
|
+
case e.lastType == name:
|
|
237
|
+
e.out = append(e.out, ' ')
|
|
238
|
+
// Add a random extra space after name: to make output unstable.
|
|
239
|
+
if detrand.Bool() {
|
|
240
|
+
e.out = append(e.out, ' ')
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
case e.lastType == messageOpen && next != messageClose:
|
|
244
|
+
e.indents = append(e.indents, e.indent...)
|
|
245
|
+
e.out = append(e.out, '\n')
|
|
246
|
+
e.out = append(e.out, e.indents...)
|
|
247
|
+
|
|
248
|
+
case e.lastType&(scalar|messageClose) != 0:
|
|
249
|
+
if next == messageClose {
|
|
250
|
+
e.indents = e.indents[:len(e.indents)-len(e.indent)]
|
|
251
|
+
}
|
|
252
|
+
e.out = append(e.out, '\n')
|
|
253
|
+
e.out = append(e.out, e.indents...)
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// Snapshot returns the current snapshot for use in Reset.
|
|
258
|
+
func (e *Encoder) Snapshot() encoderState {
|
|
259
|
+
return e.encoderState
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
// Reset resets the Encoder to the given encoderState from a Snapshot.
|
|
263
|
+
func (e *Encoder) Reset(es encoderState) {
|
|
264
|
+
e.encoderState = es
|
|
265
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// Copyright 2018 The Go Authors. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style
|
|
3
|
+
// license that can be found in the LICENSE file.
|
|
4
|
+
|
|
5
|
+
// Package errors implements functions to manipulate errors.
|
|
6
|
+
package errors
|
|
7
|
+
|
|
8
|
+
import (
|
|
9
|
+
"errors"
|
|
10
|
+
"fmt"
|
|
11
|
+
|
|
12
|
+
"google.golang.org/protobuf/internal/detrand"
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
// Error is a sentinel matching all errors produced by this package.
|
|
16
|
+
var Error = errors.New("protobuf error")
|
|
17
|
+
|
|
18
|
+
// New formats a string according to the format specifier and arguments and
|
|
19
|
+
// returns an error that has a "proto" prefix.
|
|
20
|
+
func New(f string, x ...interface{}) error {
|
|
21
|
+
return &prefixError{s: format(f, x...)}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
type prefixError struct{ s string }
|
|
25
|
+
|
|
26
|
+
var prefix = func() string {
|
|
27
|
+
// Deliberately introduce instability into the error message string to
|
|
28
|
+
// discourage users from performing error string comparisons.
|
|
29
|
+
if detrand.Bool() {
|
|
30
|
+
return "proto: " // use non-breaking spaces (U+00a0)
|
|
31
|
+
} else {
|
|
32
|
+
return "proto: " // use regular spaces (U+0020)
|
|
33
|
+
}
|
|
34
|
+
}()
|
|
35
|
+
|
|
36
|
+
func (e *prefixError) Error() string {
|
|
37
|
+
return prefix + e.s
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
func (e *prefixError) Unwrap() error {
|
|
41
|
+
return Error
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Wrap returns an error that has a "proto" prefix, the formatted string described
|
|
45
|
+
// by the format specifier and arguments, and a suffix of err. The error wraps err.
|
|
46
|
+
func Wrap(err error, f string, x ...interface{}) error {
|
|
47
|
+
return &wrapError{
|
|
48
|
+
s: format(f, x...),
|
|
49
|
+
err: err,
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
type wrapError struct {
|
|
54
|
+
s string
|
|
55
|
+
err error
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
func (e *wrapError) Error() string {
|
|
59
|
+
return format("%v%v: %v", prefix, e.s, e.err)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
func (e *wrapError) Unwrap() error {
|
|
63
|
+
return e.err
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
func (e *wrapError) Is(target error) bool {
|
|
67
|
+
return target == Error
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
func format(f string, x ...interface{}) string {
|
|
71
|
+
// avoid "proto: " prefix when chaining
|
|
72
|
+
for i := 0; i < len(x); i++ {
|
|
73
|
+
switch e := x[i].(type) {
|
|
74
|
+
case *prefixError:
|
|
75
|
+
x[i] = e.s
|
|
76
|
+
case *wrapError:
|
|
77
|
+
x[i] = format("%v: %v", e.s, e.err)
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return fmt.Sprintf(f, x...)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
func InvalidUTF8(name string) error {
|
|
84
|
+
return New("field %v contains invalid UTF-8", name)
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
func RequiredNotSet(name string) error {
|
|
88
|
+
return New("required field %v not set", name)
|
|
89
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// Copyright 2020 The Go Authors. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style
|
|
3
|
+
// license that can be found in the LICENSE file.
|
|
4
|
+
|
|
5
|
+
// +build !go1.13
|
|
6
|
+
|
|
7
|
+
package errors
|
|
8
|
+
|
|
9
|
+
import "reflect"
|
|
10
|
+
|
|
11
|
+
// Is is a copy of Go 1.13's errors.Is for use with older Go versions.
|
|
12
|
+
func Is(err, target error) bool {
|
|
13
|
+
if target == nil {
|
|
14
|
+
return err == target
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
isComparable := reflect.TypeOf(target).Comparable()
|
|
18
|
+
for {
|
|
19
|
+
if isComparable && err == target {
|
|
20
|
+
return true
|
|
21
|
+
}
|
|
22
|
+
if x, ok := err.(interface{ Is(error) bool }); ok && x.Is(target) {
|
|
23
|
+
return true
|
|
24
|
+
}
|
|
25
|
+
if err = unwrap(err); err == nil {
|
|
26
|
+
return false
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
func unwrap(err error) error {
|
|
32
|
+
u, ok := err.(interface {
|
|
33
|
+
Unwrap() error
|
|
34
|
+
})
|
|
35
|
+
if !ok {
|
|
36
|
+
return nil
|
|
37
|
+
}
|
|
38
|
+
return u.Unwrap()
|
|
39
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Copyright 2020 The Go Authors. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style
|
|
3
|
+
// license that can be found in the LICENSE file.
|
|
4
|
+
|
|
5
|
+
// +build go1.13
|
|
6
|
+
|
|
7
|
+
package errors
|
|
8
|
+
|
|
9
|
+
import "errors"
|
|
10
|
+
|
|
11
|
+
// Is is errors.Is.
|
|
12
|
+
func Is(err, target error) bool { return errors.Is(err, target) }
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
// Copyright 2019 The Go Authors. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style
|
|
3
|
+
// license that can be found in the LICENSE file.
|
|
4
|
+
|
|
5
|
+
// Package filedesc provides functionality for constructing descriptors.
|
|
6
|
+
//
|
|
7
|
+
// The types in this package implement interfaces in the protoreflect package
|
|
8
|
+
// related to protobuf descripriptors.
|
|
9
|
+
package filedesc
|
|
10
|
+
|
|
11
|
+
import (
|
|
12
|
+
"google.golang.org/protobuf/encoding/protowire"
|
|
13
|
+
"google.golang.org/protobuf/internal/genid"
|
|
14
|
+
"google.golang.org/protobuf/reflect/protoreflect"
|
|
15
|
+
pref "google.golang.org/protobuf/reflect/protoreflect"
|
|
16
|
+
preg "google.golang.org/protobuf/reflect/protoregistry"
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
// Builder construct a protoreflect.FileDescriptor from the raw descriptor.
|
|
20
|
+
type Builder struct {
|
|
21
|
+
// GoPackagePath is the Go package path that is invoking this builder.
|
|
22
|
+
GoPackagePath string
|
|
23
|
+
|
|
24
|
+
// RawDescriptor is the wire-encoded bytes of FileDescriptorProto
|
|
25
|
+
// and must be populated.
|
|
26
|
+
RawDescriptor []byte
|
|
27
|
+
|
|
28
|
+
// NumEnums is the total number of enums declared in the file.
|
|
29
|
+
NumEnums int32
|
|
30
|
+
// NumMessages is the total number of messages declared in the file.
|
|
31
|
+
// It includes the implicit message declarations for map entries.
|
|
32
|
+
NumMessages int32
|
|
33
|
+
// NumExtensions is the total number of extensions declared in the file.
|
|
34
|
+
NumExtensions int32
|
|
35
|
+
// NumServices is the total number of services declared in the file.
|
|
36
|
+
NumServices int32
|
|
37
|
+
|
|
38
|
+
// TypeResolver resolves extension field types for descriptor options.
|
|
39
|
+
// If nil, it uses protoregistry.GlobalTypes.
|
|
40
|
+
TypeResolver interface {
|
|
41
|
+
preg.ExtensionTypeResolver
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// FileRegistry is use to lookup file, enum, and message dependencies.
|
|
45
|
+
// Once constructed, the file descriptor is registered here.
|
|
46
|
+
// If nil, it uses protoregistry.GlobalFiles.
|
|
47
|
+
FileRegistry interface {
|
|
48
|
+
FindFileByPath(string) (protoreflect.FileDescriptor, error)
|
|
49
|
+
FindDescriptorByName(pref.FullName) (pref.Descriptor, error)
|
|
50
|
+
RegisterFile(pref.FileDescriptor) error
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// resolverByIndex is an interface Builder.FileRegistry may implement.
|
|
55
|
+
// If so, it permits looking up an enum or message dependency based on the
|
|
56
|
+
// sub-list and element index into filetype.Builder.DependencyIndexes.
|
|
57
|
+
type resolverByIndex interface {
|
|
58
|
+
FindEnumByIndex(int32, int32, []Enum, []Message) pref.EnumDescriptor
|
|
59
|
+
FindMessageByIndex(int32, int32, []Enum, []Message) pref.MessageDescriptor
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Indexes of each sub-list in filetype.Builder.DependencyIndexes.
|
|
63
|
+
const (
|
|
64
|
+
listFieldDeps int32 = iota
|
|
65
|
+
listExtTargets
|
|
66
|
+
listExtDeps
|
|
67
|
+
listMethInDeps
|
|
68
|
+
listMethOutDeps
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
// Out is the output of the Builder.
|
|
72
|
+
type Out struct {
|
|
73
|
+
File pref.FileDescriptor
|
|
74
|
+
|
|
75
|
+
// Enums is all enum descriptors in "flattened ordering".
|
|
76
|
+
Enums []Enum
|
|
77
|
+
// Messages is all message descriptors in "flattened ordering".
|
|
78
|
+
// It includes the implicit message declarations for map entries.
|
|
79
|
+
Messages []Message
|
|
80
|
+
// Extensions is all extension descriptors in "flattened ordering".
|
|
81
|
+
Extensions []Extension
|
|
82
|
+
// Service is all service descriptors in "flattened ordering".
|
|
83
|
+
Services []Service
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Build constructs a FileDescriptor given the parameters set in Builder.
|
|
87
|
+
// It assumes that the inputs are well-formed and panics if any inconsistencies
|
|
88
|
+
// are encountered.
|
|
89
|
+
//
|
|
90
|
+
// If NumEnums+NumMessages+NumExtensions+NumServices is zero,
|
|
91
|
+
// then Build automatically derives them from the raw descriptor.
|
|
92
|
+
func (db Builder) Build() (out Out) {
|
|
93
|
+
// Populate the counts if uninitialized.
|
|
94
|
+
if db.NumEnums+db.NumMessages+db.NumExtensions+db.NumServices == 0 {
|
|
95
|
+
db.unmarshalCounts(db.RawDescriptor, true)
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Initialize resolvers and registries if unpopulated.
|
|
99
|
+
if db.TypeResolver == nil {
|
|
100
|
+
db.TypeResolver = preg.GlobalTypes
|
|
101
|
+
}
|
|
102
|
+
if db.FileRegistry == nil {
|
|
103
|
+
db.FileRegistry = preg.GlobalFiles
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
fd := newRawFile(db)
|
|
107
|
+
out.File = fd
|
|
108
|
+
out.Enums = fd.allEnums
|
|
109
|
+
out.Messages = fd.allMessages
|
|
110
|
+
out.Extensions = fd.allExtensions
|
|
111
|
+
out.Services = fd.allServices
|
|
112
|
+
|
|
113
|
+
if err := db.FileRegistry.RegisterFile(fd); err != nil {
|
|
114
|
+
panic(err)
|
|
115
|
+
}
|
|
116
|
+
return out
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// unmarshalCounts counts the number of enum, message, extension, and service
|
|
120
|
+
// declarations in the raw message, which is either a FileDescriptorProto
|
|
121
|
+
// or a MessageDescriptorProto depending on whether isFile is set.
|
|
122
|
+
func (db *Builder) unmarshalCounts(b []byte, isFile bool) {
|
|
123
|
+
for len(b) > 0 {
|
|
124
|
+
num, typ, n := protowire.ConsumeTag(b)
|
|
125
|
+
b = b[n:]
|
|
126
|
+
switch typ {
|
|
127
|
+
case protowire.BytesType:
|
|
128
|
+
v, m := protowire.ConsumeBytes(b)
|
|
129
|
+
b = b[m:]
|
|
130
|
+
if isFile {
|
|
131
|
+
switch num {
|
|
132
|
+
case genid.FileDescriptorProto_EnumType_field_number:
|
|
133
|
+
db.NumEnums++
|
|
134
|
+
case genid.FileDescriptorProto_MessageType_field_number:
|
|
135
|
+
db.unmarshalCounts(v, false)
|
|
136
|
+
db.NumMessages++
|
|
137
|
+
case genid.FileDescriptorProto_Extension_field_number:
|
|
138
|
+
db.NumExtensions++
|
|
139
|
+
case genid.FileDescriptorProto_Service_field_number:
|
|
140
|
+
db.NumServices++
|
|
141
|
+
}
|
|
142
|
+
} else {
|
|
143
|
+
switch num {
|
|
144
|
+
case genid.DescriptorProto_EnumType_field_number:
|
|
145
|
+
db.NumEnums++
|
|
146
|
+
case genid.DescriptorProto_NestedType_field_number:
|
|
147
|
+
db.unmarshalCounts(v, false)
|
|
148
|
+
db.NumMessages++
|
|
149
|
+
case genid.DescriptorProto_Extension_field_number:
|
|
150
|
+
db.NumExtensions++
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
default:
|
|
154
|
+
m := protowire.ConsumeFieldValue(num, typ, b)
|
|
155
|
+
b = b[m:]
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|