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,276 +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 protodesc provides functionality for converting
6
- // FileDescriptorProto messages to/from protoreflect.FileDescriptor values.
7
- //
8
- // The google.protobuf.FileDescriptorProto is a protobuf message that describes
9
- // the type information for a .proto file in a form that is easily serializable.
10
- // The protoreflect.FileDescriptor is a more structured representation of
11
- // the FileDescriptorProto message where references and remote dependencies
12
- // can be directly followed.
13
- package protodesc
14
-
15
- import (
16
- "google.golang.org/protobuf/internal/errors"
17
- "google.golang.org/protobuf/internal/filedesc"
18
- "google.golang.org/protobuf/internal/pragma"
19
- "google.golang.org/protobuf/internal/strs"
20
- "google.golang.org/protobuf/proto"
21
- "google.golang.org/protobuf/reflect/protoreflect"
22
- "google.golang.org/protobuf/reflect/protoregistry"
23
-
24
- "google.golang.org/protobuf/types/descriptorpb"
25
- )
26
-
27
- // Resolver is the resolver used by NewFile to resolve dependencies.
28
- // The enums and messages provided must belong to some parent file,
29
- // which is also registered.
30
- //
31
- // It is implemented by protoregistry.Files.
32
- type Resolver interface {
33
- FindFileByPath(string) (protoreflect.FileDescriptor, error)
34
- FindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error)
35
- }
36
-
37
- // FileOptions configures the construction of file descriptors.
38
- type FileOptions struct {
39
- pragma.NoUnkeyedLiterals
40
-
41
- // AllowUnresolvable configures New to permissively allow unresolvable
42
- // file, enum, or message dependencies. Unresolved dependencies are replaced
43
- // by placeholder equivalents.
44
- //
45
- // The following dependencies may be left unresolved:
46
- // • Resolving an imported file.
47
- // • Resolving the type for a message field or extension field.
48
- // If the kind of the field is unknown, then a placeholder is used for both
49
- // the Enum and Message accessors on the protoreflect.FieldDescriptor.
50
- // • Resolving an enum value set as the default for an optional enum field.
51
- // If unresolvable, the protoreflect.FieldDescriptor.Default is set to the
52
- // first value in the associated enum (or zero if the also enum dependency
53
- // is also unresolvable). The protoreflect.FieldDescriptor.DefaultEnumValue
54
- // is populated with a placeholder.
55
- // • Resolving the extended message type for an extension field.
56
- // • Resolving the input or output message type for a service method.
57
- //
58
- // If the unresolved dependency uses a relative name,
59
- // then the placeholder will contain an invalid FullName with a "*." prefix,
60
- // indicating that the starting prefix of the full name is unknown.
61
- AllowUnresolvable bool
62
- }
63
-
64
- // NewFile creates a new protoreflect.FileDescriptor from the provided
65
- // file descriptor message. See FileOptions.New for more information.
66
- func NewFile(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) {
67
- return FileOptions{}.New(fd, r)
68
- }
69
-
70
- // NewFiles creates a new protoregistry.Files from the provided
71
- // FileDescriptorSet message. See FileOptions.NewFiles for more information.
72
- func NewFiles(fd *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) {
73
- return FileOptions{}.NewFiles(fd)
74
- }
75
-
76
- // New creates a new protoreflect.FileDescriptor from the provided
77
- // file descriptor message. The file must represent a valid proto file according
78
- // to protobuf semantics. The returned descriptor is a deep copy of the input.
79
- //
80
- // Any imported files, enum types, or message types referenced in the file are
81
- // resolved using the provided registry. When looking up an import file path,
82
- // the path must be unique. The newly created file descriptor is not registered
83
- // back into the provided file registry.
84
- func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) {
85
- if r == nil {
86
- r = (*protoregistry.Files)(nil) // empty resolver
87
- }
88
-
89
- // Handle the file descriptor content.
90
- f := &filedesc.File{L2: &filedesc.FileL2{}}
91
- switch fd.GetSyntax() {
92
- case "proto2", "":
93
- f.L1.Syntax = protoreflect.Proto2
94
- case "proto3":
95
- f.L1.Syntax = protoreflect.Proto3
96
- default:
97
- return nil, errors.New("invalid syntax: %q", fd.GetSyntax())
98
- }
99
- f.L1.Path = fd.GetName()
100
- if f.L1.Path == "" {
101
- return nil, errors.New("file path must be populated")
102
- }
103
- f.L1.Package = protoreflect.FullName(fd.GetPackage())
104
- if !f.L1.Package.IsValid() && f.L1.Package != "" {
105
- return nil, errors.New("invalid package: %q", f.L1.Package)
106
- }
107
- if opts := fd.GetOptions(); opts != nil {
108
- opts = proto.Clone(opts).(*descriptorpb.FileOptions)
109
- f.L2.Options = func() protoreflect.ProtoMessage { return opts }
110
- }
111
-
112
- f.L2.Imports = make(filedesc.FileImports, len(fd.GetDependency()))
113
- for _, i := range fd.GetPublicDependency() {
114
- if !(0 <= i && int(i) < len(f.L2.Imports)) || f.L2.Imports[i].IsPublic {
115
- return nil, errors.New("invalid or duplicate public import index: %d", i)
116
- }
117
- f.L2.Imports[i].IsPublic = true
118
- }
119
- for _, i := range fd.GetWeakDependency() {
120
- if !(0 <= i && int(i) < len(f.L2.Imports)) || f.L2.Imports[i].IsWeak {
121
- return nil, errors.New("invalid or duplicate weak import index: %d", i)
122
- }
123
- f.L2.Imports[i].IsWeak = true
124
- }
125
- imps := importSet{f.Path(): true}
126
- for i, path := range fd.GetDependency() {
127
- imp := &f.L2.Imports[i]
128
- f, err := r.FindFileByPath(path)
129
- if err == protoregistry.NotFound && (o.AllowUnresolvable || imp.IsWeak) {
130
- f = filedesc.PlaceholderFile(path)
131
- } else if err != nil {
132
- return nil, errors.New("could not resolve import %q: %v", path, err)
133
- }
134
- imp.FileDescriptor = f
135
-
136
- if imps[imp.Path()] {
137
- return nil, errors.New("already imported %q", path)
138
- }
139
- imps[imp.Path()] = true
140
- }
141
- for i := range fd.GetDependency() {
142
- imp := &f.L2.Imports[i]
143
- imps.importPublic(imp.Imports())
144
- }
145
-
146
- // Handle source locations.
147
- f.L2.Locations.File = f
148
- for _, loc := range fd.GetSourceCodeInfo().GetLocation() {
149
- var l protoreflect.SourceLocation
150
- // TODO: Validate that the path points to an actual declaration?
151
- l.Path = protoreflect.SourcePath(loc.GetPath())
152
- s := loc.GetSpan()
153
- switch len(s) {
154
- case 3:
155
- l.StartLine, l.StartColumn, l.EndLine, l.EndColumn = int(s[0]), int(s[1]), int(s[0]), int(s[2])
156
- case 4:
157
- l.StartLine, l.StartColumn, l.EndLine, l.EndColumn = int(s[0]), int(s[1]), int(s[2]), int(s[3])
158
- default:
159
- return nil, errors.New("invalid span: %v", s)
160
- }
161
- // TODO: Validate that the span information is sensible?
162
- // See https://github.com/protocolbuffers/protobuf/issues/6378.
163
- if false && (l.EndLine < l.StartLine || l.StartLine < 0 || l.StartColumn < 0 || l.EndColumn < 0 ||
164
- (l.StartLine == l.EndLine && l.EndColumn <= l.StartColumn)) {
165
- return nil, errors.New("invalid span: %v", s)
166
- }
167
- l.LeadingDetachedComments = loc.GetLeadingDetachedComments()
168
- l.LeadingComments = loc.GetLeadingComments()
169
- l.TrailingComments = loc.GetTrailingComments()
170
- f.L2.Locations.List = append(f.L2.Locations.List, l)
171
- }
172
-
173
- // Step 1: Allocate and derive the names for all declarations.
174
- // This copies all fields from the descriptor proto except:
175
- // google.protobuf.FieldDescriptorProto.type_name
176
- // google.protobuf.FieldDescriptorProto.default_value
177
- // google.protobuf.FieldDescriptorProto.oneof_index
178
- // google.protobuf.FieldDescriptorProto.extendee
179
- // google.protobuf.MethodDescriptorProto.input
180
- // google.protobuf.MethodDescriptorProto.output
181
- var err error
182
- sb := new(strs.Builder)
183
- r1 := make(descsByName)
184
- if f.L1.Enums.List, err = r1.initEnumDeclarations(fd.GetEnumType(), f, sb); err != nil {
185
- return nil, err
186
- }
187
- if f.L1.Messages.List, err = r1.initMessagesDeclarations(fd.GetMessageType(), f, sb); err != nil {
188
- return nil, err
189
- }
190
- if f.L1.Extensions.List, err = r1.initExtensionDeclarations(fd.GetExtension(), f, sb); err != nil {
191
- return nil, err
192
- }
193
- if f.L1.Services.List, err = r1.initServiceDeclarations(fd.GetService(), f, sb); err != nil {
194
- return nil, err
195
- }
196
-
197
- // Step 2: Resolve every dependency reference not handled by step 1.
198
- r2 := &resolver{local: r1, remote: r, imports: imps, allowUnresolvable: o.AllowUnresolvable}
199
- if err := r2.resolveMessageDependencies(f.L1.Messages.List, fd.GetMessageType()); err != nil {
200
- return nil, err
201
- }
202
- if err := r2.resolveExtensionDependencies(f.L1.Extensions.List, fd.GetExtension()); err != nil {
203
- return nil, err
204
- }
205
- if err := r2.resolveServiceDependencies(f.L1.Services.List, fd.GetService()); err != nil {
206
- return nil, err
207
- }
208
-
209
- // Step 3: Validate every enum, message, and extension declaration.
210
- if err := validateEnumDeclarations(f.L1.Enums.List, fd.GetEnumType()); err != nil {
211
- return nil, err
212
- }
213
- if err := validateMessageDeclarations(f.L1.Messages.List, fd.GetMessageType()); err != nil {
214
- return nil, err
215
- }
216
- if err := validateExtensionDeclarations(f.L1.Extensions.List, fd.GetExtension()); err != nil {
217
- return nil, err
218
- }
219
-
220
- return f, nil
221
- }
222
-
223
- type importSet map[string]bool
224
-
225
- func (is importSet) importPublic(imps protoreflect.FileImports) {
226
- for i := 0; i < imps.Len(); i++ {
227
- if imp := imps.Get(i); imp.IsPublic {
228
- is[imp.Path()] = true
229
- is.importPublic(imp.Imports())
230
- }
231
- }
232
- }
233
-
234
- // NewFiles creates a new protoregistry.Files from the provided
235
- // FileDescriptorSet message. The descriptor set must include only
236
- // valid files according to protobuf semantics. The returned descriptors
237
- // are a deep copy of the input.
238
- func (o FileOptions) NewFiles(fds *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) {
239
- files := make(map[string]*descriptorpb.FileDescriptorProto)
240
- for _, fd := range fds.File {
241
- if _, ok := files[fd.GetName()]; ok {
242
- return nil, errors.New("file appears multiple times: %q", fd.GetName())
243
- }
244
- files[fd.GetName()] = fd
245
- }
246
- r := &protoregistry.Files{}
247
- for _, fd := range files {
248
- if err := o.addFileDeps(r, fd, files); err != nil {
249
- return nil, err
250
- }
251
- }
252
- return r, nil
253
- }
254
- func (o FileOptions) addFileDeps(r *protoregistry.Files, fd *descriptorpb.FileDescriptorProto, files map[string]*descriptorpb.FileDescriptorProto) error {
255
- // Set the entry to nil while descending into a file's dependencies to detect cycles.
256
- files[fd.GetName()] = nil
257
- for _, dep := range fd.Dependency {
258
- depfd, ok := files[dep]
259
- if depfd == nil {
260
- if ok {
261
- return errors.New("import cycle in file: %q", dep)
262
- }
263
- continue
264
- }
265
- if err := o.addFileDeps(r, depfd, files); err != nil {
266
- return err
267
- }
268
- }
269
- // Delete the entry once dependencies are processed.
270
- delete(files, fd.GetName())
271
- f, err := o.New(fd, r)
272
- if err != nil {
273
- return err
274
- }
275
- return r.RegisterFile(f)
276
- }
@@ -1,248 +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 protodesc
6
-
7
- import (
8
- "google.golang.org/protobuf/internal/errors"
9
- "google.golang.org/protobuf/internal/filedesc"
10
- "google.golang.org/protobuf/internal/strs"
11
- "google.golang.org/protobuf/proto"
12
- "google.golang.org/protobuf/reflect/protoreflect"
13
-
14
- "google.golang.org/protobuf/types/descriptorpb"
15
- )
16
-
17
- type descsByName map[protoreflect.FullName]protoreflect.Descriptor
18
-
19
- func (r descsByName) initEnumDeclarations(eds []*descriptorpb.EnumDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (es []filedesc.Enum, err error) {
20
- es = make([]filedesc.Enum, len(eds)) // allocate up-front to ensure stable pointers
21
- for i, ed := range eds {
22
- e := &es[i]
23
- e.L2 = new(filedesc.EnumL2)
24
- if e.L0, err = r.makeBase(e, parent, ed.GetName(), i, sb); err != nil {
25
- return nil, err
26
- }
27
- if opts := ed.GetOptions(); opts != nil {
28
- opts = proto.Clone(opts).(*descriptorpb.EnumOptions)
29
- e.L2.Options = func() protoreflect.ProtoMessage { return opts }
30
- }
31
- for _, s := range ed.GetReservedName() {
32
- e.L2.ReservedNames.List = append(e.L2.ReservedNames.List, protoreflect.Name(s))
33
- }
34
- for _, rr := range ed.GetReservedRange() {
35
- e.L2.ReservedRanges.List = append(e.L2.ReservedRanges.List, [2]protoreflect.EnumNumber{
36
- protoreflect.EnumNumber(rr.GetStart()),
37
- protoreflect.EnumNumber(rr.GetEnd()),
38
- })
39
- }
40
- if e.L2.Values.List, err = r.initEnumValuesFromDescriptorProto(ed.GetValue(), e, sb); err != nil {
41
- return nil, err
42
- }
43
- }
44
- return es, nil
45
- }
46
-
47
- func (r descsByName) initEnumValuesFromDescriptorProto(vds []*descriptorpb.EnumValueDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (vs []filedesc.EnumValue, err error) {
48
- vs = make([]filedesc.EnumValue, len(vds)) // allocate up-front to ensure stable pointers
49
- for i, vd := range vds {
50
- v := &vs[i]
51
- if v.L0, err = r.makeBase(v, parent, vd.GetName(), i, sb); err != nil {
52
- return nil, err
53
- }
54
- if opts := vd.GetOptions(); opts != nil {
55
- opts = proto.Clone(opts).(*descriptorpb.EnumValueOptions)
56
- v.L1.Options = func() protoreflect.ProtoMessage { return opts }
57
- }
58
- v.L1.Number = protoreflect.EnumNumber(vd.GetNumber())
59
- }
60
- return vs, nil
61
- }
62
-
63
- func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ms []filedesc.Message, err error) {
64
- ms = make([]filedesc.Message, len(mds)) // allocate up-front to ensure stable pointers
65
- for i, md := range mds {
66
- m := &ms[i]
67
- m.L2 = new(filedesc.MessageL2)
68
- if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil {
69
- return nil, err
70
- }
71
- if opts := md.GetOptions(); opts != nil {
72
- opts = proto.Clone(opts).(*descriptorpb.MessageOptions)
73
- m.L2.Options = func() protoreflect.ProtoMessage { return opts }
74
- m.L1.IsMapEntry = opts.GetMapEntry()
75
- m.L1.IsMessageSet = opts.GetMessageSetWireFormat()
76
- }
77
- for _, s := range md.GetReservedName() {
78
- m.L2.ReservedNames.List = append(m.L2.ReservedNames.List, protoreflect.Name(s))
79
- }
80
- for _, rr := range md.GetReservedRange() {
81
- m.L2.ReservedRanges.List = append(m.L2.ReservedRanges.List, [2]protoreflect.FieldNumber{
82
- protoreflect.FieldNumber(rr.GetStart()),
83
- protoreflect.FieldNumber(rr.GetEnd()),
84
- })
85
- }
86
- for _, xr := range md.GetExtensionRange() {
87
- m.L2.ExtensionRanges.List = append(m.L2.ExtensionRanges.List, [2]protoreflect.FieldNumber{
88
- protoreflect.FieldNumber(xr.GetStart()),
89
- protoreflect.FieldNumber(xr.GetEnd()),
90
- })
91
- var optsFunc func() protoreflect.ProtoMessage
92
- if opts := xr.GetOptions(); opts != nil {
93
- opts = proto.Clone(opts).(*descriptorpb.ExtensionRangeOptions)
94
- optsFunc = func() protoreflect.ProtoMessage { return opts }
95
- }
96
- m.L2.ExtensionRangeOptions = append(m.L2.ExtensionRangeOptions, optsFunc)
97
- }
98
- if m.L2.Fields.List, err = r.initFieldsFromDescriptorProto(md.GetField(), m, sb); err != nil {
99
- return nil, err
100
- }
101
- if m.L2.Oneofs.List, err = r.initOneofsFromDescriptorProto(md.GetOneofDecl(), m, sb); err != nil {
102
- return nil, err
103
- }
104
- if m.L1.Enums.List, err = r.initEnumDeclarations(md.GetEnumType(), m, sb); err != nil {
105
- return nil, err
106
- }
107
- if m.L1.Messages.List, err = r.initMessagesDeclarations(md.GetNestedType(), m, sb); err != nil {
108
- return nil, err
109
- }
110
- if m.L1.Extensions.List, err = r.initExtensionDeclarations(md.GetExtension(), m, sb); err != nil {
111
- return nil, err
112
- }
113
- }
114
- return ms, nil
115
- }
116
-
117
- func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (fs []filedesc.Field, err error) {
118
- fs = make([]filedesc.Field, len(fds)) // allocate up-front to ensure stable pointers
119
- for i, fd := range fds {
120
- f := &fs[i]
121
- if f.L0, err = r.makeBase(f, parent, fd.GetName(), i, sb); err != nil {
122
- return nil, err
123
- }
124
- f.L1.IsProto3Optional = fd.GetProto3Optional()
125
- if opts := fd.GetOptions(); opts != nil {
126
- opts = proto.Clone(opts).(*descriptorpb.FieldOptions)
127
- f.L1.Options = func() protoreflect.ProtoMessage { return opts }
128
- f.L1.IsWeak = opts.GetWeak()
129
- f.L1.HasPacked = opts.Packed != nil
130
- f.L1.IsPacked = opts.GetPacked()
131
- }
132
- f.L1.Number = protoreflect.FieldNumber(fd.GetNumber())
133
- f.L1.Cardinality = protoreflect.Cardinality(fd.GetLabel())
134
- if fd.Type != nil {
135
- f.L1.Kind = protoreflect.Kind(fd.GetType())
136
- }
137
- if fd.JsonName != nil {
138
- f.L1.StringName.InitJSON(fd.GetJsonName())
139
- }
140
- }
141
- return fs, nil
142
- }
143
-
144
- func (r descsByName) initOneofsFromDescriptorProto(ods []*descriptorpb.OneofDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (os []filedesc.Oneof, err error) {
145
- os = make([]filedesc.Oneof, len(ods)) // allocate up-front to ensure stable pointers
146
- for i, od := range ods {
147
- o := &os[i]
148
- if o.L0, err = r.makeBase(o, parent, od.GetName(), i, sb); err != nil {
149
- return nil, err
150
- }
151
- if opts := od.GetOptions(); opts != nil {
152
- opts = proto.Clone(opts).(*descriptorpb.OneofOptions)
153
- o.L1.Options = func() protoreflect.ProtoMessage { return opts }
154
- }
155
- }
156
- return os, nil
157
- }
158
-
159
- func (r descsByName) initExtensionDeclarations(xds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (xs []filedesc.Extension, err error) {
160
- xs = make([]filedesc.Extension, len(xds)) // allocate up-front to ensure stable pointers
161
- for i, xd := range xds {
162
- x := &xs[i]
163
- x.L2 = new(filedesc.ExtensionL2)
164
- if x.L0, err = r.makeBase(x, parent, xd.GetName(), i, sb); err != nil {
165
- return nil, err
166
- }
167
- if opts := xd.GetOptions(); opts != nil {
168
- opts = proto.Clone(opts).(*descriptorpb.FieldOptions)
169
- x.L2.Options = func() protoreflect.ProtoMessage { return opts }
170
- x.L2.IsPacked = opts.GetPacked()
171
- }
172
- x.L1.Number = protoreflect.FieldNumber(xd.GetNumber())
173
- x.L1.Cardinality = protoreflect.Cardinality(xd.GetLabel())
174
- if xd.Type != nil {
175
- x.L1.Kind = protoreflect.Kind(xd.GetType())
176
- }
177
- if xd.JsonName != nil {
178
- x.L2.StringName.InitJSON(xd.GetJsonName())
179
- }
180
- }
181
- return xs, nil
182
- }
183
-
184
- func (r descsByName) initServiceDeclarations(sds []*descriptorpb.ServiceDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ss []filedesc.Service, err error) {
185
- ss = make([]filedesc.Service, len(sds)) // allocate up-front to ensure stable pointers
186
- for i, sd := range sds {
187
- s := &ss[i]
188
- s.L2 = new(filedesc.ServiceL2)
189
- if s.L0, err = r.makeBase(s, parent, sd.GetName(), i, sb); err != nil {
190
- return nil, err
191
- }
192
- if opts := sd.GetOptions(); opts != nil {
193
- opts = proto.Clone(opts).(*descriptorpb.ServiceOptions)
194
- s.L2.Options = func() protoreflect.ProtoMessage { return opts }
195
- }
196
- if s.L2.Methods.List, err = r.initMethodsFromDescriptorProto(sd.GetMethod(), s, sb); err != nil {
197
- return nil, err
198
- }
199
- }
200
- return ss, nil
201
- }
202
-
203
- func (r descsByName) initMethodsFromDescriptorProto(mds []*descriptorpb.MethodDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ms []filedesc.Method, err error) {
204
- ms = make([]filedesc.Method, len(mds)) // allocate up-front to ensure stable pointers
205
- for i, md := range mds {
206
- m := &ms[i]
207
- if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil {
208
- return nil, err
209
- }
210
- if opts := md.GetOptions(); opts != nil {
211
- opts = proto.Clone(opts).(*descriptorpb.MethodOptions)
212
- m.L1.Options = func() protoreflect.ProtoMessage { return opts }
213
- }
214
- m.L1.IsStreamingClient = md.GetClientStreaming()
215
- m.L1.IsStreamingServer = md.GetServerStreaming()
216
- }
217
- return ms, nil
218
- }
219
-
220
- func (r descsByName) makeBase(child, parent protoreflect.Descriptor, name string, idx int, sb *strs.Builder) (filedesc.BaseL0, error) {
221
- if !protoreflect.Name(name).IsValid() {
222
- return filedesc.BaseL0{}, errors.New("descriptor %q has an invalid nested name: %q", parent.FullName(), name)
223
- }
224
-
225
- // Derive the full name of the child.
226
- // Note that enum values are a sibling to the enum parent in the namespace.
227
- var fullName protoreflect.FullName
228
- if _, ok := parent.(protoreflect.EnumDescriptor); ok {
229
- fullName = sb.AppendFullName(parent.FullName().Parent(), protoreflect.Name(name))
230
- } else {
231
- fullName = sb.AppendFullName(parent.FullName(), protoreflect.Name(name))
232
- }
233
- if _, ok := r[fullName]; ok {
234
- return filedesc.BaseL0{}, errors.New("descriptor %q already declared", fullName)
235
- }
236
- r[fullName] = child
237
-
238
- // TODO: Verify that the full name does not already exist in the resolver?
239
- // This is not as critical since most usages of NewFile will register
240
- // the created file back into the registry, which will perform this check.
241
-
242
- return filedesc.BaseL0{
243
- FullName: fullName,
244
- ParentFile: parent.ParentFile().(*filedesc.File),
245
- Parent: parent,
246
- Index: idx,
247
- }, nil
248
- }