planetscale 0.2.0 → 0.3.3
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 +4 -4
- data/.buildkite/pipeline.yml +21 -0
- data/.github/workflows/ci.yml +9 -1
- data/.github/workflows/gem-push.yml +9 -2
- data/.licenses/go/github.com/matoous/go-nanoid/v2.dep.yml +34 -0
- data/.licenses/go/github.com/planetscale/planetscale-go/planetscale.dep.yml +56 -3
- data/.licenses/go/github.com/planetscale/sql-proxy/proxy.dep.yml +205 -172
- data/.licenses/go/go.uber.org/zap/buffer.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap/internal/bufferpool.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap/internal/color.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap/internal/exit.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap/zapcore.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap.dep.yml +1 -1
- data/README.md +11 -8
- data/controller.go +24 -26
- data/go.mod +4 -3
- data/go.sum +42 -27
- data/lib/generators/planetscale/install_generator.rb +8 -6
- data/lib/planetscale/version.rb +1 -1
- data/lib/planetscale.rb +14 -15
- data/planetscale.gemspec +2 -2
- data/proxy/planetscale-darwin.h +1 -1
- data/proxy/planetscale-darwin.so +0 -0
- data/proxy/planetscale-linux.h +1 -1
- data/proxy/planetscale-linux.so +0 -0
- data/proxy.go +1 -5
- metadata +6 -342
- data/vendor/github.com/armon/circbuf/.gitignore +0 -22
- data/vendor/github.com/armon/circbuf/LICENSE +0 -20
- data/vendor/github.com/armon/circbuf/README.md +0 -28
- data/vendor/github.com/armon/circbuf/circbuf.go +0 -92
- data/vendor/github.com/armon/circbuf/go.mod +0 -1
- data/vendor/github.com/golang/protobuf/AUTHORS +0 -3
- data/vendor/github.com/golang/protobuf/CONTRIBUTORS +0 -3
- data/vendor/github.com/golang/protobuf/LICENSE +0 -28
- data/vendor/github.com/golang/protobuf/proto/buffer.go +0 -324
- data/vendor/github.com/golang/protobuf/proto/defaults.go +0 -63
- data/vendor/github.com/golang/protobuf/proto/deprecated.go +0 -113
- data/vendor/github.com/golang/protobuf/proto/discard.go +0 -58
- data/vendor/github.com/golang/protobuf/proto/extensions.go +0 -356
- data/vendor/github.com/golang/protobuf/proto/properties.go +0 -306
- data/vendor/github.com/golang/protobuf/proto/proto.go +0 -167
- data/vendor/github.com/golang/protobuf/proto/registry.go +0 -317
- data/vendor/github.com/golang/protobuf/proto/text_decode.go +0 -801
- data/vendor/github.com/golang/protobuf/proto/text_encode.go +0 -560
- data/vendor/github.com/golang/protobuf/proto/wire.go +0 -78
- data/vendor/github.com/golang/protobuf/proto/wrappers.go +0 -34
- data/vendor/github.com/gorilla/mux/AUTHORS +0 -8
- data/vendor/github.com/gorilla/mux/LICENSE +0 -27
- data/vendor/github.com/gorilla/mux/README.md +0 -805
- data/vendor/github.com/gorilla/mux/doc.go +0 -306
- data/vendor/github.com/gorilla/mux/go.mod +0 -3
- data/vendor/github.com/gorilla/mux/middleware.go +0 -74
- data/vendor/github.com/gorilla/mux/mux.go +0 -606
- data/vendor/github.com/gorilla/mux/regexp.go +0 -388
- data/vendor/github.com/gorilla/mux/route.go +0 -736
- data/vendor/github.com/gorilla/mux/test_helpers.go +0 -19
- data/vendor/github.com/hashicorp/go-cleanhttp/LICENSE +0 -363
- data/vendor/github.com/hashicorp/go-cleanhttp/README.md +0 -30
- data/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +0 -58
- data/vendor/github.com/hashicorp/go-cleanhttp/doc.go +0 -20
- data/vendor/github.com/hashicorp/go-cleanhttp/go.mod +0 -3
- data/vendor/github.com/hashicorp/go-cleanhttp/handlers.go +0 -48
- data/vendor/github.com/mitchellh/go-homedir/LICENSE +0 -21
- data/vendor/github.com/mitchellh/go-homedir/README.md +0 -14
- data/vendor/github.com/mitchellh/go-homedir/go.mod +0 -1
- data/vendor/github.com/mitchellh/go-homedir/homedir.go +0 -167
- data/vendor/github.com/pkg/errors/.gitignore +0 -24
- data/vendor/github.com/pkg/errors/.travis.yml +0 -10
- data/vendor/github.com/pkg/errors/LICENSE +0 -23
- data/vendor/github.com/pkg/errors/Makefile +0 -44
- data/vendor/github.com/pkg/errors/README.md +0 -59
- data/vendor/github.com/pkg/errors/appveyor.yml +0 -32
- data/vendor/github.com/pkg/errors/errors.go +0 -288
- data/vendor/github.com/pkg/errors/go113.go +0 -38
- data/vendor/github.com/pkg/errors/stack.go +0 -177
- data/vendor/github.com/planetscale/planetscale-go/planetscale/backups.go +0 -139
- data/vendor/github.com/planetscale/planetscale-go/planetscale/branches.go +0 -258
- data/vendor/github.com/planetscale/planetscale-go/planetscale/certs.go +0 -142
- data/vendor/github.com/planetscale/planetscale-go/planetscale/client.go +0 -305
- data/vendor/github.com/planetscale/planetscale-go/planetscale/databases.go +0 -131
- data/vendor/github.com/planetscale/planetscale-go/planetscale/deploy_requests.go +0 -368
- data/vendor/github.com/planetscale/planetscale-go/planetscale/organizations.go +0 -78
- data/vendor/github.com/planetscale/planetscale-go/planetscale/service_tokens.go +0 -163
- data/vendor/github.com/planetscale/sql-proxy/proxy/client.go +0 -467
- data/vendor/github.com/planetscale/sql-proxy/proxy/tls_cache.go +0 -73
- data/vendor/go.uber.org/atomic/.codecov.yml +0 -19
- data/vendor/go.uber.org/atomic/.gitignore +0 -12
- data/vendor/go.uber.org/atomic/.travis.yml +0 -27
- data/vendor/go.uber.org/atomic/CHANGELOG.md +0 -76
- data/vendor/go.uber.org/atomic/LICENSE.txt +0 -19
- data/vendor/go.uber.org/atomic/Makefile +0 -78
- data/vendor/go.uber.org/atomic/README.md +0 -63
- data/vendor/go.uber.org/atomic/bool.go +0 -81
- data/vendor/go.uber.org/atomic/bool_ext.go +0 -53
- data/vendor/go.uber.org/atomic/doc.go +0 -23
- data/vendor/go.uber.org/atomic/duration.go +0 -82
- data/vendor/go.uber.org/atomic/duration_ext.go +0 -40
- data/vendor/go.uber.org/atomic/error.go +0 -51
- data/vendor/go.uber.org/atomic/error_ext.go +0 -39
- data/vendor/go.uber.org/atomic/float64.go +0 -76
- data/vendor/go.uber.org/atomic/float64_ext.go +0 -47
- data/vendor/go.uber.org/atomic/gen.go +0 -26
- data/vendor/go.uber.org/atomic/go.mod +0 -8
- data/vendor/go.uber.org/atomic/go.sum +0 -9
- data/vendor/go.uber.org/atomic/int32.go +0 -102
- data/vendor/go.uber.org/atomic/int64.go +0 -102
- data/vendor/go.uber.org/atomic/nocmp.go +0 -35
- data/vendor/go.uber.org/atomic/string.go +0 -54
- data/vendor/go.uber.org/atomic/string_ext.go +0 -43
- data/vendor/go.uber.org/atomic/uint32.go +0 -102
- data/vendor/go.uber.org/atomic/uint64.go +0 -102
- data/vendor/go.uber.org/atomic/value.go +0 -31
- data/vendor/go.uber.org/multierr/.codecov.yml +0 -15
- data/vendor/go.uber.org/multierr/.gitignore +0 -4
- data/vendor/go.uber.org/multierr/.travis.yml +0 -23
- data/vendor/go.uber.org/multierr/CHANGELOG.md +0 -60
- data/vendor/go.uber.org/multierr/LICENSE.txt +0 -19
- data/vendor/go.uber.org/multierr/Makefile +0 -42
- data/vendor/go.uber.org/multierr/README.md +0 -23
- data/vendor/go.uber.org/multierr/error.go +0 -449
- data/vendor/go.uber.org/multierr/glide.yaml +0 -8
- data/vendor/go.uber.org/multierr/go.mod +0 -8
- data/vendor/go.uber.org/multierr/go.sum +0 -11
- data/vendor/go.uber.org/multierr/go113.go +0 -52
- data/vendor/go.uber.org/zap/.codecov.yml +0 -17
- data/vendor/go.uber.org/zap/.gitignore +0 -32
- data/vendor/go.uber.org/zap/.readme.tmpl +0 -109
- data/vendor/go.uber.org/zap/.travis.yml +0 -23
- data/vendor/go.uber.org/zap/CHANGELOG.md +0 -432
- data/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +0 -75
- data/vendor/go.uber.org/zap/CONTRIBUTING.md +0 -81
- data/vendor/go.uber.org/zap/FAQ.md +0 -156
- data/vendor/go.uber.org/zap/LICENSE.txt +0 -19
- data/vendor/go.uber.org/zap/Makefile +0 -63
- data/vendor/go.uber.org/zap/README.md +0 -134
- data/vendor/go.uber.org/zap/array.go +0 -320
- data/vendor/go.uber.org/zap/buffer/buffer.go +0 -123
- data/vendor/go.uber.org/zap/buffer/pool.go +0 -49
- data/vendor/go.uber.org/zap/checklicense.sh +0 -17
- data/vendor/go.uber.org/zap/config.go +0 -264
- data/vendor/go.uber.org/zap/doc.go +0 -113
- data/vendor/go.uber.org/zap/encoder.go +0 -79
- data/vendor/go.uber.org/zap/error.go +0 -80
- data/vendor/go.uber.org/zap/field.go +0 -539
- data/vendor/go.uber.org/zap/flag.go +0 -39
- data/vendor/go.uber.org/zap/glide.yaml +0 -34
- data/vendor/go.uber.org/zap/global.go +0 -168
- data/vendor/go.uber.org/zap/global_go112.go +0 -26
- data/vendor/go.uber.org/zap/global_prego112.go +0 -26
- data/vendor/go.uber.org/zap/go.mod +0 -13
- data/vendor/go.uber.org/zap/go.sum +0 -56
- data/vendor/go.uber.org/zap/http_handler.go +0 -81
- data/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +0 -31
- data/vendor/go.uber.org/zap/internal/color/color.go +0 -44
- data/vendor/go.uber.org/zap/internal/exit/exit.go +0 -64
- data/vendor/go.uber.org/zap/level.go +0 -132
- data/vendor/go.uber.org/zap/logger.go +0 -344
- data/vendor/go.uber.org/zap/options.go +0 -140
- data/vendor/go.uber.org/zap/sink.go +0 -161
- data/vendor/go.uber.org/zap/stacktrace.go +0 -85
- data/vendor/go.uber.org/zap/sugar.go +0 -304
- data/vendor/go.uber.org/zap/time.go +0 -27
- data/vendor/go.uber.org/zap/writer.go +0 -99
- data/vendor/go.uber.org/zap/zapcore/console_encoder.go +0 -161
- data/vendor/go.uber.org/zap/zapcore/core.go +0 -113
- data/vendor/go.uber.org/zap/zapcore/doc.go +0 -24
- data/vendor/go.uber.org/zap/zapcore/encoder.go +0 -443
- data/vendor/go.uber.org/zap/zapcore/entry.go +0 -264
- data/vendor/go.uber.org/zap/zapcore/error.go +0 -115
- data/vendor/go.uber.org/zap/zapcore/field.go +0 -227
- data/vendor/go.uber.org/zap/zapcore/hook.go +0 -68
- data/vendor/go.uber.org/zap/zapcore/increase_level.go +0 -66
- data/vendor/go.uber.org/zap/zapcore/json_encoder.go +0 -534
- data/vendor/go.uber.org/zap/zapcore/level.go +0 -175
- data/vendor/go.uber.org/zap/zapcore/level_strings.go +0 -46
- data/vendor/go.uber.org/zap/zapcore/marshaler.go +0 -61
- data/vendor/go.uber.org/zap/zapcore/memory_encoder.go +0 -179
- data/vendor/go.uber.org/zap/zapcore/sampler.go +0 -208
- data/vendor/go.uber.org/zap/zapcore/tee.go +0 -81
- data/vendor/go.uber.org/zap/zapcore/write_syncer.go +0 -123
- data/vendor/golang.org/x/net/AUTHORS +0 -3
- data/vendor/golang.org/x/net/CONTRIBUTORS +0 -3
- data/vendor/golang.org/x/net/LICENSE +0 -27
- data/vendor/golang.org/x/net/PATENTS +0 -22
- data/vendor/golang.org/x/net/context/context.go +0 -56
- data/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +0 -71
- data/vendor/golang.org/x/net/context/go17.go +0 -73
- data/vendor/golang.org/x/net/context/go19.go +0 -21
- data/vendor/golang.org/x/net/context/pre_go17.go +0 -301
- data/vendor/golang.org/x/net/context/pre_go19.go +0 -110
- data/vendor/golang.org/x/oauth2/.travis.yml +0 -13
- data/vendor/golang.org/x/oauth2/AUTHORS +0 -3
- data/vendor/golang.org/x/oauth2/CONTRIBUTING.md +0 -26
- data/vendor/golang.org/x/oauth2/CONTRIBUTORS +0 -3
- data/vendor/golang.org/x/oauth2/LICENSE +0 -27
- data/vendor/golang.org/x/oauth2/README.md +0 -36
- data/vendor/golang.org/x/oauth2/go.mod +0 -9
- data/vendor/golang.org/x/oauth2/go.sum +0 -361
- data/vendor/golang.org/x/oauth2/internal/client_appengine.go +0 -14
- data/vendor/golang.org/x/oauth2/internal/doc.go +0 -6
- data/vendor/golang.org/x/oauth2/internal/oauth2.go +0 -37
- data/vendor/golang.org/x/oauth2/internal/token.go +0 -294
- data/vendor/golang.org/x/oauth2/internal/transport.go +0 -33
- data/vendor/golang.org/x/oauth2/oauth2.go +0 -381
- data/vendor/golang.org/x/oauth2/token.go +0 -178
- data/vendor/golang.org/x/oauth2/transport.go +0 -89
- data/vendor/google.golang.org/appengine/LICENSE +0 -202
- data/vendor/google.golang.org/appengine/internal/api.go +0 -678
- data/vendor/google.golang.org/appengine/internal/api_classic.go +0 -169
- data/vendor/google.golang.org/appengine/internal/api_common.go +0 -123
- data/vendor/google.golang.org/appengine/internal/app_id.go +0 -28
- data/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +0 -308
- data/vendor/google.golang.org/appengine/internal/base/api_base.proto +0 -33
- data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +0 -4367
- data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +0 -551
- data/vendor/google.golang.org/appengine/internal/identity.go +0 -55
- data/vendor/google.golang.org/appengine/internal/identity_classic.go +0 -61
- data/vendor/google.golang.org/appengine/internal/identity_flex.go +0 -11
- data/vendor/google.golang.org/appengine/internal/identity_vm.go +0 -134
- data/vendor/google.golang.org/appengine/internal/internal.go +0 -110
- data/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +0 -1313
- data/vendor/google.golang.org/appengine/internal/log/log_service.proto +0 -150
- data/vendor/google.golang.org/appengine/internal/main.go +0 -16
- data/vendor/google.golang.org/appengine/internal/main_common.go +0 -7
- data/vendor/google.golang.org/appengine/internal/main_vm.go +0 -69
- data/vendor/google.golang.org/appengine/internal/metadata.go +0 -60
- data/vendor/google.golang.org/appengine/internal/net.go +0 -56
- data/vendor/google.golang.org/appengine/internal/regen.sh +0 -40
- data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +0 -361
- data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +0 -44
- data/vendor/google.golang.org/appengine/internal/transaction.go +0 -115
- data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +0 -527
- data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +0 -64
- data/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +0 -210
- data/vendor/google.golang.org/protobuf/AUTHORS +0 -3
- data/vendor/google.golang.org/protobuf/CONTRIBUTORS +0 -3
- data/vendor/google.golang.org/protobuf/LICENSE +0 -27
- data/vendor/google.golang.org/protobuf/PATENTS +0 -22
- data/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +0 -773
- data/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +0 -7
- data/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +0 -371
- data/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +0 -538
- data/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +0 -318
- data/vendor/google.golang.org/protobuf/internal/descopts/options.go +0 -29
- data/vendor/google.golang.org/protobuf/internal/detrand/rand.go +0 -69
- data/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +0 -213
- data/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +0 -241
- data/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +0 -207
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +0 -665
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +0 -190
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +0 -161
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +0 -373
- data/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +0 -29
- data/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +0 -265
- data/vendor/google.golang.org/protobuf/internal/errors/errors.go +0 -89
- data/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +0 -39
- data/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +0 -12
- data/vendor/google.golang.org/protobuf/internal/filedesc/build.go +0 -158
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +0 -631
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +0 -471
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +0 -704
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +0 -450
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +0 -356
- data/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +0 -107
- data/vendor/google.golang.org/protobuf/internal/filetype/build.go +0 -297
- data/vendor/google.golang.org/protobuf/internal/flags/flags.go +0 -24
- data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +0 -9
- data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +0 -9
- data/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +0 -34
- data/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +0 -106
- data/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +0 -829
- data/vendor/google.golang.org/protobuf/internal/genid/doc.go +0 -11
- data/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +0 -34
- data/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +0 -19
- data/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +0 -31
- data/vendor/google.golang.org/protobuf/internal/genid/goname.go +0 -25
- data/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +0 -16
- data/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +0 -31
- data/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +0 -116
- data/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +0 -34
- data/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +0 -184
- data/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +0 -13
- data/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +0 -175
- data/vendor/google.golang.org/protobuf/internal/impl/api_export.go +0 -177
- data/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +0 -141
- data/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +0 -223
- data/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +0 -830
- data/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +0 -5637
- data/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +0 -388
- data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +0 -37
- data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +0 -11
- data/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +0 -217
- data/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +0 -123
- data/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +0 -209
- data/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +0 -557
- data/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +0 -17
- data/vendor/google.golang.org/protobuf/internal/impl/convert.go +0 -496
- data/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +0 -141
- data/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +0 -121
- data/vendor/google.golang.org/protobuf/internal/impl/decode.go +0 -276
- data/vendor/google.golang.org/protobuf/internal/impl/encode.go +0 -201
- data/vendor/google.golang.org/protobuf/internal/impl/enum.go +0 -21
- data/vendor/google.golang.org/protobuf/internal/impl/extension.go +0 -156
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +0 -219
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +0 -92
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +0 -176
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +0 -81
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +0 -558
- data/vendor/google.golang.org/protobuf/internal/impl/merge.go +0 -176
- data/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +0 -209
- data/vendor/google.golang.org/protobuf/internal/impl/message.go +0 -276
- data/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +0 -465
- data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +0 -543
- data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +0 -249
- data/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +0 -178
- data/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +0 -174
- data/vendor/google.golang.org/protobuf/internal/impl/validate.go +0 -576
- data/vendor/google.golang.org/protobuf/internal/impl/weak.go +0 -74
- data/vendor/google.golang.org/protobuf/internal/order/order.go +0 -89
- data/vendor/google.golang.org/protobuf/internal/order/range.go +0 -115
- data/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +0 -29
- data/vendor/google.golang.org/protobuf/internal/set/ints.go +0 -58
- data/vendor/google.golang.org/protobuf/internal/strs/strings.go +0 -196
- data/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +0 -27
- data/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +0 -94
- data/vendor/google.golang.org/protobuf/internal/version/version.go +0 -79
- data/vendor/google.golang.org/protobuf/proto/checkinit.go +0 -71
- data/vendor/google.golang.org/protobuf/proto/decode.go +0 -278
- data/vendor/google.golang.org/protobuf/proto/decode_gen.go +0 -603
- data/vendor/google.golang.org/protobuf/proto/doc.go +0 -94
- data/vendor/google.golang.org/protobuf/proto/encode.go +0 -319
- data/vendor/google.golang.org/protobuf/proto/encode_gen.go +0 -97
- data/vendor/google.golang.org/protobuf/proto/equal.go +0 -167
- data/vendor/google.golang.org/protobuf/proto/extension.go +0 -92
- data/vendor/google.golang.org/protobuf/proto/merge.go +0 -139
- data/vendor/google.golang.org/protobuf/proto/messageset.go +0 -93
- data/vendor/google.golang.org/protobuf/proto/proto.go +0 -43
- data/vendor/google.golang.org/protobuf/proto/proto_methods.go +0 -19
- data/vendor/google.golang.org/protobuf/proto/proto_reflect.go +0 -19
- data/vendor/google.golang.org/protobuf/proto/reset.go +0 -43
- data/vendor/google.golang.org/protobuf/proto/size.go +0 -97
- data/vendor/google.golang.org/protobuf/proto/size_gen.go +0 -55
- data/vendor/google.golang.org/protobuf/proto/wrappers.go +0 -29
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +0 -276
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +0 -248
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +0 -286
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +0 -374
- data/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +0 -252
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +0 -77
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +0 -504
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +0 -128
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +0 -461
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +0 -665
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +0 -285
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +0 -59
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +0 -411
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +0 -98
- data/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +0 -869
- data/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +0 -15
- data/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +0 -167
- data/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +0 -44
- data/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +0 -56
- data/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +0 -4039
- data/vendor/modules.txt +0 -79
|
@@ -1,156 +0,0 @@
|
|
|
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 impl
|
|
6
|
-
|
|
7
|
-
import (
|
|
8
|
-
"reflect"
|
|
9
|
-
"sync"
|
|
10
|
-
"sync/atomic"
|
|
11
|
-
|
|
12
|
-
pref "google.golang.org/protobuf/reflect/protoreflect"
|
|
13
|
-
piface "google.golang.org/protobuf/runtime/protoiface"
|
|
14
|
-
)
|
|
15
|
-
|
|
16
|
-
// ExtensionInfo implements ExtensionType.
|
|
17
|
-
//
|
|
18
|
-
// This type contains a number of exported fields for legacy compatibility.
|
|
19
|
-
// The only non-deprecated use of this type is through the methods of the
|
|
20
|
-
// ExtensionType interface.
|
|
21
|
-
type ExtensionInfo struct {
|
|
22
|
-
// An ExtensionInfo may exist in several stages of initialization.
|
|
23
|
-
//
|
|
24
|
-
// extensionInfoUninitialized: Some or all of the legacy exported
|
|
25
|
-
// fields may be set, but none of the unexported fields have been
|
|
26
|
-
// initialized. This is the starting state for an ExtensionInfo
|
|
27
|
-
// in legacy generated code.
|
|
28
|
-
//
|
|
29
|
-
// extensionInfoDescInit: The desc field is set, but other unexported fields
|
|
30
|
-
// may not be initialized. Legacy exported fields may or may not be set.
|
|
31
|
-
// This is the starting state for an ExtensionInfo in newly generated code.
|
|
32
|
-
//
|
|
33
|
-
// extensionInfoFullInit: The ExtensionInfo is fully initialized.
|
|
34
|
-
// This state is only entered after lazy initialization is complete.
|
|
35
|
-
init uint32
|
|
36
|
-
mu sync.Mutex
|
|
37
|
-
|
|
38
|
-
goType reflect.Type
|
|
39
|
-
desc extensionTypeDescriptor
|
|
40
|
-
conv Converter
|
|
41
|
-
info *extensionFieldInfo // for fast-path method implementations
|
|
42
|
-
|
|
43
|
-
// ExtendedType is a typed nil-pointer to the parent message type that
|
|
44
|
-
// is being extended. It is possible for this to be unpopulated in v2
|
|
45
|
-
// since the message may no longer implement the MessageV1 interface.
|
|
46
|
-
//
|
|
47
|
-
// Deprecated: Use the ExtendedType method instead.
|
|
48
|
-
ExtendedType piface.MessageV1
|
|
49
|
-
|
|
50
|
-
// ExtensionType is the zero value of the extension type.
|
|
51
|
-
//
|
|
52
|
-
// For historical reasons, reflect.TypeOf(ExtensionType) and the
|
|
53
|
-
// type returned by InterfaceOf may not be identical.
|
|
54
|
-
//
|
|
55
|
-
// Deprecated: Use InterfaceOf(xt.Zero()) instead.
|
|
56
|
-
ExtensionType interface{}
|
|
57
|
-
|
|
58
|
-
// Field is the field number of the extension.
|
|
59
|
-
//
|
|
60
|
-
// Deprecated: Use the Descriptor().Number method instead.
|
|
61
|
-
Field int32
|
|
62
|
-
|
|
63
|
-
// Name is the fully qualified name of extension.
|
|
64
|
-
//
|
|
65
|
-
// Deprecated: Use the Descriptor().FullName method instead.
|
|
66
|
-
Name string
|
|
67
|
-
|
|
68
|
-
// Tag is the protobuf struct tag used in the v1 API.
|
|
69
|
-
//
|
|
70
|
-
// Deprecated: Do not use.
|
|
71
|
-
Tag string
|
|
72
|
-
|
|
73
|
-
// Filename is the proto filename in which the extension is defined.
|
|
74
|
-
//
|
|
75
|
-
// Deprecated: Use Descriptor().ParentFile().Path() instead.
|
|
76
|
-
Filename string
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// Stages of initialization: See the ExtensionInfo.init field.
|
|
80
|
-
const (
|
|
81
|
-
extensionInfoUninitialized = 0
|
|
82
|
-
extensionInfoDescInit = 1
|
|
83
|
-
extensionInfoFullInit = 2
|
|
84
|
-
)
|
|
85
|
-
|
|
86
|
-
func InitExtensionInfo(xi *ExtensionInfo, xd pref.ExtensionDescriptor, goType reflect.Type) {
|
|
87
|
-
xi.goType = goType
|
|
88
|
-
xi.desc = extensionTypeDescriptor{xd, xi}
|
|
89
|
-
xi.init = extensionInfoDescInit
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
func (xi *ExtensionInfo) New() pref.Value {
|
|
93
|
-
return xi.lazyInit().New()
|
|
94
|
-
}
|
|
95
|
-
func (xi *ExtensionInfo) Zero() pref.Value {
|
|
96
|
-
return xi.lazyInit().Zero()
|
|
97
|
-
}
|
|
98
|
-
func (xi *ExtensionInfo) ValueOf(v interface{}) pref.Value {
|
|
99
|
-
return xi.lazyInit().PBValueOf(reflect.ValueOf(v))
|
|
100
|
-
}
|
|
101
|
-
func (xi *ExtensionInfo) InterfaceOf(v pref.Value) interface{} {
|
|
102
|
-
return xi.lazyInit().GoValueOf(v).Interface()
|
|
103
|
-
}
|
|
104
|
-
func (xi *ExtensionInfo) IsValidValue(v pref.Value) bool {
|
|
105
|
-
return xi.lazyInit().IsValidPB(v)
|
|
106
|
-
}
|
|
107
|
-
func (xi *ExtensionInfo) IsValidInterface(v interface{}) bool {
|
|
108
|
-
return xi.lazyInit().IsValidGo(reflect.ValueOf(v))
|
|
109
|
-
}
|
|
110
|
-
func (xi *ExtensionInfo) TypeDescriptor() pref.ExtensionTypeDescriptor {
|
|
111
|
-
if atomic.LoadUint32(&xi.init) < extensionInfoDescInit {
|
|
112
|
-
xi.lazyInitSlow()
|
|
113
|
-
}
|
|
114
|
-
return &xi.desc
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
func (xi *ExtensionInfo) lazyInit() Converter {
|
|
118
|
-
if atomic.LoadUint32(&xi.init) < extensionInfoFullInit {
|
|
119
|
-
xi.lazyInitSlow()
|
|
120
|
-
}
|
|
121
|
-
return xi.conv
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
func (xi *ExtensionInfo) lazyInitSlow() {
|
|
125
|
-
xi.mu.Lock()
|
|
126
|
-
defer xi.mu.Unlock()
|
|
127
|
-
|
|
128
|
-
if xi.init == extensionInfoFullInit {
|
|
129
|
-
return
|
|
130
|
-
}
|
|
131
|
-
defer atomic.StoreUint32(&xi.init, extensionInfoFullInit)
|
|
132
|
-
|
|
133
|
-
if xi.desc.ExtensionDescriptor == nil {
|
|
134
|
-
xi.initFromLegacy()
|
|
135
|
-
}
|
|
136
|
-
if !xi.desc.ExtensionDescriptor.IsPlaceholder() {
|
|
137
|
-
if xi.ExtensionType == nil {
|
|
138
|
-
xi.initToLegacy()
|
|
139
|
-
}
|
|
140
|
-
xi.conv = NewConverter(xi.goType, xi.desc.ExtensionDescriptor)
|
|
141
|
-
xi.info = makeExtensionFieldInfo(xi.desc.ExtensionDescriptor)
|
|
142
|
-
xi.info.validation = newValidationInfo(xi.desc.ExtensionDescriptor, xi.goType)
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
type extensionTypeDescriptor struct {
|
|
147
|
-
pref.ExtensionDescriptor
|
|
148
|
-
xi *ExtensionInfo
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
func (xtd *extensionTypeDescriptor) Type() pref.ExtensionType {
|
|
152
|
-
return xtd.xi
|
|
153
|
-
}
|
|
154
|
-
func (xtd *extensionTypeDescriptor) Descriptor() pref.ExtensionDescriptor {
|
|
155
|
-
return xtd.ExtensionDescriptor
|
|
156
|
-
}
|
|
@@ -1,219 +0,0 @@
|
|
|
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 impl
|
|
6
|
-
|
|
7
|
-
import (
|
|
8
|
-
"fmt"
|
|
9
|
-
"reflect"
|
|
10
|
-
"strings"
|
|
11
|
-
"sync"
|
|
12
|
-
|
|
13
|
-
"google.golang.org/protobuf/internal/filedesc"
|
|
14
|
-
"google.golang.org/protobuf/internal/strs"
|
|
15
|
-
"google.golang.org/protobuf/reflect/protoreflect"
|
|
16
|
-
pref "google.golang.org/protobuf/reflect/protoreflect"
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
// legacyEnumName returns the name of enums used in legacy code.
|
|
20
|
-
// It is neither the protobuf full name nor the qualified Go name,
|
|
21
|
-
// but rather an odd hybrid of both.
|
|
22
|
-
func legacyEnumName(ed pref.EnumDescriptor) string {
|
|
23
|
-
var protoPkg string
|
|
24
|
-
enumName := string(ed.FullName())
|
|
25
|
-
if fd := ed.ParentFile(); fd != nil {
|
|
26
|
-
protoPkg = string(fd.Package())
|
|
27
|
-
enumName = strings.TrimPrefix(enumName, protoPkg+".")
|
|
28
|
-
}
|
|
29
|
-
if protoPkg == "" {
|
|
30
|
-
return strs.GoCamelCase(enumName)
|
|
31
|
-
}
|
|
32
|
-
return protoPkg + "." + strs.GoCamelCase(enumName)
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// legacyWrapEnum wraps v as a protoreflect.Enum,
|
|
36
|
-
// where v must be a int32 kind and not implement the v2 API already.
|
|
37
|
-
func legacyWrapEnum(v reflect.Value) pref.Enum {
|
|
38
|
-
et := legacyLoadEnumType(v.Type())
|
|
39
|
-
return et.New(pref.EnumNumber(v.Int()))
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
var legacyEnumTypeCache sync.Map // map[reflect.Type]protoreflect.EnumType
|
|
43
|
-
|
|
44
|
-
// legacyLoadEnumType dynamically loads a protoreflect.EnumType for t,
|
|
45
|
-
// where t must be an int32 kind and not implement the v2 API already.
|
|
46
|
-
func legacyLoadEnumType(t reflect.Type) pref.EnumType {
|
|
47
|
-
// Fast-path: check if a EnumType is cached for this concrete type.
|
|
48
|
-
if et, ok := legacyEnumTypeCache.Load(t); ok {
|
|
49
|
-
return et.(pref.EnumType)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// Slow-path: derive enum descriptor and initialize EnumType.
|
|
53
|
-
var et pref.EnumType
|
|
54
|
-
ed := LegacyLoadEnumDesc(t)
|
|
55
|
-
et = &legacyEnumType{
|
|
56
|
-
desc: ed,
|
|
57
|
-
goType: t,
|
|
58
|
-
}
|
|
59
|
-
if et, ok := legacyEnumTypeCache.LoadOrStore(t, et); ok {
|
|
60
|
-
return et.(pref.EnumType)
|
|
61
|
-
}
|
|
62
|
-
return et
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
type legacyEnumType struct {
|
|
66
|
-
desc pref.EnumDescriptor
|
|
67
|
-
goType reflect.Type
|
|
68
|
-
m sync.Map // map[protoreflect.EnumNumber]proto.Enum
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
func (t *legacyEnumType) New(n pref.EnumNumber) pref.Enum {
|
|
72
|
-
if e, ok := t.m.Load(n); ok {
|
|
73
|
-
return e.(pref.Enum)
|
|
74
|
-
}
|
|
75
|
-
e := &legacyEnumWrapper{num: n, pbTyp: t, goTyp: t.goType}
|
|
76
|
-
t.m.Store(n, e)
|
|
77
|
-
return e
|
|
78
|
-
}
|
|
79
|
-
func (t *legacyEnumType) Descriptor() pref.EnumDescriptor {
|
|
80
|
-
return t.desc
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
type legacyEnumWrapper struct {
|
|
84
|
-
num pref.EnumNumber
|
|
85
|
-
pbTyp pref.EnumType
|
|
86
|
-
goTyp reflect.Type
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
func (e *legacyEnumWrapper) Descriptor() pref.EnumDescriptor {
|
|
90
|
-
return e.pbTyp.Descriptor()
|
|
91
|
-
}
|
|
92
|
-
func (e *legacyEnumWrapper) Type() pref.EnumType {
|
|
93
|
-
return e.pbTyp
|
|
94
|
-
}
|
|
95
|
-
func (e *legacyEnumWrapper) Number() pref.EnumNumber {
|
|
96
|
-
return e.num
|
|
97
|
-
}
|
|
98
|
-
func (e *legacyEnumWrapper) ProtoReflect() pref.Enum {
|
|
99
|
-
return e
|
|
100
|
-
}
|
|
101
|
-
func (e *legacyEnumWrapper) protoUnwrap() interface{} {
|
|
102
|
-
v := reflect.New(e.goTyp).Elem()
|
|
103
|
-
v.SetInt(int64(e.num))
|
|
104
|
-
return v.Interface()
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
var (
|
|
108
|
-
_ pref.Enum = (*legacyEnumWrapper)(nil)
|
|
109
|
-
_ unwrapper = (*legacyEnumWrapper)(nil)
|
|
110
|
-
)
|
|
111
|
-
|
|
112
|
-
var legacyEnumDescCache sync.Map // map[reflect.Type]protoreflect.EnumDescriptor
|
|
113
|
-
|
|
114
|
-
// LegacyLoadEnumDesc returns an EnumDescriptor derived from the Go type,
|
|
115
|
-
// which must be an int32 kind and not implement the v2 API already.
|
|
116
|
-
//
|
|
117
|
-
// This is exported for testing purposes.
|
|
118
|
-
func LegacyLoadEnumDesc(t reflect.Type) pref.EnumDescriptor {
|
|
119
|
-
// Fast-path: check if an EnumDescriptor is cached for this concrete type.
|
|
120
|
-
if ed, ok := legacyEnumDescCache.Load(t); ok {
|
|
121
|
-
return ed.(pref.EnumDescriptor)
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
// Slow-path: initialize EnumDescriptor from the raw descriptor.
|
|
125
|
-
ev := reflect.Zero(t).Interface()
|
|
126
|
-
if _, ok := ev.(pref.Enum); ok {
|
|
127
|
-
panic(fmt.Sprintf("%v already implements proto.Enum", t))
|
|
128
|
-
}
|
|
129
|
-
edV1, ok := ev.(enumV1)
|
|
130
|
-
if !ok {
|
|
131
|
-
return aberrantLoadEnumDesc(t)
|
|
132
|
-
}
|
|
133
|
-
b, idxs := edV1.EnumDescriptor()
|
|
134
|
-
|
|
135
|
-
var ed pref.EnumDescriptor
|
|
136
|
-
if len(idxs) == 1 {
|
|
137
|
-
ed = legacyLoadFileDesc(b).Enums().Get(idxs[0])
|
|
138
|
-
} else {
|
|
139
|
-
md := legacyLoadFileDesc(b).Messages().Get(idxs[0])
|
|
140
|
-
for _, i := range idxs[1 : len(idxs)-1] {
|
|
141
|
-
md = md.Messages().Get(i)
|
|
142
|
-
}
|
|
143
|
-
ed = md.Enums().Get(idxs[len(idxs)-1])
|
|
144
|
-
}
|
|
145
|
-
if ed, ok := legacyEnumDescCache.LoadOrStore(t, ed); ok {
|
|
146
|
-
return ed.(protoreflect.EnumDescriptor)
|
|
147
|
-
}
|
|
148
|
-
return ed
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
var aberrantEnumDescCache sync.Map // map[reflect.Type]protoreflect.EnumDescriptor
|
|
152
|
-
|
|
153
|
-
// aberrantLoadEnumDesc returns an EnumDescriptor derived from the Go type,
|
|
154
|
-
// which must not implement protoreflect.Enum or enumV1.
|
|
155
|
-
//
|
|
156
|
-
// If the type does not implement enumV1, then there is no reliable
|
|
157
|
-
// way to derive the original protobuf type information.
|
|
158
|
-
// We are unable to use the global enum registry since it is
|
|
159
|
-
// unfortunately keyed by the protobuf full name, which we also do not know.
|
|
160
|
-
// Thus, this produces some bogus enum descriptor based on the Go type name.
|
|
161
|
-
func aberrantLoadEnumDesc(t reflect.Type) pref.EnumDescriptor {
|
|
162
|
-
// Fast-path: check if an EnumDescriptor is cached for this concrete type.
|
|
163
|
-
if ed, ok := aberrantEnumDescCache.Load(t); ok {
|
|
164
|
-
return ed.(pref.EnumDescriptor)
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
// Slow-path: construct a bogus, but unique EnumDescriptor.
|
|
168
|
-
ed := &filedesc.Enum{L2: new(filedesc.EnumL2)}
|
|
169
|
-
ed.L0.FullName = AberrantDeriveFullName(t) // e.g., github_com.user.repo.MyEnum
|
|
170
|
-
ed.L0.ParentFile = filedesc.SurrogateProto3
|
|
171
|
-
ed.L2.Values.List = append(ed.L2.Values.List, filedesc.EnumValue{})
|
|
172
|
-
|
|
173
|
-
// TODO: Use the presence of a UnmarshalJSON method to determine proto2?
|
|
174
|
-
|
|
175
|
-
vd := &ed.L2.Values.List[0]
|
|
176
|
-
vd.L0.FullName = ed.L0.FullName + "_UNKNOWN" // e.g., github_com.user.repo.MyEnum_UNKNOWN
|
|
177
|
-
vd.L0.ParentFile = ed.L0.ParentFile
|
|
178
|
-
vd.L0.Parent = ed
|
|
179
|
-
|
|
180
|
-
// TODO: We could use the String method to obtain some enum value names by
|
|
181
|
-
// starting at 0 and print the enum until it produces invalid identifiers.
|
|
182
|
-
// An exhaustive query is clearly impractical, but can be best-effort.
|
|
183
|
-
|
|
184
|
-
if ed, ok := aberrantEnumDescCache.LoadOrStore(t, ed); ok {
|
|
185
|
-
return ed.(pref.EnumDescriptor)
|
|
186
|
-
}
|
|
187
|
-
return ed
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
// AberrantDeriveFullName derives a fully qualified protobuf name for the given Go type
|
|
191
|
-
// The provided name is not guaranteed to be stable nor universally unique.
|
|
192
|
-
// It should be sufficiently unique within a program.
|
|
193
|
-
//
|
|
194
|
-
// This is exported for testing purposes.
|
|
195
|
-
func AberrantDeriveFullName(t reflect.Type) pref.FullName {
|
|
196
|
-
sanitize := func(r rune) rune {
|
|
197
|
-
switch {
|
|
198
|
-
case r == '/':
|
|
199
|
-
return '.'
|
|
200
|
-
case 'a' <= r && r <= 'z', 'A' <= r && r <= 'Z', '0' <= r && r <= '9':
|
|
201
|
-
return r
|
|
202
|
-
default:
|
|
203
|
-
return '_'
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
prefix := strings.Map(sanitize, t.PkgPath())
|
|
207
|
-
suffix := strings.Map(sanitize, t.Name())
|
|
208
|
-
if suffix == "" {
|
|
209
|
-
suffix = fmt.Sprintf("UnknownX%X", reflect.ValueOf(t).Pointer())
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
ss := append(strings.Split(prefix, "."), suffix)
|
|
213
|
-
for i, s := range ss {
|
|
214
|
-
if s == "" || ('0' <= s[0] && s[0] <= '9') {
|
|
215
|
-
ss[i] = "x" + s
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
return pref.FullName(strings.Join(ss, "."))
|
|
219
|
-
}
|
|
@@ -1,92 +0,0 @@
|
|
|
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 impl
|
|
6
|
-
|
|
7
|
-
import (
|
|
8
|
-
"encoding/binary"
|
|
9
|
-
"encoding/json"
|
|
10
|
-
"hash/crc32"
|
|
11
|
-
"math"
|
|
12
|
-
"reflect"
|
|
13
|
-
|
|
14
|
-
"google.golang.org/protobuf/internal/errors"
|
|
15
|
-
pref "google.golang.org/protobuf/reflect/protoreflect"
|
|
16
|
-
piface "google.golang.org/protobuf/runtime/protoiface"
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
// These functions exist to support exported APIs in generated protobufs.
|
|
20
|
-
// While these are deprecated, they cannot be removed for compatibility reasons.
|
|
21
|
-
|
|
22
|
-
// LegacyEnumName returns the name of enums used in legacy code.
|
|
23
|
-
func (Export) LegacyEnumName(ed pref.EnumDescriptor) string {
|
|
24
|
-
return legacyEnumName(ed)
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// LegacyMessageTypeOf returns the protoreflect.MessageType for m,
|
|
28
|
-
// with name used as the message name if necessary.
|
|
29
|
-
func (Export) LegacyMessageTypeOf(m piface.MessageV1, name pref.FullName) pref.MessageType {
|
|
30
|
-
if mv := (Export{}).protoMessageV2Of(m); mv != nil {
|
|
31
|
-
return mv.ProtoReflect().Type()
|
|
32
|
-
}
|
|
33
|
-
return legacyLoadMessageType(reflect.TypeOf(m), name)
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// UnmarshalJSONEnum unmarshals an enum from a JSON-encoded input.
|
|
37
|
-
// The input can either be a string representing the enum value by name,
|
|
38
|
-
// or a number representing the enum number itself.
|
|
39
|
-
func (Export) UnmarshalJSONEnum(ed pref.EnumDescriptor, b []byte) (pref.EnumNumber, error) {
|
|
40
|
-
if b[0] == '"' {
|
|
41
|
-
var name pref.Name
|
|
42
|
-
if err := json.Unmarshal(b, &name); err != nil {
|
|
43
|
-
return 0, errors.New("invalid input for enum %v: %s", ed.FullName(), b)
|
|
44
|
-
}
|
|
45
|
-
ev := ed.Values().ByName(name)
|
|
46
|
-
if ev == nil {
|
|
47
|
-
return 0, errors.New("invalid value for enum %v: %s", ed.FullName(), name)
|
|
48
|
-
}
|
|
49
|
-
return ev.Number(), nil
|
|
50
|
-
} else {
|
|
51
|
-
var num pref.EnumNumber
|
|
52
|
-
if err := json.Unmarshal(b, &num); err != nil {
|
|
53
|
-
return 0, errors.New("invalid input for enum %v: %s", ed.FullName(), b)
|
|
54
|
-
}
|
|
55
|
-
return num, nil
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// CompressGZIP compresses the input as a GZIP-encoded file.
|
|
60
|
-
// The current implementation does no compression.
|
|
61
|
-
func (Export) CompressGZIP(in []byte) (out []byte) {
|
|
62
|
-
// RFC 1952, section 2.3.1.
|
|
63
|
-
var gzipHeader = [10]byte{0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff}
|
|
64
|
-
|
|
65
|
-
// RFC 1951, section 3.2.4.
|
|
66
|
-
var blockHeader [5]byte
|
|
67
|
-
const maxBlockSize = math.MaxUint16
|
|
68
|
-
numBlocks := 1 + len(in)/maxBlockSize
|
|
69
|
-
|
|
70
|
-
// RFC 1952, section 2.3.1.
|
|
71
|
-
var gzipFooter [8]byte
|
|
72
|
-
binary.LittleEndian.PutUint32(gzipFooter[0:4], crc32.ChecksumIEEE(in))
|
|
73
|
-
binary.LittleEndian.PutUint32(gzipFooter[4:8], uint32(len(in)))
|
|
74
|
-
|
|
75
|
-
// Encode the input without compression using raw DEFLATE blocks.
|
|
76
|
-
out = make([]byte, 0, len(gzipHeader)+len(blockHeader)*numBlocks+len(in)+len(gzipFooter))
|
|
77
|
-
out = append(out, gzipHeader[:]...)
|
|
78
|
-
for blockHeader[0] == 0 {
|
|
79
|
-
blockSize := maxBlockSize
|
|
80
|
-
if blockSize > len(in) {
|
|
81
|
-
blockHeader[0] = 0x01 // final bit per RFC 1951, section 3.2.3.
|
|
82
|
-
blockSize = len(in)
|
|
83
|
-
}
|
|
84
|
-
binary.LittleEndian.PutUint16(blockHeader[1:3], uint16(blockSize)^0x0000)
|
|
85
|
-
binary.LittleEndian.PutUint16(blockHeader[3:5], uint16(blockSize)^0xffff)
|
|
86
|
-
out = append(out, blockHeader[:]...)
|
|
87
|
-
out = append(out, in[:blockSize]...)
|
|
88
|
-
in = in[blockSize:]
|
|
89
|
-
}
|
|
90
|
-
out = append(out, gzipFooter[:]...)
|
|
91
|
-
return out
|
|
92
|
-
}
|
|
@@ -1,176 +0,0 @@
|
|
|
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 impl
|
|
6
|
-
|
|
7
|
-
import (
|
|
8
|
-
"reflect"
|
|
9
|
-
|
|
10
|
-
"google.golang.org/protobuf/internal/descopts"
|
|
11
|
-
"google.golang.org/protobuf/internal/encoding/messageset"
|
|
12
|
-
ptag "google.golang.org/protobuf/internal/encoding/tag"
|
|
13
|
-
"google.golang.org/protobuf/internal/filedesc"
|
|
14
|
-
"google.golang.org/protobuf/internal/pragma"
|
|
15
|
-
pref "google.golang.org/protobuf/reflect/protoreflect"
|
|
16
|
-
preg "google.golang.org/protobuf/reflect/protoregistry"
|
|
17
|
-
piface "google.golang.org/protobuf/runtime/protoiface"
|
|
18
|
-
)
|
|
19
|
-
|
|
20
|
-
func (xi *ExtensionInfo) initToLegacy() {
|
|
21
|
-
xd := xi.desc
|
|
22
|
-
var parent piface.MessageV1
|
|
23
|
-
messageName := xd.ContainingMessage().FullName()
|
|
24
|
-
if mt, _ := preg.GlobalTypes.FindMessageByName(messageName); mt != nil {
|
|
25
|
-
// Create a new parent message and unwrap it if possible.
|
|
26
|
-
mv := mt.New().Interface()
|
|
27
|
-
t := reflect.TypeOf(mv)
|
|
28
|
-
if mv, ok := mv.(unwrapper); ok {
|
|
29
|
-
t = reflect.TypeOf(mv.protoUnwrap())
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// Check whether the message implements the legacy v1 Message interface.
|
|
33
|
-
mz := reflect.Zero(t).Interface()
|
|
34
|
-
if mz, ok := mz.(piface.MessageV1); ok {
|
|
35
|
-
parent = mz
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// Determine the v1 extension type, which is unfortunately not the same as
|
|
40
|
-
// the v2 ExtensionType.GoType.
|
|
41
|
-
extType := xi.goType
|
|
42
|
-
switch extType.Kind() {
|
|
43
|
-
case reflect.Bool, reflect.Int32, reflect.Int64, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64, reflect.String:
|
|
44
|
-
extType = reflect.PtrTo(extType) // T -> *T for singular scalar fields
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// Reconstruct the legacy enum full name.
|
|
48
|
-
var enumName string
|
|
49
|
-
if xd.Kind() == pref.EnumKind {
|
|
50
|
-
enumName = legacyEnumName(xd.Enum())
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// Derive the proto file that the extension was declared within.
|
|
54
|
-
var filename string
|
|
55
|
-
if fd := xd.ParentFile(); fd != nil {
|
|
56
|
-
filename = fd.Path()
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// For MessageSet extensions, the name used is the parent message.
|
|
60
|
-
name := xd.FullName()
|
|
61
|
-
if messageset.IsMessageSetExtension(xd) {
|
|
62
|
-
name = name.Parent()
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
xi.ExtendedType = parent
|
|
66
|
-
xi.ExtensionType = reflect.Zero(extType).Interface()
|
|
67
|
-
xi.Field = int32(xd.Number())
|
|
68
|
-
xi.Name = string(name)
|
|
69
|
-
xi.Tag = ptag.Marshal(xd, enumName)
|
|
70
|
-
xi.Filename = filename
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// initFromLegacy initializes an ExtensionInfo from
|
|
74
|
-
// the contents of the deprecated exported fields of the type.
|
|
75
|
-
func (xi *ExtensionInfo) initFromLegacy() {
|
|
76
|
-
// The v1 API returns "type incomplete" descriptors where only the
|
|
77
|
-
// field number is specified. In such a case, use a placeholder.
|
|
78
|
-
if xi.ExtendedType == nil || xi.ExtensionType == nil {
|
|
79
|
-
xd := placeholderExtension{
|
|
80
|
-
name: pref.FullName(xi.Name),
|
|
81
|
-
number: pref.FieldNumber(xi.Field),
|
|
82
|
-
}
|
|
83
|
-
xi.desc = extensionTypeDescriptor{xd, xi}
|
|
84
|
-
return
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// Resolve enum or message dependencies.
|
|
88
|
-
var ed pref.EnumDescriptor
|
|
89
|
-
var md pref.MessageDescriptor
|
|
90
|
-
t := reflect.TypeOf(xi.ExtensionType)
|
|
91
|
-
isOptional := t.Kind() == reflect.Ptr && t.Elem().Kind() != reflect.Struct
|
|
92
|
-
isRepeated := t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8
|
|
93
|
-
if isOptional || isRepeated {
|
|
94
|
-
t = t.Elem()
|
|
95
|
-
}
|
|
96
|
-
switch v := reflect.Zero(t).Interface().(type) {
|
|
97
|
-
case pref.Enum:
|
|
98
|
-
ed = v.Descriptor()
|
|
99
|
-
case enumV1:
|
|
100
|
-
ed = LegacyLoadEnumDesc(t)
|
|
101
|
-
case pref.ProtoMessage:
|
|
102
|
-
md = v.ProtoReflect().Descriptor()
|
|
103
|
-
case messageV1:
|
|
104
|
-
md = LegacyLoadMessageDesc(t)
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
// Derive basic field information from the struct tag.
|
|
108
|
-
var evs pref.EnumValueDescriptors
|
|
109
|
-
if ed != nil {
|
|
110
|
-
evs = ed.Values()
|
|
111
|
-
}
|
|
112
|
-
fd := ptag.Unmarshal(xi.Tag, t, evs).(*filedesc.Field)
|
|
113
|
-
|
|
114
|
-
// Construct a v2 ExtensionType.
|
|
115
|
-
xd := &filedesc.Extension{L2: new(filedesc.ExtensionL2)}
|
|
116
|
-
xd.L0.ParentFile = filedesc.SurrogateProto2
|
|
117
|
-
xd.L0.FullName = pref.FullName(xi.Name)
|
|
118
|
-
xd.L1.Number = pref.FieldNumber(xi.Field)
|
|
119
|
-
xd.L1.Cardinality = fd.L1.Cardinality
|
|
120
|
-
xd.L1.Kind = fd.L1.Kind
|
|
121
|
-
xd.L2.IsPacked = fd.L1.IsPacked
|
|
122
|
-
xd.L2.Default = fd.L1.Default
|
|
123
|
-
xd.L1.Extendee = Export{}.MessageDescriptorOf(xi.ExtendedType)
|
|
124
|
-
xd.L2.Enum = ed
|
|
125
|
-
xd.L2.Message = md
|
|
126
|
-
|
|
127
|
-
// Derive real extension field name for MessageSets.
|
|
128
|
-
if messageset.IsMessageSet(xd.L1.Extendee) && md.FullName() == xd.L0.FullName {
|
|
129
|
-
xd.L0.FullName = xd.L0.FullName.Append(messageset.ExtensionName)
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
tt := reflect.TypeOf(xi.ExtensionType)
|
|
133
|
-
if isOptional {
|
|
134
|
-
tt = tt.Elem()
|
|
135
|
-
}
|
|
136
|
-
xi.goType = tt
|
|
137
|
-
xi.desc = extensionTypeDescriptor{xd, xi}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
type placeholderExtension struct {
|
|
141
|
-
name pref.FullName
|
|
142
|
-
number pref.FieldNumber
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
func (x placeholderExtension) ParentFile() pref.FileDescriptor { return nil }
|
|
146
|
-
func (x placeholderExtension) Parent() pref.Descriptor { return nil }
|
|
147
|
-
func (x placeholderExtension) Index() int { return 0 }
|
|
148
|
-
func (x placeholderExtension) Syntax() pref.Syntax { return 0 }
|
|
149
|
-
func (x placeholderExtension) Name() pref.Name { return x.name.Name() }
|
|
150
|
-
func (x placeholderExtension) FullName() pref.FullName { return x.name }
|
|
151
|
-
func (x placeholderExtension) IsPlaceholder() bool { return true }
|
|
152
|
-
func (x placeholderExtension) Options() pref.ProtoMessage { return descopts.Field }
|
|
153
|
-
func (x placeholderExtension) Number() pref.FieldNumber { return x.number }
|
|
154
|
-
func (x placeholderExtension) Cardinality() pref.Cardinality { return 0 }
|
|
155
|
-
func (x placeholderExtension) Kind() pref.Kind { return 0 }
|
|
156
|
-
func (x placeholderExtension) HasJSONName() bool { return false }
|
|
157
|
-
func (x placeholderExtension) JSONName() string { return "[" + string(x.name) + "]" }
|
|
158
|
-
func (x placeholderExtension) TextName() string { return "[" + string(x.name) + "]" }
|
|
159
|
-
func (x placeholderExtension) HasPresence() bool { return false }
|
|
160
|
-
func (x placeholderExtension) HasOptionalKeyword() bool { return false }
|
|
161
|
-
func (x placeholderExtension) IsExtension() bool { return true }
|
|
162
|
-
func (x placeholderExtension) IsWeak() bool { return false }
|
|
163
|
-
func (x placeholderExtension) IsPacked() bool { return false }
|
|
164
|
-
func (x placeholderExtension) IsList() bool { return false }
|
|
165
|
-
func (x placeholderExtension) IsMap() bool { return false }
|
|
166
|
-
func (x placeholderExtension) MapKey() pref.FieldDescriptor { return nil }
|
|
167
|
-
func (x placeholderExtension) MapValue() pref.FieldDescriptor { return nil }
|
|
168
|
-
func (x placeholderExtension) HasDefault() bool { return false }
|
|
169
|
-
func (x placeholderExtension) Default() pref.Value { return pref.Value{} }
|
|
170
|
-
func (x placeholderExtension) DefaultEnumValue() pref.EnumValueDescriptor { return nil }
|
|
171
|
-
func (x placeholderExtension) ContainingOneof() pref.OneofDescriptor { return nil }
|
|
172
|
-
func (x placeholderExtension) ContainingMessage() pref.MessageDescriptor { return nil }
|
|
173
|
-
func (x placeholderExtension) Enum() pref.EnumDescriptor { return nil }
|
|
174
|
-
func (x placeholderExtension) Message() pref.MessageDescriptor { return nil }
|
|
175
|
-
func (x placeholderExtension) ProtoType(pref.FieldDescriptor) { return }
|
|
176
|
-
func (x placeholderExtension) ProtoInternal(pragma.DoNotImplement) { return }
|