planetscale 0.3.1 → 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 (368) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +9 -1
  3. data/.github/workflows/gem-push.yml +9 -2
  4. data/.licenses/go/github.com/matoous/go-nanoid/v2.dep.yml +34 -0
  5. data/.licenses/go/github.com/planetscale/planetscale-go/planetscale.dep.yml +1 -1
  6. data/.licenses/go/github.com/planetscale/sql-proxy/proxy.dep.yml +1 -1
  7. data/.licenses/go/go.uber.org/zap/buffer.dep.yml +1 -1
  8. data/.licenses/go/go.uber.org/zap/internal/bufferpool.dep.yml +1 -1
  9. data/.licenses/go/go.uber.org/zap/internal/color.dep.yml +1 -1
  10. data/.licenses/go/go.uber.org/zap/internal/exit.dep.yml +1 -1
  11. data/.licenses/go/go.uber.org/zap/zapcore.dep.yml +1 -1
  12. data/.licenses/go/go.uber.org/zap.dep.yml +1 -1
  13. data/README.md +2 -0
  14. data/controller.go +21 -36
  15. data/go.mod +4 -3
  16. data/go.sum +32 -18
  17. data/lib/planetscale/version.rb +1 -1
  18. data/lib/planetscale.rb +2 -3
  19. data/planetscale.gemspec +1 -1
  20. data/proxy/planetscale-darwin.h +1 -1
  21. data/proxy/planetscale-darwin.so +0 -0
  22. data/proxy/planetscale-linux.h +1 -1
  23. data/proxy/planetscale-linux.so +0 -0
  24. data/proxy.go +1 -5
  25. metadata +3 -345
  26. data/vendor/github.com/armon/circbuf/.gitignore +0 -22
  27. data/vendor/github.com/armon/circbuf/LICENSE +0 -20
  28. data/vendor/github.com/armon/circbuf/README.md +0 -28
  29. data/vendor/github.com/armon/circbuf/circbuf.go +0 -92
  30. data/vendor/github.com/armon/circbuf/go.mod +0 -1
  31. data/vendor/github.com/golang/protobuf/AUTHORS +0 -3
  32. data/vendor/github.com/golang/protobuf/CONTRIBUTORS +0 -3
  33. data/vendor/github.com/golang/protobuf/LICENSE +0 -28
  34. data/vendor/github.com/golang/protobuf/proto/buffer.go +0 -324
  35. data/vendor/github.com/golang/protobuf/proto/defaults.go +0 -63
  36. data/vendor/github.com/golang/protobuf/proto/deprecated.go +0 -113
  37. data/vendor/github.com/golang/protobuf/proto/discard.go +0 -58
  38. data/vendor/github.com/golang/protobuf/proto/extensions.go +0 -356
  39. data/vendor/github.com/golang/protobuf/proto/properties.go +0 -306
  40. data/vendor/github.com/golang/protobuf/proto/proto.go +0 -167
  41. data/vendor/github.com/golang/protobuf/proto/registry.go +0 -317
  42. data/vendor/github.com/golang/protobuf/proto/text_decode.go +0 -801
  43. data/vendor/github.com/golang/protobuf/proto/text_encode.go +0 -560
  44. data/vendor/github.com/golang/protobuf/proto/wire.go +0 -78
  45. data/vendor/github.com/golang/protobuf/proto/wrappers.go +0 -34
  46. data/vendor/github.com/gorilla/mux/AUTHORS +0 -8
  47. data/vendor/github.com/gorilla/mux/LICENSE +0 -27
  48. data/vendor/github.com/gorilla/mux/README.md +0 -805
  49. data/vendor/github.com/gorilla/mux/doc.go +0 -306
  50. data/vendor/github.com/gorilla/mux/go.mod +0 -3
  51. data/vendor/github.com/gorilla/mux/middleware.go +0 -74
  52. data/vendor/github.com/gorilla/mux/mux.go +0 -606
  53. data/vendor/github.com/gorilla/mux/regexp.go +0 -388
  54. data/vendor/github.com/gorilla/mux/route.go +0 -736
  55. data/vendor/github.com/gorilla/mux/test_helpers.go +0 -19
  56. data/vendor/github.com/hashicorp/go-cleanhttp/LICENSE +0 -363
  57. data/vendor/github.com/hashicorp/go-cleanhttp/README.md +0 -30
  58. data/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +0 -58
  59. data/vendor/github.com/hashicorp/go-cleanhttp/doc.go +0 -20
  60. data/vendor/github.com/hashicorp/go-cleanhttp/go.mod +0 -3
  61. data/vendor/github.com/hashicorp/go-cleanhttp/handlers.go +0 -48
  62. data/vendor/github.com/mitchellh/go-homedir/LICENSE +0 -21
  63. data/vendor/github.com/mitchellh/go-homedir/README.md +0 -14
  64. data/vendor/github.com/mitchellh/go-homedir/go.mod +0 -1
  65. data/vendor/github.com/mitchellh/go-homedir/homedir.go +0 -167
  66. data/vendor/github.com/pkg/errors/.gitignore +0 -24
  67. data/vendor/github.com/pkg/errors/.travis.yml +0 -10
  68. data/vendor/github.com/pkg/errors/LICENSE +0 -23
  69. data/vendor/github.com/pkg/errors/Makefile +0 -44
  70. data/vendor/github.com/pkg/errors/README.md +0 -59
  71. data/vendor/github.com/pkg/errors/appveyor.yml +0 -32
  72. data/vendor/github.com/pkg/errors/errors.go +0 -288
  73. data/vendor/github.com/pkg/errors/go113.go +0 -38
  74. data/vendor/github.com/pkg/errors/stack.go +0 -177
  75. data/vendor/github.com/planetscale/planetscale-go/LICENSE +0 -202
  76. data/vendor/github.com/planetscale/planetscale-go/planetscale/audit_logs.go +0 -136
  77. data/vendor/github.com/planetscale/planetscale-go/planetscale/backups.go +0 -139
  78. data/vendor/github.com/planetscale/planetscale-go/planetscale/branches.go +0 -252
  79. data/vendor/github.com/planetscale/planetscale-go/planetscale/certs.go +0 -166
  80. data/vendor/github.com/planetscale/planetscale-go/planetscale/client.go +0 -312
  81. data/vendor/github.com/planetscale/planetscale-go/planetscale/databases.go +0 -133
  82. data/vendor/github.com/planetscale/planetscale-go/planetscale/deploy_requests.go +0 -368
  83. data/vendor/github.com/planetscale/planetscale-go/planetscale/organizations.go +0 -103
  84. data/vendor/github.com/planetscale/planetscale-go/planetscale/regions.go +0 -52
  85. data/vendor/github.com/planetscale/planetscale-go/planetscale/service_tokens.go +0 -163
  86. data/vendor/github.com/planetscale/sql-proxy/LICENSE +0 -202
  87. data/vendor/github.com/planetscale/sql-proxy/proxy/client.go +0 -476
  88. data/vendor/github.com/planetscale/sql-proxy/proxy/tls_cache.go +0 -73
  89. data/vendor/go.uber.org/atomic/.codecov.yml +0 -19
  90. data/vendor/go.uber.org/atomic/.gitignore +0 -12
  91. data/vendor/go.uber.org/atomic/.travis.yml +0 -27
  92. data/vendor/go.uber.org/atomic/CHANGELOG.md +0 -76
  93. data/vendor/go.uber.org/atomic/LICENSE.txt +0 -19
  94. data/vendor/go.uber.org/atomic/Makefile +0 -78
  95. data/vendor/go.uber.org/atomic/README.md +0 -63
  96. data/vendor/go.uber.org/atomic/bool.go +0 -81
  97. data/vendor/go.uber.org/atomic/bool_ext.go +0 -53
  98. data/vendor/go.uber.org/atomic/doc.go +0 -23
  99. data/vendor/go.uber.org/atomic/duration.go +0 -82
  100. data/vendor/go.uber.org/atomic/duration_ext.go +0 -40
  101. data/vendor/go.uber.org/atomic/error.go +0 -51
  102. data/vendor/go.uber.org/atomic/error_ext.go +0 -39
  103. data/vendor/go.uber.org/atomic/float64.go +0 -76
  104. data/vendor/go.uber.org/atomic/float64_ext.go +0 -47
  105. data/vendor/go.uber.org/atomic/gen.go +0 -26
  106. data/vendor/go.uber.org/atomic/go.mod +0 -8
  107. data/vendor/go.uber.org/atomic/go.sum +0 -9
  108. data/vendor/go.uber.org/atomic/int32.go +0 -102
  109. data/vendor/go.uber.org/atomic/int64.go +0 -102
  110. data/vendor/go.uber.org/atomic/nocmp.go +0 -35
  111. data/vendor/go.uber.org/atomic/string.go +0 -54
  112. data/vendor/go.uber.org/atomic/string_ext.go +0 -43
  113. data/vendor/go.uber.org/atomic/uint32.go +0 -102
  114. data/vendor/go.uber.org/atomic/uint64.go +0 -102
  115. data/vendor/go.uber.org/atomic/value.go +0 -31
  116. data/vendor/go.uber.org/multierr/.codecov.yml +0 -15
  117. data/vendor/go.uber.org/multierr/.gitignore +0 -4
  118. data/vendor/go.uber.org/multierr/.travis.yml +0 -23
  119. data/vendor/go.uber.org/multierr/CHANGELOG.md +0 -60
  120. data/vendor/go.uber.org/multierr/LICENSE.txt +0 -19
  121. data/vendor/go.uber.org/multierr/Makefile +0 -42
  122. data/vendor/go.uber.org/multierr/README.md +0 -23
  123. data/vendor/go.uber.org/multierr/error.go +0 -449
  124. data/vendor/go.uber.org/multierr/glide.yaml +0 -8
  125. data/vendor/go.uber.org/multierr/go.mod +0 -8
  126. data/vendor/go.uber.org/multierr/go.sum +0 -11
  127. data/vendor/go.uber.org/multierr/go113.go +0 -52
  128. data/vendor/go.uber.org/zap/.codecov.yml +0 -17
  129. data/vendor/go.uber.org/zap/.gitignore +0 -32
  130. data/vendor/go.uber.org/zap/.readme.tmpl +0 -109
  131. data/vendor/go.uber.org/zap/CHANGELOG.md +0 -492
  132. data/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +0 -75
  133. data/vendor/go.uber.org/zap/CONTRIBUTING.md +0 -75
  134. data/vendor/go.uber.org/zap/FAQ.md +0 -164
  135. data/vendor/go.uber.org/zap/LICENSE.txt +0 -19
  136. data/vendor/go.uber.org/zap/Makefile +0 -73
  137. data/vendor/go.uber.org/zap/README.md +0 -134
  138. data/vendor/go.uber.org/zap/array.go +0 -320
  139. data/vendor/go.uber.org/zap/buffer/buffer.go +0 -141
  140. data/vendor/go.uber.org/zap/buffer/pool.go +0 -49
  141. data/vendor/go.uber.org/zap/checklicense.sh +0 -17
  142. data/vendor/go.uber.org/zap/config.go +0 -264
  143. data/vendor/go.uber.org/zap/doc.go +0 -113
  144. data/vendor/go.uber.org/zap/encoder.go +0 -79
  145. data/vendor/go.uber.org/zap/error.go +0 -80
  146. data/vendor/go.uber.org/zap/field.go +0 -549
  147. data/vendor/go.uber.org/zap/flag.go +0 -39
  148. data/vendor/go.uber.org/zap/glide.yaml +0 -34
  149. data/vendor/go.uber.org/zap/global.go +0 -168
  150. data/vendor/go.uber.org/zap/global_go112.go +0 -26
  151. data/vendor/go.uber.org/zap/global_prego112.go +0 -26
  152. data/vendor/go.uber.org/zap/go.mod +0 -14
  153. data/vendor/go.uber.org/zap/go.sum +0 -54
  154. data/vendor/go.uber.org/zap/http_handler.go +0 -132
  155. data/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +0 -31
  156. data/vendor/go.uber.org/zap/internal/color/color.go +0 -44
  157. data/vendor/go.uber.org/zap/internal/exit/exit.go +0 -64
  158. data/vendor/go.uber.org/zap/level.go +0 -132
  159. data/vendor/go.uber.org/zap/logger.go +0 -348
  160. data/vendor/go.uber.org/zap/options.go +0 -148
  161. data/vendor/go.uber.org/zap/sink.go +0 -161
  162. data/vendor/go.uber.org/zap/stacktrace.go +0 -85
  163. data/vendor/go.uber.org/zap/sugar.go +0 -315
  164. data/vendor/go.uber.org/zap/time.go +0 -27
  165. data/vendor/go.uber.org/zap/writer.go +0 -99
  166. data/vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go +0 -188
  167. data/vendor/go.uber.org/zap/zapcore/clock.go +0 -50
  168. data/vendor/go.uber.org/zap/zapcore/console_encoder.go +0 -161
  169. data/vendor/go.uber.org/zap/zapcore/core.go +0 -113
  170. data/vendor/go.uber.org/zap/zapcore/doc.go +0 -24
  171. data/vendor/go.uber.org/zap/zapcore/encoder.go +0 -443
  172. data/vendor/go.uber.org/zap/zapcore/entry.go +0 -264
  173. data/vendor/go.uber.org/zap/zapcore/error.go +0 -132
  174. data/vendor/go.uber.org/zap/zapcore/field.go +0 -233
  175. data/vendor/go.uber.org/zap/zapcore/hook.go +0 -68
  176. data/vendor/go.uber.org/zap/zapcore/increase_level.go +0 -66
  177. data/vendor/go.uber.org/zap/zapcore/json_encoder.go +0 -534
  178. data/vendor/go.uber.org/zap/zapcore/level.go +0 -175
  179. data/vendor/go.uber.org/zap/zapcore/level_strings.go +0 -46
  180. data/vendor/go.uber.org/zap/zapcore/marshaler.go +0 -61
  181. data/vendor/go.uber.org/zap/zapcore/memory_encoder.go +0 -179
  182. data/vendor/go.uber.org/zap/zapcore/sampler.go +0 -208
  183. data/vendor/go.uber.org/zap/zapcore/tee.go +0 -81
  184. data/vendor/go.uber.org/zap/zapcore/write_syncer.go +0 -122
  185. data/vendor/golang.org/x/net/AUTHORS +0 -3
  186. data/vendor/golang.org/x/net/CONTRIBUTORS +0 -3
  187. data/vendor/golang.org/x/net/LICENSE +0 -27
  188. data/vendor/golang.org/x/net/PATENTS +0 -22
  189. data/vendor/golang.org/x/net/context/context.go +0 -56
  190. data/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +0 -71
  191. data/vendor/golang.org/x/net/context/go17.go +0 -73
  192. data/vendor/golang.org/x/net/context/go19.go +0 -21
  193. data/vendor/golang.org/x/net/context/pre_go17.go +0 -301
  194. data/vendor/golang.org/x/net/context/pre_go19.go +0 -110
  195. data/vendor/golang.org/x/oauth2/.travis.yml +0 -13
  196. data/vendor/golang.org/x/oauth2/AUTHORS +0 -3
  197. data/vendor/golang.org/x/oauth2/CONTRIBUTING.md +0 -26
  198. data/vendor/golang.org/x/oauth2/CONTRIBUTORS +0 -3
  199. data/vendor/golang.org/x/oauth2/LICENSE +0 -27
  200. data/vendor/golang.org/x/oauth2/README.md +0 -36
  201. data/vendor/golang.org/x/oauth2/go.mod +0 -9
  202. data/vendor/golang.org/x/oauth2/go.sum +0 -361
  203. data/vendor/golang.org/x/oauth2/internal/client_appengine.go +0 -14
  204. data/vendor/golang.org/x/oauth2/internal/doc.go +0 -6
  205. data/vendor/golang.org/x/oauth2/internal/oauth2.go +0 -37
  206. data/vendor/golang.org/x/oauth2/internal/token.go +0 -294
  207. data/vendor/golang.org/x/oauth2/internal/transport.go +0 -33
  208. data/vendor/golang.org/x/oauth2/oauth2.go +0 -381
  209. data/vendor/golang.org/x/oauth2/token.go +0 -178
  210. data/vendor/golang.org/x/oauth2/transport.go +0 -89
  211. data/vendor/google.golang.org/appengine/LICENSE +0 -202
  212. data/vendor/google.golang.org/appengine/internal/api.go +0 -678
  213. data/vendor/google.golang.org/appengine/internal/api_classic.go +0 -169
  214. data/vendor/google.golang.org/appengine/internal/api_common.go +0 -123
  215. data/vendor/google.golang.org/appengine/internal/app_id.go +0 -28
  216. data/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +0 -308
  217. data/vendor/google.golang.org/appengine/internal/base/api_base.proto +0 -33
  218. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +0 -4367
  219. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +0 -551
  220. data/vendor/google.golang.org/appengine/internal/identity.go +0 -55
  221. data/vendor/google.golang.org/appengine/internal/identity_classic.go +0 -61
  222. data/vendor/google.golang.org/appengine/internal/identity_flex.go +0 -11
  223. data/vendor/google.golang.org/appengine/internal/identity_vm.go +0 -134
  224. data/vendor/google.golang.org/appengine/internal/internal.go +0 -110
  225. data/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +0 -1313
  226. data/vendor/google.golang.org/appengine/internal/log/log_service.proto +0 -150
  227. data/vendor/google.golang.org/appengine/internal/main.go +0 -16
  228. data/vendor/google.golang.org/appengine/internal/main_common.go +0 -7
  229. data/vendor/google.golang.org/appengine/internal/main_vm.go +0 -69
  230. data/vendor/google.golang.org/appengine/internal/metadata.go +0 -60
  231. data/vendor/google.golang.org/appengine/internal/net.go +0 -56
  232. data/vendor/google.golang.org/appengine/internal/regen.sh +0 -40
  233. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +0 -361
  234. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +0 -44
  235. data/vendor/google.golang.org/appengine/internal/transaction.go +0 -115
  236. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +0 -527
  237. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +0 -64
  238. data/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +0 -210
  239. data/vendor/google.golang.org/protobuf/AUTHORS +0 -3
  240. data/vendor/google.golang.org/protobuf/CONTRIBUTORS +0 -3
  241. data/vendor/google.golang.org/protobuf/LICENSE +0 -27
  242. data/vendor/google.golang.org/protobuf/PATENTS +0 -22
  243. data/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +0 -773
  244. data/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +0 -7
  245. data/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +0 -371
  246. data/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +0 -538
  247. data/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +0 -318
  248. data/vendor/google.golang.org/protobuf/internal/descopts/options.go +0 -29
  249. data/vendor/google.golang.org/protobuf/internal/detrand/rand.go +0 -69
  250. data/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +0 -213
  251. data/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +0 -241
  252. data/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +0 -207
  253. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +0 -665
  254. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +0 -190
  255. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +0 -161
  256. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +0 -373
  257. data/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +0 -29
  258. data/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +0 -265
  259. data/vendor/google.golang.org/protobuf/internal/errors/errors.go +0 -89
  260. data/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +0 -39
  261. data/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +0 -12
  262. data/vendor/google.golang.org/protobuf/internal/filedesc/build.go +0 -158
  263. data/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +0 -631
  264. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +0 -471
  265. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +0 -704
  266. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +0 -450
  267. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +0 -356
  268. data/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +0 -107
  269. data/vendor/google.golang.org/protobuf/internal/filetype/build.go +0 -297
  270. data/vendor/google.golang.org/protobuf/internal/flags/flags.go +0 -24
  271. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +0 -9
  272. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +0 -9
  273. data/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +0 -34
  274. data/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +0 -106
  275. data/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +0 -829
  276. data/vendor/google.golang.org/protobuf/internal/genid/doc.go +0 -11
  277. data/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +0 -34
  278. data/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +0 -19
  279. data/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +0 -31
  280. data/vendor/google.golang.org/protobuf/internal/genid/goname.go +0 -25
  281. data/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +0 -16
  282. data/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +0 -31
  283. data/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +0 -116
  284. data/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +0 -34
  285. data/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +0 -184
  286. data/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +0 -13
  287. data/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +0 -175
  288. data/vendor/google.golang.org/protobuf/internal/impl/api_export.go +0 -177
  289. data/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +0 -141
  290. data/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +0 -223
  291. data/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +0 -830
  292. data/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +0 -5637
  293. data/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +0 -388
  294. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +0 -37
  295. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +0 -11
  296. data/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +0 -217
  297. data/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +0 -123
  298. data/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +0 -209
  299. data/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +0 -557
  300. data/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +0 -17
  301. data/vendor/google.golang.org/protobuf/internal/impl/convert.go +0 -496
  302. data/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +0 -141
  303. data/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +0 -121
  304. data/vendor/google.golang.org/protobuf/internal/impl/decode.go +0 -276
  305. data/vendor/google.golang.org/protobuf/internal/impl/encode.go +0 -201
  306. data/vendor/google.golang.org/protobuf/internal/impl/enum.go +0 -21
  307. data/vendor/google.golang.org/protobuf/internal/impl/extension.go +0 -156
  308. data/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +0 -219
  309. data/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +0 -92
  310. data/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +0 -176
  311. data/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +0 -81
  312. data/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +0 -558
  313. data/vendor/google.golang.org/protobuf/internal/impl/merge.go +0 -176
  314. data/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +0 -209
  315. data/vendor/google.golang.org/protobuf/internal/impl/message.go +0 -276
  316. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +0 -465
  317. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +0 -543
  318. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +0 -249
  319. data/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +0 -178
  320. data/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +0 -174
  321. data/vendor/google.golang.org/protobuf/internal/impl/validate.go +0 -576
  322. data/vendor/google.golang.org/protobuf/internal/impl/weak.go +0 -74
  323. data/vendor/google.golang.org/protobuf/internal/order/order.go +0 -89
  324. data/vendor/google.golang.org/protobuf/internal/order/range.go +0 -115
  325. data/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +0 -29
  326. data/vendor/google.golang.org/protobuf/internal/set/ints.go +0 -58
  327. data/vendor/google.golang.org/protobuf/internal/strs/strings.go +0 -196
  328. data/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +0 -27
  329. data/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +0 -94
  330. data/vendor/google.golang.org/protobuf/internal/version/version.go +0 -79
  331. data/vendor/google.golang.org/protobuf/proto/checkinit.go +0 -71
  332. data/vendor/google.golang.org/protobuf/proto/decode.go +0 -278
  333. data/vendor/google.golang.org/protobuf/proto/decode_gen.go +0 -603
  334. data/vendor/google.golang.org/protobuf/proto/doc.go +0 -94
  335. data/vendor/google.golang.org/protobuf/proto/encode.go +0 -319
  336. data/vendor/google.golang.org/protobuf/proto/encode_gen.go +0 -97
  337. data/vendor/google.golang.org/protobuf/proto/equal.go +0 -167
  338. data/vendor/google.golang.org/protobuf/proto/extension.go +0 -92
  339. data/vendor/google.golang.org/protobuf/proto/merge.go +0 -139
  340. data/vendor/google.golang.org/protobuf/proto/messageset.go +0 -93
  341. data/vendor/google.golang.org/protobuf/proto/proto.go +0 -43
  342. data/vendor/google.golang.org/protobuf/proto/proto_methods.go +0 -19
  343. data/vendor/google.golang.org/protobuf/proto/proto_reflect.go +0 -19
  344. data/vendor/google.golang.org/protobuf/proto/reset.go +0 -43
  345. data/vendor/google.golang.org/protobuf/proto/size.go +0 -97
  346. data/vendor/google.golang.org/protobuf/proto/size_gen.go +0 -55
  347. data/vendor/google.golang.org/protobuf/proto/wrappers.go +0 -29
  348. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +0 -276
  349. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +0 -248
  350. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +0 -286
  351. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +0 -374
  352. data/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +0 -252
  353. data/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +0 -77
  354. data/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +0 -504
  355. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +0 -128
  356. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +0 -461
  357. data/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +0 -665
  358. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +0 -285
  359. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +0 -59
  360. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +0 -411
  361. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +0 -98
  362. data/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +0 -869
  363. data/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +0 -15
  364. data/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +0 -167
  365. data/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +0 -44
  366. data/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +0 -56
  367. data/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +0 -4039
  368. data/vendor/modules.txt +0 -79
