planetscale 0.3.1 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (368) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +9 -1
  3. data/.github/workflows/gem-push.yml +9 -2
  4. data/.licenses/go/github.com/matoous/go-nanoid/v2.dep.yml +34 -0
  5. data/.licenses/go/github.com/planetscale/planetscale-go/planetscale.dep.yml +1 -1
  6. data/.licenses/go/github.com/planetscale/sql-proxy/proxy.dep.yml +1 -1
  7. data/.licenses/go/go.uber.org/zap/buffer.dep.yml +1 -1
  8. data/.licenses/go/go.uber.org/zap/internal/bufferpool.dep.yml +1 -1
  9. data/.licenses/go/go.uber.org/zap/internal/color.dep.yml +1 -1
  10. data/.licenses/go/go.uber.org/zap/internal/exit.dep.yml +1 -1
  11. data/.licenses/go/go.uber.org/zap/zapcore.dep.yml +1 -1
  12. data/.licenses/go/go.uber.org/zap.dep.yml +1 -1
  13. data/README.md +2 -0
  14. data/controller.go +21 -36
  15. data/go.mod +4 -3
  16. data/go.sum +32 -18
  17. data/lib/planetscale/version.rb +1 -1
  18. data/lib/planetscale.rb +2 -3
  19. data/planetscale.gemspec +1 -1
  20. data/proxy/planetscale-darwin.h +1 -1
  21. data/proxy/planetscale-darwin.so +0 -0
  22. data/proxy/planetscale-linux.h +1 -1
  23. data/proxy/planetscale-linux.so +0 -0
  24. data/proxy.go +1 -5
  25. metadata +3 -345
  26. data/vendor/github.com/armon/circbuf/.gitignore +0 -22
  27. data/vendor/github.com/armon/circbuf/LICENSE +0 -20
  28. data/vendor/github.com/armon/circbuf/README.md +0 -28
  29. data/vendor/github.com/armon/circbuf/circbuf.go +0 -92
  30. data/vendor/github.com/armon/circbuf/go.mod +0 -1
  31. data/vendor/github.com/golang/protobuf/AUTHORS +0 -3
  32. data/vendor/github.com/golang/protobuf/CONTRIBUTORS +0 -3
  33. data/vendor/github.com/golang/protobuf/LICENSE +0 -28
  34. data/vendor/github.com/golang/protobuf/proto/buffer.go +0 -324
  35. data/vendor/github.com/golang/protobuf/proto/defaults.go +0 -63
  36. data/vendor/github.com/golang/protobuf/proto/deprecated.go +0 -113
  37. data/vendor/github.com/golang/protobuf/proto/discard.go +0 -58
  38. data/vendor/github.com/golang/protobuf/proto/extensions.go +0 -356
  39. data/vendor/github.com/golang/protobuf/proto/properties.go +0 -306
  40. data/vendor/github.com/golang/protobuf/proto/proto.go +0 -167
  41. data/vendor/github.com/golang/protobuf/proto/registry.go +0 -317
  42. data/vendor/github.com/golang/protobuf/proto/text_decode.go +0 -801
  43. data/vendor/github.com/golang/protobuf/proto/text_encode.go +0 -560
  44. data/vendor/github.com/golang/protobuf/proto/wire.go +0 -78
  45. data/vendor/github.com/golang/protobuf/proto/wrappers.go +0 -34
  46. data/vendor/github.com/gorilla/mux/AUTHORS +0 -8
  47. data/vendor/github.com/gorilla/mux/LICENSE +0 -27
  48. data/vendor/github.com/gorilla/mux/README.md +0 -805
  49. data/vendor/github.com/gorilla/mux/doc.go +0 -306
  50. data/vendor/github.com/gorilla/mux/go.mod +0 -3
  51. data/vendor/github.com/gorilla/mux/middleware.go +0 -74
  52. data/vendor/github.com/gorilla/mux/mux.go +0 -606
  53. data/vendor/github.com/gorilla/mux/regexp.go +0 -388
  54. data/vendor/github.com/gorilla/mux/route.go +0 -736
  55. data/vendor/github.com/gorilla/mux/test_helpers.go +0 -19
  56. data/vendor/github.com/hashicorp/go-cleanhttp/LICENSE +0 -363
  57. data/vendor/github.com/hashicorp/go-cleanhttp/README.md +0 -30
  58. data/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +0 -58
  59. data/vendor/github.com/hashicorp/go-cleanhttp/doc.go +0 -20
  60. data/vendor/github.com/hashicorp/go-cleanhttp/go.mod +0 -3
  61. data/vendor/github.com/hashicorp/go-cleanhttp/handlers.go +0 -48
  62. data/vendor/github.com/mitchellh/go-homedir/LICENSE +0 -21
  63. data/vendor/github.com/mitchellh/go-homedir/README.md +0 -14
  64. data/vendor/github.com/mitchellh/go-homedir/go.mod +0 -1
  65. data/vendor/github.com/mitchellh/go-homedir/homedir.go +0 -167
  66. data/vendor/github.com/pkg/errors/.gitignore +0 -24
  67. data/vendor/github.com/pkg/errors/.travis.yml +0 -10
  68. data/vendor/github.com/pkg/errors/LICENSE +0 -23
  69. data/vendor/github.com/pkg/errors/Makefile +0 -44
  70. data/vendor/github.com/pkg/errors/README.md +0 -59
  71. data/vendor/github.com/pkg/errors/appveyor.yml +0 -32
  72. data/vendor/github.com/pkg/errors/errors.go +0 -288
  73. data/vendor/github.com/pkg/errors/go113.go +0 -38
  74. data/vendor/github.com/pkg/errors/stack.go +0 -177
  75. data/vendor/github.com/planetscale/planetscale-go/LICENSE +0 -202
  76. data/vendor/github.com/planetscale/planetscale-go/planetscale/audit_logs.go +0 -136
  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 -252
  79. data/vendor/github.com/planetscale/planetscale-go/planetscale/certs.go +0 -166
  80. data/vendor/github.com/planetscale/planetscale-go/planetscale/client.go +0 -312
  81. data/vendor/github.com/planetscale/planetscale-go/planetscale/databases.go +0 -133
  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 -103
  84. data/vendor/github.com/planetscale/planetscale-go/planetscale/regions.go +0 -52
  85. data/vendor/github.com/planetscale/planetscale-go/planetscale/service_tokens.go +0 -163
  86. data/vendor/github.com/planetscale/sql-proxy/LICENSE +0 -202
  87. data/vendor/github.com/planetscale/sql-proxy/proxy/client.go +0 -476
  88. data/vendor/github.com/planetscale/sql-proxy/proxy/tls_cache.go +0 -73
  89. data/vendor/go.uber.org/atomic/.codecov.yml +0 -19
  90. data/vendor/go.uber.org/atomic/.gitignore +0 -12
  91. data/vendor/go.uber.org/atomic/.travis.yml +0 -27
  92. data/vendor/go.uber.org/atomic/CHANGELOG.md +0 -76
  93. data/vendor/go.uber.org/atomic/LICENSE.txt +0 -19
  94. data/vendor/go.uber.org/atomic/Makefile +0 -78
  95. data/vendor/go.uber.org/atomic/README.md +0 -63
  96. data/vendor/go.uber.org/atomic/bool.go +0 -81
  97. data/vendor/go.uber.org/atomic/bool_ext.go +0 -53
  98. data/vendor/go.uber.org/atomic/doc.go +0 -23
  99. data/vendor/go.uber.org/atomic/duration.go +0 -82
  100. data/vendor/go.uber.org/atomic/duration_ext.go +0 -40
  101. data/vendor/go.uber.org/atomic/error.go +0 -51
  102. data/vendor/go.uber.org/atomic/error_ext.go +0 -39
  103. data/vendor/go.uber.org/atomic/float64.go +0 -76
  104. data/vendor/go.uber.org/atomic/float64_ext.go +0 -47
  105. data/vendor/go.uber.org/atomic/gen.go +0 -26
  106. data/vendor/go.uber.org/atomic/go.mod +0 -8
  107. data/vendor/go.uber.org/atomic/go.sum +0 -9
  108. data/vendor/go.uber.org/atomic/int32.go +0 -102
  109. data/vendor/go.uber.org/atomic/int64.go +0 -102
  110. data/vendor/go.uber.org/atomic/nocmp.go +0 -35
  111. data/vendor/go.uber.org/atomic/string.go +0 -54
  112. data/vendor/go.uber.org/atomic/string_ext.go +0 -43
  113. data/vendor/go.uber.org/atomic/uint32.go +0 -102
  114. data/vendor/go.uber.org/atomic/uint64.go +0 -102
  115. data/vendor/go.uber.org/atomic/value.go +0 -31
  116. data/vendor/go.uber.org/multierr/.codecov.yml +0 -15
  117. data/vendor/go.uber.org/multierr/.gitignore +0 -4
  118. data/vendor/go.uber.org/multierr/.travis.yml +0 -23
  119. data/vendor/go.uber.org/multierr/CHANGELOG.md +0 -60
  120. data/vendor/go.uber.org/multierr/LICENSE.txt +0 -19
  121. data/vendor/go.uber.org/multierr/Makefile +0 -42
  122. data/vendor/go.uber.org/multierr/README.md +0 -23
  123. data/vendor/go.uber.org/multierr/error.go +0 -449
  124. data/vendor/go.uber.org/multierr/glide.yaml +0 -8
  125. data/vendor/go.uber.org/multierr/go.mod +0 -8
  126. data/vendor/go.uber.org/multierr/go.sum +0 -11
  127. data/vendor/go.uber.org/multierr/go113.go +0 -52
  128. data/vendor/go.uber.org/zap/.codecov.yml +0 -17
  129. data/vendor/go.uber.org/zap/.gitignore +0 -32
  130. data/vendor/go.uber.org/zap/.readme.tmpl +0 -109
  131. data/vendor/go.uber.org/zap/CHANGELOG.md +0 -492
  132. data/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +0 -75
  133. data/vendor/go.uber.org/zap/CONTRIBUTING.md +0 -75
  134. data/vendor/go.uber.org/zap/FAQ.md +0 -164
  135. data/vendor/go.uber.org/zap/LICENSE.txt +0 -19
  136. data/vendor/go.uber.org/zap/Makefile +0 -73
  137. data/vendor/go.uber.org/zap/README.md +0 -134
  138. data/vendor/go.uber.org/zap/array.go +0 -320
  139. data/vendor/go.uber.org/zap/buffer/buffer.go +0 -141
  140. data/vendor/go.uber.org/zap/buffer/pool.go +0 -49
  141. data/vendor/go.uber.org/zap/checklicense.sh +0 -17
  142. data/vendor/go.uber.org/zap/config.go +0 -264
  143. data/vendor/go.uber.org/zap/doc.go +0 -113
  144. data/vendor/go.uber.org/zap/encoder.go +0 -79
  145. data/vendor/go.uber.org/zap/error.go +0 -80
  146. data/vendor/go.uber.org/zap/field.go +0 -549
  147. data/vendor/go.uber.org/zap/flag.go +0 -39
  148. data/vendor/go.uber.org/zap/glide.yaml +0 -34
  149. data/vendor/go.uber.org/zap/global.go +0 -168
  150. data/vendor/go.uber.org/zap/global_go112.go +0 -26
  151. data/vendor/go.uber.org/zap/global_prego112.go +0 -26
  152. data/vendor/go.uber.org/zap/go.mod +0 -14
  153. data/vendor/go.uber.org/zap/go.sum +0 -54
  154. data/vendor/go.uber.org/zap/http_handler.go +0 -132
  155. data/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +0 -31
  156. data/vendor/go.uber.org/zap/internal/color/color.go +0 -44
  157. data/vendor/go.uber.org/zap/internal/exit/exit.go +0 -64
  158. data/vendor/go.uber.org/zap/level.go +0 -132
  159. data/vendor/go.uber.org/zap/logger.go +0 -348
  160. data/vendor/go.uber.org/zap/options.go +0 -148
  161. data/vendor/go.uber.org/zap/sink.go +0 -161
  162. data/vendor/go.uber.org/zap/stacktrace.go +0 -85
  163. data/vendor/go.uber.org/zap/sugar.go +0 -315
  164. data/vendor/go.uber.org/zap/time.go +0 -27
  165. data/vendor/go.uber.org/zap/writer.go +0 -99
  166. data/vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go +0 -188
  167. data/vendor/go.uber.org/zap/zapcore/clock.go +0 -50
  168. data/vendor/go.uber.org/zap/zapcore/console_encoder.go +0 -161
  169. data/vendor/go.uber.org/zap/zapcore/core.go +0 -113
  170. data/vendor/go.uber.org/zap/zapcore/doc.go +0 -24
  171. data/vendor/go.uber.org/zap/zapcore/encoder.go +0 -443
  172. data/vendor/go.uber.org/zap/zapcore/entry.go +0 -264
  173. data/vendor/go.uber.org/zap/zapcore/error.go +0 -132
  174. data/vendor/go.uber.org/zap/zapcore/field.go +0 -233
  175. data/vendor/go.uber.org/zap/zapcore/hook.go +0 -68
  176. data/vendor/go.uber.org/zap/zapcore/increase_level.go +0 -66
  177. data/vendor/go.uber.org/zap/zapcore/json_encoder.go +0 -534
  178. data/vendor/go.uber.org/zap/zapcore/level.go +0 -175
  179. data/vendor/go.uber.org/zap/zapcore/level_strings.go +0 -46
  180. data/vendor/go.uber.org/zap/zapcore/marshaler.go +0 -61
  181. data/vendor/go.uber.org/zap/zapcore/memory_encoder.go +0 -179
  182. data/vendor/go.uber.org/zap/zapcore/sampler.go +0 -208
  183. data/vendor/go.uber.org/zap/zapcore/tee.go +0 -81
  184. data/vendor/go.uber.org/zap/zapcore/write_syncer.go +0 -122
  185. data/vendor/golang.org/x/net/AUTHORS +0 -3
  186. data/vendor/golang.org/x/net/CONTRIBUTORS +0 -3
  187. data/vendor/golang.org/x/net/LICENSE +0 -27
  188. data/vendor/golang.org/x/net/PATENTS +0 -22
  189. data/vendor/golang.org/x/net/context/context.go +0 -56
  190. data/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +0 -71
  191. data/vendor/golang.org/x/net/context/go17.go +0 -73
  192. data/vendor/golang.org/x/net/context/go19.go +0 -21
  193. data/vendor/golang.org/x/net/context/pre_go17.go +0 -301
  194. data/vendor/golang.org/x/net/context/pre_go19.go +0 -110
  195. data/vendor/golang.org/x/oauth2/.travis.yml +0 -13
  196. data/vendor/golang.org/x/oauth2/AUTHORS +0 -3
  197. data/vendor/golang.org/x/oauth2/CONTRIBUTING.md +0 -26
  198. data/vendor/golang.org/x/oauth2/CONTRIBUTORS +0 -3
  199. data/vendor/golang.org/x/oauth2/LICENSE +0 -27
  200. data/vendor/golang.org/x/oauth2/README.md +0 -36
  201. data/vendor/golang.org/x/oauth2/go.mod +0 -9
  202. data/vendor/golang.org/x/oauth2/go.sum +0 -361
  203. data/vendor/golang.org/x/oauth2/internal/client_appengine.go +0 -14
  204. data/vendor/golang.org/x/oauth2/internal/doc.go +0 -6
  205. data/vendor/golang.org/x/oauth2/internal/oauth2.go +0 -37
  206. data/vendor/golang.org/x/oauth2/internal/token.go +0 -294
  207. data/vendor/golang.org/x/oauth2/internal/transport.go +0 -33
  208. data/vendor/golang.org/x/oauth2/oauth2.go +0 -381
  209. data/vendor/golang.org/x/oauth2/token.go +0 -178
  210. data/vendor/golang.org/x/oauth2/transport.go +0 -89
  211. data/vendor/google.golang.org/appengine/LICENSE +0 -202
  212. data/vendor/google.golang.org/appengine/internal/api.go +0 -678
  213. data/vendor/google.golang.org/appengine/internal/api_classic.go +0 -169
  214. data/vendor/google.golang.org/appengine/internal/api_common.go +0 -123
  215. data/vendor/google.golang.org/appengine/internal/app_id.go +0 -28
  216. data/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +0 -308
  217. data/vendor/google.golang.org/appengine/internal/base/api_base.proto +0 -33
  218. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +0 -4367
  219. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +0 -551
  220. data/vendor/google.golang.org/appengine/internal/identity.go +0 -55
  221. data/vendor/google.golang.org/appengine/internal/identity_classic.go +0 -61
  222. data/vendor/google.golang.org/appengine/internal/identity_flex.go +0 -11
  223. data/vendor/google.golang.org/appengine/internal/identity_vm.go +0 -134
  224. data/vendor/google.golang.org/appengine/internal/internal.go +0 -110
  225. data/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +0 -1313
  226. data/vendor/google.golang.org/appengine/internal/log/log_service.proto +0 -150
  227. data/vendor/google.golang.org/appengine/internal/main.go +0 -16
  228. data/vendor/google.golang.org/appengine/internal/main_common.go +0 -7
  229. data/vendor/google.golang.org/appengine/internal/main_vm.go +0 -69
  230. data/vendor/google.golang.org/appengine/internal/metadata.go +0 -60
  231. data/vendor/google.golang.org/appengine/internal/net.go +0 -56
  232. data/vendor/google.golang.org/appengine/internal/regen.sh +0 -40
  233. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +0 -361
  234. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +0 -44
  235. data/vendor/google.golang.org/appengine/internal/transaction.go +0 -115
  236. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +0 -527
  237. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +0 -64
  238. data/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +0 -210
  239. data/vendor/google.golang.org/protobuf/AUTHORS +0 -3
  240. data/vendor/google.golang.org/protobuf/CONTRIBUTORS +0 -3
  241. data/vendor/google.golang.org/protobuf/LICENSE +0 -27
  242. data/vendor/google.golang.org/protobuf/PATENTS +0 -22
  243. data/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +0 -773
  244. data/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +0 -7
  245. data/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +0 -371
  246. data/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +0 -538
  247. data/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +0 -318
  248. data/vendor/google.golang.org/protobuf/internal/descopts/options.go +0 -29
  249. data/vendor/google.golang.org/protobuf/internal/detrand/rand.go +0 -69
  250. data/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +0 -213
  251. data/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +0 -241
  252. data/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +0 -207
  253. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +0 -665
  254. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +0 -190
  255. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +0 -161
  256. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +0 -373
  257. data/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +0 -29
  258. data/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +0 -265
  259. data/vendor/google.golang.org/protobuf/internal/errors/errors.go +0 -89
  260. data/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +0 -39
  261. data/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +0 -12
  262. data/vendor/google.golang.org/protobuf/internal/filedesc/build.go +0 -158
  263. data/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +0 -631
  264. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +0 -471
  265. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +0 -704
  266. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +0 -450
  267. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +0 -356
  268. data/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +0 -107
  269. data/vendor/google.golang.org/protobuf/internal/filetype/build.go +0 -297
  270. data/vendor/google.golang.org/protobuf/internal/flags/flags.go +0 -24
  271. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +0 -9
  272. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +0 -9
  273. data/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +0 -34
  274. data/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +0 -106
  275. data/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +0 -829
  276. data/vendor/google.golang.org/protobuf/internal/genid/doc.go +0 -11
  277. data/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +0 -34
  278. data/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +0 -19
  279. data/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +0 -31
  280. data/vendor/google.golang.org/protobuf/internal/genid/goname.go +0 -25
  281. data/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +0 -16
  282. data/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +0 -31
  283. data/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +0 -116
  284. data/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +0 -34
  285. data/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +0 -184
  286. data/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +0 -13
  287. data/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +0 -175
  288. data/vendor/google.golang.org/protobuf/internal/impl/api_export.go +0 -177
  289. data/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +0 -141
  290. data/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +0 -223
  291. data/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +0 -830
  292. data/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +0 -5637
  293. data/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +0 -388
  294. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +0 -37
  295. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +0 -11
  296. data/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +0 -217
  297. data/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +0 -123
  298. data/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +0 -209
  299. data/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +0 -557
  300. data/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +0 -17
  301. data/vendor/google.golang.org/protobuf/internal/impl/convert.go +0 -496
  302. data/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +0 -141
  303. data/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +0 -121
  304. data/vendor/google.golang.org/protobuf/internal/impl/decode.go +0 -276
  305. data/vendor/google.golang.org/protobuf/internal/impl/encode.go +0 -201
  306. data/vendor/google.golang.org/protobuf/internal/impl/enum.go +0 -21
  307. data/vendor/google.golang.org/protobuf/internal/impl/extension.go +0 -156
  308. data/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +0 -219
  309. data/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +0 -92
  310. data/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +0 -176
  311. data/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +0 -81
  312. data/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +0 -558
  313. data/vendor/google.golang.org/protobuf/internal/impl/merge.go +0 -176
  314. data/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +0 -209
  315. data/vendor/google.golang.org/protobuf/internal/impl/message.go +0 -276
  316. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +0 -465
  317. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +0 -543
  318. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +0 -249
  319. data/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +0 -178
  320. data/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +0 -174
  321. data/vendor/google.golang.org/protobuf/internal/impl/validate.go +0 -576
  322. data/vendor/google.golang.org/protobuf/internal/impl/weak.go +0 -74
  323. data/vendor/google.golang.org/protobuf/internal/order/order.go +0 -89
  324. data/vendor/google.golang.org/protobuf/internal/order/range.go +0 -115
  325. data/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +0 -29
  326. data/vendor/google.golang.org/protobuf/internal/set/ints.go +0 -58
  327. data/vendor/google.golang.org/protobuf/internal/strs/strings.go +0 -196
  328. data/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +0 -27
  329. data/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +0 -94
  330. data/vendor/google.golang.org/protobuf/internal/version/version.go +0 -79
  331. data/vendor/google.golang.org/protobuf/proto/checkinit.go +0 -71
  332. data/vendor/google.golang.org/protobuf/proto/decode.go +0 -278
  333. data/vendor/google.golang.org/protobuf/proto/decode_gen.go +0 -603
  334. data/vendor/google.golang.org/protobuf/proto/doc.go +0 -94
  335. data/vendor/google.golang.org/protobuf/proto/encode.go +0 -319
  336. data/vendor/google.golang.org/protobuf/proto/encode_gen.go +0 -97
  337. data/vendor/google.golang.org/protobuf/proto/equal.go +0 -167
  338. data/vendor/google.golang.org/protobuf/proto/extension.go +0 -92
  339. data/vendor/google.golang.org/protobuf/proto/merge.go +0 -139
  340. data/vendor/google.golang.org/protobuf/proto/messageset.go +0 -93
  341. data/vendor/google.golang.org/protobuf/proto/proto.go +0 -43
  342. data/vendor/google.golang.org/protobuf/proto/proto_methods.go +0 -19
  343. data/vendor/google.golang.org/protobuf/proto/proto_reflect.go +0 -19
  344. data/vendor/google.golang.org/protobuf/proto/reset.go +0 -43
  345. data/vendor/google.golang.org/protobuf/proto/size.go +0 -97
  346. data/vendor/google.golang.org/protobuf/proto/size_gen.go +0 -55
  347. data/vendor/google.golang.org/protobuf/proto/wrappers.go +0 -29
  348. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +0 -276
  349. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +0 -248
  350. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +0 -286
  351. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +0 -374
  352. data/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +0 -252
  353. data/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +0 -77
  354. data/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +0 -504
  355. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +0 -128
  356. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +0 -461
  357. data/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +0 -665
  358. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +0 -285
  359. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +0 -59
  360. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +0 -411
  361. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +0 -98
  362. data/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +0 -869
  363. data/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +0 -15
  364. data/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +0 -167
  365. data/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +0 -44
  366. data/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +0 -56
  367. data/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +0 -4039
  368. data/vendor/modules.txt +0 -79
