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.
Files changed (365) hide show
  1. checksums.yaml +4 -4
  2. data/.buildkite/pipeline.yml +21 -0
  3. data/.github/workflows/ci.yml +9 -1
  4. data/.github/workflows/gem-push.yml +9 -2
  5. data/.licenses/go/github.com/matoous/go-nanoid/v2.dep.yml +34 -0
  6. data/.licenses/go/github.com/planetscale/planetscale-go/planetscale.dep.yml +56 -3
  7. data/.licenses/go/github.com/planetscale/sql-proxy/proxy.dep.yml +205 -172
  8. data/.licenses/go/go.uber.org/zap/buffer.dep.yml +1 -1
  9. data/.licenses/go/go.uber.org/zap/internal/bufferpool.dep.yml +1 -1
  10. data/.licenses/go/go.uber.org/zap/internal/color.dep.yml +1 -1
  11. data/.licenses/go/go.uber.org/zap/internal/exit.dep.yml +1 -1
  12. data/.licenses/go/go.uber.org/zap/zapcore.dep.yml +1 -1
  13. data/.licenses/go/go.uber.org/zap.dep.yml +1 -1
  14. data/README.md +11 -8
  15. data/controller.go +24 -26
  16. data/go.mod +4 -3
  17. data/go.sum +42 -27
  18. data/lib/generators/planetscale/install_generator.rb +8 -6
  19. data/lib/planetscale/version.rb +1 -1
  20. data/lib/planetscale.rb +14 -15
  21. data/planetscale.gemspec +2 -2
  22. data/proxy/planetscale-darwin.h +1 -1
  23. data/proxy/planetscale-darwin.so +0 -0
  24. data/proxy/planetscale-linux.h +1 -1
  25. data/proxy/planetscale-linux.so +0 -0
  26. data/proxy.go +1 -5
  27. metadata +6 -342
  28. data/vendor/github.com/armon/circbuf/.gitignore +0 -22
  29. data/vendor/github.com/armon/circbuf/LICENSE +0 -20
  30. data/vendor/github.com/armon/circbuf/README.md +0 -28
  31. data/vendor/github.com/armon/circbuf/circbuf.go +0 -92
  32. data/vendor/github.com/armon/circbuf/go.mod +0 -1
  33. data/vendor/github.com/golang/protobuf/AUTHORS +0 -3
  34. data/vendor/github.com/golang/protobuf/CONTRIBUTORS +0 -3
  35. data/vendor/github.com/golang/protobuf/LICENSE +0 -28
  36. data/vendor/github.com/golang/protobuf/proto/buffer.go +0 -324
  37. data/vendor/github.com/golang/protobuf/proto/defaults.go +0 -63
  38. data/vendor/github.com/golang/protobuf/proto/deprecated.go +0 -113
  39. data/vendor/github.com/golang/protobuf/proto/discard.go +0 -58
  40. data/vendor/github.com/golang/protobuf/proto/extensions.go +0 -356
  41. data/vendor/github.com/golang/protobuf/proto/properties.go +0 -306
  42. data/vendor/github.com/golang/protobuf/proto/proto.go +0 -167
  43. data/vendor/github.com/golang/protobuf/proto/registry.go +0 -317
  44. data/vendor/github.com/golang/protobuf/proto/text_decode.go +0 -801
  45. data/vendor/github.com/golang/protobuf/proto/text_encode.go +0 -560
  46. data/vendor/github.com/golang/protobuf/proto/wire.go +0 -78
  47. data/vendor/github.com/golang/protobuf/proto/wrappers.go +0 -34
  48. data/vendor/github.com/gorilla/mux/AUTHORS +0 -8
  49. data/vendor/github.com/gorilla/mux/LICENSE +0 -27
  50. data/vendor/github.com/gorilla/mux/README.md +0 -805
  51. data/vendor/github.com/gorilla/mux/doc.go +0 -306
  52. data/vendor/github.com/gorilla/mux/go.mod +0 -3
  53. data/vendor/github.com/gorilla/mux/middleware.go +0 -74
  54. data/vendor/github.com/gorilla/mux/mux.go +0 -606
  55. data/vendor/github.com/gorilla/mux/regexp.go +0 -388
  56. data/vendor/github.com/gorilla/mux/route.go +0 -736
  57. data/vendor/github.com/gorilla/mux/test_helpers.go +0 -19
  58. data/vendor/github.com/hashicorp/go-cleanhttp/LICENSE +0 -363
  59. data/vendor/github.com/hashicorp/go-cleanhttp/README.md +0 -30
  60. data/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +0 -58
  61. data/vendor/github.com/hashicorp/go-cleanhttp/doc.go +0 -20
  62. data/vendor/github.com/hashicorp/go-cleanhttp/go.mod +0 -3
  63. data/vendor/github.com/hashicorp/go-cleanhttp/handlers.go +0 -48
  64. data/vendor/github.com/mitchellh/go-homedir/LICENSE +0 -21
  65. data/vendor/github.com/mitchellh/go-homedir/README.md +0 -14
  66. data/vendor/github.com/mitchellh/go-homedir/go.mod +0 -1
  67. data/vendor/github.com/mitchellh/go-homedir/homedir.go +0 -167
  68. data/vendor/github.com/pkg/errors/.gitignore +0 -24
  69. data/vendor/github.com/pkg/errors/.travis.yml +0 -10
  70. data/vendor/github.com/pkg/errors/LICENSE +0 -23
  71. data/vendor/github.com/pkg/errors/Makefile +0 -44
  72. data/vendor/github.com/pkg/errors/README.md +0 -59
  73. data/vendor/github.com/pkg/errors/appveyor.yml +0 -32
  74. data/vendor/github.com/pkg/errors/errors.go +0 -288
  75. data/vendor/github.com/pkg/errors/go113.go +0 -38
  76. data/vendor/github.com/pkg/errors/stack.go +0 -177
  77. data/vendor/github.com/planetscale/planetscale-go/planetscale/backups.go +0 -139
  78. data/vendor/github.com/planetscale/planetscale-go/planetscale/branches.go +0 -258
  79. data/vendor/github.com/planetscale/planetscale-go/planetscale/certs.go +0 -142
  80. data/vendor/github.com/planetscale/planetscale-go/planetscale/client.go +0 -305
  81. data/vendor/github.com/planetscale/planetscale-go/planetscale/databases.go +0 -131
  82. data/vendor/github.com/planetscale/planetscale-go/planetscale/deploy_requests.go +0 -368
  83. data/vendor/github.com/planetscale/planetscale-go/planetscale/organizations.go +0 -78
  84. data/vendor/github.com/planetscale/planetscale-go/planetscale/service_tokens.go +0 -163
  85. data/vendor/github.com/planetscale/sql-proxy/proxy/client.go +0 -467
  86. data/vendor/github.com/planetscale/sql-proxy/proxy/tls_cache.go +0 -73
  87. data/vendor/go.uber.org/atomic/.codecov.yml +0 -19
  88. data/vendor/go.uber.org/atomic/.gitignore +0 -12
  89. data/vendor/go.uber.org/atomic/.travis.yml +0 -27
  90. data/vendor/go.uber.org/atomic/CHANGELOG.md +0 -76
  91. data/vendor/go.uber.org/atomic/LICENSE.txt +0 -19
  92. data/vendor/go.uber.org/atomic/Makefile +0 -78
  93. data/vendor/go.uber.org/atomic/README.md +0 -63
  94. data/vendor/go.uber.org/atomic/bool.go +0 -81
  95. data/vendor/go.uber.org/atomic/bool_ext.go +0 -53
  96. data/vendor/go.uber.org/atomic/doc.go +0 -23
  97. data/vendor/go.uber.org/atomic/duration.go +0 -82
  98. data/vendor/go.uber.org/atomic/duration_ext.go +0 -40
  99. data/vendor/go.uber.org/atomic/error.go +0 -51
  100. data/vendor/go.uber.org/atomic/error_ext.go +0 -39
  101. data/vendor/go.uber.org/atomic/float64.go +0 -76
  102. data/vendor/go.uber.org/atomic/float64_ext.go +0 -47
  103. data/vendor/go.uber.org/atomic/gen.go +0 -26
  104. data/vendor/go.uber.org/atomic/go.mod +0 -8
  105. data/vendor/go.uber.org/atomic/go.sum +0 -9
  106. data/vendor/go.uber.org/atomic/int32.go +0 -102
  107. data/vendor/go.uber.org/atomic/int64.go +0 -102
  108. data/vendor/go.uber.org/atomic/nocmp.go +0 -35
  109. data/vendor/go.uber.org/atomic/string.go +0 -54
  110. data/vendor/go.uber.org/atomic/string_ext.go +0 -43
  111. data/vendor/go.uber.org/atomic/uint32.go +0 -102
  112. data/vendor/go.uber.org/atomic/uint64.go +0 -102
  113. data/vendor/go.uber.org/atomic/value.go +0 -31
  114. data/vendor/go.uber.org/multierr/.codecov.yml +0 -15
  115. data/vendor/go.uber.org/multierr/.gitignore +0 -4
  116. data/vendor/go.uber.org/multierr/.travis.yml +0 -23
  117. data/vendor/go.uber.org/multierr/CHANGELOG.md +0 -60
  118. data/vendor/go.uber.org/multierr/LICENSE.txt +0 -19
  119. data/vendor/go.uber.org/multierr/Makefile +0 -42
  120. data/vendor/go.uber.org/multierr/README.md +0 -23
  121. data/vendor/go.uber.org/multierr/error.go +0 -449
  122. data/vendor/go.uber.org/multierr/glide.yaml +0 -8
  123. data/vendor/go.uber.org/multierr/go.mod +0 -8
  124. data/vendor/go.uber.org/multierr/go.sum +0 -11
  125. data/vendor/go.uber.org/multierr/go113.go +0 -52
  126. data/vendor/go.uber.org/zap/.codecov.yml +0 -17
  127. data/vendor/go.uber.org/zap/.gitignore +0 -32
  128. data/vendor/go.uber.org/zap/.readme.tmpl +0 -109
  129. data/vendor/go.uber.org/zap/.travis.yml +0 -23
  130. data/vendor/go.uber.org/zap/CHANGELOG.md +0 -432
  131. data/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +0 -75
  132. data/vendor/go.uber.org/zap/CONTRIBUTING.md +0 -81
  133. data/vendor/go.uber.org/zap/FAQ.md +0 -156
  134. data/vendor/go.uber.org/zap/LICENSE.txt +0 -19
  135. data/vendor/go.uber.org/zap/Makefile +0 -63
  136. data/vendor/go.uber.org/zap/README.md +0 -134
  137. data/vendor/go.uber.org/zap/array.go +0 -320
  138. data/vendor/go.uber.org/zap/buffer/buffer.go +0 -123
  139. data/vendor/go.uber.org/zap/buffer/pool.go +0 -49
  140. data/vendor/go.uber.org/zap/checklicense.sh +0 -17
  141. data/vendor/go.uber.org/zap/config.go +0 -264
  142. data/vendor/go.uber.org/zap/doc.go +0 -113
  143. data/vendor/go.uber.org/zap/encoder.go +0 -79
  144. data/vendor/go.uber.org/zap/error.go +0 -80
  145. data/vendor/go.uber.org/zap/field.go +0 -539
  146. data/vendor/go.uber.org/zap/flag.go +0 -39
  147. data/vendor/go.uber.org/zap/glide.yaml +0 -34
  148. data/vendor/go.uber.org/zap/global.go +0 -168
  149. data/vendor/go.uber.org/zap/global_go112.go +0 -26
  150. data/vendor/go.uber.org/zap/global_prego112.go +0 -26
  151. data/vendor/go.uber.org/zap/go.mod +0 -13
  152. data/vendor/go.uber.org/zap/go.sum +0 -56
  153. data/vendor/go.uber.org/zap/http_handler.go +0 -81
  154. data/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +0 -31
  155. data/vendor/go.uber.org/zap/internal/color/color.go +0 -44
  156. data/vendor/go.uber.org/zap/internal/exit/exit.go +0 -64
  157. data/vendor/go.uber.org/zap/level.go +0 -132
  158. data/vendor/go.uber.org/zap/logger.go +0 -344
  159. data/vendor/go.uber.org/zap/options.go +0 -140
  160. data/vendor/go.uber.org/zap/sink.go +0 -161
  161. data/vendor/go.uber.org/zap/stacktrace.go +0 -85
  162. data/vendor/go.uber.org/zap/sugar.go +0 -304
  163. data/vendor/go.uber.org/zap/time.go +0 -27
  164. data/vendor/go.uber.org/zap/writer.go +0 -99
  165. data/vendor/go.uber.org/zap/zapcore/console_encoder.go +0 -161
  166. data/vendor/go.uber.org/zap/zapcore/core.go +0 -113
  167. data/vendor/go.uber.org/zap/zapcore/doc.go +0 -24
  168. data/vendor/go.uber.org/zap/zapcore/encoder.go +0 -443
  169. data/vendor/go.uber.org/zap/zapcore/entry.go +0 -264
  170. data/vendor/go.uber.org/zap/zapcore/error.go +0 -115
  171. data/vendor/go.uber.org/zap/zapcore/field.go +0 -227
  172. data/vendor/go.uber.org/zap/zapcore/hook.go +0 -68
  173. data/vendor/go.uber.org/zap/zapcore/increase_level.go +0 -66
  174. data/vendor/go.uber.org/zap/zapcore/json_encoder.go +0 -534
  175. data/vendor/go.uber.org/zap/zapcore/level.go +0 -175
  176. data/vendor/go.uber.org/zap/zapcore/level_strings.go +0 -46
  177. data/vendor/go.uber.org/zap/zapcore/marshaler.go +0 -61
  178. data/vendor/go.uber.org/zap/zapcore/memory_encoder.go +0 -179
  179. data/vendor/go.uber.org/zap/zapcore/sampler.go +0 -208
  180. data/vendor/go.uber.org/zap/zapcore/tee.go +0 -81
  181. data/vendor/go.uber.org/zap/zapcore/write_syncer.go +0 -123
  182. data/vendor/golang.org/x/net/AUTHORS +0 -3
  183. data/vendor/golang.org/x/net/CONTRIBUTORS +0 -3
  184. data/vendor/golang.org/x/net/LICENSE +0 -27
  185. data/vendor/golang.org/x/net/PATENTS +0 -22
  186. data/vendor/golang.org/x/net/context/context.go +0 -56
  187. data/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +0 -71
  188. data/vendor/golang.org/x/net/context/go17.go +0 -73
  189. data/vendor/golang.org/x/net/context/go19.go +0 -21
  190. data/vendor/golang.org/x/net/context/pre_go17.go +0 -301
  191. data/vendor/golang.org/x/net/context/pre_go19.go +0 -110
  192. data/vendor/golang.org/x/oauth2/.travis.yml +0 -13
  193. data/vendor/golang.org/x/oauth2/AUTHORS +0 -3
  194. data/vendor/golang.org/x/oauth2/CONTRIBUTING.md +0 -26
  195. data/vendor/golang.org/x/oauth2/CONTRIBUTORS +0 -3
  196. data/vendor/golang.org/x/oauth2/LICENSE +0 -27
  197. data/vendor/golang.org/x/oauth2/README.md +0 -36
  198. data/vendor/golang.org/x/oauth2/go.mod +0 -9
  199. data/vendor/golang.org/x/oauth2/go.sum +0 -361
  200. data/vendor/golang.org/x/oauth2/internal/client_appengine.go +0 -14
  201. data/vendor/golang.org/x/oauth2/internal/doc.go +0 -6
  202. data/vendor/golang.org/x/oauth2/internal/oauth2.go +0 -37
  203. data/vendor/golang.org/x/oauth2/internal/token.go +0 -294
  204. data/vendor/golang.org/x/oauth2/internal/transport.go +0 -33
  205. data/vendor/golang.org/x/oauth2/oauth2.go +0 -381
  206. data/vendor/golang.org/x/oauth2/token.go +0 -178
  207. data/vendor/golang.org/x/oauth2/transport.go +0 -89
  208. data/vendor/google.golang.org/appengine/LICENSE +0 -202
  209. data/vendor/google.golang.org/appengine/internal/api.go +0 -678
  210. data/vendor/google.golang.org/appengine/internal/api_classic.go +0 -169
  211. data/vendor/google.golang.org/appengine/internal/api_common.go +0 -123
  212. data/vendor/google.golang.org/appengine/internal/app_id.go +0 -28
  213. data/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +0 -308
  214. data/vendor/google.golang.org/appengine/internal/base/api_base.proto +0 -33
  215. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +0 -4367
  216. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +0 -551
  217. data/vendor/google.golang.org/appengine/internal/identity.go +0 -55
  218. data/vendor/google.golang.org/appengine/internal/identity_classic.go +0 -61
  219. data/vendor/google.golang.org/appengine/internal/identity_flex.go +0 -11
  220. data/vendor/google.golang.org/appengine/internal/identity_vm.go +0 -134
  221. data/vendor/google.golang.org/appengine/internal/internal.go +0 -110
  222. data/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +0 -1313
  223. data/vendor/google.golang.org/appengine/internal/log/log_service.proto +0 -150
  224. data/vendor/google.golang.org/appengine/internal/main.go +0 -16
  225. data/vendor/google.golang.org/appengine/internal/main_common.go +0 -7
  226. data/vendor/google.golang.org/appengine/internal/main_vm.go +0 -69
  227. data/vendor/google.golang.org/appengine/internal/metadata.go +0 -60
  228. data/vendor/google.golang.org/appengine/internal/net.go +0 -56
  229. data/vendor/google.golang.org/appengine/internal/regen.sh +0 -40
  230. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +0 -361
  231. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +0 -44
  232. data/vendor/google.golang.org/appengine/internal/transaction.go +0 -115
  233. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +0 -527
  234. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +0 -64
  235. data/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +0 -210
  236. data/vendor/google.golang.org/protobuf/AUTHORS +0 -3
  237. data/vendor/google.golang.org/protobuf/CONTRIBUTORS +0 -3
  238. data/vendor/google.golang.org/protobuf/LICENSE +0 -27
  239. data/vendor/google.golang.org/protobuf/PATENTS +0 -22
  240. data/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +0 -773
  241. data/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +0 -7
  242. data/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +0 -371
  243. data/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +0 -538
  244. data/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +0 -318
  245. data/vendor/google.golang.org/protobuf/internal/descopts/options.go +0 -29
  246. data/vendor/google.golang.org/protobuf/internal/detrand/rand.go +0 -69
  247. data/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +0 -213
  248. data/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +0 -241
  249. data/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +0 -207
  250. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +0 -665
  251. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +0 -190
  252. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +0 -161
  253. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +0 -373
  254. data/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +0 -29
  255. data/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +0 -265
  256. data/vendor/google.golang.org/protobuf/internal/errors/errors.go +0 -89
  257. data/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +0 -39
  258. data/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +0 -12
  259. data/vendor/google.golang.org/protobuf/internal/filedesc/build.go +0 -158
  260. data/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +0 -631
  261. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +0 -471
  262. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +0 -704
  263. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +0 -450
  264. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +0 -356
  265. data/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +0 -107
  266. data/vendor/google.golang.org/protobuf/internal/filetype/build.go +0 -297
  267. data/vendor/google.golang.org/protobuf/internal/flags/flags.go +0 -24
  268. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +0 -9
  269. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +0 -9
  270. data/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +0 -34
  271. data/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +0 -106
  272. data/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +0 -829
  273. data/vendor/google.golang.org/protobuf/internal/genid/doc.go +0 -11
  274. data/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +0 -34
  275. data/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +0 -19
  276. data/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +0 -31
  277. data/vendor/google.golang.org/protobuf/internal/genid/goname.go +0 -25
  278. data/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +0 -16
  279. data/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +0 -31
  280. data/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +0 -116
  281. data/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +0 -34
  282. data/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +0 -184
  283. data/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +0 -13
  284. data/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +0 -175
  285. data/vendor/google.golang.org/protobuf/internal/impl/api_export.go +0 -177
  286. data/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +0 -141
  287. data/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +0 -223
  288. data/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +0 -830
  289. data/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +0 -5637
  290. data/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +0 -388
  291. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +0 -37
  292. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +0 -11
  293. data/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +0 -217
  294. data/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +0 -123
  295. data/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +0 -209
  296. data/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +0 -557
  297. data/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +0 -17
  298. data/vendor/google.golang.org/protobuf/internal/impl/convert.go +0 -496
  299. data/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +0 -141
  300. data/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +0 -121
  301. data/vendor/google.golang.org/protobuf/internal/impl/decode.go +0 -276
  302. data/vendor/google.golang.org/protobuf/internal/impl/encode.go +0 -201
  303. data/vendor/google.golang.org/protobuf/internal/impl/enum.go +0 -21
  304. data/vendor/google.golang.org/protobuf/internal/impl/extension.go +0 -156
  305. data/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +0 -219
  306. data/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +0 -92
  307. data/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +0 -176
  308. data/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +0 -81
  309. data/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +0 -558
  310. data/vendor/google.golang.org/protobuf/internal/impl/merge.go +0 -176
  311. data/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +0 -209
  312. data/vendor/google.golang.org/protobuf/internal/impl/message.go +0 -276
  313. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +0 -465
  314. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +0 -543
  315. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +0 -249
  316. data/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +0 -178
  317. data/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +0 -174
  318. data/vendor/google.golang.org/protobuf/internal/impl/validate.go +0 -576
  319. data/vendor/google.golang.org/protobuf/internal/impl/weak.go +0 -74
  320. data/vendor/google.golang.org/protobuf/internal/order/order.go +0 -89
  321. data/vendor/google.golang.org/protobuf/internal/order/range.go +0 -115
  322. data/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +0 -29
  323. data/vendor/google.golang.org/protobuf/internal/set/ints.go +0 -58
  324. data/vendor/google.golang.org/protobuf/internal/strs/strings.go +0 -196
  325. data/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +0 -27
  326. data/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +0 -94
  327. data/vendor/google.golang.org/protobuf/internal/version/version.go +0 -79
  328. data/vendor/google.golang.org/protobuf/proto/checkinit.go +0 -71
  329. data/vendor/google.golang.org/protobuf/proto/decode.go +0 -278
  330. data/vendor/google.golang.org/protobuf/proto/decode_gen.go +0 -603
  331. data/vendor/google.golang.org/protobuf/proto/doc.go +0 -94
  332. data/vendor/google.golang.org/protobuf/proto/encode.go +0 -319
  333. data/vendor/google.golang.org/protobuf/proto/encode_gen.go +0 -97
  334. data/vendor/google.golang.org/protobuf/proto/equal.go +0 -167
  335. data/vendor/google.golang.org/protobuf/proto/extension.go +0 -92
  336. data/vendor/google.golang.org/protobuf/proto/merge.go +0 -139
  337. data/vendor/google.golang.org/protobuf/proto/messageset.go +0 -93
  338. data/vendor/google.golang.org/protobuf/proto/proto.go +0 -43
  339. data/vendor/google.golang.org/protobuf/proto/proto_methods.go +0 -19
  340. data/vendor/google.golang.org/protobuf/proto/proto_reflect.go +0 -19
  341. data/vendor/google.golang.org/protobuf/proto/reset.go +0 -43
  342. data/vendor/google.golang.org/protobuf/proto/size.go +0 -97
  343. data/vendor/google.golang.org/protobuf/proto/size_gen.go +0 -55
  344. data/vendor/google.golang.org/protobuf/proto/wrappers.go +0 -29
  345. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +0 -276
  346. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +0 -248
  347. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +0 -286
  348. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +0 -374
  349. data/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +0 -252
  350. data/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +0 -77
  351. data/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +0 -504
  352. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +0 -128
  353. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +0 -461
  354. data/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +0 -665
  355. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +0 -285
  356. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +0 -59
  357. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +0 -411
  358. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +0 -98
  359. data/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +0 -869
  360. data/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +0 -15
  361. data/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +0 -167
  362. data/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +0 -44
  363. data/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +0 -56
  364. data/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +0 -4039
  365. 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 }