@@ -1,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
- }
@@ -1,175 +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
- "bytes"
25
- "errors"
26
- "fmt"
27
- )
28
-
29
- var errUnmarshalNilLevel = errors.New("can't unmarshal a nil *Level")
30
-
31
- // A Level is a logging priority. Higher levels are more important.
32
- type Level int8
33
-
34
- const (
35
- // DebugLevel logs are typically voluminous, and are usually disabled in
36
- // production.
37
- DebugLevel Level = iota - 1
38
- // InfoLevel is the default logging priority.
39
- InfoLevel
40
- // WarnLevel logs are more important than Info, but don't need individual
41
- // human review.
42
- WarnLevel
43
- // ErrorLevel logs are high-priority. If an application is running smoothly,
44
- // it shouldn't generate any error-level logs.
45
- ErrorLevel
46
- // DPanicLevel logs are particularly important errors. In development the
47
- // logger panics after writing the message.
48
- DPanicLevel
49
- // PanicLevel logs a message, then panics.
50
- PanicLevel
51
- // FatalLevel logs a message, then calls os.Exit(1).
52
- FatalLevel
53
-
54
- _minLevel = DebugLevel
55
- _maxLevel = FatalLevel
56
- )
57
-
58
- // String returns a lower-case ASCII representation of the log level.
59
- func (l Level) String() string {
60
- switch l {
61
- case DebugLevel:
62
- return "debug"
63
- case InfoLevel:
64
- return "info"
65
- case WarnLevel:
66
- return "warn"
67
- case ErrorLevel:
68
- return "error"
69
- case DPanicLevel:
70
- return "dpanic"
71
- case PanicLevel:
72
- return "panic"
73
- case FatalLevel:
74
- return "fatal"
75
- default:
76
- return fmt.Sprintf("Level(%d)", l)
77
- }
78
- }
79
-
80
- // CapitalString returns an all-caps ASCII representation of the log level.
81
- func (l Level) CapitalString() string {
82
- // Printing levels in all-caps is common enough that we should export this
83
- // functionality.
84
- switch l {
85
- case DebugLevel:
86
- return "DEBUG"
87
- case InfoLevel:
88
- return "INFO"
89
- case WarnLevel:
90
- return "WARN"
91
- case ErrorLevel:
92
- return "ERROR"
93
- case DPanicLevel:
94
- return "DPANIC"
95
- case PanicLevel:
96
- return "PANIC"
97
- case FatalLevel:
98
- return "FATAL"
99
- default:
100
- return fmt.Sprintf("LEVEL(%d)", l)
101
- }
102
- }
103
-
104
- // MarshalText marshals the Level to text. Note that the text representation
105
- // drops the -Level suffix (see example).
106
- func (l Level) MarshalText() ([]byte, error) {
107
- return []byte(l.String()), nil
108
- }
109
-
110
- // UnmarshalText unmarshals text to a level. Like MarshalText, UnmarshalText
111
- // expects the text representation of a Level to drop the -Level suffix (see
112
- // example).
113
- //
114
- // In particular, this makes it easy to configure logging levels using YAML,
115
- // TOML, or JSON files.
116
- func (l *Level) UnmarshalText(text []byte) error {
117
- if l == nil {
118
- return errUnmarshalNilLevel
119
- }
120
- if !l.unmarshalText(text) && !l.unmarshalText(bytes.ToLower(text)) {
121
- return fmt.Errorf("unrecognized level: %q", text)
122
- }
123
- return nil
124
- }
125
-
126
- func (l *Level) unmarshalText(text []byte) bool {
127
- switch string(text) {
128
- case "debug", "DEBUG":
129
- *l = DebugLevel
130
- case "info", "INFO", "": // make the zero value useful
131
- *l = InfoLevel
132
- case "warn", "WARN":
133
- *l = WarnLevel
134
- case "error", "ERROR":
135
- *l = ErrorLevel
136
- case "dpanic", "DPANIC":
137
- *l = DPanicLevel
138
- case "panic", "PANIC":
139
- *l = PanicLevel
140
- case "fatal", "FATAL":
141
- *l = FatalLevel
142
- default:
143
- return false
144
- }
145
- return true
146
- }
147
-
148
- // Set sets the level for the flag.Value interface.
149
- func (l *Level) Set(s string) error {
150
- return l.UnmarshalText([]byte(s))
151
- }
152
-
153
- // Get gets the level for the flag.Getter interface.
154
- func (l *Level) Get() interface{} {
155
- return *l
156
- }
157
-
158
- // Enabled returns true if the given level is at or above this level.
159
- func (l Level) Enabled(lvl Level) bool {
160
- return lvl >= l
161
- }
162
-
163
- // LevelEnabler decides whether a given logging level is enabled when logging a
164
- // message.
165
- //
166
- // Enablers are intended to be used to implement deterministic filters;
167
- // concerns like sampling are better implemented as a Core.
168
- //
169
- // Each concrete Level value implements a static LevelEnabler which returns
170
- // true for itself and all higher logging levels. For example WarnLevel.Enabled()
171
- // will return true for WarnLevel, ErrorLevel, DPanicLevel, PanicLevel, and
172
- // FatalLevel, but return false for InfoLevel and DebugLevel.
173
- type LevelEnabler interface {
174
- Enabled(Level) bool
175
- }