@@ -1,773 +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 prototext
6
-
7
- import (
8
- "fmt"
9
- "unicode/utf8"
10
-
11
- "google.golang.org/protobuf/internal/encoding/messageset"
12
- "google.golang.org/protobuf/internal/encoding/text"
13
- "google.golang.org/protobuf/internal/errors"
14
- "google.golang.org/protobuf/internal/flags"
15
- "google.golang.org/protobuf/internal/genid"
16
- "google.golang.org/protobuf/internal/pragma"
17
- "google.golang.org/protobuf/internal/set"
18
- "google.golang.org/protobuf/internal/strs"
19
- "google.golang.org/protobuf/proto"
20
- pref "google.golang.org/protobuf/reflect/protoreflect"
21
- "google.golang.org/protobuf/reflect/protoregistry"
22
- )
23
-
24
- // Unmarshal reads the given []byte into the given proto.Message.
25
- // The provided message must be mutable (e.g., a non-nil pointer to a message).
26
- func Unmarshal(b []byte, m proto.Message) error {
27
- return UnmarshalOptions{}.Unmarshal(b, m)
28
- }
29
-
30
- // UnmarshalOptions is a configurable textproto format unmarshaler.
31
- type UnmarshalOptions struct {
32
- pragma.NoUnkeyedLiterals
33
-
34
- // AllowPartial accepts input for messages that will result in missing
35
- // required fields. If AllowPartial is false (the default), Unmarshal will
36
- // return error if there are any missing required fields.
37
- AllowPartial bool
38
-
39
- // DiscardUnknown specifies whether to ignore unknown fields when parsing.
40
- // An unknown field is any field whose field name or field number does not
41
- // resolve to any known or extension field in the message.
42
- // By default, unmarshal rejects unknown fields as an error.
43
- DiscardUnknown bool
44
-
45
- // Resolver is used for looking up types when unmarshaling
46
- // google.protobuf.Any messages or extension fields.
47
- // If nil, this defaults to using protoregistry.GlobalTypes.
48
- Resolver interface {
49
- protoregistry.MessageTypeResolver
50
- protoregistry.ExtensionTypeResolver
51
- }
52
- }
53
-
54
- // Unmarshal reads the given []byte and populates the given proto.Message
55
- // using options in the UnmarshalOptions object.
56
- // The provided message must be mutable (e.g., a non-nil pointer to a message).
57
- func (o UnmarshalOptions) Unmarshal(b []byte, m proto.Message) error {
58
- return o.unmarshal(b, m)
59
- }
60
-
61
- // unmarshal is a centralized function that all unmarshal operations go through.
62
- // For profiling purposes, avoid changing the name of this function or
63
- // introducing other code paths for unmarshal that do not go through this.
64
- func (o UnmarshalOptions) unmarshal(b []byte, m proto.Message) error {
65
- proto.Reset(m)
66
-
67
- if o.Resolver == nil {
68
- o.Resolver = protoregistry.GlobalTypes
69
- }
70
-
71
- dec := decoder{text.NewDecoder(b), o}
72
- if err := dec.unmarshalMessage(m.ProtoReflect(), false); err != nil {
73
- return err
74
- }
75
- if o.AllowPartial {
76
- return nil
77
- }
78
- return proto.CheckInitialized(m)
79
- }
80
-
81
- type decoder struct {
82
- *text.Decoder
83
- opts UnmarshalOptions
84
- }
85
-
86
- // newError returns an error object with position info.
87
- func (d decoder) newError(pos int, f string, x ...interface{}) error {
88
- line, column := d.Position(pos)
89
- head := fmt.Sprintf("(line %d:%d): ", line, column)
90
- return errors.New(head+f, x...)
91
- }
92
-
93
- // unexpectedTokenError returns a syntax error for the given unexpected token.
94
- func (d decoder) unexpectedTokenError(tok text.Token) error {
95
- return d.syntaxError(tok.Pos(), "unexpected token: %s", tok.RawString())
96
- }
97
-
98
- // syntaxError returns a syntax error for given position.
99
- func (d decoder) syntaxError(pos int, f string, x ...interface{}) error {
100
- line, column := d.Position(pos)
101
- head := fmt.Sprintf("syntax error (line %d:%d): ", line, column)
102
- return errors.New(head+f, x...)
103
- }
104
-
105
- // unmarshalMessage unmarshals into the given protoreflect.Message.
106
- func (d decoder) unmarshalMessage(m pref.Message, checkDelims bool) error {
107
- messageDesc := m.Descriptor()
108
- if !flags.ProtoLegacy && messageset.IsMessageSet(messageDesc) {
109
- return errors.New("no support for proto1 MessageSets")
110
- }
111
-
112
- if messageDesc.FullName() == genid.Any_message_fullname {
113
- return d.unmarshalAny(m, checkDelims)
114
- }
115
-
116
- if checkDelims {
117
- tok, err := d.Read()
118
- if err != nil {
119
- return err
120
- }
121
-
122
- if tok.Kind() != text.MessageOpen {
123
- return d.unexpectedTokenError(tok)
124
- }
125
- }
126
-
127
- var seenNums set.Ints
128
- var seenOneofs set.Ints
129
- fieldDescs := messageDesc.Fields()
130
-
131
- for {
132
- // Read field name.
133
- tok, err := d.Read()
134
- if err != nil {
135
- return err
136
- }
137
- switch typ := tok.Kind(); typ {
138
- case text.Name:
139
- // Continue below.
140
- case text.EOF:
141
- if checkDelims {
142
- return text.ErrUnexpectedEOF
143
- }
144
- return nil
145
- default:
146
- if checkDelims && typ == text.MessageClose {
147
- return nil
148
- }
149
- return d.unexpectedTokenError(tok)
150
- }
151
-
152
- // Resolve the field descriptor.
153
- var name pref.Name
154
- var fd pref.FieldDescriptor
155
- var xt pref.ExtensionType
156
- var xtErr error
157
- var isFieldNumberName bool
158
-
159
- switch tok.NameKind() {
160
- case text.IdentName:
161
- name = pref.Name(tok.IdentName())
162
- fd = fieldDescs.ByTextName(string(name))
163
-
164
- case text.TypeName:
165
- // Handle extensions only. This code path is not for Any.
166
- xt, xtErr = d.opts.Resolver.FindExtensionByName(pref.FullName(tok.TypeName()))
167
-
168
- case text.FieldNumber:
169
- isFieldNumberName = true
170
- num := pref.FieldNumber(tok.FieldNumber())
171
- if !num.IsValid() {
172
- return d.newError(tok.Pos(), "invalid field number: %d", num)
173
- }
174
- fd = fieldDescs.ByNumber(num)
175
- if fd == nil {
176
- xt, xtErr = d.opts.Resolver.FindExtensionByNumber(messageDesc.FullName(), num)
177
- }
178
- }
179
-
180
- if xt != nil {
181
- fd = xt.TypeDescriptor()
182
- if !messageDesc.ExtensionRanges().Has(fd.Number()) || fd.ContainingMessage().FullName() != messageDesc.FullName() {
183
- return d.newError(tok.Pos(), "message %v cannot be extended by %v", messageDesc.FullName(), fd.FullName())
184
- }
185
- } else if xtErr != nil && xtErr != protoregistry.NotFound {
186
- return d.newError(tok.Pos(), "unable to resolve [%s]: %v", tok.RawString(), xtErr)
187
- }
188
- if flags.ProtoLegacy {
189
- if fd != nil && fd.IsWeak() && fd.Message().IsPlaceholder() {
190
- fd = nil // reset since the weak reference is not linked in
191
- }
192
- }
193
-
194
- // Handle unknown fields.
195
- if fd == nil {
196
- if d.opts.DiscardUnknown || messageDesc.ReservedNames().Has(name) {
197
- d.skipValue()
198
- continue
199
- }
200
- return d.newError(tok.Pos(), "unknown field: %v", tok.RawString())
201
- }
202
-
203
- // Handle fields identified by field number.
204
- if isFieldNumberName {
205
- // TODO: Add an option to permit parsing field numbers.
206
- //
207
- // This requires careful thought as the MarshalOptions.EmitUnknown
208
- // option allows formatting unknown fields as the field number and the
209
- // best-effort textual representation of the field value. In that case,
210
- // it may not be possible to unmarshal the value from a parser that does
211
- // have information about the unknown field.
212
- return d.newError(tok.Pos(), "cannot specify field by number: %v", tok.RawString())
213
- }
214
-
215
- switch {
216
- case fd.IsList():
217
- kind := fd.Kind()
218
- if kind != pref.MessageKind && kind != pref.GroupKind && !tok.HasSeparator() {
219
- return d.syntaxError(tok.Pos(), "missing field separator :")
220
- }
221
-
222
- list := m.Mutable(fd).List()
223
- if err := d.unmarshalList(fd, list); err != nil {
224
- return err
225
- }
226
-
227
- case fd.IsMap():
228
- mmap := m.Mutable(fd).Map()
229
- if err := d.unmarshalMap(fd, mmap); err != nil {
230
- return err
231
- }
232
-
233
- default:
234
- kind := fd.Kind()
235
- if kind != pref.MessageKind && kind != pref.GroupKind && !tok.HasSeparator() {
236
- return d.syntaxError(tok.Pos(), "missing field separator :")
237
- }
238
-
239
- // If field is a oneof, check if it has already been set.
240
- if od := fd.ContainingOneof(); od != nil {
241
- idx := uint64(od.Index())
242
- if seenOneofs.Has(idx) {
243
- return d.newError(tok.Pos(), "error parsing %q, oneof %v is already set", tok.RawString(), od.FullName())
244
- }
245
- seenOneofs.Set(idx)
246
- }
247
-
248
- num := uint64(fd.Number())
249
- if seenNums.Has(num) {
250
- return d.newError(tok.Pos(), "non-repeated field %q is repeated", tok.RawString())
251
- }
252
-
253
- if err := d.unmarshalSingular(fd, m); err != nil {
254
- return err
255
- }
256
- seenNums.Set(num)
257
- }
258
- }
259
-
260
- return nil
261
- }
262
-
263
- // unmarshalSingular unmarshals a non-repeated field value specified by the
264
- // given FieldDescriptor.
265
- func (d decoder) unmarshalSingular(fd pref.FieldDescriptor, m pref.Message) error {
266
- var val pref.Value
267
- var err error
268
- switch fd.Kind() {
269
- case pref.MessageKind, pref.GroupKind:
270
- val = m.NewField(fd)
271
- err = d.unmarshalMessage(val.Message(), true)
272
- default:
273
- val, err = d.unmarshalScalar(fd)
274
- }
275
- if err == nil {
276
- m.Set(fd, val)
277
- }
278
- return err
279
- }
280
-
281
- // unmarshalScalar unmarshals a scalar/enum protoreflect.Value specified by the
282
- // given FieldDescriptor.
283
- func (d decoder) unmarshalScalar(fd pref.FieldDescriptor) (pref.Value, error) {
284
- tok, err := d.Read()
285
- if err != nil {
286
- return pref.Value{}, err
287
- }
288
-
289
- if tok.Kind() != text.Scalar {
290
- return pref.Value{}, d.unexpectedTokenError(tok)
291
- }
292
-
293
- kind := fd.Kind()
294
- switch kind {
295
- case pref.BoolKind:
296
- if b, ok := tok.Bool(); ok {
297
- return pref.ValueOfBool(b), nil
298
- }
299
-
300
- case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind:
301
- if n, ok := tok.Int32(); ok {
302
- return pref.ValueOfInt32(n), nil
303
- }
304
-
305
- case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind:
306
- if n, ok := tok.Int64(); ok {
307
- return pref.ValueOfInt64(n), nil
308
- }
309
-
310
- case pref.Uint32Kind, pref.Fixed32Kind:
311
- if n, ok := tok.Uint32(); ok {
312
- return pref.ValueOfUint32(n), nil
313
- }
314
-
315
- case pref.Uint64Kind, pref.Fixed64Kind:
316
- if n, ok := tok.Uint64(); ok {
317
- return pref.ValueOfUint64(n), nil
318
- }
319
-
320
- case pref.FloatKind:
321
- if n, ok := tok.Float32(); ok {
322
- return pref.ValueOfFloat32(n), nil
323
- }
324
-
325
- case pref.DoubleKind:
326
- if n, ok := tok.Float64(); ok {
327
- return pref.ValueOfFloat64(n), nil
328
- }
329
-
330
- case pref.StringKind:
331
- if s, ok := tok.String(); ok {
332
- if strs.EnforceUTF8(fd) && !utf8.ValidString(s) {
333
- return pref.Value{}, d.newError(tok.Pos(), "contains invalid UTF-8")
334
- }
335
- return pref.ValueOfString(s), nil
336
- }
337
-
338
- case pref.BytesKind:
339
- if b, ok := tok.String(); ok {
340
- return pref.ValueOfBytes([]byte(b)), nil
341
- }
342
-
343
- case pref.EnumKind:
344
- if lit, ok := tok.Enum(); ok {
345
- // Lookup EnumNumber based on name.
346
- if enumVal := fd.Enum().Values().ByName(pref.Name(lit)); enumVal != nil {
347
- return pref.ValueOfEnum(enumVal.Number()), nil
348
- }
349
- }
350
- if num, ok := tok.Int32(); ok {
351
- return pref.ValueOfEnum(pref.EnumNumber(num)), nil
352
- }
353
-
354
- default:
355
- panic(fmt.Sprintf("invalid scalar kind %v", kind))
356
- }
357
-
358
- return pref.Value{}, d.newError(tok.Pos(), "invalid value for %v type: %v", kind, tok.RawString())
359
- }
360
-
361
- // unmarshalList unmarshals into given protoreflect.List. A list value can
362
- // either be in [] syntax or simply just a single scalar/message value.
363
- func (d decoder) unmarshalList(fd pref.FieldDescriptor, list pref.List) error {
364
- tok, err := d.Peek()
365
- if err != nil {
366
- return err
367
- }
368
-
369
- switch fd.Kind() {
370
- case pref.MessageKind, pref.GroupKind:
371
- switch tok.Kind() {
372
- case text.ListOpen:
373
- d.Read()
374
- for {
375
- tok, err := d.Peek()
376
- if err != nil {
377
- return err
378
- }
379
-
380
- switch tok.Kind() {
381
- case text.ListClose:
382
- d.Read()
383
- return nil
384
- case text.MessageOpen:
385
- pval := list.NewElement()
386
- if err := d.unmarshalMessage(pval.Message(), true); err != nil {
387
- return err
388
- }
389
- list.Append(pval)
390
- default:
391
- return d.unexpectedTokenError(tok)
392
- }
393
- }
394
-
395
- case text.MessageOpen:
396
- pval := list.NewElement()
397
- if err := d.unmarshalMessage(pval.Message(), true); err != nil {
398
- return err
399
- }
400
- list.Append(pval)
401
- return nil
402
- }
403
-
404
- default:
405
- switch tok.Kind() {
406
- case text.ListOpen:
407
- d.Read()
408
- for {
409
- tok, err := d.Peek()
410
- if err != nil {
411
- return err
412
- }
413
-
414
- switch tok.Kind() {
415
- case text.ListClose:
416
- d.Read()
417
- return nil
418
- case text.Scalar:
419
- pval, err := d.unmarshalScalar(fd)
420
- if err != nil {
421
- return err
422
- }
423
- list.Append(pval)
424
- default:
425
- return d.unexpectedTokenError(tok)
426
- }
427
- }
428
-
429
- case text.Scalar:
430
- pval, err := d.unmarshalScalar(fd)
431
- if err != nil {
432
- return err
433
- }
434
- list.Append(pval)
435
- return nil
436
- }
437
- }
438
-
439
- return d.unexpectedTokenError(tok)
440
- }
441
-
442
- // unmarshalMap unmarshals into given protoreflect.Map. A map value is a
443
- // textproto message containing {key: <kvalue>, value: <mvalue>}.
444
- func (d decoder) unmarshalMap(fd pref.FieldDescriptor, mmap pref.Map) error {
445
- // Determine ahead whether map entry is a scalar type or a message type in
446
- // order to call the appropriate unmarshalMapValue func inside
447
- // unmarshalMapEntry.
448
- var unmarshalMapValue func() (pref.Value, error)
449
- switch fd.MapValue().Kind() {
450
- case pref.MessageKind, pref.GroupKind:
451
- unmarshalMapValue = func() (pref.Value, error) {
452
- pval := mmap.NewValue()
453
- if err := d.unmarshalMessage(pval.Message(), true); err != nil {
454
- return pref.Value{}, err
455
- }
456
- return pval, nil
457
- }
458
- default:
459
- unmarshalMapValue = func() (pref.Value, error) {
460
- return d.unmarshalScalar(fd.MapValue())
461
- }
462
- }
463
-
464
- tok, err := d.Read()
465
- if err != nil {
466
- return err
467
- }
468
- switch tok.Kind() {
469
- case text.MessageOpen:
470
- return d.unmarshalMapEntry(fd, mmap, unmarshalMapValue)
471
-
472
- case text.ListOpen:
473
- for {
474
- tok, err := d.Read()
475
- if err != nil {
476
- return err
477
- }
478
- switch tok.Kind() {
479
- case text.ListClose:
480
- return nil
481
- case text.MessageOpen:
482
- if err := d.unmarshalMapEntry(fd, mmap, unmarshalMapValue); err != nil {
483
- return err
484
- }
485
- default:
486
- return d.unexpectedTokenError(tok)
487
- }
488
- }
489
-
490
- default:
491
- return d.unexpectedTokenError(tok)
492
- }
493
- }
494
-
495
- // unmarshalMap unmarshals into given protoreflect.Map. A map value is a
496
- // textproto message containing {key: <kvalue>, value: <mvalue>}.
497
- func (d decoder) unmarshalMapEntry(fd pref.FieldDescriptor, mmap pref.Map, unmarshalMapValue func() (pref.Value, error)) error {
498
- var key pref.MapKey
499
- var pval pref.Value
500
- Loop:
501
- for {
502
- // Read field name.
503
- tok, err := d.Read()
504
- if err != nil {
505
- return err
506
- }
507
- switch tok.Kind() {
508
- case text.Name:
509
- if tok.NameKind() != text.IdentName {
510
- if !d.opts.DiscardUnknown {
511
- return d.newError(tok.Pos(), "unknown map entry field %q", tok.RawString())
512
- }
513
- d.skipValue()
514
- continue Loop
515
- }
516
- // Continue below.
517
- case text.MessageClose:
518
- break Loop
519
- default:
520
- return d.unexpectedTokenError(tok)
521
- }
522
-
523
- switch name := pref.Name(tok.IdentName()); name {
524
- case genid.MapEntry_Key_field_name:
525
- if !tok.HasSeparator() {
526
- return d.syntaxError(tok.Pos(), "missing field separator :")
527
- }
528
- if key.IsValid() {
529
- return d.newError(tok.Pos(), "map entry %q cannot be repeated", name)
530
- }
531
- val, err := d.unmarshalScalar(fd.MapKey())
532
- if err != nil {
533
- return err
534
- }
535
- key = val.MapKey()
536
-
537
- case genid.MapEntry_Value_field_name:
538
- if kind := fd.MapValue().Kind(); (kind != pref.MessageKind) && (kind != pref.GroupKind) {
539
- if !tok.HasSeparator() {
540
- return d.syntaxError(tok.Pos(), "missing field separator :")
541
- }
542
- }
543
- if pval.IsValid() {
544
- return d.newError(tok.Pos(), "map entry %q cannot be repeated", name)
545
- }
546
- pval, err = unmarshalMapValue()
547
- if err != nil {
548
- return err
549
- }
550
-
551
- default:
552
- if !d.opts.DiscardUnknown {
553
- return d.newError(tok.Pos(), "unknown map entry field %q", name)
554
- }
555
- d.skipValue()
556
- }
557
- }
558
-
559
- if !key.IsValid() {
560
- key = fd.MapKey().Default().MapKey()
561
- }
562
- if !pval.IsValid() {
563
- switch fd.MapValue().Kind() {
564
- case pref.MessageKind, pref.GroupKind:
565
- // If value field is not set for message/group types, construct an
566
- // empty one as default.
567
- pval = mmap.NewValue()
568
- default:
569
- pval = fd.MapValue().Default()
570
- }
571
- }
572
- mmap.Set(key, pval)
573
- return nil
574
- }
575
-
576
- // unmarshalAny unmarshals an Any textproto. It can either be in expanded form
577
- // or non-expanded form.
578
- func (d decoder) unmarshalAny(m pref.Message, checkDelims bool) error {
579
- var typeURL string
580
- var bValue []byte
581
- var seenTypeUrl bool
582
- var seenValue bool
583
- var isExpanded bool
584
-
585
- if checkDelims {
586
- tok, err := d.Read()
587
- if err != nil {
588
- return err
589
- }
590
-
591
- if tok.Kind() != text.MessageOpen {
592
- return d.unexpectedTokenError(tok)
593
- }
594
- }
595
-
596
- Loop:
597
- for {
598
- // Read field name. Can only have 3 possible field names, i.e. type_url,
599
- // value and type URL name inside [].
600
- tok, err := d.Read()
601
- if err != nil {
602
- return err
603
- }
604
- if typ := tok.Kind(); typ != text.Name {
605
- if checkDelims {
606
- if typ == text.MessageClose {
607
- break Loop
608
- }
609
- } else if typ == text.EOF {
610
- break Loop
611
- }
612
- return d.unexpectedTokenError(tok)
613
- }
614
-
615
- switch tok.NameKind() {
616
- case text.IdentName:
617
- // Both type_url and value fields require field separator :.
618
- if !tok.HasSeparator() {
619
- return d.syntaxError(tok.Pos(), "missing field separator :")
620
- }
621
-
622
- switch name := pref.Name(tok.IdentName()); name {
623
- case genid.Any_TypeUrl_field_name:
624
- if seenTypeUrl {
625
- return d.newError(tok.Pos(), "duplicate %v field", genid.Any_TypeUrl_field_fullname)
626
- }
627
- if isExpanded {
628
- return d.newError(tok.Pos(), "conflict with [%s] field", typeURL)
629
- }
630
- tok, err := d.Read()
631
- if err != nil {
632
- return err
633
- }
634
- var ok bool
635
- typeURL, ok = tok.String()
636
- if !ok {
637
- return d.newError(tok.Pos(), "invalid %v field value: %v", genid.Any_TypeUrl_field_fullname, tok.RawString())
638
- }
639
- seenTypeUrl = true
640
-
641
- case genid.Any_Value_field_name:
642
- if seenValue {
643
- return d.newError(tok.Pos(), "duplicate %v field", genid.Any_Value_field_fullname)
644
- }
645
- if isExpanded {
646
- return d.newError(tok.Pos(), "conflict with [%s] field", typeURL)
647
- }
648
- tok, err := d.Read()
649
- if err != nil {
650
- return err
651
- }
652
- s, ok := tok.String()
653
- if !ok {
654
- return d.newError(tok.Pos(), "invalid %v field value: %v", genid.Any_Value_field_fullname, tok.RawString())
655
- }
656
- bValue = []byte(s)
657
- seenValue = true
658
-
659
- default:
660
- if !d.opts.DiscardUnknown {
661
- return d.newError(tok.Pos(), "invalid field name %q in %v message", tok.RawString(), genid.Any_message_fullname)
662
- }
663
- }
664
-
665
- case text.TypeName:
666
- if isExpanded {
667
- return d.newError(tok.Pos(), "cannot have more than one type")
668
- }
669
- if seenTypeUrl {
670
- return d.newError(tok.Pos(), "conflict with type_url field")
671
- }
672
- typeURL = tok.TypeName()
673
- var err error
674
- bValue, err = d.unmarshalExpandedAny(typeURL, tok.Pos())
675
- if err != nil {
676
- return err
677
- }
678
- isExpanded = true
679
-
680
- default:
681
- if !d.opts.DiscardUnknown {
682
- return d.newError(tok.Pos(), "invalid field name %q in %v message", tok.RawString(), genid.Any_message_fullname)
683
- }
684
- }
685
- }
686
-
687
- fds := m.Descriptor().Fields()
688
- if len(typeURL) > 0 {
689
- m.Set(fds.ByNumber(genid.Any_TypeUrl_field_number), pref.ValueOfString(typeURL))
690
- }
691
- if len(bValue) > 0 {
692
- m.Set(fds.ByNumber(genid.Any_Value_field_number), pref.ValueOfBytes(bValue))
693
- }
694
- return nil
695
- }
696
-
697
- func (d decoder) unmarshalExpandedAny(typeURL string, pos int) ([]byte, error) {
698
- mt, err := d.opts.Resolver.FindMessageByURL(typeURL)
699
- if err != nil {
700
- return nil, d.newError(pos, "unable to resolve message [%v]: %v", typeURL, err)
701
- }
702
- // Create new message for the embedded message type and unmarshal the value
703
- // field into it.
704
- m := mt.New()
705
- if err := d.unmarshalMessage(m, true); err != nil {
706
- return nil, err
707
- }
708
- // Serialize the embedded message and return the resulting bytes.
709
- b, err := proto.MarshalOptions{
710
- AllowPartial: true, // Never check required fields inside an Any.
711
- Deterministic: true,
712
- }.Marshal(m.Interface())
713
- if err != nil {
714
- return nil, d.newError(pos, "error in marshaling message into Any.value: %v", err)
715
- }
716
- return b, nil
717
- }
718
-
719
- // skipValue makes the decoder parse a field value in order to advance the read
720
- // to the next field. It relies on Read returning an error if the types are not
721
- // in valid sequence.
722
- func (d decoder) skipValue() error {
723
- tok, err := d.Read()
724
- if err != nil {
725
- return err
726
- }
727
- // Only need to continue reading for messages and lists.
728
- switch tok.Kind() {
729
- case text.MessageOpen:
730
- return d.skipMessageValue()
731
-
732
- case text.ListOpen:
733
- for {
734
- tok, err := d.Read()
735
- if err != nil {
736
- return err
737
- }
738
- switch tok.Kind() {
739
- case text.ListClose:
740
- return nil
741
- case text.MessageOpen:
742
- return d.skipMessageValue()
743
- default:
744
- // Skip items. This will not validate whether skipped values are
745
- // of the same type or not, same behavior as C++
746
- // TextFormat::Parser::AllowUnknownField(true) version 3.8.0.
747
- if err := d.skipValue(); err != nil {
748
- return err
749
- }
750
- }
751
- }
752
- }
753
- return nil
754
- }
755
-
756
- // skipMessageValue makes the decoder parse and skip over all fields in a
757
- // message. It assumes that the previous read type is MessageOpen.
758
- func (d decoder) skipMessageValue() error {
759
- for {
760
- tok, err := d.Read()
761
- if err != nil {
762
- return err
763
- }
764
- switch tok.Kind() {
765
- case text.MessageClose:
766
- return nil
767
- case text.Name:
768
- if err := d.skipValue(); err != nil {
769
- return err
770
- }
771
- }
772
- }
773
- }