planetscale 0.2.0 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
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,66 +0,0 @@
1
- // Copyright (c) 2020 Uber Technologies, Inc.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to deal
5
- // in the Software without restriction, including without limitation the rights
6
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- // copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- // THE SOFTWARE.
20
-
21
- package zapcore
22
-
23
- import "fmt"
24
-
25
- type levelFilterCore struct {
26
- core Core
27
- level LevelEnabler
28
- }
29
-
30
- // NewIncreaseLevelCore creates a core that can be used to increase the level of
31
- // an existing Core. It cannot be used to decrease the logging level, as it acts
32
- // as a filter before calling the underlying core. If level decreases the log level,
33
- // an error is returned.
34
- func NewIncreaseLevelCore(core Core, level LevelEnabler) (Core, error) {
35
- for l := _maxLevel; l >= _minLevel; l-- {
36
- if !core.Enabled(l) && level.Enabled(l) {
37
- return nil, fmt.Errorf("invalid increase level, as level %q is allowed by increased level, but not by existing core", l)
38
- }
39
- }
40
-
41
- return &levelFilterCore{core, level}, nil
42
- }
43
-
44
- func (c *levelFilterCore) Enabled(lvl Level) bool {
45
- return c.level.Enabled(lvl)
46
- }
47
-
48
- func (c *levelFilterCore) With(fields []Field) Core {
49
- return &levelFilterCore{c.core.With(fields), c.level}
50
- }
51
-
52
- func (c *levelFilterCore) Check(ent Entry, ce *CheckedEntry) *CheckedEntry {
53
- if !c.Enabled(ent.Level) {
54
- return ce
55
- }
56
-
57
- return c.core.Check(ent, ce)
58
- }
59
-
60
- func (c *levelFilterCore) Write(ent Entry, fields []Field) error {
61
- return c.core.Write(ent, fields)
62
- }
63
-
64
- func (c *levelFilterCore) Sync() error {
65
- return c.core.Sync()
66
- }
@@ -1,534 +0,0 @@
1
- // Copyright (c) 2016 Uber Technologies, Inc.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to deal
5
- // in the Software without restriction, including without limitation the rights
6
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- // copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- // THE SOFTWARE.
20
-
21
- package zapcore
22
-
23
- import (
24
- "encoding/base64"
25
- "encoding/json"
26
- "math"
27
- "sync"
28
- "time"
29
- "unicode/utf8"
30
-
31
- "go.uber.org/zap/buffer"
32
- "go.uber.org/zap/internal/bufferpool"
33
- )
34
-
35
- // For JSON-escaping; see jsonEncoder.safeAddString below.
36
- const _hex = "0123456789abcdef"
37
-
38
- var _jsonPool = sync.Pool{New: func() interface{} {
39
- return &jsonEncoder{}
40
- }}
41
-
42
- func getJSONEncoder() *jsonEncoder {
43
- return _jsonPool.Get().(*jsonEncoder)
44
- }
45
-
46
- func putJSONEncoder(enc *jsonEncoder) {
47
- if enc.reflectBuf != nil {
48
- enc.reflectBuf.Free()
49
- }
50
- enc.EncoderConfig = nil
51
- enc.buf = nil
52
- enc.spaced = false
53
- enc.openNamespaces = 0
54
- enc.reflectBuf = nil
55
- enc.reflectEnc = nil
56
- _jsonPool.Put(enc)
57
- }
58
-
59
- type jsonEncoder struct {
60
- *EncoderConfig
61
- buf *buffer.Buffer
62
- spaced bool // include spaces after colons and commas
63
- openNamespaces int
64
-
65
- // for encoding generic values by reflection
66
- reflectBuf *buffer.Buffer
67
- reflectEnc *json.Encoder
68
- }
69
-
70
- // NewJSONEncoder creates a fast, low-allocation JSON encoder. The encoder
71
- // appropriately escapes all field keys and values.
72
- //
73
- // Note that the encoder doesn't deduplicate keys, so it's possible to produce
74
- // a message like
75
- // {"foo":"bar","foo":"baz"}
76
- // This is permitted by the JSON specification, but not encouraged. Many
77
- // libraries will ignore duplicate key-value pairs (typically keeping the last
78
- // pair) when unmarshaling, but users should attempt to avoid adding duplicate
79
- // keys.
80
- func NewJSONEncoder(cfg EncoderConfig) Encoder {
81
- return newJSONEncoder(cfg, false)
82
- }
83
-
84
- func newJSONEncoder(cfg EncoderConfig, spaced bool) *jsonEncoder {
85
- return &jsonEncoder{
86
- EncoderConfig: &cfg,
87
- buf: bufferpool.Get(),
88
- spaced: spaced,
89
- }
90
- }
91
-
92
- func (enc *jsonEncoder) AddArray(key string, arr ArrayMarshaler) error {
93
- enc.addKey(key)
94
- return enc.AppendArray(arr)
95
- }
96
-
97
- func (enc *jsonEncoder) AddObject(key string, obj ObjectMarshaler) error {
98
- enc.addKey(key)
99
- return enc.AppendObject(obj)
100
- }
101
-
102
- func (enc *jsonEncoder) AddBinary(key string, val []byte) {
103
- enc.AddString(key, base64.StdEncoding.EncodeToString(val))
104
- }
105
-
106
- func (enc *jsonEncoder) AddByteString(key string, val []byte) {
107
- enc.addKey(key)
108
- enc.AppendByteString(val)
109
- }
110
-
111
- func (enc *jsonEncoder) AddBool(key string, val bool) {
112
- enc.addKey(key)
113
- enc.AppendBool(val)
114
- }
115
-
116
- func (enc *jsonEncoder) AddComplex128(key string, val complex128) {
117
- enc.addKey(key)
118
- enc.AppendComplex128(val)
119
- }
120
-
121
- func (enc *jsonEncoder) AddDuration(key string, val time.Duration) {
122
- enc.addKey(key)
123
- enc.AppendDuration(val)
124
- }
125
-
126
- func (enc *jsonEncoder) AddFloat64(key string, val float64) {
127
- enc.addKey(key)
128
- enc.AppendFloat64(val)
129
- }
130
-
131
- func (enc *jsonEncoder) AddInt64(key string, val int64) {
132
- enc.addKey(key)
133
- enc.AppendInt64(val)
134
- }
135
-
136
- func (enc *jsonEncoder) resetReflectBuf() {
137
- if enc.reflectBuf == nil {
138
- enc.reflectBuf = bufferpool.Get()
139
- enc.reflectEnc = json.NewEncoder(enc.reflectBuf)
140
-
141
- // For consistency with our custom JSON encoder.
142
- enc.reflectEnc.SetEscapeHTML(false)
143
- } else {
144
- enc.reflectBuf.Reset()
145
- }
146
- }
147
-
148
- var nullLiteralBytes = []byte("null")
149
-
150
- // Only invoke the standard JSON encoder if there is actually something to
151
- // encode; otherwise write JSON null literal directly.
152
- func (enc *jsonEncoder) encodeReflected(obj interface{}) ([]byte, error) {
153
- if obj == nil {
154
- return nullLiteralBytes, nil
155
- }
156
- enc.resetReflectBuf()
157
- if err := enc.reflectEnc.Encode(obj); err != nil {
158
- return nil, err
159
- }
160
- enc.reflectBuf.TrimNewline()
161
- return enc.reflectBuf.Bytes(), nil
162
- }
163
-
164
- func (enc *jsonEncoder) AddReflected(key string, obj interface{}) error {
165
- valueBytes, err := enc.encodeReflected(obj)
166
- if err != nil {
167
- return err
168
- }
169
- enc.addKey(key)
170
- _, err = enc.buf.Write(valueBytes)
171
- return err
172
- }
173
-
174
- func (enc *jsonEncoder) OpenNamespace(key string) {
175
- enc.addKey(key)
176
- enc.buf.AppendByte('{')
177
- enc.openNamespaces++
178
- }
179
-
180
- func (enc *jsonEncoder) AddString(key, val string) {
181
- enc.addKey(key)
182
- enc.AppendString(val)
183
- }
184
-
185
- func (enc *jsonEncoder) AddTime(key string, val time.Time) {
186
- enc.addKey(key)
187
- enc.AppendTime(val)
188
- }
189
-
190
- func (enc *jsonEncoder) AddUint64(key string, val uint64) {
191
- enc.addKey(key)
192
- enc.AppendUint64(val)
193
- }
194
-
195
- func (enc *jsonEncoder) AppendArray(arr ArrayMarshaler) error {
196
- enc.addElementSeparator()
197
- enc.buf.AppendByte('[')
198
- err := arr.MarshalLogArray(enc)
199
- enc.buf.AppendByte(']')
200
- return err
201
- }
202
-
203
- func (enc *jsonEncoder) AppendObject(obj ObjectMarshaler) error {
204
- enc.addElementSeparator()
205
- enc.buf.AppendByte('{')
206
- err := obj.MarshalLogObject(enc)
207
- enc.buf.AppendByte('}')
208
- return err
209
- }
210
-
211
- func (enc *jsonEncoder) AppendBool(val bool) {
212
- enc.addElementSeparator()
213
- enc.buf.AppendBool(val)
214
- }
215
-
216
- func (enc *jsonEncoder) AppendByteString(val []byte) {
217
- enc.addElementSeparator()
218
- enc.buf.AppendByte('"')
219
- enc.safeAddByteString(val)
220
- enc.buf.AppendByte('"')
221
- }
222
-
223
- func (enc *jsonEncoder) AppendComplex128(val complex128) {
224
- enc.addElementSeparator()
225
- // Cast to a platform-independent, fixed-size type.
226
- r, i := float64(real(val)), float64(imag(val))
227
- enc.buf.AppendByte('"')
228
- // Because we're always in a quoted string, we can use strconv without
229
- // special-casing NaN and +/-Inf.
230
- enc.buf.AppendFloat(r, 64)
231
- enc.buf.AppendByte('+')
232
- enc.buf.AppendFloat(i, 64)
233
- enc.buf.AppendByte('i')
234
- enc.buf.AppendByte('"')
235
- }
236
-
237
- func (enc *jsonEncoder) AppendDuration(val time.Duration) {
238
- cur := enc.buf.Len()
239
- if e := enc.EncodeDuration; e != nil {
240
- e(val, enc)
241
- }
242
- if cur == enc.buf.Len() {
243
- // User-supplied EncodeDuration is a no-op. Fall back to nanoseconds to keep
244
- // JSON valid.
245
- enc.AppendInt64(int64(val))
246
- }
247
- }
248
-
249
- func (enc *jsonEncoder) AppendInt64(val int64) {
250
- enc.addElementSeparator()
251
- enc.buf.AppendInt(val)
252
- }
253
-
254
- func (enc *jsonEncoder) AppendReflected(val interface{}) error {
255
- valueBytes, err := enc.encodeReflected(val)
256
- if err != nil {
257
- return err
258
- }
259
- enc.addElementSeparator()
260
- _, err = enc.buf.Write(valueBytes)
261
- return err
262
- }
263
-
264
- func (enc *jsonEncoder) AppendString(val string) {
265
- enc.addElementSeparator()
266
- enc.buf.AppendByte('"')
267
- enc.safeAddString(val)
268
- enc.buf.AppendByte('"')
269
- }
270
-
271
- func (enc *jsonEncoder) AppendTimeLayout(time time.Time, layout string) {
272
- enc.addElementSeparator()
273
- enc.buf.AppendByte('"')
274
- enc.buf.AppendTime(time, layout)
275
- enc.buf.AppendByte('"')
276
- }
277
-
278
- func (enc *jsonEncoder) AppendTime(val time.Time) {
279
- cur := enc.buf.Len()
280
- if e := enc.EncodeTime; e != nil {
281
- e(val, enc)
282
- }
283
- if cur == enc.buf.Len() {
284
- // User-supplied EncodeTime is a no-op. Fall back to nanos since epoch to keep
285
- // output JSON valid.
286
- enc.AppendInt64(val.UnixNano())
287
- }
288
- }
289
-
290
- func (enc *jsonEncoder) AppendUint64(val uint64) {
291
- enc.addElementSeparator()
292
- enc.buf.AppendUint(val)
293
- }
294
-
295
- func (enc *jsonEncoder) AddComplex64(k string, v complex64) { enc.AddComplex128(k, complex128(v)) }
296
- func (enc *jsonEncoder) AddFloat32(k string, v float32) { enc.AddFloat64(k, float64(v)) }
297
- func (enc *jsonEncoder) AddInt(k string, v int) { enc.AddInt64(k, int64(v)) }
298
- func (enc *jsonEncoder) AddInt32(k string, v int32) { enc.AddInt64(k, int64(v)) }
299
- func (enc *jsonEncoder) AddInt16(k string, v int16) { enc.AddInt64(k, int64(v)) }
300
- func (enc *jsonEncoder) AddInt8(k string, v int8) { enc.AddInt64(k, int64(v)) }
301
- func (enc *jsonEncoder) AddUint(k string, v uint) { enc.AddUint64(k, uint64(v)) }
302
- func (enc *jsonEncoder) AddUint32(k string, v uint32) { enc.AddUint64(k, uint64(v)) }
303
- func (enc *jsonEncoder) AddUint16(k string, v uint16) { enc.AddUint64(k, uint64(v)) }
304
- func (enc *jsonEncoder) AddUint8(k string, v uint8) { enc.AddUint64(k, uint64(v)) }
305
- func (enc *jsonEncoder) AddUintptr(k string, v uintptr) { enc.AddUint64(k, uint64(v)) }
306
- func (enc *jsonEncoder) AppendComplex64(v complex64) { enc.AppendComplex128(complex128(v)) }
307
- func (enc *jsonEncoder) AppendFloat64(v float64) { enc.appendFloat(v, 64) }
308
- func (enc *jsonEncoder) AppendFloat32(v float32) { enc.appendFloat(float64(v), 32) }
309
- func (enc *jsonEncoder) AppendInt(v int) { enc.AppendInt64(int64(v)) }
310
- func (enc *jsonEncoder) AppendInt32(v int32) { enc.AppendInt64(int64(v)) }
311
- func (enc *jsonEncoder) AppendInt16(v int16) { enc.AppendInt64(int64(v)) }
312
- func (enc *jsonEncoder) AppendInt8(v int8) { enc.AppendInt64(int64(v)) }
313
- func (enc *jsonEncoder) AppendUint(v uint) { enc.AppendUint64(uint64(v)) }
314
- func (enc *jsonEncoder) AppendUint32(v uint32) { enc.AppendUint64(uint64(v)) }
315
- func (enc *jsonEncoder) AppendUint16(v uint16) { enc.AppendUint64(uint64(v)) }
316
- func (enc *jsonEncoder) AppendUint8(v uint8) { enc.AppendUint64(uint64(v)) }
317
- func (enc *jsonEncoder) AppendUintptr(v uintptr) { enc.AppendUint64(uint64(v)) }
318
-
319
- func (enc *jsonEncoder) Clone() Encoder {
320
- clone := enc.clone()
321
- clone.buf.Write(enc.buf.Bytes())
322
- return clone
323
- }
324
-
325
- func (enc *jsonEncoder) clone() *jsonEncoder {
326
- clone := getJSONEncoder()
327
- clone.EncoderConfig = enc.EncoderConfig
328
- clone.spaced = enc.spaced
329
- clone.openNamespaces = enc.openNamespaces
330
- clone.buf = bufferpool.Get()
331
- return clone
332
- }
333
-
334
- func (enc *jsonEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer, error) {
335
- final := enc.clone()
336
- final.buf.AppendByte('{')
337
-
338
- if final.LevelKey != "" {
339
- final.addKey(final.LevelKey)
340
- cur := final.buf.Len()
341
- final.EncodeLevel(ent.Level, final)
342
- if cur == final.buf.Len() {
343
- // User-supplied EncodeLevel was a no-op. Fall back to strings to keep
344
- // output JSON valid.
345
- final.AppendString(ent.Level.String())
346
- }
347
- }
348
- if final.TimeKey != "" {
349
- final.AddTime(final.TimeKey, ent.Time)
350
- }
351
- if ent.LoggerName != "" && final.NameKey != "" {
352
- final.addKey(final.NameKey)
353
- cur := final.buf.Len()
354
- nameEncoder := final.EncodeName
355
-
356
- // if no name encoder provided, fall back to FullNameEncoder for backwards
357
- // compatibility
358
- if nameEncoder == nil {
359
- nameEncoder = FullNameEncoder
360
- }
361
-
362
- nameEncoder(ent.LoggerName, final)
363
- if cur == final.buf.Len() {
364
- // User-supplied EncodeName was a no-op. Fall back to strings to
365
- // keep output JSON valid.
366
- final.AppendString(ent.LoggerName)
367
- }
368
- }
369
- if ent.Caller.Defined {
370
- if final.CallerKey != "" {
371
- final.addKey(final.CallerKey)
372
- cur := final.buf.Len()
373
- final.EncodeCaller(ent.Caller, final)
374
- if cur == final.buf.Len() {
375
- // User-supplied EncodeCaller was a no-op. Fall back to strings to
376
- // keep output JSON valid.
377
- final.AppendString(ent.Caller.String())
378
- }
379
- }
380
- if final.FunctionKey != "" {
381
- final.addKey(final.FunctionKey)
382
- final.AppendString(ent.Caller.Function)
383
- }
384
- }
385
- if final.MessageKey != "" {
386
- final.addKey(enc.MessageKey)
387
- final.AppendString(ent.Message)
388
- }
389
- if enc.buf.Len() > 0 {
390
- final.addElementSeparator()
391
- final.buf.Write(enc.buf.Bytes())
392
- }
393
- addFields(final, fields)
394
- final.closeOpenNamespaces()
395
- if ent.Stack != "" && final.StacktraceKey != "" {
396
- final.AddString(final.StacktraceKey, ent.Stack)
397
- }
398
- final.buf.AppendByte('}')
399
- if final.LineEnding != "" {
400
- final.buf.AppendString(final.LineEnding)
401
- } else {
402
- final.buf.AppendString(DefaultLineEnding)
403
- }
404
-
405
- ret := final.buf
406
- putJSONEncoder(final)
407
- return ret, nil
408
- }
409
-
410
- func (enc *jsonEncoder) truncate() {
411
- enc.buf.Reset()
412
- }
413
-
414
- func (enc *jsonEncoder) closeOpenNamespaces() {
415
- for i := 0; i < enc.openNamespaces; i++ {
416
- enc.buf.AppendByte('}')
417
- }
418
- }
419
-
420
- func (enc *jsonEncoder) addKey(key string) {
421
- enc.addElementSeparator()
422
- enc.buf.AppendByte('"')
423
- enc.safeAddString(key)
424
- enc.buf.AppendByte('"')
425
- enc.buf.AppendByte(':')
426
- if enc.spaced {
427
- enc.buf.AppendByte(' ')
428
- }
429
- }
430
-
431
- func (enc *jsonEncoder) addElementSeparator() {
432
- last := enc.buf.Len() - 1
433
- if last < 0 {
434
- return
435
- }
436
- switch enc.buf.Bytes()[last] {
437
- case '{', '[', ':', ',', ' ':
438
- return
439
- default:
440
- enc.buf.AppendByte(',')
441
- if enc.spaced {
442
- enc.buf.AppendByte(' ')
443
- }
444
- }
445
- }
446
-
447
- func (enc *jsonEncoder) appendFloat(val float64, bitSize int) {
448
- enc.addElementSeparator()
449
- switch {
450
- case math.IsNaN(val):
451
- enc.buf.AppendString(`"NaN"`)
452
- case math.IsInf(val, 1):
453
- enc.buf.AppendString(`"+Inf"`)
454
- case math.IsInf(val, -1):
455
- enc.buf.AppendString(`"-Inf"`)
456
- default:
457
- enc.buf.AppendFloat(val, bitSize)
458
- }
459
- }
460
-
461
- // safeAddString JSON-escapes a string and appends it to the internal buffer.
462
- // Unlike the standard library's encoder, it doesn't attempt to protect the
463
- // user from browser vulnerabilities or JSONP-related problems.
464
- func (enc *jsonEncoder) safeAddString(s string) {
465
- for i := 0; i < len(s); {
466
- if enc.tryAddRuneSelf(s[i]) {
467
- i++
468
- continue
469
- }
470
- r, size := utf8.DecodeRuneInString(s[i:])
471
- if enc.tryAddRuneError(r, size) {
472
- i++
473
- continue
474
- }
475
- enc.buf.AppendString(s[i : i+size])
476
- i += size
477
- }
478
- }
479
-
480
- // safeAddByteString is no-alloc equivalent of safeAddString(string(s)) for s []byte.
481
- func (enc *jsonEncoder) safeAddByteString(s []byte) {
482
- for i := 0; i < len(s); {
483
- if enc.tryAddRuneSelf(s[i]) {
484
- i++
485
- continue
486
- }
487
- r, size := utf8.DecodeRune(s[i:])
488
- if enc.tryAddRuneError(r, size) {
489
- i++
490
- continue
491
- }
492
- enc.buf.Write(s[i : i+size])
493
- i += size
494
- }
495
- }
496
-
497
- // tryAddRuneSelf appends b if it is valid UTF-8 character represented in a single byte.
498
- func (enc *jsonEncoder) tryAddRuneSelf(b byte) bool {
499
- if b >= utf8.RuneSelf {
500
- return false
501
- }
502
- if 0x20 <= b && b != '\\' && b != '"' {
503
- enc.buf.AppendByte(b)
504
- return true
505
- }
506
- switch b {
507
- case '\\', '"':
508
- enc.buf.AppendByte('\\')
509
- enc.buf.AppendByte(b)
510
- case '\n':
511
- enc.buf.AppendByte('\\')
512
- enc.buf.AppendByte('n')
513
- case '\r':
514
- enc.buf.AppendByte('\\')
515
- enc.buf.AppendByte('r')
516
- case '\t':
517
- enc.buf.AppendByte('\\')
518
- enc.buf.AppendByte('t')
519
- default:
520
- // Encode bytes < 0x20, except for the escape sequences above.
521
- enc.buf.AppendString(`\u00`)
522
- enc.buf.AppendByte(_hex[b>>4])
523
- enc.buf.AppendByte(_hex[b&0xF])
524
- }
525
- return true
526
- }
527
-
528
- func (enc *jsonEncoder) tryAddRuneError(r rune, size int) bool {
529
- if r == utf8.RuneError && size == 1 {
530
- enc.buf.AppendString(`\ufffd`)
531
- return true
532
- }
533
- return false
534
- }