dependencies: zapr v1.3.0, zap v1.26.0
The new zapr adds support for slog. The new zap has various improvements. It no longer depends on go.uber.org/atomic which enables dropping it from the Kubernetes dependencies. github.com/pkg/errors is also no longer needed.
This commit is contained in:
parent
246d363ea4
commit
166b71757b
23
LICENSES/vendor/go.uber.org/atomic/LICENSE
generated
vendored
23
LICENSES/vendor/go.uber.org/atomic/LICENSE
generated
vendored
@ -1,23 +0,0 @@
|
|||||||
= vendor/go.uber.org/atomic licensed under: =
|
|
||||||
|
|
||||||
Copyright (c) 2016 Uber Technologies, Inc.
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
|
|
||||||
= vendor/go.uber.org/atomic/LICENSE.txt 1caee86519456feda989f8a838102b50
|
|
5
go.mod
5
go.mod
@ -77,7 +77,7 @@ require (
|
|||||||
go.opentelemetry.io/otel/trace v1.19.0
|
go.opentelemetry.io/otel/trace v1.19.0
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0
|
go.opentelemetry.io/proto/otlp v1.0.0
|
||||||
go.uber.org/goleak v1.2.1
|
go.uber.org/goleak v1.2.1
|
||||||
go.uber.org/zap v1.19.0
|
go.uber.org/zap v1.26.0
|
||||||
golang.org/x/crypto v0.14.0
|
golang.org/x/crypto v0.14.0
|
||||||
golang.org/x/net v0.17.0
|
golang.org/x/net v0.17.0
|
||||||
golang.org/x/oauth2 v0.10.0
|
golang.org/x/oauth2 v0.10.0
|
||||||
@ -166,7 +166,7 @@ require (
|
|||||||
github.com/fvbommel/sortorder v1.1.0 // indirect
|
github.com/fvbommel/sortorder v1.1.0 // indirect
|
||||||
github.com/go-errors/errors v1.4.2 // indirect
|
github.com/go-errors/errors v1.4.2 // indirect
|
||||||
github.com/go-logr/stdr v1.2.2 // indirect
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
github.com/go-logr/zapr v1.2.3 // indirect
|
github.com/go-logr/zapr v1.3.0 // indirect
|
||||||
github.com/go-openapi/jsonpointer v0.19.6 // indirect
|
github.com/go-openapi/jsonpointer v0.19.6 // indirect
|
||||||
github.com/go-openapi/jsonreference v0.20.2 // indirect
|
github.com/go-openapi/jsonreference v0.20.2 // indirect
|
||||||
github.com/go-openapi/swag v0.22.3 // indirect
|
github.com/go-openapi/swag v0.22.3 // indirect
|
||||||
@ -230,7 +230,6 @@ require (
|
|||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
|
||||||
go.opentelemetry.io/otel/metric v1.19.0 // indirect
|
go.opentelemetry.io/otel/metric v1.19.0 // indirect
|
||||||
go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect
|
go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect
|
||||||
go.uber.org/atomic v1.10.0 // indirect
|
|
||||||
go.uber.org/multierr v1.11.0 // indirect
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
||||||
golang.org/x/mod v0.12.0 // indirect
|
golang.org/x/mod v0.12.0 // indirect
|
||||||
|
16
go.sum
16
go.sum
@ -224,8 +224,6 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkY
|
|||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/aws/aws-sdk-go v1.35.24/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k=
|
github.com/aws/aws-sdk-go v1.35.24/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k=
|
||||||
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
|
|
||||||
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
|
||||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
||||||
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
||||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
||||||
@ -386,8 +384,8 @@ github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
|||||||
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A=
|
github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
|
||||||
github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
|
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||||
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
||||||
@ -847,18 +845,14 @@ go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93V
|
|||||||
go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds=
|
go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds=
|
||||||
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||||
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
|
|
||||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
|
||||||
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
|
|
||||||
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
||||||
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
||||||
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
||||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
|
||||||
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
||||||
go.uber.org/zap v1.19.0 h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE=
|
go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
|
||||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
||||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||||
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
@ -1097,7 +1091,6 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw
|
|||||||
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
@ -1323,7 +1316,6 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8=
|
gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8=
|
||||||
|
@ -178,10 +178,8 @@
|
|||||||
"github.com/containerd/fifo",
|
"github.com/containerd/fifo",
|
||||||
"github.com/containerd/go-runc",
|
"github.com/containerd/go-runc",
|
||||||
"github.com/containerd/typeurl",
|
"github.com/containerd/typeurl",
|
||||||
"github.com/go-logr/zapr",
|
|
||||||
"github.com/google/cadvisor",
|
"github.com/google/cadvisor",
|
||||||
"github.com/grpc-ecosystem/go-grpc-middleware",
|
"github.com/grpc-ecosystem/go-grpc-middleware",
|
||||||
"go.uber.org/zap",
|
|
||||||
"gotest.tools/v3",
|
"gotest.tools/v3",
|
||||||
"k8s.io/kubectl",
|
"k8s.io/kubectl",
|
||||||
"k8s.io/kubernetes",
|
"k8s.io/kubernetes",
|
||||||
|
@ -102,9 +102,8 @@ require (
|
|||||||
go.opentelemetry.io/otel/metric v1.19.0 // indirect
|
go.opentelemetry.io/otel/metric v1.19.0 // indirect
|
||||||
go.opentelemetry.io/otel/sdk v1.19.0 // indirect
|
go.opentelemetry.io/otel/sdk v1.19.0 // indirect
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
||||||
go.uber.org/atomic v1.10.0 // indirect
|
|
||||||
go.uber.org/multierr v1.11.0 // indirect
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
go.uber.org/zap v1.19.0 // indirect
|
go.uber.org/zap v1.26.0 // indirect
|
||||||
golang.org/x/crypto v0.14.0 // indirect
|
golang.org/x/crypto v0.14.0 // indirect
|
||||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
||||||
golang.org/x/mod v0.12.0 // indirect
|
golang.org/x/mod v0.12.0 // indirect
|
||||||
|
19
staging/src/k8s.io/apiextensions-apiserver/go.sum
generated
19
staging/src/k8s.io/apiextensions-apiserver/go.sum
generated
@ -133,8 +133,6 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd
|
|||||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
|
|
||||||
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
|
||||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
||||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||||
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
||||||
@ -191,8 +189,8 @@ github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
|||||||
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A=
|
github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
|
||||||
github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
|
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||||
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
||||||
@ -269,7 +267,6 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI
|
|||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||||
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
|
||||||
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
@ -391,18 +388,14 @@ go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lI
|
|||||||
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
||||||
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||||
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
|
|
||||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
|
||||||
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
|
|
||||||
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
||||||
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
||||||
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
||||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
|
||||||
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
||||||
go.uber.org/zap v1.19.0 h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE=
|
go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
|
||||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
@ -414,7 +407,6 @@ golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2F
|
|||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||||
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
|
||||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
|
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
|
||||||
@ -475,7 +467,6 @@ golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGm
|
|||||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
||||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
@ -514,7 +505,6 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ
|
|||||||
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
||||||
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||||
@ -529,7 +519,6 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
|
@ -31,7 +31,7 @@ require (
|
|||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0
|
||||||
go.opentelemetry.io/otel/sdk v1.19.0
|
go.opentelemetry.io/otel/sdk v1.19.0
|
||||||
go.opentelemetry.io/otel/trace v1.19.0
|
go.opentelemetry.io/otel/trace v1.19.0
|
||||||
go.uber.org/zap v1.19.0
|
go.uber.org/zap v1.26.0
|
||||||
golang.org/x/crypto v0.14.0
|
golang.org/x/crypto v0.14.0
|
||||||
golang.org/x/net v0.17.0
|
golang.org/x/net v0.17.0
|
||||||
golang.org/x/sync v0.3.0
|
golang.org/x/sync v0.3.0
|
||||||
@ -111,7 +111,6 @@ require (
|
|||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
|
||||||
go.opentelemetry.io/otel/metric v1.19.0 // indirect
|
go.opentelemetry.io/otel/metric v1.19.0 // indirect
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
||||||
go.uber.org/atomic v1.10.0 // indirect
|
|
||||||
go.uber.org/multierr v1.11.0 // indirect
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
||||||
golang.org/x/oauth2 v0.10.0 // indirect
|
golang.org/x/oauth2 v0.10.0 // indirect
|
||||||
|
19
staging/src/k8s.io/apiserver/go.sum
generated
19
staging/src/k8s.io/apiserver/go.sum
generated
@ -133,8 +133,6 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd
|
|||||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
|
|
||||||
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
|
||||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
||||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||||
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
||||||
@ -191,8 +189,8 @@ github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
|||||||
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A=
|
github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
|
||||||
github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
|
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||||
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
||||||
@ -268,7 +266,6 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI
|
|||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||||
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
|
||||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||||
@ -390,18 +387,14 @@ go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lI
|
|||||||
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
||||||
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||||
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
|
|
||||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
|
||||||
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
|
|
||||||
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
||||||
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
||||||
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
||||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
|
||||||
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
||||||
go.uber.org/zap v1.19.0 h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE=
|
go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
|
||||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
@ -413,7 +406,6 @@ golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2F
|
|||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||||
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
|
||||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||||
@ -473,7 +465,6 @@ golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGm
|
|||||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
||||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||||
@ -511,7 +502,6 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ
|
|||||||
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
||||||
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||||
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
|
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
|
||||||
@ -526,7 +516,6 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
|
@ -38,7 +38,7 @@ require (
|
|||||||
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
||||||
github.com/go-logr/logr v1.3.0 // indirect
|
github.com/go-logr/logr v1.3.0 // indirect
|
||||||
github.com/go-logr/stdr v1.2.2 // indirect
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
github.com/go-logr/zapr v1.2.3 // indirect
|
github.com/go-logr/zapr v1.3.0 // indirect
|
||||||
github.com/go-openapi/jsonpointer v0.19.6 // indirect
|
github.com/go-openapi/jsonpointer v0.19.6 // indirect
|
||||||
github.com/go-openapi/jsonreference v0.20.2 // indirect
|
github.com/go-openapi/jsonreference v0.20.2 // indirect
|
||||||
github.com/go-openapi/swag v0.22.3 // indirect
|
github.com/go-openapi/swag v0.22.3 // indirect
|
||||||
@ -80,9 +80,8 @@ require (
|
|||||||
go.opentelemetry.io/otel/sdk v1.19.0 // indirect
|
go.opentelemetry.io/otel/sdk v1.19.0 // indirect
|
||||||
go.opentelemetry.io/otel/trace v1.19.0 // indirect
|
go.opentelemetry.io/otel/trace v1.19.0 // indirect
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
||||||
go.uber.org/atomic v1.10.0 // indirect
|
|
||||||
go.uber.org/multierr v1.11.0 // indirect
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
go.uber.org/zap v1.19.0 // indirect
|
go.uber.org/zap v1.26.0 // indirect
|
||||||
golang.org/x/crypto v0.14.0 // indirect
|
golang.org/x/crypto v0.14.0 // indirect
|
||||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
||||||
golang.org/x/net v0.17.0 // indirect
|
golang.org/x/net v0.17.0 // indirect
|
||||||
|
24
staging/src/k8s.io/cloud-provider/go.sum
generated
24
staging/src/k8s.io/cloud-provider/go.sum
generated
@ -130,8 +130,6 @@ github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df/g
|
|||||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
|
|
||||||
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
|
||||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
||||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||||
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
||||||
@ -176,8 +174,8 @@ github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
|||||||
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A=
|
github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
|
||||||
github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
|
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||||
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
||||||
@ -242,7 +240,6 @@ github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHm
|
|||||||
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
|
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
|
||||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
|
||||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||||
@ -271,7 +268,6 @@ github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xl
|
|||||||
github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg=
|
github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg=
|
||||||
github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
|
github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
|
||||||
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
|
||||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
@ -303,9 +299,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
|
|||||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
|
||||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
|
||||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||||
@ -353,16 +347,12 @@ go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmY
|
|||||||
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
|
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
||||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||||
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
|
|
||||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
|
||||||
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
|
|
||||||
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
||||||
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
||||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
|
||||||
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
go.uber.org/zap v1.19.0 h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE=
|
go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
|
||||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
@ -370,11 +360,9 @@ golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
|
|||||||
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
||||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA=
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA=
|
||||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA=
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA=
|
||||||
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
|
||||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
@ -406,8 +394,6 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
|||||||
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
|
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
|
||||||
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
|
||||||
golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||||
@ -433,7 +419,6 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ
|
|||||||
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
||||||
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||||
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
|
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
|
||||||
@ -446,7 +431,6 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
|
k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
|
||||||
|
@ -7,7 +7,7 @@ go 1.21.3
|
|||||||
require (
|
require (
|
||||||
github.com/blang/semver/v4 v4.0.0
|
github.com/blang/semver/v4 v4.0.0
|
||||||
github.com/go-logr/logr v1.3.0
|
github.com/go-logr/logr v1.3.0
|
||||||
github.com/go-logr/zapr v1.2.3
|
github.com/go-logr/zapr v1.3.0
|
||||||
github.com/google/go-cmp v0.6.0
|
github.com/google/go-cmp v0.6.0
|
||||||
github.com/moby/term v0.0.0-20221205130635-1aeaba878587
|
github.com/moby/term v0.0.0-20221205130635-1aeaba878587
|
||||||
github.com/prometheus/client_golang v1.16.0
|
github.com/prometheus/client_golang v1.16.0
|
||||||
@ -22,7 +22,7 @@ require (
|
|||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0
|
||||||
go.opentelemetry.io/otel/sdk v1.19.0
|
go.opentelemetry.io/otel/sdk v1.19.0
|
||||||
go.opentelemetry.io/otel/trace v1.19.0
|
go.opentelemetry.io/otel/trace v1.19.0
|
||||||
go.uber.org/zap v1.19.0
|
go.uber.org/zap v1.26.0
|
||||||
golang.org/x/sys v0.13.0
|
golang.org/x/sys v0.13.0
|
||||||
gopkg.in/yaml.v2 v2.4.0
|
gopkg.in/yaml.v2 v2.4.0
|
||||||
k8s.io/apimachinery v0.0.0
|
k8s.io/apimachinery v0.0.0
|
||||||
@ -62,7 +62,6 @@ require (
|
|||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
|
||||||
go.opentelemetry.io/otel/metric v1.19.0 // indirect
|
go.opentelemetry.io/otel/metric v1.19.0 // indirect
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
||||||
go.uber.org/atomic v1.10.0 // indirect
|
|
||||||
go.uber.org/multierr v1.11.0 // indirect
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
golang.org/x/net v0.17.0 // indirect
|
golang.org/x/net v0.17.0 // indirect
|
||||||
golang.org/x/oauth2 v0.10.0 // indirect
|
golang.org/x/oauth2 v0.10.0 // indirect
|
||||||
|
26
staging/src/k8s.io/component-base/go.sum
generated
26
staging/src/k8s.io/component-base/go.sum
generated
@ -8,8 +8,6 @@ github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8V
|
|||||||
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
||||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
|
|
||||||
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
|
||||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
||||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||||
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
||||||
@ -43,8 +41,8 @@ github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
|||||||
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A=
|
github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
|
||||||
github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
|
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||||
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
||||||
@ -93,7 +91,6 @@ github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHm
|
|||||||
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
|
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
|
||||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
|
||||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||||
@ -122,7 +119,6 @@ github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xl
|
|||||||
github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg=
|
github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg=
|
||||||
github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
|
github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
|
||||||
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
|
||||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
@ -147,8 +143,6 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
|
|||||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
|
||||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
|
||||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||||
@ -173,26 +167,19 @@ go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1
|
|||||||
go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
|
go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
|
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
||||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
|
||||||
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
|
|
||||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
|
||||||
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
|
|
||||||
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
||||||
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
||||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
|
||||||
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
go.uber.org/zap v1.19.0 h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE=
|
go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
|
||||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
||||||
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
|
||||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
@ -223,8 +210,6 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
|||||||
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
|
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
|
||||||
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
|
||||||
golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||||
@ -250,17 +235,14 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ
|
|||||||
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
||||||
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||||
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
|
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
|
||||||
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
|
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
||||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
|
k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
|
||||||
|
@ -76,9 +76,8 @@ require (
|
|||||||
go.opentelemetry.io/otel/sdk v1.19.0 // indirect
|
go.opentelemetry.io/otel/sdk v1.19.0 // indirect
|
||||||
go.opentelemetry.io/otel/trace v1.19.0 // indirect
|
go.opentelemetry.io/otel/trace v1.19.0 // indirect
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
||||||
go.uber.org/atomic v1.10.0 // indirect
|
|
||||||
go.uber.org/multierr v1.11.0 // indirect
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
go.uber.org/zap v1.19.0 // indirect
|
go.uber.org/zap v1.26.0 // indirect
|
||||||
golang.org/x/crypto v0.14.0 // indirect
|
golang.org/x/crypto v0.14.0 // indirect
|
||||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
||||||
golang.org/x/net v0.17.0 // indirect
|
golang.org/x/net v0.17.0 // indirect
|
||||||
|
24
staging/src/k8s.io/controller-manager/go.sum
generated
24
staging/src/k8s.io/controller-manager/go.sum
generated
@ -129,8 +129,6 @@ github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df/g
|
|||||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
|
|
||||||
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
|
||||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
||||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||||
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
||||||
@ -173,8 +171,8 @@ github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
|||||||
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A=
|
github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
|
||||||
github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
|
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||||
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
||||||
@ -239,7 +237,6 @@ github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHm
|
|||||||
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
|
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
|
||||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
|
||||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||||
@ -267,7 +264,6 @@ github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xl
|
|||||||
github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg=
|
github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg=
|
||||||
github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
|
github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
|
||||||
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
|
||||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
@ -299,9 +295,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
|
|||||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
|
||||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
|
||||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||||
@ -349,16 +343,12 @@ go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmY
|
|||||||
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
|
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
||||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||||
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
|
|
||||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
|
||||||
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
|
|
||||||
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
||||||
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
||||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
|
||||||
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
go.uber.org/zap v1.19.0 h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE=
|
go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
|
||||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
@ -366,11 +356,9 @@ golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
|
|||||||
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
||||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA=
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA=
|
||||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA=
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA=
|
||||||
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
|
||||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
@ -401,8 +389,6 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
|||||||
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
|
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
|
||||||
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
|
||||||
golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||||
@ -428,7 +414,6 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ
|
|||||||
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
||||||
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||||
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
|
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
|
||||||
@ -441,7 +426,6 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
|
k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
|
||||||
|
5
staging/src/k8s.io/endpointslice/go.sum
generated
5
staging/src/k8s.io/endpointslice/go.sum
generated
@ -27,7 +27,7 @@ github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KE
|
|||||||
github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
||||||
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
|
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||||
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
||||||
@ -136,9 +136,8 @@ go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319
|
|||||||
go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A=
|
go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A=
|
||||||
go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
|
go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
||||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
|
||||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
@ -82,9 +82,8 @@ require (
|
|||||||
go.opentelemetry.io/otel/sdk v1.19.0 // indirect
|
go.opentelemetry.io/otel/sdk v1.19.0 // indirect
|
||||||
go.opentelemetry.io/otel/trace v1.19.0 // indirect
|
go.opentelemetry.io/otel/trace v1.19.0 // indirect
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
||||||
go.uber.org/atomic v1.10.0 // indirect
|
|
||||||
go.uber.org/multierr v1.11.0 // indirect
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
go.uber.org/zap v1.19.0 // indirect
|
go.uber.org/zap v1.26.0 // indirect
|
||||||
golang.org/x/crypto v0.14.0 // indirect
|
golang.org/x/crypto v0.14.0 // indirect
|
||||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
||||||
golang.org/x/mod v0.12.0 // indirect
|
golang.org/x/mod v0.12.0 // indirect
|
||||||
|
24
staging/src/k8s.io/kube-aggregator/go.sum
generated
24
staging/src/k8s.io/kube-aggregator/go.sum
generated
@ -130,8 +130,6 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd
|
|||||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
|
|
||||||
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
|
||||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
||||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||||
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
||||||
@ -175,8 +173,8 @@ github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
|||||||
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A=
|
github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
|
||||||
github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
|
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||||
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
||||||
@ -244,7 +242,6 @@ github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHm
|
|||||||
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
|
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
|
||||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
|
||||||
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
@ -275,7 +272,6 @@ github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xl
|
|||||||
github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg=
|
github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg=
|
||||||
github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
|
github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
|
||||||
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
|
||||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
@ -307,9 +303,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
|
|||||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
|
||||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
|
||||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||||
@ -358,16 +352,12 @@ go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmY
|
|||||||
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
|
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
||||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||||
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
|
|
||||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
|
||||||
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
|
|
||||||
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
||||||
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
||||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
|
||||||
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
go.uber.org/zap v1.19.0 h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE=
|
go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
|
||||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
@ -375,12 +365,10 @@ golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
|
|||||||
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
||||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA=
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA=
|
||||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA=
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA=
|
||||||
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
|
||||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
|
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
|
||||||
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
@ -411,8 +399,6 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
|||||||
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
|
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
|
||||||
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
|
||||||
golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
@ -439,7 +425,6 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ
|
|||||||
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
||||||
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||||
@ -453,7 +438,6 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01 h1:pWEwq4Asjm4vjW7vcsmijwBhOr1/shsbSYiWXmNGlks=
|
k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01 h1:pWEwq4Asjm4vjW7vcsmijwBhOr1/shsbSYiWXmNGlks=
|
||||||
|
@ -20,7 +20,7 @@ github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyT
|
|||||||
github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
||||||
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
|
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||||
github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
|
github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
|
||||||
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
|
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
|
||||||
@ -99,9 +99,8 @@ go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319
|
|||||||
go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A=
|
go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A=
|
||||||
go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
|
go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
||||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
|
||||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
5
staging/src/k8s.io/kube-proxy/go.sum
generated
5
staging/src/k8s.io/kube-proxy/go.sum
generated
@ -22,7 +22,7 @@ github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KE
|
|||||||
github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
||||||
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
|
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||||
github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
|
github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
|
||||||
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
|
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
|
||||||
@ -105,9 +105,8 @@ go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319
|
|||||||
go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A=
|
go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A=
|
||||||
go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
|
go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
||||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
|
||||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
5
staging/src/k8s.io/kube-scheduler/go.sum
generated
5
staging/src/k8s.io/kube-scheduler/go.sum
generated
@ -13,7 +13,7 @@ github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSw
|
|||||||
github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
||||||
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
|
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||||
github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
|
github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
|
||||||
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
|
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
|
||||||
@ -80,9 +80,8 @@ go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319
|
|||||||
go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A=
|
go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A=
|
||||||
go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
|
go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
||||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
|
||||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
5
staging/src/k8s.io/kubectl/go.sum
generated
5
staging/src/k8s.io/kubectl/go.sum
generated
@ -50,7 +50,7 @@ github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3Bop
|
|||||||
github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
||||||
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
|
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||||
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
||||||
@ -208,9 +208,8 @@ go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmY
|
|||||||
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
||||||
go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY=
|
go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY=
|
||||||
go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds=
|
go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds=
|
||||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
|
||||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
5
staging/src/k8s.io/kubelet/go.sum
generated
5
staging/src/k8s.io/kubelet/go.sum
generated
@ -38,7 +38,7 @@ github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KE
|
|||||||
github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
||||||
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
|
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||||
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
||||||
@ -166,9 +166,8 @@ go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319
|
|||||||
go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A=
|
go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A=
|
||||||
go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
|
go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
||||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
|
||||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
5
staging/src/k8s.io/legacy-cloud-providers/go.sum
generated
5
staging/src/k8s.io/legacy-cloud-providers/go.sum
generated
@ -139,7 +139,7 @@ github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7
|
|||||||
github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
||||||
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
|
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||||
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
||||||
@ -369,9 +369,8 @@ go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+Gf
|
|||||||
go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
|
go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
|
||||||
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
|
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
||||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
|
||||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
|
@ -36,7 +36,7 @@ require (
|
|||||||
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
||||||
github.com/go-logr/logr v1.3.0 // indirect
|
github.com/go-logr/logr v1.3.0 // indirect
|
||||||
github.com/go-logr/stdr v1.2.2 // indirect
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
github.com/go-logr/zapr v1.2.3 // indirect
|
github.com/go-logr/zapr v1.3.0 // indirect
|
||||||
github.com/go-openapi/jsonpointer v0.19.6 // indirect
|
github.com/go-openapi/jsonpointer v0.19.6 // indirect
|
||||||
github.com/go-openapi/jsonreference v0.20.2 // indirect
|
github.com/go-openapi/jsonreference v0.20.2 // indirect
|
||||||
github.com/go-openapi/swag v0.22.3 // indirect
|
github.com/go-openapi/swag v0.22.3 // indirect
|
||||||
@ -77,9 +77,8 @@ require (
|
|||||||
go.opentelemetry.io/otel/sdk v1.19.0 // indirect
|
go.opentelemetry.io/otel/sdk v1.19.0 // indirect
|
||||||
go.opentelemetry.io/otel/trace v1.19.0 // indirect
|
go.opentelemetry.io/otel/trace v1.19.0 // indirect
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
||||||
go.uber.org/atomic v1.10.0 // indirect
|
|
||||||
go.uber.org/multierr v1.11.0 // indirect
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
go.uber.org/zap v1.19.0 // indirect
|
go.uber.org/zap v1.26.0 // indirect
|
||||||
golang.org/x/crypto v0.14.0 // indirect
|
golang.org/x/crypto v0.14.0 // indirect
|
||||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
||||||
golang.org/x/net v0.17.0 // indirect
|
golang.org/x/net v0.17.0 // indirect
|
||||||
|
24
staging/src/k8s.io/pod-security-admission/go.sum
generated
24
staging/src/k8s.io/pod-security-admission/go.sum
generated
@ -129,8 +129,6 @@ github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df/g
|
|||||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
|
|
||||||
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
|
||||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
||||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||||
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
||||||
@ -173,8 +171,8 @@ github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
|||||||
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A=
|
github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
|
||||||
github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
|
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||||
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
||||||
@ -239,7 +237,6 @@ github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHm
|
|||||||
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
|
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
|
||||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
|
||||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||||
@ -267,7 +264,6 @@ github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xl
|
|||||||
github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg=
|
github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg=
|
||||||
github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
|
github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
|
||||||
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
|
||||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
@ -299,9 +295,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
|
|||||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
|
||||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
|
||||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||||
@ -349,16 +343,12 @@ go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmY
|
|||||||
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
|
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
||||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||||
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
|
|
||||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
|
||||||
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
|
|
||||||
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
||||||
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
||||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
|
||||||
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
go.uber.org/zap v1.19.0 h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE=
|
go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
|
||||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
@ -366,11 +356,9 @@ golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
|
|||||||
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
||||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA=
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA=
|
||||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA=
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA=
|
||||||
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
|
||||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
@ -401,8 +389,6 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
|||||||
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
|
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
|
||||||
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
|
||||||
golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||||
@ -428,7 +414,6 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ
|
|||||||
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
||||||
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||||
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
|
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
|
||||||
@ -441,7 +426,6 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
|
k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
|
||||||
|
@ -74,9 +74,8 @@ require (
|
|||||||
go.opentelemetry.io/otel/sdk v1.19.0 // indirect
|
go.opentelemetry.io/otel/sdk v1.19.0 // indirect
|
||||||
go.opentelemetry.io/otel/trace v1.19.0 // indirect
|
go.opentelemetry.io/otel/trace v1.19.0 // indirect
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
||||||
go.uber.org/atomic v1.10.0 // indirect
|
|
||||||
go.uber.org/multierr v1.11.0 // indirect
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
go.uber.org/zap v1.19.0 // indirect
|
go.uber.org/zap v1.26.0 // indirect
|
||||||
golang.org/x/crypto v0.14.0 // indirect
|
golang.org/x/crypto v0.14.0 // indirect
|
||||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
||||||
golang.org/x/mod v0.12.0 // indirect
|
golang.org/x/mod v0.12.0 // indirect
|
||||||
|
24
staging/src/k8s.io/sample-apiserver/go.sum
generated
24
staging/src/k8s.io/sample-apiserver/go.sum
generated
@ -129,8 +129,6 @@ github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df/g
|
|||||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
|
|
||||||
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
|
||||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
||||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||||
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
||||||
@ -174,8 +172,8 @@ github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
|
|||||||
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A=
|
github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
|
||||||
github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
|
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
||||||
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||||
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
||||||
@ -242,7 +240,6 @@ github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHm
|
|||||||
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
|
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
|
||||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
|
||||||
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
@ -271,7 +268,6 @@ github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xl
|
|||||||
github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg=
|
github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg=
|
||||||
github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
|
github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
|
||||||
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
|
||||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
@ -303,9 +299,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
|
|||||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
|
||||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
|
||||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||||
@ -354,16 +348,12 @@ go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmY
|
|||||||
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
|
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
|
||||||
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
|
||||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||||
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
|
|
||||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
|
||||||
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
|
|
||||||
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
||||||
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
||||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
|
||||||
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
go.uber.org/zap v1.19.0 h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE=
|
go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
|
||||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
@ -371,12 +361,10 @@ golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
|
|||||||
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
||||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA=
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA=
|
||||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA=
|
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA=
|
||||||
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
|
||||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
|
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
|
||||||
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
@ -407,8 +395,6 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
|||||||
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
|
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
|
||||||
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
|
||||||
golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
@ -435,7 +421,6 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ
|
|||||||
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
||||||
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||||
@ -449,7 +434,6 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01 h1:pWEwq4Asjm4vjW7vcsmijwBhOr1/shsbSYiWXmNGlks=
|
k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01 h1:pWEwq4Asjm4vjW7vcsmijwBhOr1/shsbSYiWXmNGlks=
|
||||||
|
20
vendor/github.com/go-logr/zapr/.golangci.yaml
generated
vendored
Normal file
20
vendor/github.com/go-logr/zapr/.golangci.yaml
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
issues:
|
||||||
|
exclude-use-default: false
|
||||||
|
|
||||||
|
linters:
|
||||||
|
disable-all: true
|
||||||
|
enable:
|
||||||
|
- asciicheck
|
||||||
|
- errcheck
|
||||||
|
- forcetypeassert
|
||||||
|
- gocritic
|
||||||
|
- gofmt
|
||||||
|
- goimports
|
||||||
|
- gosimple
|
||||||
|
- govet
|
||||||
|
- ineffassign
|
||||||
|
- misspell
|
||||||
|
- revive
|
||||||
|
- staticcheck
|
||||||
|
- typecheck
|
||||||
|
- unused
|
39
vendor/github.com/go-logr/zapr/README.md
generated
vendored
39
vendor/github.com/go-logr/zapr/README.md
generated
vendored
@ -2,12 +2,17 @@ Zapr :zap:
|
|||||||
==========
|
==========
|
||||||
|
|
||||||
A [logr](https://github.com/go-logr/logr) implementation using
|
A [logr](https://github.com/go-logr/logr) implementation using
|
||||||
[Zap](https://github.com/uber-go/zap).
|
[Zap](https://github.com/uber-go/zap). Can also be used as
|
||||||
|
[slog](https://pkg.go.dev/log/slog) handler.
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
Via logr:
|
||||||
|
|
||||||
```go
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
@ -29,6 +34,33 @@ func main() {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Via slog:
|
||||||
|
|
||||||
|
```
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"log/slog"
|
||||||
|
|
||||||
|
"github.com/go-logr/logr/slogr"
|
||||||
|
"github.com/go-logr/zapr"
|
||||||
|
"go.uber.org/zap"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
var log *slog.Logger
|
||||||
|
|
||||||
|
zapLog, err := zap.NewDevelopment()
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Sprintf("who watches the watchmen (%v)?", err))
|
||||||
|
}
|
||||||
|
log = slog.New(slogr.NewSlogHandler(zapr.NewLogger(zapLog)))
|
||||||
|
|
||||||
|
log.Info("Logr in action!", "the answer", 42)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
Increasing Verbosity
|
Increasing Verbosity
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
@ -68,3 +100,8 @@ For the most part, concepts in Zap correspond directly with those in logr.
|
|||||||
Unlike Zap, all fields *must* be in the form of sugared fields --
|
Unlike Zap, all fields *must* be in the form of sugared fields --
|
||||||
it's illegal to pass a strongly-typed Zap field in a key position to any
|
it's illegal to pass a strongly-typed Zap field in a key position to any
|
||||||
of the logging methods (`Log`, `Error`).
|
of the logging methods (`Log`, `Error`).
|
||||||
|
|
||||||
|
The zapr `logr.LogSink` implementation also implements `logr.SlogHandler`. That
|
||||||
|
enables `slogr.NewSlogHandler` to provide a `slog.Handler` which just passes
|
||||||
|
parameters through to zapr. zapr handles special slog values (Group,
|
||||||
|
LogValuer), regardless of which front-end API is used.
|
||||||
|
183
vendor/github.com/go-logr/zapr/slogzapr.go
generated
vendored
Normal file
183
vendor/github.com/go-logr/zapr/slogzapr.go
generated
vendored
Normal file
@ -0,0 +1,183 @@
|
|||||||
|
//go:build go1.21
|
||||||
|
// +build go1.21
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright 2023 The logr Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package zapr
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"log/slog"
|
||||||
|
"runtime"
|
||||||
|
|
||||||
|
"github.com/go-logr/logr/slogr"
|
||||||
|
"go.uber.org/zap"
|
||||||
|
"go.uber.org/zap/zapcore"
|
||||||
|
)
|
||||||
|
|
||||||
|
var _ slogr.SlogSink = &zapLogger{}
|
||||||
|
|
||||||
|
func (zl *zapLogger) Handle(_ context.Context, record slog.Record) error {
|
||||||
|
zapLevel := zap.InfoLevel
|
||||||
|
intLevel := 0
|
||||||
|
isError := false
|
||||||
|
switch {
|
||||||
|
case record.Level >= slog.LevelError:
|
||||||
|
zapLevel = zap.ErrorLevel
|
||||||
|
isError = true
|
||||||
|
case record.Level >= slog.LevelWarn:
|
||||||
|
zapLevel = zap.WarnLevel
|
||||||
|
case record.Level >= 0:
|
||||||
|
// Already set above -> info.
|
||||||
|
default:
|
||||||
|
zapLevel = zapcore.Level(record.Level)
|
||||||
|
intLevel = int(-zapLevel)
|
||||||
|
}
|
||||||
|
|
||||||
|
if checkedEntry := zl.l.Check(zapLevel, record.Message); checkedEntry != nil {
|
||||||
|
checkedEntry.Time = record.Time
|
||||||
|
checkedEntry.Caller = pcToCallerEntry(record.PC)
|
||||||
|
var fieldsBuffer [2]zap.Field
|
||||||
|
fields := fieldsBuffer[:0]
|
||||||
|
if !isError && zl.numericLevelKey != "" {
|
||||||
|
// Record verbosity for info entries.
|
||||||
|
fields = append(fields, zap.Int(zl.numericLevelKey, intLevel))
|
||||||
|
}
|
||||||
|
// Inline all attributes.
|
||||||
|
fields = append(fields, zap.Inline(zapcore.ObjectMarshalerFunc(func(enc zapcore.ObjectEncoder) error {
|
||||||
|
record.Attrs(func(attr slog.Attr) bool {
|
||||||
|
encodeSlog(enc, attr)
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
return nil
|
||||||
|
})))
|
||||||
|
checkedEntry.Write(fields...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func encodeSlog(enc zapcore.ObjectEncoder, attr slog.Attr) {
|
||||||
|
if attr.Equal(slog.Attr{}) {
|
||||||
|
// Ignore empty attribute.
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check in order of expected frequency, most common ones first.
|
||||||
|
//
|
||||||
|
// Usage statistics for parameters from Kubernetes 152876a3e,
|
||||||
|
// calculated with k/k/test/integration/logs/benchmark:
|
||||||
|
//
|
||||||
|
// kube-controller-manager -v10:
|
||||||
|
// strings: 10043 (85%)
|
||||||
|
// with API objects: 2 (0% of all arguments)
|
||||||
|
// types and their number of usage: NodeStatus:2
|
||||||
|
// numbers: 792 (6%)
|
||||||
|
// ObjectRef: 292 (2%)
|
||||||
|
// others: 595 (5%)
|
||||||
|
//
|
||||||
|
// kube-scheduler -v10:
|
||||||
|
// strings: 1325 (40%)
|
||||||
|
// with API objects: 109 (3% of all arguments)
|
||||||
|
// types and their number of usage: PersistentVolume:50 PersistentVolumeClaim:59
|
||||||
|
// numbers: 473 (14%)
|
||||||
|
// ObjectRef: 1305 (39%)
|
||||||
|
// others: 176 (5%)
|
||||||
|
|
||||||
|
kind := attr.Value.Kind()
|
||||||
|
switch kind {
|
||||||
|
case slog.KindString:
|
||||||
|
enc.AddString(attr.Key, attr.Value.String())
|
||||||
|
case slog.KindLogValuer:
|
||||||
|
// This includes klog.KObj.
|
||||||
|
encodeSlog(enc, slog.Attr{
|
||||||
|
Key: attr.Key,
|
||||||
|
Value: attr.Value.Resolve(),
|
||||||
|
})
|
||||||
|
case slog.KindInt64:
|
||||||
|
enc.AddInt64(attr.Key, attr.Value.Int64())
|
||||||
|
case slog.KindUint64:
|
||||||
|
enc.AddUint64(attr.Key, attr.Value.Uint64())
|
||||||
|
case slog.KindFloat64:
|
||||||
|
enc.AddFloat64(attr.Key, attr.Value.Float64())
|
||||||
|
case slog.KindBool:
|
||||||
|
enc.AddBool(attr.Key, attr.Value.Bool())
|
||||||
|
case slog.KindDuration:
|
||||||
|
enc.AddDuration(attr.Key, attr.Value.Duration())
|
||||||
|
case slog.KindTime:
|
||||||
|
enc.AddTime(attr.Key, attr.Value.Time())
|
||||||
|
case slog.KindGroup:
|
||||||
|
attrs := attr.Value.Group()
|
||||||
|
if attr.Key == "" {
|
||||||
|
// Inline group.
|
||||||
|
for _, attr := range attrs {
|
||||||
|
encodeSlog(enc, attr)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if len(attrs) == 0 {
|
||||||
|
// Ignore empty group.
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_ = enc.AddObject(attr.Key, marshalAttrs(attrs))
|
||||||
|
default:
|
||||||
|
// We have to go through reflection in zap.Any to get support
|
||||||
|
// for e.g. fmt.Stringer.
|
||||||
|
zap.Any(attr.Key, attr.Value.Any()).AddTo(enc)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type marshalAttrs []slog.Attr
|
||||||
|
|
||||||
|
func (attrs marshalAttrs) MarshalLogObject(enc zapcore.ObjectEncoder) error {
|
||||||
|
for _, attr := range attrs {
|
||||||
|
encodeSlog(enc, attr)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ zapcore.ObjectMarshaler = marshalAttrs(nil)
|
||||||
|
|
||||||
|
func pcToCallerEntry(pc uintptr) zapcore.EntryCaller {
|
||||||
|
if pc == 0 {
|
||||||
|
return zapcore.EntryCaller{}
|
||||||
|
}
|
||||||
|
// Same as https://cs.opensource.google/go/x/exp/+/642cacee:slog/record.go;drc=642cacee5cc05231f45555a333d07f1005ffc287;l=70
|
||||||
|
fs := runtime.CallersFrames([]uintptr{pc})
|
||||||
|
f, _ := fs.Next()
|
||||||
|
if f.File == "" {
|
||||||
|
return zapcore.EntryCaller{}
|
||||||
|
}
|
||||||
|
return zapcore.EntryCaller{
|
||||||
|
Defined: true,
|
||||||
|
PC: pc,
|
||||||
|
File: f.File,
|
||||||
|
Line: f.Line,
|
||||||
|
Function: f.Function,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (zl *zapLogger) WithAttrs(attrs []slog.Attr) slogr.SlogSink {
|
||||||
|
newLogger := *zl
|
||||||
|
newLogger.l = newLogger.l.With(zap.Inline(marshalAttrs(attrs)))
|
||||||
|
return &newLogger
|
||||||
|
}
|
||||||
|
|
||||||
|
func (zl *zapLogger) WithGroup(name string) slogr.SlogSink {
|
||||||
|
newLogger := *zl
|
||||||
|
newLogger.l = newLogger.l.With(zap.Namespace(name))
|
||||||
|
return &newLogger
|
||||||
|
}
|
15
vendor/github.com/go-logr/zapr/zapr.go
generated
vendored
15
vendor/github.com/go-logr/zapr/zapr.go
generated
vendored
@ -31,14 +31,14 @@ limitations under the License.
|
|||||||
// Package zapr defines an implementation of the github.com/go-logr/logr
|
// Package zapr defines an implementation of the github.com/go-logr/logr
|
||||||
// interfaces built on top of Zap (go.uber.org/zap).
|
// interfaces built on top of Zap (go.uber.org/zap).
|
||||||
//
|
//
|
||||||
// Usage
|
// # Usage
|
||||||
//
|
//
|
||||||
// A new logr.Logger can be constructed from an existing zap.Logger using
|
// A new logr.Logger can be constructed from an existing zap.Logger using
|
||||||
// the NewLogger function:
|
// the NewLogger function:
|
||||||
//
|
//
|
||||||
// log := zapr.NewLogger(someZapLogger)
|
// log := zapr.NewLogger(someZapLogger)
|
||||||
//
|
//
|
||||||
// Implementation Details
|
// # Implementation Details
|
||||||
//
|
//
|
||||||
// For the most part, concepts in Zap correspond directly with those in
|
// For the most part, concepts in Zap correspond directly with those in
|
||||||
// logr.
|
// logr.
|
||||||
@ -168,15 +168,6 @@ func (zl *zapLogger) handleFields(lvl int, args []interface{}, additional ...zap
|
|||||||
return append(fields, additional...)
|
return append(fields, additional...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func zapIt(field string, val interface{}) zap.Field {
|
|
||||||
// Handle types that implement logr.Marshaler: log the replacement
|
|
||||||
// object instead of the original one.
|
|
||||||
if marshaler, ok := val.(logr.Marshaler); ok {
|
|
||||||
field, val = invokeMarshaler(field, marshaler)
|
|
||||||
}
|
|
||||||
return zap.Any(field, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
func invokeMarshaler(field string, m logr.Marshaler) (f string, ret interface{}) {
|
func invokeMarshaler(field string, m logr.Marshaler) (f string, ret interface{}) {
|
||||||
defer func() {
|
defer func() {
|
||||||
if r := recover(); r != nil {
|
if r := recover(); r != nil {
|
||||||
|
34
vendor/github.com/go-logr/zapr/zapr_noslog.go
generated
vendored
Normal file
34
vendor/github.com/go-logr/zapr/zapr_noslog.go
generated
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
//go:build !go1.21
|
||||||
|
// +build !go1.21
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright 2023 The logr Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package zapr
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/go-logr/logr"
|
||||||
|
"go.uber.org/zap"
|
||||||
|
)
|
||||||
|
|
||||||
|
func zapIt(field string, val interface{}) zap.Field {
|
||||||
|
// Handle types that implement logr.Marshaler: log the replacement
|
||||||
|
// object instead of the original one.
|
||||||
|
if marshaler, ok := val.(logr.Marshaler); ok {
|
||||||
|
field, val = invokeMarshaler(field, marshaler)
|
||||||
|
}
|
||||||
|
return zap.Any(field, val)
|
||||||
|
}
|
48
vendor/github.com/go-logr/zapr/zapr_slog.go
generated
vendored
Normal file
48
vendor/github.com/go-logr/zapr/zapr_slog.go
generated
vendored
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
//go:build go1.21
|
||||||
|
// +build go1.21
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright 2023 The logr Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package zapr
|
||||||
|
|
||||||
|
import (
|
||||||
|
"log/slog"
|
||||||
|
|
||||||
|
"github.com/go-logr/logr"
|
||||||
|
"go.uber.org/zap"
|
||||||
|
"go.uber.org/zap/zapcore"
|
||||||
|
)
|
||||||
|
|
||||||
|
func zapIt(field string, val interface{}) zap.Field {
|
||||||
|
switch valTyped := val.(type) {
|
||||||
|
case logr.Marshaler:
|
||||||
|
// Handle types that implement logr.Marshaler: log the replacement
|
||||||
|
// object instead of the original one.
|
||||||
|
field, val = invokeMarshaler(field, valTyped)
|
||||||
|
case slog.LogValuer:
|
||||||
|
// The same for slog.LogValuer. We let slog.Value handle
|
||||||
|
// potential panics and recursion.
|
||||||
|
val = slog.AnyValue(val).Resolve()
|
||||||
|
}
|
||||||
|
if slogValue, ok := val.(slog.Value); ok {
|
||||||
|
return zap.Inline(zapcore.ObjectMarshalerFunc(func(enc zapcore.ObjectEncoder) error {
|
||||||
|
encodeSlog(enc, slog.Attr{Key: field, Value: slogValue})
|
||||||
|
return nil
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
return zap.Any(field, val)
|
||||||
|
}
|
19
vendor/go.uber.org/atomic/.codecov.yml
generated
vendored
19
vendor/go.uber.org/atomic/.codecov.yml
generated
vendored
@ -1,19 +0,0 @@
|
|||||||
coverage:
|
|
||||||
range: 80..100
|
|
||||||
round: down
|
|
||||||
precision: 2
|
|
||||||
|
|
||||||
status:
|
|
||||||
project: # measuring the overall project coverage
|
|
||||||
default: # context, you can create multiple ones with custom titles
|
|
||||||
enabled: yes # must be yes|true to enable this status
|
|
||||||
target: 100 # specify the target coverage for each commit status
|
|
||||||
# option: "auto" (must increase from parent commit or pull request base)
|
|
||||||
# option: "X%" a static target percentage to hit
|
|
||||||
if_not_found: success # if parent is not found report status as success, error, or failure
|
|
||||||
if_ci_failed: error # if ci fails report status as success, error, or failure
|
|
||||||
|
|
||||||
# Also update COVER_IGNORE_PKGS in the Makefile.
|
|
||||||
ignore:
|
|
||||||
- /internal/gen-atomicint/
|
|
||||||
- /internal/gen-valuewrapper/
|
|
15
vendor/go.uber.org/atomic/.gitignore
generated
vendored
15
vendor/go.uber.org/atomic/.gitignore
generated
vendored
@ -1,15 +0,0 @@
|
|||||||
/bin
|
|
||||||
.DS_Store
|
|
||||||
/vendor
|
|
||||||
cover.html
|
|
||||||
cover.out
|
|
||||||
lint.log
|
|
||||||
|
|
||||||
# Binaries
|
|
||||||
*.test
|
|
||||||
|
|
||||||
# Profiling output
|
|
||||||
*.prof
|
|
||||||
|
|
||||||
# Output of fossa analyzer
|
|
||||||
/fossa
|
|
117
vendor/go.uber.org/atomic/CHANGELOG.md
generated
vendored
117
vendor/go.uber.org/atomic/CHANGELOG.md
generated
vendored
@ -1,117 +0,0 @@
|
|||||||
# Changelog
|
|
||||||
All notable changes to this project will be documented in this file.
|
|
||||||
|
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
||||||
|
|
||||||
## [1.10.0] - 2022-08-11
|
|
||||||
### Added
|
|
||||||
- Add `atomic.Float32` type for atomic operations on `float32`.
|
|
||||||
- Add `CompareAndSwap` and `Swap` methods to `atomic.String`, `atomic.Error`,
|
|
||||||
and `atomic.Value`.
|
|
||||||
- Add generic `atomic.Pointer[T]` type for atomic operations on pointers of any
|
|
||||||
type. This is present only for Go 1.18 or higher, and is a drop-in for
|
|
||||||
replacement for the standard library's `sync/atomic.Pointer` type.
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- Deprecate `CAS` methods on all types in favor of corresponding
|
|
||||||
`CompareAndSwap` methods.
|
|
||||||
|
|
||||||
Thanks to @eNV25 and @icpd for their contributions to this release.
|
|
||||||
|
|
||||||
[1.10.0]: https://github.com/uber-go/atomic/compare/v1.9.0...v1.10.0
|
|
||||||
|
|
||||||
## [1.9.0] - 2021-07-15
|
|
||||||
### Added
|
|
||||||
- Add `Float64.Swap` to match int atomic operations.
|
|
||||||
- Add `atomic.Time` type for atomic operations on `time.Time` values.
|
|
||||||
|
|
||||||
[1.9.0]: https://github.com/uber-go/atomic/compare/v1.8.0...v1.9.0
|
|
||||||
|
|
||||||
## [1.8.0] - 2021-06-09
|
|
||||||
### Added
|
|
||||||
- Add `atomic.Uintptr` type for atomic operations on `uintptr` values.
|
|
||||||
- Add `atomic.UnsafePointer` type for atomic operations on `unsafe.Pointer` values.
|
|
||||||
|
|
||||||
[1.8.0]: https://github.com/uber-go/atomic/compare/v1.7.0...v1.8.0
|
|
||||||
|
|
||||||
## [1.7.0] - 2020-09-14
|
|
||||||
### Added
|
|
||||||
- Support JSON serialization and deserialization of primitive atomic types.
|
|
||||||
- Support Text marshalling and unmarshalling for string atomics.
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- Disallow incorrect comparison of atomic values in a non-atomic way.
|
|
||||||
|
|
||||||
### Removed
|
|
||||||
- Remove dependency on `golang.org/x/{lint, tools}`.
|
|
||||||
|
|
||||||
[1.7.0]: https://github.com/uber-go/atomic/compare/v1.6.0...v1.7.0
|
|
||||||
|
|
||||||
## [1.6.0] - 2020-02-24
|
|
||||||
### Changed
|
|
||||||
- Drop library dependency on `golang.org/x/{lint, tools}`.
|
|
||||||
|
|
||||||
[1.6.0]: https://github.com/uber-go/atomic/compare/v1.5.1...v1.6.0
|
|
||||||
|
|
||||||
## [1.5.1] - 2019-11-19
|
|
||||||
- Fix bug where `Bool.CAS` and `Bool.Toggle` do work correctly together
|
|
||||||
causing `CAS` to fail even though the old value matches.
|
|
||||||
|
|
||||||
[1.5.1]: https://github.com/uber-go/atomic/compare/v1.5.0...v1.5.1
|
|
||||||
|
|
||||||
## [1.5.0] - 2019-10-29
|
|
||||||
### Changed
|
|
||||||
- With Go modules, only the `go.uber.org/atomic` import path is supported now.
|
|
||||||
If you need to use the old import path, please add a `replace` directive to
|
|
||||||
your `go.mod`.
|
|
||||||
|
|
||||||
[1.5.0]: https://github.com/uber-go/atomic/compare/v1.4.0...v1.5.0
|
|
||||||
|
|
||||||
## [1.4.0] - 2019-05-01
|
|
||||||
### Added
|
|
||||||
- Add `atomic.Error` type for atomic operations on `error` values.
|
|
||||||
|
|
||||||
[1.4.0]: https://github.com/uber-go/atomic/compare/v1.3.2...v1.4.0
|
|
||||||
|
|
||||||
## [1.3.2] - 2018-05-02
|
|
||||||
### Added
|
|
||||||
- Add `atomic.Duration` type for atomic operations on `time.Duration` values.
|
|
||||||
|
|
||||||
[1.3.2]: https://github.com/uber-go/atomic/compare/v1.3.1...v1.3.2
|
|
||||||
|
|
||||||
## [1.3.1] - 2017-11-14
|
|
||||||
### Fixed
|
|
||||||
- Revert optimization for `atomic.String.Store("")` which caused data races.
|
|
||||||
|
|
||||||
[1.3.1]: https://github.com/uber-go/atomic/compare/v1.3.0...v1.3.1
|
|
||||||
|
|
||||||
## [1.3.0] - 2017-11-13
|
|
||||||
### Added
|
|
||||||
- Add `atomic.Bool.CAS` for compare-and-swap semantics on bools.
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- Optimize `atomic.String.Store("")` by avoiding an allocation.
|
|
||||||
|
|
||||||
[1.3.0]: https://github.com/uber-go/atomic/compare/v1.2.0...v1.3.0
|
|
||||||
|
|
||||||
## [1.2.0] - 2017-04-12
|
|
||||||
### Added
|
|
||||||
- Shadow `atomic.Value` from `sync/atomic`.
|
|
||||||
|
|
||||||
[1.2.0]: https://github.com/uber-go/atomic/compare/v1.1.0...v1.2.0
|
|
||||||
|
|
||||||
## [1.1.0] - 2017-03-10
|
|
||||||
### Added
|
|
||||||
- Add atomic `Float64` type.
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- Support new `go.uber.org/atomic` import path.
|
|
||||||
|
|
||||||
[1.1.0]: https://github.com/uber-go/atomic/compare/v1.0.0...v1.1.0
|
|
||||||
|
|
||||||
## [1.0.0] - 2016-07-18
|
|
||||||
|
|
||||||
- Initial release.
|
|
||||||
|
|
||||||
[1.0.0]: https://github.com/uber-go/atomic/releases/tag/v1.0.0
|
|
19
vendor/go.uber.org/atomic/LICENSE.txt
generated
vendored
19
vendor/go.uber.org/atomic/LICENSE.txt
generated
vendored
@ -1,19 +0,0 @@
|
|||||||
Copyright (c) 2016 Uber Technologies, Inc.
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
79
vendor/go.uber.org/atomic/Makefile
generated
vendored
79
vendor/go.uber.org/atomic/Makefile
generated
vendored
@ -1,79 +0,0 @@
|
|||||||
# Directory to place `go install`ed binaries into.
|
|
||||||
export GOBIN ?= $(shell pwd)/bin
|
|
||||||
|
|
||||||
GOLINT = $(GOBIN)/golint
|
|
||||||
GEN_ATOMICINT = $(GOBIN)/gen-atomicint
|
|
||||||
GEN_ATOMICWRAPPER = $(GOBIN)/gen-atomicwrapper
|
|
||||||
STATICCHECK = $(GOBIN)/staticcheck
|
|
||||||
|
|
||||||
GO_FILES ?= $(shell find . '(' -path .git -o -path vendor ')' -prune -o -name '*.go' -print)
|
|
||||||
|
|
||||||
# Also update ignore section in .codecov.yml.
|
|
||||||
COVER_IGNORE_PKGS = \
|
|
||||||
go.uber.org/atomic/internal/gen-atomicint \
|
|
||||||
go.uber.org/atomic/internal/gen-atomicwrapper
|
|
||||||
|
|
||||||
.PHONY: build
|
|
||||||
build:
|
|
||||||
go build ./...
|
|
||||||
|
|
||||||
.PHONY: test
|
|
||||||
test:
|
|
||||||
go test -race ./...
|
|
||||||
|
|
||||||
.PHONY: gofmt
|
|
||||||
gofmt:
|
|
||||||
$(eval FMT_LOG := $(shell mktemp -t gofmt.XXXXX))
|
|
||||||
gofmt -e -s -l $(GO_FILES) > $(FMT_LOG) || true
|
|
||||||
@[ ! -s "$(FMT_LOG)" ] || (echo "gofmt failed:" && cat $(FMT_LOG) && false)
|
|
||||||
|
|
||||||
$(GOLINT):
|
|
||||||
cd tools && go install golang.org/x/lint/golint
|
|
||||||
|
|
||||||
$(STATICCHECK):
|
|
||||||
cd tools && go install honnef.co/go/tools/cmd/staticcheck
|
|
||||||
|
|
||||||
$(GEN_ATOMICWRAPPER): $(wildcard ./internal/gen-atomicwrapper/*)
|
|
||||||
go build -o $@ ./internal/gen-atomicwrapper
|
|
||||||
|
|
||||||
$(GEN_ATOMICINT): $(wildcard ./internal/gen-atomicint/*)
|
|
||||||
go build -o $@ ./internal/gen-atomicint
|
|
||||||
|
|
||||||
.PHONY: golint
|
|
||||||
golint: $(GOLINT)
|
|
||||||
$(GOLINT) ./...
|
|
||||||
|
|
||||||
.PHONY: staticcheck
|
|
||||||
staticcheck: $(STATICCHECK)
|
|
||||||
$(STATICCHECK) ./...
|
|
||||||
|
|
||||||
.PHONY: lint
|
|
||||||
lint: gofmt golint staticcheck generatenodirty
|
|
||||||
|
|
||||||
# comma separated list of packages to consider for code coverage.
|
|
||||||
COVER_PKG = $(shell \
|
|
||||||
go list -find ./... | \
|
|
||||||
grep -v $(foreach pkg,$(COVER_IGNORE_PKGS),-e "^$(pkg)$$") | \
|
|
||||||
paste -sd, -)
|
|
||||||
|
|
||||||
.PHONY: cover
|
|
||||||
cover:
|
|
||||||
go test -coverprofile=cover.out -coverpkg $(COVER_PKG) -v ./...
|
|
||||||
go tool cover -html=cover.out -o cover.html
|
|
||||||
|
|
||||||
.PHONY: generate
|
|
||||||
generate: $(GEN_ATOMICINT) $(GEN_ATOMICWRAPPER)
|
|
||||||
go generate ./...
|
|
||||||
|
|
||||||
.PHONY: generatenodirty
|
|
||||||
generatenodirty:
|
|
||||||
@[ -z "$$(git status --porcelain)" ] || ( \
|
|
||||||
echo "Working tree is dirty. Commit your changes first."; \
|
|
||||||
git status; \
|
|
||||||
exit 1 )
|
|
||||||
@make generate
|
|
||||||
@status=$$(git status --porcelain); \
|
|
||||||
[ -z "$$status" ] || ( \
|
|
||||||
echo "Working tree is dirty after `make generate`:"; \
|
|
||||||
echo "$$status"; \
|
|
||||||
echo "Please ensure that the generated code is up-to-date." )
|
|
63
vendor/go.uber.org/atomic/README.md
generated
vendored
63
vendor/go.uber.org/atomic/README.md
generated
vendored
@ -1,63 +0,0 @@
|
|||||||
# atomic [![GoDoc][doc-img]][doc] [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] [![Go Report Card][reportcard-img]][reportcard]
|
|
||||||
|
|
||||||
Simple wrappers for primitive types to enforce atomic access.
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
```shell
|
|
||||||
$ go get -u go.uber.org/atomic@v1
|
|
||||||
```
|
|
||||||
|
|
||||||
### Legacy Import Path
|
|
||||||
|
|
||||||
As of v1.5.0, the import path `go.uber.org/atomic` is the only supported way
|
|
||||||
of using this package. If you are using Go modules, this package will fail to
|
|
||||||
compile with the legacy import path path `github.com/uber-go/atomic`.
|
|
||||||
|
|
||||||
We recommend migrating your code to the new import path but if you're unable
|
|
||||||
to do so, or if your dependencies are still using the old import path, you
|
|
||||||
will have to add a `replace` directive to your `go.mod` file downgrading the
|
|
||||||
legacy import path to an older version.
|
|
||||||
|
|
||||||
```
|
|
||||||
replace github.com/uber-go/atomic => github.com/uber-go/atomic v1.4.0
|
|
||||||
```
|
|
||||||
|
|
||||||
You can do so automatically by running the following command.
|
|
||||||
|
|
||||||
```shell
|
|
||||||
$ go mod edit -replace github.com/uber-go/atomic=github.com/uber-go/atomic@v1.4.0
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
The standard library's `sync/atomic` is powerful, but it's easy to forget which
|
|
||||||
variables must be accessed atomically. `go.uber.org/atomic` preserves all the
|
|
||||||
functionality of the standard library, but wraps the primitive types to
|
|
||||||
provide a safer, more convenient API.
|
|
||||||
|
|
||||||
```go
|
|
||||||
var atom atomic.Uint32
|
|
||||||
atom.Store(42)
|
|
||||||
atom.Sub(2)
|
|
||||||
atom.CAS(40, 11)
|
|
||||||
```
|
|
||||||
|
|
||||||
See the [documentation][doc] for a complete API specification.
|
|
||||||
|
|
||||||
## Development Status
|
|
||||||
|
|
||||||
Stable.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Released under the [MIT License](LICENSE.txt).
|
|
||||||
|
|
||||||
[doc-img]: https://godoc.org/github.com/uber-go/atomic?status.svg
|
|
||||||
[doc]: https://godoc.org/go.uber.org/atomic
|
|
||||||
[ci-img]: https://github.com/uber-go/atomic/actions/workflows/go.yml/badge.svg
|
|
||||||
[ci]: https://github.com/uber-go/atomic/actions/workflows/go.yml
|
|
||||||
[cov-img]: https://codecov.io/gh/uber-go/atomic/branch/master/graph/badge.svg
|
|
||||||
[cov]: https://codecov.io/gh/uber-go/atomic
|
|
||||||
[reportcard-img]: https://goreportcard.com/badge/go.uber.org/atomic
|
|
||||||
[reportcard]: https://goreportcard.com/report/go.uber.org/atomic
|
|
88
vendor/go.uber.org/atomic/bool.go
generated
vendored
88
vendor/go.uber.org/atomic/bool.go
generated
vendored
@ -1,88 +0,0 @@
|
|||||||
// @generated Code generated by gen-atomicwrapper.
|
|
||||||
|
|
||||||
// Copyright (c) 2020-2022 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Bool is an atomic type-safe wrapper for bool values.
|
|
||||||
type Bool struct {
|
|
||||||
_ nocmp // disallow non-atomic comparison
|
|
||||||
|
|
||||||
v Uint32
|
|
||||||
}
|
|
||||||
|
|
||||||
var _zeroBool bool
|
|
||||||
|
|
||||||
// NewBool creates a new Bool.
|
|
||||||
func NewBool(val bool) *Bool {
|
|
||||||
x := &Bool{}
|
|
||||||
if val != _zeroBool {
|
|
||||||
x.Store(val)
|
|
||||||
}
|
|
||||||
return x
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load atomically loads the wrapped bool.
|
|
||||||
func (x *Bool) Load() bool {
|
|
||||||
return truthy(x.v.Load())
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store atomically stores the passed bool.
|
|
||||||
func (x *Bool) Store(val bool) {
|
|
||||||
x.v.Store(boolToInt(val))
|
|
||||||
}
|
|
||||||
|
|
||||||
// CAS is an atomic compare-and-swap for bool values.
|
|
||||||
//
|
|
||||||
// Deprecated: Use CompareAndSwap.
|
|
||||||
func (x *Bool) CAS(old, new bool) (swapped bool) {
|
|
||||||
return x.CompareAndSwap(old, new)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CompareAndSwap is an atomic compare-and-swap for bool values.
|
|
||||||
func (x *Bool) CompareAndSwap(old, new bool) (swapped bool) {
|
|
||||||
return x.v.CompareAndSwap(boolToInt(old), boolToInt(new))
|
|
||||||
}
|
|
||||||
|
|
||||||
// Swap atomically stores the given bool and returns the old
|
|
||||||
// value.
|
|
||||||
func (x *Bool) Swap(val bool) (old bool) {
|
|
||||||
return truthy(x.v.Swap(boolToInt(val)))
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON encodes the wrapped bool into JSON.
|
|
||||||
func (x *Bool) MarshalJSON() ([]byte, error) {
|
|
||||||
return json.Marshal(x.Load())
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON decodes a bool from JSON.
|
|
||||||
func (x *Bool) UnmarshalJSON(b []byte) error {
|
|
||||||
var v bool
|
|
||||||
if err := json.Unmarshal(b, &v); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
x.Store(v)
|
|
||||||
return nil
|
|
||||||
}
|
|
23
vendor/go.uber.org/atomic/doc.go
generated
vendored
23
vendor/go.uber.org/atomic/doc.go
generated
vendored
@ -1,23 +0,0 @@
|
|||||||
// Copyright (c) 2020 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
// Package atomic provides simple wrappers around numerics to enforce atomic
|
|
||||||
// access.
|
|
||||||
package atomic
|
|
89
vendor/go.uber.org/atomic/duration.go
generated
vendored
89
vendor/go.uber.org/atomic/duration.go
generated
vendored
@ -1,89 +0,0 @@
|
|||||||
// @generated Code generated by gen-atomicwrapper.
|
|
||||||
|
|
||||||
// Copyright (c) 2020-2022 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Duration is an atomic type-safe wrapper for time.Duration values.
|
|
||||||
type Duration struct {
|
|
||||||
_ nocmp // disallow non-atomic comparison
|
|
||||||
|
|
||||||
v Int64
|
|
||||||
}
|
|
||||||
|
|
||||||
var _zeroDuration time.Duration
|
|
||||||
|
|
||||||
// NewDuration creates a new Duration.
|
|
||||||
func NewDuration(val time.Duration) *Duration {
|
|
||||||
x := &Duration{}
|
|
||||||
if val != _zeroDuration {
|
|
||||||
x.Store(val)
|
|
||||||
}
|
|
||||||
return x
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load atomically loads the wrapped time.Duration.
|
|
||||||
func (x *Duration) Load() time.Duration {
|
|
||||||
return time.Duration(x.v.Load())
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store atomically stores the passed time.Duration.
|
|
||||||
func (x *Duration) Store(val time.Duration) {
|
|
||||||
x.v.Store(int64(val))
|
|
||||||
}
|
|
||||||
|
|
||||||
// CAS is an atomic compare-and-swap for time.Duration values.
|
|
||||||
//
|
|
||||||
// Deprecated: Use CompareAndSwap.
|
|
||||||
func (x *Duration) CAS(old, new time.Duration) (swapped bool) {
|
|
||||||
return x.CompareAndSwap(old, new)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CompareAndSwap is an atomic compare-and-swap for time.Duration values.
|
|
||||||
func (x *Duration) CompareAndSwap(old, new time.Duration) (swapped bool) {
|
|
||||||
return x.v.CompareAndSwap(int64(old), int64(new))
|
|
||||||
}
|
|
||||||
|
|
||||||
// Swap atomically stores the given time.Duration and returns the old
|
|
||||||
// value.
|
|
||||||
func (x *Duration) Swap(val time.Duration) (old time.Duration) {
|
|
||||||
return time.Duration(x.v.Swap(int64(val)))
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON encodes the wrapped time.Duration into JSON.
|
|
||||||
func (x *Duration) MarshalJSON() ([]byte, error) {
|
|
||||||
return json.Marshal(x.Load())
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON decodes a time.Duration from JSON.
|
|
||||||
func (x *Duration) UnmarshalJSON(b []byte) error {
|
|
||||||
var v time.Duration
|
|
||||||
if err := json.Unmarshal(b, &v); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
x.Store(v)
|
|
||||||
return nil
|
|
||||||
}
|
|
40
vendor/go.uber.org/atomic/duration_ext.go
generated
vendored
40
vendor/go.uber.org/atomic/duration_ext.go
generated
vendored
@ -1,40 +0,0 @@
|
|||||||
// Copyright (c) 2020 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
import "time"
|
|
||||||
|
|
||||||
//go:generate bin/gen-atomicwrapper -name=Duration -type=time.Duration -wrapped=Int64 -pack=int64 -unpack=time.Duration -cas -swap -json -imports time -file=duration.go
|
|
||||||
|
|
||||||
// Add atomically adds to the wrapped time.Duration and returns the new value.
|
|
||||||
func (d *Duration) Add(delta time.Duration) time.Duration {
|
|
||||||
return time.Duration(d.v.Add(int64(delta)))
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sub atomically subtracts from the wrapped time.Duration and returns the new value.
|
|
||||||
func (d *Duration) Sub(delta time.Duration) time.Duration {
|
|
||||||
return time.Duration(d.v.Sub(int64(delta)))
|
|
||||||
}
|
|
||||||
|
|
||||||
// String encodes the wrapped value as a string.
|
|
||||||
func (d *Duration) String() string {
|
|
||||||
return d.Load().String()
|
|
||||||
}
|
|
62
vendor/go.uber.org/atomic/error.go
generated
vendored
62
vendor/go.uber.org/atomic/error.go
generated
vendored
@ -1,62 +0,0 @@
|
|||||||
// @generated Code generated by gen-atomicwrapper.
|
|
||||||
|
|
||||||
// Copyright (c) 2020-2022 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
// Error is an atomic type-safe wrapper for error values.
|
|
||||||
type Error struct {
|
|
||||||
_ nocmp // disallow non-atomic comparison
|
|
||||||
|
|
||||||
v Value
|
|
||||||
}
|
|
||||||
|
|
||||||
var _zeroError error
|
|
||||||
|
|
||||||
// NewError creates a new Error.
|
|
||||||
func NewError(val error) *Error {
|
|
||||||
x := &Error{}
|
|
||||||
if val != _zeroError {
|
|
||||||
x.Store(val)
|
|
||||||
}
|
|
||||||
return x
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load atomically loads the wrapped error.
|
|
||||||
func (x *Error) Load() error {
|
|
||||||
return unpackError(x.v.Load())
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store atomically stores the passed error.
|
|
||||||
func (x *Error) Store(val error) {
|
|
||||||
x.v.Store(packError(val))
|
|
||||||
}
|
|
||||||
|
|
||||||
// CompareAndSwap is an atomic compare-and-swap for error values.
|
|
||||||
func (x *Error) CompareAndSwap(old, new error) (swapped bool) {
|
|
||||||
return x.v.CompareAndSwap(packError(old), packError(new))
|
|
||||||
}
|
|
||||||
|
|
||||||
// Swap atomically stores the given error and returns the old
|
|
||||||
// value.
|
|
||||||
func (x *Error) Swap(val error) (old error) {
|
|
||||||
return unpackError(x.v.Swap(packError(val)))
|
|
||||||
}
|
|
39
vendor/go.uber.org/atomic/error_ext.go
generated
vendored
39
vendor/go.uber.org/atomic/error_ext.go
generated
vendored
@ -1,39 +0,0 @@
|
|||||||
// Copyright (c) 2020-2022 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
// atomic.Value panics on nil inputs, or if the underlying type changes.
|
|
||||||
// Stabilize by always storing a custom struct that we control.
|
|
||||||
|
|
||||||
//go:generate bin/gen-atomicwrapper -name=Error -type=error -wrapped=Value -pack=packError -unpack=unpackError -compareandswap -swap -file=error.go
|
|
||||||
|
|
||||||
type packedError struct{ Value error }
|
|
||||||
|
|
||||||
func packError(v error) interface{} {
|
|
||||||
return packedError{v}
|
|
||||||
}
|
|
||||||
|
|
||||||
func unpackError(v interface{}) error {
|
|
||||||
if err, ok := v.(packedError); ok {
|
|
||||||
return err.Value
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
77
vendor/go.uber.org/atomic/float32.go
generated
vendored
77
vendor/go.uber.org/atomic/float32.go
generated
vendored
@ -1,77 +0,0 @@
|
|||||||
// @generated Code generated by gen-atomicwrapper.
|
|
||||||
|
|
||||||
// Copyright (c) 2020-2022 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"math"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Float32 is an atomic type-safe wrapper for float32 values.
|
|
||||||
type Float32 struct {
|
|
||||||
_ nocmp // disallow non-atomic comparison
|
|
||||||
|
|
||||||
v Uint32
|
|
||||||
}
|
|
||||||
|
|
||||||
var _zeroFloat32 float32
|
|
||||||
|
|
||||||
// NewFloat32 creates a new Float32.
|
|
||||||
func NewFloat32(val float32) *Float32 {
|
|
||||||
x := &Float32{}
|
|
||||||
if val != _zeroFloat32 {
|
|
||||||
x.Store(val)
|
|
||||||
}
|
|
||||||
return x
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load atomically loads the wrapped float32.
|
|
||||||
func (x *Float32) Load() float32 {
|
|
||||||
return math.Float32frombits(x.v.Load())
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store atomically stores the passed float32.
|
|
||||||
func (x *Float32) Store(val float32) {
|
|
||||||
x.v.Store(math.Float32bits(val))
|
|
||||||
}
|
|
||||||
|
|
||||||
// Swap atomically stores the given float32 and returns the old
|
|
||||||
// value.
|
|
||||||
func (x *Float32) Swap(val float32) (old float32) {
|
|
||||||
return math.Float32frombits(x.v.Swap(math.Float32bits(val)))
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON encodes the wrapped float32 into JSON.
|
|
||||||
func (x *Float32) MarshalJSON() ([]byte, error) {
|
|
||||||
return json.Marshal(x.Load())
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON decodes a float32 from JSON.
|
|
||||||
func (x *Float32) UnmarshalJSON(b []byte) error {
|
|
||||||
var v float32
|
|
||||||
if err := json.Unmarshal(b, &v); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
x.Store(v)
|
|
||||||
return nil
|
|
||||||
}
|
|
76
vendor/go.uber.org/atomic/float32_ext.go
generated
vendored
76
vendor/go.uber.org/atomic/float32_ext.go
generated
vendored
@ -1,76 +0,0 @@
|
|||||||
// Copyright (c) 2020-2022 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
import (
|
|
||||||
"math"
|
|
||||||
"strconv"
|
|
||||||
)
|
|
||||||
|
|
||||||
//go:generate bin/gen-atomicwrapper -name=Float32 -type=float32 -wrapped=Uint32 -pack=math.Float32bits -unpack=math.Float32frombits -swap -json -imports math -file=float32.go
|
|
||||||
|
|
||||||
// Add atomically adds to the wrapped float32 and returns the new value.
|
|
||||||
func (f *Float32) Add(delta float32) float32 {
|
|
||||||
for {
|
|
||||||
old := f.Load()
|
|
||||||
new := old + delta
|
|
||||||
if f.CAS(old, new) {
|
|
||||||
return new
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sub atomically subtracts from the wrapped float32 and returns the new value.
|
|
||||||
func (f *Float32) Sub(delta float32) float32 {
|
|
||||||
return f.Add(-delta)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CAS is an atomic compare-and-swap for float32 values.
|
|
||||||
//
|
|
||||||
// Deprecated: Use CompareAndSwap
|
|
||||||
func (f *Float32) CAS(old, new float32) (swapped bool) {
|
|
||||||
return f.CompareAndSwap(old, new)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CompareAndSwap is an atomic compare-and-swap for float32 values.
|
|
||||||
//
|
|
||||||
// Note: CompareAndSwap handles NaN incorrectly. NaN != NaN using Go's inbuilt operators
|
|
||||||
// but CompareAndSwap allows a stored NaN to compare equal to a passed in NaN.
|
|
||||||
// This avoids typical CompareAndSwap loops from blocking forever, e.g.,
|
|
||||||
//
|
|
||||||
// for {
|
|
||||||
// old := atom.Load()
|
|
||||||
// new = f(old)
|
|
||||||
// if atom.CompareAndSwap(old, new) {
|
|
||||||
// break
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// If CompareAndSwap did not match NaN to match, then the above would loop forever.
|
|
||||||
func (f *Float32) CompareAndSwap(old, new float32) (swapped bool) {
|
|
||||||
return f.v.CompareAndSwap(math.Float32bits(old), math.Float32bits(new))
|
|
||||||
}
|
|
||||||
|
|
||||||
// String encodes the wrapped value as a string.
|
|
||||||
func (f *Float32) String() string {
|
|
||||||
// 'g' is the behavior for floats with %v.
|
|
||||||
return strconv.FormatFloat(float64(f.Load()), 'g', -1, 32)
|
|
||||||
}
|
|
77
vendor/go.uber.org/atomic/float64.go
generated
vendored
77
vendor/go.uber.org/atomic/float64.go
generated
vendored
@ -1,77 +0,0 @@
|
|||||||
// @generated Code generated by gen-atomicwrapper.
|
|
||||||
|
|
||||||
// Copyright (c) 2020-2022 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"math"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Float64 is an atomic type-safe wrapper for float64 values.
|
|
||||||
type Float64 struct {
|
|
||||||
_ nocmp // disallow non-atomic comparison
|
|
||||||
|
|
||||||
v Uint64
|
|
||||||
}
|
|
||||||
|
|
||||||
var _zeroFloat64 float64
|
|
||||||
|
|
||||||
// NewFloat64 creates a new Float64.
|
|
||||||
func NewFloat64(val float64) *Float64 {
|
|
||||||
x := &Float64{}
|
|
||||||
if val != _zeroFloat64 {
|
|
||||||
x.Store(val)
|
|
||||||
}
|
|
||||||
return x
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load atomically loads the wrapped float64.
|
|
||||||
func (x *Float64) Load() float64 {
|
|
||||||
return math.Float64frombits(x.v.Load())
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store atomically stores the passed float64.
|
|
||||||
func (x *Float64) Store(val float64) {
|
|
||||||
x.v.Store(math.Float64bits(val))
|
|
||||||
}
|
|
||||||
|
|
||||||
// Swap atomically stores the given float64 and returns the old
|
|
||||||
// value.
|
|
||||||
func (x *Float64) Swap(val float64) (old float64) {
|
|
||||||
return math.Float64frombits(x.v.Swap(math.Float64bits(val)))
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON encodes the wrapped float64 into JSON.
|
|
||||||
func (x *Float64) MarshalJSON() ([]byte, error) {
|
|
||||||
return json.Marshal(x.Load())
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON decodes a float64 from JSON.
|
|
||||||
func (x *Float64) UnmarshalJSON(b []byte) error {
|
|
||||||
var v float64
|
|
||||||
if err := json.Unmarshal(b, &v); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
x.Store(v)
|
|
||||||
return nil
|
|
||||||
}
|
|
76
vendor/go.uber.org/atomic/float64_ext.go
generated
vendored
76
vendor/go.uber.org/atomic/float64_ext.go
generated
vendored
@ -1,76 +0,0 @@
|
|||||||
// Copyright (c) 2020-2022 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
import (
|
|
||||||
"math"
|
|
||||||
"strconv"
|
|
||||||
)
|
|
||||||
|
|
||||||
//go:generate bin/gen-atomicwrapper -name=Float64 -type=float64 -wrapped=Uint64 -pack=math.Float64bits -unpack=math.Float64frombits -swap -json -imports math -file=float64.go
|
|
||||||
|
|
||||||
// Add atomically adds to the wrapped float64 and returns the new value.
|
|
||||||
func (f *Float64) Add(delta float64) float64 {
|
|
||||||
for {
|
|
||||||
old := f.Load()
|
|
||||||
new := old + delta
|
|
||||||
if f.CAS(old, new) {
|
|
||||||
return new
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sub atomically subtracts from the wrapped float64 and returns the new value.
|
|
||||||
func (f *Float64) Sub(delta float64) float64 {
|
|
||||||
return f.Add(-delta)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CAS is an atomic compare-and-swap for float64 values.
|
|
||||||
//
|
|
||||||
// Deprecated: Use CompareAndSwap
|
|
||||||
func (f *Float64) CAS(old, new float64) (swapped bool) {
|
|
||||||
return f.CompareAndSwap(old, new)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CompareAndSwap is an atomic compare-and-swap for float64 values.
|
|
||||||
//
|
|
||||||
// Note: CompareAndSwap handles NaN incorrectly. NaN != NaN using Go's inbuilt operators
|
|
||||||
// but CompareAndSwap allows a stored NaN to compare equal to a passed in NaN.
|
|
||||||
// This avoids typical CompareAndSwap loops from blocking forever, e.g.,
|
|
||||||
//
|
|
||||||
// for {
|
|
||||||
// old := atom.Load()
|
|
||||||
// new = f(old)
|
|
||||||
// if atom.CompareAndSwap(old, new) {
|
|
||||||
// break
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// If CompareAndSwap did not match NaN to match, then the above would loop forever.
|
|
||||||
func (f *Float64) CompareAndSwap(old, new float64) (swapped bool) {
|
|
||||||
return f.v.CompareAndSwap(math.Float64bits(old), math.Float64bits(new))
|
|
||||||
}
|
|
||||||
|
|
||||||
// String encodes the wrapped value as a string.
|
|
||||||
func (f *Float64) String() string {
|
|
||||||
// 'g' is the behavior for floats with %v.
|
|
||||||
return strconv.FormatFloat(f.Load(), 'g', -1, 64)
|
|
||||||
}
|
|
27
vendor/go.uber.org/atomic/gen.go
generated
vendored
27
vendor/go.uber.org/atomic/gen.go
generated
vendored
@ -1,27 +0,0 @@
|
|||||||
// Copyright (c) 2020 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
//go:generate bin/gen-atomicint -name=Int32 -wrapped=int32 -file=int32.go
|
|
||||||
//go:generate bin/gen-atomicint -name=Int64 -wrapped=int64 -file=int64.go
|
|
||||||
//go:generate bin/gen-atomicint -name=Uint32 -wrapped=uint32 -unsigned -file=uint32.go
|
|
||||||
//go:generate bin/gen-atomicint -name=Uint64 -wrapped=uint64 -unsigned -file=uint64.go
|
|
||||||
//go:generate bin/gen-atomicint -name=Uintptr -wrapped=uintptr -unsigned -file=uintptr.go
|
|
109
vendor/go.uber.org/atomic/int32.go
generated
vendored
109
vendor/go.uber.org/atomic/int32.go
generated
vendored
@ -1,109 +0,0 @@
|
|||||||
// @generated Code generated by gen-atomicint.
|
|
||||||
|
|
||||||
// Copyright (c) 2020-2022 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"strconv"
|
|
||||||
"sync/atomic"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Int32 is an atomic wrapper around int32.
|
|
||||||
type Int32 struct {
|
|
||||||
_ nocmp // disallow non-atomic comparison
|
|
||||||
|
|
||||||
v int32
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewInt32 creates a new Int32.
|
|
||||||
func NewInt32(val int32) *Int32 {
|
|
||||||
return &Int32{v: val}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load atomically loads the wrapped value.
|
|
||||||
func (i *Int32) Load() int32 {
|
|
||||||
return atomic.LoadInt32(&i.v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add atomically adds to the wrapped int32 and returns the new value.
|
|
||||||
func (i *Int32) Add(delta int32) int32 {
|
|
||||||
return atomic.AddInt32(&i.v, delta)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sub atomically subtracts from the wrapped int32 and returns the new value.
|
|
||||||
func (i *Int32) Sub(delta int32) int32 {
|
|
||||||
return atomic.AddInt32(&i.v, -delta)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Inc atomically increments the wrapped int32 and returns the new value.
|
|
||||||
func (i *Int32) Inc() int32 {
|
|
||||||
return i.Add(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Dec atomically decrements the wrapped int32 and returns the new value.
|
|
||||||
func (i *Int32) Dec() int32 {
|
|
||||||
return i.Sub(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CAS is an atomic compare-and-swap.
|
|
||||||
//
|
|
||||||
// Deprecated: Use CompareAndSwap.
|
|
||||||
func (i *Int32) CAS(old, new int32) (swapped bool) {
|
|
||||||
return i.CompareAndSwap(old, new)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CompareAndSwap is an atomic compare-and-swap.
|
|
||||||
func (i *Int32) CompareAndSwap(old, new int32) (swapped bool) {
|
|
||||||
return atomic.CompareAndSwapInt32(&i.v, old, new)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store atomically stores the passed value.
|
|
||||||
func (i *Int32) Store(val int32) {
|
|
||||||
atomic.StoreInt32(&i.v, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Swap atomically swaps the wrapped int32 and returns the old value.
|
|
||||||
func (i *Int32) Swap(val int32) (old int32) {
|
|
||||||
return atomic.SwapInt32(&i.v, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON encodes the wrapped int32 into JSON.
|
|
||||||
func (i *Int32) MarshalJSON() ([]byte, error) {
|
|
||||||
return json.Marshal(i.Load())
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON decodes JSON into the wrapped int32.
|
|
||||||
func (i *Int32) UnmarshalJSON(b []byte) error {
|
|
||||||
var v int32
|
|
||||||
if err := json.Unmarshal(b, &v); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
i.Store(v)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// String encodes the wrapped value as a string.
|
|
||||||
func (i *Int32) String() string {
|
|
||||||
v := i.Load()
|
|
||||||
return strconv.FormatInt(int64(v), 10)
|
|
||||||
}
|
|
109
vendor/go.uber.org/atomic/int64.go
generated
vendored
109
vendor/go.uber.org/atomic/int64.go
generated
vendored
@ -1,109 +0,0 @@
|
|||||||
// @generated Code generated by gen-atomicint.
|
|
||||||
|
|
||||||
// Copyright (c) 2020-2022 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"strconv"
|
|
||||||
"sync/atomic"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Int64 is an atomic wrapper around int64.
|
|
||||||
type Int64 struct {
|
|
||||||
_ nocmp // disallow non-atomic comparison
|
|
||||||
|
|
||||||
v int64
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewInt64 creates a new Int64.
|
|
||||||
func NewInt64(val int64) *Int64 {
|
|
||||||
return &Int64{v: val}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load atomically loads the wrapped value.
|
|
||||||
func (i *Int64) Load() int64 {
|
|
||||||
return atomic.LoadInt64(&i.v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add atomically adds to the wrapped int64 and returns the new value.
|
|
||||||
func (i *Int64) Add(delta int64) int64 {
|
|
||||||
return atomic.AddInt64(&i.v, delta)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sub atomically subtracts from the wrapped int64 and returns the new value.
|
|
||||||
func (i *Int64) Sub(delta int64) int64 {
|
|
||||||
return atomic.AddInt64(&i.v, -delta)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Inc atomically increments the wrapped int64 and returns the new value.
|
|
||||||
func (i *Int64) Inc() int64 {
|
|
||||||
return i.Add(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Dec atomically decrements the wrapped int64 and returns the new value.
|
|
||||||
func (i *Int64) Dec() int64 {
|
|
||||||
return i.Sub(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CAS is an atomic compare-and-swap.
|
|
||||||
//
|
|
||||||
// Deprecated: Use CompareAndSwap.
|
|
||||||
func (i *Int64) CAS(old, new int64) (swapped bool) {
|
|
||||||
return i.CompareAndSwap(old, new)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CompareAndSwap is an atomic compare-and-swap.
|
|
||||||
func (i *Int64) CompareAndSwap(old, new int64) (swapped bool) {
|
|
||||||
return atomic.CompareAndSwapInt64(&i.v, old, new)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store atomically stores the passed value.
|
|
||||||
func (i *Int64) Store(val int64) {
|
|
||||||
atomic.StoreInt64(&i.v, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Swap atomically swaps the wrapped int64 and returns the old value.
|
|
||||||
func (i *Int64) Swap(val int64) (old int64) {
|
|
||||||
return atomic.SwapInt64(&i.v, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON encodes the wrapped int64 into JSON.
|
|
||||||
func (i *Int64) MarshalJSON() ([]byte, error) {
|
|
||||||
return json.Marshal(i.Load())
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON decodes JSON into the wrapped int64.
|
|
||||||
func (i *Int64) UnmarshalJSON(b []byte) error {
|
|
||||||
var v int64
|
|
||||||
if err := json.Unmarshal(b, &v); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
i.Store(v)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// String encodes the wrapped value as a string.
|
|
||||||
func (i *Int64) String() string {
|
|
||||||
v := i.Load()
|
|
||||||
return strconv.FormatInt(int64(v), 10)
|
|
||||||
}
|
|
35
vendor/go.uber.org/atomic/nocmp.go
generated
vendored
35
vendor/go.uber.org/atomic/nocmp.go
generated
vendored
@ -1,35 +0,0 @@
|
|||||||
// Copyright (c) 2020 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
// nocmp is an uncomparable struct. Embed this inside another struct to make
|
|
||||||
// it uncomparable.
|
|
||||||
//
|
|
||||||
// type Foo struct {
|
|
||||||
// nocmp
|
|
||||||
// // ...
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// This DOES NOT:
|
|
||||||
//
|
|
||||||
// - Disallow shallow copies of structs
|
|
||||||
// - Disallow comparison of pointers to uncomparable structs
|
|
||||||
type nocmp [0]func()
|
|
60
vendor/go.uber.org/atomic/pointer_go118.go
generated
vendored
60
vendor/go.uber.org/atomic/pointer_go118.go
generated
vendored
@ -1,60 +0,0 @@
|
|||||||
// Copyright (c) 2022 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
//go:build go1.18 && !go1.19
|
|
||||||
// +build go1.18,!go1.19
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
import "unsafe"
|
|
||||||
|
|
||||||
type Pointer[T any] struct {
|
|
||||||
_ nocmp // disallow non-atomic comparison
|
|
||||||
p UnsafePointer
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewPointer creates a new Pointer.
|
|
||||||
func NewPointer[T any](v *T) *Pointer[T] {
|
|
||||||
var p Pointer[T]
|
|
||||||
if v != nil {
|
|
||||||
p.p.Store(unsafe.Pointer(v))
|
|
||||||
}
|
|
||||||
return &p
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load atomically loads the wrapped value.
|
|
||||||
func (p *Pointer[T]) Load() *T {
|
|
||||||
return (*T)(p.p.Load())
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store atomically stores the passed value.
|
|
||||||
func (p *Pointer[T]) Store(val *T) {
|
|
||||||
p.p.Store(unsafe.Pointer(val))
|
|
||||||
}
|
|
||||||
|
|
||||||
// Swap atomically swaps the wrapped pointer and returns the old value.
|
|
||||||
func (p *Pointer[T]) Swap(val *T) (old *T) {
|
|
||||||
return (*T)(p.p.Swap(unsafe.Pointer(val)))
|
|
||||||
}
|
|
||||||
|
|
||||||
// CompareAndSwap is an atomic compare-and-swap.
|
|
||||||
func (p *Pointer[T]) CompareAndSwap(old, new *T) (swapped bool) {
|
|
||||||
return p.p.CompareAndSwap(unsafe.Pointer(old), unsafe.Pointer(new))
|
|
||||||
}
|
|
61
vendor/go.uber.org/atomic/pointer_go119.go
generated
vendored
61
vendor/go.uber.org/atomic/pointer_go119.go
generated
vendored
@ -1,61 +0,0 @@
|
|||||||
// Copyright (c) 2022 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
//go:build go1.19
|
|
||||||
// +build go1.19
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
import "sync/atomic"
|
|
||||||
|
|
||||||
// Pointer is an atomic pointer of type *T.
|
|
||||||
type Pointer[T any] struct {
|
|
||||||
_ nocmp // disallow non-atomic comparison
|
|
||||||
p atomic.Pointer[T]
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewPointer creates a new Pointer.
|
|
||||||
func NewPointer[T any](v *T) *Pointer[T] {
|
|
||||||
var p Pointer[T]
|
|
||||||
if v != nil {
|
|
||||||
p.p.Store(v)
|
|
||||||
}
|
|
||||||
return &p
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load atomically loads the wrapped value.
|
|
||||||
func (p *Pointer[T]) Load() *T {
|
|
||||||
return p.p.Load()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store atomically stores the passed value.
|
|
||||||
func (p *Pointer[T]) Store(val *T) {
|
|
||||||
p.p.Store(val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Swap atomically swaps the wrapped pointer and returns the old value.
|
|
||||||
func (p *Pointer[T]) Swap(val *T) (old *T) {
|
|
||||||
return p.p.Swap(val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CompareAndSwap is an atomic compare-and-swap.
|
|
||||||
func (p *Pointer[T]) CompareAndSwap(old, new *T) (swapped bool) {
|
|
||||||
return p.p.CompareAndSwap(old, new)
|
|
||||||
}
|
|
65
vendor/go.uber.org/atomic/string.go
generated
vendored
65
vendor/go.uber.org/atomic/string.go
generated
vendored
@ -1,65 +0,0 @@
|
|||||||
// @generated Code generated by gen-atomicwrapper.
|
|
||||||
|
|
||||||
// Copyright (c) 2020-2022 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
// String is an atomic type-safe wrapper for string values.
|
|
||||||
type String struct {
|
|
||||||
_ nocmp // disallow non-atomic comparison
|
|
||||||
|
|
||||||
v Value
|
|
||||||
}
|
|
||||||
|
|
||||||
var _zeroString string
|
|
||||||
|
|
||||||
// NewString creates a new String.
|
|
||||||
func NewString(val string) *String {
|
|
||||||
x := &String{}
|
|
||||||
if val != _zeroString {
|
|
||||||
x.Store(val)
|
|
||||||
}
|
|
||||||
return x
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load atomically loads the wrapped string.
|
|
||||||
func (x *String) Load() string {
|
|
||||||
if v := x.v.Load(); v != nil {
|
|
||||||
return v.(string)
|
|
||||||
}
|
|
||||||
return _zeroString
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store atomically stores the passed string.
|
|
||||||
func (x *String) Store(val string) {
|
|
||||||
x.v.Store(val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CompareAndSwap is an atomic compare-and-swap for string values.
|
|
||||||
func (x *String) CompareAndSwap(old, new string) (swapped bool) {
|
|
||||||
return x.v.CompareAndSwap(old, new)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Swap atomically stores the given string and returns the old
|
|
||||||
// value.
|
|
||||||
func (x *String) Swap(val string) (old string) {
|
|
||||||
return x.v.Swap(val).(string)
|
|
||||||
}
|
|
43
vendor/go.uber.org/atomic/string_ext.go
generated
vendored
43
vendor/go.uber.org/atomic/string_ext.go
generated
vendored
@ -1,43 +0,0 @@
|
|||||||
// Copyright (c) 2020-2022 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
//go:generate bin/gen-atomicwrapper -name=String -type=string -wrapped=Value -compareandswap -swap -file=string.go
|
|
||||||
|
|
||||||
// String returns the wrapped value.
|
|
||||||
func (s *String) String() string {
|
|
||||||
return s.Load()
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalText encodes the wrapped string into a textual form.
|
|
||||||
//
|
|
||||||
// This makes it encodable as JSON, YAML, XML, and more.
|
|
||||||
func (s *String) MarshalText() ([]byte, error) {
|
|
||||||
return []byte(s.Load()), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalText decodes text and replaces the wrapped string with it.
|
|
||||||
//
|
|
||||||
// This makes it decodable from JSON, YAML, XML, and more.
|
|
||||||
func (s *String) UnmarshalText(b []byte) error {
|
|
||||||
s.Store(string(b))
|
|
||||||
return nil
|
|
||||||
}
|
|
109
vendor/go.uber.org/atomic/uint32.go
generated
vendored
109
vendor/go.uber.org/atomic/uint32.go
generated
vendored
@ -1,109 +0,0 @@
|
|||||||
// @generated Code generated by gen-atomicint.
|
|
||||||
|
|
||||||
// Copyright (c) 2020-2022 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"strconv"
|
|
||||||
"sync/atomic"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Uint32 is an atomic wrapper around uint32.
|
|
||||||
type Uint32 struct {
|
|
||||||
_ nocmp // disallow non-atomic comparison
|
|
||||||
|
|
||||||
v uint32
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewUint32 creates a new Uint32.
|
|
||||||
func NewUint32(val uint32) *Uint32 {
|
|
||||||
return &Uint32{v: val}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load atomically loads the wrapped value.
|
|
||||||
func (i *Uint32) Load() uint32 {
|
|
||||||
return atomic.LoadUint32(&i.v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add atomically adds to the wrapped uint32 and returns the new value.
|
|
||||||
func (i *Uint32) Add(delta uint32) uint32 {
|
|
||||||
return atomic.AddUint32(&i.v, delta)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sub atomically subtracts from the wrapped uint32 and returns the new value.
|
|
||||||
func (i *Uint32) Sub(delta uint32) uint32 {
|
|
||||||
return atomic.AddUint32(&i.v, ^(delta - 1))
|
|
||||||
}
|
|
||||||
|
|
||||||
// Inc atomically increments the wrapped uint32 and returns the new value.
|
|
||||||
func (i *Uint32) Inc() uint32 {
|
|
||||||
return i.Add(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Dec atomically decrements the wrapped uint32 and returns the new value.
|
|
||||||
func (i *Uint32) Dec() uint32 {
|
|
||||||
return i.Sub(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CAS is an atomic compare-and-swap.
|
|
||||||
//
|
|
||||||
// Deprecated: Use CompareAndSwap.
|
|
||||||
func (i *Uint32) CAS(old, new uint32) (swapped bool) {
|
|
||||||
return i.CompareAndSwap(old, new)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CompareAndSwap is an atomic compare-and-swap.
|
|
||||||
func (i *Uint32) CompareAndSwap(old, new uint32) (swapped bool) {
|
|
||||||
return atomic.CompareAndSwapUint32(&i.v, old, new)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store atomically stores the passed value.
|
|
||||||
func (i *Uint32) Store(val uint32) {
|
|
||||||
atomic.StoreUint32(&i.v, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Swap atomically swaps the wrapped uint32 and returns the old value.
|
|
||||||
func (i *Uint32) Swap(val uint32) (old uint32) {
|
|
||||||
return atomic.SwapUint32(&i.v, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON encodes the wrapped uint32 into JSON.
|
|
||||||
func (i *Uint32) MarshalJSON() ([]byte, error) {
|
|
||||||
return json.Marshal(i.Load())
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON decodes JSON into the wrapped uint32.
|
|
||||||
func (i *Uint32) UnmarshalJSON(b []byte) error {
|
|
||||||
var v uint32
|
|
||||||
if err := json.Unmarshal(b, &v); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
i.Store(v)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// String encodes the wrapped value as a string.
|
|
||||||
func (i *Uint32) String() string {
|
|
||||||
v := i.Load()
|
|
||||||
return strconv.FormatUint(uint64(v), 10)
|
|
||||||
}
|
|
109
vendor/go.uber.org/atomic/uint64.go
generated
vendored
109
vendor/go.uber.org/atomic/uint64.go
generated
vendored
@ -1,109 +0,0 @@
|
|||||||
// @generated Code generated by gen-atomicint.
|
|
||||||
|
|
||||||
// Copyright (c) 2020-2022 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"strconv"
|
|
||||||
"sync/atomic"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Uint64 is an atomic wrapper around uint64.
|
|
||||||
type Uint64 struct {
|
|
||||||
_ nocmp // disallow non-atomic comparison
|
|
||||||
|
|
||||||
v uint64
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewUint64 creates a new Uint64.
|
|
||||||
func NewUint64(val uint64) *Uint64 {
|
|
||||||
return &Uint64{v: val}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load atomically loads the wrapped value.
|
|
||||||
func (i *Uint64) Load() uint64 {
|
|
||||||
return atomic.LoadUint64(&i.v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add atomically adds to the wrapped uint64 and returns the new value.
|
|
||||||
func (i *Uint64) Add(delta uint64) uint64 {
|
|
||||||
return atomic.AddUint64(&i.v, delta)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sub atomically subtracts from the wrapped uint64 and returns the new value.
|
|
||||||
func (i *Uint64) Sub(delta uint64) uint64 {
|
|
||||||
return atomic.AddUint64(&i.v, ^(delta - 1))
|
|
||||||
}
|
|
||||||
|
|
||||||
// Inc atomically increments the wrapped uint64 and returns the new value.
|
|
||||||
func (i *Uint64) Inc() uint64 {
|
|
||||||
return i.Add(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Dec atomically decrements the wrapped uint64 and returns the new value.
|
|
||||||
func (i *Uint64) Dec() uint64 {
|
|
||||||
return i.Sub(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CAS is an atomic compare-and-swap.
|
|
||||||
//
|
|
||||||
// Deprecated: Use CompareAndSwap.
|
|
||||||
func (i *Uint64) CAS(old, new uint64) (swapped bool) {
|
|
||||||
return i.CompareAndSwap(old, new)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CompareAndSwap is an atomic compare-and-swap.
|
|
||||||
func (i *Uint64) CompareAndSwap(old, new uint64) (swapped bool) {
|
|
||||||
return atomic.CompareAndSwapUint64(&i.v, old, new)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store atomically stores the passed value.
|
|
||||||
func (i *Uint64) Store(val uint64) {
|
|
||||||
atomic.StoreUint64(&i.v, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Swap atomically swaps the wrapped uint64 and returns the old value.
|
|
||||||
func (i *Uint64) Swap(val uint64) (old uint64) {
|
|
||||||
return atomic.SwapUint64(&i.v, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON encodes the wrapped uint64 into JSON.
|
|
||||||
func (i *Uint64) MarshalJSON() ([]byte, error) {
|
|
||||||
return json.Marshal(i.Load())
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON decodes JSON into the wrapped uint64.
|
|
||||||
func (i *Uint64) UnmarshalJSON(b []byte) error {
|
|
||||||
var v uint64
|
|
||||||
if err := json.Unmarshal(b, &v); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
i.Store(v)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// String encodes the wrapped value as a string.
|
|
||||||
func (i *Uint64) String() string {
|
|
||||||
v := i.Load()
|
|
||||||
return strconv.FormatUint(uint64(v), 10)
|
|
||||||
}
|
|
109
vendor/go.uber.org/atomic/uintptr.go
generated
vendored
109
vendor/go.uber.org/atomic/uintptr.go
generated
vendored
@ -1,109 +0,0 @@
|
|||||||
// @generated Code generated by gen-atomicint.
|
|
||||||
|
|
||||||
// Copyright (c) 2020-2022 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"strconv"
|
|
||||||
"sync/atomic"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Uintptr is an atomic wrapper around uintptr.
|
|
||||||
type Uintptr struct {
|
|
||||||
_ nocmp // disallow non-atomic comparison
|
|
||||||
|
|
||||||
v uintptr
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewUintptr creates a new Uintptr.
|
|
||||||
func NewUintptr(val uintptr) *Uintptr {
|
|
||||||
return &Uintptr{v: val}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load atomically loads the wrapped value.
|
|
||||||
func (i *Uintptr) Load() uintptr {
|
|
||||||
return atomic.LoadUintptr(&i.v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add atomically adds to the wrapped uintptr and returns the new value.
|
|
||||||
func (i *Uintptr) Add(delta uintptr) uintptr {
|
|
||||||
return atomic.AddUintptr(&i.v, delta)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sub atomically subtracts from the wrapped uintptr and returns the new value.
|
|
||||||
func (i *Uintptr) Sub(delta uintptr) uintptr {
|
|
||||||
return atomic.AddUintptr(&i.v, ^(delta - 1))
|
|
||||||
}
|
|
||||||
|
|
||||||
// Inc atomically increments the wrapped uintptr and returns the new value.
|
|
||||||
func (i *Uintptr) Inc() uintptr {
|
|
||||||
return i.Add(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Dec atomically decrements the wrapped uintptr and returns the new value.
|
|
||||||
func (i *Uintptr) Dec() uintptr {
|
|
||||||
return i.Sub(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CAS is an atomic compare-and-swap.
|
|
||||||
//
|
|
||||||
// Deprecated: Use CompareAndSwap.
|
|
||||||
func (i *Uintptr) CAS(old, new uintptr) (swapped bool) {
|
|
||||||
return i.CompareAndSwap(old, new)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CompareAndSwap is an atomic compare-and-swap.
|
|
||||||
func (i *Uintptr) CompareAndSwap(old, new uintptr) (swapped bool) {
|
|
||||||
return atomic.CompareAndSwapUintptr(&i.v, old, new)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store atomically stores the passed value.
|
|
||||||
func (i *Uintptr) Store(val uintptr) {
|
|
||||||
atomic.StoreUintptr(&i.v, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Swap atomically swaps the wrapped uintptr and returns the old value.
|
|
||||||
func (i *Uintptr) Swap(val uintptr) (old uintptr) {
|
|
||||||
return atomic.SwapUintptr(&i.v, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON encodes the wrapped uintptr into JSON.
|
|
||||||
func (i *Uintptr) MarshalJSON() ([]byte, error) {
|
|
||||||
return json.Marshal(i.Load())
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON decodes JSON into the wrapped uintptr.
|
|
||||||
func (i *Uintptr) UnmarshalJSON(b []byte) error {
|
|
||||||
var v uintptr
|
|
||||||
if err := json.Unmarshal(b, &v); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
i.Store(v)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// String encodes the wrapped value as a string.
|
|
||||||
func (i *Uintptr) String() string {
|
|
||||||
v := i.Load()
|
|
||||||
return strconv.FormatUint(uint64(v), 10)
|
|
||||||
}
|
|
65
vendor/go.uber.org/atomic/unsafe_pointer.go
generated
vendored
65
vendor/go.uber.org/atomic/unsafe_pointer.go
generated
vendored
@ -1,65 +0,0 @@
|
|||||||
// Copyright (c) 2021-2022 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package atomic
|
|
||||||
|
|
||||||
import (
|
|
||||||
"sync/atomic"
|
|
||||||
"unsafe"
|
|
||||||
)
|
|
||||||
|
|
||||||
// UnsafePointer is an atomic wrapper around unsafe.Pointer.
|
|
||||||
type UnsafePointer struct {
|
|
||||||
_ nocmp // disallow non-atomic comparison
|
|
||||||
|
|
||||||
v unsafe.Pointer
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewUnsafePointer creates a new UnsafePointer.
|
|
||||||
func NewUnsafePointer(val unsafe.Pointer) *UnsafePointer {
|
|
||||||
return &UnsafePointer{v: val}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load atomically loads the wrapped value.
|
|
||||||
func (p *UnsafePointer) Load() unsafe.Pointer {
|
|
||||||
return atomic.LoadPointer(&p.v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store atomically stores the passed value.
|
|
||||||
func (p *UnsafePointer) Store(val unsafe.Pointer) {
|
|
||||||
atomic.StorePointer(&p.v, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Swap atomically swaps the wrapped unsafe.Pointer and returns the old value.
|
|
||||||
func (p *UnsafePointer) Swap(val unsafe.Pointer) (old unsafe.Pointer) {
|
|
||||||
return atomic.SwapPointer(&p.v, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CAS is an atomic compare-and-swap.
|
|
||||||
//
|
|
||||||
// Deprecated: Use CompareAndSwap
|
|
||||||
func (p *UnsafePointer) CAS(old, new unsafe.Pointer) (swapped bool) {
|
|
||||||
return p.CompareAndSwap(old, new)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CompareAndSwap is an atomic compare-and-swap.
|
|
||||||
func (p *UnsafePointer) CompareAndSwap(old, new unsafe.Pointer) (swapped bool) {
|
|
||||||
return atomic.CompareAndSwapPointer(&p.v, old, new)
|
|
||||||
}
|
|
77
vendor/go.uber.org/zap/.golangci.yml
generated
vendored
Normal file
77
vendor/go.uber.org/zap/.golangci.yml
generated
vendored
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
output:
|
||||||
|
# Make output more digestible with quickfix in vim/emacs/etc.
|
||||||
|
sort-results: true
|
||||||
|
print-issued-lines: false
|
||||||
|
|
||||||
|
linters:
|
||||||
|
# We'll track the golangci-lint default linters manually
|
||||||
|
# instead of letting them change without our control.
|
||||||
|
disable-all: true
|
||||||
|
enable:
|
||||||
|
# golangci-lint defaults:
|
||||||
|
- errcheck
|
||||||
|
- gosimple
|
||||||
|
- govet
|
||||||
|
- ineffassign
|
||||||
|
- staticcheck
|
||||||
|
- unused
|
||||||
|
|
||||||
|
# Our own extras:
|
||||||
|
- gofmt
|
||||||
|
- nolintlint # lints nolint directives
|
||||||
|
- revive
|
||||||
|
|
||||||
|
linters-settings:
|
||||||
|
govet:
|
||||||
|
# These govet checks are disabled by default, but they're useful.
|
||||||
|
enable:
|
||||||
|
- niliness
|
||||||
|
- reflectvaluecompare
|
||||||
|
- sortslice
|
||||||
|
- unusedwrite
|
||||||
|
|
||||||
|
errcheck:
|
||||||
|
exclude-functions:
|
||||||
|
# These methods can not fail.
|
||||||
|
# They operate on an in-memory buffer.
|
||||||
|
- (*go.uber.org/zap/buffer.Buffer).Write
|
||||||
|
- (*go.uber.org/zap/buffer.Buffer).WriteByte
|
||||||
|
- (*go.uber.org/zap/buffer.Buffer).WriteString
|
||||||
|
|
||||||
|
- (*go.uber.org/zap/zapio.Writer).Close
|
||||||
|
- (*go.uber.org/zap/zapio.Writer).Sync
|
||||||
|
- (*go.uber.org/zap/zapio.Writer).Write
|
||||||
|
# Write to zapio.Writer cannot fail,
|
||||||
|
# so io.WriteString on it cannot fail.
|
||||||
|
- io.WriteString(*go.uber.org/zap/zapio.Writer)
|
||||||
|
|
||||||
|
# Writing a plain string to a fmt.State cannot fail.
|
||||||
|
- io.WriteString(fmt.State)
|
||||||
|
|
||||||
|
issues:
|
||||||
|
# Print all issues reported by all linters.
|
||||||
|
max-issues-per-linter: 0
|
||||||
|
max-same-issues: 0
|
||||||
|
|
||||||
|
# Don't ignore some of the issues that golangci-lint considers okay.
|
||||||
|
# This includes documenting all exported entities.
|
||||||
|
exclude-use-default: false
|
||||||
|
|
||||||
|
exclude-rules:
|
||||||
|
# Don't warn on unused parameters.
|
||||||
|
# Parameter names are useful; replacing them with '_' is undesirable.
|
||||||
|
- linters: [revive]
|
||||||
|
text: 'unused-parameter: parameter \S+ seems to be unused, consider removing or renaming it as _'
|
||||||
|
|
||||||
|
# staticcheck already has smarter checks for empty blocks.
|
||||||
|
# revive's empty-block linter has false positives.
|
||||||
|
# For example, as of writing this, the following is not allowed.
|
||||||
|
# for foo() { }
|
||||||
|
- linters: [revive]
|
||||||
|
text: 'empty-block: this block is empty, you can remove it'
|
||||||
|
|
||||||
|
# Ignore logger.Sync() errcheck failures in example_test.go
|
||||||
|
# since those are intended to be uncomplicated examples.
|
||||||
|
- linters: [errcheck]
|
||||||
|
path: example_test.go
|
||||||
|
text: 'Error return value of `logger.Sync` is not checked'
|
12
vendor/go.uber.org/zap/.readme.tmpl
generated
vendored
12
vendor/go.uber.org/zap/.readme.tmpl
generated
vendored
@ -96,14 +96,14 @@ Released under the [MIT License](LICENSE.txt).
|
|||||||
|
|
||||||
<sup id="footnote-versions">1</sup> In particular, keep in mind that we may be
|
<sup id="footnote-versions">1</sup> In particular, keep in mind that we may be
|
||||||
benchmarking against slightly older versions of other packages. Versions are
|
benchmarking against slightly older versions of other packages. Versions are
|
||||||
pinned in zap's [glide.lock][] file. [↩](#anchor-versions)
|
pinned in the [benchmarks/go.mod][] file. [↩](#anchor-versions)
|
||||||
|
|
||||||
[doc-img]: https://godoc.org/go.uber.org/zap?status.svg
|
[doc-img]: https://pkg.go.dev/badge/go.uber.org/zap
|
||||||
[doc]: https://godoc.org/go.uber.org/zap
|
[doc]: https://pkg.go.dev/go.uber.org/zap
|
||||||
[ci-img]: https://travis-ci.com/uber-go/zap.svg?branch=master
|
[ci-img]: https://github.com/uber-go/zap/actions/workflows/go.yml/badge.svg
|
||||||
[ci]: https://travis-ci.com/uber-go/zap
|
[ci]: https://github.com/uber-go/zap/actions/workflows/go.yml
|
||||||
[cov-img]: https://codecov.io/gh/uber-go/zap/branch/master/graph/badge.svg
|
[cov-img]: https://codecov.io/gh/uber-go/zap/branch/master/graph/badge.svg
|
||||||
[cov]: https://codecov.io/gh/uber-go/zap
|
[cov]: https://codecov.io/gh/uber-go/zap
|
||||||
[benchmarking suite]: https://github.com/uber-go/zap/tree/master/benchmarks
|
[benchmarking suite]: https://github.com/uber-go/zap/tree/master/benchmarks
|
||||||
[glide.lock]: https://github.com/uber-go/zap/blob/master/glide.lock
|
[benchmarks/go.mod]: https://github.com/uber-go/zap/blob/master/benchmarks/go.mod
|
||||||
|
|
||||||
|
351
vendor/go.uber.org/zap/CHANGELOG.md
generated
vendored
351
vendor/go.uber.org/zap/CHANGELOG.md
generated
vendored
@ -1,4 +1,148 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## 1.26.0 (14 Sep 2023)
|
||||||
|
Enhancements:
|
||||||
|
* [#1319][]: Add `WithLazy` method to `Logger` which lazily evaluates the structured
|
||||||
|
context.
|
||||||
|
* [#1350][]: String encoding is much (~50%) faster now.
|
||||||
|
|
||||||
|
Thanks to @jquirke, @cdvr1993 for their contributions to this release.
|
||||||
|
|
||||||
|
[#1319]: https://github.com/uber-go/zap/pull/1319
|
||||||
|
[#1350]: https://github.com/uber-go/zap/pull/1350
|
||||||
|
|
||||||
|
## 1.25.0 (1 Aug 2023)
|
||||||
|
|
||||||
|
This release contains several improvements including performance, API additions,
|
||||||
|
and two new experimental packages whose APIs are unstable and may change in the
|
||||||
|
future.
|
||||||
|
|
||||||
|
Enhancements:
|
||||||
|
* [#1246][]: Add `zap/exp/zapslog` package for integration with slog.
|
||||||
|
* [#1273][]: Add `Name` to `Logger` which returns the Logger's name if one is set.
|
||||||
|
* [#1281][]: Add `zap/exp/expfield` package which contains helper methods
|
||||||
|
`Str` and `Strs` for constructing String-like zap.Fields.
|
||||||
|
* [#1310][]: Reduce stack size on `Any`.
|
||||||
|
|
||||||
|
Thanks to @knight42, @dzakaammar, @bcspragu, and @rexywork for their contributions
|
||||||
|
to this release.
|
||||||
|
|
||||||
|
[#1246]: https://github.com/uber-go/zap/pull/1246
|
||||||
|
[#1273]: https://github.com/uber-go/zap/pull/1273
|
||||||
|
[#1281]: https://github.com/uber-go/zap/pull/1281
|
||||||
|
[#1310]: https://github.com/uber-go/zap/pull/1310
|
||||||
|
|
||||||
|
## 1.24.0 (30 Nov 2022)
|
||||||
|
|
||||||
|
Enhancements:
|
||||||
|
* [#1148][]: Add `Level` to both `Logger` and `SugaredLogger` that reports the
|
||||||
|
current minimum enabled log level.
|
||||||
|
* [#1185][]: `SugaredLogger` turns errors to zap.Error automatically.
|
||||||
|
|
||||||
|
Thanks to @Abirdcfly, @craigpastro, @nnnkkk7, and @sashamelentyev for their
|
||||||
|
contributions to this release.
|
||||||
|
|
||||||
|
[#1148]: https://github.coml/uber-go/zap/pull/1148
|
||||||
|
[#1185]: https://github.coml/uber-go/zap/pull/1185
|
||||||
|
|
||||||
|
## 1.23.0 (24 Aug 2022)
|
||||||
|
|
||||||
|
Enhancements:
|
||||||
|
* [#1147][]: Add a `zapcore.LevelOf` function to determine the level of a
|
||||||
|
`LevelEnabler` or `Core`.
|
||||||
|
* [#1155][]: Add `zap.Stringers` field constructor to log arrays of objects
|
||||||
|
that implement `String() string`.
|
||||||
|
|
||||||
|
[#1147]: https://github.com/uber-go/zap/pull/1147
|
||||||
|
[#1155]: https://github.com/uber-go/zap/pull/1155
|
||||||
|
|
||||||
|
## 1.22.0 (8 Aug 2022)
|
||||||
|
|
||||||
|
Enhancements:
|
||||||
|
* [#1071][]: Add `zap.Objects` and `zap.ObjectValues` field constructors to log
|
||||||
|
arrays of objects. With these two constructors, you don't need to implement
|
||||||
|
`zapcore.ArrayMarshaler` for use with `zap.Array` if those objects implement
|
||||||
|
`zapcore.ObjectMarshaler`.
|
||||||
|
* [#1079][]: Add `SugaredLogger.WithOptions` to build a copy of an existing
|
||||||
|
`SugaredLogger` with the provided options applied.
|
||||||
|
* [#1080][]: Add `*ln` variants to `SugaredLogger` for each log level.
|
||||||
|
These functions provide a string joining behavior similar to `fmt.Println`.
|
||||||
|
* [#1088][]: Add `zap.WithFatalHook` option to control the behavior of the
|
||||||
|
logger for `Fatal`-level log entries. This defaults to exiting the program.
|
||||||
|
* [#1108][]: Add a `zap.Must` function that you can use with `NewProduction` or
|
||||||
|
`NewDevelopment` to panic if the system was unable to build the logger.
|
||||||
|
* [#1118][]: Add a `Logger.Log` method that allows specifying the log level for
|
||||||
|
a statement dynamically.
|
||||||
|
|
||||||
|
Thanks to @cardil, @craigpastro, @sashamelentyev, @shota3506, and @zhupeijun
|
||||||
|
for their contributions to this release.
|
||||||
|
|
||||||
|
[#1071]: https://github.com/uber-go/zap/pull/1071
|
||||||
|
[#1079]: https://github.com/uber-go/zap/pull/1079
|
||||||
|
[#1080]: https://github.com/uber-go/zap/pull/1080
|
||||||
|
[#1088]: https://github.com/uber-go/zap/pull/1088
|
||||||
|
[#1108]: https://github.com/uber-go/zap/pull/1108
|
||||||
|
[#1118]: https://github.com/uber-go/zap/pull/1118
|
||||||
|
|
||||||
|
## 1.21.0 (7 Feb 2022)
|
||||||
|
|
||||||
|
Enhancements:
|
||||||
|
* [#1047][]: Add `zapcore.ParseLevel` to parse a `Level` from a string.
|
||||||
|
* [#1048][]: Add `zap.ParseAtomicLevel` to parse an `AtomicLevel` from a
|
||||||
|
string.
|
||||||
|
|
||||||
|
Bugfixes:
|
||||||
|
* [#1058][]: Fix panic in JSON encoder when `EncodeLevel` is unset.
|
||||||
|
|
||||||
|
Other changes:
|
||||||
|
* [#1052][]: Improve encoding performance when the `AddCaller` and
|
||||||
|
`AddStacktrace` options are used together.
|
||||||
|
|
||||||
|
[#1047]: https://github.com/uber-go/zap/pull/1047
|
||||||
|
[#1048]: https://github.com/uber-go/zap/pull/1048
|
||||||
|
[#1052]: https://github.com/uber-go/zap/pull/1052
|
||||||
|
[#1058]: https://github.com/uber-go/zap/pull/1058
|
||||||
|
|
||||||
|
Thanks to @aerosol and @Techassi for their contributions to this release.
|
||||||
|
|
||||||
|
## 1.20.0 (4 Jan 2022)
|
||||||
|
|
||||||
|
Enhancements:
|
||||||
|
* [#989][]: Add `EncoderConfig.SkipLineEnding` flag to disable adding newline
|
||||||
|
characters between log statements.
|
||||||
|
* [#1039][]: Add `EncoderConfig.NewReflectedEncoder` field to customize JSON
|
||||||
|
encoding of reflected log fields.
|
||||||
|
|
||||||
|
Bugfixes:
|
||||||
|
* [#1011][]: Fix inaccurate precision when encoding complex64 as JSON.
|
||||||
|
* [#554][], [#1017][]: Close JSON namespaces opened in `MarshalLogObject`
|
||||||
|
methods when the methods return.
|
||||||
|
* [#1033][]: Avoid panicking in Sampler core if `thereafter` is zero.
|
||||||
|
|
||||||
|
Other changes:
|
||||||
|
* [#1028][]: Drop support for Go < 1.15.
|
||||||
|
|
||||||
|
[#554]: https://github.com/uber-go/zap/pull/554
|
||||||
|
[#989]: https://github.com/uber-go/zap/pull/989
|
||||||
|
[#1011]: https://github.com/uber-go/zap/pull/1011
|
||||||
|
[#1017]: https://github.com/uber-go/zap/pull/1017
|
||||||
|
[#1028]: https://github.com/uber-go/zap/pull/1028
|
||||||
|
[#1033]: https://github.com/uber-go/zap/pull/1033
|
||||||
|
[#1039]: https://github.com/uber-go/zap/pull/1039
|
||||||
|
|
||||||
|
Thanks to @psrajat, @lruggieri, @sammyrnycreal for their contributions to this release.
|
||||||
|
|
||||||
|
## 1.19.1 (8 Sep 2021)
|
||||||
|
|
||||||
|
Bugfixes:
|
||||||
|
* [#1001][]: JSON: Fix complex number encoding with negative imaginary part. Thanks to @hemantjadon.
|
||||||
|
* [#1003][]: JSON: Fix inaccurate precision when encoding float32.
|
||||||
|
|
||||||
|
[#1001]: https://github.com/uber-go/zap/pull/1001
|
||||||
|
[#1003]: https://github.com/uber-go/zap/pull/1003
|
||||||
|
|
||||||
## 1.19.0 (9 Aug 2021)
|
## 1.19.0 (9 Aug 2021)
|
||||||
|
|
||||||
@ -63,6 +207,16 @@ Enhancements:
|
|||||||
|
|
||||||
Thanks to @ash2k, @FMLS, @jimmystewpot, @Oncilla, @tsoslow, @tylitianrui, @withshubh, and @wziww for their contributions to this release.
|
Thanks to @ash2k, @FMLS, @jimmystewpot, @Oncilla, @tsoslow, @tylitianrui, @withshubh, and @wziww for their contributions to this release.
|
||||||
|
|
||||||
|
[#865]: https://github.com/uber-go/zap/pull/865
|
||||||
|
[#867]: https://github.com/uber-go/zap/pull/867
|
||||||
|
[#881]: https://github.com/uber-go/zap/pull/881
|
||||||
|
[#903]: https://github.com/uber-go/zap/pull/903
|
||||||
|
[#912]: https://github.com/uber-go/zap/pull/912
|
||||||
|
[#913]: https://github.com/uber-go/zap/pull/913
|
||||||
|
[#928]: https://github.com/uber-go/zap/pull/928
|
||||||
|
[#931]: https://github.com/uber-go/zap/pull/931
|
||||||
|
[#936]: https://github.com/uber-go/zap/pull/936
|
||||||
|
|
||||||
## 1.16.0 (1 Sep 2020)
|
## 1.16.0 (1 Sep 2020)
|
||||||
|
|
||||||
Bugfixes:
|
Bugfixes:
|
||||||
@ -84,6 +238,17 @@ Enhancements:
|
|||||||
|
|
||||||
Thanks to @SteelPhase, @tmshn, @lixingwang, @wyxloading, @moul, @segevfiner, @andy-retailnext and @jcorbin for their contributions to this release.
|
Thanks to @SteelPhase, @tmshn, @lixingwang, @wyxloading, @moul, @segevfiner, @andy-retailnext and @jcorbin for their contributions to this release.
|
||||||
|
|
||||||
|
[#629]: https://github.com/uber-go/zap/pull/629
|
||||||
|
[#697]: https://github.com/uber-go/zap/pull/697
|
||||||
|
[#828]: https://github.com/uber-go/zap/pull/828
|
||||||
|
[#835]: https://github.com/uber-go/zap/pull/835
|
||||||
|
[#843]: https://github.com/uber-go/zap/pull/843
|
||||||
|
[#844]: https://github.com/uber-go/zap/pull/844
|
||||||
|
[#852]: https://github.com/uber-go/zap/pull/852
|
||||||
|
[#854]: https://github.com/uber-go/zap/pull/854
|
||||||
|
[#861]: https://github.com/uber-go/zap/pull/861
|
||||||
|
[#862]: https://github.com/uber-go/zap/pull/862
|
||||||
|
|
||||||
## 1.15.0 (23 Apr 2020)
|
## 1.15.0 (23 Apr 2020)
|
||||||
|
|
||||||
Bugfixes:
|
Bugfixes:
|
||||||
@ -100,6 +265,11 @@ Enhancements:
|
|||||||
|
|
||||||
Thanks to @danielbprice for their contributions to this release.
|
Thanks to @danielbprice for their contributions to this release.
|
||||||
|
|
||||||
|
[#804]: https://github.com/uber-go/zap/pull/804
|
||||||
|
[#812]: https://github.com/uber-go/zap/pull/812
|
||||||
|
[#806]: https://github.com/uber-go/zap/pull/806
|
||||||
|
[#813]: https://github.com/uber-go/zap/pull/813
|
||||||
|
|
||||||
## 1.14.1 (14 Mar 2020)
|
## 1.14.1 (14 Mar 2020)
|
||||||
|
|
||||||
Bugfixes:
|
Bugfixes:
|
||||||
@ -112,6 +282,10 @@ Bugfixes:
|
|||||||
|
|
||||||
Thanks to @YashishDua for their contributions to this release.
|
Thanks to @YashishDua for their contributions to this release.
|
||||||
|
|
||||||
|
[#791]: https://github.com/uber-go/zap/pull/791
|
||||||
|
[#795]: https://github.com/uber-go/zap/pull/795
|
||||||
|
[#799]: https://github.com/uber-go/zap/pull/799
|
||||||
|
|
||||||
## 1.14.0 (20 Feb 2020)
|
## 1.14.0 (20 Feb 2020)
|
||||||
|
|
||||||
Enhancements:
|
Enhancements:
|
||||||
@ -122,6 +296,11 @@ Enhancements:
|
|||||||
|
|
||||||
Thanks to @caibirdme for their contributions to this release.
|
Thanks to @caibirdme for their contributions to this release.
|
||||||
|
|
||||||
|
[#771]: https://github.com/uber-go/zap/pull/771
|
||||||
|
[#773]: https://github.com/uber-go/zap/pull/773
|
||||||
|
[#775]: https://github.com/uber-go/zap/pull/775
|
||||||
|
[#786]: https://github.com/uber-go/zap/pull/786
|
||||||
|
|
||||||
## 1.13.0 (13 Nov 2019)
|
## 1.13.0 (13 Nov 2019)
|
||||||
|
|
||||||
Enhancements:
|
Enhancements:
|
||||||
@ -130,11 +309,15 @@ Enhancements:
|
|||||||
|
|
||||||
Thanks to @jbizzle for their contributions to this release.
|
Thanks to @jbizzle for their contributions to this release.
|
||||||
|
|
||||||
|
[#758]: https://github.com/uber-go/zap/pull/758
|
||||||
|
|
||||||
## 1.12.0 (29 Oct 2019)
|
## 1.12.0 (29 Oct 2019)
|
||||||
|
|
||||||
Enhancements:
|
Enhancements:
|
||||||
* [#751][]: Migrate to Go modules.
|
* [#751][]: Migrate to Go modules.
|
||||||
|
|
||||||
|
[#751]: https://github.com/uber-go/zap/pull/751
|
||||||
|
|
||||||
## 1.11.0 (21 Oct 2019)
|
## 1.11.0 (21 Oct 2019)
|
||||||
|
|
||||||
Enhancements:
|
Enhancements:
|
||||||
@ -143,6 +326,9 @@ Enhancements:
|
|||||||
|
|
||||||
Thanks to @juicemia, @uhthomas for their contributions to this release.
|
Thanks to @juicemia, @uhthomas for their contributions to this release.
|
||||||
|
|
||||||
|
[#725]: https://github.com/uber-go/zap/pull/725
|
||||||
|
[#736]: https://github.com/uber-go/zap/pull/736
|
||||||
|
|
||||||
## 1.10.0 (29 Apr 2019)
|
## 1.10.0 (29 Apr 2019)
|
||||||
|
|
||||||
Bugfixes:
|
Bugfixes:
|
||||||
@ -160,12 +346,20 @@ Enhancements:
|
|||||||
Thanks to @iaroslav-ciupin, @lelenanam, @joa, @NWilson for their contributions
|
Thanks to @iaroslav-ciupin, @lelenanam, @joa, @NWilson for their contributions
|
||||||
to this release.
|
to this release.
|
||||||
|
|
||||||
|
[#657]: https://github.com/uber-go/zap/pull/657
|
||||||
|
[#706]: https://github.com/uber-go/zap/pull/706
|
||||||
|
[#610]: https://github.com/uber-go/zap/pull/610
|
||||||
|
[#675]: https://github.com/uber-go/zap/pull/675
|
||||||
|
[#704]: https://github.com/uber-go/zap/pull/704
|
||||||
|
|
||||||
## v1.9.1 (06 Aug 2018)
|
## v1.9.1 (06 Aug 2018)
|
||||||
|
|
||||||
Bugfixes:
|
Bugfixes:
|
||||||
|
|
||||||
* [#614][]: MapObjectEncoder should not ignore empty slices.
|
* [#614][]: MapObjectEncoder should not ignore empty slices.
|
||||||
|
|
||||||
|
[#614]: https://github.com/uber-go/zap/pull/614
|
||||||
|
|
||||||
## v1.9.0 (19 Jul 2018)
|
## v1.9.0 (19 Jul 2018)
|
||||||
|
|
||||||
Enhancements:
|
Enhancements:
|
||||||
@ -175,6 +369,10 @@ Enhancements:
|
|||||||
Thanks to @nfarah86, @AlekSi, @JeanMertz, @philippgille, @etsangsplk, and
|
Thanks to @nfarah86, @AlekSi, @JeanMertz, @philippgille, @etsangsplk, and
|
||||||
@dimroc for their contributions to this release.
|
@dimroc for their contributions to this release.
|
||||||
|
|
||||||
|
[#602]: https://github.com/uber-go/zap/pull/602
|
||||||
|
[#572]: https://github.com/uber-go/zap/pull/572
|
||||||
|
[#606]: https://github.com/uber-go/zap/pull/606
|
||||||
|
|
||||||
## v1.8.0 (13 Apr 2018)
|
## v1.8.0 (13 Apr 2018)
|
||||||
|
|
||||||
Enhancements:
|
Enhancements:
|
||||||
@ -188,11 +386,18 @@ Bugfixes:
|
|||||||
|
|
||||||
Thanks to @DiSiqueira and @djui for their contributions to this release.
|
Thanks to @DiSiqueira and @djui for their contributions to this release.
|
||||||
|
|
||||||
|
[#508]: https://github.com/uber-go/zap/pull/508
|
||||||
|
[#518]: https://github.com/uber-go/zap/pull/518
|
||||||
|
[#577]: https://github.com/uber-go/zap/pull/577
|
||||||
|
[#574]: https://github.com/uber-go/zap/pull/574
|
||||||
|
|
||||||
## v1.7.1 (25 Sep 2017)
|
## v1.7.1 (25 Sep 2017)
|
||||||
|
|
||||||
Bugfixes:
|
Bugfixes:
|
||||||
* [#504][]: Store strings when using AddByteString with the map encoder.
|
* [#504][]: Store strings when using AddByteString with the map encoder.
|
||||||
|
|
||||||
|
[#504]: https://github.com/uber-go/zap/pull/504
|
||||||
|
|
||||||
## v1.7.0 (21 Sep 2017)
|
## v1.7.0 (21 Sep 2017)
|
||||||
|
|
||||||
Enhancements:
|
Enhancements:
|
||||||
@ -200,6 +405,8 @@ Enhancements:
|
|||||||
* [#487][]: Add `NewStdLogAt`, which extends `NewStdLog` by allowing the user
|
* [#487][]: Add `NewStdLogAt`, which extends `NewStdLog` by allowing the user
|
||||||
to specify the level of the logged messages.
|
to specify the level of the logged messages.
|
||||||
|
|
||||||
|
[#487]: https://github.com/uber-go/zap/pull/487
|
||||||
|
|
||||||
## v1.6.0 (30 Aug 2017)
|
## v1.6.0 (30 Aug 2017)
|
||||||
|
|
||||||
Enhancements:
|
Enhancements:
|
||||||
@ -208,6 +415,9 @@ Enhancements:
|
|||||||
* [#490][]: Add a `ContextMap` method to observer logs for simpler
|
* [#490][]: Add a `ContextMap` method to observer logs for simpler
|
||||||
field validation in tests.
|
field validation in tests.
|
||||||
|
|
||||||
|
[#490]: https://github.com/uber-go/zap/pull/490
|
||||||
|
[#491]: https://github.com/uber-go/zap/pull/491
|
||||||
|
|
||||||
## v1.5.0 (22 Jul 2017)
|
## v1.5.0 (22 Jul 2017)
|
||||||
|
|
||||||
Enhancements:
|
Enhancements:
|
||||||
@ -221,6 +431,11 @@ Bugfixes:
|
|||||||
|
|
||||||
Thanks to @richard-tunein and @pavius for their contributions to this release.
|
Thanks to @richard-tunein and @pavius for their contributions to this release.
|
||||||
|
|
||||||
|
[#477]: https://github.com/uber-go/zap/pull/477
|
||||||
|
[#465]: https://github.com/uber-go/zap/pull/465
|
||||||
|
[#460]: https://github.com/uber-go/zap/pull/460
|
||||||
|
[#470]: https://github.com/uber-go/zap/pull/470
|
||||||
|
|
||||||
## v1.4.1 (08 Jun 2017)
|
## v1.4.1 (08 Jun 2017)
|
||||||
|
|
||||||
This release fixes two bugs.
|
This release fixes two bugs.
|
||||||
@ -230,6 +445,9 @@ Bugfixes:
|
|||||||
* [#435][]: Support a variety of case conventions when unmarshaling levels.
|
* [#435][]: Support a variety of case conventions when unmarshaling levels.
|
||||||
* [#444][]: Fix a panic in the observer.
|
* [#444][]: Fix a panic in the observer.
|
||||||
|
|
||||||
|
[#435]: https://github.com/uber-go/zap/pull/435
|
||||||
|
[#444]: https://github.com/uber-go/zap/pull/444
|
||||||
|
|
||||||
## v1.4.0 (12 May 2017)
|
## v1.4.0 (12 May 2017)
|
||||||
|
|
||||||
This release adds a few small features and is fully backward-compatible.
|
This release adds a few small features and is fully backward-compatible.
|
||||||
@ -242,6 +460,10 @@ Enhancements:
|
|||||||
* [#431][]: Make `zap.AtomicLevel` implement `fmt.Stringer`, which makes a
|
* [#431][]: Make `zap.AtomicLevel` implement `fmt.Stringer`, which makes a
|
||||||
variety of operations a bit simpler.
|
variety of operations a bit simpler.
|
||||||
|
|
||||||
|
[#424]: https://github.com/uber-go/zap/pull/424
|
||||||
|
[#425]: https://github.com/uber-go/zap/pull/425
|
||||||
|
[#431]: https://github.com/uber-go/zap/pull/431
|
||||||
|
|
||||||
## v1.3.0 (25 Apr 2017)
|
## v1.3.0 (25 Apr 2017)
|
||||||
|
|
||||||
This release adds an enhancement to zap's testing helpers as well as the
|
This release adds an enhancement to zap's testing helpers as well as the
|
||||||
@ -253,6 +475,9 @@ Enhancements:
|
|||||||
particularly useful when testing the `SugaredLogger`.
|
particularly useful when testing the `SugaredLogger`.
|
||||||
* [#416][]: Make `AtomicLevel` implement `encoding.TextMarshaler`.
|
* [#416][]: Make `AtomicLevel` implement `encoding.TextMarshaler`.
|
||||||
|
|
||||||
|
[#415]: https://github.com/uber-go/zap/pull/415
|
||||||
|
[#416]: https://github.com/uber-go/zap/pull/416
|
||||||
|
|
||||||
## v1.2.0 (13 Apr 2017)
|
## v1.2.0 (13 Apr 2017)
|
||||||
|
|
||||||
This release adds a gRPC compatibility wrapper. It is fully backward-compatible.
|
This release adds a gRPC compatibility wrapper. It is fully backward-compatible.
|
||||||
@ -262,6 +487,8 @@ Enhancements:
|
|||||||
* [#402][]: Add a `zapgrpc` package that wraps zap's Logger and implements
|
* [#402][]: Add a `zapgrpc` package that wraps zap's Logger and implements
|
||||||
`grpclog.Logger`.
|
`grpclog.Logger`.
|
||||||
|
|
||||||
|
[#402]: https://github.com/uber-go/zap/pull/402
|
||||||
|
|
||||||
## v1.1.0 (31 Mar 2017)
|
## v1.1.0 (31 Mar 2017)
|
||||||
|
|
||||||
This release fixes two bugs and adds some enhancements to zap's testing helpers.
|
This release fixes two bugs and adds some enhancements to zap's testing helpers.
|
||||||
@ -279,6 +506,10 @@ Enhancements:
|
|||||||
|
|
||||||
Thanks to @moitias for contributing to this release.
|
Thanks to @moitias for contributing to this release.
|
||||||
|
|
||||||
|
[#385]: https://github.com/uber-go/zap/pull/385
|
||||||
|
[#396]: https://github.com/uber-go/zap/pull/396
|
||||||
|
[#386]: https://github.com/uber-go/zap/pull/386
|
||||||
|
|
||||||
## v1.0.0 (14 Mar 2017)
|
## v1.0.0 (14 Mar 2017)
|
||||||
|
|
||||||
This is zap's first stable release. All exported APIs are now final, and no
|
This is zap's first stable release. All exported APIs are now final, and no
|
||||||
@ -324,6 +555,20 @@ Enhancements:
|
|||||||
Thanks to @suyash, @htrendev, @flisky, @Ulexus, and @skipor for their
|
Thanks to @suyash, @htrendev, @flisky, @Ulexus, and @skipor for their
|
||||||
contributions to this release.
|
contributions to this release.
|
||||||
|
|
||||||
|
[#366]: https://github.com/uber-go/zap/pull/366
|
||||||
|
[#364]: https://github.com/uber-go/zap/pull/364
|
||||||
|
[#371]: https://github.com/uber-go/zap/pull/371
|
||||||
|
[#362]: https://github.com/uber-go/zap/pull/362
|
||||||
|
[#369]: https://github.com/uber-go/zap/pull/369
|
||||||
|
[#347]: https://github.com/uber-go/zap/pull/347
|
||||||
|
[#373]: https://github.com/uber-go/zap/pull/373
|
||||||
|
[#348]: https://github.com/uber-go/zap/pull/348
|
||||||
|
[#327]: https://github.com/uber-go/zap/pull/327
|
||||||
|
[#376]: https://github.com/uber-go/zap/pull/376
|
||||||
|
[#346]: https://github.com/uber-go/zap/pull/346
|
||||||
|
[#365]: https://github.com/uber-go/zap/pull/365
|
||||||
|
[#372]: https://github.com/uber-go/zap/pull/372
|
||||||
|
|
||||||
## v1.0.0-rc.3 (7 Mar 2017)
|
## v1.0.0-rc.3 (7 Mar 2017)
|
||||||
|
|
||||||
This is the third release candidate for zap's stable release. There are no
|
This is the third release candidate for zap's stable release. There are no
|
||||||
@ -345,6 +590,11 @@ Enhancements:
|
|||||||
|
|
||||||
Thanks to @ansel1 and @suyash for their contributions to this release.
|
Thanks to @ansel1 and @suyash for their contributions to this release.
|
||||||
|
|
||||||
|
[#339]: https://github.com/uber-go/zap/pull/339
|
||||||
|
[#307]: https://github.com/uber-go/zap/pull/307
|
||||||
|
[#353]: https://github.com/uber-go/zap/pull/353
|
||||||
|
[#311]: https://github.com/uber-go/zap/pull/311
|
||||||
|
|
||||||
## v1.0.0-rc.2 (21 Feb 2017)
|
## v1.0.0-rc.2 (21 Feb 2017)
|
||||||
|
|
||||||
This is the second release candidate for zap's stable release. It includes two
|
This is the second release candidate for zap's stable release. It includes two
|
||||||
@ -382,6 +632,15 @@ Enhancements:
|
|||||||
|
|
||||||
Thanks to @skipor and @chapsuk for their contributions to this release.
|
Thanks to @skipor and @chapsuk for their contributions to this release.
|
||||||
|
|
||||||
|
[#316]: https://github.com/uber-go/zap/pull/316
|
||||||
|
[#309]: https://github.com/uber-go/zap/pull/309
|
||||||
|
[#317]: https://github.com/uber-go/zap/pull/317
|
||||||
|
[#321]: https://github.com/uber-go/zap/pull/321
|
||||||
|
[#325]: https://github.com/uber-go/zap/pull/325
|
||||||
|
[#333]: https://github.com/uber-go/zap/pull/333
|
||||||
|
[#326]: https://github.com/uber-go/zap/pull/326
|
||||||
|
[#300]: https://github.com/uber-go/zap/pull/300
|
||||||
|
|
||||||
## v1.0.0-rc.1 (14 Feb 2017)
|
## v1.0.0-rc.1 (14 Feb 2017)
|
||||||
|
|
||||||
This is the first release candidate for zap's stable release. There are multiple
|
This is the first release candidate for zap's stable release. There are multiple
|
||||||
@ -410,95 +669,3 @@ backward compatibility concerns and all functionality is new.
|
|||||||
|
|
||||||
Early zap adopters should pin to the 0.1.x minor version until they're ready to
|
Early zap adopters should pin to the 0.1.x minor version until they're ready to
|
||||||
upgrade to the upcoming stable release.
|
upgrade to the upcoming stable release.
|
||||||
|
|
||||||
[#316]: https://github.com/uber-go/zap/pull/316
|
|
||||||
[#309]: https://github.com/uber-go/zap/pull/309
|
|
||||||
[#317]: https://github.com/uber-go/zap/pull/317
|
|
||||||
[#321]: https://github.com/uber-go/zap/pull/321
|
|
||||||
[#325]: https://github.com/uber-go/zap/pull/325
|
|
||||||
[#333]: https://github.com/uber-go/zap/pull/333
|
|
||||||
[#326]: https://github.com/uber-go/zap/pull/326
|
|
||||||
[#300]: https://github.com/uber-go/zap/pull/300
|
|
||||||
[#339]: https://github.com/uber-go/zap/pull/339
|
|
||||||
[#307]: https://github.com/uber-go/zap/pull/307
|
|
||||||
[#353]: https://github.com/uber-go/zap/pull/353
|
|
||||||
[#311]: https://github.com/uber-go/zap/pull/311
|
|
||||||
[#366]: https://github.com/uber-go/zap/pull/366
|
|
||||||
[#364]: https://github.com/uber-go/zap/pull/364
|
|
||||||
[#371]: https://github.com/uber-go/zap/pull/371
|
|
||||||
[#362]: https://github.com/uber-go/zap/pull/362
|
|
||||||
[#369]: https://github.com/uber-go/zap/pull/369
|
|
||||||
[#347]: https://github.com/uber-go/zap/pull/347
|
|
||||||
[#373]: https://github.com/uber-go/zap/pull/373
|
|
||||||
[#348]: https://github.com/uber-go/zap/pull/348
|
|
||||||
[#327]: https://github.com/uber-go/zap/pull/327
|
|
||||||
[#376]: https://github.com/uber-go/zap/pull/376
|
|
||||||
[#346]: https://github.com/uber-go/zap/pull/346
|
|
||||||
[#365]: https://github.com/uber-go/zap/pull/365
|
|
||||||
[#372]: https://github.com/uber-go/zap/pull/372
|
|
||||||
[#385]: https://github.com/uber-go/zap/pull/385
|
|
||||||
[#396]: https://github.com/uber-go/zap/pull/396
|
|
||||||
[#386]: https://github.com/uber-go/zap/pull/386
|
|
||||||
[#402]: https://github.com/uber-go/zap/pull/402
|
|
||||||
[#415]: https://github.com/uber-go/zap/pull/415
|
|
||||||
[#416]: https://github.com/uber-go/zap/pull/416
|
|
||||||
[#424]: https://github.com/uber-go/zap/pull/424
|
|
||||||
[#425]: https://github.com/uber-go/zap/pull/425
|
|
||||||
[#431]: https://github.com/uber-go/zap/pull/431
|
|
||||||
[#435]: https://github.com/uber-go/zap/pull/435
|
|
||||||
[#444]: https://github.com/uber-go/zap/pull/444
|
|
||||||
[#477]: https://github.com/uber-go/zap/pull/477
|
|
||||||
[#465]: https://github.com/uber-go/zap/pull/465
|
|
||||||
[#460]: https://github.com/uber-go/zap/pull/460
|
|
||||||
[#470]: https://github.com/uber-go/zap/pull/470
|
|
||||||
[#487]: https://github.com/uber-go/zap/pull/487
|
|
||||||
[#490]: https://github.com/uber-go/zap/pull/490
|
|
||||||
[#491]: https://github.com/uber-go/zap/pull/491
|
|
||||||
[#504]: https://github.com/uber-go/zap/pull/504
|
|
||||||
[#508]: https://github.com/uber-go/zap/pull/508
|
|
||||||
[#518]: https://github.com/uber-go/zap/pull/518
|
|
||||||
[#577]: https://github.com/uber-go/zap/pull/577
|
|
||||||
[#574]: https://github.com/uber-go/zap/pull/574
|
|
||||||
[#602]: https://github.com/uber-go/zap/pull/602
|
|
||||||
[#572]: https://github.com/uber-go/zap/pull/572
|
|
||||||
[#606]: https://github.com/uber-go/zap/pull/606
|
|
||||||
[#614]: https://github.com/uber-go/zap/pull/614
|
|
||||||
[#657]: https://github.com/uber-go/zap/pull/657
|
|
||||||
[#706]: https://github.com/uber-go/zap/pull/706
|
|
||||||
[#610]: https://github.com/uber-go/zap/pull/610
|
|
||||||
[#675]: https://github.com/uber-go/zap/pull/675
|
|
||||||
[#704]: https://github.com/uber-go/zap/pull/704
|
|
||||||
[#725]: https://github.com/uber-go/zap/pull/725
|
|
||||||
[#736]: https://github.com/uber-go/zap/pull/736
|
|
||||||
[#751]: https://github.com/uber-go/zap/pull/751
|
|
||||||
[#758]: https://github.com/uber-go/zap/pull/758
|
|
||||||
[#771]: https://github.com/uber-go/zap/pull/771
|
|
||||||
[#773]: https://github.com/uber-go/zap/pull/773
|
|
||||||
[#775]: https://github.com/uber-go/zap/pull/775
|
|
||||||
[#786]: https://github.com/uber-go/zap/pull/786
|
|
||||||
[#791]: https://github.com/uber-go/zap/pull/791
|
|
||||||
[#795]: https://github.com/uber-go/zap/pull/795
|
|
||||||
[#799]: https://github.com/uber-go/zap/pull/799
|
|
||||||
[#804]: https://github.com/uber-go/zap/pull/804
|
|
||||||
[#812]: https://github.com/uber-go/zap/pull/812
|
|
||||||
[#806]: https://github.com/uber-go/zap/pull/806
|
|
||||||
[#813]: https://github.com/uber-go/zap/pull/813
|
|
||||||
[#629]: https://github.com/uber-go/zap/pull/629
|
|
||||||
[#697]: https://github.com/uber-go/zap/pull/697
|
|
||||||
[#828]: https://github.com/uber-go/zap/pull/828
|
|
||||||
[#835]: https://github.com/uber-go/zap/pull/835
|
|
||||||
[#843]: https://github.com/uber-go/zap/pull/843
|
|
||||||
[#844]: https://github.com/uber-go/zap/pull/844
|
|
||||||
[#852]: https://github.com/uber-go/zap/pull/852
|
|
||||||
[#854]: https://github.com/uber-go/zap/pull/854
|
|
||||||
[#861]: https://github.com/uber-go/zap/pull/861
|
|
||||||
[#862]: https://github.com/uber-go/zap/pull/862
|
|
||||||
[#865]: https://github.com/uber-go/zap/pull/865
|
|
||||||
[#867]: https://github.com/uber-go/zap/pull/867
|
|
||||||
[#881]: https://github.com/uber-go/zap/pull/881
|
|
||||||
[#903]: https://github.com/uber-go/zap/pull/903
|
|
||||||
[#912]: https://github.com/uber-go/zap/pull/912
|
|
||||||
[#913]: https://github.com/uber-go/zap/pull/913
|
|
||||||
[#928]: https://github.com/uber-go/zap/pull/928
|
|
||||||
[#931]: https://github.com/uber-go/zap/pull/931
|
|
||||||
[#936]: https://github.com/uber-go/zap/pull/936
|
|
||||||
|
21
vendor/go.uber.org/zap/CONTRIBUTING.md
generated
vendored
21
vendor/go.uber.org/zap/CONTRIBUTING.md
generated
vendored
@ -16,7 +16,7 @@ you to accept the CLA when you open your pull request.
|
|||||||
|
|
||||||
[Fork][fork], then clone the repository:
|
[Fork][fork], then clone the repository:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
mkdir -p $GOPATH/src/go.uber.org
|
mkdir -p $GOPATH/src/go.uber.org
|
||||||
cd $GOPATH/src/go.uber.org
|
cd $GOPATH/src/go.uber.org
|
||||||
git clone git@github.com:your_github_username/zap.git
|
git clone git@github.com:your_github_username/zap.git
|
||||||
@ -27,21 +27,16 @@ git fetch upstream
|
|||||||
|
|
||||||
Make sure that the tests and the linters pass:
|
Make sure that the tests and the linters pass:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
make test
|
make test
|
||||||
make lint
|
make lint
|
||||||
```
|
```
|
||||||
|
|
||||||
If you're not using the minor version of Go specified in the Makefile's
|
|
||||||
`LINTABLE_MINOR_VERSIONS` variable, `make lint` doesn't do anything. This is
|
|
||||||
fine, but it means that you'll only discover lint failures after you open your
|
|
||||||
pull request.
|
|
||||||
|
|
||||||
## Making Changes
|
## Making Changes
|
||||||
|
|
||||||
Start by creating a new branch for your changes:
|
Start by creating a new branch for your changes:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
cd $GOPATH/src/go.uber.org/zap
|
cd $GOPATH/src/go.uber.org/zap
|
||||||
git checkout master
|
git checkout master
|
||||||
git fetch upstream
|
git fetch upstream
|
||||||
@ -52,22 +47,22 @@ git checkout -b cool_new_feature
|
|||||||
Make your changes, then ensure that `make lint` and `make test` still pass. If
|
Make your changes, then ensure that `make lint` and `make test` still pass. If
|
||||||
you're satisfied with your changes, push them to your fork.
|
you're satisfied with your changes, push them to your fork.
|
||||||
|
|
||||||
```
|
```bash
|
||||||
git push origin cool_new_feature
|
git push origin cool_new_feature
|
||||||
```
|
```
|
||||||
|
|
||||||
Then use the GitHub UI to open a pull request.
|
Then use the GitHub UI to open a pull request.
|
||||||
|
|
||||||
At this point, you're waiting on us to review your changes. We *try* to respond
|
At this point, you're waiting on us to review your changes. We _try_ to respond
|
||||||
to issues and pull requests within a few business days, and we may suggest some
|
to issues and pull requests within a few business days, and we may suggest some
|
||||||
improvements or alternatives. Once your changes are approved, one of the
|
improvements or alternatives. Once your changes are approved, one of the
|
||||||
project maintainers will merge them.
|
project maintainers will merge them.
|
||||||
|
|
||||||
We're much more likely to approve your changes if you:
|
We're much more likely to approve your changes if you:
|
||||||
|
|
||||||
* Add tests for new functionality.
|
- Add tests for new functionality.
|
||||||
* Write a [good commit message][commit-message].
|
- Write a [good commit message][commit-message].
|
||||||
* Maintain backward compatibility.
|
- Maintain backward compatibility.
|
||||||
|
|
||||||
[fork]: https://github.com/uber-go/zap/fork
|
[fork]: https://github.com/uber-go/zap/fork
|
||||||
[open-issue]: https://github.com/uber-go/zap/issues/new
|
[open-issue]: https://github.com/uber-go/zap/issues/new
|
||||||
|
83
vendor/go.uber.org/zap/Makefile
generated
vendored
83
vendor/go.uber.org/zap/Makefile
generated
vendored
@ -1,50 +1,51 @@
|
|||||||
export GOBIN ?= $(shell pwd)/bin
|
# Directory containing the Makefile.
|
||||||
|
PROJECT_ROOT = $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
|
||||||
|
|
||||||
GOLINT = $(GOBIN)/golint
|
export GOBIN ?= $(PROJECT_ROOT)/bin
|
||||||
STATICCHECK = $(GOBIN)/staticcheck
|
export PATH := $(GOBIN):$(PATH)
|
||||||
|
|
||||||
|
GOVULNCHECK = $(GOBIN)/govulncheck
|
||||||
BENCH_FLAGS ?= -cpuprofile=cpu.pprof -memprofile=mem.pprof -benchmem
|
BENCH_FLAGS ?= -cpuprofile=cpu.pprof -memprofile=mem.pprof -benchmem
|
||||||
|
|
||||||
# Directories containing independent Go modules.
|
# Directories containing independent Go modules.
|
||||||
#
|
MODULE_DIRS = . ./exp ./benchmarks ./zapgrpc/internal/test
|
||||||
# We track coverage only for the main module.
|
|
||||||
MODULE_DIRS = . ./benchmarks ./zapgrpc/internal/test
|
|
||||||
|
|
||||||
# Many Go tools take file globs or directories as arguments instead of packages.
|
# Directories that we want to track coverage for.
|
||||||
GO_FILES := $(shell \
|
COVER_DIRS = . ./exp
|
||||||
find . '(' -path '*/.*' -o -path './vendor' ')' -prune \
|
|
||||||
-o -name '*.go' -print | cut -b3-)
|
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all: lint test
|
all: lint test
|
||||||
|
|
||||||
.PHONY: lint
|
.PHONY: lint
|
||||||
lint: $(GOLINT) $(STATICCHECK)
|
lint: golangci-lint tidy-lint license-lint
|
||||||
@rm -rf lint.log
|
|
||||||
@echo "Checking formatting..."
|
|
||||||
@gofmt -d -s $(GO_FILES) 2>&1 | tee lint.log
|
|
||||||
@echo "Checking vet..."
|
|
||||||
@$(foreach dir,$(MODULE_DIRS),(cd $(dir) && go vet ./... 2>&1) &&) true | tee -a lint.log
|
|
||||||
@echo "Checking lint..."
|
|
||||||
@$(foreach dir,$(MODULE_DIRS),(cd $(dir) && $(GOLINT) ./... 2>&1) &&) true | tee -a lint.log
|
|
||||||
@echo "Checking staticcheck..."
|
|
||||||
@$(foreach dir,$(MODULE_DIRS),(cd $(dir) && $(STATICCHECK) ./... 2>&1) &&) true | tee -a lint.log
|
|
||||||
@echo "Checking for unresolved FIXMEs..."
|
|
||||||
@git grep -i fixme | grep -v -e Makefile | tee -a lint.log
|
|
||||||
@echo "Checking for license headers..."
|
|
||||||
@./checklicense.sh | tee -a lint.log
|
|
||||||
@[ ! -s lint.log ]
|
|
||||||
@echo "Checking 'go mod tidy'..."
|
|
||||||
@make tidy
|
|
||||||
@if ! git diff --quiet; then \
|
|
||||||
echo "'go mod tidy' resulted in changes or working tree is dirty:"; \
|
|
||||||
git --no-pager diff; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
$(GOLINT):
|
.PHONY: golangci-lint
|
||||||
cd tools && go install golang.org/x/lint/golint
|
golangci-lint:
|
||||||
|
@$(foreach mod,$(MODULE_DIRS), \
|
||||||
|
(cd $(mod) && \
|
||||||
|
echo "[lint] golangci-lint: $(mod)" && \
|
||||||
|
golangci-lint run --path-prefix $(mod)) &&) true
|
||||||
|
|
||||||
$(STATICCHECK):
|
.PHONY: tidy
|
||||||
cd tools && go install honnef.co/go/tools/cmd/staticcheck
|
tidy:
|
||||||
|
@$(foreach dir,$(MODULE_DIRS), \
|
||||||
|
(cd $(dir) && go mod tidy) &&) true
|
||||||
|
|
||||||
|
.PHONY: tidy-lint
|
||||||
|
tidy-lint:
|
||||||
|
@$(foreach mod,$(MODULE_DIRS), \
|
||||||
|
(cd $(mod) && \
|
||||||
|
echo "[lint] tidy: $(mod)" && \
|
||||||
|
go mod tidy && \
|
||||||
|
git diff --exit-code -- go.mod go.sum) &&) true
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: license-lint
|
||||||
|
license-lint:
|
||||||
|
./checklicense.sh
|
||||||
|
|
||||||
|
$(GOVULNCHECK):
|
||||||
|
cd tools && go install golang.org/x/vuln/cmd/govulncheck
|
||||||
|
|
||||||
.PHONY: test
|
.PHONY: test
|
||||||
test:
|
test:
|
||||||
@ -52,8 +53,10 @@ test:
|
|||||||
|
|
||||||
.PHONY: cover
|
.PHONY: cover
|
||||||
cover:
|
cover:
|
||||||
go test -race -coverprofile=cover.out -coverpkg=./... ./...
|
@$(foreach dir,$(COVER_DIRS), ( \
|
||||||
go tool cover -html=cover.out -o cover.html
|
cd $(dir) && \
|
||||||
|
go test -race -coverprofile=cover.out -coverpkg=./... ./... \
|
||||||
|
&& go tool cover -html=cover.out -o cover.html) &&) true
|
||||||
|
|
||||||
.PHONY: bench
|
.PHONY: bench
|
||||||
BENCH ?= .
|
BENCH ?= .
|
||||||
@ -68,6 +71,6 @@ updatereadme:
|
|||||||
rm -f README.md
|
rm -f README.md
|
||||||
cat .readme.tmpl | go run internal/readme/readme.go > README.md
|
cat .readme.tmpl | go run internal/readme/readme.go > README.md
|
||||||
|
|
||||||
.PHONY: tidy
|
.PHONY: vulncheck
|
||||||
tidy:
|
vulncheck: $(GOVULNCHECK)
|
||||||
@$(foreach dir,$(MODULE_DIRS),(cd $(dir) && go mod tidy) &&) true
|
$(GOVULNCHECK) ./...
|
||||||
|
47
vendor/go.uber.org/zap/README.md
generated
vendored
47
vendor/go.uber.org/zap/README.md
generated
vendored
@ -66,38 +66,41 @@ Log a message and 10 fields:
|
|||||||
|
|
||||||
| Package | Time | Time % to zap | Objects Allocated |
|
| Package | Time | Time % to zap | Objects Allocated |
|
||||||
| :------ | :--: | :-----------: | :---------------: |
|
| :------ | :--: | :-----------: | :---------------: |
|
||||||
| :zap: zap | 862 ns/op | +0% | 5 allocs/op
|
| :zap: zap | 1744 ns/op | +0% | 5 allocs/op
|
||||||
| :zap: zap (sugared) | 1250 ns/op | +45% | 11 allocs/op
|
| :zap: zap (sugared) | 2483 ns/op | +42% | 10 allocs/op
|
||||||
| zerolog | 4021 ns/op | +366% | 76 allocs/op
|
| zerolog | 918 ns/op | -47% | 1 allocs/op
|
||||||
| go-kit | 4542 ns/op | +427% | 105 allocs/op
|
| go-kit | 5590 ns/op | +221% | 57 allocs/op
|
||||||
| apex/log | 26785 ns/op | +3007% | 115 allocs/op
|
| slog | 5640 ns/op | +223% | 40 allocs/op
|
||||||
| logrus | 29501 ns/op | +3322% | 125 allocs/op
|
| apex/log | 21184 ns/op | +1115% | 63 allocs/op
|
||||||
| log15 | 29906 ns/op | +3369% | 122 allocs/op
|
| logrus | 24338 ns/op | +1296% | 79 allocs/op
|
||||||
|
| log15 | 26054 ns/op | +1394% | 74 allocs/op
|
||||||
|
|
||||||
Log a message with a logger that already has 10 fields of context:
|
Log a message with a logger that already has 10 fields of context:
|
||||||
|
|
||||||
| Package | Time | Time % to zap | Objects Allocated |
|
| Package | Time | Time % to zap | Objects Allocated |
|
||||||
| :------ | :--: | :-----------: | :---------------: |
|
| :------ | :--: | :-----------: | :---------------: |
|
||||||
| :zap: zap | 126 ns/op | +0% | 0 allocs/op
|
| :zap: zap | 193 ns/op | +0% | 0 allocs/op
|
||||||
| :zap: zap (sugared) | 187 ns/op | +48% | 2 allocs/op
|
| :zap: zap (sugared) | 227 ns/op | +18% | 1 allocs/op
|
||||||
| zerolog | 88 ns/op | -30% | 0 allocs/op
|
| zerolog | 81 ns/op | -58% | 0 allocs/op
|
||||||
| go-kit | 5087 ns/op | +3937% | 103 allocs/op
|
| slog | 322 ns/op | +67% | 0 allocs/op
|
||||||
| log15 | 18548 ns/op | +14621% | 73 allocs/op
|
| go-kit | 5377 ns/op | +2686% | 56 allocs/op
|
||||||
| apex/log | 26012 ns/op | +20544% | 104 allocs/op
|
| apex/log | 19518 ns/op | +10013% | 53 allocs/op
|
||||||
| logrus | 27236 ns/op | +21516% | 113 allocs/op
|
| log15 | 19812 ns/op | +10165% | 70 allocs/op
|
||||||
|
| logrus | 21997 ns/op | +11297% | 68 allocs/op
|
||||||
|
|
||||||
Log a static string, without any context or `printf`-style templating:
|
Log a static string, without any context or `printf`-style templating:
|
||||||
|
|
||||||
| Package | Time | Time % to zap | Objects Allocated |
|
| Package | Time | Time % to zap | Objects Allocated |
|
||||||
| :------ | :--: | :-----------: | :---------------: |
|
| :------ | :--: | :-----------: | :---------------: |
|
||||||
| :zap: zap | 118 ns/op | +0% | 0 allocs/op
|
| :zap: zap | 165 ns/op | +0% | 0 allocs/op
|
||||||
| :zap: zap (sugared) | 191 ns/op | +62% | 2 allocs/op
|
| :zap: zap (sugared) | 212 ns/op | +28% | 1 allocs/op
|
||||||
| zerolog | 93 ns/op | -21% | 0 allocs/op
|
| zerolog | 95 ns/op | -42% | 0 allocs/op
|
||||||
| go-kit | 280 ns/op | +137% | 11 allocs/op
|
| slog | 296 ns/op | +79% | 0 allocs/op
|
||||||
| standard library | 499 ns/op | +323% | 2 allocs/op
|
| go-kit | 415 ns/op | +152% | 9 allocs/op
|
||||||
| apex/log | 1990 ns/op | +1586% | 10 allocs/op
|
| standard library | 422 ns/op | +156% | 2 allocs/op
|
||||||
| logrus | 3129 ns/op | +2552% | 24 allocs/op
|
| apex/log | 1601 ns/op | +870% | 5 allocs/op
|
||||||
| log15 | 3887 ns/op | +3194% | 23 allocs/op
|
| logrus | 3017 ns/op | +1728% | 23 allocs/op
|
||||||
|
| log15 | 3469 ns/op | +2002% | 20 allocs/op
|
||||||
|
|
||||||
## Development Status: Stable
|
## Development Status: Stable
|
||||||
|
|
||||||
|
127
vendor/go.uber.org/zap/array.go
generated
vendored
127
vendor/go.uber.org/zap/array.go
generated
vendored
@ -21,6 +21,7 @@
|
|||||||
package zap
|
package zap
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.uber.org/zap/zapcore"
|
"go.uber.org/zap/zapcore"
|
||||||
@ -94,11 +95,137 @@ func Int8s(key string, nums []int8) Field {
|
|||||||
return Array(key, int8s(nums))
|
return Array(key, int8s(nums))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Objects constructs a field with the given key, holding a list of the
|
||||||
|
// provided objects that can be marshaled by Zap.
|
||||||
|
//
|
||||||
|
// Note that these objects must implement zapcore.ObjectMarshaler directly.
|
||||||
|
// That is, if you're trying to marshal a []Request, the MarshalLogObject
|
||||||
|
// method must be declared on the Request type, not its pointer (*Request).
|
||||||
|
// If it's on the pointer, use ObjectValues.
|
||||||
|
//
|
||||||
|
// Given an object that implements MarshalLogObject on the value receiver, you
|
||||||
|
// can log a slice of those objects with Objects like so:
|
||||||
|
//
|
||||||
|
// type Author struct{ ... }
|
||||||
|
// func (a Author) MarshalLogObject(enc zapcore.ObjectEncoder) error
|
||||||
|
//
|
||||||
|
// var authors []Author = ...
|
||||||
|
// logger.Info("loading article", zap.Objects("authors", authors))
|
||||||
|
//
|
||||||
|
// Similarly, given a type that implements MarshalLogObject on its pointer
|
||||||
|
// receiver, you can log a slice of pointers to that object with Objects like
|
||||||
|
// so:
|
||||||
|
//
|
||||||
|
// type Request struct{ ... }
|
||||||
|
// func (r *Request) MarshalLogObject(enc zapcore.ObjectEncoder) error
|
||||||
|
//
|
||||||
|
// var requests []*Request = ...
|
||||||
|
// logger.Info("sending requests", zap.Objects("requests", requests))
|
||||||
|
//
|
||||||
|
// If instead, you have a slice of values of such an object, use the
|
||||||
|
// ObjectValues constructor.
|
||||||
|
//
|
||||||
|
// var requests []Request = ...
|
||||||
|
// logger.Info("sending requests", zap.ObjectValues("requests", requests))
|
||||||
|
func Objects[T zapcore.ObjectMarshaler](key string, values []T) Field {
|
||||||
|
return Array(key, objects[T](values))
|
||||||
|
}
|
||||||
|
|
||||||
|
type objects[T zapcore.ObjectMarshaler] []T
|
||||||
|
|
||||||
|
func (os objects[T]) MarshalLogArray(arr zapcore.ArrayEncoder) error {
|
||||||
|
for _, o := range os {
|
||||||
|
if err := arr.AppendObject(o); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ObjectMarshalerPtr is a constraint that specifies that the given type
|
||||||
|
// implements zapcore.ObjectMarshaler on a pointer receiver.
|
||||||
|
type ObjectMarshalerPtr[T any] interface {
|
||||||
|
*T
|
||||||
|
zapcore.ObjectMarshaler
|
||||||
|
}
|
||||||
|
|
||||||
|
// ObjectValues constructs a field with the given key, holding a list of the
|
||||||
|
// provided objects, where pointers to these objects can be marshaled by Zap.
|
||||||
|
//
|
||||||
|
// Note that pointers to these objects must implement zapcore.ObjectMarshaler.
|
||||||
|
// That is, if you're trying to marshal a []Request, the MarshalLogObject
|
||||||
|
// method must be declared on the *Request type, not the value (Request).
|
||||||
|
// If it's on the value, use Objects.
|
||||||
|
//
|
||||||
|
// Given an object that implements MarshalLogObject on the pointer receiver,
|
||||||
|
// you can log a slice of those objects with ObjectValues like so:
|
||||||
|
//
|
||||||
|
// type Request struct{ ... }
|
||||||
|
// func (r *Request) MarshalLogObject(enc zapcore.ObjectEncoder) error
|
||||||
|
//
|
||||||
|
// var requests []Request = ...
|
||||||
|
// logger.Info("sending requests", zap.ObjectValues("requests", requests))
|
||||||
|
//
|
||||||
|
// If instead, you have a slice of pointers of such an object, use the Objects
|
||||||
|
// field constructor.
|
||||||
|
//
|
||||||
|
// var requests []*Request = ...
|
||||||
|
// logger.Info("sending requests", zap.Objects("requests", requests))
|
||||||
|
func ObjectValues[T any, P ObjectMarshalerPtr[T]](key string, values []T) Field {
|
||||||
|
return Array(key, objectValues[T, P](values))
|
||||||
|
}
|
||||||
|
|
||||||
|
type objectValues[T any, P ObjectMarshalerPtr[T]] []T
|
||||||
|
|
||||||
|
func (os objectValues[T, P]) MarshalLogArray(arr zapcore.ArrayEncoder) error {
|
||||||
|
for i := range os {
|
||||||
|
// It is necessary for us to explicitly reference the "P" type.
|
||||||
|
// We cannot simply pass "&os[i]" to AppendObject because its type
|
||||||
|
// is "*T", which the type system does not consider as
|
||||||
|
// implementing ObjectMarshaler.
|
||||||
|
// Only the type "P" satisfies ObjectMarshaler, which we have
|
||||||
|
// to convert "*T" to explicitly.
|
||||||
|
var p P = &os[i]
|
||||||
|
if err := arr.AppendObject(p); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// Strings constructs a field that carries a slice of strings.
|
// Strings constructs a field that carries a slice of strings.
|
||||||
func Strings(key string, ss []string) Field {
|
func Strings(key string, ss []string) Field {
|
||||||
return Array(key, stringArray(ss))
|
return Array(key, stringArray(ss))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Stringers constructs a field with the given key, holding a list of the
|
||||||
|
// output provided by the value's String method
|
||||||
|
//
|
||||||
|
// Given an object that implements String on the value receiver, you
|
||||||
|
// can log a slice of those objects with Objects like so:
|
||||||
|
//
|
||||||
|
// type Request struct{ ... }
|
||||||
|
// func (a Request) String() string
|
||||||
|
//
|
||||||
|
// var requests []Request = ...
|
||||||
|
// logger.Info("sending requests", zap.Stringers("requests", requests))
|
||||||
|
//
|
||||||
|
// Note that these objects must implement fmt.Stringer directly.
|
||||||
|
// That is, if you're trying to marshal a []Request, the String method
|
||||||
|
// must be declared on the Request type, not its pointer (*Request).
|
||||||
|
func Stringers[T fmt.Stringer](key string, values []T) Field {
|
||||||
|
return Array(key, stringers[T](values))
|
||||||
|
}
|
||||||
|
|
||||||
|
type stringers[T fmt.Stringer] []T
|
||||||
|
|
||||||
|
func (os stringers[T]) MarshalLogArray(arr zapcore.ArrayEncoder) error {
|
||||||
|
for _, o := range os {
|
||||||
|
arr.AppendString(o.String())
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// Times constructs a field that carries a slice of time.Times.
|
// Times constructs a field that carries a slice of time.Times.
|
||||||
func Times(key string, ts []time.Time) Field {
|
func Times(key string, ts []time.Time) Field {
|
||||||
return Array(key, times(ts))
|
return Array(key, times(ts))
|
||||||
|
5
vendor/go.uber.org/zap/buffer/buffer.go
generated
vendored
5
vendor/go.uber.org/zap/buffer/buffer.go
generated
vendored
@ -42,6 +42,11 @@ func (b *Buffer) AppendByte(v byte) {
|
|||||||
b.bs = append(b.bs, v)
|
b.bs = append(b.bs, v)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AppendBytes writes a single byte to the Buffer.
|
||||||
|
func (b *Buffer) AppendBytes(v []byte) {
|
||||||
|
b.bs = append(b.bs, v...)
|
||||||
|
}
|
||||||
|
|
||||||
// AppendString writes a string to the Buffer.
|
// AppendString writes a string to the Buffer.
|
||||||
func (b *Buffer) AppendString(s string) {
|
func (b *Buffer) AppendString(s string) {
|
||||||
b.bs = append(b.bs, s...)
|
b.bs = append(b.bs, s...)
|
||||||
|
20
vendor/go.uber.org/zap/buffer/pool.go
generated
vendored
20
vendor/go.uber.org/zap/buffer/pool.go
generated
vendored
@ -20,25 +20,29 @@
|
|||||||
|
|
||||||
package buffer
|
package buffer
|
||||||
|
|
||||||
import "sync"
|
import (
|
||||||
|
"go.uber.org/zap/internal/pool"
|
||||||
|
)
|
||||||
|
|
||||||
// A Pool is a type-safe wrapper around a sync.Pool.
|
// A Pool is a type-safe wrapper around a sync.Pool.
|
||||||
type Pool struct {
|
type Pool struct {
|
||||||
p *sync.Pool
|
p *pool.Pool[*Buffer]
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewPool constructs a new Pool.
|
// NewPool constructs a new Pool.
|
||||||
func NewPool() Pool {
|
func NewPool() Pool {
|
||||||
return Pool{p: &sync.Pool{
|
return Pool{
|
||||||
New: func() interface{} {
|
p: pool.New(func() *Buffer {
|
||||||
return &Buffer{bs: make([]byte, 0, _size)}
|
return &Buffer{
|
||||||
},
|
bs: make([]byte, 0, _size),
|
||||||
}}
|
}
|
||||||
|
}),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get retrieves a Buffer from the pool, creating one if necessary.
|
// Get retrieves a Buffer from the pool, creating one if necessary.
|
||||||
func (p Pool) Get() *Buffer {
|
func (p Pool) Get() *Buffer {
|
||||||
buf := p.p.Get().(*Buffer)
|
buf := p.p.Get()
|
||||||
buf.Reset()
|
buf.Reset()
|
||||||
buf.pool = p
|
buf.pool = p
|
||||||
return buf
|
return buf
|
||||||
|
88
vendor/go.uber.org/zap/config.go
generated
vendored
88
vendor/go.uber.org/zap/config.go
generated
vendored
@ -21,7 +21,7 @@
|
|||||||
package zap
|
package zap
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"errors"
|
||||||
"sort"
|
"sort"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -95,6 +95,32 @@ type Config struct {
|
|||||||
|
|
||||||
// NewProductionEncoderConfig returns an opinionated EncoderConfig for
|
// NewProductionEncoderConfig returns an opinionated EncoderConfig for
|
||||||
// production environments.
|
// production environments.
|
||||||
|
//
|
||||||
|
// Messages encoded with this configuration will be JSON-formatted
|
||||||
|
// and will have the following keys by default:
|
||||||
|
//
|
||||||
|
// - "level": The logging level (e.g. "info", "error").
|
||||||
|
// - "ts": The current time in number of seconds since the Unix epoch.
|
||||||
|
// - "msg": The message passed to the log statement.
|
||||||
|
// - "caller": If available, a short path to the file and line number
|
||||||
|
// where the log statement was issued.
|
||||||
|
// The logger configuration determines whether this field is captured.
|
||||||
|
// - "stacktrace": If available, a stack trace from the line
|
||||||
|
// where the log statement was issued.
|
||||||
|
// The logger configuration determines whether this field is captured.
|
||||||
|
//
|
||||||
|
// By default, the following formats are used for different types:
|
||||||
|
//
|
||||||
|
// - Time is formatted as floating-point number of seconds since the Unix
|
||||||
|
// epoch.
|
||||||
|
// - Duration is formatted as floating-point number of seconds.
|
||||||
|
//
|
||||||
|
// You may change these by setting the appropriate fields in the returned
|
||||||
|
// object.
|
||||||
|
// For example, use the following to change the time encoding format:
|
||||||
|
//
|
||||||
|
// cfg := zap.NewProductionEncoderConfig()
|
||||||
|
// cfg.EncodeTime = zapcore.ISO8601TimeEncoder
|
||||||
func NewProductionEncoderConfig() zapcore.EncoderConfig {
|
func NewProductionEncoderConfig() zapcore.EncoderConfig {
|
||||||
return zapcore.EncoderConfig{
|
return zapcore.EncoderConfig{
|
||||||
TimeKey: "ts",
|
TimeKey: "ts",
|
||||||
@ -112,11 +138,22 @@ func NewProductionEncoderConfig() zapcore.EncoderConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewProductionConfig is a reasonable production logging configuration.
|
// NewProductionConfig builds a reasonable default production logging
|
||||||
// Logging is enabled at InfoLevel and above.
|
// configuration.
|
||||||
|
// Logging is enabled at InfoLevel and above, and uses a JSON encoder.
|
||||||
|
// Logs are written to standard error.
|
||||||
|
// Stacktraces are included on logs of ErrorLevel and above.
|
||||||
|
// DPanicLevel logs will not panic, but will write a stacktrace.
|
||||||
//
|
//
|
||||||
// It uses a JSON encoder, writes to standard error, and enables sampling.
|
// Sampling is enabled at 100:100 by default,
|
||||||
// Stacktraces are automatically included on logs of ErrorLevel and above.
|
// meaning that after the first 100 log entries
|
||||||
|
// with the same level and message in the same second,
|
||||||
|
// it will log every 100th entry
|
||||||
|
// with the same level and message in the same second.
|
||||||
|
// You may disable this behavior by setting Sampling to nil.
|
||||||
|
//
|
||||||
|
// See [NewProductionEncoderConfig] for information
|
||||||
|
// on the default encoder configuration.
|
||||||
func NewProductionConfig() Config {
|
func NewProductionConfig() Config {
|
||||||
return Config{
|
return Config{
|
||||||
Level: NewAtomicLevelAt(InfoLevel),
|
Level: NewAtomicLevelAt(InfoLevel),
|
||||||
@ -134,6 +171,32 @@ func NewProductionConfig() Config {
|
|||||||
|
|
||||||
// NewDevelopmentEncoderConfig returns an opinionated EncoderConfig for
|
// NewDevelopmentEncoderConfig returns an opinionated EncoderConfig for
|
||||||
// development environments.
|
// development environments.
|
||||||
|
//
|
||||||
|
// Messages encoded with this configuration will use Zap's console encoder
|
||||||
|
// intended to print human-readable output.
|
||||||
|
// It will print log messages with the following information:
|
||||||
|
//
|
||||||
|
// - The log level (e.g. "INFO", "ERROR").
|
||||||
|
// - The time in ISO8601 format (e.g. "2017-01-01T12:00:00Z").
|
||||||
|
// - The message passed to the log statement.
|
||||||
|
// - If available, a short path to the file and line number
|
||||||
|
// where the log statement was issued.
|
||||||
|
// The logger configuration determines whether this field is captured.
|
||||||
|
// - If available, a stacktrace from the line
|
||||||
|
// where the log statement was issued.
|
||||||
|
// The logger configuration determines whether this field is captured.
|
||||||
|
//
|
||||||
|
// By default, the following formats are used for different types:
|
||||||
|
//
|
||||||
|
// - Time is formatted in ISO8601 format (e.g. "2017-01-01T12:00:00Z").
|
||||||
|
// - Duration is formatted as a string (e.g. "1.234s").
|
||||||
|
//
|
||||||
|
// You may change these by setting the appropriate fields in the returned
|
||||||
|
// object.
|
||||||
|
// For example, use the following to change the time encoding format:
|
||||||
|
//
|
||||||
|
// cfg := zap.NewDevelopmentEncoderConfig()
|
||||||
|
// cfg.EncodeTime = zapcore.ISO8601TimeEncoder
|
||||||
func NewDevelopmentEncoderConfig() zapcore.EncoderConfig {
|
func NewDevelopmentEncoderConfig() zapcore.EncoderConfig {
|
||||||
return zapcore.EncoderConfig{
|
return zapcore.EncoderConfig{
|
||||||
// Keys can be anything except the empty string.
|
// Keys can be anything except the empty string.
|
||||||
@ -152,12 +215,15 @@ func NewDevelopmentEncoderConfig() zapcore.EncoderConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewDevelopmentConfig is a reasonable development logging configuration.
|
// NewDevelopmentConfig builds a reasonable default development logging
|
||||||
// Logging is enabled at DebugLevel and above.
|
// configuration.
|
||||||
|
// Logging is enabled at DebugLevel and above, and uses a console encoder.
|
||||||
|
// Logs are written to standard error.
|
||||||
|
// Stacktraces are included on logs of WarnLevel and above.
|
||||||
|
// DPanicLevel logs will panic.
|
||||||
//
|
//
|
||||||
// It enables development mode (which makes DPanicLevel logs panic), uses a
|
// See [NewDevelopmentEncoderConfig] for information
|
||||||
// console encoder, writes to standard error, and disables sampling.
|
// on the default encoder configuration.
|
||||||
// Stacktraces are automatically included on logs of WarnLevel and above.
|
|
||||||
func NewDevelopmentConfig() Config {
|
func NewDevelopmentConfig() Config {
|
||||||
return Config{
|
return Config{
|
||||||
Level: NewAtomicLevelAt(DebugLevel),
|
Level: NewAtomicLevelAt(DebugLevel),
|
||||||
@ -182,7 +248,7 @@ func (cfg Config) Build(opts ...Option) (*Logger, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if cfg.Level == (AtomicLevel{}) {
|
if cfg.Level == (AtomicLevel{}) {
|
||||||
return nil, fmt.Errorf("missing Level")
|
return nil, errors.New("missing Level")
|
||||||
}
|
}
|
||||||
|
|
||||||
log := New(
|
log := New(
|
||||||
|
60
vendor/go.uber.org/zap/doc.go
generated
vendored
60
vendor/go.uber.org/zap/doc.go
generated
vendored
@ -32,7 +32,7 @@
|
|||||||
// they need to count every allocation and when they'd prefer a more familiar,
|
// they need to count every allocation and when they'd prefer a more familiar,
|
||||||
// loosely typed API.
|
// loosely typed API.
|
||||||
//
|
//
|
||||||
// Choosing a Logger
|
// # Choosing a Logger
|
||||||
//
|
//
|
||||||
// In contexts where performance is nice, but not critical, use the
|
// In contexts where performance is nice, but not critical, use the
|
||||||
// SugaredLogger. It's 4-10x faster than other structured logging packages and
|
// SugaredLogger. It's 4-10x faster than other structured logging packages and
|
||||||
@ -41,14 +41,15 @@
|
|||||||
// variadic number of key-value pairs. (For more advanced use cases, they also
|
// variadic number of key-value pairs. (For more advanced use cases, they also
|
||||||
// accept strongly typed fields - see the SugaredLogger.With documentation for
|
// accept strongly typed fields - see the SugaredLogger.With documentation for
|
||||||
// details.)
|
// details.)
|
||||||
// sugar := zap.NewExample().Sugar()
|
//
|
||||||
// defer sugar.Sync()
|
// sugar := zap.NewExample().Sugar()
|
||||||
// sugar.Infow("failed to fetch URL",
|
// defer sugar.Sync()
|
||||||
// "url", "http://example.com",
|
// sugar.Infow("failed to fetch URL",
|
||||||
// "attempt", 3,
|
// "url", "http://example.com",
|
||||||
// "backoff", time.Second,
|
// "attempt", 3,
|
||||||
// )
|
// "backoff", time.Second,
|
||||||
// sugar.Infof("failed to fetch URL: %s", "http://example.com")
|
// )
|
||||||
|
// sugar.Infof("failed to fetch URL: %s", "http://example.com")
|
||||||
//
|
//
|
||||||
// By default, loggers are unbuffered. However, since zap's low-level APIs
|
// By default, loggers are unbuffered. However, since zap's low-level APIs
|
||||||
// allow buffering, calling Sync before letting your process exit is a good
|
// allow buffering, calling Sync before letting your process exit is a good
|
||||||
@ -57,32 +58,35 @@
|
|||||||
// In the rare contexts where every microsecond and every allocation matter,
|
// In the rare contexts where every microsecond and every allocation matter,
|
||||||
// use the Logger. It's even faster than the SugaredLogger and allocates far
|
// use the Logger. It's even faster than the SugaredLogger and allocates far
|
||||||
// less, but it only supports strongly-typed, structured logging.
|
// less, but it only supports strongly-typed, structured logging.
|
||||||
// logger := zap.NewExample()
|
//
|
||||||
// defer logger.Sync()
|
// logger := zap.NewExample()
|
||||||
// logger.Info("failed to fetch URL",
|
// defer logger.Sync()
|
||||||
// zap.String("url", "http://example.com"),
|
// logger.Info("failed to fetch URL",
|
||||||
// zap.Int("attempt", 3),
|
// zap.String("url", "http://example.com"),
|
||||||
// zap.Duration("backoff", time.Second),
|
// zap.Int("attempt", 3),
|
||||||
// )
|
// zap.Duration("backoff", time.Second),
|
||||||
|
// )
|
||||||
//
|
//
|
||||||
// Choosing between the Logger and SugaredLogger doesn't need to be an
|
// Choosing between the Logger and SugaredLogger doesn't need to be an
|
||||||
// application-wide decision: converting between the two is simple and
|
// application-wide decision: converting between the two is simple and
|
||||||
// inexpensive.
|
// inexpensive.
|
||||||
// logger := zap.NewExample()
|
|
||||||
// defer logger.Sync()
|
|
||||||
// sugar := logger.Sugar()
|
|
||||||
// plain := sugar.Desugar()
|
|
||||||
//
|
//
|
||||||
// Configuring Zap
|
// logger := zap.NewExample()
|
||||||
|
// defer logger.Sync()
|
||||||
|
// sugar := logger.Sugar()
|
||||||
|
// plain := sugar.Desugar()
|
||||||
|
//
|
||||||
|
// # Configuring Zap
|
||||||
//
|
//
|
||||||
// The simplest way to build a Logger is to use zap's opinionated presets:
|
// The simplest way to build a Logger is to use zap's opinionated presets:
|
||||||
// NewExample, NewProduction, and NewDevelopment. These presets build a logger
|
// NewExample, NewProduction, and NewDevelopment. These presets build a logger
|
||||||
// with a single function call:
|
// with a single function call:
|
||||||
// logger, err := zap.NewProduction()
|
//
|
||||||
// if err != nil {
|
// logger, err := zap.NewProduction()
|
||||||
// log.Fatalf("can't initialize zap logger: %v", err)
|
// if err != nil {
|
||||||
// }
|
// log.Fatalf("can't initialize zap logger: %v", err)
|
||||||
// defer logger.Sync()
|
// }
|
||||||
|
// defer logger.Sync()
|
||||||
//
|
//
|
||||||
// Presets are fine for small projects, but larger projects and organizations
|
// Presets are fine for small projects, but larger projects and organizations
|
||||||
// naturally require a bit more customization. For most users, zap's Config
|
// naturally require a bit more customization. For most users, zap's Config
|
||||||
@ -94,7 +98,7 @@
|
|||||||
// go.uber.org/zap/zapcore. See the package-level AdvancedConfiguration
|
// go.uber.org/zap/zapcore. See the package-level AdvancedConfiguration
|
||||||
// example for sample code.
|
// example for sample code.
|
||||||
//
|
//
|
||||||
// Extending Zap
|
// # Extending Zap
|
||||||
//
|
//
|
||||||
// The zap package itself is a relatively thin wrapper around the interfaces
|
// The zap package itself is a relatively thin wrapper around the interfaces
|
||||||
// in go.uber.org/zap/zapcore. Extending zap to support a new encoding (e.g.,
|
// in go.uber.org/zap/zapcore. Extending zap to support a new encoding (e.g.,
|
||||||
@ -106,7 +110,7 @@
|
|||||||
// Similarly, package authors can use the high-performance Encoder and Core
|
// Similarly, package authors can use the high-performance Encoder and Core
|
||||||
// implementations in the zapcore package to build their own loggers.
|
// implementations in the zapcore package to build their own loggers.
|
||||||
//
|
//
|
||||||
// Frequently Asked Questions
|
// # Frequently Asked Questions
|
||||||
//
|
//
|
||||||
// An FAQ covering everything from installation errors to design decisions is
|
// An FAQ covering everything from installation errors to design decisions is
|
||||||
// available at https://github.com/uber-go/zap/blob/master/FAQ.md.
|
// available at https://github.com/uber-go/zap/blob/master/FAQ.md.
|
||||||
|
2
vendor/go.uber.org/zap/encoder.go
generated
vendored
2
vendor/go.uber.org/zap/encoder.go
generated
vendored
@ -63,7 +63,7 @@ func RegisterEncoder(name string, constructor func(zapcore.EncoderConfig) (zapco
|
|||||||
|
|
||||||
func newEncoder(name string, encoderConfig zapcore.EncoderConfig) (zapcore.Encoder, error) {
|
func newEncoder(name string, encoderConfig zapcore.EncoderConfig) (zapcore.Encoder, error) {
|
||||||
if encoderConfig.TimeKey != "" && encoderConfig.EncodeTime == nil {
|
if encoderConfig.TimeKey != "" && encoderConfig.EncodeTime == nil {
|
||||||
return nil, fmt.Errorf("missing EncodeTime in EncoderConfig")
|
return nil, errors.New("missing EncodeTime in EncoderConfig")
|
||||||
}
|
}
|
||||||
|
|
||||||
_encoderMutex.RLock()
|
_encoderMutex.RLock()
|
||||||
|
14
vendor/go.uber.org/zap/error.go
generated
vendored
14
vendor/go.uber.org/zap/error.go
generated
vendored
@ -21,14 +21,13 @@
|
|||||||
package zap
|
package zap
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"sync"
|
"go.uber.org/zap/internal/pool"
|
||||||
|
|
||||||
"go.uber.org/zap/zapcore"
|
"go.uber.org/zap/zapcore"
|
||||||
)
|
)
|
||||||
|
|
||||||
var _errArrayElemPool = sync.Pool{New: func() interface{} {
|
var _errArrayElemPool = pool.New(func() *errArrayElem {
|
||||||
return &errArrayElem{}
|
return &errArrayElem{}
|
||||||
}}
|
})
|
||||||
|
|
||||||
// Error is shorthand for the common idiom NamedError("error", err).
|
// Error is shorthand for the common idiom NamedError("error", err).
|
||||||
func Error(err error) Field {
|
func Error(err error) Field {
|
||||||
@ -60,11 +59,14 @@ func (errs errArray) MarshalLogArray(arr zapcore.ArrayEncoder) error {
|
|||||||
// potentially an "errorVerbose" attribute, we need to wrap it in a
|
// potentially an "errorVerbose" attribute, we need to wrap it in a
|
||||||
// type that implements LogObjectMarshaler. To prevent this from
|
// type that implements LogObjectMarshaler. To prevent this from
|
||||||
// allocating, pool the wrapper type.
|
// allocating, pool the wrapper type.
|
||||||
elem := _errArrayElemPool.Get().(*errArrayElem)
|
elem := _errArrayElemPool.Get()
|
||||||
elem.error = errs[i]
|
elem.error = errs[i]
|
||||||
arr.AppendObject(elem)
|
err := arr.AppendObject(elem)
|
||||||
elem.error = nil
|
elem.error = nil
|
||||||
_errArrayElemPool.Put(elem)
|
_errArrayElemPool.Put(elem)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
194
vendor/go.uber.org/zap/field.go
generated
vendored
194
vendor/go.uber.org/zap/field.go
generated
vendored
@ -25,6 +25,7 @@ import (
|
|||||||
"math"
|
"math"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"go.uber.org/zap/internal/stacktrace"
|
||||||
"go.uber.org/zap/zapcore"
|
"go.uber.org/zap/zapcore"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -374,7 +375,7 @@ func StackSkip(key string, skip int) Field {
|
|||||||
// from expanding the zapcore.Field union struct to include a byte slice. Since
|
// from expanding the zapcore.Field union struct to include a byte slice. Since
|
||||||
// taking a stacktrace is already so expensive (~10us), the extra allocation
|
// taking a stacktrace is already so expensive (~10us), the extra allocation
|
||||||
// is okay.
|
// is okay.
|
||||||
return String(key, takeStacktrace(skip+1)) // skip StackSkip
|
return String(key, stacktrace.Take(skip+1)) // skip StackSkip
|
||||||
}
|
}
|
||||||
|
|
||||||
// Duration constructs a field with the given key and value. The encoder
|
// Duration constructs a field with the given key and value. The encoder
|
||||||
@ -410,6 +411,63 @@ func Inline(val zapcore.ObjectMarshaler) Field {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Dict constructs a field containing the provided key-value pairs.
|
||||||
|
// It acts similar to [Object], but with the fields specified as arguments.
|
||||||
|
func Dict(key string, val ...Field) Field {
|
||||||
|
return dictField(key, val)
|
||||||
|
}
|
||||||
|
|
||||||
|
// We need a function with the signature (string, T) for zap.Any.
|
||||||
|
func dictField(key string, val []Field) Field {
|
||||||
|
return Object(key, dictObject(val))
|
||||||
|
}
|
||||||
|
|
||||||
|
type dictObject []Field
|
||||||
|
|
||||||
|
func (d dictObject) MarshalLogObject(enc zapcore.ObjectEncoder) error {
|
||||||
|
for _, f := range d {
|
||||||
|
f.AddTo(enc)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// We discovered an issue where zap.Any can cause a performance degradation
|
||||||
|
// when used in new goroutines.
|
||||||
|
//
|
||||||
|
// This happens because the compiler assigns 4.8kb (one zap.Field per arm of
|
||||||
|
// switch statement) of stack space for zap.Any when it takes the form:
|
||||||
|
//
|
||||||
|
// switch v := v.(type) {
|
||||||
|
// case string:
|
||||||
|
// return String(key, v)
|
||||||
|
// case int:
|
||||||
|
// return Int(key, v)
|
||||||
|
// // ...
|
||||||
|
// default:
|
||||||
|
// return Reflect(key, v)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// To avoid this, we use the type switch to assign a value to a single local variable
|
||||||
|
// and then call a function on it.
|
||||||
|
// The local variable is just a function reference so it doesn't allocate
|
||||||
|
// when converted to an interface{}.
|
||||||
|
//
|
||||||
|
// A fair bit of experimentation went into this.
|
||||||
|
// See also:
|
||||||
|
//
|
||||||
|
// - https://github.com/uber-go/zap/pull/1301
|
||||||
|
// - https://github.com/uber-go/zap/pull/1303
|
||||||
|
// - https://github.com/uber-go/zap/pull/1304
|
||||||
|
// - https://github.com/uber-go/zap/pull/1305
|
||||||
|
// - https://github.com/uber-go/zap/pull/1308
|
||||||
|
type anyFieldC[T any] func(string, T) Field
|
||||||
|
|
||||||
|
func (f anyFieldC[T]) Any(key string, val any) Field {
|
||||||
|
v, _ := val.(T)
|
||||||
|
// val is guaranteed to be a T, except when it's nil.
|
||||||
|
return f(key, v)
|
||||||
|
}
|
||||||
|
|
||||||
// Any takes a key and an arbitrary value and chooses the best way to represent
|
// Any takes a key and an arbitrary value and chooses the best way to represent
|
||||||
// them as a field, falling back to a reflection-based approach only if
|
// them as a field, falling back to a reflection-based approach only if
|
||||||
// necessary.
|
// necessary.
|
||||||
@ -418,132 +476,138 @@ func Inline(val zapcore.ObjectMarshaler) Field {
|
|||||||
// them. To minimize surprises, []byte values are treated as binary blobs, byte
|
// them. To minimize surprises, []byte values are treated as binary blobs, byte
|
||||||
// values are treated as uint8, and runes are always treated as integers.
|
// values are treated as uint8, and runes are always treated as integers.
|
||||||
func Any(key string, value interface{}) Field {
|
func Any(key string, value interface{}) Field {
|
||||||
switch val := value.(type) {
|
var c interface{ Any(string, any) Field }
|
||||||
|
|
||||||
|
switch value.(type) {
|
||||||
case zapcore.ObjectMarshaler:
|
case zapcore.ObjectMarshaler:
|
||||||
return Object(key, val)
|
c = anyFieldC[zapcore.ObjectMarshaler](Object)
|
||||||
case zapcore.ArrayMarshaler:
|
case zapcore.ArrayMarshaler:
|
||||||
return Array(key, val)
|
c = anyFieldC[zapcore.ArrayMarshaler](Array)
|
||||||
|
case []Field:
|
||||||
|
c = anyFieldC[[]Field](dictField)
|
||||||
case bool:
|
case bool:
|
||||||
return Bool(key, val)
|
c = anyFieldC[bool](Bool)
|
||||||
case *bool:
|
case *bool:
|
||||||
return Boolp(key, val)
|
c = anyFieldC[*bool](Boolp)
|
||||||
case []bool:
|
case []bool:
|
||||||
return Bools(key, val)
|
c = anyFieldC[[]bool](Bools)
|
||||||
case complex128:
|
case complex128:
|
||||||
return Complex128(key, val)
|
c = anyFieldC[complex128](Complex128)
|
||||||
case *complex128:
|
case *complex128:
|
||||||
return Complex128p(key, val)
|
c = anyFieldC[*complex128](Complex128p)
|
||||||
case []complex128:
|
case []complex128:
|
||||||
return Complex128s(key, val)
|
c = anyFieldC[[]complex128](Complex128s)
|
||||||
case complex64:
|
case complex64:
|
||||||
return Complex64(key, val)
|
c = anyFieldC[complex64](Complex64)
|
||||||
case *complex64:
|
case *complex64:
|
||||||
return Complex64p(key, val)
|
c = anyFieldC[*complex64](Complex64p)
|
||||||
case []complex64:
|
case []complex64:
|
||||||
return Complex64s(key, val)
|
c = anyFieldC[[]complex64](Complex64s)
|
||||||
case float64:
|
case float64:
|
||||||
return Float64(key, val)
|
c = anyFieldC[float64](Float64)
|
||||||
case *float64:
|
case *float64:
|
||||||
return Float64p(key, val)
|
c = anyFieldC[*float64](Float64p)
|
||||||
case []float64:
|
case []float64:
|
||||||
return Float64s(key, val)
|
c = anyFieldC[[]float64](Float64s)
|
||||||
case float32:
|
case float32:
|
||||||
return Float32(key, val)
|
c = anyFieldC[float32](Float32)
|
||||||
case *float32:
|
case *float32:
|
||||||
return Float32p(key, val)
|
c = anyFieldC[*float32](Float32p)
|
||||||
case []float32:
|
case []float32:
|
||||||
return Float32s(key, val)
|
c = anyFieldC[[]float32](Float32s)
|
||||||
case int:
|
case int:
|
||||||
return Int(key, val)
|
c = anyFieldC[int](Int)
|
||||||
case *int:
|
case *int:
|
||||||
return Intp(key, val)
|
c = anyFieldC[*int](Intp)
|
||||||
case []int:
|
case []int:
|
||||||
return Ints(key, val)
|
c = anyFieldC[[]int](Ints)
|
||||||
case int64:
|
case int64:
|
||||||
return Int64(key, val)
|
c = anyFieldC[int64](Int64)
|
||||||
case *int64:
|
case *int64:
|
||||||
return Int64p(key, val)
|
c = anyFieldC[*int64](Int64p)
|
||||||
case []int64:
|
case []int64:
|
||||||
return Int64s(key, val)
|
c = anyFieldC[[]int64](Int64s)
|
||||||
case int32:
|
case int32:
|
||||||
return Int32(key, val)
|
c = anyFieldC[int32](Int32)
|
||||||
case *int32:
|
case *int32:
|
||||||
return Int32p(key, val)
|
c = anyFieldC[*int32](Int32p)
|
||||||
case []int32:
|
case []int32:
|
||||||
return Int32s(key, val)
|
c = anyFieldC[[]int32](Int32s)
|
||||||
case int16:
|
case int16:
|
||||||
return Int16(key, val)
|
c = anyFieldC[int16](Int16)
|
||||||
case *int16:
|
case *int16:
|
||||||
return Int16p(key, val)
|
c = anyFieldC[*int16](Int16p)
|
||||||
case []int16:
|
case []int16:
|
||||||
return Int16s(key, val)
|
c = anyFieldC[[]int16](Int16s)
|
||||||
case int8:
|
case int8:
|
||||||
return Int8(key, val)
|
c = anyFieldC[int8](Int8)
|
||||||
case *int8:
|
case *int8:
|
||||||
return Int8p(key, val)
|
c = anyFieldC[*int8](Int8p)
|
||||||
case []int8:
|
case []int8:
|
||||||
return Int8s(key, val)
|
c = anyFieldC[[]int8](Int8s)
|
||||||
case string:
|
case string:
|
||||||
return String(key, val)
|
c = anyFieldC[string](String)
|
||||||
case *string:
|
case *string:
|
||||||
return Stringp(key, val)
|
c = anyFieldC[*string](Stringp)
|
||||||
case []string:
|
case []string:
|
||||||
return Strings(key, val)
|
c = anyFieldC[[]string](Strings)
|
||||||
case uint:
|
case uint:
|
||||||
return Uint(key, val)
|
c = anyFieldC[uint](Uint)
|
||||||
case *uint:
|
case *uint:
|
||||||
return Uintp(key, val)
|
c = anyFieldC[*uint](Uintp)
|
||||||
case []uint:
|
case []uint:
|
||||||
return Uints(key, val)
|
c = anyFieldC[[]uint](Uints)
|
||||||
case uint64:
|
case uint64:
|
||||||
return Uint64(key, val)
|
c = anyFieldC[uint64](Uint64)
|
||||||
case *uint64:
|
case *uint64:
|
||||||
return Uint64p(key, val)
|
c = anyFieldC[*uint64](Uint64p)
|
||||||
case []uint64:
|
case []uint64:
|
||||||
return Uint64s(key, val)
|
c = anyFieldC[[]uint64](Uint64s)
|
||||||
case uint32:
|
case uint32:
|
||||||
return Uint32(key, val)
|
c = anyFieldC[uint32](Uint32)
|
||||||
case *uint32:
|
case *uint32:
|
||||||
return Uint32p(key, val)
|
c = anyFieldC[*uint32](Uint32p)
|
||||||
case []uint32:
|
case []uint32:
|
||||||
return Uint32s(key, val)
|
c = anyFieldC[[]uint32](Uint32s)
|
||||||
case uint16:
|
case uint16:
|
||||||
return Uint16(key, val)
|
c = anyFieldC[uint16](Uint16)
|
||||||
case *uint16:
|
case *uint16:
|
||||||
return Uint16p(key, val)
|
c = anyFieldC[*uint16](Uint16p)
|
||||||
case []uint16:
|
case []uint16:
|
||||||
return Uint16s(key, val)
|
c = anyFieldC[[]uint16](Uint16s)
|
||||||
case uint8:
|
case uint8:
|
||||||
return Uint8(key, val)
|
c = anyFieldC[uint8](Uint8)
|
||||||
case *uint8:
|
case *uint8:
|
||||||
return Uint8p(key, val)
|
c = anyFieldC[*uint8](Uint8p)
|
||||||
case []byte:
|
case []byte:
|
||||||
return Binary(key, val)
|
c = anyFieldC[[]byte](Binary)
|
||||||
case uintptr:
|
case uintptr:
|
||||||
return Uintptr(key, val)
|
c = anyFieldC[uintptr](Uintptr)
|
||||||
case *uintptr:
|
case *uintptr:
|
||||||
return Uintptrp(key, val)
|
c = anyFieldC[*uintptr](Uintptrp)
|
||||||
case []uintptr:
|
case []uintptr:
|
||||||
return Uintptrs(key, val)
|
c = anyFieldC[[]uintptr](Uintptrs)
|
||||||
case time.Time:
|
case time.Time:
|
||||||
return Time(key, val)
|
c = anyFieldC[time.Time](Time)
|
||||||
case *time.Time:
|
case *time.Time:
|
||||||
return Timep(key, val)
|
c = anyFieldC[*time.Time](Timep)
|
||||||
case []time.Time:
|
case []time.Time:
|
||||||
return Times(key, val)
|
c = anyFieldC[[]time.Time](Times)
|
||||||
case time.Duration:
|
case time.Duration:
|
||||||
return Duration(key, val)
|
c = anyFieldC[time.Duration](Duration)
|
||||||
case *time.Duration:
|
case *time.Duration:
|
||||||
return Durationp(key, val)
|
c = anyFieldC[*time.Duration](Durationp)
|
||||||
case []time.Duration:
|
case []time.Duration:
|
||||||
return Durations(key, val)
|
c = anyFieldC[[]time.Duration](Durations)
|
||||||
case error:
|
case error:
|
||||||
return NamedError(key, val)
|
c = anyFieldC[error](NamedError)
|
||||||
case []error:
|
case []error:
|
||||||
return Errors(key, val)
|
c = anyFieldC[[]error](Errors)
|
||||||
case fmt.Stringer:
|
case fmt.Stringer:
|
||||||
return Stringer(key, val)
|
c = anyFieldC[fmt.Stringer](Stringer)
|
||||||
default:
|
default:
|
||||||
return Reflect(key, val)
|
c = anyFieldC[any](Reflect)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return c.Any(key, value)
|
||||||
}
|
}
|
||||||
|
1
vendor/go.uber.org/zap/global.go
generated
vendored
1
vendor/go.uber.org/zap/global.go
generated
vendored
@ -31,6 +31,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
_stdLogDefaultDepth = 1
|
||||||
_loggerWriterDepth = 2
|
_loggerWriterDepth = 2
|
||||||
_programmerErrorTemplate = "You've found a bug in zap! Please file a bug at " +
|
_programmerErrorTemplate = "You've found a bug in zap! Please file a bug at " +
|
||||||
"https://github.com/uber-go/zap/issues/new and reference this error: %v"
|
"https://github.com/uber-go/zap/issues/new and reference this error: %v"
|
||||||
|
26
vendor/go.uber.org/zap/global_go112.go
generated
vendored
26
vendor/go.uber.org/zap/global_go112.go
generated
vendored
@ -1,26 +0,0 @@
|
|||||||
// Copyright (c) 2019 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
// See #682 for more information.
|
|
||||||
// +build go1.12
|
|
||||||
|
|
||||||
package zap
|
|
||||||
|
|
||||||
const _stdLogDefaultDepth = 1
|
|
26
vendor/go.uber.org/zap/global_prego112.go
generated
vendored
26
vendor/go.uber.org/zap/global_prego112.go
generated
vendored
@ -1,26 +0,0 @@
|
|||||||
// Copyright (c) 2019 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
// See #682 for more information.
|
|
||||||
// +build !go1.12
|
|
||||||
|
|
||||||
package zap
|
|
||||||
|
|
||||||
const _stdLogDefaultDepth = 2
|
|
44
vendor/go.uber.org/zap/http_handler.go
generated
vendored
44
vendor/go.uber.org/zap/http_handler.go
generated
vendored
@ -22,6 +22,7 @@ package zap
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
@ -32,22 +33,23 @@ import (
|
|||||||
// ServeHTTP is a simple JSON endpoint that can report on or change the current
|
// ServeHTTP is a simple JSON endpoint that can report on or change the current
|
||||||
// logging level.
|
// logging level.
|
||||||
//
|
//
|
||||||
// GET
|
// # GET
|
||||||
//
|
//
|
||||||
// The GET request returns a JSON description of the current logging level like:
|
// The GET request returns a JSON description of the current logging level like:
|
||||||
// {"level":"info"}
|
|
||||||
//
|
//
|
||||||
// PUT
|
// {"level":"info"}
|
||||||
|
//
|
||||||
|
// # PUT
|
||||||
//
|
//
|
||||||
// The PUT request changes the logging level. It is perfectly safe to change the
|
// The PUT request changes the logging level. It is perfectly safe to change the
|
||||||
// logging level while a program is running. Two content types are supported:
|
// logging level while a program is running. Two content types are supported:
|
||||||
//
|
//
|
||||||
// Content-Type: application/x-www-form-urlencoded
|
// Content-Type: application/x-www-form-urlencoded
|
||||||
//
|
//
|
||||||
// With this content type, the level can be provided through the request body or
|
// With this content type, the level can be provided through the request body or
|
||||||
// a query parameter. The log level is URL encoded like:
|
// a query parameter. The log level is URL encoded like:
|
||||||
//
|
//
|
||||||
// level=debug
|
// level=debug
|
||||||
//
|
//
|
||||||
// The request body takes precedence over the query parameter, if both are
|
// The request body takes precedence over the query parameter, if both are
|
||||||
// specified.
|
// specified.
|
||||||
@ -55,19 +57,25 @@ import (
|
|||||||
// This content type is the default for a curl PUT request. Following are two
|
// This content type is the default for a curl PUT request. Following are two
|
||||||
// example curl requests that both set the logging level to debug.
|
// example curl requests that both set the logging level to debug.
|
||||||
//
|
//
|
||||||
// curl -X PUT localhost:8080/log/level?level=debug
|
// curl -X PUT localhost:8080/log/level?level=debug
|
||||||
// curl -X PUT localhost:8080/log/level -d level=debug
|
// curl -X PUT localhost:8080/log/level -d level=debug
|
||||||
//
|
//
|
||||||
// For any other content type, the payload is expected to be JSON encoded and
|
// For any other content type, the payload is expected to be JSON encoded and
|
||||||
// look like:
|
// look like:
|
||||||
//
|
//
|
||||||
// {"level":"info"}
|
// {"level":"info"}
|
||||||
//
|
//
|
||||||
// An example curl request could look like this:
|
// An example curl request could look like this:
|
||||||
//
|
//
|
||||||
// curl -X PUT localhost:8080/log/level -H "Content-Type: application/json" -d '{"level":"debug"}'
|
// curl -X PUT localhost:8080/log/level -H "Content-Type: application/json" -d '{"level":"debug"}'
|
||||||
//
|
|
||||||
func (lvl AtomicLevel) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
func (lvl AtomicLevel) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
|
if err := lvl.serveHTTP(w, r); err != nil {
|
||||||
|
w.WriteHeader(http.StatusInternalServerError)
|
||||||
|
fmt.Fprintf(w, "internal error: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (lvl AtomicLevel) serveHTTP(w http.ResponseWriter, r *http.Request) error {
|
||||||
type errorResponse struct {
|
type errorResponse struct {
|
||||||
Error string `json:"error"`
|
Error string `json:"error"`
|
||||||
}
|
}
|
||||||
@ -79,19 +87,20 @@ func (lvl AtomicLevel) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
switch r.Method {
|
switch r.Method {
|
||||||
case http.MethodGet:
|
case http.MethodGet:
|
||||||
enc.Encode(payload{Level: lvl.Level()})
|
return enc.Encode(payload{Level: lvl.Level()})
|
||||||
|
|
||||||
case http.MethodPut:
|
case http.MethodPut:
|
||||||
requestedLvl, err := decodePutRequest(r.Header.Get("Content-Type"), r)
|
requestedLvl, err := decodePutRequest(r.Header.Get("Content-Type"), r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.WriteHeader(http.StatusBadRequest)
|
w.WriteHeader(http.StatusBadRequest)
|
||||||
enc.Encode(errorResponse{Error: err.Error()})
|
return enc.Encode(errorResponse{Error: err.Error()})
|
||||||
return
|
|
||||||
}
|
}
|
||||||
lvl.SetLevel(requestedLvl)
|
lvl.SetLevel(requestedLvl)
|
||||||
enc.Encode(payload{Level: lvl.Level()})
|
return enc.Encode(payload{Level: lvl.Level()})
|
||||||
|
|
||||||
default:
|
default:
|
||||||
w.WriteHeader(http.StatusMethodNotAllowed)
|
w.WriteHeader(http.StatusMethodNotAllowed)
|
||||||
enc.Encode(errorResponse{
|
return enc.Encode(errorResponse{
|
||||||
Error: "Only GET and PUT are supported.",
|
Error: "Only GET and PUT are supported.",
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -108,7 +117,7 @@ func decodePutRequest(contentType string, r *http.Request) (zapcore.Level, error
|
|||||||
func decodePutURL(r *http.Request) (zapcore.Level, error) {
|
func decodePutURL(r *http.Request) (zapcore.Level, error) {
|
||||||
lvl := r.FormValue("level")
|
lvl := r.FormValue("level")
|
||||||
if lvl == "" {
|
if lvl == "" {
|
||||||
return 0, fmt.Errorf("must specify logging level")
|
return 0, errors.New("must specify logging level")
|
||||||
}
|
}
|
||||||
var l zapcore.Level
|
var l zapcore.Level
|
||||||
if err := l.UnmarshalText([]byte(lvl)); err != nil {
|
if err := l.UnmarshalText([]byte(lvl)); err != nil {
|
||||||
@ -125,8 +134,7 @@ func decodePutJSON(body io.Reader) (zapcore.Level, error) {
|
|||||||
return 0, fmt.Errorf("malformed request body: %v", err)
|
return 0, fmt.Errorf("malformed request body: %v", err)
|
||||||
}
|
}
|
||||||
if pld.Level == nil {
|
if pld.Level == nil {
|
||||||
return 0, fmt.Errorf("must specify logging level")
|
return 0, errors.New("must specify logging level")
|
||||||
}
|
}
|
||||||
return *pld.Level, nil
|
return *pld.Level, nil
|
||||||
|
|
||||||
}
|
}
|
||||||
|
22
vendor/go.uber.org/zap/internal/exit/exit.go
generated
vendored
22
vendor/go.uber.org/zap/internal/exit/exit.go
generated
vendored
@ -24,24 +24,25 @@ package exit
|
|||||||
|
|
||||||
import "os"
|
import "os"
|
||||||
|
|
||||||
var real = func() { os.Exit(1) }
|
var _exit = os.Exit
|
||||||
|
|
||||||
// Exit normally terminates the process by calling os.Exit(1). If the package
|
// With terminates the process by calling os.Exit(code). If the package is
|
||||||
// is stubbed, it instead records a call in the testing spy.
|
// stubbed, it instead records a call in the testing spy.
|
||||||
func Exit() {
|
func With(code int) {
|
||||||
real()
|
_exit(code)
|
||||||
}
|
}
|
||||||
|
|
||||||
// A StubbedExit is a testing fake for os.Exit.
|
// A StubbedExit is a testing fake for os.Exit.
|
||||||
type StubbedExit struct {
|
type StubbedExit struct {
|
||||||
Exited bool
|
Exited bool
|
||||||
prev func()
|
Code int
|
||||||
|
prev func(code int)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stub substitutes a fake for the call to os.Exit(1).
|
// Stub substitutes a fake for the call to os.Exit(1).
|
||||||
func Stub() *StubbedExit {
|
func Stub() *StubbedExit {
|
||||||
s := &StubbedExit{prev: real}
|
s := &StubbedExit{prev: _exit}
|
||||||
real = s.exit
|
_exit = s.exit
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,9 +57,10 @@ func WithStub(f func()) *StubbedExit {
|
|||||||
|
|
||||||
// Unstub restores the previous exit function.
|
// Unstub restores the previous exit function.
|
||||||
func (se *StubbedExit) Unstub() {
|
func (se *StubbedExit) Unstub() {
|
||||||
real = se.prev
|
_exit = se.prev
|
||||||
}
|
}
|
||||||
|
|
||||||
func (se *StubbedExit) exit() {
|
func (se *StubbedExit) exit(code int) {
|
||||||
se.Exited = true
|
se.Exited = true
|
||||||
|
se.Code = code
|
||||||
}
|
}
|
||||||
|
22
vendor/go.uber.org/atomic/value.go → vendor/go.uber.org/zap/internal/level_enabler.go
generated
vendored
22
vendor/go.uber.org/atomic/value.go → vendor/go.uber.org/zap/internal/level_enabler.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2020 Uber Technologies, Inc.
|
// Copyright (c) 2022 Uber Technologies, Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -18,14 +18,20 @@
|
|||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
// THE SOFTWARE.
|
// THE SOFTWARE.
|
||||||
|
|
||||||
package atomic
|
// Package internal and its subpackages hold types and functionality
|
||||||
|
// that are not part of Zap's public API.
|
||||||
|
package internal
|
||||||
|
|
||||||
import "sync/atomic"
|
import "go.uber.org/zap/zapcore"
|
||||||
|
|
||||||
// Value shadows the type of the same name from sync/atomic
|
// LeveledEnabler is an interface satisfied by LevelEnablers that are able to
|
||||||
// https://godoc.org/sync/atomic#Value
|
// report their own level.
|
||||||
type Value struct {
|
//
|
||||||
_ nocmp // disallow non-atomic comparison
|
// This interface is defined to use more conveniently in tests and non-zapcore
|
||||||
|
// packages.
|
||||||
|
// This cannot be imported from zapcore because of the cyclic dependency.
|
||||||
|
type LeveledEnabler interface {
|
||||||
|
zapcore.LevelEnabler
|
||||||
|
|
||||||
atomic.Value
|
Level() zapcore.Level
|
||||||
}
|
}
|
51
vendor/go.uber.org/atomic/time.go → vendor/go.uber.org/zap/internal/pool/pool.go
generated
vendored
51
vendor/go.uber.org/atomic/time.go → vendor/go.uber.org/zap/internal/pool/pool.go
generated
vendored
@ -1,6 +1,4 @@
|
|||||||
// @generated Code generated by gen-atomicwrapper.
|
// Copyright (c) 2023 Uber Technologies, Inc.
|
||||||
|
|
||||||
// Copyright (c) 2020-2022 Uber Technologies, Inc.
|
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -20,36 +18,41 @@
|
|||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
// THE SOFTWARE.
|
// THE SOFTWARE.
|
||||||
|
|
||||||
package atomic
|
// Package pool provides internal pool utilities.
|
||||||
|
package pool
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"time"
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Time is an atomic type-safe wrapper for time.Time values.
|
// A Pool is a generic wrapper around [sync.Pool] to provide strongly-typed
|
||||||
type Time struct {
|
// object pooling.
|
||||||
_ nocmp // disallow non-atomic comparison
|
//
|
||||||
|
// Note that SA6002 (ref: https://staticcheck.io/docs/checks/#SA6002) will
|
||||||
v Value
|
// not be detected, so all internal pool use must take care to only store
|
||||||
|
// pointer types.
|
||||||
|
type Pool[T any] struct {
|
||||||
|
pool sync.Pool
|
||||||
}
|
}
|
||||||
|
|
||||||
var _zeroTime time.Time
|
// New returns a new [Pool] for T, and will use fn to construct new Ts when
|
||||||
|
// the pool is empty.
|
||||||
// NewTime creates a new Time.
|
func New[T any](fn func() T) *Pool[T] {
|
||||||
func NewTime(val time.Time) *Time {
|
return &Pool[T]{
|
||||||
x := &Time{}
|
pool: sync.Pool{
|
||||||
if val != _zeroTime {
|
New: func() any {
|
||||||
x.Store(val)
|
return fn()
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
return x
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load atomically loads the wrapped time.Time.
|
// Get gets a T from the pool, or creates a new one if the pool is empty.
|
||||||
func (x *Time) Load() time.Time {
|
func (p *Pool[T]) Get() T {
|
||||||
return unpackTime(x.v.Load())
|
return p.pool.Get().(T)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Store atomically stores the passed time.Time.
|
// Put returns x into the pool.
|
||||||
func (x *Time) Store(val time.Time) {
|
func (p *Pool[T]) Put(x T) {
|
||||||
x.v.Store(packTime(val))
|
p.pool.Put(x)
|
||||||
}
|
}
|
181
vendor/go.uber.org/zap/internal/stacktrace/stack.go
generated
vendored
Normal file
181
vendor/go.uber.org/zap/internal/stacktrace/stack.go
generated
vendored
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
// Copyright (c) 2023 Uber Technologies, Inc.
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
|
||||||
|
// Package stacktrace provides support for gathering stack traces
|
||||||
|
// efficiently.
|
||||||
|
package stacktrace
|
||||||
|
|
||||||
|
import (
|
||||||
|
"runtime"
|
||||||
|
|
||||||
|
"go.uber.org/zap/buffer"
|
||||||
|
"go.uber.org/zap/internal/bufferpool"
|
||||||
|
"go.uber.org/zap/internal/pool"
|
||||||
|
)
|
||||||
|
|
||||||
|
var _stackPool = pool.New(func() *Stack {
|
||||||
|
return &Stack{
|
||||||
|
storage: make([]uintptr, 64),
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// Stack is a captured stack trace.
|
||||||
|
type Stack struct {
|
||||||
|
pcs []uintptr // program counters; always a subslice of storage
|
||||||
|
frames *runtime.Frames
|
||||||
|
|
||||||
|
// The size of pcs varies depending on requirements:
|
||||||
|
// it will be one if the only the first frame was requested,
|
||||||
|
// and otherwise it will reflect the depth of the call stack.
|
||||||
|
//
|
||||||
|
// storage decouples the slice we need (pcs) from the slice we pool.
|
||||||
|
// We will always allocate a reasonably large storage, but we'll use
|
||||||
|
// only as much of it as we need.
|
||||||
|
storage []uintptr
|
||||||
|
}
|
||||||
|
|
||||||
|
// Depth specifies how deep of a stack trace should be captured.
|
||||||
|
type Depth int
|
||||||
|
|
||||||
|
const (
|
||||||
|
// First captures only the first frame.
|
||||||
|
First Depth = iota
|
||||||
|
|
||||||
|
// Full captures the entire call stack, allocating more
|
||||||
|
// storage for it if needed.
|
||||||
|
Full
|
||||||
|
)
|
||||||
|
|
||||||
|
// Capture captures a stack trace of the specified depth, skipping
|
||||||
|
// the provided number of frames. skip=0 identifies the caller of
|
||||||
|
// Capture.
|
||||||
|
//
|
||||||
|
// The caller must call Free on the returned stacktrace after using it.
|
||||||
|
func Capture(skip int, depth Depth) *Stack {
|
||||||
|
stack := _stackPool.Get()
|
||||||
|
|
||||||
|
switch depth {
|
||||||
|
case First:
|
||||||
|
stack.pcs = stack.storage[:1]
|
||||||
|
case Full:
|
||||||
|
stack.pcs = stack.storage
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unlike other "skip"-based APIs, skip=0 identifies runtime.Callers
|
||||||
|
// itself. +2 to skip captureStacktrace and runtime.Callers.
|
||||||
|
numFrames := runtime.Callers(
|
||||||
|
skip+2,
|
||||||
|
stack.pcs,
|
||||||
|
)
|
||||||
|
|
||||||
|
// runtime.Callers truncates the recorded stacktrace if there is no
|
||||||
|
// room in the provided slice. For the full stack trace, keep expanding
|
||||||
|
// storage until there are fewer frames than there is room.
|
||||||
|
if depth == Full {
|
||||||
|
pcs := stack.pcs
|
||||||
|
for numFrames == len(pcs) {
|
||||||
|
pcs = make([]uintptr, len(pcs)*2)
|
||||||
|
numFrames = runtime.Callers(skip+2, pcs)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Discard old storage instead of returning it to the pool.
|
||||||
|
// This will adjust the pool size over time if stack traces are
|
||||||
|
// consistently very deep.
|
||||||
|
stack.storage = pcs
|
||||||
|
stack.pcs = pcs[:numFrames]
|
||||||
|
} else {
|
||||||
|
stack.pcs = stack.pcs[:numFrames]
|
||||||
|
}
|
||||||
|
|
||||||
|
stack.frames = runtime.CallersFrames(stack.pcs)
|
||||||
|
return stack
|
||||||
|
}
|
||||||
|
|
||||||
|
// Free releases resources associated with this stacktrace
|
||||||
|
// and returns it back to the pool.
|
||||||
|
func (st *Stack) Free() {
|
||||||
|
st.frames = nil
|
||||||
|
st.pcs = nil
|
||||||
|
_stackPool.Put(st)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Count reports the total number of frames in this stacktrace.
|
||||||
|
// Count DOES NOT change as Next is called.
|
||||||
|
func (st *Stack) Count() int {
|
||||||
|
return len(st.pcs)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Next returns the next frame in the stack trace,
|
||||||
|
// and a boolean indicating whether there are more after it.
|
||||||
|
func (st *Stack) Next() (_ runtime.Frame, more bool) {
|
||||||
|
return st.frames.Next()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Take returns a string representation of the current stacktrace.
|
||||||
|
//
|
||||||
|
// skip is the number of frames to skip before recording the stack trace.
|
||||||
|
// skip=0 identifies the caller of Take.
|
||||||
|
func Take(skip int) string {
|
||||||
|
stack := Capture(skip+1, Full)
|
||||||
|
defer stack.Free()
|
||||||
|
|
||||||
|
buffer := bufferpool.Get()
|
||||||
|
defer buffer.Free()
|
||||||
|
|
||||||
|
stackfmt := NewFormatter(buffer)
|
||||||
|
stackfmt.FormatStack(stack)
|
||||||
|
return buffer.String()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Formatter formats a stack trace into a readable string representation.
|
||||||
|
type Formatter struct {
|
||||||
|
b *buffer.Buffer
|
||||||
|
nonEmpty bool // whehther we've written at least one frame already
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewFormatter builds a new Formatter.
|
||||||
|
func NewFormatter(b *buffer.Buffer) Formatter {
|
||||||
|
return Formatter{b: b}
|
||||||
|
}
|
||||||
|
|
||||||
|
// FormatStack formats all remaining frames in the provided stacktrace -- minus
|
||||||
|
// the final runtime.main/runtime.goexit frame.
|
||||||
|
func (sf *Formatter) FormatStack(stack *Stack) {
|
||||||
|
// Note: On the last iteration, frames.Next() returns false, with a valid
|
||||||
|
// frame, but we ignore this frame. The last frame is a runtime frame which
|
||||||
|
// adds noise, since it's only either runtime.main or runtime.goexit.
|
||||||
|
for frame, more := stack.Next(); more; frame, more = stack.Next() {
|
||||||
|
sf.FormatFrame(frame)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// FormatFrame formats the given frame.
|
||||||
|
func (sf *Formatter) FormatFrame(frame runtime.Frame) {
|
||||||
|
if sf.nonEmpty {
|
||||||
|
sf.b.AppendByte('\n')
|
||||||
|
}
|
||||||
|
sf.nonEmpty = true
|
||||||
|
sf.b.AppendString(frame.Function)
|
||||||
|
sf.b.AppendByte('\n')
|
||||||
|
sf.b.AppendByte('\t')
|
||||||
|
sf.b.AppendString(frame.File)
|
||||||
|
sf.b.AppendByte(':')
|
||||||
|
sf.b.AppendInt(int64(frame.Line))
|
||||||
|
}
|
153
vendor/go.uber.org/zap/internal/ztest/clock.go
generated
vendored
Normal file
153
vendor/go.uber.org/zap/internal/ztest/clock.go
generated
vendored
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
// Copyright (c) 2023 Uber Technologies, Inc.
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
|
||||||
|
package ztest
|
||||||
|
|
||||||
|
import (
|
||||||
|
"sort"
|
||||||
|
"sync"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// MockClock is a fake source of time.
|
||||||
|
// It implements standard time operations,
|
||||||
|
// but allows the user to control the passage of time.
|
||||||
|
//
|
||||||
|
// Use the [Add] method to progress time.
|
||||||
|
type MockClock struct {
|
||||||
|
mu sync.RWMutex
|
||||||
|
now time.Time
|
||||||
|
|
||||||
|
// The MockClock works by maintaining a list of waiters.
|
||||||
|
// Each waiter knows the time at which it should be resolved.
|
||||||
|
// When the clock advances, all waiters that are in range are resolved
|
||||||
|
// in chronological order.
|
||||||
|
waiters []waiter
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewMockClock builds a new mock clock
|
||||||
|
// using the current actual time as the initial time.
|
||||||
|
func NewMockClock() *MockClock {
|
||||||
|
return &MockClock{
|
||||||
|
now: time.Now(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now reports the current time.
|
||||||
|
func (c *MockClock) Now() time.Time {
|
||||||
|
c.mu.RLock()
|
||||||
|
defer c.mu.RUnlock()
|
||||||
|
return c.now
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewTicker returns a time.Ticker that ticks at the specified frequency.
|
||||||
|
//
|
||||||
|
// As with [time.NewTicker],
|
||||||
|
// the ticker will drop ticks if the receiver is slow,
|
||||||
|
// and the channel is never closed.
|
||||||
|
//
|
||||||
|
// Calling Stop on the returned ticker is a no-op.
|
||||||
|
// The ticker only runs when the clock is advanced.
|
||||||
|
func (c *MockClock) NewTicker(d time.Duration) *time.Ticker {
|
||||||
|
ch := make(chan time.Time, 1)
|
||||||
|
|
||||||
|
var tick func(time.Time)
|
||||||
|
tick = func(now time.Time) {
|
||||||
|
next := now.Add(d)
|
||||||
|
c.runAt(next, func() {
|
||||||
|
defer tick(next)
|
||||||
|
|
||||||
|
select {
|
||||||
|
case ch <- next:
|
||||||
|
// ok
|
||||||
|
default:
|
||||||
|
// The receiver is slow.
|
||||||
|
// Drop the tick and continue.
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
tick(c.Now())
|
||||||
|
|
||||||
|
return &time.Ticker{C: ch}
|
||||||
|
}
|
||||||
|
|
||||||
|
// runAt schedules the given function to be run at the given time.
|
||||||
|
// The function runs without a lock held, so it may schedule more work.
|
||||||
|
func (c *MockClock) runAt(t time.Time, fn func()) {
|
||||||
|
c.mu.Lock()
|
||||||
|
defer c.mu.Unlock()
|
||||||
|
c.waiters = append(c.waiters, waiter{until: t, fn: fn})
|
||||||
|
}
|
||||||
|
|
||||||
|
type waiter struct {
|
||||||
|
until time.Time
|
||||||
|
fn func()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add progresses time by the given duration.
|
||||||
|
// Other operations waiting for the time to advance
|
||||||
|
// will be resolved if they are within range.
|
||||||
|
//
|
||||||
|
// Side effects of operations waiting for the time to advance
|
||||||
|
// will take effect on a best-effort basis.
|
||||||
|
// Avoid racing with operations that have side effects.
|
||||||
|
//
|
||||||
|
// Panics if the duration is negative.
|
||||||
|
func (c *MockClock) Add(d time.Duration) {
|
||||||
|
if d < 0 {
|
||||||
|
panic("cannot add negative duration")
|
||||||
|
}
|
||||||
|
|
||||||
|
c.mu.Lock()
|
||||||
|
defer c.mu.Unlock()
|
||||||
|
|
||||||
|
sort.Slice(c.waiters, func(i, j int) bool {
|
||||||
|
return c.waiters[i].until.Before(c.waiters[j].until)
|
||||||
|
})
|
||||||
|
|
||||||
|
newTime := c.now.Add(d)
|
||||||
|
// newTime won't be recorded until the end of this method.
|
||||||
|
// This ensures that any waiters that are resolved
|
||||||
|
// are resolved at the time they were expecting.
|
||||||
|
|
||||||
|
for len(c.waiters) > 0 {
|
||||||
|
w := c.waiters[0]
|
||||||
|
if w.until.After(newTime) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
c.waiters[0] = waiter{} // avoid memory leak
|
||||||
|
c.waiters = c.waiters[1:]
|
||||||
|
|
||||||
|
// The waiter is within range.
|
||||||
|
// Travel to the time of the waiter and resolve it.
|
||||||
|
c.now = w.until
|
||||||
|
|
||||||
|
// The waiter may schedule more work
|
||||||
|
// so we must release the lock.
|
||||||
|
c.mu.Unlock()
|
||||||
|
w.fn()
|
||||||
|
// Sleeping here is necessary to let the side effects of waiters
|
||||||
|
// take effect before we continue.
|
||||||
|
time.Sleep(1 * time.Millisecond)
|
||||||
|
c.mu.Lock()
|
||||||
|
}
|
||||||
|
|
||||||
|
c.now = newTime
|
||||||
|
}
|
2
vendor/go.uber.org/zap/internal/ztest/timeout.go
generated
vendored
2
vendor/go.uber.org/zap/internal/ztest/timeout.go
generated
vendored
@ -42,11 +42,11 @@ func Sleep(base time.Duration) {
|
|||||||
// Initialize checks the environment and alters the timeout scale accordingly.
|
// Initialize checks the environment and alters the timeout scale accordingly.
|
||||||
// It returns a function to undo the scaling.
|
// It returns a function to undo the scaling.
|
||||||
func Initialize(factor string) func() {
|
func Initialize(factor string) func() {
|
||||||
original := _timeoutScale
|
|
||||||
fv, err := strconv.ParseFloat(factor, 64)
|
fv, err := strconv.ParseFloat(factor, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
original := _timeoutScale
|
||||||
_timeoutScale = fv
|
_timeoutScale = fv
|
||||||
return func() { _timeoutScale = original }
|
return func() { _timeoutScale = original }
|
||||||
}
|
}
|
||||||
|
6
vendor/go.uber.org/zap/internal/ztest/writer.go
generated
vendored
6
vendor/go.uber.org/zap/internal/ztest/writer.go
generated
vendored
@ -23,7 +23,7 @@ package ztest
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"errors"
|
"errors"
|
||||||
"io/ioutil"
|
"io"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -50,12 +50,12 @@ func (s *Syncer) Called() bool {
|
|||||||
return s.called
|
return s.called
|
||||||
}
|
}
|
||||||
|
|
||||||
// A Discarder sends all writes to ioutil.Discard.
|
// A Discarder sends all writes to io.Discard.
|
||||||
type Discarder struct{ Syncer }
|
type Discarder struct{ Syncer }
|
||||||
|
|
||||||
// Write implements io.Writer.
|
// Write implements io.Writer.
|
||||||
func (d *Discarder) Write(b []byte) (int, error) {
|
func (d *Discarder) Write(b []byte) (int, error) {
|
||||||
return ioutil.Discard.Write(b)
|
return io.Discard.Write(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
// FailWriter is a WriteSyncer that always returns an error on writes.
|
// FailWriter is a WriteSyncer that always returns an error on writes.
|
||||||
|
29
vendor/go.uber.org/zap/level.go
generated
vendored
29
vendor/go.uber.org/zap/level.go
generated
vendored
@ -21,7 +21,9 @@
|
|||||||
package zap
|
package zap
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"go.uber.org/atomic"
|
"sync/atomic"
|
||||||
|
|
||||||
|
"go.uber.org/zap/internal"
|
||||||
"go.uber.org/zap/zapcore"
|
"go.uber.org/zap/zapcore"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -70,12 +72,14 @@ type AtomicLevel struct {
|
|||||||
l *atomic.Int32
|
l *atomic.Int32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var _ internal.LeveledEnabler = AtomicLevel{}
|
||||||
|
|
||||||
// NewAtomicLevel creates an AtomicLevel with InfoLevel and above logging
|
// NewAtomicLevel creates an AtomicLevel with InfoLevel and above logging
|
||||||
// enabled.
|
// enabled.
|
||||||
func NewAtomicLevel() AtomicLevel {
|
func NewAtomicLevel() AtomicLevel {
|
||||||
return AtomicLevel{
|
lvl := AtomicLevel{l: new(atomic.Int32)}
|
||||||
l: atomic.NewInt32(int32(InfoLevel)),
|
lvl.l.Store(int32(InfoLevel))
|
||||||
}
|
return lvl
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewAtomicLevelAt is a convenience function that creates an AtomicLevel
|
// NewAtomicLevelAt is a convenience function that creates an AtomicLevel
|
||||||
@ -86,6 +90,23 @@ func NewAtomicLevelAt(l zapcore.Level) AtomicLevel {
|
|||||||
return a
|
return a
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ParseAtomicLevel parses an AtomicLevel based on a lowercase or all-caps ASCII
|
||||||
|
// representation of the log level. If the provided ASCII representation is
|
||||||
|
// invalid an error is returned.
|
||||||
|
//
|
||||||
|
// This is particularly useful when dealing with text input to configure log
|
||||||
|
// levels.
|
||||||
|
func ParseAtomicLevel(text string) (AtomicLevel, error) {
|
||||||
|
a := NewAtomicLevel()
|
||||||
|
l, err := zapcore.ParseLevel(text)
|
||||||
|
if err != nil {
|
||||||
|
return a, err
|
||||||
|
}
|
||||||
|
|
||||||
|
a.SetLevel(l)
|
||||||
|
return a, nil
|
||||||
|
}
|
||||||
|
|
||||||
// Enabled implements the zapcore.LevelEnabler interface, which allows the
|
// Enabled implements the zapcore.LevelEnabler interface, which allows the
|
||||||
// AtomicLevel to be used in place of traditional static levels.
|
// AtomicLevel to be used in place of traditional static levels.
|
||||||
func (lvl AtomicLevel) Enabled(l zapcore.Level) bool {
|
func (lvl AtomicLevel) Enabled(l zapcore.Level) bool {
|
||||||
|
170
vendor/go.uber.org/zap/logger.go
generated
vendored
170
vendor/go.uber.org/zap/logger.go
generated
vendored
@ -22,11 +22,12 @@ package zap
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"runtime"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"go.uber.org/zap/internal/bufferpool"
|
||||||
|
"go.uber.org/zap/internal/stacktrace"
|
||||||
"go.uber.org/zap/zapcore"
|
"go.uber.org/zap/zapcore"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -42,7 +43,7 @@ type Logger struct {
|
|||||||
|
|
||||||
development bool
|
development bool
|
||||||
addCaller bool
|
addCaller bool
|
||||||
onFatal zapcore.CheckWriteAction // default is WriteThenFatal
|
onFatal zapcore.CheckWriteHook // default is WriteThenFatal
|
||||||
|
|
||||||
name string
|
name string
|
||||||
errorOutput zapcore.WriteSyncer
|
errorOutput zapcore.WriteSyncer
|
||||||
@ -85,7 +86,7 @@ func New(core zapcore.Core, options ...Option) *Logger {
|
|||||||
func NewNop() *Logger {
|
func NewNop() *Logger {
|
||||||
return &Logger{
|
return &Logger{
|
||||||
core: zapcore.NewNopCore(),
|
core: zapcore.NewNopCore(),
|
||||||
errorOutput: zapcore.AddSync(ioutil.Discard),
|
errorOutput: zapcore.AddSync(io.Discard),
|
||||||
addStack: zapcore.FatalLevel + 1,
|
addStack: zapcore.FatalLevel + 1,
|
||||||
clock: zapcore.DefaultClock,
|
clock: zapcore.DefaultClock,
|
||||||
}
|
}
|
||||||
@ -107,6 +108,19 @@ func NewDevelopment(options ...Option) (*Logger, error) {
|
|||||||
return NewDevelopmentConfig().Build(options...)
|
return NewDevelopmentConfig().Build(options...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Must is a helper that wraps a call to a function returning (*Logger, error)
|
||||||
|
// and panics if the error is non-nil. It is intended for use in variable
|
||||||
|
// initialization such as:
|
||||||
|
//
|
||||||
|
// var logger = zap.Must(zap.NewProduction())
|
||||||
|
func Must(logger *Logger, err error) *Logger {
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return logger
|
||||||
|
}
|
||||||
|
|
||||||
// NewExample builds a Logger that's designed for use in zap's testable
|
// NewExample builds a Logger that's designed for use in zap's testable
|
||||||
// examples. It writes DebugLevel and above logs to standard out as JSON, but
|
// examples. It writes DebugLevel and above logs to standard out as JSON, but
|
||||||
// omits the timestamp and calling function to keep example output
|
// omits the timestamp and calling function to keep example output
|
||||||
@ -160,7 +174,8 @@ func (log *Logger) WithOptions(opts ...Option) *Logger {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// With creates a child logger and adds structured context to it. Fields added
|
// With creates a child logger and adds structured context to it. Fields added
|
||||||
// to the child don't affect the parent, and vice versa.
|
// to the child don't affect the parent, and vice versa. Any fields that
|
||||||
|
// require evaluation (such as Objects) are evaluated upon invocation of With.
|
||||||
func (log *Logger) With(fields ...Field) *Logger {
|
func (log *Logger) With(fields ...Field) *Logger {
|
||||||
if len(fields) == 0 {
|
if len(fields) == 0 {
|
||||||
return log
|
return log
|
||||||
@ -170,6 +185,35 @@ func (log *Logger) With(fields ...Field) *Logger {
|
|||||||
return l
|
return l
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WithLazy creates a child logger and adds structured context to it lazily.
|
||||||
|
//
|
||||||
|
// The fields are evaluated only if the logger is further chained with [With]
|
||||||
|
// or is written to with any of the log level methods.
|
||||||
|
// Until that occurs, the logger may retain references to objects inside the fields,
|
||||||
|
// and logging will reflect the state of an object at the time of logging,
|
||||||
|
// not the time of WithLazy().
|
||||||
|
//
|
||||||
|
// WithLazy provides a worthwhile performance optimization for contextual loggers
|
||||||
|
// when the likelihood of using the child logger is low,
|
||||||
|
// such as error paths and rarely taken branches.
|
||||||
|
//
|
||||||
|
// Similar to [With], fields added to the child don't affect the parent, and vice versa.
|
||||||
|
func (log *Logger) WithLazy(fields ...Field) *Logger {
|
||||||
|
if len(fields) == 0 {
|
||||||
|
return log
|
||||||
|
}
|
||||||
|
return log.WithOptions(WrapCore(func(core zapcore.Core) zapcore.Core {
|
||||||
|
return zapcore.NewLazyWith(core, fields)
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Level reports the minimum enabled level for this logger.
|
||||||
|
//
|
||||||
|
// For NopLoggers, this is [zapcore.InvalidLevel].
|
||||||
|
func (log *Logger) Level() zapcore.Level {
|
||||||
|
return zapcore.LevelOf(log.core)
|
||||||
|
}
|
||||||
|
|
||||||
// Check returns a CheckedEntry if logging a message at the specified level
|
// Check returns a CheckedEntry if logging a message at the specified level
|
||||||
// is enabled. It's a completely optional optimization; in high-performance
|
// is enabled. It's a completely optional optimization; in high-performance
|
||||||
// applications, Check can help avoid allocating a slice to hold fields.
|
// applications, Check can help avoid allocating a slice to hold fields.
|
||||||
@ -177,6 +221,16 @@ func (log *Logger) Check(lvl zapcore.Level, msg string) *zapcore.CheckedEntry {
|
|||||||
return log.check(lvl, msg)
|
return log.check(lvl, msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Log logs a message at the specified level. The message includes any fields
|
||||||
|
// passed at the log site, as well as any fields accumulated on the logger.
|
||||||
|
// Any Fields that require evaluation (such as Objects) are evaluated upon
|
||||||
|
// invocation of Log.
|
||||||
|
func (log *Logger) Log(lvl zapcore.Level, msg string, fields ...Field) {
|
||||||
|
if ce := log.check(lvl, msg); ce != nil {
|
||||||
|
ce.Write(fields...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Debug logs a message at DebugLevel. The message includes any fields passed
|
// Debug logs a message at DebugLevel. The message includes any fields passed
|
||||||
// at the log site, as well as any fields accumulated on the logger.
|
// at the log site, as well as any fields accumulated on the logger.
|
||||||
func (log *Logger) Debug(msg string, fields ...Field) {
|
func (log *Logger) Debug(msg string, fields ...Field) {
|
||||||
@ -253,14 +307,22 @@ func (log *Logger) Core() zapcore.Core {
|
|||||||
return log.core
|
return log.core
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Name returns the Logger's underlying name,
|
||||||
|
// or an empty string if the logger is unnamed.
|
||||||
|
func (log *Logger) Name() string {
|
||||||
|
return log.name
|
||||||
|
}
|
||||||
|
|
||||||
func (log *Logger) clone() *Logger {
|
func (log *Logger) clone() *Logger {
|
||||||
copy := *log
|
clone := *log
|
||||||
return ©
|
return &clone
|
||||||
}
|
}
|
||||||
|
|
||||||
func (log *Logger) check(lvl zapcore.Level, msg string) *zapcore.CheckedEntry {
|
func (log *Logger) check(lvl zapcore.Level, msg string) *zapcore.CheckedEntry {
|
||||||
// check must always be called directly by a method in the Logger interface
|
// Logger.check must always be called directly by a method in the
|
||||||
// (e.g., Check, Info, Fatal).
|
// Logger interface (e.g., Check, Info, Fatal).
|
||||||
|
// This skips Logger.check and the Info/Fatal/Check/etc. method that
|
||||||
|
// called it.
|
||||||
const callerSkipOffset = 2
|
const callerSkipOffset = 2
|
||||||
|
|
||||||
// Check the level first to reduce the cost of disabled log calls.
|
// Check the level first to reduce the cost of disabled log calls.
|
||||||
@ -283,18 +345,27 @@ func (log *Logger) check(lvl zapcore.Level, msg string) *zapcore.CheckedEntry {
|
|||||||
// Set up any required terminal behavior.
|
// Set up any required terminal behavior.
|
||||||
switch ent.Level {
|
switch ent.Level {
|
||||||
case zapcore.PanicLevel:
|
case zapcore.PanicLevel:
|
||||||
ce = ce.Should(ent, zapcore.WriteThenPanic)
|
ce = ce.After(ent, zapcore.WriteThenPanic)
|
||||||
case zapcore.FatalLevel:
|
case zapcore.FatalLevel:
|
||||||
onFatal := log.onFatal
|
onFatal := log.onFatal
|
||||||
// Noop is the default value for CheckWriteAction, and it leads to
|
// nil or WriteThenNoop will lead to continued execution after
|
||||||
// continued execution after a Fatal which is unexpected.
|
// a Fatal log entry, which is unexpected. For example,
|
||||||
if onFatal == zapcore.WriteThenNoop {
|
//
|
||||||
|
// f, err := os.Open(..)
|
||||||
|
// if err != nil {
|
||||||
|
// log.Fatal("cannot open", zap.Error(err))
|
||||||
|
// }
|
||||||
|
// fmt.Println(f.Name())
|
||||||
|
//
|
||||||
|
// The f.Name() will panic if we continue execution after the
|
||||||
|
// log.Fatal.
|
||||||
|
if onFatal == nil || onFatal == zapcore.WriteThenNoop {
|
||||||
onFatal = zapcore.WriteThenFatal
|
onFatal = zapcore.WriteThenFatal
|
||||||
}
|
}
|
||||||
ce = ce.Should(ent, onFatal)
|
ce = ce.After(ent, onFatal)
|
||||||
case zapcore.DPanicLevel:
|
case zapcore.DPanicLevel:
|
||||||
if log.development {
|
if log.development {
|
||||||
ce = ce.Should(ent, zapcore.WriteThenPanic)
|
ce = ce.After(ent, zapcore.WriteThenPanic)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -307,42 +378,55 @@ func (log *Logger) check(lvl zapcore.Level, msg string) *zapcore.CheckedEntry {
|
|||||||
|
|
||||||
// Thread the error output through to the CheckedEntry.
|
// Thread the error output through to the CheckedEntry.
|
||||||
ce.ErrorOutput = log.errorOutput
|
ce.ErrorOutput = log.errorOutput
|
||||||
if log.addCaller {
|
|
||||||
frame, defined := getCallerFrame(log.callerSkip + callerSkipOffset)
|
|
||||||
if !defined {
|
|
||||||
fmt.Fprintf(log.errorOutput, "%v Logger.check error: failed to get caller\n", ent.Time.UTC())
|
|
||||||
log.errorOutput.Sync()
|
|
||||||
}
|
|
||||||
|
|
||||||
ce.Entry.Caller = zapcore.EntryCaller{
|
addStack := log.addStack.Enabled(ce.Level)
|
||||||
Defined: defined,
|
if !log.addCaller && !addStack {
|
||||||
|
return ce
|
||||||
|
}
|
||||||
|
|
||||||
|
// Adding the caller or stack trace requires capturing the callers of
|
||||||
|
// this function. We'll share information between these two.
|
||||||
|
stackDepth := stacktrace.First
|
||||||
|
if addStack {
|
||||||
|
stackDepth = stacktrace.Full
|
||||||
|
}
|
||||||
|
stack := stacktrace.Capture(log.callerSkip+callerSkipOffset, stackDepth)
|
||||||
|
defer stack.Free()
|
||||||
|
|
||||||
|
if stack.Count() == 0 {
|
||||||
|
if log.addCaller {
|
||||||
|
fmt.Fprintf(log.errorOutput, "%v Logger.check error: failed to get caller\n", ent.Time.UTC())
|
||||||
|
_ = log.errorOutput.Sync()
|
||||||
|
}
|
||||||
|
return ce
|
||||||
|
}
|
||||||
|
|
||||||
|
frame, more := stack.Next()
|
||||||
|
|
||||||
|
if log.addCaller {
|
||||||
|
ce.Caller = zapcore.EntryCaller{
|
||||||
|
Defined: frame.PC != 0,
|
||||||
PC: frame.PC,
|
PC: frame.PC,
|
||||||
File: frame.File,
|
File: frame.File,
|
||||||
Line: frame.Line,
|
Line: frame.Line,
|
||||||
Function: frame.Function,
|
Function: frame.Function,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if log.addStack.Enabled(ce.Entry.Level) {
|
|
||||||
ce.Entry.Stack = StackSkip("", log.callerSkip+callerSkipOffset).String
|
if addStack {
|
||||||
|
buffer := bufferpool.Get()
|
||||||
|
defer buffer.Free()
|
||||||
|
|
||||||
|
stackfmt := stacktrace.NewFormatter(buffer)
|
||||||
|
|
||||||
|
// We've already extracted the first frame, so format that
|
||||||
|
// separately and defer to stackfmt for the rest.
|
||||||
|
stackfmt.FormatFrame(frame)
|
||||||
|
if more {
|
||||||
|
stackfmt.FormatStack(stack)
|
||||||
|
}
|
||||||
|
ce.Stack = buffer.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
return ce
|
return ce
|
||||||
}
|
}
|
||||||
|
|
||||||
// getCallerFrame gets caller frame. The argument skip is the number of stack
|
|
||||||
// frames to ascend, with 0 identifying the caller of getCallerFrame. The
|
|
||||||
// boolean ok is false if it was not possible to recover the information.
|
|
||||||
//
|
|
||||||
// Note: This implementation is similar to runtime.Caller, but it returns the whole frame.
|
|
||||||
func getCallerFrame(skip int) (frame runtime.Frame, ok bool) {
|
|
||||||
const skipOffset = 2 // skip getCallerFrame and Callers
|
|
||||||
|
|
||||||
pc := make([]uintptr, 1)
|
|
||||||
numFrames := runtime.Callers(skip+skipOffset, pc)
|
|
||||||
if numFrames < 1 {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
frame, _ = runtime.CallersFrames(pc).Next()
|
|
||||||
return frame, frame.PC != 0
|
|
||||||
}
|
|
||||||
|
21
vendor/go.uber.org/zap/options.go
generated
vendored
21
vendor/go.uber.org/zap/options.go
generated
vendored
@ -133,9 +133,28 @@ func IncreaseLevel(lvl zapcore.LevelEnabler) Option {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OnFatal sets the action to take on fatal logs.
|
// OnFatal sets the action to take on fatal logs.
|
||||||
|
//
|
||||||
|
// Deprecated: Use [WithFatalHook] instead.
|
||||||
func OnFatal(action zapcore.CheckWriteAction) Option {
|
func OnFatal(action zapcore.CheckWriteAction) Option {
|
||||||
|
return WithFatalHook(action)
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithFatalHook sets a CheckWriteHook to run on fatal logs.
|
||||||
|
// Zap will call this hook after writing a log statement with a Fatal level.
|
||||||
|
//
|
||||||
|
// For example, the following builds a logger that will exit the current
|
||||||
|
// goroutine after writing a fatal log message, but it will not exit the
|
||||||
|
// program.
|
||||||
|
//
|
||||||
|
// zap.New(core, zap.WithFatalHook(zapcore.WriteThenGoexit))
|
||||||
|
//
|
||||||
|
// It is important that the provided CheckWriteHook stops the control flow at
|
||||||
|
// the current statement to meet expectations of callers of the logger.
|
||||||
|
// We recommend calling os.Exit or runtime.Goexit inside custom hooks at
|
||||||
|
// minimum.
|
||||||
|
func WithFatalHook(hook zapcore.CheckWriteHook) Option {
|
||||||
return optionFunc(func(log *Logger) {
|
return optionFunc(func(log *Logger) {
|
||||||
log.onFatal = action
|
log.onFatal = hook
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
101
vendor/go.uber.org/zap/sink.go
generated
vendored
101
vendor/go.uber.org/zap/sink.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2016 Uber Technologies, Inc.
|
// Copyright (c) 2016-2022 Uber Technologies, Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -26,6 +26,7 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
@ -34,23 +35,7 @@ import (
|
|||||||
|
|
||||||
const schemeFile = "file"
|
const schemeFile = "file"
|
||||||
|
|
||||||
var (
|
var _sinkRegistry = newSinkRegistry()
|
||||||
_sinkMutex sync.RWMutex
|
|
||||||
_sinkFactories map[string]func(*url.URL) (Sink, error) // keyed by scheme
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
resetSinkRegistry()
|
|
||||||
}
|
|
||||||
|
|
||||||
func resetSinkRegistry() {
|
|
||||||
_sinkMutex.Lock()
|
|
||||||
defer _sinkMutex.Unlock()
|
|
||||||
|
|
||||||
_sinkFactories = map[string]func(*url.URL) (Sink, error){
|
|
||||||
schemeFile: newFileSink,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sink defines the interface to write to and close logger destinations.
|
// Sink defines the interface to write to and close logger destinations.
|
||||||
type Sink interface {
|
type Sink interface {
|
||||||
@ -58,10 +43,6 @@ type Sink interface {
|
|||||||
io.Closer
|
io.Closer
|
||||||
}
|
}
|
||||||
|
|
||||||
type nopCloserSink struct{ zapcore.WriteSyncer }
|
|
||||||
|
|
||||||
func (nopCloserSink) Close() error { return nil }
|
|
||||||
|
|
||||||
type errSinkNotFound struct {
|
type errSinkNotFound struct {
|
||||||
scheme string
|
scheme string
|
||||||
}
|
}
|
||||||
@ -70,16 +51,30 @@ func (e *errSinkNotFound) Error() string {
|
|||||||
return fmt.Sprintf("no sink found for scheme %q", e.scheme)
|
return fmt.Sprintf("no sink found for scheme %q", e.scheme)
|
||||||
}
|
}
|
||||||
|
|
||||||
// RegisterSink registers a user-supplied factory for all sinks with a
|
type nopCloserSink struct{ zapcore.WriteSyncer }
|
||||||
// particular scheme.
|
|
||||||
//
|
func (nopCloserSink) Close() error { return nil }
|
||||||
// All schemes must be ASCII, valid under section 3.1 of RFC 3986
|
|
||||||
// (https://tools.ietf.org/html/rfc3986#section-3.1), and must not already
|
type sinkRegistry struct {
|
||||||
// have a factory registered. Zap automatically registers a factory for the
|
mu sync.Mutex
|
||||||
// "file" scheme.
|
factories map[string]func(*url.URL) (Sink, error) // keyed by scheme
|
||||||
func RegisterSink(scheme string, factory func(*url.URL) (Sink, error)) error {
|
openFile func(string, int, os.FileMode) (*os.File, error) // type matches os.OpenFile
|
||||||
_sinkMutex.Lock()
|
}
|
||||||
defer _sinkMutex.Unlock()
|
|
||||||
|
func newSinkRegistry() *sinkRegistry {
|
||||||
|
sr := &sinkRegistry{
|
||||||
|
factories: make(map[string]func(*url.URL) (Sink, error)),
|
||||||
|
openFile: os.OpenFile,
|
||||||
|
}
|
||||||
|
// Infallible operation: the registry is empty, so we can't have a conflict.
|
||||||
|
_ = sr.RegisterSink(schemeFile, sr.newFileSinkFromURL)
|
||||||
|
return sr
|
||||||
|
}
|
||||||
|
|
||||||
|
// RegisterScheme registers the given factory for the specific scheme.
|
||||||
|
func (sr *sinkRegistry) RegisterSink(scheme string, factory func(*url.URL) (Sink, error)) error {
|
||||||
|
sr.mu.Lock()
|
||||||
|
defer sr.mu.Unlock()
|
||||||
|
|
||||||
if scheme == "" {
|
if scheme == "" {
|
||||||
return errors.New("can't register a sink factory for empty string")
|
return errors.New("can't register a sink factory for empty string")
|
||||||
@ -88,14 +83,22 @@ func RegisterSink(scheme string, factory func(*url.URL) (Sink, error)) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("%q is not a valid scheme: %v", scheme, err)
|
return fmt.Errorf("%q is not a valid scheme: %v", scheme, err)
|
||||||
}
|
}
|
||||||
if _, ok := _sinkFactories[normalized]; ok {
|
if _, ok := sr.factories[normalized]; ok {
|
||||||
return fmt.Errorf("sink factory already registered for scheme %q", normalized)
|
return fmt.Errorf("sink factory already registered for scheme %q", normalized)
|
||||||
}
|
}
|
||||||
_sinkFactories[normalized] = factory
|
sr.factories[normalized] = factory
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func newSink(rawURL string) (Sink, error) {
|
func (sr *sinkRegistry) newSink(rawURL string) (Sink, error) {
|
||||||
|
// URL parsing doesn't work well for Windows paths such as `c:\log.txt`, as scheme is set to
|
||||||
|
// the drive, and path is unset unless `c:/log.txt` is used.
|
||||||
|
// To avoid Windows-specific URL handling, we instead check IsAbs to open as a file.
|
||||||
|
// filepath.IsAbs is OS-specific, so IsAbs('c:/log.txt') is false outside of Windows.
|
||||||
|
if filepath.IsAbs(rawURL) {
|
||||||
|
return sr.newFileSinkFromPath(rawURL)
|
||||||
|
}
|
||||||
|
|
||||||
u, err := url.Parse(rawURL)
|
u, err := url.Parse(rawURL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("can't parse %q as a URL: %v", rawURL, err)
|
return nil, fmt.Errorf("can't parse %q as a URL: %v", rawURL, err)
|
||||||
@ -104,16 +107,27 @@ func newSink(rawURL string) (Sink, error) {
|
|||||||
u.Scheme = schemeFile
|
u.Scheme = schemeFile
|
||||||
}
|
}
|
||||||
|
|
||||||
_sinkMutex.RLock()
|
sr.mu.Lock()
|
||||||
factory, ok := _sinkFactories[u.Scheme]
|
factory, ok := sr.factories[u.Scheme]
|
||||||
_sinkMutex.RUnlock()
|
sr.mu.Unlock()
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, &errSinkNotFound{u.Scheme}
|
return nil, &errSinkNotFound{u.Scheme}
|
||||||
}
|
}
|
||||||
return factory(u)
|
return factory(u)
|
||||||
}
|
}
|
||||||
|
|
||||||
func newFileSink(u *url.URL) (Sink, error) {
|
// RegisterSink registers a user-supplied factory for all sinks with a
|
||||||
|
// particular scheme.
|
||||||
|
//
|
||||||
|
// All schemes must be ASCII, valid under section 0.1 of RFC 3986
|
||||||
|
// (https://tools.ietf.org/html/rfc3983#section-3.1), and must not already
|
||||||
|
// have a factory registered. Zap automatically registers a factory for the
|
||||||
|
// "file" scheme.
|
||||||
|
func RegisterSink(scheme string, factory func(*url.URL) (Sink, error)) error {
|
||||||
|
return _sinkRegistry.RegisterSink(scheme, factory)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sr *sinkRegistry) newFileSinkFromURL(u *url.URL) (Sink, error) {
|
||||||
if u.User != nil {
|
if u.User != nil {
|
||||||
return nil, fmt.Errorf("user and password not allowed with file URLs: got %v", u)
|
return nil, fmt.Errorf("user and password not allowed with file URLs: got %v", u)
|
||||||
}
|
}
|
||||||
@ -130,13 +144,18 @@ func newFileSink(u *url.URL) (Sink, error) {
|
|||||||
if hn := u.Hostname(); hn != "" && hn != "localhost" {
|
if hn := u.Hostname(); hn != "" && hn != "localhost" {
|
||||||
return nil, fmt.Errorf("file URLs must leave host empty or use localhost: got %v", u)
|
return nil, fmt.Errorf("file URLs must leave host empty or use localhost: got %v", u)
|
||||||
}
|
}
|
||||||
switch u.Path {
|
|
||||||
|
return sr.newFileSinkFromPath(u.Path)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sr *sinkRegistry) newFileSinkFromPath(path string) (Sink, error) {
|
||||||
|
switch path {
|
||||||
case "stdout":
|
case "stdout":
|
||||||
return nopCloserSink{os.Stdout}, nil
|
return nopCloserSink{os.Stdout}, nil
|
||||||
case "stderr":
|
case "stderr":
|
||||||
return nopCloserSink{os.Stderr}, nil
|
return nopCloserSink{os.Stderr}, nil
|
||||||
}
|
}
|
||||||
return os.OpenFile(u.Path, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0666)
|
return sr.openFile(path, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0o666)
|
||||||
}
|
}
|
||||||
|
|
||||||
func normalizeScheme(s string) (string, error) {
|
func normalizeScheme(s string) (string, error) {
|
||||||
|
85
vendor/go.uber.org/zap/stacktrace.go
generated
vendored
85
vendor/go.uber.org/zap/stacktrace.go
generated
vendored
@ -1,85 +0,0 @@
|
|||||||
// Copyright (c) 2016 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
package zap
|
|
||||||
|
|
||||||
import (
|
|
||||||
"runtime"
|
|
||||||
"sync"
|
|
||||||
|
|
||||||
"go.uber.org/zap/internal/bufferpool"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
_stacktracePool = sync.Pool{
|
|
||||||
New: func() interface{} {
|
|
||||||
return newProgramCounters(64)
|
|
||||||
},
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
func takeStacktrace(skip int) string {
|
|
||||||
buffer := bufferpool.Get()
|
|
||||||
defer buffer.Free()
|
|
||||||
programCounters := _stacktracePool.Get().(*programCounters)
|
|
||||||
defer _stacktracePool.Put(programCounters)
|
|
||||||
|
|
||||||
var numFrames int
|
|
||||||
for {
|
|
||||||
// Skip the call to runtime.Callers and takeStacktrace so that the
|
|
||||||
// program counters start at the caller of takeStacktrace.
|
|
||||||
numFrames = runtime.Callers(skip+2, programCounters.pcs)
|
|
||||||
if numFrames < len(programCounters.pcs) {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
// Don't put the too-short counter slice back into the pool; this lets
|
|
||||||
// the pool adjust if we consistently take deep stacktraces.
|
|
||||||
programCounters = newProgramCounters(len(programCounters.pcs) * 2)
|
|
||||||
}
|
|
||||||
|
|
||||||
i := 0
|
|
||||||
frames := runtime.CallersFrames(programCounters.pcs[:numFrames])
|
|
||||||
|
|
||||||
// Note: On the last iteration, frames.Next() returns false, with a valid
|
|
||||||
// frame, but we ignore this frame. The last frame is a a runtime frame which
|
|
||||||
// adds noise, since it's only either runtime.main or runtime.goexit.
|
|
||||||
for frame, more := frames.Next(); more; frame, more = frames.Next() {
|
|
||||||
if i != 0 {
|
|
||||||
buffer.AppendByte('\n')
|
|
||||||
}
|
|
||||||
i++
|
|
||||||
buffer.AppendString(frame.Function)
|
|
||||||
buffer.AppendByte('\n')
|
|
||||||
buffer.AppendByte('\t')
|
|
||||||
buffer.AppendString(frame.File)
|
|
||||||
buffer.AppendByte(':')
|
|
||||||
buffer.AppendInt(int64(frame.Line))
|
|
||||||
}
|
|
||||||
|
|
||||||
return buffer.String()
|
|
||||||
}
|
|
||||||
|
|
||||||
type programCounters struct {
|
|
||||||
pcs []uintptr
|
|
||||||
}
|
|
||||||
|
|
||||||
func newProgramCounters(size int) *programCounters {
|
|
||||||
return &programCounters{make([]uintptr, size)}
|
|
||||||
}
|
|
200
vendor/go.uber.org/zap/sugar.go
generated
vendored
200
vendor/go.uber.org/zap/sugar.go
generated
vendored
@ -31,6 +31,7 @@ import (
|
|||||||
const (
|
const (
|
||||||
_oddNumberErrMsg = "Ignored key without a value."
|
_oddNumberErrMsg = "Ignored key without a value."
|
||||||
_nonStringKeyErrMsg = "Ignored key-value pairs with non-string keys."
|
_nonStringKeyErrMsg = "Ignored key-value pairs with non-string keys."
|
||||||
|
_multipleErrMsg = "Multiple errors without a key."
|
||||||
)
|
)
|
||||||
|
|
||||||
// A SugaredLogger wraps the base Logger functionality in a slower, but less
|
// A SugaredLogger wraps the base Logger functionality in a slower, but less
|
||||||
@ -38,10 +39,19 @@ const (
|
|||||||
// method.
|
// method.
|
||||||
//
|
//
|
||||||
// Unlike the Logger, the SugaredLogger doesn't insist on structured logging.
|
// Unlike the Logger, the SugaredLogger doesn't insist on structured logging.
|
||||||
// For each log level, it exposes three methods: one for loosely-typed
|
// For each log level, it exposes four methods:
|
||||||
// structured logging, one for println-style formatting, and one for
|
//
|
||||||
// printf-style formatting. For example, SugaredLoggers can produce InfoLevel
|
// - methods named after the log level for log.Print-style logging
|
||||||
// output with Infow ("info with" structured context), Info, or Infof.
|
// - methods ending in "w" for loosely-typed structured logging
|
||||||
|
// - methods ending in "f" for log.Printf-style logging
|
||||||
|
// - methods ending in "ln" for log.Println-style logging
|
||||||
|
//
|
||||||
|
// For example, the methods for InfoLevel are:
|
||||||
|
//
|
||||||
|
// Info(...any) Print-style logging
|
||||||
|
// Infow(...any) Structured logging (read as "info with")
|
||||||
|
// Infof(string, ...any) Printf-style logging
|
||||||
|
// Infoln(...any) Println-style logging
|
||||||
type SugaredLogger struct {
|
type SugaredLogger struct {
|
||||||
base *Logger
|
base *Logger
|
||||||
}
|
}
|
||||||
@ -61,27 +71,40 @@ func (s *SugaredLogger) Named(name string) *SugaredLogger {
|
|||||||
return &SugaredLogger{base: s.base.Named(name)}
|
return &SugaredLogger{base: s.base.Named(name)}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WithOptions clones the current SugaredLogger, applies the supplied Options,
|
||||||
|
// and returns the result. It's safe to use concurrently.
|
||||||
|
func (s *SugaredLogger) WithOptions(opts ...Option) *SugaredLogger {
|
||||||
|
base := s.base.clone()
|
||||||
|
for _, opt := range opts {
|
||||||
|
opt.apply(base)
|
||||||
|
}
|
||||||
|
return &SugaredLogger{base: base}
|
||||||
|
}
|
||||||
|
|
||||||
// With adds a variadic number of fields to the logging context. It accepts a
|
// With adds a variadic number of fields to the logging context. It accepts a
|
||||||
// mix of strongly-typed Field objects and loosely-typed key-value pairs. When
|
// mix of strongly-typed Field objects and loosely-typed key-value pairs. When
|
||||||
// processing pairs, the first element of the pair is used as the field key
|
// processing pairs, the first element of the pair is used as the field key
|
||||||
// and the second as the field value.
|
// and the second as the field value.
|
||||||
//
|
//
|
||||||
// For example,
|
// For example,
|
||||||
// sugaredLogger.With(
|
//
|
||||||
// "hello", "world",
|
// sugaredLogger.With(
|
||||||
// "failure", errors.New("oh no"),
|
// "hello", "world",
|
||||||
// Stack(),
|
// "failure", errors.New("oh no"),
|
||||||
// "count", 42,
|
// Stack(),
|
||||||
// "user", User{Name: "alice"},
|
// "count", 42,
|
||||||
// )
|
// "user", User{Name: "alice"},
|
||||||
|
// )
|
||||||
|
//
|
||||||
// is the equivalent of
|
// is the equivalent of
|
||||||
// unsugared.With(
|
//
|
||||||
// String("hello", "world"),
|
// unsugared.With(
|
||||||
// String("failure", "oh no"),
|
// String("hello", "world"),
|
||||||
// Stack(),
|
// String("failure", "oh no"),
|
||||||
// Int("count", 42),
|
// Stack(),
|
||||||
// Object("user", User{Name: "alice"}),
|
// Int("count", 42),
|
||||||
// )
|
// Object("user", User{Name: "alice"}),
|
||||||
|
// )
|
||||||
//
|
//
|
||||||
// Note that the keys in key-value pairs should be strings. In development,
|
// Note that the keys in key-value pairs should be strings. In development,
|
||||||
// passing a non-string key panics. In production, the logger is more
|
// passing a non-string key panics. In production, the logger is more
|
||||||
@ -92,74 +115,95 @@ func (s *SugaredLogger) With(args ...interface{}) *SugaredLogger {
|
|||||||
return &SugaredLogger{base: s.base.With(s.sweetenFields(args)...)}
|
return &SugaredLogger{base: s.base.With(s.sweetenFields(args)...)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Debug uses fmt.Sprint to construct and log a message.
|
// Level reports the minimum enabled level for this logger.
|
||||||
|
//
|
||||||
|
// For NopLoggers, this is [zapcore.InvalidLevel].
|
||||||
|
func (s *SugaredLogger) Level() zapcore.Level {
|
||||||
|
return zapcore.LevelOf(s.base.core)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Debug logs the provided arguments at [DebugLevel].
|
||||||
|
// Spaces are added between arguments when neither is a string.
|
||||||
func (s *SugaredLogger) Debug(args ...interface{}) {
|
func (s *SugaredLogger) Debug(args ...interface{}) {
|
||||||
s.log(DebugLevel, "", args, nil)
|
s.log(DebugLevel, "", args, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Info uses fmt.Sprint to construct and log a message.
|
// Info logs the provided arguments at [InfoLevel].
|
||||||
|
// Spaces are added between arguments when neither is a string.
|
||||||
func (s *SugaredLogger) Info(args ...interface{}) {
|
func (s *SugaredLogger) Info(args ...interface{}) {
|
||||||
s.log(InfoLevel, "", args, nil)
|
s.log(InfoLevel, "", args, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Warn uses fmt.Sprint to construct and log a message.
|
// Warn logs the provided arguments at [WarnLevel].
|
||||||
|
// Spaces are added between arguments when neither is a string.
|
||||||
func (s *SugaredLogger) Warn(args ...interface{}) {
|
func (s *SugaredLogger) Warn(args ...interface{}) {
|
||||||
s.log(WarnLevel, "", args, nil)
|
s.log(WarnLevel, "", args, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Error uses fmt.Sprint to construct and log a message.
|
// Error logs the provided arguments at [ErrorLevel].
|
||||||
|
// Spaces are added between arguments when neither is a string.
|
||||||
func (s *SugaredLogger) Error(args ...interface{}) {
|
func (s *SugaredLogger) Error(args ...interface{}) {
|
||||||
s.log(ErrorLevel, "", args, nil)
|
s.log(ErrorLevel, "", args, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// DPanic uses fmt.Sprint to construct and log a message. In development, the
|
// DPanic logs the provided arguments at [DPanicLevel].
|
||||||
// logger then panics. (See DPanicLevel for details.)
|
// In development, the logger then panics. (See [DPanicLevel] for details.)
|
||||||
|
// Spaces are added between arguments when neither is a string.
|
||||||
func (s *SugaredLogger) DPanic(args ...interface{}) {
|
func (s *SugaredLogger) DPanic(args ...interface{}) {
|
||||||
s.log(DPanicLevel, "", args, nil)
|
s.log(DPanicLevel, "", args, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Panic uses fmt.Sprint to construct and log a message, then panics.
|
// Panic constructs a message with the provided arguments and panics.
|
||||||
|
// Spaces are added between arguments when neither is a string.
|
||||||
func (s *SugaredLogger) Panic(args ...interface{}) {
|
func (s *SugaredLogger) Panic(args ...interface{}) {
|
||||||
s.log(PanicLevel, "", args, nil)
|
s.log(PanicLevel, "", args, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fatal uses fmt.Sprint to construct and log a message, then calls os.Exit.
|
// Fatal constructs a message with the provided arguments and calls os.Exit.
|
||||||
|
// Spaces are added between arguments when neither is a string.
|
||||||
func (s *SugaredLogger) Fatal(args ...interface{}) {
|
func (s *SugaredLogger) Fatal(args ...interface{}) {
|
||||||
s.log(FatalLevel, "", args, nil)
|
s.log(FatalLevel, "", args, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Debugf uses fmt.Sprintf to log a templated message.
|
// Debugf formats the message according to the format specifier
|
||||||
|
// and logs it at [DebugLevel].
|
||||||
func (s *SugaredLogger) Debugf(template string, args ...interface{}) {
|
func (s *SugaredLogger) Debugf(template string, args ...interface{}) {
|
||||||
s.log(DebugLevel, template, args, nil)
|
s.log(DebugLevel, template, args, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Infof uses fmt.Sprintf to log a templated message.
|
// Infof formats the message according to the format specifier
|
||||||
|
// and logs it at [InfoLevel].
|
||||||
func (s *SugaredLogger) Infof(template string, args ...interface{}) {
|
func (s *SugaredLogger) Infof(template string, args ...interface{}) {
|
||||||
s.log(InfoLevel, template, args, nil)
|
s.log(InfoLevel, template, args, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Warnf uses fmt.Sprintf to log a templated message.
|
// Warnf formats the message according to the format specifier
|
||||||
|
// and logs it at [WarnLevel].
|
||||||
func (s *SugaredLogger) Warnf(template string, args ...interface{}) {
|
func (s *SugaredLogger) Warnf(template string, args ...interface{}) {
|
||||||
s.log(WarnLevel, template, args, nil)
|
s.log(WarnLevel, template, args, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Errorf uses fmt.Sprintf to log a templated message.
|
// Errorf formats the message according to the format specifier
|
||||||
|
// and logs it at [ErrorLevel].
|
||||||
func (s *SugaredLogger) Errorf(template string, args ...interface{}) {
|
func (s *SugaredLogger) Errorf(template string, args ...interface{}) {
|
||||||
s.log(ErrorLevel, template, args, nil)
|
s.log(ErrorLevel, template, args, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// DPanicf uses fmt.Sprintf to log a templated message. In development, the
|
// DPanicf formats the message according to the format specifier
|
||||||
// logger then panics. (See DPanicLevel for details.)
|
// and logs it at [DPanicLevel].
|
||||||
|
// In development, the logger then panics. (See [DPanicLevel] for details.)
|
||||||
func (s *SugaredLogger) DPanicf(template string, args ...interface{}) {
|
func (s *SugaredLogger) DPanicf(template string, args ...interface{}) {
|
||||||
s.log(DPanicLevel, template, args, nil)
|
s.log(DPanicLevel, template, args, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Panicf uses fmt.Sprintf to log a templated message, then panics.
|
// Panicf formats the message according to the format specifier
|
||||||
|
// and panics.
|
||||||
func (s *SugaredLogger) Panicf(template string, args ...interface{}) {
|
func (s *SugaredLogger) Panicf(template string, args ...interface{}) {
|
||||||
s.log(PanicLevel, template, args, nil)
|
s.log(PanicLevel, template, args, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fatalf uses fmt.Sprintf to log a templated message, then calls os.Exit.
|
// Fatalf formats the message according to the format specifier
|
||||||
|
// and calls os.Exit.
|
||||||
func (s *SugaredLogger) Fatalf(template string, args ...interface{}) {
|
func (s *SugaredLogger) Fatalf(template string, args ...interface{}) {
|
||||||
s.log(FatalLevel, template, args, nil)
|
s.log(FatalLevel, template, args, nil)
|
||||||
}
|
}
|
||||||
@ -168,7 +212,8 @@ func (s *SugaredLogger) Fatalf(template string, args ...interface{}) {
|
|||||||
// pairs are treated as they are in With.
|
// pairs are treated as they are in With.
|
||||||
//
|
//
|
||||||
// When debug-level logging is disabled, this is much faster than
|
// When debug-level logging is disabled, this is much faster than
|
||||||
// s.With(keysAndValues).Debug(msg)
|
//
|
||||||
|
// s.With(keysAndValues).Debug(msg)
|
||||||
func (s *SugaredLogger) Debugw(msg string, keysAndValues ...interface{}) {
|
func (s *SugaredLogger) Debugw(msg string, keysAndValues ...interface{}) {
|
||||||
s.log(DebugLevel, msg, nil, keysAndValues)
|
s.log(DebugLevel, msg, nil, keysAndValues)
|
||||||
}
|
}
|
||||||
@ -210,11 +255,55 @@ func (s *SugaredLogger) Fatalw(msg string, keysAndValues ...interface{}) {
|
|||||||
s.log(FatalLevel, msg, nil, keysAndValues)
|
s.log(FatalLevel, msg, nil, keysAndValues)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Debugln logs a message at [DebugLevel].
|
||||||
|
// Spaces are always added between arguments.
|
||||||
|
func (s *SugaredLogger) Debugln(args ...interface{}) {
|
||||||
|
s.logln(DebugLevel, args, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Infoln logs a message at [InfoLevel].
|
||||||
|
// Spaces are always added between arguments.
|
||||||
|
func (s *SugaredLogger) Infoln(args ...interface{}) {
|
||||||
|
s.logln(InfoLevel, args, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Warnln logs a message at [WarnLevel].
|
||||||
|
// Spaces are always added between arguments.
|
||||||
|
func (s *SugaredLogger) Warnln(args ...interface{}) {
|
||||||
|
s.logln(WarnLevel, args, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Errorln logs a message at [ErrorLevel].
|
||||||
|
// Spaces are always added between arguments.
|
||||||
|
func (s *SugaredLogger) Errorln(args ...interface{}) {
|
||||||
|
s.logln(ErrorLevel, args, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DPanicln logs a message at [DPanicLevel].
|
||||||
|
// In development, the logger then panics. (See [DPanicLevel] for details.)
|
||||||
|
// Spaces are always added between arguments.
|
||||||
|
func (s *SugaredLogger) DPanicln(args ...interface{}) {
|
||||||
|
s.logln(DPanicLevel, args, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Panicln logs a message at [PanicLevel] and panics.
|
||||||
|
// Spaces are always added between arguments.
|
||||||
|
func (s *SugaredLogger) Panicln(args ...interface{}) {
|
||||||
|
s.logln(PanicLevel, args, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fatalln logs a message at [FatalLevel] and calls os.Exit.
|
||||||
|
// Spaces are always added between arguments.
|
||||||
|
func (s *SugaredLogger) Fatalln(args ...interface{}) {
|
||||||
|
s.logln(FatalLevel, args, nil)
|
||||||
|
}
|
||||||
|
|
||||||
// Sync flushes any buffered log entries.
|
// Sync flushes any buffered log entries.
|
||||||
func (s *SugaredLogger) Sync() error {
|
func (s *SugaredLogger) Sync() error {
|
||||||
return s.base.Sync()
|
return s.base.Sync()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// log message with Sprint, Sprintf, or neither.
|
||||||
func (s *SugaredLogger) log(lvl zapcore.Level, template string, fmtArgs []interface{}, context []interface{}) {
|
func (s *SugaredLogger) log(lvl zapcore.Level, template string, fmtArgs []interface{}, context []interface{}) {
|
||||||
// If logging at this level is completely disabled, skip the overhead of
|
// If logging at this level is completely disabled, skip the overhead of
|
||||||
// string formatting.
|
// string formatting.
|
||||||
@ -228,6 +317,18 @@ func (s *SugaredLogger) log(lvl zapcore.Level, template string, fmtArgs []interf
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// logln message with Sprintln
|
||||||
|
func (s *SugaredLogger) logln(lvl zapcore.Level, fmtArgs []interface{}, context []interface{}) {
|
||||||
|
if lvl < DPanicLevel && !s.base.Core().Enabled(lvl) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
msg := getMessageln(fmtArgs)
|
||||||
|
if ce := s.base.Check(lvl, msg); ce != nil {
|
||||||
|
ce.Write(s.sweetenFields(context)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// getMessage format with Sprint, Sprintf, or neither.
|
// getMessage format with Sprint, Sprintf, or neither.
|
||||||
func getMessage(template string, fmtArgs []interface{}) string {
|
func getMessage(template string, fmtArgs []interface{}) string {
|
||||||
if len(fmtArgs) == 0 {
|
if len(fmtArgs) == 0 {
|
||||||
@ -246,15 +347,24 @@ func getMessage(template string, fmtArgs []interface{}) string {
|
|||||||
return fmt.Sprint(fmtArgs...)
|
return fmt.Sprint(fmtArgs...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// getMessageln format with Sprintln.
|
||||||
|
func getMessageln(fmtArgs []interface{}) string {
|
||||||
|
msg := fmt.Sprintln(fmtArgs...)
|
||||||
|
return msg[:len(msg)-1]
|
||||||
|
}
|
||||||
|
|
||||||
func (s *SugaredLogger) sweetenFields(args []interface{}) []Field {
|
func (s *SugaredLogger) sweetenFields(args []interface{}) []Field {
|
||||||
if len(args) == 0 {
|
if len(args) == 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Allocate enough space for the worst case; if users pass only structured
|
var (
|
||||||
// fields, we shouldn't penalize them with extra allocations.
|
// Allocate enough space for the worst case; if users pass only structured
|
||||||
fields := make([]Field, 0, len(args))
|
// fields, we shouldn't penalize them with extra allocations.
|
||||||
var invalid invalidPairs
|
fields = make([]Field, 0, len(args))
|
||||||
|
invalid invalidPairs
|
||||||
|
seenError bool
|
||||||
|
)
|
||||||
|
|
||||||
for i := 0; i < len(args); {
|
for i := 0; i < len(args); {
|
||||||
// This is a strongly-typed field. Consume it and move on.
|
// This is a strongly-typed field. Consume it and move on.
|
||||||
@ -264,6 +374,18 @@ func (s *SugaredLogger) sweetenFields(args []interface{}) []Field {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If it is an error, consume it and move on.
|
||||||
|
if err, ok := args[i].(error); ok {
|
||||||
|
if !seenError {
|
||||||
|
seenError = true
|
||||||
|
fields = append(fields, Error(err))
|
||||||
|
} else {
|
||||||
|
s.base.Error(_multipleErrMsg, Error(err))
|
||||||
|
}
|
||||||
|
i++
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
// Make sure this element isn't a dangling key.
|
// Make sure this element isn't a dangling key.
|
||||||
if i == len(args)-1 {
|
if i == len(args)-1 {
|
||||||
s.base.Error(_oddNumberErrMsg, Any("ignored", args[i]))
|
s.base.Error(_oddNumberErrMsg, Any("ignored", args[i]))
|
||||||
|
23
vendor/go.uber.org/zap/writer.go
generated
vendored
23
vendor/go.uber.org/zap/writer.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2016 Uber Technologies, Inc.
|
// Copyright (c) 2016-2022 Uber Technologies, Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -23,7 +23,6 @@ package zap
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
|
||||||
|
|
||||||
"go.uber.org/zap/zapcore"
|
"go.uber.org/zap/zapcore"
|
||||||
|
|
||||||
@ -49,40 +48,40 @@ import (
|
|||||||
// os.Stdout and os.Stderr. When specified without a scheme, relative file
|
// os.Stdout and os.Stderr. When specified without a scheme, relative file
|
||||||
// paths also work.
|
// paths also work.
|
||||||
func Open(paths ...string) (zapcore.WriteSyncer, func(), error) {
|
func Open(paths ...string) (zapcore.WriteSyncer, func(), error) {
|
||||||
writers, close, err := open(paths)
|
writers, closeAll, err := open(paths)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
writer := CombineWriteSyncers(writers...)
|
writer := CombineWriteSyncers(writers...)
|
||||||
return writer, close, nil
|
return writer, closeAll, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func open(paths []string) ([]zapcore.WriteSyncer, func(), error) {
|
func open(paths []string) ([]zapcore.WriteSyncer, func(), error) {
|
||||||
writers := make([]zapcore.WriteSyncer, 0, len(paths))
|
writers := make([]zapcore.WriteSyncer, 0, len(paths))
|
||||||
closers := make([]io.Closer, 0, len(paths))
|
closers := make([]io.Closer, 0, len(paths))
|
||||||
close := func() {
|
closeAll := func() {
|
||||||
for _, c := range closers {
|
for _, c := range closers {
|
||||||
c.Close()
|
_ = c.Close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var openErr error
|
var openErr error
|
||||||
for _, path := range paths {
|
for _, path := range paths {
|
||||||
sink, err := newSink(path)
|
sink, err := _sinkRegistry.newSink(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
openErr = multierr.Append(openErr, fmt.Errorf("couldn't open sink %q: %v", path, err))
|
openErr = multierr.Append(openErr, fmt.Errorf("open sink %q: %w", path, err))
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
writers = append(writers, sink)
|
writers = append(writers, sink)
|
||||||
closers = append(closers, sink)
|
closers = append(closers, sink)
|
||||||
}
|
}
|
||||||
if openErr != nil {
|
if openErr != nil {
|
||||||
close()
|
closeAll()
|
||||||
return writers, nil, openErr
|
return nil, nil, openErr
|
||||||
}
|
}
|
||||||
|
|
||||||
return writers, close, nil
|
return writers, closeAll, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// CombineWriteSyncers is a utility that combines multiple WriteSyncers into a
|
// CombineWriteSyncers is a utility that combines multiple WriteSyncers into a
|
||||||
@ -93,7 +92,7 @@ func open(paths []string) ([]zapcore.WriteSyncer, func(), error) {
|
|||||||
// using zapcore.NewMultiWriteSyncer and zapcore.Lock individually.
|
// using zapcore.NewMultiWriteSyncer and zapcore.Lock individually.
|
||||||
func CombineWriteSyncers(writers ...zapcore.WriteSyncer) zapcore.WriteSyncer {
|
func CombineWriteSyncers(writers ...zapcore.WriteSyncer) zapcore.WriteSyncer {
|
||||||
if len(writers) == 0 {
|
if len(writers) == 0 {
|
||||||
return zapcore.AddSync(ioutil.Discard)
|
return zapcore.AddSync(io.Discard)
|
||||||
}
|
}
|
||||||
return zapcore.Lock(zapcore.NewMultiWriteSyncer(writers...))
|
return zapcore.Lock(zapcore.NewMultiWriteSyncer(writers...))
|
||||||
}
|
}
|
||||||
|
31
vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go
generated
vendored
31
vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go
generated
vendored
@ -43,6 +43,37 @@ const (
|
|||||||
//
|
//
|
||||||
// BufferedWriteSyncer is safe for concurrent use. You don't need to use
|
// BufferedWriteSyncer is safe for concurrent use. You don't need to use
|
||||||
// zapcore.Lock for WriteSyncers with BufferedWriteSyncer.
|
// zapcore.Lock for WriteSyncers with BufferedWriteSyncer.
|
||||||
|
//
|
||||||
|
// To set up a BufferedWriteSyncer, construct a WriteSyncer for your log
|
||||||
|
// destination (*os.File is a valid WriteSyncer), wrap it with
|
||||||
|
// BufferedWriteSyncer, and defer a Stop() call for when you no longer need the
|
||||||
|
// object.
|
||||||
|
//
|
||||||
|
// func main() {
|
||||||
|
// ws := ... // your log destination
|
||||||
|
// bws := &zapcore.BufferedWriteSyncer{WS: ws}
|
||||||
|
// defer bws.Stop()
|
||||||
|
//
|
||||||
|
// // ...
|
||||||
|
// core := zapcore.NewCore(enc, bws, lvl)
|
||||||
|
// logger := zap.New(core)
|
||||||
|
//
|
||||||
|
// // ...
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// By default, a BufferedWriteSyncer will buffer up to 256 kilobytes of logs,
|
||||||
|
// waiting at most 30 seconds between flushes.
|
||||||
|
// You can customize these parameters by setting the Size or FlushInterval
|
||||||
|
// fields.
|
||||||
|
// For example, the following buffers up to 512 kB of logs before flushing them
|
||||||
|
// to Stderr, with a maximum of one minute between each flush.
|
||||||
|
//
|
||||||
|
// ws := &BufferedWriteSyncer{
|
||||||
|
// WS: os.Stderr,
|
||||||
|
// Size: 512 * 1024, // 512 kB
|
||||||
|
// FlushInterval: time.Minute,
|
||||||
|
// }
|
||||||
|
// defer ws.Stop()
|
||||||
type BufferedWriteSyncer struct {
|
type BufferedWriteSyncer struct {
|
||||||
// WS is the WriteSyncer around which BufferedWriteSyncer will buffer
|
// WS is the WriteSyncer around which BufferedWriteSyncer will buffer
|
||||||
// writes.
|
// writes.
|
||||||
|
4
vendor/go.uber.org/zap/zapcore/clock.go
generated
vendored
4
vendor/go.uber.org/zap/zapcore/clock.go
generated
vendored
@ -20,9 +20,7 @@
|
|||||||
|
|
||||||
package zapcore
|
package zapcore
|
||||||
|
|
||||||
import (
|
import "time"
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DefaultClock is the default clock used by Zap in operations that require
|
// DefaultClock is the default clock used by Zap in operations that require
|
||||||
// time. This clock uses the system clock for all operations.
|
// time. This clock uses the system clock for all operations.
|
||||||
|
20
vendor/go.uber.org/zap/zapcore/console_encoder.go
generated
vendored
20
vendor/go.uber.org/zap/zapcore/console_encoder.go
generated
vendored
@ -22,20 +22,20 @@ package zapcore
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"sync"
|
|
||||||
|
|
||||||
"go.uber.org/zap/buffer"
|
"go.uber.org/zap/buffer"
|
||||||
"go.uber.org/zap/internal/bufferpool"
|
"go.uber.org/zap/internal/bufferpool"
|
||||||
|
"go.uber.org/zap/internal/pool"
|
||||||
)
|
)
|
||||||
|
|
||||||
var _sliceEncoderPool = sync.Pool{
|
var _sliceEncoderPool = pool.New(func() *sliceArrayEncoder {
|
||||||
New: func() interface{} {
|
return &sliceArrayEncoder{
|
||||||
return &sliceArrayEncoder{elems: make([]interface{}, 0, 2)}
|
elems: make([]interface{}, 0, 2),
|
||||||
},
|
}
|
||||||
}
|
})
|
||||||
|
|
||||||
func getSliceEncoder() *sliceArrayEncoder {
|
func getSliceEncoder() *sliceArrayEncoder {
|
||||||
return _sliceEncoderPool.Get().(*sliceArrayEncoder)
|
return _sliceEncoderPool.Get()
|
||||||
}
|
}
|
||||||
|
|
||||||
func putSliceEncoder(e *sliceArrayEncoder) {
|
func putSliceEncoder(e *sliceArrayEncoder) {
|
||||||
@ -125,11 +125,7 @@ func (c consoleEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer,
|
|||||||
line.AppendString(ent.Stack)
|
line.AppendString(ent.Stack)
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.LineEnding != "" {
|
line.AppendString(c.LineEnding)
|
||||||
line.AppendString(c.LineEnding)
|
|
||||||
} else {
|
|
||||||
line.AppendString(DefaultLineEnding)
|
|
||||||
}
|
|
||||||
return line, nil
|
return line, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
15
vendor/go.uber.org/zap/zapcore/core.go
generated
vendored
15
vendor/go.uber.org/zap/zapcore/core.go
generated
vendored
@ -69,6 +69,15 @@ type ioCore struct {
|
|||||||
out WriteSyncer
|
out WriteSyncer
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
_ Core = (*ioCore)(nil)
|
||||||
|
_ leveledEnabler = (*ioCore)(nil)
|
||||||
|
)
|
||||||
|
|
||||||
|
func (c *ioCore) Level() Level {
|
||||||
|
return LevelOf(c.LevelEnabler)
|
||||||
|
}
|
||||||
|
|
||||||
func (c *ioCore) With(fields []Field) Core {
|
func (c *ioCore) With(fields []Field) Core {
|
||||||
clone := c.clone()
|
clone := c.clone()
|
||||||
addFields(clone.enc, fields)
|
addFields(clone.enc, fields)
|
||||||
@ -93,9 +102,9 @@ func (c *ioCore) Write(ent Entry, fields []Field) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if ent.Level > ErrorLevel {
|
if ent.Level > ErrorLevel {
|
||||||
// Since we may be crashing the program, sync the output. Ignore Sync
|
// Since we may be crashing the program, sync the output.
|
||||||
// errors, pending a clean solution to issue #370.
|
// Ignore Sync errors, pending a clean solution to issue #370.
|
||||||
c.Sync()
|
_ = c.Sync()
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
30
vendor/go.uber.org/zap/zapcore/encoder.go
generated
vendored
30
vendor/go.uber.org/zap/zapcore/encoder.go
generated
vendored
@ -22,6 +22,7 @@ package zapcore
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"io"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.uber.org/zap/buffer"
|
"go.uber.org/zap/buffer"
|
||||||
@ -187,10 +188,13 @@ func (e *TimeEncoder) UnmarshalText(text []byte) error {
|
|||||||
|
|
||||||
// UnmarshalYAML unmarshals YAML to a TimeEncoder.
|
// UnmarshalYAML unmarshals YAML to a TimeEncoder.
|
||||||
// If value is an object with a "layout" field, it will be unmarshaled to TimeEncoder with given layout.
|
// If value is an object with a "layout" field, it will be unmarshaled to TimeEncoder with given layout.
|
||||||
// timeEncoder:
|
//
|
||||||
// layout: 06/01/02 03:04pm
|
// timeEncoder:
|
||||||
|
// layout: 06/01/02 03:04pm
|
||||||
|
//
|
||||||
// If value is string, it uses UnmarshalText.
|
// If value is string, it uses UnmarshalText.
|
||||||
// timeEncoder: iso8601
|
//
|
||||||
|
// timeEncoder: iso8601
|
||||||
func (e *TimeEncoder) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
func (e *TimeEncoder) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||||||
var o struct {
|
var o struct {
|
||||||
Layout string `json:"layout" yaml:"layout"`
|
Layout string `json:"layout" yaml:"layout"`
|
||||||
@ -312,14 +316,15 @@ func (e *NameEncoder) UnmarshalText(text []byte) error {
|
|||||||
type EncoderConfig struct {
|
type EncoderConfig struct {
|
||||||
// Set the keys used for each log entry. If any key is empty, that portion
|
// Set the keys used for each log entry. If any key is empty, that portion
|
||||||
// of the entry is omitted.
|
// of the entry is omitted.
|
||||||
MessageKey string `json:"messageKey" yaml:"messageKey"`
|
MessageKey string `json:"messageKey" yaml:"messageKey"`
|
||||||
LevelKey string `json:"levelKey" yaml:"levelKey"`
|
LevelKey string `json:"levelKey" yaml:"levelKey"`
|
||||||
TimeKey string `json:"timeKey" yaml:"timeKey"`
|
TimeKey string `json:"timeKey" yaml:"timeKey"`
|
||||||
NameKey string `json:"nameKey" yaml:"nameKey"`
|
NameKey string `json:"nameKey" yaml:"nameKey"`
|
||||||
CallerKey string `json:"callerKey" yaml:"callerKey"`
|
CallerKey string `json:"callerKey" yaml:"callerKey"`
|
||||||
FunctionKey string `json:"functionKey" yaml:"functionKey"`
|
FunctionKey string `json:"functionKey" yaml:"functionKey"`
|
||||||
StacktraceKey string `json:"stacktraceKey" yaml:"stacktraceKey"`
|
StacktraceKey string `json:"stacktraceKey" yaml:"stacktraceKey"`
|
||||||
LineEnding string `json:"lineEnding" yaml:"lineEnding"`
|
SkipLineEnding bool `json:"skipLineEnding" yaml:"skipLineEnding"`
|
||||||
|
LineEnding string `json:"lineEnding" yaml:"lineEnding"`
|
||||||
// Configure the primitive representations of common complex types. For
|
// Configure the primitive representations of common complex types. For
|
||||||
// example, some users may want all time.Times serialized as floating-point
|
// example, some users may want all time.Times serialized as floating-point
|
||||||
// seconds since epoch, while others may prefer ISO8601 strings.
|
// seconds since epoch, while others may prefer ISO8601 strings.
|
||||||
@ -330,6 +335,9 @@ type EncoderConfig struct {
|
|||||||
// Unlike the other primitive type encoders, EncodeName is optional. The
|
// Unlike the other primitive type encoders, EncodeName is optional. The
|
||||||
// zero value falls back to FullNameEncoder.
|
// zero value falls back to FullNameEncoder.
|
||||||
EncodeName NameEncoder `json:"nameEncoder" yaml:"nameEncoder"`
|
EncodeName NameEncoder `json:"nameEncoder" yaml:"nameEncoder"`
|
||||||
|
// Configure the encoder for interface{} type objects.
|
||||||
|
// If not provided, objects are encoded using json.Encoder
|
||||||
|
NewReflectedEncoder func(io.Writer) ReflectedEncoder `json:"-" yaml:"-"`
|
||||||
// Configures the field separator used by the console encoder. Defaults
|
// Configures the field separator used by the console encoder. Defaults
|
||||||
// to tab.
|
// to tab.
|
||||||
ConsoleSeparator string `json:"consoleSeparator" yaml:"consoleSeparator"`
|
ConsoleSeparator string `json:"consoleSeparator" yaml:"consoleSeparator"`
|
||||||
|
94
vendor/go.uber.org/zap/zapcore/entry.go
generated
vendored
94
vendor/go.uber.org/zap/zapcore/entry.go
generated
vendored
@ -24,26 +24,23 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"go.uber.org/multierr"
|
||||||
"go.uber.org/zap/internal/bufferpool"
|
"go.uber.org/zap/internal/bufferpool"
|
||||||
"go.uber.org/zap/internal/exit"
|
"go.uber.org/zap/internal/exit"
|
||||||
|
"go.uber.org/zap/internal/pool"
|
||||||
"go.uber.org/multierr"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var _cePool = pool.New(func() *CheckedEntry {
|
||||||
_cePool = sync.Pool{New: func() interface{} {
|
// Pre-allocate some space for cores.
|
||||||
// Pre-allocate some space for cores.
|
return &CheckedEntry{
|
||||||
return &CheckedEntry{
|
cores: make([]Core, 4),
|
||||||
cores: make([]Core, 4),
|
}
|
||||||
}
|
})
|
||||||
}}
|
|
||||||
)
|
|
||||||
|
|
||||||
func getCheckedEntry() *CheckedEntry {
|
func getCheckedEntry() *CheckedEntry {
|
||||||
ce := _cePool.Get().(*CheckedEntry)
|
ce := _cePool.Get()
|
||||||
ce.reset()
|
ce.reset()
|
||||||
return ce
|
return ce
|
||||||
}
|
}
|
||||||
@ -152,6 +149,27 @@ type Entry struct {
|
|||||||
Stack string
|
Stack string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CheckWriteHook is a custom action that may be executed after an entry is
|
||||||
|
// written.
|
||||||
|
//
|
||||||
|
// Register one on a CheckedEntry with the After method.
|
||||||
|
//
|
||||||
|
// if ce := logger.Check(...); ce != nil {
|
||||||
|
// ce = ce.After(hook)
|
||||||
|
// ce.Write(...)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// You can configure the hook for Fatal log statements at the logger level with
|
||||||
|
// the zap.WithFatalHook option.
|
||||||
|
type CheckWriteHook interface {
|
||||||
|
// OnWrite is invoked with the CheckedEntry that was written and a list
|
||||||
|
// of fields added with that entry.
|
||||||
|
//
|
||||||
|
// The list of fields DOES NOT include fields that were already added
|
||||||
|
// to the logger with the With method.
|
||||||
|
OnWrite(*CheckedEntry, []Field)
|
||||||
|
}
|
||||||
|
|
||||||
// CheckWriteAction indicates what action to take after a log entry is
|
// CheckWriteAction indicates what action to take after a log entry is
|
||||||
// processed. Actions are ordered in increasing severity.
|
// processed. Actions are ordered in increasing severity.
|
||||||
type CheckWriteAction uint8
|
type CheckWriteAction uint8
|
||||||
@ -164,21 +182,36 @@ const (
|
|||||||
WriteThenGoexit
|
WriteThenGoexit
|
||||||
// WriteThenPanic causes a panic after Write.
|
// WriteThenPanic causes a panic after Write.
|
||||||
WriteThenPanic
|
WriteThenPanic
|
||||||
// WriteThenFatal causes a fatal os.Exit after Write.
|
// WriteThenFatal causes an os.Exit(1) after Write.
|
||||||
WriteThenFatal
|
WriteThenFatal
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// OnWrite implements the OnWrite method to keep CheckWriteAction compatible
|
||||||
|
// with the new CheckWriteHook interface which deprecates CheckWriteAction.
|
||||||
|
func (a CheckWriteAction) OnWrite(ce *CheckedEntry, _ []Field) {
|
||||||
|
switch a {
|
||||||
|
case WriteThenGoexit:
|
||||||
|
runtime.Goexit()
|
||||||
|
case WriteThenPanic:
|
||||||
|
panic(ce.Message)
|
||||||
|
case WriteThenFatal:
|
||||||
|
exit.With(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ CheckWriteHook = CheckWriteAction(0)
|
||||||
|
|
||||||
// CheckedEntry is an Entry together with a collection of Cores that have
|
// CheckedEntry is an Entry together with a collection of Cores that have
|
||||||
// already agreed to log it.
|
// already agreed to log it.
|
||||||
//
|
//
|
||||||
// CheckedEntry references should be created by calling AddCore or Should on a
|
// CheckedEntry references should be created by calling AddCore or After on a
|
||||||
// nil *CheckedEntry. References are returned to a pool after Write, and MUST
|
// nil *CheckedEntry. References are returned to a pool after Write, and MUST
|
||||||
// NOT be retained after calling their Write method.
|
// NOT be retained after calling their Write method.
|
||||||
type CheckedEntry struct {
|
type CheckedEntry struct {
|
||||||
Entry
|
Entry
|
||||||
ErrorOutput WriteSyncer
|
ErrorOutput WriteSyncer
|
||||||
dirty bool // best-effort detection of pool misuse
|
dirty bool // best-effort detection of pool misuse
|
||||||
should CheckWriteAction
|
after CheckWriteHook
|
||||||
cores []Core
|
cores []Core
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,7 +219,7 @@ func (ce *CheckedEntry) reset() {
|
|||||||
ce.Entry = Entry{}
|
ce.Entry = Entry{}
|
||||||
ce.ErrorOutput = nil
|
ce.ErrorOutput = nil
|
||||||
ce.dirty = false
|
ce.dirty = false
|
||||||
ce.should = WriteThenNoop
|
ce.after = nil
|
||||||
for i := range ce.cores {
|
for i := range ce.cores {
|
||||||
// don't keep references to cores
|
// don't keep references to cores
|
||||||
ce.cores[i] = nil
|
ce.cores[i] = nil
|
||||||
@ -209,7 +242,7 @@ func (ce *CheckedEntry) Write(fields ...Field) {
|
|||||||
// CheckedEntry is being used after it was returned to the pool,
|
// CheckedEntry is being used after it was returned to the pool,
|
||||||
// the message may be an amalgamation from multiple call sites.
|
// the message may be an amalgamation from multiple call sites.
|
||||||
fmt.Fprintf(ce.ErrorOutput, "%v Unsafe CheckedEntry re-use near Entry %+v.\n", ce.Time, ce.Entry)
|
fmt.Fprintf(ce.ErrorOutput, "%v Unsafe CheckedEntry re-use near Entry %+v.\n", ce.Time, ce.Entry)
|
||||||
ce.ErrorOutput.Sync()
|
_ = ce.ErrorOutput.Sync() // ignore error
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -221,20 +254,14 @@ func (ce *CheckedEntry) Write(fields ...Field) {
|
|||||||
}
|
}
|
||||||
if err != nil && ce.ErrorOutput != nil {
|
if err != nil && ce.ErrorOutput != nil {
|
||||||
fmt.Fprintf(ce.ErrorOutput, "%v write error: %v\n", ce.Time, err)
|
fmt.Fprintf(ce.ErrorOutput, "%v write error: %v\n", ce.Time, err)
|
||||||
ce.ErrorOutput.Sync()
|
_ = ce.ErrorOutput.Sync() // ignore error
|
||||||
}
|
}
|
||||||
|
|
||||||
should, msg := ce.should, ce.Message
|
hook := ce.after
|
||||||
|
if hook != nil {
|
||||||
|
hook.OnWrite(ce, fields)
|
||||||
|
}
|
||||||
putCheckedEntry(ce)
|
putCheckedEntry(ce)
|
||||||
|
|
||||||
switch should {
|
|
||||||
case WriteThenPanic:
|
|
||||||
panic(msg)
|
|
||||||
case WriteThenFatal:
|
|
||||||
exit.Exit()
|
|
||||||
case WriteThenGoexit:
|
|
||||||
runtime.Goexit()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddCore adds a Core that has agreed to log this CheckedEntry. It's intended to be
|
// AddCore adds a Core that has agreed to log this CheckedEntry. It's intended to be
|
||||||
@ -252,11 +279,20 @@ func (ce *CheckedEntry) AddCore(ent Entry, core Core) *CheckedEntry {
|
|||||||
// Should sets this CheckedEntry's CheckWriteAction, which controls whether a
|
// Should sets this CheckedEntry's CheckWriteAction, which controls whether a
|
||||||
// Core will panic or fatal after writing this log entry. Like AddCore, it's
|
// Core will panic or fatal after writing this log entry. Like AddCore, it's
|
||||||
// safe to call on nil CheckedEntry references.
|
// safe to call on nil CheckedEntry references.
|
||||||
|
//
|
||||||
|
// Deprecated: Use [CheckedEntry.After] instead.
|
||||||
func (ce *CheckedEntry) Should(ent Entry, should CheckWriteAction) *CheckedEntry {
|
func (ce *CheckedEntry) Should(ent Entry, should CheckWriteAction) *CheckedEntry {
|
||||||
|
return ce.After(ent, should)
|
||||||
|
}
|
||||||
|
|
||||||
|
// After sets this CheckEntry's CheckWriteHook, which will be called after this
|
||||||
|
// log entry has been written. It's safe to call this on nil CheckedEntry
|
||||||
|
// references.
|
||||||
|
func (ce *CheckedEntry) After(ent Entry, hook CheckWriteHook) *CheckedEntry {
|
||||||
if ce == nil {
|
if ce == nil {
|
||||||
ce = getCheckedEntry()
|
ce = getCheckedEntry()
|
||||||
ce.Entry = ent
|
ce.Entry = ent
|
||||||
}
|
}
|
||||||
ce.should = should
|
ce.after = hook
|
||||||
return ce
|
return ce
|
||||||
}
|
}
|
||||||
|
28
vendor/go.uber.org/zap/zapcore/error.go
generated
vendored
28
vendor/go.uber.org/zap/zapcore/error.go
generated
vendored
@ -23,7 +23,8 @@ package zapcore
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
"sync"
|
|
||||||
|
"go.uber.org/zap/internal/pool"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Encodes the given error into fields of an object. A field with the given
|
// Encodes the given error into fields of an object. A field with the given
|
||||||
@ -36,13 +37,13 @@ import (
|
|||||||
// causer (from github.com/pkg/errors), a ${key}Causes field is added with an
|
// causer (from github.com/pkg/errors), a ${key}Causes field is added with an
|
||||||
// array of objects containing the errors this error was comprised of.
|
// array of objects containing the errors this error was comprised of.
|
||||||
//
|
//
|
||||||
// {
|
// {
|
||||||
// "error": err.Error(),
|
// "error": err.Error(),
|
||||||
// "errorVerbose": fmt.Sprintf("%+v", err),
|
// "errorVerbose": fmt.Sprintf("%+v", err),
|
||||||
// "errorCauses": [
|
// "errorCauses": [
|
||||||
// ...
|
// ...
|
||||||
// ],
|
// ],
|
||||||
// }
|
// }
|
||||||
func encodeError(key string, err error, enc ObjectEncoder) (retErr error) {
|
func encodeError(key string, err error, enc ObjectEncoder) (retErr error) {
|
||||||
// Try to capture panics (from nil references or otherwise) when calling
|
// Try to capture panics (from nil references or otherwise) when calling
|
||||||
// the Error() method
|
// the Error() method
|
||||||
@ -97,15 +98,18 @@ func (errs errArray) MarshalLogArray(arr ArrayEncoder) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
el := newErrArrayElem(errs[i])
|
el := newErrArrayElem(errs[i])
|
||||||
arr.AppendObject(el)
|
err := arr.AppendObject(el)
|
||||||
el.Free()
|
el.Free()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var _errArrayElemPool = sync.Pool{New: func() interface{} {
|
var _errArrayElemPool = pool.New(func() *errArrayElem {
|
||||||
return &errArrayElem{}
|
return &errArrayElem{}
|
||||||
}}
|
})
|
||||||
|
|
||||||
// Encodes any error into a {"error": ...} re-using the same errors logic.
|
// Encodes any error into a {"error": ...} re-using the same errors logic.
|
||||||
//
|
//
|
||||||
@ -113,7 +117,7 @@ var _errArrayElemPool = sync.Pool{New: func() interface{} {
|
|||||||
type errArrayElem struct{ err error }
|
type errArrayElem struct{ err error }
|
||||||
|
|
||||||
func newErrArrayElem(err error) *errArrayElem {
|
func newErrArrayElem(err error) *errArrayElem {
|
||||||
e := _errArrayElemPool.Get().(*errArrayElem)
|
e := _errArrayElemPool.Get()
|
||||||
e.err = err
|
e.err = err
|
||||||
return e
|
return e
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user