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,46 +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 "go.uber.org/zap/internal/color"
24
-
25
- var (
26
- _levelToColor = map[Level]color.Color{
27
- DebugLevel: color.Magenta,
28
- InfoLevel: color.Blue,
29
- WarnLevel: color.Yellow,
30
- ErrorLevel: color.Red,
31
- DPanicLevel: color.Red,
32
- PanicLevel: color.Red,
33
- FatalLevel: color.Red,
34
- }
35
- _unknownLevelColor = color.Red
36
-
37
- _levelToLowercaseColorString = make(map[Level]string, len(_levelToColor))
38
- _levelToCapitalColorString = make(map[Level]string, len(_levelToColor))
39
- )
40
-
41
- func init() {
42
- for level, color := range _levelToColor {
43
- _levelToLowercaseColorString[level] = color.Add(level.String())
44
- _levelToCapitalColorString[level] = color.Add(level.CapitalString())
45
- }
46
- }
@@ -1,61 +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
- // ObjectMarshaler allows user-defined types to efficiently add themselves to the
24
- // logging context, and to selectively omit information which shouldn't be
25
- // included in logs (e.g., passwords).
26
- //
27
- // Note: ObjectMarshaler is only used when zap.Object is used or when
28
- // passed directly to zap.Any. It is not used when reflection-based
29
- // encoding is used.
30
- type ObjectMarshaler interface {
31
- MarshalLogObject(ObjectEncoder) error
32
- }
33
-
34
- // ObjectMarshalerFunc is a type adapter that turns a function into an
35
- // ObjectMarshaler.
36
- type ObjectMarshalerFunc func(ObjectEncoder) error
37
-
38
- // MarshalLogObject calls the underlying function.
39
- func (f ObjectMarshalerFunc) MarshalLogObject(enc ObjectEncoder) error {
40
- return f(enc)
41
- }
42
-
43
- // ArrayMarshaler allows user-defined types to efficiently add themselves to the
44
- // logging context, and to selectively omit information which shouldn't be
45
- // included in logs (e.g., passwords).
46
- //
47
- // Note: ArrayMarshaler is only used when zap.Array is used or when
48
- // passed directly to zap.Any. It is not used when reflection-based
49
- // encoding is used.
50
- type ArrayMarshaler interface {
51
- MarshalLogArray(ArrayEncoder) error
52
- }
53
-
54
- // ArrayMarshalerFunc is a type adapter that turns a function into an
55
- // ArrayMarshaler.
56
- type ArrayMarshalerFunc func(ArrayEncoder) error
57
-
58
- // MarshalLogArray calls the underlying function.
59
- func (f ArrayMarshalerFunc) MarshalLogArray(enc ArrayEncoder) error {
60
- return f(enc)
61
- }
@@ -1,179 +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 "time"
24
-
25
- // MapObjectEncoder is an ObjectEncoder backed by a simple
26
- // map[string]interface{}. It's not fast enough for production use, but it's
27
- // helpful in tests.
28
- type MapObjectEncoder struct {
29
- // Fields contains the entire encoded log context.
30
- Fields map[string]interface{}
31
- // cur is a pointer to the namespace we're currently writing to.
32
- cur map[string]interface{}
33
- }
34
-
35
- // NewMapObjectEncoder creates a new map-backed ObjectEncoder.
36
- func NewMapObjectEncoder() *MapObjectEncoder {
37
- m := make(map[string]interface{})
38
- return &MapObjectEncoder{
39
- Fields: m,
40
- cur: m,
41
- }
42
- }
43
-
44
- // AddArray implements ObjectEncoder.
45
- func (m *MapObjectEncoder) AddArray(key string, v ArrayMarshaler) error {
46
- arr := &sliceArrayEncoder{elems: make([]interface{}, 0)}
47
- err := v.MarshalLogArray(arr)
48
- m.cur[key] = arr.elems
49
- return err
50
- }
51
-
52
- // AddObject implements ObjectEncoder.
53
- func (m *MapObjectEncoder) AddObject(k string, v ObjectMarshaler) error {
54
- newMap := NewMapObjectEncoder()
55
- m.cur[k] = newMap.Fields
56
- return v.MarshalLogObject(newMap)
57
- }
58
-
59
- // AddBinary implements ObjectEncoder.
60
- func (m *MapObjectEncoder) AddBinary(k string, v []byte) { m.cur[k] = v }
61
-
62
- // AddByteString implements ObjectEncoder.
63
- func (m *MapObjectEncoder) AddByteString(k string, v []byte) { m.cur[k] = string(v) }
64
-
65
- // AddBool implements ObjectEncoder.
66
- func (m *MapObjectEncoder) AddBool(k string, v bool) { m.cur[k] = v }
67
-
68
- // AddDuration implements ObjectEncoder.
69
- func (m MapObjectEncoder) AddDuration(k string, v time.Duration) { m.cur[k] = v }
70
-
71
- // AddComplex128 implements ObjectEncoder.
72
- func (m *MapObjectEncoder) AddComplex128(k string, v complex128) { m.cur[k] = v }
73
-
74
- // AddComplex64 implements ObjectEncoder.
75
- func (m *MapObjectEncoder) AddComplex64(k string, v complex64) { m.cur[k] = v }
76
-
77
- // AddFloat64 implements ObjectEncoder.
78
- func (m *MapObjectEncoder) AddFloat64(k string, v float64) { m.cur[k] = v }
79
-
80
- // AddFloat32 implements ObjectEncoder.
81
- func (m *MapObjectEncoder) AddFloat32(k string, v float32) { m.cur[k] = v }
82
-
83
- // AddInt implements ObjectEncoder.
84
- func (m *MapObjectEncoder) AddInt(k string, v int) { m.cur[k] = v }
85
-
86
- // AddInt64 implements ObjectEncoder.
87
- func (m *MapObjectEncoder) AddInt64(k string, v int64) { m.cur[k] = v }
88
-
89
- // AddInt32 implements ObjectEncoder.
90
- func (m *MapObjectEncoder) AddInt32(k string, v int32) { m.cur[k] = v }
91
-
92
- // AddInt16 implements ObjectEncoder.
93
- func (m *MapObjectEncoder) AddInt16(k string, v int16) { m.cur[k] = v }
94
-
95
- // AddInt8 implements ObjectEncoder.
96
- func (m *MapObjectEncoder) AddInt8(k string, v int8) { m.cur[k] = v }
97
-
98
- // AddString implements ObjectEncoder.
99
- func (m *MapObjectEncoder) AddString(k string, v string) { m.cur[k] = v }
100
-
101
- // AddTime implements ObjectEncoder.
102
- func (m MapObjectEncoder) AddTime(k string, v time.Time) { m.cur[k] = v }
103
-
104
- // AddUint implements ObjectEncoder.
105
- func (m *MapObjectEncoder) AddUint(k string, v uint) { m.cur[k] = v }
106
-
107
- // AddUint64 implements ObjectEncoder.
108
- func (m *MapObjectEncoder) AddUint64(k string, v uint64) { m.cur[k] = v }
109
-
110
- // AddUint32 implements ObjectEncoder.
111
- func (m *MapObjectEncoder) AddUint32(k string, v uint32) { m.cur[k] = v }
112
-
113
- // AddUint16 implements ObjectEncoder.
114
- func (m *MapObjectEncoder) AddUint16(k string, v uint16) { m.cur[k] = v }
115
-
116
- // AddUint8 implements ObjectEncoder.
117
- func (m *MapObjectEncoder) AddUint8(k string, v uint8) { m.cur[k] = v }
118
-
119
- // AddUintptr implements ObjectEncoder.
120
- func (m *MapObjectEncoder) AddUintptr(k string, v uintptr) { m.cur[k] = v }
121
-
122
- // AddReflected implements ObjectEncoder.
123
- func (m *MapObjectEncoder) AddReflected(k string, v interface{}) error {
124
- m.cur[k] = v
125
- return nil
126
- }
127
-
128
- // OpenNamespace implements ObjectEncoder.
129
- func (m *MapObjectEncoder) OpenNamespace(k string) {
130
- ns := make(map[string]interface{})
131
- m.cur[k] = ns
132
- m.cur = ns
133
- }
134
-
135
- // sliceArrayEncoder is an ArrayEncoder backed by a simple []interface{}. Like
136
- // the MapObjectEncoder, it's not designed for production use.
137
- type sliceArrayEncoder struct {
138
- elems []interface{}
139
- }
140
-
141
- func (s *sliceArrayEncoder) AppendArray(v ArrayMarshaler) error {
142
- enc := &sliceArrayEncoder{}
143
- err := v.MarshalLogArray(enc)
144
- s.elems = append(s.elems, enc.elems)
145
- return err
146
- }
147
-
148
- func (s *sliceArrayEncoder) AppendObject(v ObjectMarshaler) error {
149
- m := NewMapObjectEncoder()
150
- err := v.MarshalLogObject(m)
151
- s.elems = append(s.elems, m.Fields)
152
- return err
153
- }
154
-
155
- func (s *sliceArrayEncoder) AppendReflected(v interface{}) error {
156
- s.elems = append(s.elems, v)
157
- return nil
158
- }
159
-
160
- func (s *sliceArrayEncoder) AppendBool(v bool) { s.elems = append(s.elems, v) }
161
- func (s *sliceArrayEncoder) AppendByteString(v []byte) { s.elems = append(s.elems, string(v)) }
162
- func (s *sliceArrayEncoder) AppendComplex128(v complex128) { s.elems = append(s.elems, v) }
163
- func (s *sliceArrayEncoder) AppendComplex64(v complex64) { s.elems = append(s.elems, v) }
164
- func (s *sliceArrayEncoder) AppendDuration(v time.Duration) { s.elems = append(s.elems, v) }
165
- func (s *sliceArrayEncoder) AppendFloat64(v float64) { s.elems = append(s.elems, v) }
166
- func (s *sliceArrayEncoder) AppendFloat32(v float32) { s.elems = append(s.elems, v) }
167
- func (s *sliceArrayEncoder) AppendInt(v int) { s.elems = append(s.elems, v) }
168
- func (s *sliceArrayEncoder) AppendInt64(v int64) { s.elems = append(s.elems, v) }
169
- func (s *sliceArrayEncoder) AppendInt32(v int32) { s.elems = append(s.elems, v) }
170
- func (s *sliceArrayEncoder) AppendInt16(v int16) { s.elems = append(s.elems, v) }
171
- func (s *sliceArrayEncoder) AppendInt8(v int8) { s.elems = append(s.elems, v) }
172
- func (s *sliceArrayEncoder) AppendString(v string) { s.elems = append(s.elems, v) }
173
- func (s *sliceArrayEncoder) AppendTime(v time.Time) { s.elems = append(s.elems, v) }
174
- func (s *sliceArrayEncoder) AppendUint(v uint) { s.elems = append(s.elems, v) }
175
- func (s *sliceArrayEncoder) AppendUint64(v uint64) { s.elems = append(s.elems, v) }
176
- func (s *sliceArrayEncoder) AppendUint32(v uint32) { s.elems = append(s.elems, v) }
177
- func (s *sliceArrayEncoder) AppendUint16(v uint16) { s.elems = append(s.elems, v) }
178
- func (s *sliceArrayEncoder) AppendUint8(v uint8) { s.elems = append(s.elems, v) }
179
- func (s *sliceArrayEncoder) AppendUintptr(v uintptr) { s.elems = append(s.elems, v) }
@@ -1,208 +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
- "time"
25
-
26
- "go.uber.org/atomic"
27
- )
28
-
29
- const (
30
- _numLevels = _maxLevel - _minLevel + 1
31
- _countersPerLevel = 4096
32
- )
33
-
34
- type counter struct {
35
- resetAt atomic.Int64
36
- counter atomic.Uint64
37
- }
38
-
39
- type counters [_numLevels][_countersPerLevel]counter
40
-
41
- func newCounters() *counters {
42
- return &counters{}
43
- }
44
-
45
- func (cs *counters) get(lvl Level, key string) *counter {
46
- i := lvl - _minLevel
47
- j := fnv32a(key) % _countersPerLevel
48
- return &cs[i][j]
49
- }
50
-
51
- // fnv32a, adapted from "hash/fnv", but without a []byte(string) alloc
52
- func fnv32a(s string) uint32 {
53
- const (
54
- offset32 = 2166136261
55
- prime32 = 16777619
56
- )
57
- hash := uint32(offset32)
58
- for i := 0; i < len(s); i++ {
59
- hash ^= uint32(s[i])
60
- hash *= prime32
61
- }
62
- return hash
63
- }
64
-
65
- func (c *counter) IncCheckReset(t time.Time, tick time.Duration) uint64 {
66
- tn := t.UnixNano()
67
- resetAfter := c.resetAt.Load()
68
- if resetAfter > tn {
69
- return c.counter.Inc()
70
- }
71
-
72
- c.counter.Store(1)
73
-
74
- newResetAfter := tn + tick.Nanoseconds()
75
- if !c.resetAt.CAS(resetAfter, newResetAfter) {
76
- // We raced with another goroutine trying to reset, and it also reset
77
- // the counter to 1, so we need to reincrement the counter.
78
- return c.counter.Inc()
79
- }
80
-
81
- return 1
82
- }
83
-
84
- // SamplingDecision is a decision represented as a bit field made by sampler.
85
- // More decisions may be added in the future.
86
- type SamplingDecision uint32
87
-
88
- const (
89
- // LogDropped indicates that the Sampler dropped a log entry.
90
- LogDropped SamplingDecision = 1 << iota
91
- // LogSampled indicates that the Sampler sampled a log entry.
92
- LogSampled
93
- )
94
-
95
- // optionFunc wraps a func so it satisfies the SamplerOption interface.
96
- type optionFunc func(*sampler)
97
-
98
- func (f optionFunc) apply(s *sampler) {
99
- f(s)
100
- }
101
-
102
- // SamplerOption configures a Sampler.
103
- type SamplerOption interface {
104
- apply(*sampler)
105
- }
106
-
107
- // nopSamplingHook is the default hook used by sampler.
108
- func nopSamplingHook(Entry, SamplingDecision) {}
109
-
110
- // SamplerHook registers a function which will be called when Sampler makes a
111
- // decision.
112
- //
113
- // This hook may be used to get visibility into the performance of the sampler.
114
- // For example, use it to track metrics of dropped versus sampled logs.
115
- //
116
- // var dropped atomic.Int64
117
- // zapcore.SamplerHook(func(ent zapcore.Entry, dec zapcore.SamplingDecision) {
118
- // if dec&zapcore.LogDropped > 0 {
119
- // dropped.Inc()
120
- // }
121
- // })
122
- func SamplerHook(hook func(entry Entry, dec SamplingDecision)) SamplerOption {
123
- return optionFunc(func(s *sampler) {
124
- s.hook = hook
125
- })
126
- }
127
-
128
- // NewSamplerWithOptions creates a Core that samples incoming entries, which
129
- // caps the CPU and I/O load of logging while attempting to preserve a
130
- // representative subset of your logs.
131
- //
132
- // Zap samples by logging the first N entries with a given level and message
133
- // each tick. If more Entries with the same level and message are seen during
134
- // the same interval, every Mth message is logged and the rest are dropped.
135
- //
136
- // Sampler can be configured to report sampling decisions with the SamplerHook
137
- // option.
138
- //
139
- // Keep in mind that zap's sampling implementation is optimized for speed over
140
- // absolute precision; under load, each tick may be slightly over- or
141
- // under-sampled.
142
- func NewSamplerWithOptions(core Core, tick time.Duration, first, thereafter int, opts ...SamplerOption) Core {
143
- s := &sampler{
144
- Core: core,
145
- tick: tick,
146
- counts: newCounters(),
147
- first: uint64(first),
148
- thereafter: uint64(thereafter),
149
- hook: nopSamplingHook,
150
- }
151
- for _, opt := range opts {
152
- opt.apply(s)
153
- }
154
-
155
- return s
156
- }
157
-
158
- type sampler struct {
159
- Core
160
-
161
- counts *counters
162
- tick time.Duration
163
- first, thereafter uint64
164
- hook func(Entry, SamplingDecision)
165
- }
166
-
167
- // NewSampler creates a Core that samples incoming entries, which
168
- // caps the CPU and I/O load of logging while attempting to preserve a
169
- // representative subset of your logs.
170
- //
171
- // Zap samples by logging the first N entries with a given level and message
172
- // each tick. If more Entries with the same level and message are seen during
173
- // the same interval, every Mth message is logged and the rest are dropped.
174
- //
175
- // Keep in mind that zap's sampling implementation is optimized for speed over
176
- // absolute precision; under load, each tick may be slightly over- or
177
- // under-sampled.
178
- //
179
- // Deprecated: use NewSamplerWithOptions.
180
- func NewSampler(core Core, tick time.Duration, first, thereafter int) Core {
181
- return NewSamplerWithOptions(core, tick, first, thereafter)
182
- }
183
-
184
- func (s *sampler) With(fields []Field) Core {
185
- return &sampler{
186
- Core: s.Core.With(fields),
187
- tick: s.tick,
188
- counts: s.counts,
189
- first: s.first,
190
- thereafter: s.thereafter,
191
- hook: s.hook,
192
- }
193
- }
194
-
195
- func (s *sampler) Check(ent Entry, ce *CheckedEntry) *CheckedEntry {
196
- if !s.Enabled(ent.Level) {
197
- return ce
198
- }
199
-
200
- counter := s.counts.get(ent.Level, ent.Message)
201
- n := counter.IncCheckReset(ent.Time, s.tick)
202
- if n > s.first && (n-s.first)%s.thereafter != 0 {
203
- s.hook(ent, LogDropped)
204
- return ce
205
- }
206
- s.hook(ent, LogSampled)
207
- return s.Core.Check(ent, ce)
208
- }
@@ -1,81 +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 "go.uber.org/multierr"
24
-
25
- type multiCore []Core
26
-
27
- // NewTee creates a Core that duplicates log entries into two or more
28
- // underlying Cores.
29
- //
30
- // Calling it with a single Core returns the input unchanged, and calling
31
- // it with no input returns a no-op Core.
32
- func NewTee(cores ...Core) Core {
33
- switch len(cores) {
34
- case 0:
35
- return NewNopCore()
36
- case 1:
37
- return cores[0]
38
- default:
39
- return multiCore(cores)
40
- }
41
- }
42
-
43
- func (mc multiCore) With(fields []Field) Core {
44
- clone := make(multiCore, len(mc))
45
- for i := range mc {
46
- clone[i] = mc[i].With(fields)
47
- }
48
- return clone
49
- }
50
-
51
- func (mc multiCore) Enabled(lvl Level) bool {
52
- for i := range mc {
53
- if mc[i].Enabled(lvl) {
54
- return true
55
- }
56
- }
57
- return false
58
- }
59
-
60
- func (mc multiCore) Check(ent Entry, ce *CheckedEntry) *CheckedEntry {
61
- for i := range mc {
62
- ce = mc[i].Check(ent, ce)
63
- }
64
- return ce
65
- }
66
-
67
- func (mc multiCore) Write(ent Entry, fields []Field) error {
68
- var err error
69
- for i := range mc {
70
- err = multierr.Append(err, mc[i].Write(ent, fields))
71
- }
72
- return err
73
- }
74
-
75
- func (mc multiCore) Sync() error {
76
- var err error
77
- for i := range mc {
78
- err = multierr.Append(err, mc[i].Sync())
79
- }
80
- return err
81
- }
@@ -1,122 +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
- "io"
25
- "sync"
26
-
27
- "go.uber.org/multierr"
28
- )
29
-
30
- // A WriteSyncer is an io.Writer that can also flush any buffered data. Note
31
- // that *os.File (and thus, os.Stderr and os.Stdout) implement WriteSyncer.
32
- type WriteSyncer interface {
33
- io.Writer
34
- Sync() error
35
- }
36
-
37
- // AddSync converts an io.Writer to a WriteSyncer. It attempts to be
38
- // intelligent: if the concrete type of the io.Writer implements WriteSyncer,
39
- // we'll use the existing Sync method. If it doesn't, we'll add a no-op Sync.
40
- func AddSync(w io.Writer) WriteSyncer {
41
- switch w := w.(type) {
42
- case WriteSyncer:
43
- return w
44
- default:
45
- return writerWrapper{w}
46
- }
47
- }
48
-
49
- type lockedWriteSyncer struct {
50
- sync.Mutex
51
- ws WriteSyncer
52
- }
53
-
54
- // Lock wraps a WriteSyncer in a mutex to make it safe for concurrent use. In
55
- // particular, *os.Files must be locked before use.
56
- func Lock(ws WriteSyncer) WriteSyncer {
57
- if _, ok := ws.(*lockedWriteSyncer); ok {
58
- // no need to layer on another lock
59
- return ws
60
- }
61
- return &lockedWriteSyncer{ws: ws}
62
- }
63
-
64
- func (s *lockedWriteSyncer) Write(bs []byte) (int, error) {
65
- s.Lock()
66
- n, err := s.ws.Write(bs)
67
- s.Unlock()
68
- return n, err
69
- }
70
-
71
- func (s *lockedWriteSyncer) Sync() error {
72
- s.Lock()
73
- err := s.ws.Sync()
74
- s.Unlock()
75
- return err
76
- }
77
-
78
- type writerWrapper struct {
79
- io.Writer
80
- }
81
-
82
- func (w writerWrapper) Sync() error {
83
- return nil
84
- }
85
-
86
- type multiWriteSyncer []WriteSyncer
87
-
88
- // NewMultiWriteSyncer creates a WriteSyncer that duplicates its writes
89
- // and sync calls, much like io.MultiWriter.
90
- func NewMultiWriteSyncer(ws ...WriteSyncer) WriteSyncer {
91
- if len(ws) == 1 {
92
- return ws[0]
93
- }
94
- return multiWriteSyncer(ws)
95
- }
96
-
97
- // See https://golang.org/src/io/multi.go
98
- // When not all underlying syncers write the same number of bytes,
99
- // the smallest number is returned even though Write() is called on
100
- // all of them.
101
- func (ws multiWriteSyncer) Write(p []byte) (int, error) {
102
- var writeErr error
103
- nWritten := 0
104
- for _, w := range ws {
105
- n, err := w.Write(p)
106
- writeErr = multierr.Append(writeErr, err)
107
- if nWritten == 0 && n != 0 {
108
- nWritten = n
109
- } else if n < nWritten {
110
- nWritten = n
111
- }
112
- }
113
- return nWritten, writeErr
114
- }
115
-
116
- func (ws multiWriteSyncer) Sync() error {
117
- var err error
118
- for _, w := range ws {
119
- err = multierr.Append(err, w.Sync())
120
- }
121
- return err
122
- }