mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
vendor: run make vendor-update
This commit is contained in:
parent
a5d1013042
commit
ce1e0610b0
163 changed files with 2410 additions and 1253 deletions
78
go.mod
78
go.mod
|
@ -3,17 +3,17 @@ module github.com/VictoriaMetrics/VictoriaMetrics
|
||||||
go 1.22.3
|
go 1.22.3
|
||||||
|
|
||||||
require (
|
require (
|
||||||
cloud.google.com/go/storage v1.40.0
|
cloud.google.com/go/storage v1.41.0
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2
|
||||||
github.com/VictoriaMetrics/easyproto v0.1.4
|
github.com/VictoriaMetrics/easyproto v0.1.4
|
||||||
github.com/VictoriaMetrics/fastcache v1.12.2
|
github.com/VictoriaMetrics/fastcache v1.12.2
|
||||||
github.com/VictoriaMetrics/metrics v1.33.1
|
github.com/VictoriaMetrics/metrics v1.33.1
|
||||||
github.com/VictoriaMetrics/metricsql v0.75.1
|
github.com/VictoriaMetrics/metricsql v0.75.1
|
||||||
github.com/aws/aws-sdk-go-v2 v1.26.1
|
github.com/aws/aws-sdk-go-v2 v1.27.0
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.27.13
|
github.com/aws/aws-sdk-go-v2/config v1.27.15
|
||||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.17
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.20
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.53.2
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.54.2
|
||||||
github.com/bmatcuk/doublestar/v4 v4.6.1
|
github.com/bmatcuk/doublestar/v4 v4.6.1
|
||||||
github.com/cespare/xxhash/v2 v2.3.0
|
github.com/cespare/xxhash/v2 v2.3.0
|
||||||
github.com/cheggaaa/pb/v3 v3.1.5
|
github.com/cheggaaa/pb/v3 v3.1.5
|
||||||
|
@ -27,18 +27,18 @@ require (
|
||||||
github.com/valyala/fastjson v1.6.4
|
github.com/valyala/fastjson v1.6.4
|
||||||
github.com/valyala/fastrand v1.1.0
|
github.com/valyala/fastrand v1.1.0
|
||||||
github.com/valyala/fasttemplate v1.2.2
|
github.com/valyala/fasttemplate v1.2.2
|
||||||
github.com/valyala/gozstd v1.20.1
|
github.com/valyala/gozstd v1.21.1
|
||||||
github.com/valyala/histogram v1.2.0
|
github.com/valyala/histogram v1.2.0
|
||||||
github.com/valyala/quicktemplate v1.7.0
|
github.com/valyala/quicktemplate v1.7.0
|
||||||
golang.org/x/oauth2 v0.20.0
|
golang.org/x/oauth2 v0.20.0
|
||||||
golang.org/x/sys v0.20.0
|
golang.org/x/sys v0.20.0
|
||||||
google.golang.org/api v0.180.0
|
google.golang.org/api v0.181.0
|
||||||
gopkg.in/yaml.v2 v2.4.0
|
gopkg.in/yaml.v2 v2.4.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
cloud.google.com/go v0.113.0 // indirect
|
cloud.google.com/go v0.113.0 // indirect
|
||||||
cloud.google.com/go/auth v0.4.1 // indirect
|
cloud.google.com/go/auth v0.4.2 // indirect
|
||||||
cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect
|
cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect
|
||||||
cloud.google.com/go/compute/metadata v0.3.0 // indirect
|
cloud.google.com/go/compute/metadata v0.3.0 // indirect
|
||||||
cloud.google.com/go/iam v1.1.8 // indirect
|
cloud.google.com/go/iam v1.1.8 // indirect
|
||||||
|
@ -47,32 +47,32 @@ require (
|
||||||
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect
|
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect
|
||||||
github.com/VividCortex/ewma v1.2.0 // indirect
|
github.com/VividCortex/ewma v1.2.0 // indirect
|
||||||
github.com/alecthomas/units v0.0.0-20231202071711-9a357b53e9c9 // indirect
|
github.com/alecthomas/units v0.0.0-20231202071711-9a357b53e9c9 // indirect
|
||||||
github.com/aws/aws-sdk-go v1.53.0 // indirect
|
github.com/aws/aws-sdk-go v1.53.8 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.17.13 // indirect
|
github.com/aws/aws-sdk-go-v2/credentials v1.17.15 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.7 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.9 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.7 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.20.6 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sso v1.20.8 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.0 // indirect
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.2 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.28.7 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sts v1.28.9 // indirect
|
||||||
github.com/aws/smithy-go v1.20.2 // indirect
|
github.com/aws/smithy-go v1.20.2 // indirect
|
||||||
github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 // indirect
|
github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 // indirect
|
||||||
github.com/beorn7/perks v1.0.1 // indirect
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect
|
github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect
|
||||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
||||||
github.com/dennwc/varint v1.0.0 // indirect
|
github.com/dennwc/varint v1.0.0 // indirect
|
||||||
github.com/fatih/color v1.16.0 // indirect
|
github.com/fatih/color v1.17.0 // indirect
|
||||||
github.com/felixge/httpsnoop v1.0.4 // indirect
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
||||||
github.com/go-kit/log v0.2.1 // indirect
|
github.com/go-kit/log v0.2.1 // indirect
|
||||||
github.com/go-logfmt/logfmt v0.6.0 // indirect
|
github.com/go-logfmt/logfmt v0.6.0 // indirect
|
||||||
github.com/go-logr/logr v1.4.1 // indirect
|
github.com/go-logr/logr v1.4.2 // indirect
|
||||||
github.com/go-logr/stdr v1.2.2 // indirect
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
|
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
|
||||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||||
|
@ -81,7 +81,7 @@ require (
|
||||||
github.com/google/s2a-go v0.1.7 // indirect
|
github.com/google/s2a-go v0.1.7 // indirect
|
||||||
github.com/google/uuid v1.6.0 // indirect
|
github.com/google/uuid v1.6.0 // indirect
|
||||||
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
|
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
|
||||||
github.com/grafana/regexp v0.0.0-20221122212121-6b5c0a4cb7fd // indirect
|
github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect
|
||||||
github.com/hashicorp/go-version v1.6.0 // indirect
|
github.com/hashicorp/go-version v1.6.0 // indirect
|
||||||
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
||||||
github.com/jpillora/backoff v1.0.0 // indirect
|
github.com/jpillora/backoff v1.0.0 // indirect
|
||||||
|
@ -100,21 +100,21 @@ require (
|
||||||
github.com/prometheus/client_model v0.6.1 // indirect
|
github.com/prometheus/client_model v0.6.1 // indirect
|
||||||
github.com/prometheus/common v0.53.0 // indirect
|
github.com/prometheus/common v0.53.0 // indirect
|
||||||
github.com/prometheus/common/sigv4 v0.1.0 // indirect
|
github.com/prometheus/common/sigv4 v0.1.0 // indirect
|
||||||
github.com/prometheus/procfs v0.14.0 // indirect
|
github.com/prometheus/procfs v0.15.0 // indirect
|
||||||
github.com/rivo/uniseg v0.4.7 // indirect
|
github.com/rivo/uniseg v0.4.7 // indirect
|
||||||
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
||||||
github.com/stretchr/testify v1.9.0 // indirect
|
github.com/stretchr/testify v1.9.0 // indirect
|
||||||
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
||||||
github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect
|
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect
|
||||||
go.opencensus.io v0.24.0 // indirect
|
go.opencensus.io v0.24.0 // indirect
|
||||||
go.opentelemetry.io/collector/featuregate v1.7.0 // indirect
|
go.opentelemetry.io/collector/featuregate v1.8.0 // indirect
|
||||||
go.opentelemetry.io/collector/pdata v1.7.0 // indirect
|
go.opentelemetry.io/collector/pdata v1.8.0 // indirect
|
||||||
go.opentelemetry.io/collector/semconv v0.100.0 // indirect
|
go.opentelemetry.io/collector/semconv v0.101.0 // indirect
|
||||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.51.0 // indirect
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0 // indirect
|
||||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.51.0 // indirect
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect
|
||||||
go.opentelemetry.io/otel v1.26.0 // indirect
|
go.opentelemetry.io/otel v1.27.0 // indirect
|
||||||
go.opentelemetry.io/otel/metric v1.26.0 // indirect
|
go.opentelemetry.io/otel/metric v1.27.0 // indirect
|
||||||
go.opentelemetry.io/otel/trace v1.26.0 // indirect
|
go.opentelemetry.io/otel/trace v1.27.0 // indirect
|
||||||
go.uber.org/atomic v1.11.0 // indirect
|
go.uber.org/atomic v1.11.0 // indirect
|
||||||
go.uber.org/goleak v1.3.0 // indirect
|
go.uber.org/goleak v1.3.0 // indirect
|
||||||
go.uber.org/multierr v1.11.0 // indirect
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
|
@ -124,14 +124,14 @@ require (
|
||||||
golang.org/x/sync v0.7.0 // indirect
|
golang.org/x/sync v0.7.0 // indirect
|
||||||
golang.org/x/text v0.15.0 // indirect
|
golang.org/x/text v0.15.0 // indirect
|
||||||
golang.org/x/time v0.5.0 // indirect
|
golang.org/x/time v0.5.0 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20240509183442-62759503f434 // indirect
|
google.golang.org/genproto v0.0.0-20240521202816-d264139d666e // indirect
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20240509183442-62759503f434 // indirect
|
google.golang.org/genproto/googleapis/api v0.0.0-20240521202816-d264139d666e // indirect
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240509183442-62759503f434 // indirect
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240521202816-d264139d666e // indirect
|
||||||
google.golang.org/grpc v1.63.2 // indirect
|
google.golang.org/grpc v1.64.0 // indirect
|
||||||
google.golang.org/protobuf v1.34.1 // indirect
|
google.golang.org/protobuf v1.34.1 // indirect
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
k8s.io/apimachinery v0.30.0 // indirect
|
k8s.io/apimachinery v0.30.1 // indirect
|
||||||
k8s.io/client-go v0.30.0 // indirect
|
k8s.io/client-go v0.30.1 // indirect
|
||||||
k8s.io/klog/v2 v2.120.1 // indirect
|
k8s.io/klog/v2 v2.120.1 // indirect
|
||||||
k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 // indirect
|
k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 // indirect
|
||||||
)
|
)
|
||||||
|
|
164
go.sum
164
go.sum
|
@ -15,8 +15,8 @@ cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOY
|
||||||
cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
|
cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
|
||||||
cloud.google.com/go v0.113.0 h1:g3C70mn3lWfckKBiCVsAshabrDg01pQ0pnX1MNtnMkA=
|
cloud.google.com/go v0.113.0 h1:g3C70mn3lWfckKBiCVsAshabrDg01pQ0pnX1MNtnMkA=
|
||||||
cloud.google.com/go v0.113.0/go.mod h1:glEqlogERKYeePz6ZdkcLJ28Q2I6aERgDDErBg9GzO8=
|
cloud.google.com/go v0.113.0/go.mod h1:glEqlogERKYeePz6ZdkcLJ28Q2I6aERgDDErBg9GzO8=
|
||||||
cloud.google.com/go/auth v0.4.1 h1:Z7YNIhlWRtrnKlZke7z3GMqzvuYzdc2z98F9D1NV5Hg=
|
cloud.google.com/go/auth v0.4.2 h1:sb0eyLkhRtpq5jA+a8KWw0W70YcdVca7KJ8TM0AFYDg=
|
||||||
cloud.google.com/go/auth v0.4.1/go.mod h1:QVBuVEKpCn4Zp58hzRGvL0tjRGU0YqdRTdCHM1IHnro=
|
cloud.google.com/go/auth v0.4.2/go.mod h1:Kqvlz1cf1sNA0D+sYJnkPQOP+JMHkuHeIgVmCRtZOLc=
|
||||||
cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4=
|
cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4=
|
||||||
cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q=
|
cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q=
|
||||||
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
|
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
|
||||||
|
@ -40,8 +40,8 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo
|
||||||
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
|
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
|
||||||
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
|
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
|
||||||
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
||||||
cloud.google.com/go/storage v1.40.0 h1:VEpDQV5CJxFmJ6ueWNsKxcr1QAYOXEgxDa+sBbJahPw=
|
cloud.google.com/go/storage v1.41.0 h1:RusiwatSu6lHeEXe3kglxakAmAbfV+rhtPqA6i8RBx0=
|
||||||
cloud.google.com/go/storage v1.40.0/go.mod h1:Rrj7/hKlG87BLqDJYtwR0fbPld8uJPbQ2ucUMY7Ir0g=
|
cloud.google.com/go/storage v1.41.0/go.mod h1:J1WCa/Z2FcgdEDuPUY8DxT5I+d9mFKsCepp5vR6Sq80=
|
||||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 h1:E+OJmp2tPvt1W+amx48v1eqbjDYsgN+RzP4q16yV5eM=
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 h1:E+OJmp2tPvt1W+amx48v1eqbjDYsgN+RzP4q16yV5eM=
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1/go.mod h1:a6xsAQUZg+VsS3TJ05SRp524Hs4pZ/AeFSr5ENf0Yjo=
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1/go.mod h1:a6xsAQUZg+VsS3TJ05SRp524Hs4pZ/AeFSr5ENf0Yjo=
|
||||||
|
@ -89,44 +89,44 @@ github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHG
|
||||||
github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA=
|
github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA=
|
||||||
github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4=
|
github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4=
|
||||||
github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
|
github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
|
||||||
github.com/aws/aws-sdk-go v1.53.0 h1:MMo1x1ggPPxDfHMXJnQudTbGXYlD4UigUAud1DJxPVo=
|
github.com/aws/aws-sdk-go v1.53.8 h1:eoqGb1WOHIrCFKo1d51cMcnt1ralfLFaEqRkC5Zzv8k=
|
||||||
github.com/aws/aws-sdk-go v1.53.0/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
|
github.com/aws/aws-sdk-go v1.53.8/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
|
||||||
github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA=
|
github.com/aws/aws-sdk-go-v2 v1.27.0 h1:7bZWKoXhzI+mMR/HjdMx8ZCC5+6fY0lS5tr0bbgiLlo=
|
||||||
github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM=
|
github.com/aws/aws-sdk-go-v2 v1.27.0/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM=
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to=
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to=
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg=
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg=
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.27.13 h1:WbKW8hOzrWoOA/+35S5okqO/2Ap8hkkFUzoW8Hzq24A=
|
github.com/aws/aws-sdk-go-v2/config v1.27.15 h1:uNnGLZ+DutuNEkuPh6fwqK7LpEiPmzb7MIMA1mNWEUc=
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.27.13/go.mod h1:XLiyiTMnguytjRER7u5RIkhIqS8Nyz41SwAWb4xEjxs=
|
github.com/aws/aws-sdk-go-v2/config v1.27.15/go.mod h1:7j7Kxx9/7kTmL7z4LlhwQe63MYEE5vkVV6nWg4ZAI8M=
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.17.13 h1:XDCJDzk/u5cN7Aple7D/MiAhx1Rjo/0nueJ0La8mRuE=
|
github.com/aws/aws-sdk-go-v2/credentials v1.17.15 h1:YDexlvDRCA8ems2T5IP1xkMtOZ1uLJOCJdTr0igs5zo=
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.17.13/go.mod h1:FMNcjQrmuBYvOTZDtOLCIu0esmxjF7RuA/89iSXWzQI=
|
github.com/aws/aws-sdk-go-v2/credentials v1.17.15/go.mod h1:vxHggqW6hFNaeNC0WyXS3VdyjcV0a4KMUY4dKJ96buU=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4=
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3 h1:dQLK4TjtnlRGb0czOht2CevZ5l6RSyRWAnKeGd7VAFE=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg=
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3/go.mod h1:TL79f2P6+8Q7dTsILpiVST+AL9lkF6PPGI167Ny0Cjw=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.17 h1:9b1Os1s11mF5qTIKLgSsyPG810di2+ySSLIIt9bwe9I=
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.20 h1:NCM9wYaJCmlIWZSO/JwUEveKf0NCvsSgo9V9BwOAolo=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.17/go.mod h1:9Wp7tDOMhv0+sb/FTRAkbHNQ7abYDnoJRzm5AAtCnTc=
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.20/go.mod h1:dmxIx3qriuepxqZgFeFMitFuftWPB94+MZv/6Btpth4=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg=
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7 h1:lf/8VTF2cM+N4SLzaYJERKEWAXq8MOMpZfU6wEPWsPk=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5/go.mod h1:FSaRudD0dXiMPK2UjknVwwTYyZMRsHv3TtkabsZih5I=
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7/go.mod h1:4SjkU7QiqK2M9oozyMzfZ/23LmUY+h3oFqhdeP5OMiI=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0=
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7 h1:4OYVp0705xu8yjdyoWix0r9wPIRXnIzzOoUpQVHIJ/g=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5/go.mod h1:jU1li6RFryMz+so64PpKtudI+QzbKoIEivqdf6LNpOc=
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7/go.mod h1:vd7ESTEvI76T2Na050gODNmNU7+OyKrIKroYTu4ABiI=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY=
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU=
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.7 h1:/FUtT3xsoHO3cfh+I/kCbcMCN98QZRsiFet/V8QkWSs=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0=
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.7/go.mod h1:MaCAgWpGooQoCWZnMur97rGn5dp350w2+CeiV5406wE=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs=
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg=
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es=
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.9 h1:UXqEWQI0n+q0QixzU0yUUQBZXRd5037qdInTIHFTl98=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY=
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.9/go.mod h1:xP6Gq6fzGZT8w/ZN+XvGMZ2RU1LeEs7b2yUP5DN8NY4=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo=
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9 h1:Wx0rlZoEJR7JwlSZcHnEa7CNjrSIyVxMFWGAaXy4fJY=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk=
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9/go.mod h1:aVMHdE0aHO3v+f/iw01fmXV/5DbfQ3Bi9nN7nd9bE9Y=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys=
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.7 h1:uO5XR6QGBcmPyo2gxofYJLFkcVQ4izOoGDNenlZhTEk=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ=
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.7/go.mod h1:feeeAYfAcwTReM6vbwjEyDmiGho+YgBhaFULuXDW8kc=
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.53.2 h1:rq2hglTQM3yHZvOPVMtNvLS5x6hijx7JvRDgKiTNDGQ=
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.54.2 h1:gYSJhNiOF6J9xaYxu2NFNstoiNELwt0T9w29FxSfN+Y=
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.53.2/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o=
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.54.2/go.mod h1:739CllldowZiPPsDFcJHNF4FXrVxaSGVnZ9Ez9Iz9hc=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.20.6 h1:o5cTaeunSpfXiLTIBx5xo2enQmiChtu1IBbzXnfU9Hs=
|
github.com/aws/aws-sdk-go-v2/service/sso v1.20.8 h1:Kv1hwNG6jHC/sxMTe5saMjH6t6ZLkgfvVxyEjfWL1ks=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.20.6/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM=
|
github.com/aws/aws-sdk-go-v2/service/sso v1.20.8/go.mod h1:c1qtZUWtygI6ZdvKppzCSXsDOq5I4luJPZ0Ud3juFCA=
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.0 h1:Qe0r0lVURDDeBQJ4yP+BOrJkvkiCo/3FH/t+wY11dmw=
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.2 h1:nWBZ1xHCF+A7vv9sDzJOq4NWIdzFYm0kH7Pr4OjHYsQ=
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.0/go.mod h1:mUYPBhaF2lGiukDEjJX2BLRRKTmoUSitGDUgM4tRxak=
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.2/go.mod h1:9lmoVDVLz/yUZwLaQ676TK02fhCu4+PgRSmMaKR1ozk=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.28.7 h1:et3Ta53gotFR4ERLXXHIHl/Uuk1qYpP5uU7cvNql8ns=
|
github.com/aws/aws-sdk-go-v2/service/sts v1.28.9 h1:Qp6Boy0cGDloOE3zI6XhNLNZgjNS8YmiFQFHe71SaW0=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.28.7/go.mod h1:FZf1/nKNEkHdGGJP/cI2MoIMquumuRK6ol3QQJNDxmw=
|
github.com/aws/aws-sdk-go-v2/service/sts v1.28.9/go.mod h1:0Aqn1MnEuitqfsCNyKsdKLhDUOr4txD/g19EfiUqgws=
|
||||||
github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q=
|
github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q=
|
||||||
github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
|
github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
|
||||||
github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 h1:6df1vn4bBlDDo4tARvBm7l6KA9iVMnE3NWizDeWSrps=
|
github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 h1:6df1vn4bBlDDo4tARvBm7l6KA9iVMnE3NWizDeWSrps=
|
||||||
|
@ -149,8 +149,8 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P
|
||||||
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ=
|
github.com/cncf/xds/go v0.0.0-20240318125728-8a4994d93e50 h1:DBmgJDC9dTfkVyGgipamEh2BpGYxScCH1TOF1LL1cXc=
|
||||||
github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM=
|
github.com/cncf/xds/go v0.0.0-20240318125728-8a4994d93e50/go.mod h1:5e1+Vvlzido69INQaVO6d87Qn543Xr6nooe9Kz7oBFM=
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4=
|
github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4=
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
@ -183,8 +183,8 @@ github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU
|
||||||
github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew=
|
github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew=
|
||||||
github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb h1:IT4JYU7k4ikYg1SCxNI1/Tieq/NFvh6dzLdgi7eu0tM=
|
github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb h1:IT4JYU7k4ikYg1SCxNI1/Tieq/NFvh6dzLdgi7eu0tM=
|
||||||
github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb/go.mod h1:bH6Xx7IW64qjjJq8M2u4dxNaBiDfKK+z/3eGDpXEQhc=
|
github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb/go.mod h1:bH6Xx7IW64qjjJq8M2u4dxNaBiDfKK+z/3eGDpXEQhc=
|
||||||
github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
|
github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4=
|
||||||
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
|
github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI=
|
||||||
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
|
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
|
||||||
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
|
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
|
||||||
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
|
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
|
||||||
|
@ -203,8 +203,8 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG
|
||||||
github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4=
|
github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4=
|
||||||
github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
|
github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
|
||||||
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||||
github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
|
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
|
||||||
github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.4.2/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-openapi/jsonpointer v0.20.2 h1:mQc3nmndL8ZBzStEo3JYF8wzmeWffDH4VbXz58sAx6Q=
|
github.com/go-openapi/jsonpointer v0.20.2 h1:mQc3nmndL8ZBzStEo3JYF8wzmeWffDH4VbXz58sAx6Q=
|
||||||
|
@ -304,8 +304,8 @@ github.com/gophercloud/gophercloud v1.11.0 h1:ls0O747DIq1D8SUHc7r2vI8BFbMLeLFuEN
|
||||||
github.com/gophercloud/gophercloud v1.11.0/go.mod h1:aAVqcocTSXh2vYFZ1JTvx4EQmfgzxRcNupUfxZbBNDM=
|
github.com/gophercloud/gophercloud v1.11.0/go.mod h1:aAVqcocTSXh2vYFZ1JTvx4EQmfgzxRcNupUfxZbBNDM=
|
||||||
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
|
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
|
||||||
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||||
github.com/grafana/regexp v0.0.0-20221122212121-6b5c0a4cb7fd h1:PpuIBO5P3e9hpqBD0O/HjhShYuM6XE0i/lbE6J94kww=
|
github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc h1:GN2Lv3MGO7AS6PrRoT6yV5+wkrOpcszoIsO4+4ds248=
|
||||||
github.com/grafana/regexp v0.0.0-20221122212121-6b5c0a4cb7fd/go.mod h1:M5qHK+eWfAv8VR/265dIuEpL3fNfeC21tXXp9itM24A=
|
github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc/go.mod h1:+JKpmjMGhpgPL+rXZ5nsZieVzvarn86asRlBg4uNGnk=
|
||||||
github.com/hashicorp/consul/api v1.28.2 h1:mXfkRHrpHN4YY3RqL09nXU1eHKLNiuAN4kHvDQ16k/8=
|
github.com/hashicorp/consul/api v1.28.2 h1:mXfkRHrpHN4YY3RqL09nXU1eHKLNiuAN4kHvDQ16k/8=
|
||||||
github.com/hashicorp/consul/api v1.28.2/go.mod h1:KyzqzgMEya+IZPcD65YFoOVAgPpbfERu4I/tzG6/ueE=
|
github.com/hashicorp/consul/api v1.28.2/go.mod h1:KyzqzgMEya+IZPcD65YFoOVAgPpbfERu4I/tzG6/ueE=
|
||||||
github.com/hashicorp/cronexpr v1.1.2 h1:wG/ZYIKT+RT3QkOdgYc+xsKWVRgnxJ1OJtjjy84fJ9A=
|
github.com/hashicorp/cronexpr v1.1.2 h1:wG/ZYIKT+RT3QkOdgYc+xsKWVRgnxJ1OJtjjy84fJ9A=
|
||||||
|
@ -452,8 +452,8 @@ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R
|
||||||
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||||
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
|
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
|
||||||
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
|
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
|
||||||
github.com/prometheus/procfs v0.14.0 h1:Lw4VdGGoKEZilJsayHf0B+9YgLGREba2C6xr+Fdfq6s=
|
github.com/prometheus/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek=
|
||||||
github.com/prometheus/procfs v0.14.0/go.mod h1:XL+Iwz8k8ZabyZfMFHPiilCniixqQarAy5Mu67pHlNQ=
|
github.com/prometheus/procfs v0.15.0/go.mod h1:Y0RJ/Y5g5wJpkTisOtqwDSo4HwhGmLB4VQSw2sQJLHk=
|
||||||
github.com/prometheus/prometheus v0.52.0 h1:f7kHJgr7+zShpWdTCeKqbCWR7nKTScgLYQwRux9h1V0=
|
github.com/prometheus/prometheus v0.52.0 h1:f7kHJgr7+zShpWdTCeKqbCWR7nKTScgLYQwRux9h1V0=
|
||||||
github.com/prometheus/prometheus v0.52.0/go.mod h1:3z74cVsmVH0iXOR5QBjB7Pa6A0KJeEAK5A6UsmAFb1g=
|
github.com/prometheus/prometheus v0.52.0/go.mod h1:3z74cVsmVH0iXOR5QBjB7Pa6A0KJeEAK5A6UsmAFb1g=
|
||||||
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||||
|
@ -497,8 +497,8 @@ github.com/valyala/fastrand v1.1.0 h1:f+5HkLW4rsgzdNoleUOB69hyT9IlD2ZQh9GyDMfb5G
|
||||||
github.com/valyala/fastrand v1.1.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002oeRzjapQ=
|
github.com/valyala/fastrand v1.1.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002oeRzjapQ=
|
||||||
github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo=
|
github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo=
|
||||||
github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
|
github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
|
||||||
github.com/valyala/gozstd v1.20.1 h1:xPnnnvjmaDDitMFfDxmQ4vpx0+3CdTg2o3lALvXTU/g=
|
github.com/valyala/gozstd v1.21.1 h1:TQFZVTk5zo7iJcX3o4XYBJujPdO31LFb4fVImwK873A=
|
||||||
github.com/valyala/gozstd v1.20.1/go.mod h1:y5Ew47GLlP37EkTB+B4s7r6A5rdaeB7ftbl9zoYiIPQ=
|
github.com/valyala/gozstd v1.21.1/go.mod h1:y5Ew47GLlP37EkTB+B4s7r6A5rdaeB7ftbl9zoYiIPQ=
|
||||||
github.com/valyala/histogram v1.2.0 h1:wyYGAZZt3CpwUiIb9AU/Zbllg1llXyrtApRS815OLoQ=
|
github.com/valyala/histogram v1.2.0 h1:wyYGAZZt3CpwUiIb9AU/Zbllg1llXyrtApRS815OLoQ=
|
||||||
github.com/valyala/histogram v1.2.0/go.mod h1:Hb4kBwb4UxsaNbbbh+RRz8ZR6pdodR57tzWUS3BUzXY=
|
github.com/valyala/histogram v1.2.0/go.mod h1:Hb4kBwb4UxsaNbbbh+RRz8ZR6pdodR57tzWUS3BUzXY=
|
||||||
github.com/valyala/quicktemplate v1.7.0 h1:LUPTJmlVcb46OOUY3IeD9DojFpAVbsG+5WFTcjMJzCM=
|
github.com/valyala/quicktemplate v1.7.0 h1:LUPTJmlVcb46OOUY3IeD9DojFpAVbsG+5WFTcjMJzCM=
|
||||||
|
@ -506,8 +506,8 @@ github.com/valyala/quicktemplate v1.7.0/go.mod h1:sqKJnoaOF88V07vkO+9FL8fb9uZg/V
|
||||||
github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc=
|
github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc=
|
||||||
github.com/vultr/govultr/v2 v2.17.2 h1:gej/rwr91Puc/tgh+j33p/BLR16UrIPnSr+AIwYWZQs=
|
github.com/vultr/govultr/v2 v2.17.2 h1:gej/rwr91Puc/tgh+j33p/BLR16UrIPnSr+AIwYWZQs=
|
||||||
github.com/vultr/govultr/v2 v2.17.2/go.mod h1:ZFOKGWmgjytfyjeyAdhQlSWwTjh2ig+X49cAp50dzXI=
|
github.com/vultr/govultr/v2 v2.17.2/go.mod h1:ZFOKGWmgjytfyjeyAdhQlSWwTjh2ig+X49cAp50dzXI=
|
||||||
github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw=
|
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4=
|
||||||
github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk=
|
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM=
|
||||||
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
|
@ -519,24 +519,24 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||||
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||||
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
|
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
|
||||||
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
|
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
|
||||||
go.opentelemetry.io/collector/featuregate v1.7.0 h1:8tNgX2VaiR9jrpZevRSvStuJrvvL6WwScT264HNLk7U=
|
go.opentelemetry.io/collector/featuregate v1.8.0 h1:p/bAuk5LiSfdYS88yFl/Jzao9bHEYqCh7YvZJ+L+IZg=
|
||||||
go.opentelemetry.io/collector/featuregate v1.7.0/go.mod h1:w7nUODKxEi3FLf1HslCiE6YWtMtOOrMnSwsDam8Mg9w=
|
go.opentelemetry.io/collector/featuregate v1.8.0/go.mod h1:w7nUODKxEi3FLf1HslCiE6YWtMtOOrMnSwsDam8Mg9w=
|
||||||
go.opentelemetry.io/collector/pdata v1.7.0 h1:/WNsBbE6KM3TTPUb9v/5B7IDqnDkgf8GyFhVJJqu7II=
|
go.opentelemetry.io/collector/pdata v1.8.0 h1:d/QQgZxB4Y+d3mqLVh2ozvzujUhloD3P/fk7X+In764=
|
||||||
go.opentelemetry.io/collector/pdata v1.7.0/go.mod h1:ehCBBA5GoFrMZkwyZAKGY/lAVSgZf6rzUt3p9mddmPU=
|
go.opentelemetry.io/collector/pdata v1.8.0/go.mod h1:/W7clu0wFC4WSRp94Ucn6Vm36Wkrt+tmtlDb1aiNZCY=
|
||||||
go.opentelemetry.io/collector/semconv v0.100.0 h1:QArUvWcbmsMjM4PV0zngUHRizZeUXibsPBWjDuNJXAs=
|
go.opentelemetry.io/collector/semconv v0.101.0 h1:tOe9iTe9dDCnvz/bqgfNRr4w80kXG8505tQJ5h5v08Q=
|
||||||
go.opentelemetry.io/collector/semconv v0.100.0/go.mod h1:8ElcRZ8Cdw5JnvhTOQOdYizkJaQ10Z2fS+R6djOnj6A=
|
go.opentelemetry.io/collector/semconv v0.101.0/go.mod h1:8ElcRZ8Cdw5JnvhTOQOdYizkJaQ10Z2fS+R6djOnj6A=
|
||||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.51.0 h1:A3SayB3rNyt+1S6qpI9mHPkeHTZbD7XILEqWnYZb2l0=
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0 h1:vS1Ao/R55RNV4O7TA2Qopok8yN+X0LIP6RVWLFkprck=
|
||||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.51.0/go.mod h1:27iA5uvhuRNmalO+iEUdVn5ZMj2qy10Mm+XRIpRmyuU=
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0/go.mod h1:BMsdeOxN04K0L5FNUBfjFdvwWGNe/rkmSwH4Aelu/X0=
|
||||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.51.0 h1:Xs2Ncz0gNihqu9iosIZ5SkBbWo5T8JhhLJFMQL1qmLI=
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A=
|
||||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.51.0/go.mod h1:vy+2G/6NvVMpwGX/NyLqcC41fxepnuKHk16E6IZUcJc=
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0=
|
||||||
go.opentelemetry.io/otel v1.26.0 h1:LQwgL5s/1W7YiiRwxf03QGnWLb2HW4pLiAhaA5cZXBs=
|
go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg=
|
||||||
go.opentelemetry.io/otel v1.26.0/go.mod h1:UmLkJHUAidDval2EICqBMbnAd0/m2vmpf/dAM+fvFs4=
|
go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ=
|
||||||
go.opentelemetry.io/otel/metric v1.26.0 h1:7S39CLuY5Jgg9CrnA9HHiEjGMF/X2VHvoXGgSllRz30=
|
go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik=
|
||||||
go.opentelemetry.io/otel/metric v1.26.0/go.mod h1:SY+rHOI4cEawI9a7N1A4nIg/nTQXe1ccCNWYOJUrpX4=
|
go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak=
|
||||||
go.opentelemetry.io/otel/sdk v1.25.0 h1:PDryEJPC8YJZQSyLY5eqLeafHtG+X7FWnf3aXMtxbqo=
|
go.opentelemetry.io/otel/sdk v1.25.0 h1:PDryEJPC8YJZQSyLY5eqLeafHtG+X7FWnf3aXMtxbqo=
|
||||||
go.opentelemetry.io/otel/sdk v1.25.0/go.mod h1:oFgzCM2zdsxKzz6zwpTZYLLQsFwc+K0daArPdIhuxkw=
|
go.opentelemetry.io/otel/sdk v1.25.0/go.mod h1:oFgzCM2zdsxKzz6zwpTZYLLQsFwc+K0daArPdIhuxkw=
|
||||||
go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA=
|
go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw=
|
||||||
go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0=
|
go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4=
|
||||||
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
|
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
|
||||||
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
||||||
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
||||||
|
@ -768,8 +768,8 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M
|
||||||
google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
|
google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
|
||||||
google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
|
google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
|
||||||
google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
|
google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
|
||||||
google.golang.org/api v0.180.0 h1:M2D87Yo0rGBPWpo1orwfCLehUUL6E7/TYe5gvMQWDh4=
|
google.golang.org/api v0.181.0 h1:rPdjwnWgiPPOJx3IcSAQ2III5aX5tCer6wMpa/xmZi4=
|
||||||
google.golang.org/api v0.180.0/go.mod h1:51AiyoEg1MJPSZ9zvklA8VnRILPXxn1iVen9v25XHAE=
|
google.golang.org/api v0.181.0/go.mod h1:MnQ+M0CFsfUwA5beZ+g/vCBCPXvtmZwRz2qzZk8ih1k=
|
||||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
|
@ -805,12 +805,12 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc
|
||||||
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20240509183442-62759503f434 h1:+PQKEGakpJad0y8bF9UJlgg4dO2U5H+cydccJNjzkww=
|
google.golang.org/genproto v0.0.0-20240521202816-d264139d666e h1:axIBUGXSVho2zB+3tJj8l9Qvm/El5vVYPYqhGA5PmJM=
|
||||||
google.golang.org/genproto v0.0.0-20240509183442-62759503f434/go.mod h1:i4np6Wrjp8EujFAUn0CM0SH+iZhY1EbrfzEIJbFkHFM=
|
google.golang.org/genproto v0.0.0-20240521202816-d264139d666e/go.mod h1:gOvX/2dWTqh+u3+IHjFeCxinlz5AZ5qhOufbQPub/dE=
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20240509183442-62759503f434 h1:OpXbo8JnN8+jZGPrL4SSfaDjSCjupr8lXyBAbexEm/U=
|
google.golang.org/genproto/googleapis/api v0.0.0-20240521202816-d264139d666e h1:SkdGTrROJl2jRGT/Fxv5QUf9jtdKCQh4KQJXbXVLAi0=
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20240509183442-62759503f434/go.mod h1:FfiGhwUm6CJviekPrc0oJ+7h29e+DmWU6UtjX0ZvI7Y=
|
google.golang.org/genproto/googleapis/api v0.0.0-20240521202816-d264139d666e/go.mod h1:LweJcLbyVij6rCex8YunD8DYR5VDonap/jYl3ZRxcIU=
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240509183442-62759503f434 h1:umK/Ey0QEzurTNlsV3R+MfxHAb78HCEX/IkuR+zH4WQ=
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240521202816-d264139d666e h1:Elxv5MwEkCI9f5SkoL6afed6NTdxaGoAo39eANBwHL8=
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240509183442-62759503f434/go.mod h1:I7Y+G38R2bu5j1aLzfFmQfTcU/WnFuqDwLZAbvKTKpM=
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240521202816-d264139d666e/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||||
|
@ -824,8 +824,8 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji
|
||||||
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||||
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||||
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
||||||
google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM=
|
google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY=
|
||||||
google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA=
|
google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
|
@ -868,12 +868,12 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
|
||||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||||
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||||
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||||
k8s.io/api v0.30.0 h1:siWhRq7cNjy2iHssOB9SCGNCl2spiF1dO3dABqZ8niA=
|
k8s.io/api v0.30.1 h1:kCm/6mADMdbAxmIh0LBjS54nQBE+U4KmbCfIkF5CpJY=
|
||||||
k8s.io/api v0.30.0/go.mod h1:OPlaYhoHs8EQ1ql0R/TsUgaRPhpKNxIMrKQfWUp8QSE=
|
k8s.io/api v0.30.1/go.mod h1:ddbN2C0+0DIiPntan/bye3SW3PdwLa11/0yqwvuRrJM=
|
||||||
k8s.io/apimachinery v0.30.0 h1:qxVPsyDM5XS96NIh9Oj6LavoVFYff/Pon9cZeDIkHHA=
|
k8s.io/apimachinery v0.30.1 h1:ZQStsEfo4n65yAdlGTfP/uSHMQSoYzU/oeEbkmF7P2U=
|
||||||
k8s.io/apimachinery v0.30.0/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc=
|
k8s.io/apimachinery v0.30.1/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc=
|
||||||
k8s.io/client-go v0.30.0 h1:sB1AGGlhY/o7KCyCEQ0bPWzYDL0pwOZO4vAtTSh/gJQ=
|
k8s.io/client-go v0.30.1 h1:uC/Ir6A3R46wdkgCV3vbLyNOYyCJ8oZnjtJGKfytl/Q=
|
||||||
k8s.io/client-go v0.30.0/go.mod h1:g7li5O5256qe6TYdAMyX/otJqMhIiGgTapdLchhmOaY=
|
k8s.io/client-go v0.30.1/go.mod h1:wrAqLNs2trwiCH/wxxmT/x3hKVH9PuV0GGW0oDoHVqc=
|
||||||
k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw=
|
k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw=
|
||||||
k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
|
k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
|
||||||
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag=
|
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag=
|
||||||
|
|
10
vendor/cloud.google.com/go/auth/CHANGES.md
generated
vendored
10
vendor/cloud.google.com/go/auth/CHANGES.md
generated
vendored
|
@ -1,5 +1,15 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [0.4.2](https://github.com/googleapis/google-cloud-go/compare/auth/v0.4.1...auth/v0.4.2) (2024-05-16)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **auth:** Enable client certificates by default only for GDU ([#10151](https://github.com/googleapis/google-cloud-go/issues/10151)) ([7c52978](https://github.com/googleapis/google-cloud-go/commit/7c529786275a39b7e00525f7d5e7be0d963e9e15))
|
||||||
|
* **auth:** Handle non-Transport DefaultTransport ([#10162](https://github.com/googleapis/google-cloud-go/issues/10162)) ([fa3bfdb](https://github.com/googleapis/google-cloud-go/commit/fa3bfdb23aaa45b34394a8b61e753b3587506782)), refs [#10159](https://github.com/googleapis/google-cloud-go/issues/10159)
|
||||||
|
* **auth:** Have refresh time match docs ([#10147](https://github.com/googleapis/google-cloud-go/issues/10147)) ([bcb5568](https://github.com/googleapis/google-cloud-go/commit/bcb5568c07a54dd3d2e869d15f502b0741a609e8))
|
||||||
|
* **auth:** Update compute token fetching error with named prefix ([#10180](https://github.com/googleapis/google-cloud-go/issues/10180)) ([4573504](https://github.com/googleapis/google-cloud-go/commit/4573504828d2928bebedc875d87650ba227829ea))
|
||||||
|
|
||||||
## [0.4.1](https://github.com/googleapis/google-cloud-go/compare/auth/v0.4.0...auth/v0.4.1) (2024-05-09)
|
## [0.4.1](https://github.com/googleapis/google-cloud-go/compare/auth/v0.4.0...auth/v0.4.1) (2024-05-09)
|
||||||
|
|
||||||
|
|
||||||
|
|
2
vendor/cloud.google.com/go/auth/auth.go
generated
vendored
2
vendor/cloud.google.com/go/auth/auth.go
generated
vendored
|
@ -39,7 +39,7 @@ const (
|
||||||
|
|
||||||
// 3 minutes and 45 seconds before expiration. The shortest MDS cache is 4 minutes,
|
// 3 minutes and 45 seconds before expiration. The shortest MDS cache is 4 minutes,
|
||||||
// so we give it 15 seconds to refresh it's cache before attempting to refresh a token.
|
// so we give it 15 seconds to refresh it's cache before attempting to refresh a token.
|
||||||
defaultExpiryDelta = 215 * time.Second
|
defaultExpiryDelta = 225 * time.Second
|
||||||
|
|
||||||
universeDomainDefault = "googleapis.com"
|
universeDomainDefault = "googleapis.com"
|
||||||
)
|
)
|
||||||
|
|
4
vendor/cloud.google.com/go/auth/credentials/compute.go
generated
vendored
4
vendor/cloud.google.com/go/auth/credentials/compute.go
generated
vendored
|
@ -64,9 +64,9 @@ func (cs computeProvider) Token(ctx context.Context) (*auth.Token, error) {
|
||||||
v.Set("scopes", strings.Join(cs.scopes, ","))
|
v.Set("scopes", strings.Join(cs.scopes, ","))
|
||||||
tokenURI.RawQuery = v.Encode()
|
tokenURI.RawQuery = v.Encode()
|
||||||
}
|
}
|
||||||
tokenJSON, err := metadata.Get(tokenURI.String())
|
tokenJSON, err := metadata.GetWithContext(ctx, tokenURI.String())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("credentials: cannot fetch token: %w", err)
|
||||||
}
|
}
|
||||||
var res metadataTokenResp
|
var res metadataTokenResp
|
||||||
if err := json.NewDecoder(strings.NewReader(tokenJSON)).Decode(&res); err != nil {
|
if err := json.NewDecoder(strings.NewReader(tokenJSON)).Decode(&res); err != nil {
|
||||||
|
|
9
vendor/cloud.google.com/go/auth/httptransport/httptransport.go
generated
vendored
9
vendor/cloud.google.com/go/auth/httptransport/httptransport.go
generated
vendored
|
@ -152,7 +152,14 @@ func AddAuthorizationMiddleware(client *http.Client, creds *auth.Credentials) er
|
||||||
}
|
}
|
||||||
base := client.Transport
|
base := client.Transport
|
||||||
if base == nil {
|
if base == nil {
|
||||||
base = http.DefaultTransport.(*http.Transport).Clone()
|
if dt, ok := http.DefaultTransport.(*http.Transport); ok {
|
||||||
|
base = dt.Clone()
|
||||||
|
} else {
|
||||||
|
// Directly reuse the DefaultTransport if the application has
|
||||||
|
// replaced it with an implementation of RoundTripper other than
|
||||||
|
// http.Transport.
|
||||||
|
base = http.DefaultTransport
|
||||||
|
}
|
||||||
}
|
}
|
||||||
client.Transport = &authTransport{
|
client.Transport = &authTransport{
|
||||||
creds: creds,
|
creds: creds,
|
||||||
|
|
8
vendor/cloud.google.com/go/auth/internal/transport/cba.go
generated
vendored
8
vendor/cloud.google.com/go/auth/internal/transport/cba.go
generated
vendored
|
@ -217,7 +217,7 @@ func getTransportConfig(opts *Options) (*transportConfig, error) {
|
||||||
// encountered while initializing the default source will be reported as client
|
// encountered while initializing the default source will be reported as client
|
||||||
// error (ex. corrupt metadata file).
|
// error (ex. corrupt metadata file).
|
||||||
func getClientCertificateSource(opts *Options) (cert.Provider, error) {
|
func getClientCertificateSource(opts *Options) (cert.Provider, error) {
|
||||||
if !isClientCertificateEnabled() {
|
if !isClientCertificateEnabled(opts) {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
} else if opts.ClientCertProvider != nil {
|
} else if opts.ClientCertProvider != nil {
|
||||||
return opts.ClientCertProvider, nil
|
return opts.ClientCertProvider, nil
|
||||||
|
@ -226,14 +226,14 @@ func getClientCertificateSource(opts *Options) (cert.Provider, error) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// isClientCertificateEnabled returns true by default, unless explicitly set to false via env var.
|
// isClientCertificateEnabled returns true by default for all GDU universe domain, unless explicitly overridden by env var
|
||||||
func isClientCertificateEnabled() bool {
|
func isClientCertificateEnabled(opts *Options) bool {
|
||||||
if value, ok := os.LookupEnv(googleAPIUseCertSource); ok {
|
if value, ok := os.LookupEnv(googleAPIUseCertSource); ok {
|
||||||
// error as false is OK
|
// error as false is OK
|
||||||
b, _ := strconv.ParseBool(value)
|
b, _ := strconv.ParseBool(value)
|
||||||
return b
|
return b
|
||||||
}
|
}
|
||||||
return true
|
return opts.isUniverseDomainGDU()
|
||||||
}
|
}
|
||||||
|
|
||||||
type transportConfig struct {
|
type transportConfig struct {
|
||||||
|
|
24
vendor/cloud.google.com/go/storage/CHANGES.md
generated
vendored
24
vendor/cloud.google.com/go/storage/CHANGES.md
generated
vendored
|
@ -1,6 +1,30 @@
|
||||||
# Changes
|
# Changes
|
||||||
|
|
||||||
|
|
||||||
|
## [1.41.0](https://github.com/googleapis/google-cloud-go/compare/storage/v1.40.0...storage/v1.41.0) (2024-05-13)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **storage/control:** Make Managed Folders operations public ([264a6dc](https://github.com/googleapis/google-cloud-go/commit/264a6dcddbffaec987dce1dc00f6550c263d2df7))
|
||||||
|
* **storage:** Support for soft delete policies and restore ([#9520](https://github.com/googleapis/google-cloud-go/issues/9520)) ([985deb2](https://github.com/googleapis/google-cloud-go/commit/985deb2bdd1c79944cdd960bd3fbfa38cbfa1c91))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **storage/control:** An existing resource pattern value `projects/{project}/buckets/{bucket}/managedFolders/{managedFolder=**}` to resource definition `storage.googleapis.com/ManagedFolder` is removed ([3e25053](https://github.com/googleapis/google-cloud-go/commit/3e250530567ee81ed4f51a3856c5940dbec35289))
|
||||||
|
* **storage:** Add internaloption.WithDefaultEndpointTemplate ([3b41408](https://github.com/googleapis/google-cloud-go/commit/3b414084450a5764a0248756e95e13383a645f90))
|
||||||
|
* **storage:** Bump x/net to v0.24.0 ([ba31ed5](https://github.com/googleapis/google-cloud-go/commit/ba31ed5fda2c9664f2e1cf972469295e63deb5b4))
|
||||||
|
* **storage:** Disable gax retries for gRPC ([#9747](https://github.com/googleapis/google-cloud-go/issues/9747)) ([bbfc0ac](https://github.com/googleapis/google-cloud-go/commit/bbfc0acc272f21bf1f558ea23648183d5a11cda5))
|
||||||
|
* **storage:** More strongly match regex ([#9706](https://github.com/googleapis/google-cloud-go/issues/9706)) ([3cfc8eb](https://github.com/googleapis/google-cloud-go/commit/3cfc8eb418e064d734bf3d8708162062dbbe988f)), refs [#9705](https://github.com/googleapis/google-cloud-go/issues/9705)
|
||||||
|
* **storage:** Retry net.OpError on connection reset ([#10154](https://github.com/googleapis/google-cloud-go/issues/10154)) ([54fab10](https://github.com/googleapis/google-cloud-go/commit/54fab107f98b4f79c9df2959a05b981be0a613c1)), refs [#9478](https://github.com/googleapis/google-cloud-go/issues/9478)
|
||||||
|
* **storage:** Wrap error when MaxAttempts is hit ([#9767](https://github.com/googleapis/google-cloud-go/issues/9767)) ([9cb262b](https://github.com/googleapis/google-cloud-go/commit/9cb262bb65a162665bfb8bed0022615131bae1f2)), refs [#9720](https://github.com/googleapis/google-cloud-go/issues/9720)
|
||||||
|
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
|
||||||
|
* **storage/control:** Update storage control documentation and add PHP for publishing ([1d757c6](https://github.com/googleapis/google-cloud-go/commit/1d757c66478963d6cbbef13fee939632c742759c))
|
||||||
|
|
||||||
## [1.40.0](https://github.com/googleapis/google-cloud-go/compare/storage/v1.39.1...storage/v1.40.0) (2024-03-29)
|
## [1.40.0](https://github.com/googleapis/google-cloud-go/compare/storage/v1.39.1...storage/v1.40.0) (2024-03-29)
|
||||||
|
|
||||||
|
|
||||||
|
|
83
vendor/cloud.google.com/go/storage/bucket.go
generated
vendored
83
vendor/cloud.google.com/go/storage/bucket.go
generated
vendored
|
@ -479,6 +479,13 @@ type BucketAttrs struct {
|
||||||
// cannot be modified once the bucket is created.
|
// cannot be modified once the bucket is created.
|
||||||
// ObjectRetention cannot be configured or reported through the gRPC API.
|
// ObjectRetention cannot be configured or reported through the gRPC API.
|
||||||
ObjectRetentionMode string
|
ObjectRetentionMode string
|
||||||
|
|
||||||
|
// SoftDeletePolicy contains the bucket's soft delete policy, which defines
|
||||||
|
// the period of time that soft-deleted objects will be retained, and cannot
|
||||||
|
// be permanently deleted. By default, new buckets will be created with a
|
||||||
|
// 7 day retention duration. In order to fully disable soft delete, you need
|
||||||
|
// to set a policy with a RetentionDuration of 0.
|
||||||
|
SoftDeletePolicy *SoftDeletePolicy
|
||||||
}
|
}
|
||||||
|
|
||||||
// BucketPolicyOnly is an alias for UniformBucketLevelAccess.
|
// BucketPolicyOnly is an alias for UniformBucketLevelAccess.
|
||||||
|
@ -766,6 +773,19 @@ type Autoclass struct {
|
||||||
TerminalStorageClassUpdateTime time.Time
|
TerminalStorageClassUpdateTime time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SoftDeletePolicy contains the bucket's soft delete policy, which defines the
|
||||||
|
// period of time that soft-deleted objects will be retained, and cannot be
|
||||||
|
// permanently deleted.
|
||||||
|
type SoftDeletePolicy struct {
|
||||||
|
// EffectiveTime indicates the time from which the policy, or one with a
|
||||||
|
// greater retention, was effective. This field is read-only.
|
||||||
|
EffectiveTime time.Time
|
||||||
|
|
||||||
|
// RetentionDuration is the amount of time that soft-deleted objects in the
|
||||||
|
// bucket will be retained and cannot be permanently deleted.
|
||||||
|
RetentionDuration time.Duration
|
||||||
|
}
|
||||||
|
|
||||||
func newBucket(b *raw.Bucket) (*BucketAttrs, error) {
|
func newBucket(b *raw.Bucket) (*BucketAttrs, error) {
|
||||||
if b == nil {
|
if b == nil {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
|
@ -803,6 +823,7 @@ func newBucket(b *raw.Bucket) (*BucketAttrs, error) {
|
||||||
RPO: toRPO(b),
|
RPO: toRPO(b),
|
||||||
CustomPlacementConfig: customPlacementFromRaw(b.CustomPlacementConfig),
|
CustomPlacementConfig: customPlacementFromRaw(b.CustomPlacementConfig),
|
||||||
Autoclass: toAutoclassFromRaw(b.Autoclass),
|
Autoclass: toAutoclassFromRaw(b.Autoclass),
|
||||||
|
SoftDeletePolicy: toSoftDeletePolicyFromRaw(b.SoftDeletePolicy),
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -836,6 +857,7 @@ func newBucketFromProto(b *storagepb.Bucket) *BucketAttrs {
|
||||||
CustomPlacementConfig: customPlacementFromProto(b.GetCustomPlacementConfig()),
|
CustomPlacementConfig: customPlacementFromProto(b.GetCustomPlacementConfig()),
|
||||||
ProjectNumber: parseProjectNumber(b.GetProject()), // this can return 0 the project resource name is ID based
|
ProjectNumber: parseProjectNumber(b.GetProject()), // this can return 0 the project resource name is ID based
|
||||||
Autoclass: toAutoclassFromProto(b.GetAutoclass()),
|
Autoclass: toAutoclassFromProto(b.GetAutoclass()),
|
||||||
|
SoftDeletePolicy: toSoftDeletePolicyFromProto(b.SoftDeletePolicy),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -891,6 +913,7 @@ func (b *BucketAttrs) toRawBucket() *raw.Bucket {
|
||||||
Rpo: b.RPO.String(),
|
Rpo: b.RPO.String(),
|
||||||
CustomPlacementConfig: b.CustomPlacementConfig.toRawCustomPlacement(),
|
CustomPlacementConfig: b.CustomPlacementConfig.toRawCustomPlacement(),
|
||||||
Autoclass: b.Autoclass.toRawAutoclass(),
|
Autoclass: b.Autoclass.toRawAutoclass(),
|
||||||
|
SoftDeletePolicy: b.SoftDeletePolicy.toRawSoftDeletePolicy(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -951,6 +974,7 @@ func (b *BucketAttrs) toProtoBucket() *storagepb.Bucket {
|
||||||
Rpo: b.RPO.String(),
|
Rpo: b.RPO.String(),
|
||||||
CustomPlacementConfig: b.CustomPlacementConfig.toProtoCustomPlacement(),
|
CustomPlacementConfig: b.CustomPlacementConfig.toProtoCustomPlacement(),
|
||||||
Autoclass: b.Autoclass.toProtoAutoclass(),
|
Autoclass: b.Autoclass.toProtoAutoclass(),
|
||||||
|
SoftDeletePolicy: b.SoftDeletePolicy.toProtoSoftDeletePolicy(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1032,6 +1056,7 @@ func (ua *BucketAttrsToUpdate) toProtoBucket() *storagepb.Bucket {
|
||||||
IamConfig: bktIAM,
|
IamConfig: bktIAM,
|
||||||
Rpo: ua.RPO.String(),
|
Rpo: ua.RPO.String(),
|
||||||
Autoclass: ua.Autoclass.toProtoAutoclass(),
|
Autoclass: ua.Autoclass.toProtoAutoclass(),
|
||||||
|
SoftDeletePolicy: ua.SoftDeletePolicy.toProtoSoftDeletePolicy(),
|
||||||
Labels: ua.setLabels,
|
Labels: ua.setLabels,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1152,6 +1177,9 @@ type BucketAttrsToUpdate struct {
|
||||||
// See https://cloud.google.com/storage/docs/using-autoclass for more information.
|
// See https://cloud.google.com/storage/docs/using-autoclass for more information.
|
||||||
Autoclass *Autoclass
|
Autoclass *Autoclass
|
||||||
|
|
||||||
|
// If set, updates the soft delete policy of the bucket.
|
||||||
|
SoftDeletePolicy *SoftDeletePolicy
|
||||||
|
|
||||||
// acl is the list of access control rules on the bucket.
|
// acl is the list of access control rules on the bucket.
|
||||||
// It is unexported and only used internally by the gRPC client.
|
// It is unexported and only used internally by the gRPC client.
|
||||||
// Library users should use ACLHandle methods directly.
|
// Library users should use ACLHandle methods directly.
|
||||||
|
@ -1273,6 +1301,14 @@ func (ua *BucketAttrsToUpdate) toRawBucket() *raw.Bucket {
|
||||||
}
|
}
|
||||||
rb.ForceSendFields = append(rb.ForceSendFields, "Autoclass")
|
rb.ForceSendFields = append(rb.ForceSendFields, "Autoclass")
|
||||||
}
|
}
|
||||||
|
if ua.SoftDeletePolicy != nil {
|
||||||
|
if ua.SoftDeletePolicy.RetentionDuration == 0 {
|
||||||
|
rb.NullFields = append(rb.NullFields, "SoftDeletePolicy")
|
||||||
|
rb.SoftDeletePolicy = nil
|
||||||
|
} else {
|
||||||
|
rb.SoftDeletePolicy = ua.SoftDeletePolicy.toRawSoftDeletePolicy()
|
||||||
|
}
|
||||||
|
}
|
||||||
if ua.PredefinedACL != "" {
|
if ua.PredefinedACL != "" {
|
||||||
// Clear ACL or the call will fail.
|
// Clear ACL or the call will fail.
|
||||||
rb.Acl = nil
|
rb.Acl = nil
|
||||||
|
@ -2053,6 +2089,53 @@ func toAutoclassFromProto(a *storagepb.Bucket_Autoclass) *Autoclass {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *SoftDeletePolicy) toRawSoftDeletePolicy() *raw.BucketSoftDeletePolicy {
|
||||||
|
if p == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
// Excluding read only field EffectiveTime.
|
||||||
|
return &raw.BucketSoftDeletePolicy{
|
||||||
|
RetentionDurationSeconds: int64(p.RetentionDuration.Seconds()),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *SoftDeletePolicy) toProtoSoftDeletePolicy() *storagepb.Bucket_SoftDeletePolicy {
|
||||||
|
if p == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
// Excluding read only field EffectiveTime.
|
||||||
|
return &storagepb.Bucket_SoftDeletePolicy{
|
||||||
|
RetentionDuration: durationpb.New(p.RetentionDuration),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func toSoftDeletePolicyFromRaw(p *raw.BucketSoftDeletePolicy) *SoftDeletePolicy {
|
||||||
|
if p == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
policy := &SoftDeletePolicy{
|
||||||
|
RetentionDuration: time.Duration(p.RetentionDurationSeconds) * time.Second,
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return EffectiveTime only if parsed to a valid value.
|
||||||
|
if t, err := time.Parse(time.RFC3339, p.EffectiveTime); err == nil {
|
||||||
|
policy.EffectiveTime = t
|
||||||
|
}
|
||||||
|
|
||||||
|
return policy
|
||||||
|
}
|
||||||
|
|
||||||
|
func toSoftDeletePolicyFromProto(p *storagepb.Bucket_SoftDeletePolicy) *SoftDeletePolicy {
|
||||||
|
if p == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return &SoftDeletePolicy{
|
||||||
|
EffectiveTime: p.GetEffectiveTime().AsTime(),
|
||||||
|
RetentionDuration: p.GetRetentionDuration().AsDuration(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Objects returns an iterator over the objects in the bucket that match the
|
// Objects returns an iterator over the objects in the bucket that match the
|
||||||
// Query q. If q is nil, no filtering is done. Objects will be iterated over
|
// Query q. If q is nil, no filtering is done. Objects will be iterated over
|
||||||
// lexicographically by name.
|
// lexicographically by name.
|
||||||
|
|
29
vendor/cloud.google.com/go/storage/client.go
generated
vendored
29
vendor/cloud.google.com/go/storage/client.go
generated
vendored
|
@ -59,8 +59,9 @@ type storageClient interface {
|
||||||
// Object metadata methods.
|
// Object metadata methods.
|
||||||
|
|
||||||
DeleteObject(ctx context.Context, bucket, object string, gen int64, conds *Conditions, opts ...storageOption) error
|
DeleteObject(ctx context.Context, bucket, object string, gen int64, conds *Conditions, opts ...storageOption) error
|
||||||
GetObject(ctx context.Context, bucket, object string, gen int64, encryptionKey []byte, conds *Conditions, opts ...storageOption) (*ObjectAttrs, error)
|
GetObject(ctx context.Context, params *getObjectParams, opts ...storageOption) (*ObjectAttrs, error)
|
||||||
UpdateObject(ctx context.Context, params *updateObjectParams, opts ...storageOption) (*ObjectAttrs, error)
|
UpdateObject(ctx context.Context, params *updateObjectParams, opts ...storageOption) (*ObjectAttrs, error)
|
||||||
|
RestoreObject(ctx context.Context, params *restoreObjectParams, opts ...storageOption) (*ObjectAttrs, error)
|
||||||
|
|
||||||
// Default Object ACL methods.
|
// Default Object ACL methods.
|
||||||
|
|
||||||
|
@ -182,16 +183,6 @@ type storageOption interface {
|
||||||
Apply(s *settings)
|
Apply(s *settings)
|
||||||
}
|
}
|
||||||
|
|
||||||
func withGAXOptions(opts ...gax.CallOption) storageOption {
|
|
||||||
return &gaxOption{opts}
|
|
||||||
}
|
|
||||||
|
|
||||||
type gaxOption struct {
|
|
||||||
opts []gax.CallOption
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *gaxOption) Apply(s *settings) { s.gax = o.opts }
|
|
||||||
|
|
||||||
func withRetryConfig(rc *retryConfig) storageOption {
|
func withRetryConfig(rc *retryConfig) storageOption {
|
||||||
return &retryOption{rc}
|
return &retryOption{rc}
|
||||||
}
|
}
|
||||||
|
@ -294,6 +285,14 @@ type newRangeReaderParams struct {
|
||||||
readCompressed bool // Use accept-encoding: gzip. Only works for HTTP currently.
|
readCompressed bool // Use accept-encoding: gzip. Only works for HTTP currently.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type getObjectParams struct {
|
||||||
|
bucket, object string
|
||||||
|
gen int64
|
||||||
|
encryptionKey []byte
|
||||||
|
conds *Conditions
|
||||||
|
softDeleted bool
|
||||||
|
}
|
||||||
|
|
||||||
type updateObjectParams struct {
|
type updateObjectParams struct {
|
||||||
bucket, object string
|
bucket, object string
|
||||||
uattrs *ObjectAttrsToUpdate
|
uattrs *ObjectAttrsToUpdate
|
||||||
|
@ -303,6 +302,14 @@ type updateObjectParams struct {
|
||||||
overrideRetention *bool
|
overrideRetention *bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type restoreObjectParams struct {
|
||||||
|
bucket, object string
|
||||||
|
gen int64
|
||||||
|
encryptionKey []byte
|
||||||
|
conds *Conditions
|
||||||
|
copySourceACL bool
|
||||||
|
}
|
||||||
|
|
||||||
type composeObjectRequest struct {
|
type composeObjectRequest struct {
|
||||||
dstBucket string
|
dstBucket string
|
||||||
dstObject destinationObject
|
dstObject destinationObject
|
||||||
|
|
10
vendor/cloud.google.com/go/storage/doc.go
generated
vendored
10
vendor/cloud.google.com/go/storage/doc.go
generated
vendored
|
@ -350,7 +350,7 @@ To create a client which will use gRPC, use the alternate constructor:
|
||||||
// Use client as usual.
|
// Use client as usual.
|
||||||
|
|
||||||
If the application is running within GCP, users may get better performance by
|
If the application is running within GCP, users may get better performance by
|
||||||
enabling Google Direct Access (enabling requests to skip some proxy steps). To enable,
|
enabling Direct Google Access (enabling requests to skip some proxy steps). To enable,
|
||||||
set the environment variable `GOOGLE_CLOUD_ENABLE_DIRECT_PATH_XDS=true` and add
|
set the environment variable `GOOGLE_CLOUD_ENABLE_DIRECT_PATH_XDS=true` and add
|
||||||
the following side-effect imports to your application:
|
the following side-effect imports to your application:
|
||||||
|
|
||||||
|
@ -359,6 +359,13 @@ the following side-effect imports to your application:
|
||||||
_ "google.golang.org/grpc/xds/googledirectpath"
|
_ "google.golang.org/grpc/xds/googledirectpath"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Storage Control API
|
||||||
|
|
||||||
|
Certain control plane and long-running operations for Cloud Storage (including Folder
|
||||||
|
and Managed Folder operations) are supported via the autogenerated Storage Control
|
||||||
|
client, which is available as a subpackage in this module. See package docs at
|
||||||
|
[cloud.google.com/go/storage/control/apiv2] or reference the [Storage Control API] docs.
|
||||||
|
|
||||||
[Cloud Storage IAM docs]: https://cloud.google.com/storage/docs/access-control/iam
|
[Cloud Storage IAM docs]: https://cloud.google.com/storage/docs/access-control/iam
|
||||||
[XML POST Object docs]: https://cloud.google.com/storage/docs/xml-api/post-object
|
[XML POST Object docs]: https://cloud.google.com/storage/docs/xml-api/post-object
|
||||||
[Cloud Storage retry docs]: https://cloud.google.com/storage/docs/retry-strategy
|
[Cloud Storage retry docs]: https://cloud.google.com/storage/docs/retry-strategy
|
||||||
|
@ -367,5 +374,6 @@ the following side-effect imports to your application:
|
||||||
[impersonation enabled]: https://cloud.google.com/sdk/gcloud/reference#--impersonate-service-account
|
[impersonation enabled]: https://cloud.google.com/sdk/gcloud/reference#--impersonate-service-account
|
||||||
[IAM Service Account Credentials API]: https://console.developers.google.com/apis/api/iamcredentials.googleapis.com/overview
|
[IAM Service Account Credentials API]: https://console.developers.google.com/apis/api/iamcredentials.googleapis.com/overview
|
||||||
[custom audit logging]: https://cloud.google.com/storage/docs/audit-logging#add-custom-metadata
|
[custom audit logging]: https://cloud.google.com/storage/docs/audit-logging#add-custom-metadata
|
||||||
|
[Storage Control API]: https://cloud.google.com/storage/docs/reference/rpc/google.storage.control.v2
|
||||||
*/
|
*/
|
||||||
package storage // import "cloud.google.com/go/storage"
|
package storage // import "cloud.google.com/go/storage"
|
||||||
|
|
73
vendor/cloud.google.com/go/storage/grpc_client.go
generated
vendored
73
vendor/cloud.google.com/go/storage/grpc_client.go
generated
vendored
|
@ -28,7 +28,6 @@ import (
|
||||||
"cloud.google.com/go/internal/trace"
|
"cloud.google.com/go/internal/trace"
|
||||||
gapic "cloud.google.com/go/storage/internal/apiv2"
|
gapic "cloud.google.com/go/storage/internal/apiv2"
|
||||||
"cloud.google.com/go/storage/internal/apiv2/storagepb"
|
"cloud.google.com/go/storage/internal/apiv2/storagepb"
|
||||||
"github.com/golang/protobuf/proto"
|
|
||||||
"github.com/googleapis/gax-go/v2"
|
"github.com/googleapis/gax-go/v2"
|
||||||
"google.golang.org/api/googleapi"
|
"google.golang.org/api/googleapi"
|
||||||
"google.golang.org/api/iterator"
|
"google.golang.org/api/iterator"
|
||||||
|
@ -40,6 +39,7 @@ import (
|
||||||
"google.golang.org/grpc/metadata"
|
"google.golang.org/grpc/metadata"
|
||||||
"google.golang.org/grpc/status"
|
"google.golang.org/grpc/status"
|
||||||
"google.golang.org/protobuf/encoding/protowire"
|
"google.golang.org/protobuf/encoding/protowire"
|
||||||
|
"google.golang.org/protobuf/proto"
|
||||||
fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
|
fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -116,6 +116,8 @@ type grpcStorageClient struct {
|
||||||
func newGRPCStorageClient(ctx context.Context, opts ...storageOption) (storageClient, error) {
|
func newGRPCStorageClient(ctx context.Context, opts ...storageOption) (storageClient, error) {
|
||||||
s := initSettings(opts...)
|
s := initSettings(opts...)
|
||||||
s.clientOption = append(defaultGRPCOptions(), s.clientOption...)
|
s.clientOption = append(defaultGRPCOptions(), s.clientOption...)
|
||||||
|
// Disable all gax-level retries in favor of retry logic in the veneer client.
|
||||||
|
s.gax = append(s.gax, gax.WithRetry(nil))
|
||||||
|
|
||||||
config := newStorageConfig(s.clientOption...)
|
config := newStorageConfig(s.clientOption...)
|
||||||
if config.readAPIWasSet {
|
if config.readAPIWasSet {
|
||||||
|
@ -365,6 +367,9 @@ func (c *grpcStorageClient) UpdateBucket(ctx context.Context, bucket string, uat
|
||||||
if uattrs.Autoclass != nil {
|
if uattrs.Autoclass != nil {
|
||||||
fieldMask.Paths = append(fieldMask.Paths, "autoclass")
|
fieldMask.Paths = append(fieldMask.Paths, "autoclass")
|
||||||
}
|
}
|
||||||
|
if uattrs.SoftDeletePolicy != nil {
|
||||||
|
fieldMask.Paths = append(fieldMask.Paths, "soft_delete_policy")
|
||||||
|
}
|
||||||
|
|
||||||
for label := range uattrs.setLabels {
|
for label := range uattrs.setLabels {
|
||||||
fieldMask.Paths = append(fieldMask.Paths, fmt.Sprintf("labels.%s", label))
|
fieldMask.Paths = append(fieldMask.Paths, fmt.Sprintf("labels.%s", label))
|
||||||
|
@ -377,6 +382,13 @@ func (c *grpcStorageClient) UpdateBucket(ctx context.Context, bucket string, uat
|
||||||
|
|
||||||
req.UpdateMask = fieldMask
|
req.UpdateMask = fieldMask
|
||||||
|
|
||||||
|
if len(fieldMask.Paths) < 1 {
|
||||||
|
// Nothing to update. Send a get request for current attrs instead. This
|
||||||
|
// maintains consistency with JSON bucket updates.
|
||||||
|
opts = append(opts, idempotent(true))
|
||||||
|
return c.GetBucket(ctx, bucket, conds, opts...)
|
||||||
|
}
|
||||||
|
|
||||||
var battrs *BucketAttrs
|
var battrs *BucketAttrs
|
||||||
err := run(ctx, func(ctx context.Context) error {
|
err := run(ctx, func(ctx context.Context) error {
|
||||||
res, err := c.raw.UpdateBucket(ctx, req, s.gax...)
|
res, err := c.raw.UpdateBucket(ctx, req, s.gax...)
|
||||||
|
@ -419,6 +431,7 @@ func (c *grpcStorageClient) ListObjects(ctx context.Context, bucket string, q *Q
|
||||||
IncludeTrailingDelimiter: it.query.IncludeTrailingDelimiter,
|
IncludeTrailingDelimiter: it.query.IncludeTrailingDelimiter,
|
||||||
MatchGlob: it.query.MatchGlob,
|
MatchGlob: it.query.MatchGlob,
|
||||||
ReadMask: q.toFieldMask(), // a nil Query still results in a "*" FieldMask
|
ReadMask: q.toFieldMask(), // a nil Query still results in a "*" FieldMask
|
||||||
|
SoftDeleted: it.query.SoftDeleted,
|
||||||
}
|
}
|
||||||
if s.userProject != "" {
|
if s.userProject != "" {
|
||||||
ctx = setUserProjectMetadata(ctx, s.userProject)
|
ctx = setUserProjectMetadata(ctx, s.userProject)
|
||||||
|
@ -488,22 +501,25 @@ func (c *grpcStorageClient) DeleteObject(ctx context.Context, bucket, object str
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *grpcStorageClient) GetObject(ctx context.Context, bucket, object string, gen int64, encryptionKey []byte, conds *Conditions, opts ...storageOption) (*ObjectAttrs, error) {
|
func (c *grpcStorageClient) GetObject(ctx context.Context, params *getObjectParams, opts ...storageOption) (*ObjectAttrs, error) {
|
||||||
s := callSettings(c.settings, opts...)
|
s := callSettings(c.settings, opts...)
|
||||||
req := &storagepb.GetObjectRequest{
|
req := &storagepb.GetObjectRequest{
|
||||||
Bucket: bucketResourceName(globalProjectAlias, bucket),
|
Bucket: bucketResourceName(globalProjectAlias, params.bucket),
|
||||||
Object: object,
|
Object: params.object,
|
||||||
// ProjectionFull by default.
|
// ProjectionFull by default.
|
||||||
ReadMask: &fieldmaskpb.FieldMask{Paths: []string{"*"}},
|
ReadMask: &fieldmaskpb.FieldMask{Paths: []string{"*"}},
|
||||||
}
|
}
|
||||||
if err := applyCondsProto("grpcStorageClient.GetObject", gen, conds, req); err != nil {
|
if err := applyCondsProto("grpcStorageClient.GetObject", params.gen, params.conds, req); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if s.userProject != "" {
|
if s.userProject != "" {
|
||||||
ctx = setUserProjectMetadata(ctx, s.userProject)
|
ctx = setUserProjectMetadata(ctx, s.userProject)
|
||||||
}
|
}
|
||||||
if encryptionKey != nil {
|
if params.encryptionKey != nil {
|
||||||
req.CommonObjectRequestParams = toProtoCommonObjectRequestParams(encryptionKey)
|
req.CommonObjectRequestParams = toProtoCommonObjectRequestParams(params.encryptionKey)
|
||||||
|
}
|
||||||
|
if params.softDeleted {
|
||||||
|
req.SoftDeleted = ¶ms.softDeleted
|
||||||
}
|
}
|
||||||
|
|
||||||
var attrs *ObjectAttrs
|
var attrs *ObjectAttrs
|
||||||
|
@ -593,6 +609,17 @@ func (c *grpcStorageClient) UpdateObject(ctx context.Context, params *updateObje
|
||||||
|
|
||||||
req.UpdateMask = fieldMask
|
req.UpdateMask = fieldMask
|
||||||
|
|
||||||
|
if len(fieldMask.Paths) < 1 {
|
||||||
|
// Nothing to update. To maintain consistency with JSON, we must still
|
||||||
|
// update the object because metageneration and other fields are
|
||||||
|
// updated even on an empty update.
|
||||||
|
// gRPC will fail if the fieldmask is empty, so instead we add an
|
||||||
|
// output-only field to the update mask. Output-only fields are (and must
|
||||||
|
// be - see AIP 161) ignored, but allow us to send an empty update because
|
||||||
|
// any mask that is valid for read (as this one is) must be valid for write.
|
||||||
|
fieldMask.Paths = append(fieldMask.Paths, "create_time")
|
||||||
|
}
|
||||||
|
|
||||||
var attrs *ObjectAttrs
|
var attrs *ObjectAttrs
|
||||||
err := run(ctx, func(ctx context.Context) error {
|
err := run(ctx, func(ctx context.Context) error {
|
||||||
res, err := c.raw.UpdateObject(ctx, req, s.gax...)
|
res, err := c.raw.UpdateObject(ctx, req, s.gax...)
|
||||||
|
@ -606,6 +633,32 @@ func (c *grpcStorageClient) UpdateObject(ctx context.Context, params *updateObje
|
||||||
return attrs, err
|
return attrs, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *grpcStorageClient) RestoreObject(ctx context.Context, params *restoreObjectParams, opts ...storageOption) (*ObjectAttrs, error) {
|
||||||
|
s := callSettings(c.settings, opts...)
|
||||||
|
req := &storagepb.RestoreObjectRequest{
|
||||||
|
Bucket: bucketResourceName(globalProjectAlias, params.bucket),
|
||||||
|
Object: params.object,
|
||||||
|
CopySourceAcl: ¶ms.copySourceACL,
|
||||||
|
}
|
||||||
|
if err := applyCondsProto("grpcStorageClient.RestoreObject", params.gen, params.conds, req); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if s.userProject != "" {
|
||||||
|
ctx = setUserProjectMetadata(ctx, s.userProject)
|
||||||
|
}
|
||||||
|
|
||||||
|
var attrs *ObjectAttrs
|
||||||
|
err := run(ctx, func(ctx context.Context) error {
|
||||||
|
res, err := c.raw.RestoreObject(ctx, req, s.gax...)
|
||||||
|
attrs = newObjectFromProto(res)
|
||||||
|
return err
|
||||||
|
}, s.retry, s.idempotent)
|
||||||
|
if s, ok := status.FromError(err); ok && s.Code() == codes.NotFound {
|
||||||
|
return nil, ErrObjectNotExist
|
||||||
|
}
|
||||||
|
return attrs, err
|
||||||
|
}
|
||||||
|
|
||||||
// Default Object ACL methods.
|
// Default Object ACL methods.
|
||||||
|
|
||||||
func (c *grpcStorageClient) DeleteDefaultObjectACL(ctx context.Context, bucket string, entity ACLEntity, opts ...storageOption) error {
|
func (c *grpcStorageClient) DeleteDefaultObjectACL(ctx context.Context, bucket string, entity ACLEntity, opts ...storageOption) error {
|
||||||
|
@ -735,7 +788,7 @@ func (c *grpcStorageClient) UpdateBucketACL(ctx context.Context, bucket string,
|
||||||
func (c *grpcStorageClient) DeleteObjectACL(ctx context.Context, bucket, object string, entity ACLEntity, opts ...storageOption) error {
|
func (c *grpcStorageClient) DeleteObjectACL(ctx context.Context, bucket, object string, entity ACLEntity, opts ...storageOption) error {
|
||||||
// There is no separate API for PATCH in gRPC.
|
// There is no separate API for PATCH in gRPC.
|
||||||
// Make a GET call first to retrieve ObjectAttrs.
|
// Make a GET call first to retrieve ObjectAttrs.
|
||||||
attrs, err := c.GetObject(ctx, bucket, object, defaultGen, nil, nil, opts...)
|
attrs, err := c.GetObject(ctx, &getObjectParams{bucket, object, defaultGen, nil, nil, false}, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -768,7 +821,7 @@ func (c *grpcStorageClient) DeleteObjectACL(ctx context.Context, bucket, object
|
||||||
// ListObjectACLs retrieves object ACL entries. By default, it operates on the latest generation of this object.
|
// ListObjectACLs retrieves object ACL entries. By default, it operates on the latest generation of this object.
|
||||||
// Selecting a specific generation of this object is not currently supported by the client.
|
// Selecting a specific generation of this object is not currently supported by the client.
|
||||||
func (c *grpcStorageClient) ListObjectACLs(ctx context.Context, bucket, object string, opts ...storageOption) ([]ACLRule, error) {
|
func (c *grpcStorageClient) ListObjectACLs(ctx context.Context, bucket, object string, opts ...storageOption) ([]ACLRule, error) {
|
||||||
o, err := c.GetObject(ctx, bucket, object, defaultGen, nil, nil, opts...)
|
o, err := c.GetObject(ctx, &getObjectParams{bucket, object, defaultGen, nil, nil, false}, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -778,7 +831,7 @@ func (c *grpcStorageClient) ListObjectACLs(ctx context.Context, bucket, object s
|
||||||
func (c *grpcStorageClient) UpdateObjectACL(ctx context.Context, bucket, object string, entity ACLEntity, role ACLRole, opts ...storageOption) error {
|
func (c *grpcStorageClient) UpdateObjectACL(ctx context.Context, bucket, object string, entity ACLEntity, role ACLRole, opts ...storageOption) error {
|
||||||
// There is no separate API for PATCH in gRPC.
|
// There is no separate API for PATCH in gRPC.
|
||||||
// Make a GET call first to retrieve ObjectAttrs.
|
// Make a GET call first to retrieve ObjectAttrs.
|
||||||
attrs, err := c.GetObject(ctx, bucket, object, defaultGen, nil, nil, opts...)
|
attrs, err := c.GetObject(ctx, &getObjectParams{bucket, object, defaultGen, nil, nil, false}, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
46
vendor/cloud.google.com/go/storage/http_client.go
generated
vendored
46
vendor/cloud.google.com/go/storage/http_client.go
generated
vendored
|
@ -107,12 +107,12 @@ func newHTTPStorageClient(ctx context.Context, opts ...storageOption) (storageCl
|
||||||
// Append the emulator host as default endpoint for the user
|
// Append the emulator host as default endpoint for the user
|
||||||
o = append([]option.ClientOption{option.WithoutAuthentication()}, o...)
|
o = append([]option.ClientOption{option.WithoutAuthentication()}, o...)
|
||||||
|
|
||||||
o = append(o, internaloption.WithDefaultEndpoint(endpoint))
|
o = append(o, internaloption.WithDefaultEndpointTemplate(endpoint))
|
||||||
o = append(o, internaloption.WithDefaultMTLSEndpoint(endpoint))
|
o = append(o, internaloption.WithDefaultMTLSEndpoint(endpoint))
|
||||||
}
|
}
|
||||||
s.clientOption = o
|
s.clientOption = o
|
||||||
|
|
||||||
// htransport selects the correct endpoint among WithEndpoint (user override), WithDefaultEndpoint, and WithDefaultMTLSEndpoint.
|
// htransport selects the correct endpoint among WithEndpoint (user override), WithDefaultEndpointTemplate, and WithDefaultMTLSEndpoint.
|
||||||
hc, ep, err := htransport.NewClient(ctx, s.clientOption...)
|
hc, ep, err := htransport.NewClient(ctx, s.clientOption...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("dialing: %w", err)
|
return nil, fmt.Errorf("dialing: %w", err)
|
||||||
|
@ -337,6 +337,9 @@ func (c *httpStorageClient) ListObjects(ctx context.Context, bucket string, q *Q
|
||||||
}
|
}
|
||||||
fetch := func(pageSize int, pageToken string) (string, error) {
|
fetch := func(pageSize int, pageToken string) (string, error) {
|
||||||
req := c.raw.Objects.List(bucket)
|
req := c.raw.Objects.List(bucket)
|
||||||
|
if it.query.SoftDeleted {
|
||||||
|
req.SoftDeleted(it.query.SoftDeleted)
|
||||||
|
}
|
||||||
setClientHeader(req.Header())
|
setClientHeader(req.Header())
|
||||||
projection := it.query.Projection
|
projection := it.query.Projection
|
||||||
if projection == ProjectionDefault {
|
if projection == ProjectionDefault {
|
||||||
|
@ -409,18 +412,22 @@ func (c *httpStorageClient) DeleteObject(ctx context.Context, bucket, object str
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *httpStorageClient) GetObject(ctx context.Context, bucket, object string, gen int64, encryptionKey []byte, conds *Conditions, opts ...storageOption) (*ObjectAttrs, error) {
|
func (c *httpStorageClient) GetObject(ctx context.Context, params *getObjectParams, opts ...storageOption) (*ObjectAttrs, error) {
|
||||||
s := callSettings(c.settings, opts...)
|
s := callSettings(c.settings, opts...)
|
||||||
req := c.raw.Objects.Get(bucket, object).Projection("full").Context(ctx)
|
req := c.raw.Objects.Get(params.bucket, params.object).Projection("full").Context(ctx)
|
||||||
if err := applyConds("Attrs", gen, conds, req); err != nil {
|
if err := applyConds("Attrs", params.gen, params.conds, req); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if s.userProject != "" {
|
if s.userProject != "" {
|
||||||
req.UserProject(s.userProject)
|
req.UserProject(s.userProject)
|
||||||
}
|
}
|
||||||
if err := setEncryptionHeaders(req.Header(), encryptionKey, false); err != nil {
|
if err := setEncryptionHeaders(req.Header(), params.encryptionKey, false); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
if params.softDeleted {
|
||||||
|
req.SoftDeleted(params.softDeleted)
|
||||||
|
}
|
||||||
|
|
||||||
var obj *raw.Object
|
var obj *raw.Object
|
||||||
var err error
|
var err error
|
||||||
err = run(ctx, func(ctx context.Context) error {
|
err = run(ctx, func(ctx context.Context) error {
|
||||||
|
@ -547,6 +554,33 @@ func (c *httpStorageClient) UpdateObject(ctx context.Context, params *updateObje
|
||||||
return newObject(obj), nil
|
return newObject(obj), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *httpStorageClient) RestoreObject(ctx context.Context, params *restoreObjectParams, opts ...storageOption) (*ObjectAttrs, error) {
|
||||||
|
s := callSettings(c.settings, opts...)
|
||||||
|
req := c.raw.Objects.Restore(params.bucket, params.object, params.gen).Context(ctx)
|
||||||
|
// Do not set the generation here since it's not an optional condition; it gets set above.
|
||||||
|
if err := applyConds("RestoreObject", defaultGen, params.conds, req); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if s.userProject != "" {
|
||||||
|
req.UserProject(s.userProject)
|
||||||
|
}
|
||||||
|
if params.copySourceACL {
|
||||||
|
req.CopySourceAcl(params.copySourceACL)
|
||||||
|
}
|
||||||
|
if err := setEncryptionHeaders(req.Header(), params.encryptionKey, false); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var obj *raw.Object
|
||||||
|
var err error
|
||||||
|
err = run(ctx, func(ctx context.Context) error { obj, err = req.Context(ctx).Do(); return err }, s.retry, s.idempotent)
|
||||||
|
var e *googleapi.Error
|
||||||
|
if ok := errors.As(err, &e); ok && e.Code == http.StatusNotFound {
|
||||||
|
return nil, ErrObjectNotExist
|
||||||
|
}
|
||||||
|
return newObject(obj), err
|
||||||
|
}
|
||||||
|
|
||||||
// Default Object ACL methods.
|
// Default Object ACL methods.
|
||||||
|
|
||||||
func (c *httpStorageClient) DeleteDefaultObjectACL(ctx context.Context, bucket string, entity ACLEntity, opts ...storageOption) error {
|
func (c *httpStorageClient) DeleteDefaultObjectACL(ctx context.Context, bucket string, entity ACLEntity, opts ...storageOption) error {
|
||||||
|
|
4
vendor/cloud.google.com/go/storage/internal/apiv2/storagepb/storage.pb.go
generated
vendored
4
vendor/cloud.google.com/go/storage/internal/apiv2/storagepb/storage.pb.go
generated
vendored
|
@ -14,8 +14,8 @@
|
||||||
|
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.32.0
|
// protoc-gen-go v1.33.0
|
||||||
// protoc v4.25.2
|
// protoc v4.25.3
|
||||||
// source: google/storage/v2/storage.proto
|
// source: google/storage/v2/storage.proto
|
||||||
|
|
||||||
package storagepb
|
package storagepb
|
||||||
|
|
2
vendor/cloud.google.com/go/storage/internal/version.go
generated
vendored
2
vendor/cloud.google.com/go/storage/internal/version.go
generated
vendored
|
@ -15,4 +15,4 @@
|
||||||
package internal
|
package internal
|
||||||
|
|
||||||
// Version is the current tagged release of the library.
|
// Version is the current tagged release of the library.
|
||||||
const Version = "1.40.0"
|
const Version = "1.41.0"
|
||||||
|
|
14
vendor/cloud.google.com/go/storage/invoke.go
generated
vendored
14
vendor/cloud.google.com/go/storage/invoke.go
generated
vendored
|
@ -70,8 +70,8 @@ func run(ctx context.Context, call func(ctx context.Context) error, retry *retry
|
||||||
return internal.Retry(ctx, bo, func() (stop bool, err error) {
|
return internal.Retry(ctx, bo, func() (stop bool, err error) {
|
||||||
ctxWithHeaders := setInvocationHeaders(ctx, invocationID, attempts)
|
ctxWithHeaders := setInvocationHeaders(ctx, invocationID, attempts)
|
||||||
err = call(ctxWithHeaders)
|
err = call(ctxWithHeaders)
|
||||||
if retry.maxAttempts != nil && attempts >= *retry.maxAttempts {
|
if err != nil && retry.maxAttempts != nil && attempts >= *retry.maxAttempts {
|
||||||
return true, err
|
return true, fmt.Errorf("storage: retry failed after %v attempts; last error: %w", *retry.maxAttempts, err)
|
||||||
}
|
}
|
||||||
attempts++
|
attempts++
|
||||||
return !errorFunc(err), err
|
return !errorFunc(err), err
|
||||||
|
@ -105,18 +105,16 @@ func ShouldRetry(err error) bool {
|
||||||
if errors.Is(err, io.ErrUnexpectedEOF) {
|
if errors.Is(err, io.ErrUnexpectedEOF) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
if errors.Is(err, net.ErrClosed) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
switch e := err.(type) {
|
switch e := err.(type) {
|
||||||
case *net.OpError:
|
|
||||||
if strings.Contains(e.Error(), "use of closed network connection") {
|
|
||||||
// TODO: check against net.ErrClosed (go 1.16+) instead of string
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
case *googleapi.Error:
|
case *googleapi.Error:
|
||||||
// Retry on 408, 429, and 5xx, according to
|
// Retry on 408, 429, and 5xx, according to
|
||||||
// https://cloud.google.com/storage/docs/exponential-backoff.
|
// https://cloud.google.com/storage/docs/exponential-backoff.
|
||||||
return e.Code == 408 || e.Code == 429 || (e.Code >= 500 && e.Code < 600)
|
return e.Code == 408 || e.Code == 429 || (e.Code >= 500 && e.Code < 600)
|
||||||
case *url.Error:
|
case *net.OpError, *url.Error:
|
||||||
// Retry socket-level errors ECONNREFUSED and ECONNRESET (from syscall).
|
// Retry socket-level errors ECONNREFUSED and ECONNRESET (from syscall).
|
||||||
// Unfortunately the error type is unexported, so we resort to string
|
// Unfortunately the error type is unexported, so we resort to string
|
||||||
// matching.
|
// matching.
|
||||||
|
|
2
vendor/cloud.google.com/go/storage/notifications.go
generated
vendored
2
vendor/cloud.google.com/go/storage/notifications.go
generated
vendored
|
@ -116,7 +116,7 @@ func toProtoNotification(n *Notification) *storagepb.NotificationConfig {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var topicRE = regexp.MustCompile("^//pubsub.googleapis.com/projects/([^/]+)/topics/([^/]+)")
|
var topicRE = regexp.MustCompile(`^//pubsub\.googleapis\.com/projects/([^/]+)/topics/([^/]+)`)
|
||||||
|
|
||||||
// parseNotificationTopic extracts the project and topic IDs from from the full
|
// parseNotificationTopic extracts the project and topic IDs from from the full
|
||||||
// resource name returned by the service. If the name is malformed, it returns
|
// resource name returned by the service. If the name is malformed, it returns
|
||||||
|
|
80
vendor/cloud.google.com/go/storage/storage.go
generated
vendored
80
vendor/cloud.google.com/go/storage/storage.go
generated
vendored
|
@ -180,12 +180,12 @@ func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error
|
||||||
opts = append([]option.ClientOption{
|
opts = append([]option.ClientOption{
|
||||||
option.WithoutAuthentication(),
|
option.WithoutAuthentication(),
|
||||||
internaloption.SkipDialSettingsValidation(),
|
internaloption.SkipDialSettingsValidation(),
|
||||||
internaloption.WithDefaultEndpoint(endpoint),
|
internaloption.WithDefaultEndpointTemplate(endpoint),
|
||||||
internaloption.WithDefaultMTLSEndpoint(endpoint),
|
internaloption.WithDefaultMTLSEndpoint(endpoint),
|
||||||
}, opts...)
|
}, opts...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// htransport selects the correct endpoint among WithEndpoint (user override), WithDefaultEndpoint, and WithDefaultMTLSEndpoint.
|
// htransport selects the correct endpoint among WithEndpoint (user override), WithDefaultEndpointTemplate, and WithDefaultMTLSEndpoint.
|
||||||
hc, ep, err := htransport.NewClient(ctx, opts...)
|
hc, ep, err := htransport.NewClient(ctx, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("dialing: %w", err)
|
return nil, fmt.Errorf("dialing: %w", err)
|
||||||
|
@ -232,7 +232,6 @@ func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error
|
||||||
// You may configure the client by passing in options from the [google.golang.org/api/option]
|
// You may configure the client by passing in options from the [google.golang.org/api/option]
|
||||||
// package.
|
// package.
|
||||||
func NewGRPCClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) {
|
func NewGRPCClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) {
|
||||||
opts = append(defaultGRPCOptions(), opts...)
|
|
||||||
tc, err := newGRPCStorageClient(ctx, withClientOptions(opts...))
|
tc, err := newGRPCStorageClient(ctx, withClientOptions(opts...))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -898,6 +897,7 @@ type ObjectHandle struct {
|
||||||
readCompressed bool // Accept-Encoding: gzip
|
readCompressed bool // Accept-Encoding: gzip
|
||||||
retry *retryConfig
|
retry *retryConfig
|
||||||
overrideRetention *bool
|
overrideRetention *bool
|
||||||
|
softDeleted bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// ACL provides access to the object's access control list.
|
// ACL provides access to the object's access control list.
|
||||||
|
@ -952,7 +952,7 @@ func (o *ObjectHandle) Attrs(ctx context.Context) (attrs *ObjectAttrs, err error
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
opts := makeStorageOpts(true, o.retry, o.userProject)
|
opts := makeStorageOpts(true, o.retry, o.userProject)
|
||||||
return o.c.tc.GetObject(ctx, o.bucket, o.object, o.gen, o.encryptionKey, o.conds, opts...)
|
return o.c.tc.GetObject(ctx, &getObjectParams{o.bucket, o.object, o.gen, o.encryptionKey, o.conds, o.softDeleted}, opts...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update updates an object with the provided attributes. See
|
// Update updates an object with the provided attributes. See
|
||||||
|
@ -1057,6 +1057,50 @@ func (o *ObjectHandle) OverrideUnlockedRetention(override bool) *ObjectHandle {
|
||||||
return &o2
|
return &o2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SoftDeleted returns an object handle that can be used to get an object that
|
||||||
|
// has been soft deleted. To get a soft deleted object, the generation must be
|
||||||
|
// set on the object using ObjectHandle.Generation.
|
||||||
|
// Note that an error will be returned if a live object is queried using this.
|
||||||
|
func (o *ObjectHandle) SoftDeleted() *ObjectHandle {
|
||||||
|
o2 := *o
|
||||||
|
o2.softDeleted = true
|
||||||
|
return &o2
|
||||||
|
}
|
||||||
|
|
||||||
|
// RestoreOptions allows you to set options when restoring an object.
|
||||||
|
type RestoreOptions struct {
|
||||||
|
/// CopySourceACL indicates whether the restored object should copy the
|
||||||
|
// access controls of the source object. Only valid for buckets with
|
||||||
|
// fine-grained access. If uniform bucket-level access is enabled, setting
|
||||||
|
// CopySourceACL will cause an error.
|
||||||
|
CopySourceACL bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Restore will restore a soft-deleted object to a live object.
|
||||||
|
// Note that you must specify a generation to use this method.
|
||||||
|
func (o *ObjectHandle) Restore(ctx context.Context, opts *RestoreOptions) (*ObjectAttrs, error) {
|
||||||
|
if err := o.validate(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Since the generation is required by restore calls, we set the default to
|
||||||
|
// 0 instead of a negative value, which returns a more descriptive error.
|
||||||
|
gen := o.gen
|
||||||
|
if o.gen == defaultGen {
|
||||||
|
gen = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// Restore is always idempotent because Generation is a required param.
|
||||||
|
sOpts := makeStorageOpts(true, o.retry, o.userProject)
|
||||||
|
return o.c.tc.RestoreObject(ctx, &restoreObjectParams{
|
||||||
|
bucket: o.bucket,
|
||||||
|
object: o.object,
|
||||||
|
gen: gen,
|
||||||
|
conds: o.conds,
|
||||||
|
copySourceACL: opts.CopySourceACL,
|
||||||
|
}, sOpts...)
|
||||||
|
}
|
||||||
|
|
||||||
// NewWriter returns a storage Writer that writes to the GCS object
|
// NewWriter returns a storage Writer that writes to the GCS object
|
||||||
// associated with this ObjectHandle.
|
// associated with this ObjectHandle.
|
||||||
//
|
//
|
||||||
|
@ -1390,6 +1434,21 @@ type ObjectAttrs struct {
|
||||||
// Retention contains the retention configuration for this object.
|
// Retention contains the retention configuration for this object.
|
||||||
// ObjectRetention cannot be configured or reported through the gRPC API.
|
// ObjectRetention cannot be configured or reported through the gRPC API.
|
||||||
Retention *ObjectRetention
|
Retention *ObjectRetention
|
||||||
|
|
||||||
|
// SoftDeleteTime is the time when the object became soft-deleted.
|
||||||
|
// Soft-deleted objects are only accessible on an object handle returned by
|
||||||
|
// ObjectHandle.SoftDeleted; if ObjectHandle.SoftDeleted has not been set,
|
||||||
|
// ObjectHandle.Attrs will return ErrObjectNotExist if the object is soft-deleted.
|
||||||
|
// This field is read-only.
|
||||||
|
SoftDeleteTime time.Time
|
||||||
|
|
||||||
|
// HardDeleteTime is the time when the object will be permanently deleted.
|
||||||
|
// Only set when an object becomes soft-deleted with a soft delete policy.
|
||||||
|
// Soft-deleted objects are only accessible on an object handle returned by
|
||||||
|
// ObjectHandle.SoftDeleted; if ObjectHandle.SoftDeleted has not been set,
|
||||||
|
// ObjectHandle.Attrs will return ErrObjectNotExist if the object is soft-deleted.
|
||||||
|
// This field is read-only.
|
||||||
|
HardDeleteTime time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
// ObjectRetention contains the retention configuration for this object.
|
// ObjectRetention contains the retention configuration for this object.
|
||||||
|
@ -1494,6 +1553,8 @@ func newObject(o *raw.Object) *ObjectAttrs {
|
||||||
CustomTime: convertTime(o.CustomTime),
|
CustomTime: convertTime(o.CustomTime),
|
||||||
ComponentCount: o.ComponentCount,
|
ComponentCount: o.ComponentCount,
|
||||||
Retention: toObjectRetention(o.Retention),
|
Retention: toObjectRetention(o.Retention),
|
||||||
|
SoftDeleteTime: convertTime(o.SoftDeleteTime),
|
||||||
|
HardDeleteTime: convertTime(o.HardDeleteTime),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1529,6 +1590,8 @@ func newObjectFromProto(o *storagepb.Object) *ObjectAttrs {
|
||||||
Updated: convertProtoTime(o.GetUpdateTime()),
|
Updated: convertProtoTime(o.GetUpdateTime()),
|
||||||
CustomTime: convertProtoTime(o.GetCustomTime()),
|
CustomTime: convertProtoTime(o.GetCustomTime()),
|
||||||
ComponentCount: int64(o.ComponentCount),
|
ComponentCount: int64(o.ComponentCount),
|
||||||
|
SoftDeleteTime: convertProtoTime(o.GetSoftDeleteTime()),
|
||||||
|
HardDeleteTime: convertProtoTime(o.GetHardDeleteTime()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1637,6 +1700,11 @@ type Query struct {
|
||||||
// prefixes returned by the query. Only applicable if Delimiter is set to /.
|
// prefixes returned by the query. Only applicable if Delimiter is set to /.
|
||||||
// IncludeFoldersAsPrefixes is not yet implemented in the gRPC API.
|
// IncludeFoldersAsPrefixes is not yet implemented in the gRPC API.
|
||||||
IncludeFoldersAsPrefixes bool
|
IncludeFoldersAsPrefixes bool
|
||||||
|
|
||||||
|
// SoftDeleted indicates whether to list soft-deleted objects.
|
||||||
|
// If true, only objects that have been soft-deleted will be listed.
|
||||||
|
// By default, soft-deleted objects are not listed.
|
||||||
|
SoftDeleted bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// attrToFieldMap maps the field names of ObjectAttrs to the underlying field
|
// attrToFieldMap maps the field names of ObjectAttrs to the underlying field
|
||||||
|
@ -1672,6 +1740,8 @@ var attrToFieldMap = map[string]string{
|
||||||
"CustomTime": "customTime",
|
"CustomTime": "customTime",
|
||||||
"ComponentCount": "componentCount",
|
"ComponentCount": "componentCount",
|
||||||
"Retention": "retention",
|
"Retention": "retention",
|
||||||
|
"HardDeleteTime": "hardDeleteTime",
|
||||||
|
"SoftDeleteTime": "softDeleteTime",
|
||||||
}
|
}
|
||||||
|
|
||||||
// attrToProtoFieldMap maps the field names of ObjectAttrs to the underlying field
|
// attrToProtoFieldMap maps the field names of ObjectAttrs to the underlying field
|
||||||
|
@ -1704,6 +1774,8 @@ var attrToProtoFieldMap = map[string]string{
|
||||||
"CustomerKeySHA256": "customer_encryption",
|
"CustomerKeySHA256": "customer_encryption",
|
||||||
"CustomTime": "custom_time",
|
"CustomTime": "custom_time",
|
||||||
"ComponentCount": "component_count",
|
"ComponentCount": "component_count",
|
||||||
|
"HardDeleteTime": "hard_delete_time",
|
||||||
|
"SoftDeleteTime": "soft_delete_time",
|
||||||
// MediaLink was explicitly excluded from the proto as it is an HTTP-ism.
|
// MediaLink was explicitly excluded from the proto as it is an HTTP-ism.
|
||||||
// "MediaLink": "mediaLink",
|
// "MediaLink": "mediaLink",
|
||||||
// TODO: add object retention - b/308194853
|
// TODO: add object retention - b/308194853
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package aws
|
package aws
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.26.1"
|
const goModuleVersion = "1.27.0"
|
||||||
|
|
5
vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/private/metrics/metrics.go
generated
vendored
5
vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/private/metrics/metrics.go
generated
vendored
|
@ -112,6 +112,8 @@ type MetricData struct {
|
||||||
ResolveEndpointStartTime time.Time
|
ResolveEndpointStartTime time.Time
|
||||||
ResolveEndpointEndTime time.Time
|
ResolveEndpointEndTime time.Time
|
||||||
EndpointResolutionDuration time.Duration
|
EndpointResolutionDuration time.Duration
|
||||||
|
GetIdentityStartTime time.Time
|
||||||
|
GetIdentityEndTime time.Time
|
||||||
InThroughput float64
|
InThroughput float64
|
||||||
OutThroughput float64
|
OutThroughput float64
|
||||||
RetryCount int
|
RetryCount int
|
||||||
|
@ -122,6 +124,7 @@ type MetricData struct {
|
||||||
OperationName string
|
OperationName string
|
||||||
PartitionID string
|
PartitionID string
|
||||||
Region string
|
Region string
|
||||||
|
UserAgent string
|
||||||
RequestContentLength int64
|
RequestContentLength int64
|
||||||
Stream StreamMetrics
|
Stream StreamMetrics
|
||||||
Attempts []AttemptMetrics
|
Attempts []AttemptMetrics
|
||||||
|
@ -144,8 +147,6 @@ type AttemptMetrics struct {
|
||||||
ConnRequestedTime time.Time
|
ConnRequestedTime time.Time
|
||||||
ConnObtainedTime time.Time
|
ConnObtainedTime time.Time
|
||||||
ConcurrencyAcquireDuration time.Duration
|
ConcurrencyAcquireDuration time.Duration
|
||||||
CredentialFetchStartTime time.Time
|
|
||||||
CredentialFetchEndTime time.Time
|
|
||||||
SignStartTime time.Time
|
SignStartTime time.Time
|
||||||
SignEndTime time.Time
|
SignEndTime time.Time
|
||||||
SigningDuration time.Duration
|
SigningDuration time.Duration
|
||||||
|
|
29
vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/middleware.go
generated
vendored
29
vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/middleware.go
generated
vendored
|
@ -11,7 +11,6 @@ import (
|
||||||
|
|
||||||
"github.com/aws/aws-sdk-go-v2/aws"
|
"github.com/aws/aws-sdk-go-v2/aws"
|
||||||
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
|
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
|
||||||
"github.com/aws/aws-sdk-go-v2/aws/middleware/private/metrics"
|
|
||||||
v4Internal "github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4"
|
v4Internal "github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4"
|
||||||
internalauth "github.com/aws/aws-sdk-go-v2/internal/auth"
|
internalauth "github.com/aws/aws-sdk-go-v2/internal/auth"
|
||||||
"github.com/aws/aws-sdk-go-v2/internal/sdk"
|
"github.com/aws/aws-sdk-go-v2/internal/sdk"
|
||||||
|
@ -301,22 +300,7 @@ func (s *SignHTTPRequestMiddleware) HandleFinalize(ctx context.Context, in middl
|
||||||
return out, metadata, &SigningError{Err: fmt.Errorf("computed payload hash missing from context")}
|
return out, metadata, &SigningError{Err: fmt.Errorf("computed payload hash missing from context")}
|
||||||
}
|
}
|
||||||
|
|
||||||
mctx := metrics.Context(ctx)
|
|
||||||
|
|
||||||
if mctx != nil {
|
|
||||||
if attempt, err := mctx.Data().LatestAttempt(); err == nil {
|
|
||||||
attempt.CredentialFetchStartTime = sdk.NowTime()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
credentials, err := s.credentialsProvider.Retrieve(ctx)
|
credentials, err := s.credentialsProvider.Retrieve(ctx)
|
||||||
|
|
||||||
if mctx != nil {
|
|
||||||
if attempt, err := mctx.Data().LatestAttempt(); err == nil {
|
|
||||||
attempt.CredentialFetchEndTime = sdk.NowTime()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return out, metadata, &SigningError{Err: fmt.Errorf("failed to retrieve credentials: %w", err)}
|
return out, metadata, &SigningError{Err: fmt.Errorf("failed to retrieve credentials: %w", err)}
|
||||||
}
|
}
|
||||||
|
@ -337,20 +321,7 @@ func (s *SignHTTPRequestMiddleware) HandleFinalize(ctx context.Context, in middl
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if mctx != nil {
|
|
||||||
if attempt, err := mctx.Data().LatestAttempt(); err == nil {
|
|
||||||
attempt.SignStartTime = sdk.NowTime()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
err = s.signer.SignHTTP(ctx, credentials, req.Request, payloadHash, signingName, signingRegion, sdk.NowTime(), signerOptions...)
|
err = s.signer.SignHTTP(ctx, credentials, req.Request, payloadHash, signingName, signingRegion, sdk.NowTime(), signerOptions...)
|
||||||
|
|
||||||
if mctx != nil {
|
|
||||||
if attempt, err := mctx.Data().LatestAttempt(); err == nil {
|
|
||||||
attempt.SignEndTime = sdk.NowTime()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return out, metadata, &SigningError{Err: fmt.Errorf("failed to sign http request, %w", err)}
|
return out, metadata, &SigningError{Err: fmt.Errorf("failed to sign http request, %w", err)}
|
||||||
}
|
}
|
||||||
|
|
55
vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/v4.go
generated
vendored
55
vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/v4.go
generated
vendored
|
@ -1,48 +1,41 @@
|
||||||
// Package v4 implements signing for AWS V4 signer
|
// Package v4 implements the AWS signature version 4 algorithm (commonly known
|
||||||
|
// as SigV4).
|
||||||
//
|
//
|
||||||
// Provides request signing for request that need to be signed with
|
// For more information about SigV4, see [Signing AWS API requests] in the IAM
|
||||||
// AWS V4 Signatures.
|
// user guide.
|
||||||
//
|
//
|
||||||
// # Standalone Signer
|
// While this implementation CAN work in an external context, it is developed
|
||||||
|
// primarily for SDK use and you may encounter fringe behaviors around header
|
||||||
|
// canonicalization.
|
||||||
//
|
//
|
||||||
// Generally using the signer outside of the SDK should not require any additional
|
// # Pre-escaping a request URI
|
||||||
//
|
//
|
||||||
// The signer does this by taking advantage of the URL.EscapedPath method. If your request URI requires
|
// AWS v4 signature validation requires that the canonical string's URI path
|
||||||
|
// component must be the escaped form of the HTTP request's path.
|
||||||
//
|
//
|
||||||
// additional escaping you many need to use the URL.Opaque to define what the raw URI should be sent
|
// The Go HTTP client will perform escaping automatically on the HTTP request.
|
||||||
// to the service as.
|
// This may cause signature validation errors because the request differs from
|
||||||
|
// the URI path or query from which the signature was generated.
|
||||||
//
|
//
|
||||||
// The signer will first check the URL.Opaque field, and use its value if set.
|
// Because of this, we recommend that you explicitly escape the request when
|
||||||
// The signer does require the URL.Opaque field to be set in the form of:
|
// using this signer outside of the SDK to prevent possible signature mismatch.
|
||||||
|
// This can be done by setting URL.Opaque on the request. The signer will
|
||||||
|
// prefer that value, falling back to the return of URL.EscapedPath if unset.
|
||||||
|
//
|
||||||
|
// When setting URL.Opaque you must do so in the form of:
|
||||||
//
|
//
|
||||||
// "//<hostname>/<path>"
|
// "//<hostname>/<path>"
|
||||||
//
|
//
|
||||||
// // e.g.
|
// // e.g.
|
||||||
// "//example.com/some/path"
|
// "//example.com/some/path"
|
||||||
//
|
//
|
||||||
// The leading "//" and hostname are required or the URL.Opaque escaping will
|
// The leading "//" and hostname are required or the escaping will not work
|
||||||
// not work correctly.
|
// correctly.
|
||||||
//
|
//
|
||||||
// If URL.Opaque is not set the signer will fallback to the URL.EscapedPath()
|
// The TestStandaloneSign unit test provides a complete example of using the
|
||||||
// method and using the returned value.
|
// signer outside of the SDK and pre-escaping the URI path.
|
||||||
//
|
//
|
||||||
// AWS v4 signature validation requires that the canonical string's URI path
|
// [Signing AWS API requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html
|
||||||
// element must be the URI escaped form of the HTTP request's path.
|
|
||||||
// http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html
|
|
||||||
//
|
|
||||||
// The Go HTTP client will perform escaping automatically on the request. Some
|
|
||||||
// of these escaping may cause signature validation errors because the HTTP
|
|
||||||
// request differs from the URI path or query that the signature was generated.
|
|
||||||
// https://golang.org/pkg/net/url/#URL.EscapedPath
|
|
||||||
//
|
|
||||||
// Because of this, it is recommended that when using the signer outside of the
|
|
||||||
// SDK that explicitly escaping the request prior to being signed is preferable,
|
|
||||||
// and will help prevent signature validation errors. This can be done by setting
|
|
||||||
// the URL.Opaque or URL.RawPath. The SDK will use URL.Opaque first and then
|
|
||||||
// call URL.EscapedPath() if Opaque is not set.
|
|
||||||
//
|
|
||||||
// Test `TestStandaloneSign` provides a complete example of using the signer
|
|
||||||
// outside of the SDK and pre-escaping the URI path.
|
|
||||||
package v4
|
package v4
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
|
8
vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md
generated
vendored
8
vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,11 @@
|
||||||
|
# v1.27.15 (2024-05-16)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.27.14 (2024-05-15)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.27.13 (2024-05-10)
|
# v1.27.13 (2024-05-10)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package config
|
package config
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.27.13"
|
const goModuleVersion = "1.27.15"
|
||||||
|
|
8
vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md
generated
vendored
8
vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,11 @@
|
||||||
|
# v1.17.15 (2024-05-16)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.17.14 (2024-05-15)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.17.13 (2024-05-10)
|
# v1.17.13 (2024-05-10)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package credentials
|
package credentials
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.17.13"
|
const goModuleVersion = "1.17.15"
|
||||||
|
|
8
vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md
generated
vendored
8
vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,11 @@
|
||||||
|
# v1.16.3 (2024-05-16)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.16.2 (2024-05-15)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.16.1 (2024-03-29)
|
# v1.16.1 (2024-03-29)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package imds
|
package imds
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.16.1"
|
const goModuleVersion = "1.16.3"
|
||||||
|
|
12
vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/CHANGELOG.md
generated
vendored
12
vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,15 @@
|
||||||
|
# v1.16.20 (2024-05-16)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.16.19 (2024-05-15)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.16.18 (2024-05-14)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.16.17 (2024-05-10)
|
# v1.16.17 (2024-05-10)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package manager
|
package manager
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.16.17"
|
const goModuleVersion = "1.16.20"
|
||||||
|
|
8
vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md
generated
vendored
8
vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,11 @@
|
||||||
|
# v1.3.7 (2024-05-16)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.3.6 (2024-05-15)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.3.5 (2024-03-29)
|
# v1.3.5 (2024-03-29)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package configsources
|
package configsources
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.3.5"
|
const goModuleVersion = "1.3.7"
|
||||||
|
|
8
vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md
generated
vendored
8
vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,11 @@
|
||||||
|
# v2.6.7 (2024-05-16)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v2.6.6 (2024-05-15)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v2.6.5 (2024-03-29)
|
# v2.6.5 (2024-03-29)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package endpoints
|
package endpoints
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "2.6.5"
|
const goModuleVersion = "2.6.7"
|
||||||
|
|
8
vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/CHANGELOG.md
generated
vendored
8
vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,11 @@
|
||||||
|
# v1.3.7 (2024-05-16)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.3.6 (2024-05-15)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.3.5 (2024-03-29)
|
# v1.3.5 (2024-03-29)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package v4a
|
package v4a
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.3.5"
|
const goModuleVersion = "1.3.7"
|
||||||
|
|
8
vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/CHANGELOG.md
generated
vendored
8
vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,11 @@
|
||||||
|
# v1.3.9 (2024-05-16)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.3.8 (2024-05-15)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.3.7 (2024-03-29)
|
# v1.3.7 (2024-03-29)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package checksum
|
package checksum
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.3.7"
|
const goModuleVersion = "1.3.9"
|
||||||
|
|
8
vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md
generated
vendored
8
vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,11 @@
|
||||||
|
# v1.11.9 (2024-05-16)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.11.8 (2024-05-15)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.11.7 (2024-03-29)
|
# v1.11.7 (2024-03-29)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
|
@ -3,4 +3,4 @@
|
||||||
package presignedurl
|
package presignedurl
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.11.7"
|
const goModuleVersion = "1.11.9"
|
||||||
|
|
8
vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/CHANGELOG.md
generated
vendored
8
vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,11 @@
|
||||||
|
# v1.17.7 (2024-05-16)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.17.6 (2024-05-15)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.17.5 (2024-03-29)
|
# v1.17.5 (2024-03-29)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package s3shared
|
package s3shared
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.17.5"
|
const goModuleVersion = "1.17.7"
|
||||||
|
|
12
vendor/github.com/aws/aws-sdk-go-v2/service/s3/CHANGELOG.md
generated
vendored
12
vendor/github.com/aws/aws-sdk-go-v2/service/s3/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,15 @@
|
||||||
|
# v1.54.2 (2024-05-16)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.54.1 (2024-05-15)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.54.0 (2024-05-14)
|
||||||
|
|
||||||
|
* **Feature**: Updated a few x-id in the http uri traits
|
||||||
|
|
||||||
# v1.53.2 (2024-05-08)
|
# v1.53.2 (2024-05-08)
|
||||||
|
|
||||||
* **Bug Fix**: GoDoc improvement
|
* **Bug Fix**: GoDoc improvement
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/service/s3/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/service/s3/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package s3
|
package s3
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.53.2"
|
const goModuleVersion = "1.54.2"
|
||||||
|
|
12
vendor/github.com/aws/aws-sdk-go-v2/service/s3/serializers.go
generated
vendored
12
vendor/github.com/aws/aws-sdk-go-v2/service/s3/serializers.go
generated
vendored
|
@ -118,7 +118,7 @@ func (m *awsRestxml_serializeOpCompleteMultipartUpload) HandleSerialize(ctx cont
|
||||||
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
|
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
|
||||||
}
|
}
|
||||||
|
|
||||||
opPath, opQuery := httpbinding.SplitURI("/{Key+}?x-id=CompleteMultipartUpload")
|
opPath, opQuery := httpbinding.SplitURI("/{Key+}")
|
||||||
request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
|
request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
|
||||||
request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
|
request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
|
||||||
request.Method = "POST"
|
request.Method = "POST"
|
||||||
|
@ -640,7 +640,7 @@ func (m *awsRestxml_serializeOpCreateMultipartUpload) HandleSerialize(ctx contex
|
||||||
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
|
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
|
||||||
}
|
}
|
||||||
|
|
||||||
opPath, opQuery := httpbinding.SplitURI("/{Key+}?uploads&x-id=CreateMultipartUpload")
|
opPath, opQuery := httpbinding.SplitURI("/{Key+}?uploads")
|
||||||
request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
|
request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
|
||||||
request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
|
request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
|
||||||
request.Method = "POST"
|
request.Method = "POST"
|
||||||
|
@ -1803,7 +1803,7 @@ func (m *awsRestxml_serializeOpDeleteObjects) HandleSerialize(ctx context.Contex
|
||||||
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
|
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
|
||||||
}
|
}
|
||||||
|
|
||||||
opPath, opQuery := httpbinding.SplitURI("/?delete&x-id=DeleteObjects")
|
opPath, opQuery := httpbinding.SplitURI("/?delete")
|
||||||
request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
|
request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
|
||||||
request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
|
request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
|
||||||
request.Method = "POST"
|
request.Method = "POST"
|
||||||
|
@ -7758,7 +7758,7 @@ func (m *awsRestxml_serializeOpRestoreObject) HandleSerialize(ctx context.Contex
|
||||||
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
|
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
|
||||||
}
|
}
|
||||||
|
|
||||||
opPath, opQuery := httpbinding.SplitURI("/{Key+}?restore&x-id=RestoreObject")
|
opPath, opQuery := httpbinding.SplitURI("/{Key+}?restore")
|
||||||
request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
|
request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
|
||||||
request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
|
request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
|
||||||
request.Method = "POST"
|
request.Method = "POST"
|
||||||
|
@ -7866,7 +7866,7 @@ func (m *awsRestxml_serializeOpSelectObjectContent) HandleSerialize(ctx context.
|
||||||
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
|
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
|
||||||
}
|
}
|
||||||
|
|
||||||
opPath, opQuery := httpbinding.SplitURI("/{Key+}?select&select-type=2&x-id=SelectObjectContent")
|
opPath, opQuery := httpbinding.SplitURI("/{Key+}?select&select-type=2")
|
||||||
request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
|
request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
|
||||||
request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
|
request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
|
||||||
request.Method = "POST"
|
request.Method = "POST"
|
||||||
|
@ -8341,7 +8341,7 @@ func (m *awsRestxml_serializeOpWriteGetObjectResponse) HandleSerialize(ctx conte
|
||||||
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
|
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
|
||||||
}
|
}
|
||||||
|
|
||||||
opPath, opQuery := httpbinding.SplitURI("/WriteGetObjectResponse?x-id=WriteGetObjectResponse")
|
opPath, opQuery := httpbinding.SplitURI("/WriteGetObjectResponse")
|
||||||
request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
|
request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
|
||||||
request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
|
request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
|
||||||
request.Method = "POST"
|
request.Method = "POST"
|
||||||
|
|
8
vendor/github.com/aws/aws-sdk-go-v2/service/sso/CHANGELOG.md
generated
vendored
8
vendor/github.com/aws/aws-sdk-go-v2/service/sso/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,11 @@
|
||||||
|
# v1.20.8 (2024-05-16)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.20.7 (2024-05-15)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.20.6 (2024-05-08)
|
# v1.20.6 (2024-05-08)
|
||||||
|
|
||||||
* **Bug Fix**: GoDoc improvement
|
* **Bug Fix**: GoDoc improvement
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/service/sso/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/service/sso/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package sso
|
package sso
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.20.6"
|
const goModuleVersion = "1.20.8"
|
||||||
|
|
8
vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/CHANGELOG.md
generated
vendored
8
vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,11 @@
|
||||||
|
# v1.24.2 (2024-05-16)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.24.1 (2024-05-15)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.24.0 (2024-05-10)
|
# v1.24.0 (2024-05-10)
|
||||||
|
|
||||||
* **Feature**: Updated request parameters for PKCE support.
|
* **Feature**: Updated request parameters for PKCE support.
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package ssooidc
|
package ssooidc
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.24.0"
|
const goModuleVersion = "1.24.2"
|
||||||
|
|
8
vendor/github.com/aws/aws-sdk-go-v2/service/sts/CHANGELOG.md
generated
vendored
8
vendor/github.com/aws/aws-sdk-go-v2/service/sts/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,11 @@
|
||||||
|
# v1.28.9 (2024-05-16)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.28.8 (2024-05-15)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.28.7 (2024-05-08)
|
# v1.28.7 (2024-05-08)
|
||||||
|
|
||||||
* **Bug Fix**: GoDoc improvement
|
* **Bug Fix**: GoDoc improvement
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/service/sts/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/service/sts/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package sts
|
package sts
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.28.7"
|
const goModuleVersion = "1.28.9"
|
||||||
|
|
76
vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
generated
vendored
76
vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
generated
vendored
|
@ -822,6 +822,12 @@ var awsPartition = partition{
|
||||||
},
|
},
|
||||||
"airflow": service{
|
"airflow": service{
|
||||||
Endpoints: serviceEndpoints{
|
Endpoints: serviceEndpoints{
|
||||||
|
endpointKey{
|
||||||
|
Region: "af-south-1",
|
||||||
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ap-east-1",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "ap-northeast-1",
|
Region: "ap-northeast-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -846,6 +852,9 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-north-1",
|
Region: "eu-north-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "eu-south-1",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-west-1",
|
Region: "eu-west-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -855,6 +864,9 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-west-3",
|
Region: "eu-west-3",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "me-south-1",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "sa-east-1",
|
Region: "sa-east-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -864,6 +876,9 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "us-east-2",
|
Region: "us-east-2",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "us-west-1",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "us-west-2",
|
Region: "us-west-2",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -1060,6 +1075,9 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "ap-northeast-1",
|
Region: "ap-northeast-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ap-south-1",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "ap-southeast-1",
|
Region: "ap-southeast-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -1072,6 +1090,9 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-west-1",
|
Region: "eu-west-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "eu-west-2",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-west-3",
|
Region: "eu-west-3",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -27235,6 +27256,55 @@ var awsPartition = partition{
|
||||||
},
|
},
|
||||||
Deprecated: boxedTrue,
|
Deprecated: boxedTrue,
|
||||||
},
|
},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ca-west-1",
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "s3-control.ca-west-1.amazonaws.com",
|
||||||
|
SignatureVersions: []string{"s3v4"},
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "ca-west-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ca-west-1",
|
||||||
|
Variant: dualStackVariant,
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "s3-control.dualstack.ca-west-1.amazonaws.com",
|
||||||
|
SignatureVersions: []string{"s3v4"},
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "ca-west-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ca-west-1",
|
||||||
|
Variant: fipsVariant,
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "s3-control-fips.ca-west-1.amazonaws.com",
|
||||||
|
SignatureVersions: []string{"s3v4"},
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "ca-west-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ca-west-1",
|
||||||
|
Variant: fipsVariant | dualStackVariant,
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "s3-control-fips.dualstack.ca-west-1.amazonaws.com",
|
||||||
|
SignatureVersions: []string{"s3v4"},
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "ca-west-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ca-west-1-fips",
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "s3-control-fips.ca-west-1.amazonaws.com",
|
||||||
|
SignatureVersions: []string{"s3v4"},
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "ca-west-1",
|
||||||
|
},
|
||||||
|
Deprecated: boxedTrue,
|
||||||
|
},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-central-1",
|
Region: "eu-central-1",
|
||||||
}: endpoint{
|
}: endpoint{
|
||||||
|
@ -33681,6 +33751,12 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "ap-northeast-1",
|
Region: "ap-northeast-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ap-northeast-2",
|
||||||
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ap-south-1",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "ap-southeast-1",
|
Region: "ap-southeast-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go/aws/version.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go/aws/version.go
generated
vendored
|
@ -5,4 +5,4 @@ package aws
|
||||||
const SDKName = "aws-sdk-go"
|
const SDKName = "aws-sdk-go"
|
||||||
|
|
||||||
// SDKVersion is the version of this SDK
|
// SDKVersion is the version of this SDK
|
||||||
const SDKVersion = "1.53.0"
|
const SDKVersion = "1.53.8"
|
||||||
|
|
4
vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/queryutil.go
generated
vendored
4
vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/queryutil.go
generated
vendored
|
@ -122,8 +122,8 @@ func (q *queryParser) parseStruct(v url.Values, value reflect.Value, prefix stri
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queryParser) parseList(v url.Values, value reflect.Value, prefix string, tag reflect.StructTag) error {
|
func (q *queryParser) parseList(v url.Values, value reflect.Value, prefix string, tag reflect.StructTag) error {
|
||||||
// If it's empty, generate an empty value
|
// If it's empty, and not ec2, generate an empty value
|
||||||
if !value.IsNil() && value.Len() == 0 {
|
if !value.IsNil() && value.Len() == 0 && !q.isEC2 {
|
||||||
v.Set(prefix, "")
|
v.Set(prefix, "")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
13
vendor/github.com/fatih/color/color.go
generated
vendored
13
vendor/github.com/fatih/color/color.go
generated
vendored
|
@ -269,7 +269,7 @@ func (c *Color) Printf(format string, a ...interface{}) (n int, err error) {
|
||||||
// On Windows, users should wrap w with colorable.NewColorable() if w is of
|
// On Windows, users should wrap w with colorable.NewColorable() if w is of
|
||||||
// type *os.File.
|
// type *os.File.
|
||||||
func (c *Color) Fprintln(w io.Writer, a ...interface{}) (n int, err error) {
|
func (c *Color) Fprintln(w io.Writer, a ...interface{}) (n int, err error) {
|
||||||
return fmt.Fprintln(w, c.wrap(fmt.Sprint(a...)))
|
return fmt.Fprintln(w, c.wrap(sprintln(a...)))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Println formats using the default formats for its operands and writes to
|
// Println formats using the default formats for its operands and writes to
|
||||||
|
@ -278,7 +278,7 @@ func (c *Color) Fprintln(w io.Writer, a ...interface{}) (n int, err error) {
|
||||||
// encountered. This is the standard fmt.Print() method wrapped with the given
|
// encountered. This is the standard fmt.Print() method wrapped with the given
|
||||||
// color.
|
// color.
|
||||||
func (c *Color) Println(a ...interface{}) (n int, err error) {
|
func (c *Color) Println(a ...interface{}) (n int, err error) {
|
||||||
return fmt.Fprintln(Output, c.wrap(fmt.Sprint(a...)))
|
return fmt.Fprintln(Output, c.wrap(sprintln(a...)))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sprint is just like Print, but returns a string instead of printing it.
|
// Sprint is just like Print, but returns a string instead of printing it.
|
||||||
|
@ -288,7 +288,7 @@ func (c *Color) Sprint(a ...interface{}) string {
|
||||||
|
|
||||||
// Sprintln is just like Println, but returns a string instead of printing it.
|
// Sprintln is just like Println, but returns a string instead of printing it.
|
||||||
func (c *Color) Sprintln(a ...interface{}) string {
|
func (c *Color) Sprintln(a ...interface{}) string {
|
||||||
return fmt.Sprintln(c.Sprint(a...))
|
return c.wrap(sprintln(a...)) + "\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sprintf is just like Printf, but returns a string instead of printing it.
|
// Sprintf is just like Printf, but returns a string instead of printing it.
|
||||||
|
@ -370,7 +370,7 @@ func (c *Color) SprintfFunc() func(format string, a ...interface{}) string {
|
||||||
// string. Windows users should use this in conjunction with color.Output.
|
// string. Windows users should use this in conjunction with color.Output.
|
||||||
func (c *Color) SprintlnFunc() func(a ...interface{}) string {
|
func (c *Color) SprintlnFunc() func(a ...interface{}) string {
|
||||||
return func(a ...interface{}) string {
|
return func(a ...interface{}) string {
|
||||||
return fmt.Sprintln(c.Sprint(a...))
|
return c.wrap(sprintln(a...)) + "\n"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -648,3 +648,8 @@ func HiCyanString(format string, a ...interface{}) string { return colorString(f
|
||||||
func HiWhiteString(format string, a ...interface{}) string {
|
func HiWhiteString(format string, a ...interface{}) string {
|
||||||
return colorString(format, FgHiWhite, a...)
|
return colorString(format, FgHiWhite, a...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// sprintln is a helper function to format a string with fmt.Sprintln and trim the trailing newline.
|
||||||
|
func sprintln(a ...interface{}) string {
|
||||||
|
return strings.TrimSuffix(fmt.Sprintln(a...), "\n")
|
||||||
|
}
|
||||||
|
|
1
vendor/github.com/go-logr/logr/README.md
generated
vendored
1
vendor/github.com/go-logr/logr/README.md
generated
vendored
|
@ -1,6 +1,7 @@
|
||||||
# A minimal logging API for Go
|
# A minimal logging API for Go
|
||||||
|
|
||||||
[![Go Reference](https://pkg.go.dev/badge/github.com/go-logr/logr.svg)](https://pkg.go.dev/github.com/go-logr/logr)
|
[![Go Reference](https://pkg.go.dev/badge/github.com/go-logr/logr.svg)](https://pkg.go.dev/github.com/go-logr/logr)
|
||||||
|
[![Go Report Card](https://goreportcard.com/badge/github.com/go-logr/logr)](https://goreportcard.com/report/github.com/go-logr/logr)
|
||||||
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/go-logr/logr/badge)](https://securityscorecards.dev/viewer/?platform=github.com&org=go-logr&repo=logr)
|
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/go-logr/logr/badge)](https://securityscorecards.dev/viewer/?platform=github.com&org=go-logr&repo=logr)
|
||||||
|
|
||||||
logr offers an(other) opinion on how Go programs and libraries can do logging
|
logr offers an(other) opinion on how Go programs and libraries can do logging
|
||||||
|
|
185
vendor/github.com/go-logr/logr/funcr/funcr.go
generated
vendored
185
vendor/github.com/go-logr/logr/funcr/funcr.go
generated
vendored
|
@ -236,15 +236,14 @@ func newFormatter(opts Options, outfmt outputFormat) Formatter {
|
||||||
// implementation. It should be constructed with NewFormatter. Some of
|
// implementation. It should be constructed with NewFormatter. Some of
|
||||||
// its methods directly implement logr.LogSink.
|
// its methods directly implement logr.LogSink.
|
||||||
type Formatter struct {
|
type Formatter struct {
|
||||||
outputFormat outputFormat
|
outputFormat outputFormat
|
||||||
prefix string
|
prefix string
|
||||||
values []any
|
values []any
|
||||||
valuesStr string
|
valuesStr string
|
||||||
parentValuesStr string
|
depth int
|
||||||
depth int
|
opts *Options
|
||||||
opts *Options
|
groupName string // for slog groups
|
||||||
group string // for slog groups
|
groups []groupDef
|
||||||
groupDepth int
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// outputFormat indicates which outputFormat to use.
|
// outputFormat indicates which outputFormat to use.
|
||||||
|
@ -257,6 +256,13 @@ const (
|
||||||
outputJSON
|
outputJSON
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// groupDef represents a saved group. The values may be empty, but we don't
|
||||||
|
// know if we need to render the group until the final record is rendered.
|
||||||
|
type groupDef struct {
|
||||||
|
name string
|
||||||
|
values string
|
||||||
|
}
|
||||||
|
|
||||||
// PseudoStruct is a list of key-value pairs that gets logged as a struct.
|
// PseudoStruct is a list of key-value pairs that gets logged as a struct.
|
||||||
type PseudoStruct []any
|
type PseudoStruct []any
|
||||||
|
|
||||||
|
@ -264,76 +270,102 @@ type PseudoStruct []any
|
||||||
func (f Formatter) render(builtins, args []any) string {
|
func (f Formatter) render(builtins, args []any) string {
|
||||||
// Empirically bytes.Buffer is faster than strings.Builder for this.
|
// Empirically bytes.Buffer is faster than strings.Builder for this.
|
||||||
buf := bytes.NewBuffer(make([]byte, 0, 1024))
|
buf := bytes.NewBuffer(make([]byte, 0, 1024))
|
||||||
|
|
||||||
if f.outputFormat == outputJSON {
|
if f.outputFormat == outputJSON {
|
||||||
buf.WriteByte('{') // for the whole line
|
buf.WriteByte('{') // for the whole record
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Render builtins
|
||||||
vals := builtins
|
vals := builtins
|
||||||
if hook := f.opts.RenderBuiltinsHook; hook != nil {
|
if hook := f.opts.RenderBuiltinsHook; hook != nil {
|
||||||
vals = hook(f.sanitize(vals))
|
vals = hook(f.sanitize(vals))
|
||||||
}
|
}
|
||||||
f.flatten(buf, vals, false, false) // keys are ours, no need to escape
|
f.flatten(buf, vals, false) // keys are ours, no need to escape
|
||||||
continuing := len(builtins) > 0
|
continuing := len(builtins) > 0
|
||||||
|
|
||||||
if f.parentValuesStr != "" {
|
// Turn the inner-most group into a string
|
||||||
|
argsStr := func() string {
|
||||||
|
buf := bytes.NewBuffer(make([]byte, 0, 1024))
|
||||||
|
|
||||||
|
vals = args
|
||||||
|
if hook := f.opts.RenderArgsHook; hook != nil {
|
||||||
|
vals = hook(f.sanitize(vals))
|
||||||
|
}
|
||||||
|
f.flatten(buf, vals, true) // escape user-provided keys
|
||||||
|
|
||||||
|
return buf.String()
|
||||||
|
}()
|
||||||
|
|
||||||
|
// Render the stack of groups from the inside out.
|
||||||
|
bodyStr := f.renderGroup(f.groupName, f.valuesStr, argsStr)
|
||||||
|
for i := len(f.groups) - 1; i >= 0; i-- {
|
||||||
|
grp := &f.groups[i]
|
||||||
|
if grp.values == "" && bodyStr == "" {
|
||||||
|
// no contents, so we must elide the whole group
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
bodyStr = f.renderGroup(grp.name, grp.values, bodyStr)
|
||||||
|
}
|
||||||
|
|
||||||
|
if bodyStr != "" {
|
||||||
if continuing {
|
if continuing {
|
||||||
buf.WriteByte(f.comma())
|
buf.WriteByte(f.comma())
|
||||||
}
|
}
|
||||||
buf.WriteString(f.parentValuesStr)
|
buf.WriteString(bodyStr)
|
||||||
continuing = true
|
|
||||||
}
|
|
||||||
|
|
||||||
groupDepth := f.groupDepth
|
|
||||||
if f.group != "" {
|
|
||||||
if f.valuesStr != "" || len(args) != 0 {
|
|
||||||
if continuing {
|
|
||||||
buf.WriteByte(f.comma())
|
|
||||||
}
|
|
||||||
buf.WriteString(f.quoted(f.group, true)) // escape user-provided keys
|
|
||||||
buf.WriteByte(f.colon())
|
|
||||||
buf.WriteByte('{') // for the group
|
|
||||||
continuing = false
|
|
||||||
} else {
|
|
||||||
// The group was empty
|
|
||||||
groupDepth--
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if f.valuesStr != "" {
|
|
||||||
if continuing {
|
|
||||||
buf.WriteByte(f.comma())
|
|
||||||
}
|
|
||||||
buf.WriteString(f.valuesStr)
|
|
||||||
continuing = true
|
|
||||||
}
|
|
||||||
|
|
||||||
vals = args
|
|
||||||
if hook := f.opts.RenderArgsHook; hook != nil {
|
|
||||||
vals = hook(f.sanitize(vals))
|
|
||||||
}
|
|
||||||
f.flatten(buf, vals, continuing, true) // escape user-provided keys
|
|
||||||
|
|
||||||
for i := 0; i < groupDepth; i++ {
|
|
||||||
buf.WriteByte('}') // for the groups
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if f.outputFormat == outputJSON {
|
if f.outputFormat == outputJSON {
|
||||||
buf.WriteByte('}') // for the whole line
|
buf.WriteByte('}') // for the whole record
|
||||||
}
|
}
|
||||||
|
|
||||||
return buf.String()
|
return buf.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
// flatten renders a list of key-value pairs into a buffer. If continuing is
|
// renderGroup returns a string representation of the named group with rendered
|
||||||
// true, it assumes that the buffer has previous values and will emit a
|
// values and args. If the name is empty, this will return the values and args,
|
||||||
// separator (which depends on the output format) before the first pair it
|
// joined. If the name is not empty, this will return a single key-value pair,
|
||||||
// writes. If escapeKeys is true, the keys are assumed to have
|
// where the value is a grouping of the values and args. If the values and
|
||||||
// non-JSON-compatible characters in them and must be evaluated for escapes.
|
// args are both empty, this will return an empty string, even if the name was
|
||||||
|
// specified.
|
||||||
|
func (f Formatter) renderGroup(name string, values string, args string) string {
|
||||||
|
buf := bytes.NewBuffer(make([]byte, 0, 1024))
|
||||||
|
|
||||||
|
needClosingBrace := false
|
||||||
|
if name != "" && (values != "" || args != "") {
|
||||||
|
buf.WriteString(f.quoted(name, true)) // escape user-provided keys
|
||||||
|
buf.WriteByte(f.colon())
|
||||||
|
buf.WriteByte('{')
|
||||||
|
needClosingBrace = true
|
||||||
|
}
|
||||||
|
|
||||||
|
continuing := false
|
||||||
|
if values != "" {
|
||||||
|
buf.WriteString(values)
|
||||||
|
continuing = true
|
||||||
|
}
|
||||||
|
|
||||||
|
if args != "" {
|
||||||
|
if continuing {
|
||||||
|
buf.WriteByte(f.comma())
|
||||||
|
}
|
||||||
|
buf.WriteString(args)
|
||||||
|
}
|
||||||
|
|
||||||
|
if needClosingBrace {
|
||||||
|
buf.WriteByte('}')
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf.String()
|
||||||
|
}
|
||||||
|
|
||||||
|
// flatten renders a list of key-value pairs into a buffer. If escapeKeys is
|
||||||
|
// true, the keys are assumed to have non-JSON-compatible characters in them
|
||||||
|
// and must be evaluated for escapes.
|
||||||
//
|
//
|
||||||
// This function returns a potentially modified version of kvList, which
|
// This function returns a potentially modified version of kvList, which
|
||||||
// ensures that there is a value for every key (adding a value if needed) and
|
// ensures that there is a value for every key (adding a value if needed) and
|
||||||
// that each key is a string (substituting a key if needed).
|
// that each key is a string (substituting a key if needed).
|
||||||
func (f Formatter) flatten(buf *bytes.Buffer, kvList []any, continuing bool, escapeKeys bool) []any {
|
func (f Formatter) flatten(buf *bytes.Buffer, kvList []any, escapeKeys bool) []any {
|
||||||
// This logic overlaps with sanitize() but saves one type-cast per key,
|
// This logic overlaps with sanitize() but saves one type-cast per key,
|
||||||
// which can be measurable.
|
// which can be measurable.
|
||||||
if len(kvList)%2 != 0 {
|
if len(kvList)%2 != 0 {
|
||||||
|
@ -354,7 +386,7 @@ func (f Formatter) flatten(buf *bytes.Buffer, kvList []any, continuing bool, esc
|
||||||
}
|
}
|
||||||
v := kvList[i+1]
|
v := kvList[i+1]
|
||||||
|
|
||||||
if i > 0 || continuing {
|
if i > 0 {
|
||||||
if f.outputFormat == outputJSON {
|
if f.outputFormat == outputJSON {
|
||||||
buf.WriteByte(f.comma())
|
buf.WriteByte(f.comma())
|
||||||
} else {
|
} else {
|
||||||
|
@ -766,46 +798,17 @@ func (f Formatter) sanitize(kvList []any) []any {
|
||||||
// startGroup opens a new group scope (basically a sub-struct), which locks all
|
// startGroup opens a new group scope (basically a sub-struct), which locks all
|
||||||
// the current saved values and starts them anew. This is needed to satisfy
|
// the current saved values and starts them anew. This is needed to satisfy
|
||||||
// slog.
|
// slog.
|
||||||
func (f *Formatter) startGroup(group string) {
|
func (f *Formatter) startGroup(name string) {
|
||||||
// Unnamed groups are just inlined.
|
// Unnamed groups are just inlined.
|
||||||
if group == "" {
|
if name == "" {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// Any saved values can no longer be changed.
|
n := len(f.groups)
|
||||||
buf := bytes.NewBuffer(make([]byte, 0, 1024))
|
f.groups = append(f.groups[:n:n], groupDef{f.groupName, f.valuesStr})
|
||||||
continuing := false
|
|
||||||
|
|
||||||
if f.parentValuesStr != "" {
|
|
||||||
buf.WriteString(f.parentValuesStr)
|
|
||||||
continuing = true
|
|
||||||
}
|
|
||||||
|
|
||||||
if f.group != "" && f.valuesStr != "" {
|
|
||||||
if continuing {
|
|
||||||
buf.WriteByte(f.comma())
|
|
||||||
}
|
|
||||||
buf.WriteString(f.quoted(f.group, true)) // escape user-provided keys
|
|
||||||
buf.WriteByte(f.colon())
|
|
||||||
buf.WriteByte('{') // for the group
|
|
||||||
continuing = false
|
|
||||||
}
|
|
||||||
|
|
||||||
if f.valuesStr != "" {
|
|
||||||
if continuing {
|
|
||||||
buf.WriteByte(f.comma())
|
|
||||||
}
|
|
||||||
buf.WriteString(f.valuesStr)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NOTE: We don't close the scope here - that's done later, when a log line
|
|
||||||
// is actually rendered (because we have N scopes to close).
|
|
||||||
|
|
||||||
f.parentValuesStr = buf.String()
|
|
||||||
|
|
||||||
// Start collecting new values.
|
// Start collecting new values.
|
||||||
f.group = group
|
f.groupName = name
|
||||||
f.groupDepth++
|
|
||||||
f.valuesStr = ""
|
f.valuesStr = ""
|
||||||
f.values = nil
|
f.values = nil
|
||||||
}
|
}
|
||||||
|
@ -900,7 +903,7 @@ func (f *Formatter) AddValues(kvList []any) {
|
||||||
|
|
||||||
// Pre-render values, so we don't have to do it on each Info/Error call.
|
// Pre-render values, so we don't have to do it on each Info/Error call.
|
||||||
buf := bytes.NewBuffer(make([]byte, 0, 1024))
|
buf := bytes.NewBuffer(make([]byte, 0, 1024))
|
||||||
f.flatten(buf, vals, false, true) // escape user-provided keys
|
f.flatten(buf, vals, true) // escape user-provided keys
|
||||||
f.valuesStr = buf.String()
|
f.valuesStr = buf.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
4
vendor/github.com/grafana/regexp/backtrack.go
generated
vendored
4
vendor/github.com/grafana/regexp/backtrack.go
generated
vendored
|
@ -91,9 +91,7 @@ func (b *bitState) reset(prog *syntax.Prog, end int, ncap int) {
|
||||||
b.visited = make([]uint32, visitedSize, maxBacktrackVector/visitedBits)
|
b.visited = make([]uint32, visitedSize, maxBacktrackVector/visitedBits)
|
||||||
} else {
|
} else {
|
||||||
b.visited = b.visited[:visitedSize]
|
b.visited = b.visited[:visitedSize]
|
||||||
for i := range b.visited {
|
clear(b.visited) // set to 0
|
||||||
b.visited[i] = 0
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if cap(b.cap) < ncap {
|
if cap(b.cap) < ncap {
|
||||||
|
|
23
vendor/github.com/grafana/regexp/onepass.go
generated
vendored
23
vendor/github.com/grafana/regexp/onepass.go
generated
vendored
|
@ -6,7 +6,7 @@ package regexp
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"regexp/syntax"
|
"regexp/syntax"
|
||||||
"sort"
|
"slices"
|
||||||
"strings"
|
"strings"
|
||||||
"unicode"
|
"unicode"
|
||||||
"unicode/utf8"
|
"unicode/utf8"
|
||||||
|
@ -33,11 +33,11 @@ type onePassInst struct {
|
||||||
Next []uint32
|
Next []uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
// OnePassPrefix returns a literal string that all matches for the
|
// onePassPrefix returns a literal string that all matches for the
|
||||||
// regexp must start with. Complete is true if the prefix
|
// regexp must start with. Complete is true if the prefix
|
||||||
// is the entire match. Pc is the index of the last rune instruction
|
// is the entire match. Pc is the index of the last rune instruction
|
||||||
// in the string. The OnePassPrefix skips over the mandatory
|
// in the string. The onePassPrefix skips over the mandatory
|
||||||
// EmptyBeginText
|
// EmptyBeginText.
|
||||||
func onePassPrefix(p *syntax.Prog) (prefix string, complete bool, pc uint32) {
|
func onePassPrefix(p *syntax.Prog) (prefix string, complete bool, pc uint32) {
|
||||||
i := &p.Inst[p.Start]
|
i := &p.Inst[p.Start]
|
||||||
if i.Op != syntax.InstEmptyWidth || (syntax.EmptyOp(i.Arg))&syntax.EmptyBeginText == 0 {
|
if i.Op != syntax.InstEmptyWidth || (syntax.EmptyOp(i.Arg))&syntax.EmptyBeginText == 0 {
|
||||||
|
@ -68,7 +68,7 @@ func onePassPrefix(p *syntax.Prog) (prefix string, complete bool, pc uint32) {
|
||||||
return buf.String(), complete, pc
|
return buf.String(), complete, pc
|
||||||
}
|
}
|
||||||
|
|
||||||
// OnePassNext selects the next actionable state of the prog, based on the input character.
|
// onePassNext selects the next actionable state of the prog, based on the input character.
|
||||||
// It should only be called when i.Op == InstAlt or InstAltMatch, and from the one-pass machine.
|
// It should only be called when i.Op == InstAlt or InstAltMatch, and from the one-pass machine.
|
||||||
// One of the alternates may ultimately lead without input to end of line. If the instruction
|
// One of the alternates may ultimately lead without input to end of line. If the instruction
|
||||||
// is InstAltMatch the path to the InstMatch is in i.Out, the normal node in i.Next.
|
// is InstAltMatch the path to the InstMatch is in i.Out, the normal node in i.Next.
|
||||||
|
@ -218,7 +218,7 @@ func cleanupOnePass(prog *onePassProg, original *syntax.Prog) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// onePassCopy creates a copy of the original Prog, as we'll be modifying it
|
// onePassCopy creates a copy of the original Prog, as we'll be modifying it.
|
||||||
func onePassCopy(prog *syntax.Prog) *onePassProg {
|
func onePassCopy(prog *syntax.Prog) *onePassProg {
|
||||||
p := &onePassProg{
|
p := &onePassProg{
|
||||||
Start: prog.Start,
|
Start: prog.Start,
|
||||||
|
@ -282,13 +282,6 @@ func onePassCopy(prog *syntax.Prog) *onePassProg {
|
||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
|
|
||||||
// runeSlice exists to permit sorting the case-folded rune sets.
|
|
||||||
type runeSlice []rune
|
|
||||||
|
|
||||||
func (p runeSlice) Len() int { return len(p) }
|
|
||||||
func (p runeSlice) Less(i, j int) bool { return p[i] < p[j] }
|
|
||||||
func (p runeSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
|
|
||||||
|
|
||||||
var anyRuneNotNL = []rune{0, '\n' - 1, '\n' + 1, unicode.MaxRune}
|
var anyRuneNotNL = []rune{0, '\n' - 1, '\n' + 1, unicode.MaxRune}
|
||||||
var anyRune = []rune{0, unicode.MaxRune}
|
var anyRune = []rune{0, unicode.MaxRune}
|
||||||
|
|
||||||
|
@ -383,7 +376,7 @@ func makeOnePass(p *onePassProg) *onePassProg {
|
||||||
for r1 := unicode.SimpleFold(r0); r1 != r0; r1 = unicode.SimpleFold(r1) {
|
for r1 := unicode.SimpleFold(r0); r1 != r0; r1 = unicode.SimpleFold(r1) {
|
||||||
runes = append(runes, r1, r1)
|
runes = append(runes, r1, r1)
|
||||||
}
|
}
|
||||||
sort.Sort(runeSlice(runes))
|
slices.Sort(runes)
|
||||||
} else {
|
} else {
|
||||||
runes = append(runes, inst.Rune...)
|
runes = append(runes, inst.Rune...)
|
||||||
}
|
}
|
||||||
|
@ -407,7 +400,7 @@ func makeOnePass(p *onePassProg) *onePassProg {
|
||||||
for r1 := unicode.SimpleFold(r0); r1 != r0; r1 = unicode.SimpleFold(r1) {
|
for r1 := unicode.SimpleFold(r0); r1 != r0; r1 = unicode.SimpleFold(r1) {
|
||||||
runes = append(runes, r1, r1)
|
runes = append(runes, r1, r1)
|
||||||
}
|
}
|
||||||
sort.Sort(runeSlice(runes))
|
slices.Sort(runes)
|
||||||
} else {
|
} else {
|
||||||
runes = append(runes, inst.Rune[0], inst.Rune[0])
|
runes = append(runes, inst.Rune[0], inst.Rune[0])
|
||||||
}
|
}
|
||||||
|
|
123
vendor/github.com/grafana/regexp/regexp.go
generated
vendored
123
vendor/github.com/grafana/regexp/regexp.go
generated
vendored
|
@ -8,9 +8,7 @@
|
||||||
// general syntax used by Perl, Python, and other languages.
|
// general syntax used by Perl, Python, and other languages.
|
||||||
// More precisely, it is the syntax accepted by RE2 and described at
|
// More precisely, it is the syntax accepted by RE2 and described at
|
||||||
// https://golang.org/s/re2syntax, except for \C.
|
// https://golang.org/s/re2syntax, except for \C.
|
||||||
// For an overview of the syntax, run
|
// For an overview of the syntax, see the [regexp/syntax] package.
|
||||||
//
|
|
||||||
// go doc regexp/syntax
|
|
||||||
//
|
//
|
||||||
// The regexp implementation provided by this package is
|
// The regexp implementation provided by this package is
|
||||||
// guaranteed to run in time linear in the size of the input.
|
// guaranteed to run in time linear in the size of the input.
|
||||||
|
@ -23,10 +21,10 @@
|
||||||
// or any book about automata theory.
|
// or any book about automata theory.
|
||||||
//
|
//
|
||||||
// All characters are UTF-8-encoded code points.
|
// All characters are UTF-8-encoded code points.
|
||||||
// Following utf8.DecodeRune, each byte of an invalid UTF-8 sequence
|
// Following [utf8.DecodeRune], each byte of an invalid UTF-8 sequence
|
||||||
// is treated as if it encoded utf8.RuneError (U+FFFD).
|
// is treated as if it encoded utf8.RuneError (U+FFFD).
|
||||||
//
|
//
|
||||||
// There are 16 methods of Regexp that match a regular expression and identify
|
// There are 16 methods of [Regexp] that match a regular expression and identify
|
||||||
// the matched text. Their names are matched by this regular expression:
|
// the matched text. Their names are matched by this regular expression:
|
||||||
//
|
//
|
||||||
// Find(All)?(String)?(Submatch)?(Index)?
|
// Find(All)?(String)?(Submatch)?(Index)?
|
||||||
|
@ -82,7 +80,7 @@ import (
|
||||||
|
|
||||||
// Regexp is the representation of a compiled regular expression.
|
// Regexp is the representation of a compiled regular expression.
|
||||||
// A Regexp is safe for concurrent use by multiple goroutines,
|
// A Regexp is safe for concurrent use by multiple goroutines,
|
||||||
// except for configuration methods, such as Longest.
|
// except for configuration methods, such as [Regexp.Longest].
|
||||||
type Regexp struct {
|
type Regexp struct {
|
||||||
expr string // as passed to Compile
|
expr string // as passed to Compile
|
||||||
prog *syntax.Prog // compiled program
|
prog *syntax.Prog // compiled program
|
||||||
|
@ -110,21 +108,21 @@ func (re *Regexp) String() string {
|
||||||
return re.expr
|
return re.expr
|
||||||
}
|
}
|
||||||
|
|
||||||
// Copy returns a new Regexp object copied from re.
|
// Copy returns a new [Regexp] object copied from re.
|
||||||
// Calling Longest on one copy does not affect another.
|
// Calling [Regexp.Longest] on one copy does not affect another.
|
||||||
//
|
//
|
||||||
// Deprecated: In earlier releases, when using a Regexp in multiple goroutines,
|
// Deprecated: In earlier releases, when using a [Regexp] in multiple goroutines,
|
||||||
// giving each goroutine its own copy helped to avoid lock contention.
|
// giving each goroutine its own copy helped to avoid lock contention.
|
||||||
// As of Go 1.12, using Copy is no longer necessary to avoid lock contention.
|
// As of Go 1.12, using Copy is no longer necessary to avoid lock contention.
|
||||||
// Copy may still be appropriate if the reason for its use is to make
|
// Copy may still be appropriate if the reason for its use is to make
|
||||||
// two copies with different Longest settings.
|
// two copies with different [Regexp.Longest] settings.
|
||||||
func (re *Regexp) Copy() *Regexp {
|
func (re *Regexp) Copy() *Regexp {
|
||||||
re2 := *re
|
re2 := *re
|
||||||
return &re2
|
return &re2
|
||||||
}
|
}
|
||||||
|
|
||||||
// Compile parses a regular expression and returns, if successful,
|
// Compile parses a regular expression and returns, if successful,
|
||||||
// a Regexp object that can be used to match against text.
|
// a [Regexp] object that can be used to match against text.
|
||||||
//
|
//
|
||||||
// When matching against text, the regexp returns a match that
|
// When matching against text, the regexp returns a match that
|
||||||
// begins as early as possible in the input (leftmost), and among those
|
// begins as early as possible in the input (leftmost), and among those
|
||||||
|
@ -132,12 +130,12 @@ func (re *Regexp) Copy() *Regexp {
|
||||||
// This so-called leftmost-first matching is the same semantics
|
// This so-called leftmost-first matching is the same semantics
|
||||||
// that Perl, Python, and other implementations use, although this
|
// that Perl, Python, and other implementations use, although this
|
||||||
// package implements it without the expense of backtracking.
|
// package implements it without the expense of backtracking.
|
||||||
// For POSIX leftmost-longest matching, see CompilePOSIX.
|
// For POSIX leftmost-longest matching, see [CompilePOSIX].
|
||||||
func Compile(expr string) (*Regexp, error) {
|
func Compile(expr string) (*Regexp, error) {
|
||||||
return compile(expr, syntax.Perl, false)
|
return compile(expr, syntax.Perl, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// CompilePOSIX is like Compile but restricts the regular expression
|
// CompilePOSIX is like [Compile] but restricts the regular expression
|
||||||
// to POSIX ERE (egrep) syntax and changes the match semantics to
|
// to POSIX ERE (egrep) syntax and changes the match semantics to
|
||||||
// leftmost-longest.
|
// leftmost-longest.
|
||||||
//
|
//
|
||||||
|
@ -164,7 +162,7 @@ func CompilePOSIX(expr string) (*Regexp, error) {
|
||||||
// That is, when matching against text, the regexp returns a match that
|
// That is, when matching against text, the regexp returns a match that
|
||||||
// begins as early as possible in the input (leftmost), and among those
|
// begins as early as possible in the input (leftmost), and among those
|
||||||
// it chooses a match that is as long as possible.
|
// it chooses a match that is as long as possible.
|
||||||
// This method modifies the Regexp and may not be called concurrently
|
// This method modifies the [Regexp] and may not be called concurrently
|
||||||
// with any other methods.
|
// with any other methods.
|
||||||
func (re *Regexp) Longest() {
|
func (re *Regexp) Longest() {
|
||||||
re.longest = true
|
re.longest = true
|
||||||
|
@ -270,7 +268,7 @@ func (re *Regexp) put(m *machine) {
|
||||||
matchPool[re.mpool].Put(m)
|
matchPool[re.mpool].Put(m)
|
||||||
}
|
}
|
||||||
|
|
||||||
// minInputLen walks the regexp to find the minimum length of any matchable input
|
// minInputLen walks the regexp to find the minimum length of any matchable input.
|
||||||
func minInputLen(re *syntax.Regexp) int {
|
func minInputLen(re *syntax.Regexp) int {
|
||||||
switch re.Op {
|
switch re.Op {
|
||||||
default:
|
default:
|
||||||
|
@ -310,7 +308,7 @@ func minInputLen(re *syntax.Regexp) int {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MustCompile is like Compile but panics if the expression cannot be parsed.
|
// MustCompile is like [Compile] but panics if the expression cannot be parsed.
|
||||||
// It simplifies safe initialization of global variables holding compiled regular
|
// It simplifies safe initialization of global variables holding compiled regular
|
||||||
// expressions.
|
// expressions.
|
||||||
func MustCompile(str string) *Regexp {
|
func MustCompile(str string) *Regexp {
|
||||||
|
@ -321,7 +319,7 @@ func MustCompile(str string) *Regexp {
|
||||||
return regexp
|
return regexp
|
||||||
}
|
}
|
||||||
|
|
||||||
// MustCompilePOSIX is like CompilePOSIX but panics if the expression cannot be parsed.
|
// MustCompilePOSIX is like [CompilePOSIX] but panics if the expression cannot be parsed.
|
||||||
// It simplifies safe initialization of global variables holding compiled regular
|
// It simplifies safe initialization of global variables holding compiled regular
|
||||||
// expressions.
|
// expressions.
|
||||||
func MustCompilePOSIX(str string) *Regexp {
|
func MustCompilePOSIX(str string) *Regexp {
|
||||||
|
@ -339,13 +337,13 @@ func quote(s string) string {
|
||||||
return strconv.Quote(s)
|
return strconv.Quote(s)
|
||||||
}
|
}
|
||||||
|
|
||||||
// NumSubexp returns the number of parenthesized subexpressions in this Regexp.
|
// NumSubexp returns the number of parenthesized subexpressions in this [Regexp].
|
||||||
func (re *Regexp) NumSubexp() int {
|
func (re *Regexp) NumSubexp() int {
|
||||||
return re.numSubexp
|
return re.numSubexp
|
||||||
}
|
}
|
||||||
|
|
||||||
// SubexpNames returns the names of the parenthesized subexpressions
|
// SubexpNames returns the names of the parenthesized subexpressions
|
||||||
// in this Regexp. The name for the first sub-expression is names[1],
|
// in this [Regexp]. The name for the first sub-expression is names[1],
|
||||||
// so that if m is a match slice, the name for m[i] is SubexpNames()[i].
|
// so that if m is a match slice, the name for m[i] is SubexpNames()[i].
|
||||||
// Since the Regexp as a whole cannot be named, names[0] is always
|
// Since the Regexp as a whole cannot be named, names[0] is always
|
||||||
// the empty string. The slice should not be modified.
|
// the empty string. The slice should not be modified.
|
||||||
|
@ -521,7 +519,7 @@ func (re *Regexp) LiteralPrefix() (prefix string, complete bool) {
|
||||||
return re.prefix, re.prefixComplete
|
return re.prefix, re.prefixComplete
|
||||||
}
|
}
|
||||||
|
|
||||||
// MatchReader reports whether the text returned by the RuneReader
|
// MatchReader reports whether the text returned by the [io.RuneReader]
|
||||||
// contains any match of the regular expression re.
|
// contains any match of the regular expression re.
|
||||||
func (re *Regexp) MatchReader(r io.RuneReader) bool {
|
func (re *Regexp) MatchReader(r io.RuneReader) bool {
|
||||||
return re.doMatch(r, nil, "")
|
return re.doMatch(r, nil, "")
|
||||||
|
@ -541,7 +539,7 @@ func (re *Regexp) Match(b []byte) bool {
|
||||||
|
|
||||||
// MatchReader reports whether the text returned by the RuneReader
|
// MatchReader reports whether the text returned by the RuneReader
|
||||||
// contains any match of the regular expression pattern.
|
// contains any match of the regular expression pattern.
|
||||||
// More complicated queries need to use Compile and the full Regexp interface.
|
// More complicated queries need to use [Compile] and the full [Regexp] interface.
|
||||||
func MatchReader(pattern string, r io.RuneReader) (matched bool, err error) {
|
func MatchReader(pattern string, r io.RuneReader) (matched bool, err error) {
|
||||||
re, err := Compile(pattern)
|
re, err := Compile(pattern)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -552,7 +550,7 @@ func MatchReader(pattern string, r io.RuneReader) (matched bool, err error) {
|
||||||
|
|
||||||
// MatchString reports whether the string s
|
// MatchString reports whether the string s
|
||||||
// contains any match of the regular expression pattern.
|
// contains any match of the regular expression pattern.
|
||||||
// More complicated queries need to use Compile and the full Regexp interface.
|
// More complicated queries need to use [Compile] and the full [Regexp] interface.
|
||||||
func MatchString(pattern string, s string) (matched bool, err error) {
|
func MatchString(pattern string, s string) (matched bool, err error) {
|
||||||
re, err := Compile(pattern)
|
re, err := Compile(pattern)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -563,7 +561,7 @@ func MatchString(pattern string, s string) (matched bool, err error) {
|
||||||
|
|
||||||
// Match reports whether the byte slice b
|
// Match reports whether the byte slice b
|
||||||
// contains any match of the regular expression pattern.
|
// contains any match of the regular expression pattern.
|
||||||
// More complicated queries need to use Compile and the full Regexp interface.
|
// More complicated queries need to use [Compile] and the full [Regexp] interface.
|
||||||
func Match(pattern string, b []byte) (matched bool, err error) {
|
func Match(pattern string, b []byte) (matched bool, err error) {
|
||||||
re, err := Compile(pattern)
|
re, err := Compile(pattern)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -572,9 +570,9 @@ func Match(pattern string, b []byte) (matched bool, err error) {
|
||||||
return re.Match(b), nil
|
return re.Match(b), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReplaceAllString returns a copy of src, replacing matches of the Regexp
|
// ReplaceAllString returns a copy of src, replacing matches of the [Regexp]
|
||||||
// with the replacement string repl. Inside repl, $ signs are interpreted as
|
// with the replacement string repl.
|
||||||
// in Expand, so for instance $1 represents the text of the first submatch.
|
// Inside repl, $ signs are interpreted as in [Regexp.Expand].
|
||||||
func (re *Regexp) ReplaceAllString(src, repl string) string {
|
func (re *Regexp) ReplaceAllString(src, repl string) string {
|
||||||
n := 2
|
n := 2
|
||||||
if strings.Contains(repl, "$") {
|
if strings.Contains(repl, "$") {
|
||||||
|
@ -586,9 +584,9 @@ func (re *Regexp) ReplaceAllString(src, repl string) string {
|
||||||
return string(b)
|
return string(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReplaceAllLiteralString returns a copy of src, replacing matches of the Regexp
|
// ReplaceAllLiteralString returns a copy of src, replacing matches of the [Regexp]
|
||||||
// with the replacement string repl. The replacement repl is substituted directly,
|
// with the replacement string repl. The replacement repl is substituted directly,
|
||||||
// without using Expand.
|
// without using [Regexp.Expand].
|
||||||
func (re *Regexp) ReplaceAllLiteralString(src, repl string) string {
|
func (re *Regexp) ReplaceAllLiteralString(src, repl string) string {
|
||||||
return string(re.replaceAll(nil, src, 2, func(dst []byte, match []int) []byte {
|
return string(re.replaceAll(nil, src, 2, func(dst []byte, match []int) []byte {
|
||||||
return append(dst, repl...)
|
return append(dst, repl...)
|
||||||
|
@ -596,9 +594,9 @@ func (re *Regexp) ReplaceAllLiteralString(src, repl string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReplaceAllStringFunc returns a copy of src in which all matches of the
|
// ReplaceAllStringFunc returns a copy of src in which all matches of the
|
||||||
// Regexp have been replaced by the return value of function repl applied
|
// [Regexp] have been replaced by the return value of function repl applied
|
||||||
// to the matched substring. The replacement returned by repl is substituted
|
// to the matched substring. The replacement returned by repl is substituted
|
||||||
// directly, without using Expand.
|
// directly, without using [Regexp.Expand].
|
||||||
func (re *Regexp) ReplaceAllStringFunc(src string, repl func(string) string) string {
|
func (re *Regexp) ReplaceAllStringFunc(src string, repl func(string) string) string {
|
||||||
b := re.replaceAll(nil, src, 2, func(dst []byte, match []int) []byte {
|
b := re.replaceAll(nil, src, 2, func(dst []byte, match []int) []byte {
|
||||||
return append(dst, repl(src[match[0]:match[1]])...)
|
return append(dst, repl(src[match[0]:match[1]])...)
|
||||||
|
@ -671,9 +669,9 @@ func (re *Regexp) replaceAll(bsrc []byte, src string, nmatch int, repl func(dst
|
||||||
return buf
|
return buf
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReplaceAll returns a copy of src, replacing matches of the Regexp
|
// ReplaceAll returns a copy of src, replacing matches of the [Regexp]
|
||||||
// with the replacement text repl. Inside repl, $ signs are interpreted as
|
// with the replacement text repl.
|
||||||
// in Expand, so for instance $1 represents the text of the first submatch.
|
// Inside repl, $ signs are interpreted as in [Regexp.Expand].
|
||||||
func (re *Regexp) ReplaceAll(src, repl []byte) []byte {
|
func (re *Regexp) ReplaceAll(src, repl []byte) []byte {
|
||||||
n := 2
|
n := 2
|
||||||
if bytes.IndexByte(repl, '$') >= 0 {
|
if bytes.IndexByte(repl, '$') >= 0 {
|
||||||
|
@ -689,9 +687,9 @@ func (re *Regexp) ReplaceAll(src, repl []byte) []byte {
|
||||||
return b
|
return b
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReplaceAllLiteral returns a copy of src, replacing matches of the Regexp
|
// ReplaceAllLiteral returns a copy of src, replacing matches of the [Regexp]
|
||||||
// with the replacement bytes repl. The replacement repl is substituted directly,
|
// with the replacement bytes repl. The replacement repl is substituted directly,
|
||||||
// without using Expand.
|
// without using [Regexp.Expand].
|
||||||
func (re *Regexp) ReplaceAllLiteral(src, repl []byte) []byte {
|
func (re *Regexp) ReplaceAllLiteral(src, repl []byte) []byte {
|
||||||
return re.replaceAll(src, "", 2, func(dst []byte, match []int) []byte {
|
return re.replaceAll(src, "", 2, func(dst []byte, match []int) []byte {
|
||||||
return append(dst, repl...)
|
return append(dst, repl...)
|
||||||
|
@ -699,9 +697,9 @@ func (re *Regexp) ReplaceAllLiteral(src, repl []byte) []byte {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReplaceAllFunc returns a copy of src in which all matches of the
|
// ReplaceAllFunc returns a copy of src in which all matches of the
|
||||||
// Regexp have been replaced by the return value of function repl applied
|
// [Regexp] have been replaced by the return value of function repl applied
|
||||||
// to the matched byte slice. The replacement returned by repl is substituted
|
// to the matched byte slice. The replacement returned by repl is substituted
|
||||||
// directly, without using Expand.
|
// directly, without using [Regexp.Expand].
|
||||||
func (re *Regexp) ReplaceAllFunc(src []byte, repl func([]byte) []byte) []byte {
|
func (re *Regexp) ReplaceAllFunc(src []byte, repl func([]byte) []byte) []byte {
|
||||||
return re.replaceAll(src, "", 2, func(dst []byte, match []int) []byte {
|
return re.replaceAll(src, "", 2, func(dst []byte, match []int) []byte {
|
||||||
return append(dst, repl(src[match[0]:match[1]])...)
|
return append(dst, repl(src[match[0]:match[1]])...)
|
||||||
|
@ -845,7 +843,7 @@ func (re *Regexp) FindIndex(b []byte) (loc []int) {
|
||||||
// FindString returns a string holding the text of the leftmost match in s of the regular
|
// FindString returns a string holding the text of the leftmost match in s of the regular
|
||||||
// expression. If there is no match, the return value is an empty string,
|
// expression. If there is no match, the return value is an empty string,
|
||||||
// but it will also be empty if the regular expression successfully matches
|
// but it will also be empty if the regular expression successfully matches
|
||||||
// an empty string. Use FindStringIndex or FindStringSubmatch if it is
|
// an empty string. Use [Regexp.FindStringIndex] or [Regexp.FindStringSubmatch] if it is
|
||||||
// necessary to distinguish these cases.
|
// necessary to distinguish these cases.
|
||||||
func (re *Regexp) FindString(s string) string {
|
func (re *Regexp) FindString(s string) string {
|
||||||
var dstCap [2]int
|
var dstCap [2]int
|
||||||
|
@ -870,7 +868,7 @@ func (re *Regexp) FindStringIndex(s string) (loc []int) {
|
||||||
|
|
||||||
// FindReaderIndex returns a two-element slice of integers defining the
|
// FindReaderIndex returns a two-element slice of integers defining the
|
||||||
// location of the leftmost match of the regular expression in text read from
|
// location of the leftmost match of the regular expression in text read from
|
||||||
// the RuneReader. The match text was found in the input stream at
|
// the [io.RuneReader]. The match text was found in the input stream at
|
||||||
// byte offset loc[0] through loc[1]-1.
|
// byte offset loc[0] through loc[1]-1.
|
||||||
// A return value of nil indicates no match.
|
// A return value of nil indicates no match.
|
||||||
func (re *Regexp) FindReaderIndex(r io.RuneReader) (loc []int) {
|
func (re *Regexp) FindReaderIndex(r io.RuneReader) (loc []int) {
|
||||||
|
@ -904,7 +902,7 @@ func (re *Regexp) FindSubmatch(b []byte) [][]byte {
|
||||||
// Expand appends template to dst and returns the result; during the
|
// Expand appends template to dst and returns the result; during the
|
||||||
// append, Expand replaces variables in the template with corresponding
|
// append, Expand replaces variables in the template with corresponding
|
||||||
// matches drawn from src. The match slice should have been returned by
|
// matches drawn from src. The match slice should have been returned by
|
||||||
// FindSubmatchIndex.
|
// [Regexp.FindSubmatchIndex].
|
||||||
//
|
//
|
||||||
// In the template, a variable is denoted by a substring of the form
|
// In the template, a variable is denoted by a substring of the form
|
||||||
// $name or ${name}, where name is a non-empty sequence of letters,
|
// $name or ${name}, where name is a non-empty sequence of letters,
|
||||||
|
@ -922,7 +920,7 @@ func (re *Regexp) Expand(dst []byte, template []byte, src []byte, match []int) [
|
||||||
return re.expand(dst, string(template), src, "", match)
|
return re.expand(dst, string(template), src, "", match)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExpandString is like Expand but the template and source are strings.
|
// ExpandString is like [Regexp.Expand] but the template and source are strings.
|
||||||
// It appends to and returns a byte slice in order to give the calling
|
// It appends to and returns a byte slice in order to give the calling
|
||||||
// code control over allocation.
|
// code control over allocation.
|
||||||
func (re *Regexp) ExpandString(dst []byte, template string, src string, match []int) []byte {
|
func (re *Regexp) ExpandString(dst []byte, template string, src string, match []int) []byte {
|
||||||
|
@ -1067,7 +1065,7 @@ func (re *Regexp) FindStringSubmatchIndex(s string) []int {
|
||||||
|
|
||||||
// FindReaderSubmatchIndex returns a slice holding the index pairs
|
// FindReaderSubmatchIndex returns a slice holding the index pairs
|
||||||
// identifying the leftmost match of the regular expression of text read by
|
// identifying the leftmost match of the regular expression of text read by
|
||||||
// the RuneReader, and the matches, if any, of its subexpressions, as defined
|
// the [io.RuneReader], and the matches, if any, of its subexpressions, as defined
|
||||||
// by the 'Submatch' and 'Index' descriptions in the package comment. A
|
// by the 'Submatch' and 'Index' descriptions in the package comment. A
|
||||||
// return value of nil indicates no match.
|
// return value of nil indicates no match.
|
||||||
func (re *Regexp) FindReaderSubmatchIndex(r io.RuneReader) []int {
|
func (re *Regexp) FindReaderSubmatchIndex(r io.RuneReader) []int {
|
||||||
|
@ -1076,7 +1074,7 @@ func (re *Regexp) FindReaderSubmatchIndex(r io.RuneReader) []int {
|
||||||
|
|
||||||
const startSize = 10 // The size at which to start a slice in the 'All' routines.
|
const startSize = 10 // The size at which to start a slice in the 'All' routines.
|
||||||
|
|
||||||
// FindAll is the 'All' version of Find; it returns a slice of all successive
|
// FindAll is the 'All' version of [Regexp.Find]; it returns a slice of all successive
|
||||||
// matches of the expression, as defined by the 'All' description in the
|
// matches of the expression, as defined by the 'All' description in the
|
||||||
// package comment.
|
// package comment.
|
||||||
// A return value of nil indicates no match.
|
// A return value of nil indicates no match.
|
||||||
|
@ -1094,7 +1092,7 @@ func (re *Regexp) FindAll(b []byte, n int) [][]byte {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindAllIndex is the 'All' version of FindIndex; it returns a slice of all
|
// FindAllIndex is the 'All' version of [Regexp.FindIndex]; it returns a slice of all
|
||||||
// successive matches of the expression, as defined by the 'All' description
|
// successive matches of the expression, as defined by the 'All' description
|
||||||
// in the package comment.
|
// in the package comment.
|
||||||
// A return value of nil indicates no match.
|
// A return value of nil indicates no match.
|
||||||
|
@ -1112,7 +1110,7 @@ func (re *Regexp) FindAllIndex(b []byte, n int) [][]int {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindAllString is the 'All' version of FindString; it returns a slice of all
|
// FindAllString is the 'All' version of [Regexp.FindString]; it returns a slice of all
|
||||||
// successive matches of the expression, as defined by the 'All' description
|
// successive matches of the expression, as defined by the 'All' description
|
||||||
// in the package comment.
|
// in the package comment.
|
||||||
// A return value of nil indicates no match.
|
// A return value of nil indicates no match.
|
||||||
|
@ -1130,7 +1128,7 @@ func (re *Regexp) FindAllString(s string, n int) []string {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindAllStringIndex is the 'All' version of FindStringIndex; it returns a
|
// FindAllStringIndex is the 'All' version of [Regexp.FindStringIndex]; it returns a
|
||||||
// slice of all successive matches of the expression, as defined by the 'All'
|
// slice of all successive matches of the expression, as defined by the 'All'
|
||||||
// description in the package comment.
|
// description in the package comment.
|
||||||
// A return value of nil indicates no match.
|
// A return value of nil indicates no match.
|
||||||
|
@ -1148,7 +1146,7 @@ func (re *Regexp) FindAllStringIndex(s string, n int) [][]int {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindAllSubmatch is the 'All' version of FindSubmatch; it returns a slice
|
// FindAllSubmatch is the 'All' version of [Regexp.FindSubmatch]; it returns a slice
|
||||||
// of all successive matches of the expression, as defined by the 'All'
|
// of all successive matches of the expression, as defined by the 'All'
|
||||||
// description in the package comment.
|
// description in the package comment.
|
||||||
// A return value of nil indicates no match.
|
// A return value of nil indicates no match.
|
||||||
|
@ -1172,7 +1170,7 @@ func (re *Regexp) FindAllSubmatch(b []byte, n int) [][][]byte {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindAllSubmatchIndex is the 'All' version of FindSubmatchIndex; it returns
|
// FindAllSubmatchIndex is the 'All' version of [Regexp.FindSubmatchIndex]; it returns
|
||||||
// a slice of all successive matches of the expression, as defined by the
|
// a slice of all successive matches of the expression, as defined by the
|
||||||
// 'All' description in the package comment.
|
// 'All' description in the package comment.
|
||||||
// A return value of nil indicates no match.
|
// A return value of nil indicates no match.
|
||||||
|
@ -1190,7 +1188,7 @@ func (re *Regexp) FindAllSubmatchIndex(b []byte, n int) [][]int {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindAllStringSubmatch is the 'All' version of FindStringSubmatch; it
|
// FindAllStringSubmatch is the 'All' version of [Regexp.FindStringSubmatch]; it
|
||||||
// returns a slice of all successive matches of the expression, as defined by
|
// returns a slice of all successive matches of the expression, as defined by
|
||||||
// the 'All' description in the package comment.
|
// the 'All' description in the package comment.
|
||||||
// A return value of nil indicates no match.
|
// A return value of nil indicates no match.
|
||||||
|
@ -1215,7 +1213,7 @@ func (re *Regexp) FindAllStringSubmatch(s string, n int) [][]string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindAllStringSubmatchIndex is the 'All' version of
|
// FindAllStringSubmatchIndex is the 'All' version of
|
||||||
// FindStringSubmatchIndex; it returns a slice of all successive matches of
|
// [Regexp.FindStringSubmatchIndex]; it returns a slice of all successive matches of
|
||||||
// the expression, as defined by the 'All' description in the package
|
// the expression, as defined by the 'All' description in the package
|
||||||
// comment.
|
// comment.
|
||||||
// A return value of nil indicates no match.
|
// A return value of nil indicates no match.
|
||||||
|
@ -1237,8 +1235,8 @@ func (re *Regexp) FindAllStringSubmatchIndex(s string, n int) [][]int {
|
||||||
// the substrings between those expression matches.
|
// the substrings between those expression matches.
|
||||||
//
|
//
|
||||||
// The slice returned by this method consists of all the substrings of s
|
// The slice returned by this method consists of all the substrings of s
|
||||||
// not contained in the slice returned by FindAllString. When called on an expression
|
// not contained in the slice returned by [Regexp.FindAllString]. When called on an expression
|
||||||
// that contains no metacharacters, it is equivalent to strings.SplitN.
|
// that contains no metacharacters, it is equivalent to [strings.SplitN].
|
||||||
//
|
//
|
||||||
// Example:
|
// Example:
|
||||||
//
|
//
|
||||||
|
@ -1283,3 +1281,24 @@ func (re *Regexp) Split(s string, n int) []string {
|
||||||
|
|
||||||
return strings
|
return strings
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MarshalText implements [encoding.TextMarshaler]. The output
|
||||||
|
// matches that of calling the [Regexp.String] method.
|
||||||
|
//
|
||||||
|
// Note that the output is lossy in some cases: This method does not indicate
|
||||||
|
// POSIX regular expressions (i.e. those compiled by calling [CompilePOSIX]), or
|
||||||
|
// those for which the [Regexp.Longest] method has been called.
|
||||||
|
func (re *Regexp) MarshalText() ([]byte, error) {
|
||||||
|
return []byte(re.String()), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalText implements [encoding.TextUnmarshaler] by calling
|
||||||
|
// [Compile] on the encoded value.
|
||||||
|
func (re *Regexp) UnmarshalText(text []byte) error {
|
||||||
|
newRE, err := Compile(string(text))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*re = *newRE
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
11
vendor/github.com/grafana/regexp/syntax/doc.go
generated
vendored
11
vendor/github.com/grafana/regexp/syntax/doc.go
generated
vendored
|
@ -2,17 +2,17 @@
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// DO NOT EDIT. This file is generated by mksyntaxgo from the RE2 distribution.
|
// Code generated by mksyntaxgo from the RE2 distribution. DO NOT EDIT.
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Package syntax parses regular expressions into parse trees and compiles
|
Package syntax parses regular expressions into parse trees and compiles
|
||||||
parse trees into programs. Most clients of regular expressions will use the
|
parse trees into programs. Most clients of regular expressions will use the
|
||||||
facilities of package regexp (such as Compile and Match) instead of this package.
|
facilities of package [regexp] (such as [regexp.Compile] and [regexp.Match]) instead of this package.
|
||||||
|
|
||||||
# Syntax
|
# Syntax
|
||||||
|
|
||||||
The regular expression syntax understood by this package when parsing with the Perl flag is as follows.
|
The regular expression syntax understood by this package when parsing with the [Perl] flag is as follows.
|
||||||
Parts of the syntax can be disabled by passing alternate flags to Parse.
|
Parts of the syntax can be disabled by passing alternate flags to [Parse].
|
||||||
|
|
||||||
Single characters:
|
Single characters:
|
||||||
|
|
||||||
|
@ -56,6 +56,7 @@ Grouping:
|
||||||
|
|
||||||
(re) numbered capturing group (submatch)
|
(re) numbered capturing group (submatch)
|
||||||
(?P<name>re) named & numbered capturing group (submatch)
|
(?P<name>re) named & numbered capturing group (submatch)
|
||||||
|
(?<name>re) named & numbered capturing group (submatch)
|
||||||
(?:re) non-capturing group
|
(?:re) non-capturing group
|
||||||
(?flags) set flags within current group; non-capturing
|
(?flags) set flags within current group; non-capturing
|
||||||
(?flags:re) set flags during re; non-capturing
|
(?flags:re) set flags during re; non-capturing
|
||||||
|
@ -136,6 +137,6 @@ ASCII character classes:
|
||||||
[[:word:]] word characters (== [0-9A-Za-z_])
|
[[:word:]] word characters (== [0-9A-Za-z_])
|
||||||
[[:xdigit:]] hex digit (== [0-9A-Fa-f])
|
[[:xdigit:]] hex digit (== [0-9A-Fa-f])
|
||||||
|
|
||||||
Unicode character classes are those in unicode.Categories and unicode.Scripts.
|
Unicode character classes are those in [unicode.Categories] and [unicode.Scripts].
|
||||||
*/
|
*/
|
||||||
package syntax
|
package syntax
|
||||||
|
|
26
vendor/github.com/grafana/regexp/syntax/op_string.go
generated
vendored
26
vendor/github.com/grafana/regexp/syntax/op_string.go
generated
vendored
|
@ -4,6 +4,32 @@ package syntax
|
||||||
|
|
||||||
import "strconv"
|
import "strconv"
|
||||||
|
|
||||||
|
func _() {
|
||||||
|
// An "invalid array index" compiler error signifies that the constant values have changed.
|
||||||
|
// Re-run the stringer command to generate them again.
|
||||||
|
var x [1]struct{}
|
||||||
|
_ = x[OpNoMatch-1]
|
||||||
|
_ = x[OpEmptyMatch-2]
|
||||||
|
_ = x[OpLiteral-3]
|
||||||
|
_ = x[OpCharClass-4]
|
||||||
|
_ = x[OpAnyCharNotNL-5]
|
||||||
|
_ = x[OpAnyChar-6]
|
||||||
|
_ = x[OpBeginLine-7]
|
||||||
|
_ = x[OpEndLine-8]
|
||||||
|
_ = x[OpBeginText-9]
|
||||||
|
_ = x[OpEndText-10]
|
||||||
|
_ = x[OpWordBoundary-11]
|
||||||
|
_ = x[OpNoWordBoundary-12]
|
||||||
|
_ = x[OpCapture-13]
|
||||||
|
_ = x[OpStar-14]
|
||||||
|
_ = x[OpPlus-15]
|
||||||
|
_ = x[OpQuest-16]
|
||||||
|
_ = x[OpRepeat-17]
|
||||||
|
_ = x[OpConcat-18]
|
||||||
|
_ = x[OpAlternate-19]
|
||||||
|
_ = x[opPseudo-128]
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
_Op_name_0 = "NoMatchEmptyMatchLiteralCharClassAnyCharNotNLAnyCharBeginLineEndLineBeginTextEndTextWordBoundaryNoWordBoundaryCaptureStarPlusQuestRepeatConcatAlternate"
|
_Op_name_0 = "NoMatchEmptyMatchLiteralCharClassAnyCharNotNLAnyCharBeginLineEndLineBeginTextEndTextWordBoundaryNoWordBoundaryCaptureStarPlusQuestRepeatConcatAlternate"
|
||||||
_Op_name_1 = "opPseudo"
|
_Op_name_1 = "opPseudo"
|
||||||
|
|
58
vendor/github.com/grafana/regexp/syntax/parse.go
generated
vendored
58
vendor/github.com/grafana/regexp/syntax/parse.go
generated
vendored
|
@ -44,6 +44,7 @@ const (
|
||||||
ErrTrailingBackslash ErrorCode = "trailing backslash at end of expression"
|
ErrTrailingBackslash ErrorCode = "trailing backslash at end of expression"
|
||||||
ErrUnexpectedParen ErrorCode = "unexpected )"
|
ErrUnexpectedParen ErrorCode = "unexpected )"
|
||||||
ErrNestingDepth ErrorCode = "expression nests too deeply"
|
ErrNestingDepth ErrorCode = "expression nests too deeply"
|
||||||
|
ErrLarge ErrorCode = "expression too large"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (e ErrorCode) String() string {
|
func (e ErrorCode) String() string {
|
||||||
|
@ -159,7 +160,7 @@ func (p *parser) reuse(re *Regexp) {
|
||||||
|
|
||||||
func (p *parser) checkLimits(re *Regexp) {
|
func (p *parser) checkLimits(re *Regexp) {
|
||||||
if p.numRunes > maxRunes {
|
if p.numRunes > maxRunes {
|
||||||
panic(ErrInternalError)
|
panic(ErrLarge)
|
||||||
}
|
}
|
||||||
p.checkSize(re)
|
p.checkSize(re)
|
||||||
p.checkHeight(re)
|
p.checkHeight(re)
|
||||||
|
@ -203,7 +204,7 @@ func (p *parser) checkSize(re *Regexp) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if p.calcSize(re, true) > maxSize {
|
if p.calcSize(re, true) > maxSize {
|
||||||
panic(ErrInternalError)
|
panic(ErrLarge)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -248,9 +249,7 @@ func (p *parser) calcSize(re *Regexp, force bool) int64 {
|
||||||
size = int64(re.Max)*sub + int64(re.Max-re.Min)
|
size = int64(re.Max)*sub + int64(re.Max-re.Min)
|
||||||
}
|
}
|
||||||
|
|
||||||
if size < 1 {
|
size = max(1, size)
|
||||||
size = 1
|
|
||||||
}
|
|
||||||
p.size[re] = size
|
p.size[re] = size
|
||||||
return size
|
return size
|
||||||
}
|
}
|
||||||
|
@ -381,14 +380,12 @@ func minFoldRune(r rune) rune {
|
||||||
if r < minFold || r > maxFold {
|
if r < minFold || r > maxFold {
|
||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
min := r
|
m := r
|
||||||
r0 := r
|
r0 := r
|
||||||
for r = unicode.SimpleFold(r); r != r0; r = unicode.SimpleFold(r) {
|
for r = unicode.SimpleFold(r); r != r0; r = unicode.SimpleFold(r) {
|
||||||
if min > r {
|
m = min(m, r)
|
||||||
min = r
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return min
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
// op pushes a regexp with the given op onto the stack
|
// op pushes a regexp with the given op onto the stack
|
||||||
|
@ -897,8 +894,8 @@ func parse(s string, flags Flags) (_ *Regexp, err error) {
|
||||||
panic(r)
|
panic(r)
|
||||||
case nil:
|
case nil:
|
||||||
// ok
|
// ok
|
||||||
case ErrInternalError: // too big
|
case ErrLarge: // too big
|
||||||
err = &Error{Code: ErrInternalError, Expr: s}
|
err = &Error{Code: ErrLarge, Expr: s}
|
||||||
case ErrNestingDepth:
|
case ErrNestingDepth:
|
||||||
err = &Error{Code: ErrNestingDepth, Expr: s}
|
err = &Error{Code: ErrNestingDepth, Expr: s}
|
||||||
}
|
}
|
||||||
|
@ -1158,9 +1155,18 @@ func (p *parser) parsePerlFlags(s string) (rest string, err error) {
|
||||||
// support all three as well. EcmaScript 4 uses only the Python form.
|
// support all three as well. EcmaScript 4 uses only the Python form.
|
||||||
//
|
//
|
||||||
// In both the open source world (via Code Search) and the
|
// In both the open source world (via Code Search) and the
|
||||||
// Google source tree, (?P<expr>name) is the dominant form,
|
// Google source tree, (?P<expr>name) and (?<expr>name) are the
|
||||||
// so that's the one we implement. One is enough.
|
// dominant forms of named captures and both are supported.
|
||||||
if len(t) > 4 && t[2] == 'P' && t[3] == '<' {
|
startsWithP := len(t) > 4 && t[2] == 'P' && t[3] == '<'
|
||||||
|
startsWithName := len(t) > 3 && t[2] == '<'
|
||||||
|
|
||||||
|
if startsWithP || startsWithName {
|
||||||
|
// position of expr start
|
||||||
|
exprStartPos := 4
|
||||||
|
if startsWithName {
|
||||||
|
exprStartPos = 3
|
||||||
|
}
|
||||||
|
|
||||||
// Pull out name.
|
// Pull out name.
|
||||||
end := strings.IndexRune(t, '>')
|
end := strings.IndexRune(t, '>')
|
||||||
if end < 0 {
|
if end < 0 {
|
||||||
|
@ -1170,8 +1176,8 @@ func (p *parser) parsePerlFlags(s string) (rest string, err error) {
|
||||||
return "", &Error{ErrInvalidNamedCapture, s}
|
return "", &Error{ErrInvalidNamedCapture, s}
|
||||||
}
|
}
|
||||||
|
|
||||||
capture := t[:end+1] // "(?P<name>"
|
capture := t[:end+1] // "(?P<name>" or "(?<name>"
|
||||||
name := t[4:end] // "name"
|
name := t[exprStartPos:end] // "name"
|
||||||
if err = checkUTF8(name); err != nil {
|
if err = checkUTF8(name); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
@ -1853,6 +1859,22 @@ func cleanClass(rp *[]rune) []rune {
|
||||||
return r[:w]
|
return r[:w]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// inCharClass reports whether r is in the class.
|
||||||
|
// It assumes the class has been cleaned by cleanClass.
|
||||||
|
func inCharClass(r rune, class []rune) bool {
|
||||||
|
_, ok := sort.Find(len(class)/2, func(i int) int {
|
||||||
|
lo, hi := class[2*i], class[2*i+1]
|
||||||
|
if r > hi {
|
||||||
|
return +1
|
||||||
|
}
|
||||||
|
if r < lo {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
})
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
// appendLiteral returns the result of appending the literal x to the class r.
|
// appendLiteral returns the result of appending the literal x to the class r.
|
||||||
func appendLiteral(r []rune, x rune, flags Flags) []rune {
|
func appendLiteral(r []rune, x rune, flags Flags) []rune {
|
||||||
if flags&FoldCase != 0 {
|
if flags&FoldCase != 0 {
|
||||||
|
@ -1937,7 +1959,7 @@ func appendClass(r []rune, x []rune) []rune {
|
||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
// appendFolded returns the result of appending the case folding of the class x to the class r.
|
// appendFoldedClass returns the result of appending the case folding of the class x to the class r.
|
||||||
func appendFoldedClass(r []rune, x []rune) []rune {
|
func appendFoldedClass(r []rune, x []rune) []rune {
|
||||||
for i := 0; i < len(x); i += 2 {
|
for i := 0; i < len(x); i += 2 {
|
||||||
r = appendFoldedRange(r, x[i], x[i+1])
|
r = appendFoldedRange(r, x[i], x[i+1])
|
||||||
|
|
12
vendor/github.com/grafana/regexp/syntax/prog.go
generated
vendored
12
vendor/github.com/grafana/regexp/syntax/prog.go
generated
vendored
|
@ -106,7 +106,9 @@ func EmptyOpContext(r1, r2 rune) EmptyOp {
|
||||||
// during the evaluation of the \b and \B zero-width assertions.
|
// during the evaluation of the \b and \B zero-width assertions.
|
||||||
// These assertions are ASCII-only: the word characters are [A-Za-z0-9_].
|
// These assertions are ASCII-only: the word characters are [A-Za-z0-9_].
|
||||||
func IsWordChar(r rune) bool {
|
func IsWordChar(r rune) bool {
|
||||||
return 'A' <= r && r <= 'Z' || 'a' <= r && r <= 'z' || '0' <= r && r <= '9' || r == '_'
|
// Test for lowercase letters first, as these occur more
|
||||||
|
// frequently than uppercase letters in common cases.
|
||||||
|
return 'a' <= r && r <= 'z' || 'A' <= r && r <= 'Z' || '0' <= r && r <= '9' || r == '_'
|
||||||
}
|
}
|
||||||
|
|
||||||
// An Inst is a single instruction in a regular expression program.
|
// An Inst is a single instruction in a regular expression program.
|
||||||
|
@ -189,7 +191,7 @@ Loop:
|
||||||
const noMatch = -1
|
const noMatch = -1
|
||||||
|
|
||||||
// MatchRune reports whether the instruction matches (and consumes) r.
|
// MatchRune reports whether the instruction matches (and consumes) r.
|
||||||
// It should only be called when i.Op == InstRune.
|
// It should only be called when i.Op == [InstRune].
|
||||||
func (i *Inst) MatchRune(r rune) bool {
|
func (i *Inst) MatchRune(r rune) bool {
|
||||||
return i.MatchRunePos(r) != noMatch
|
return i.MatchRunePos(r) != noMatch
|
||||||
}
|
}
|
||||||
|
@ -198,7 +200,7 @@ func (i *Inst) MatchRune(r rune) bool {
|
||||||
// If so, MatchRunePos returns the index of the matching rune pair
|
// If so, MatchRunePos returns the index of the matching rune pair
|
||||||
// (or, when len(i.Rune) == 1, rune singleton).
|
// (or, when len(i.Rune) == 1, rune singleton).
|
||||||
// If not, MatchRunePos returns -1.
|
// If not, MatchRunePos returns -1.
|
||||||
// MatchRunePos should only be called when i.Op == InstRune.
|
// MatchRunePos should only be called when i.Op == [InstRune].
|
||||||
func (i *Inst) MatchRunePos(r rune) int {
|
func (i *Inst) MatchRunePos(r rune) int {
|
||||||
rune := i.Rune
|
rune := i.Rune
|
||||||
|
|
||||||
|
@ -245,7 +247,7 @@ func (i *Inst) MatchRunePos(r rune) int {
|
||||||
lo := 0
|
lo := 0
|
||||||
hi := len(rune) / 2
|
hi := len(rune) / 2
|
||||||
for lo < hi {
|
for lo < hi {
|
||||||
m := lo + (hi-lo)/2
|
m := int(uint(lo+hi) >> 1)
|
||||||
if c := rune[2*m]; c <= r {
|
if c := rune[2*m]; c <= r {
|
||||||
if r <= rune[2*m+1] {
|
if r <= rune[2*m+1] {
|
||||||
return m
|
return m
|
||||||
|
@ -260,7 +262,7 @@ func (i *Inst) MatchRunePos(r rune) int {
|
||||||
|
|
||||||
// MatchEmptyWidth reports whether the instruction matches
|
// MatchEmptyWidth reports whether the instruction matches
|
||||||
// an empty string between the runes before and after.
|
// an empty string between the runes before and after.
|
||||||
// It should only be called when i.Op == InstEmptyWidth.
|
// It should only be called when i.Op == [InstEmptyWidth].
|
||||||
func (i *Inst) MatchEmptyWidth(before rune, after rune) bool {
|
func (i *Inst) MatchEmptyWidth(before rune, after rune) bool {
|
||||||
switch EmptyOp(i.Arg) {
|
switch EmptyOp(i.Arg) {
|
||||||
case EmptyBeginLine:
|
case EmptyBeginLine:
|
||||||
|
|
236
vendor/github.com/grafana/regexp/syntax/regexp.go
generated
vendored
236
vendor/github.com/grafana/regexp/syntax/regexp.go
generated
vendored
|
@ -8,6 +8,7 @@ package syntax
|
||||||
// In this package, re is always a *Regexp and r is always a rune.
|
// In this package, re is always a *Regexp and r is always a rune.
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"slices"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"unicode"
|
"unicode"
|
||||||
|
@ -75,24 +76,10 @@ func (x *Regexp) Equal(y *Regexp) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
case OpLiteral, OpCharClass:
|
case OpLiteral, OpCharClass:
|
||||||
if len(x.Rune) != len(y.Rune) {
|
return slices.Equal(x.Rune, y.Rune)
|
||||||
return false
|
|
||||||
}
|
|
||||||
for i, r := range x.Rune {
|
|
||||||
if r != y.Rune[i] {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
case OpAlternate, OpConcat:
|
case OpAlternate, OpConcat:
|
||||||
if len(x.Sub) != len(y.Sub) {
|
return slices.EqualFunc(x.Sub, y.Sub, func(a, b *Regexp) bool { return a.Equal(b) })
|
||||||
return false
|
|
||||||
}
|
|
||||||
for i, sub := range x.Sub {
|
|
||||||
if !sub.Equal(y.Sub[i]) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
case OpStar, OpPlus, OpQuest:
|
case OpStar, OpPlus, OpQuest:
|
||||||
if x.Flags&NonGreedy != y.Flags&NonGreedy || !x.Sub[0].Equal(y.Sub[0]) {
|
if x.Flags&NonGreedy != y.Flags&NonGreedy || !x.Sub[0].Equal(y.Sub[0]) {
|
||||||
|
@ -112,8 +99,165 @@ func (x *Regexp) Equal(y *Regexp) bool {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// printFlags is a bit set indicating which flags (including non-capturing parens) to print around a regexp.
|
||||||
|
type printFlags uint8
|
||||||
|
|
||||||
|
const (
|
||||||
|
flagI printFlags = 1 << iota // (?i:
|
||||||
|
flagM // (?m:
|
||||||
|
flagS // (?s:
|
||||||
|
flagOff // )
|
||||||
|
flagPrec // (?: )
|
||||||
|
negShift = 5 // flagI<<negShift is (?-i:
|
||||||
|
)
|
||||||
|
|
||||||
|
// addSpan enables the flags f around start..last,
|
||||||
|
// by setting flags[start] = f and flags[last] = flagOff.
|
||||||
|
func addSpan(start, last *Regexp, f printFlags, flags *map[*Regexp]printFlags) {
|
||||||
|
if *flags == nil {
|
||||||
|
*flags = make(map[*Regexp]printFlags)
|
||||||
|
}
|
||||||
|
(*flags)[start] = f
|
||||||
|
(*flags)[last] |= flagOff // maybe start==last
|
||||||
|
}
|
||||||
|
|
||||||
|
// calcFlags calculates the flags to print around each subexpression in re,
|
||||||
|
// storing that information in (*flags)[sub] for each affected subexpression.
|
||||||
|
// The first time an entry needs to be written to *flags, calcFlags allocates the map.
|
||||||
|
// calcFlags also calculates the flags that must be active or can't be active
|
||||||
|
// around re and returns those flags.
|
||||||
|
func calcFlags(re *Regexp, flags *map[*Regexp]printFlags) (must, cant printFlags) {
|
||||||
|
switch re.Op {
|
||||||
|
default:
|
||||||
|
return 0, 0
|
||||||
|
|
||||||
|
case OpLiteral:
|
||||||
|
// If literal is fold-sensitive, return (flagI, 0) or (0, flagI)
|
||||||
|
// according to whether (?i) is active.
|
||||||
|
// If literal is not fold-sensitive, return 0, 0.
|
||||||
|
for _, r := range re.Rune {
|
||||||
|
if minFold <= r && r <= maxFold && unicode.SimpleFold(r) != r {
|
||||||
|
if re.Flags&FoldCase != 0 {
|
||||||
|
return flagI, 0
|
||||||
|
} else {
|
||||||
|
return 0, flagI
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0, 0
|
||||||
|
|
||||||
|
case OpCharClass:
|
||||||
|
// If literal is fold-sensitive, return 0, flagI - (?i) has been compiled out.
|
||||||
|
// If literal is not fold-sensitive, return 0, 0.
|
||||||
|
for i := 0; i < len(re.Rune); i += 2 {
|
||||||
|
lo := max(minFold, re.Rune[i])
|
||||||
|
hi := min(maxFold, re.Rune[i+1])
|
||||||
|
for r := lo; r <= hi; r++ {
|
||||||
|
for f := unicode.SimpleFold(r); f != r; f = unicode.SimpleFold(f) {
|
||||||
|
if !(lo <= f && f <= hi) && !inCharClass(f, re.Rune) {
|
||||||
|
return 0, flagI
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0, 0
|
||||||
|
|
||||||
|
case OpAnyCharNotNL: // (?-s).
|
||||||
|
return 0, flagS
|
||||||
|
|
||||||
|
case OpAnyChar: // (?s).
|
||||||
|
return flagS, 0
|
||||||
|
|
||||||
|
case OpBeginLine, OpEndLine: // (?m)^ (?m)$
|
||||||
|
return flagM, 0
|
||||||
|
|
||||||
|
case OpEndText:
|
||||||
|
if re.Flags&WasDollar != 0 { // (?-m)$
|
||||||
|
return 0, flagM
|
||||||
|
}
|
||||||
|
return 0, 0
|
||||||
|
|
||||||
|
case OpCapture, OpStar, OpPlus, OpQuest, OpRepeat:
|
||||||
|
return calcFlags(re.Sub[0], flags)
|
||||||
|
|
||||||
|
case OpConcat, OpAlternate:
|
||||||
|
// Gather the must and cant for each subexpression.
|
||||||
|
// When we find a conflicting subexpression, insert the necessary
|
||||||
|
// flags around the previously identified span and start over.
|
||||||
|
var must, cant, allCant printFlags
|
||||||
|
start := 0
|
||||||
|
last := 0
|
||||||
|
did := false
|
||||||
|
for i, sub := range re.Sub {
|
||||||
|
subMust, subCant := calcFlags(sub, flags)
|
||||||
|
if must&subCant != 0 || subMust&cant != 0 {
|
||||||
|
if must != 0 {
|
||||||
|
addSpan(re.Sub[start], re.Sub[last], must, flags)
|
||||||
|
}
|
||||||
|
must = 0
|
||||||
|
cant = 0
|
||||||
|
start = i
|
||||||
|
did = true
|
||||||
|
}
|
||||||
|
must |= subMust
|
||||||
|
cant |= subCant
|
||||||
|
allCant |= subCant
|
||||||
|
if subMust != 0 {
|
||||||
|
last = i
|
||||||
|
}
|
||||||
|
if must == 0 && start == i {
|
||||||
|
start++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !did {
|
||||||
|
// No conflicts: pass the accumulated must and cant upward.
|
||||||
|
return must, cant
|
||||||
|
}
|
||||||
|
if must != 0 {
|
||||||
|
// Conflicts found; need to finish final span.
|
||||||
|
addSpan(re.Sub[start], re.Sub[last], must, flags)
|
||||||
|
}
|
||||||
|
return 0, allCant
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// writeRegexp writes the Perl syntax for the regular expression re to b.
|
// writeRegexp writes the Perl syntax for the regular expression re to b.
|
||||||
func writeRegexp(b *strings.Builder, re *Regexp) {
|
func writeRegexp(b *strings.Builder, re *Regexp, f printFlags, flags map[*Regexp]printFlags) {
|
||||||
|
f |= flags[re]
|
||||||
|
if f&flagPrec != 0 && f&^(flagOff|flagPrec) != 0 && f&flagOff != 0 {
|
||||||
|
// flagPrec is redundant with other flags being added and terminated
|
||||||
|
f &^= flagPrec
|
||||||
|
}
|
||||||
|
if f&^(flagOff|flagPrec) != 0 {
|
||||||
|
b.WriteString(`(?`)
|
||||||
|
if f&flagI != 0 {
|
||||||
|
b.WriteString(`i`)
|
||||||
|
}
|
||||||
|
if f&flagM != 0 {
|
||||||
|
b.WriteString(`m`)
|
||||||
|
}
|
||||||
|
if f&flagS != 0 {
|
||||||
|
b.WriteString(`s`)
|
||||||
|
}
|
||||||
|
if f&((flagM|flagS)<<negShift) != 0 {
|
||||||
|
b.WriteString(`-`)
|
||||||
|
if f&(flagM<<negShift) != 0 {
|
||||||
|
b.WriteString(`m`)
|
||||||
|
}
|
||||||
|
if f&(flagS<<negShift) != 0 {
|
||||||
|
b.WriteString(`s`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
b.WriteString(`:`)
|
||||||
|
}
|
||||||
|
if f&flagOff != 0 {
|
||||||
|
defer b.WriteString(`)`)
|
||||||
|
}
|
||||||
|
if f&flagPrec != 0 {
|
||||||
|
b.WriteString(`(?:`)
|
||||||
|
defer b.WriteString(`)`)
|
||||||
|
}
|
||||||
|
|
||||||
switch re.Op {
|
switch re.Op {
|
||||||
default:
|
default:
|
||||||
b.WriteString("<invalid op" + strconv.Itoa(int(re.Op)) + ">")
|
b.WriteString("<invalid op" + strconv.Itoa(int(re.Op)) + ">")
|
||||||
|
@ -122,15 +266,9 @@ func writeRegexp(b *strings.Builder, re *Regexp) {
|
||||||
case OpEmptyMatch:
|
case OpEmptyMatch:
|
||||||
b.WriteString(`(?:)`)
|
b.WriteString(`(?:)`)
|
||||||
case OpLiteral:
|
case OpLiteral:
|
||||||
if re.Flags&FoldCase != 0 {
|
|
||||||
b.WriteString(`(?i:`)
|
|
||||||
}
|
|
||||||
for _, r := range re.Rune {
|
for _, r := range re.Rune {
|
||||||
escape(b, r, false)
|
escape(b, r, false)
|
||||||
}
|
}
|
||||||
if re.Flags&FoldCase != 0 {
|
|
||||||
b.WriteString(`)`)
|
|
||||||
}
|
|
||||||
case OpCharClass:
|
case OpCharClass:
|
||||||
if len(re.Rune)%2 != 0 {
|
if len(re.Rune)%2 != 0 {
|
||||||
b.WriteString(`[invalid char class]`)
|
b.WriteString(`[invalid char class]`)
|
||||||
|
@ -147,7 +285,9 @@ func writeRegexp(b *strings.Builder, re *Regexp) {
|
||||||
lo, hi := re.Rune[i]+1, re.Rune[i+1]-1
|
lo, hi := re.Rune[i]+1, re.Rune[i+1]-1
|
||||||
escape(b, lo, lo == '-')
|
escape(b, lo, lo == '-')
|
||||||
if lo != hi {
|
if lo != hi {
|
||||||
b.WriteRune('-')
|
if hi != lo+1 {
|
||||||
|
b.WriteRune('-')
|
||||||
|
}
|
||||||
escape(b, hi, hi == '-')
|
escape(b, hi, hi == '-')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -156,25 +296,25 @@ func writeRegexp(b *strings.Builder, re *Regexp) {
|
||||||
lo, hi := re.Rune[i], re.Rune[i+1]
|
lo, hi := re.Rune[i], re.Rune[i+1]
|
||||||
escape(b, lo, lo == '-')
|
escape(b, lo, lo == '-')
|
||||||
if lo != hi {
|
if lo != hi {
|
||||||
b.WriteRune('-')
|
if hi != lo+1 {
|
||||||
|
b.WriteRune('-')
|
||||||
|
}
|
||||||
escape(b, hi, hi == '-')
|
escape(b, hi, hi == '-')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
b.WriteRune(']')
|
b.WriteRune(']')
|
||||||
case OpAnyCharNotNL:
|
case OpAnyCharNotNL, OpAnyChar:
|
||||||
b.WriteString(`(?-s:.)`)
|
b.WriteString(`.`)
|
||||||
case OpAnyChar:
|
|
||||||
b.WriteString(`(?s:.)`)
|
|
||||||
case OpBeginLine:
|
case OpBeginLine:
|
||||||
b.WriteString(`(?m:^)`)
|
b.WriteString(`^`)
|
||||||
case OpEndLine:
|
case OpEndLine:
|
||||||
b.WriteString(`(?m:$)`)
|
b.WriteString(`$`)
|
||||||
case OpBeginText:
|
case OpBeginText:
|
||||||
b.WriteString(`\A`)
|
b.WriteString(`\A`)
|
||||||
case OpEndText:
|
case OpEndText:
|
||||||
if re.Flags&WasDollar != 0 {
|
if re.Flags&WasDollar != 0 {
|
||||||
b.WriteString(`(?-m:$)`)
|
b.WriteString(`$`)
|
||||||
} else {
|
} else {
|
||||||
b.WriteString(`\z`)
|
b.WriteString(`\z`)
|
||||||
}
|
}
|
||||||
|
@ -191,17 +331,17 @@ func writeRegexp(b *strings.Builder, re *Regexp) {
|
||||||
b.WriteRune('(')
|
b.WriteRune('(')
|
||||||
}
|
}
|
||||||
if re.Sub[0].Op != OpEmptyMatch {
|
if re.Sub[0].Op != OpEmptyMatch {
|
||||||
writeRegexp(b, re.Sub[0])
|
writeRegexp(b, re.Sub[0], flags[re.Sub[0]], flags)
|
||||||
}
|
}
|
||||||
b.WriteRune(')')
|
b.WriteRune(')')
|
||||||
case OpStar, OpPlus, OpQuest, OpRepeat:
|
case OpStar, OpPlus, OpQuest, OpRepeat:
|
||||||
if sub := re.Sub[0]; sub.Op > OpCapture || sub.Op == OpLiteral && len(sub.Rune) > 1 {
|
p := printFlags(0)
|
||||||
b.WriteString(`(?:`)
|
sub := re.Sub[0]
|
||||||
writeRegexp(b, sub)
|
if sub.Op > OpCapture || sub.Op == OpLiteral && len(sub.Rune) > 1 {
|
||||||
b.WriteString(`)`)
|
p = flagPrec
|
||||||
} else {
|
|
||||||
writeRegexp(b, sub)
|
|
||||||
}
|
}
|
||||||
|
writeRegexp(b, sub, p, flags)
|
||||||
|
|
||||||
switch re.Op {
|
switch re.Op {
|
||||||
case OpStar:
|
case OpStar:
|
||||||
b.WriteRune('*')
|
b.WriteRune('*')
|
||||||
|
@ -225,27 +365,31 @@ func writeRegexp(b *strings.Builder, re *Regexp) {
|
||||||
}
|
}
|
||||||
case OpConcat:
|
case OpConcat:
|
||||||
for _, sub := range re.Sub {
|
for _, sub := range re.Sub {
|
||||||
|
p := printFlags(0)
|
||||||
if sub.Op == OpAlternate {
|
if sub.Op == OpAlternate {
|
||||||
b.WriteString(`(?:`)
|
p = flagPrec
|
||||||
writeRegexp(b, sub)
|
|
||||||
b.WriteString(`)`)
|
|
||||||
} else {
|
|
||||||
writeRegexp(b, sub)
|
|
||||||
}
|
}
|
||||||
|
writeRegexp(b, sub, p, flags)
|
||||||
}
|
}
|
||||||
case OpAlternate:
|
case OpAlternate:
|
||||||
for i, sub := range re.Sub {
|
for i, sub := range re.Sub {
|
||||||
if i > 0 {
|
if i > 0 {
|
||||||
b.WriteRune('|')
|
b.WriteRune('|')
|
||||||
}
|
}
|
||||||
writeRegexp(b, sub)
|
writeRegexp(b, sub, 0, flags)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (re *Regexp) String() string {
|
func (re *Regexp) String() string {
|
||||||
var b strings.Builder
|
var b strings.Builder
|
||||||
writeRegexp(&b, re)
|
var flags map[*Regexp]printFlags
|
||||||
|
must, cant := calcFlags(re, &flags)
|
||||||
|
must |= (cant &^ flagI) << negShift
|
||||||
|
if must != 0 {
|
||||||
|
must |= flagOff
|
||||||
|
}
|
||||||
|
writeRegexp(&b, re, must, flags)
|
||||||
return b.String()
|
return b.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
2
vendor/github.com/prometheus/procfs/Makefile.common
generated
vendored
2
vendor/github.com/prometheus/procfs/Makefile.common
generated
vendored
|
@ -55,7 +55,7 @@ ifneq ($(shell command -v gotestsum 2> /dev/null),)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PROMU_VERSION ?= 0.15.0
|
PROMU_VERSION ?= 0.17.0
|
||||||
PROMU_URL := https://github.com/prometheus/promu/releases/download/v$(PROMU_VERSION)/promu-$(PROMU_VERSION).$(GO_BUILD_PLATFORM).tar.gz
|
PROMU_URL := https://github.com/prometheus/promu/releases/download/v$(PROMU_VERSION)/promu-$(PROMU_VERSION).$(GO_BUILD_PLATFORM).tar.gz
|
||||||
|
|
||||||
SKIP_GOLANGCI_LINT :=
|
SKIP_GOLANGCI_LINT :=
|
||||||
|
|
4
vendor/github.com/prometheus/procfs/buddyinfo.go
generated
vendored
4
vendor/github.com/prometheus/procfs/buddyinfo.go
generated
vendored
|
@ -58,8 +58,8 @@ func parseBuddyInfo(r io.Reader) ([]BuddyInfo, error) {
|
||||||
return nil, fmt.Errorf("%w: Invalid number of fields, found: %v", ErrFileParse, parts)
|
return nil, fmt.Errorf("%w: Invalid number of fields, found: %v", ErrFileParse, parts)
|
||||||
}
|
}
|
||||||
|
|
||||||
node := strings.TrimRight(parts[1], ",")
|
node := strings.TrimSuffix(parts[1], ",")
|
||||||
zone := strings.TrimRight(parts[3], ",")
|
zone := strings.TrimSuffix(parts[3], ",")
|
||||||
arraySize := len(parts[4:])
|
arraySize := len(parts[4:])
|
||||||
|
|
||||||
if bucketCount == -1 {
|
if bucketCount == -1 {
|
||||||
|
|
42
vendor/github.com/prometheus/procfs/mdstat.go
generated
vendored
42
vendor/github.com/prometheus/procfs/mdstat.go
generated
vendored
|
@ -23,7 +23,7 @@ import (
|
||||||
|
|
||||||
var (
|
var (
|
||||||
statusLineRE = regexp.MustCompile(`(\d+) blocks .*\[(\d+)/(\d+)\] \[([U_]+)\]`)
|
statusLineRE = regexp.MustCompile(`(\d+) blocks .*\[(\d+)/(\d+)\] \[([U_]+)\]`)
|
||||||
recoveryLineBlocksRE = regexp.MustCompile(`\((\d+)/\d+\)`)
|
recoveryLineBlocksRE = regexp.MustCompile(`\((\d+/\d+)\)`)
|
||||||
recoveryLinePctRE = regexp.MustCompile(`= (.+)%`)
|
recoveryLinePctRE = regexp.MustCompile(`= (.+)%`)
|
||||||
recoveryLineFinishRE = regexp.MustCompile(`finish=(.+)min`)
|
recoveryLineFinishRE = regexp.MustCompile(`finish=(.+)min`)
|
||||||
recoveryLineSpeedRE = regexp.MustCompile(`speed=(.+)[A-Z]`)
|
recoveryLineSpeedRE = regexp.MustCompile(`speed=(.+)[A-Z]`)
|
||||||
|
@ -50,6 +50,8 @@ type MDStat struct {
|
||||||
BlocksTotal int64
|
BlocksTotal int64
|
||||||
// Number of blocks on the device that are in sync.
|
// Number of blocks on the device that are in sync.
|
||||||
BlocksSynced int64
|
BlocksSynced int64
|
||||||
|
// Number of blocks on the device that need to be synced.
|
||||||
|
BlocksToBeSynced int64
|
||||||
// progress percentage of current sync
|
// progress percentage of current sync
|
||||||
BlocksSyncedPct float64
|
BlocksSyncedPct float64
|
||||||
// estimated finishing time for current sync (in minutes)
|
// estimated finishing time for current sync (in minutes)
|
||||||
|
@ -115,7 +117,8 @@ func parseMDStat(mdStatData []byte) ([]MDStat, error) {
|
||||||
|
|
||||||
// If device is syncing at the moment, get the number of currently
|
// If device is syncing at the moment, get the number of currently
|
||||||
// synced bytes, otherwise that number equals the size of the device.
|
// synced bytes, otherwise that number equals the size of the device.
|
||||||
syncedBlocks := size
|
blocksSynced := size
|
||||||
|
blocksToBeSynced := size
|
||||||
speed := float64(0)
|
speed := float64(0)
|
||||||
finish := float64(0)
|
finish := float64(0)
|
||||||
pct := float64(0)
|
pct := float64(0)
|
||||||
|
@ -136,9 +139,9 @@ func parseMDStat(mdStatData []byte) ([]MDStat, error) {
|
||||||
// Handle case when resync=PENDING or resync=DELAYED.
|
// Handle case when resync=PENDING or resync=DELAYED.
|
||||||
if strings.Contains(lines[syncLineIdx], "PENDING") ||
|
if strings.Contains(lines[syncLineIdx], "PENDING") ||
|
||||||
strings.Contains(lines[syncLineIdx], "DELAYED") {
|
strings.Contains(lines[syncLineIdx], "DELAYED") {
|
||||||
syncedBlocks = 0
|
blocksSynced = 0
|
||||||
} else {
|
} else {
|
||||||
syncedBlocks, pct, finish, speed, err = evalRecoveryLine(lines[syncLineIdx])
|
blocksSynced, blocksToBeSynced, pct, finish, speed, err = evalRecoveryLine(lines[syncLineIdx])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("%w: Cannot parse sync line in md device: %q: %w", ErrFileParse, mdName, err)
|
return nil, fmt.Errorf("%w: Cannot parse sync line in md device: %q: %w", ErrFileParse, mdName, err)
|
||||||
}
|
}
|
||||||
|
@ -154,7 +157,8 @@ func parseMDStat(mdStatData []byte) ([]MDStat, error) {
|
||||||
DisksSpare: spare,
|
DisksSpare: spare,
|
||||||
DisksTotal: total,
|
DisksTotal: total,
|
||||||
BlocksTotal: size,
|
BlocksTotal: size,
|
||||||
BlocksSynced: syncedBlocks,
|
BlocksSynced: blocksSynced,
|
||||||
|
BlocksToBeSynced: blocksToBeSynced,
|
||||||
BlocksSyncedPct: pct,
|
BlocksSyncedPct: pct,
|
||||||
BlocksSyncedFinishTime: finish,
|
BlocksSyncedFinishTime: finish,
|
||||||
BlocksSyncedSpeed: speed,
|
BlocksSyncedSpeed: speed,
|
||||||
|
@ -206,48 +210,54 @@ func evalStatusLine(deviceLine, statusLine string) (active, total, down, size in
|
||||||
return active, total, down, size, nil
|
return active, total, down, size, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func evalRecoveryLine(recoveryLine string) (syncedBlocks int64, pct float64, finish float64, speed float64, err error) {
|
func evalRecoveryLine(recoveryLine string) (blocksSynced int64, blocksToBeSynced int64, pct float64, finish float64, speed float64, err error) {
|
||||||
matches := recoveryLineBlocksRE.FindStringSubmatch(recoveryLine)
|
matches := recoveryLineBlocksRE.FindStringSubmatch(recoveryLine)
|
||||||
if len(matches) != 2 {
|
if len(matches) != 2 {
|
||||||
return 0, 0, 0, 0, fmt.Errorf("%w: Unexpected recoveryLine %s: %w", ErrFileParse, recoveryLine, err)
|
return 0, 0, 0, 0, 0, fmt.Errorf("%w: Unexpected recoveryLine blocks %s: %w", ErrFileParse, recoveryLine, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
syncedBlocks, err = strconv.ParseInt(matches[1], 10, 64)
|
blocks := strings.Split(matches[1], "/")
|
||||||
|
blocksSynced, err = strconv.ParseInt(blocks[0], 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, 0, 0, 0, fmt.Errorf("%w: Unexpected parsing of recoveryLine %q: %w", ErrFileParse, recoveryLine, err)
|
return 0, 0, 0, 0, 0, fmt.Errorf("%w: Unable to parse recovery blocks synced %q: %w", ErrFileParse, matches[1], err)
|
||||||
|
}
|
||||||
|
|
||||||
|
blocksToBeSynced, err = strconv.ParseInt(blocks[1], 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
return blocksSynced, 0, 0, 0, 0, fmt.Errorf("%w: Unable to parse recovery to be synced blocks %q: %w", ErrFileParse, matches[2], err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get percentage complete
|
// Get percentage complete
|
||||||
matches = recoveryLinePctRE.FindStringSubmatch(recoveryLine)
|
matches = recoveryLinePctRE.FindStringSubmatch(recoveryLine)
|
||||||
if len(matches) != 2 {
|
if len(matches) != 2 {
|
||||||
return syncedBlocks, 0, 0, 0, fmt.Errorf("%w: Unexpected recoveryLine matching percentage %s", ErrFileParse, recoveryLine)
|
return blocksSynced, blocksToBeSynced, 0, 0, 0, fmt.Errorf("%w: Unexpected recoveryLine matching percentage %s", ErrFileParse, recoveryLine)
|
||||||
}
|
}
|
||||||
pct, err = strconv.ParseFloat(strings.TrimSpace(matches[1]), 64)
|
pct, err = strconv.ParseFloat(strings.TrimSpace(matches[1]), 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return syncedBlocks, 0, 0, 0, fmt.Errorf("%w: Error parsing float from recoveryLine %q", ErrFileParse, recoveryLine)
|
return blocksSynced, blocksToBeSynced, 0, 0, 0, fmt.Errorf("%w: Error parsing float from recoveryLine %q", ErrFileParse, recoveryLine)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get time expected left to complete
|
// Get time expected left to complete
|
||||||
matches = recoveryLineFinishRE.FindStringSubmatch(recoveryLine)
|
matches = recoveryLineFinishRE.FindStringSubmatch(recoveryLine)
|
||||||
if len(matches) != 2 {
|
if len(matches) != 2 {
|
||||||
return syncedBlocks, pct, 0, 0, fmt.Errorf("%w: Unexpected recoveryLine matching est. finish time: %s", ErrFileParse, recoveryLine)
|
return blocksSynced, blocksToBeSynced, pct, 0, 0, fmt.Errorf("%w: Unexpected recoveryLine matching est. finish time: %s", ErrFileParse, recoveryLine)
|
||||||
}
|
}
|
||||||
finish, err = strconv.ParseFloat(matches[1], 64)
|
finish, err = strconv.ParseFloat(matches[1], 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return syncedBlocks, pct, 0, 0, fmt.Errorf("%w: Unable to parse float from recoveryLine: %q", ErrFileParse, recoveryLine)
|
return blocksSynced, blocksToBeSynced, pct, 0, 0, fmt.Errorf("%w: Unable to parse float from recoveryLine: %q", ErrFileParse, recoveryLine)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get recovery speed
|
// Get recovery speed
|
||||||
matches = recoveryLineSpeedRE.FindStringSubmatch(recoveryLine)
|
matches = recoveryLineSpeedRE.FindStringSubmatch(recoveryLine)
|
||||||
if len(matches) != 2 {
|
if len(matches) != 2 {
|
||||||
return syncedBlocks, pct, finish, 0, fmt.Errorf("%w: Unexpected recoveryLine value: %s", ErrFileParse, recoveryLine)
|
return blocksSynced, blocksToBeSynced, pct, finish, 0, fmt.Errorf("%w: Unexpected recoveryLine value: %s", ErrFileParse, recoveryLine)
|
||||||
}
|
}
|
||||||
speed, err = strconv.ParseFloat(matches[1], 64)
|
speed, err = strconv.ParseFloat(matches[1], 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return syncedBlocks, pct, finish, 0, fmt.Errorf("%w: Error parsing float from recoveryLine: %q: %w", ErrFileParse, recoveryLine, err)
|
return blocksSynced, blocksToBeSynced, pct, finish, 0, fmt.Errorf("%w: Error parsing float from recoveryLine: %q: %w", ErrFileParse, recoveryLine, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return syncedBlocks, pct, finish, speed, nil
|
return blocksSynced, blocksToBeSynced, pct, finish, speed, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func evalComponentDevices(deviceFields []string) []string {
|
func evalComponentDevices(deviceFields []string) []string {
|
||||||
|
|
4
vendor/github.com/prometheus/procfs/mountstats.go
generated
vendored
4
vendor/github.com/prometheus/procfs/mountstats.go
generated
vendored
|
@ -88,7 +88,7 @@ type MountStatsNFS struct {
|
||||||
// Statistics broken down by filesystem operation.
|
// Statistics broken down by filesystem operation.
|
||||||
Operations []NFSOperationStats
|
Operations []NFSOperationStats
|
||||||
// Statistics about the NFS RPC transport.
|
// Statistics about the NFS RPC transport.
|
||||||
Transport NFSTransportStats
|
Transport []NFSTransportStats
|
||||||
}
|
}
|
||||||
|
|
||||||
// mountStats implements MountStats.
|
// mountStats implements MountStats.
|
||||||
|
@ -432,7 +432,7 @@ func parseMountStatsNFS(s *bufio.Scanner, statVersion string) (*MountStatsNFS, e
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
stats.Transport = *tstats
|
stats.Transport = append(stats.Transport, *tstats)
|
||||||
}
|
}
|
||||||
|
|
||||||
// When encountering "per-operation statistics", we must break this
|
// When encountering "per-operation statistics", we must break this
|
||||||
|
|
2
vendor/github.com/prometheus/procfs/proc.go
generated
vendored
2
vendor/github.com/prometheus/procfs/proc.go
generated
vendored
|
@ -137,7 +137,7 @@ func (p Proc) CmdLine() ([]string, error) {
|
||||||
return []string{}, nil
|
return []string{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return strings.Split(string(bytes.TrimRight(data, string("\x00"))), string(byte(0))), nil
|
return strings.Split(string(bytes.TrimRight(data, "\x00")), "\x00"), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wchan returns the wchan (wait channel) of a process.
|
// Wchan returns the wchan (wait channel) of a process.
|
||||||
|
|
2
vendor/github.com/prometheus/procfs/proc_smaps.go
generated
vendored
2
vendor/github.com/prometheus/procfs/proc_smaps.go
generated
vendored
|
@ -127,7 +127,7 @@ func (s *ProcSMapsRollup) parseLine(line string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
v := strings.TrimSpace(kv[1])
|
v := strings.TrimSpace(kv[1])
|
||||||
v = strings.TrimRight(v, " kB")
|
v = strings.TrimSuffix(v, " kB")
|
||||||
|
|
||||||
vKBytes, err := strconv.ParseUint(v, 10, 64)
|
vKBytes, err := strconv.ParseUint(v, 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
4
vendor/github.com/valyala/gozstd/Makefile
generated
vendored
4
vendor/github.com/valyala/gozstd/Makefile
generated
vendored
|
@ -3,7 +3,7 @@ GOARCH ?= $(shell go env GOARCH)
|
||||||
GOOS_GOARCH := $(GOOS)_$(GOARCH)
|
GOOS_GOARCH := $(GOOS)_$(GOARCH)
|
||||||
GOOS_GOARCH_NATIVE := $(shell go env GOHOSTOS)_$(shell go env GOHOSTARCH)
|
GOOS_GOARCH_NATIVE := $(shell go env GOHOSTOS)_$(shell go env GOHOSTARCH)
|
||||||
LIBZSTD_NAME := libzstd_$(GOOS_GOARCH).a
|
LIBZSTD_NAME := libzstd_$(GOOS_GOARCH).a
|
||||||
ZSTD_VERSION ?= v1.5.5
|
ZSTD_VERSION ?= v1.5.6
|
||||||
ZIG_BUILDER_IMAGE=euantorano/zig:0.10.1
|
ZIG_BUILDER_IMAGE=euantorano/zig:0.10.1
|
||||||
BUILDER_IMAGE := local/builder_musl:2.0.0-$(shell echo $(ZIG_BUILDER_IMAGE) | tr : _ | tr / _)-1
|
BUILDER_IMAGE := local/builder_musl:2.0.0-$(shell echo $(ZIG_BUILDER_IMAGE) | tr : _ | tr / _)-1
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ update-zstd:
|
||||||
cp zstd/lib/zstd_errors.h .
|
cp zstd/lib/zstd_errors.h .
|
||||||
|
|
||||||
test:
|
test:
|
||||||
CGO_ENABLED=1 GODEBUG=cgocheck=2 go test -v
|
CGO_ENABLED=1 GOEXPERIMENT=cgocheck2 go test -v
|
||||||
|
|
||||||
bench:
|
bench:
|
||||||
CGO_ENABLED=1 go test -bench=.
|
CGO_ENABLED=1 go test -bench=.
|
||||||
|
|
BIN
vendor/github.com/valyala/gozstd/libzstd_darwin_amd64.a
generated
vendored
BIN
vendor/github.com/valyala/gozstd/libzstd_darwin_amd64.a
generated
vendored
Binary file not shown.
BIN
vendor/github.com/valyala/gozstd/libzstd_darwin_arm64.a
generated
vendored
BIN
vendor/github.com/valyala/gozstd/libzstd_darwin_arm64.a
generated
vendored
Binary file not shown.
BIN
vendor/github.com/valyala/gozstd/libzstd_linux_amd64.a
generated
vendored
BIN
vendor/github.com/valyala/gozstd/libzstd_linux_amd64.a
generated
vendored
Binary file not shown.
BIN
vendor/github.com/valyala/gozstd/libzstd_linux_arm.a
generated
vendored
BIN
vendor/github.com/valyala/gozstd/libzstd_linux_arm.a
generated
vendored
Binary file not shown.
BIN
vendor/github.com/valyala/gozstd/libzstd_linux_arm64.a
generated
vendored
BIN
vendor/github.com/valyala/gozstd/libzstd_linux_arm64.a
generated
vendored
Binary file not shown.
BIN
vendor/github.com/valyala/gozstd/libzstd_linux_musl_amd64.a
generated
vendored
BIN
vendor/github.com/valyala/gozstd/libzstd_linux_musl_amd64.a
generated
vendored
Binary file not shown.
BIN
vendor/github.com/valyala/gozstd/libzstd_linux_musl_arm64.a
generated
vendored
BIN
vendor/github.com/valyala/gozstd/libzstd_linux_musl_arm64.a
generated
vendored
Binary file not shown.
BIN
vendor/github.com/valyala/gozstd/libzstd_windows_amd64.a
generated
vendored
BIN
vendor/github.com/valyala/gozstd/libzstd_windows_amd64.a
generated
vendored
Binary file not shown.
8
vendor/github.com/valyala/gozstd/reader.go
generated
vendored
8
vendor/github.com/valyala/gozstd/reader.go
generated
vendored
|
@ -73,13 +73,13 @@ func NewReaderDict(r io.Reader, dd *DDict) *Reader {
|
||||||
ds := C.ZSTD_createDStream()
|
ds := C.ZSTD_createDStream()
|
||||||
initDStream(ds, dd)
|
initDStream(ds, dd)
|
||||||
|
|
||||||
inBuf := (*C.ZSTD_inBuffer)(C.malloc(C.sizeof_ZSTD_inBuffer))
|
inBuf := (*C.ZSTD_inBuffer)(C.calloc(1, C.sizeof_ZSTD_inBuffer))
|
||||||
inBuf.src = C.malloc(dstreamInBufSize)
|
inBuf.src = C.calloc(1, dstreamInBufSize)
|
||||||
inBuf.size = 0
|
inBuf.size = 0
|
||||||
inBuf.pos = 0
|
inBuf.pos = 0
|
||||||
|
|
||||||
outBuf := (*C.ZSTD_outBuffer)(C.malloc(C.sizeof_ZSTD_outBuffer))
|
outBuf := (*C.ZSTD_outBuffer)(C.calloc(1, C.sizeof_ZSTD_outBuffer))
|
||||||
outBuf.dst = C.malloc(dstreamOutBufSize)
|
outBuf.dst = C.calloc(1, dstreamOutBufSize)
|
||||||
outBuf.size = 0
|
outBuf.size = 0
|
||||||
outBuf.pos = 0
|
outBuf.pos = 0
|
||||||
|
|
||||||
|
|
8
vendor/github.com/valyala/gozstd/writer.go
generated
vendored
8
vendor/github.com/valyala/gozstd/writer.go
generated
vendored
|
@ -160,13 +160,13 @@ func NewWriterParams(w io.Writer, params *WriterParams) *Writer {
|
||||||
cs := C.ZSTD_createCStream()
|
cs := C.ZSTD_createCStream()
|
||||||
initCStream(cs, *params)
|
initCStream(cs, *params)
|
||||||
|
|
||||||
inBuf := (*C.ZSTD_inBuffer)(C.malloc(C.sizeof_ZSTD_inBuffer))
|
inBuf := (*C.ZSTD_inBuffer)(C.calloc(1, C.sizeof_ZSTD_inBuffer))
|
||||||
inBuf.src = C.malloc(cstreamInBufSize)
|
inBuf.src = C.calloc(1, cstreamInBufSize)
|
||||||
inBuf.size = 0
|
inBuf.size = 0
|
||||||
inBuf.pos = 0
|
inBuf.pos = 0
|
||||||
|
|
||||||
outBuf := (*C.ZSTD_outBuffer)(C.malloc(C.sizeof_ZSTD_outBuffer))
|
outBuf := (*C.ZSTD_outBuffer)(C.calloc(1, C.sizeof_ZSTD_outBuffer))
|
||||||
outBuf.dst = C.malloc(cstreamOutBufSize)
|
outBuf.dst = C.calloc(1, cstreamOutBufSize)
|
||||||
outBuf.size = cstreamOutBufSize
|
outBuf.size = cstreamOutBufSize
|
||||||
outBuf.pos = 0
|
outBuf.pos = 0
|
||||||
|
|
||||||
|
|
189
vendor/github.com/valyala/gozstd/zstd.h
generated
vendored
189
vendor/github.com/valyala/gozstd/zstd.h
generated
vendored
|
@ -106,7 +106,7 @@ extern "C" {
|
||||||
/*------ Version ------*/
|
/*------ Version ------*/
|
||||||
#define ZSTD_VERSION_MAJOR 1
|
#define ZSTD_VERSION_MAJOR 1
|
||||||
#define ZSTD_VERSION_MINOR 5
|
#define ZSTD_VERSION_MINOR 5
|
||||||
#define ZSTD_VERSION_RELEASE 5
|
#define ZSTD_VERSION_RELEASE 6
|
||||||
#define ZSTD_VERSION_NUMBER (ZSTD_VERSION_MAJOR *100*100 + ZSTD_VERSION_MINOR *100 + ZSTD_VERSION_RELEASE)
|
#define ZSTD_VERSION_NUMBER (ZSTD_VERSION_MAJOR *100*100 + ZSTD_VERSION_MINOR *100 + ZSTD_VERSION_RELEASE)
|
||||||
|
|
||||||
/*! ZSTD_versionNumber() :
|
/*! ZSTD_versionNumber() :
|
||||||
|
@ -228,7 +228,7 @@ ZSTDLIB_API size_t ZSTD_findFrameCompressedSize(const void* src, size_t srcSize)
|
||||||
* for example to size a static array on stack.
|
* for example to size a static array on stack.
|
||||||
* Will produce constant value 0 if srcSize too large.
|
* Will produce constant value 0 if srcSize too large.
|
||||||
*/
|
*/
|
||||||
#define ZSTD_MAX_INPUT_SIZE ((sizeof(size_t)==8) ? 0xFF00FF00FF00FF00LLU : 0xFF00FF00U)
|
#define ZSTD_MAX_INPUT_SIZE ((sizeof(size_t)==8) ? 0xFF00FF00FF00FF00ULL : 0xFF00FF00U)
|
||||||
#define ZSTD_COMPRESSBOUND(srcSize) (((size_t)(srcSize) >= ZSTD_MAX_INPUT_SIZE) ? 0 : (srcSize) + ((srcSize)>>8) + (((srcSize) < (128<<10)) ? (((128<<10) - (srcSize)) >> 11) /* margin, from 64 to 0 */ : 0)) /* this formula ensures that bound(A) + bound(B) <= bound(A+B) as long as A and B >= 128 KB */
|
#define ZSTD_COMPRESSBOUND(srcSize) (((size_t)(srcSize) >= ZSTD_MAX_INPUT_SIZE) ? 0 : (srcSize) + ((srcSize)>>8) + (((srcSize) < (128<<10)) ? (((128<<10) - (srcSize)) >> 11) /* margin, from 64 to 0 */ : 0)) /* this formula ensures that bound(A) + bound(B) <= bound(A+B) as long as A and B >= 128 KB */
|
||||||
ZSTDLIB_API size_t ZSTD_compressBound(size_t srcSize); /*!< maximum compressed size in worst case single-pass scenario */
|
ZSTDLIB_API size_t ZSTD_compressBound(size_t srcSize); /*!< maximum compressed size in worst case single-pass scenario */
|
||||||
/* ZSTD_isError() :
|
/* ZSTD_isError() :
|
||||||
|
@ -249,7 +249,7 @@ ZSTDLIB_API int ZSTD_defaultCLevel(void); /*!< default compres
|
||||||
/*= Compression context
|
/*= Compression context
|
||||||
* When compressing many times,
|
* When compressing many times,
|
||||||
* it is recommended to allocate a context just once,
|
* it is recommended to allocate a context just once,
|
||||||
* and re-use it for each successive compression operation.
|
* and reuse it for each successive compression operation.
|
||||||
* This will make workload friendlier for system's memory.
|
* This will make workload friendlier for system's memory.
|
||||||
* Note : re-using context is just a speed / resource optimization.
|
* Note : re-using context is just a speed / resource optimization.
|
||||||
* It doesn't change the compression ratio, which remains identical.
|
* It doesn't change the compression ratio, which remains identical.
|
||||||
|
@ -262,9 +262,9 @@ ZSTDLIB_API size_t ZSTD_freeCCtx(ZSTD_CCtx* cctx); /* accept NULL pointer *
|
||||||
|
|
||||||
/*! ZSTD_compressCCtx() :
|
/*! ZSTD_compressCCtx() :
|
||||||
* Same as ZSTD_compress(), using an explicit ZSTD_CCtx.
|
* Same as ZSTD_compress(), using an explicit ZSTD_CCtx.
|
||||||
* Important : in order to behave similarly to `ZSTD_compress()`,
|
* Important : in order to mirror `ZSTD_compress()` behavior,
|
||||||
* this function compresses at requested compression level,
|
* this function compresses at the requested compression level,
|
||||||
* __ignoring any other parameter__ .
|
* __ignoring any other advanced parameter__ .
|
||||||
* If any advanced parameter was set using the advanced API,
|
* If any advanced parameter was set using the advanced API,
|
||||||
* they will all be reset. Only `compressionLevel` remains.
|
* they will all be reset. Only `compressionLevel` remains.
|
||||||
*/
|
*/
|
||||||
|
@ -276,7 +276,7 @@ ZSTDLIB_API size_t ZSTD_compressCCtx(ZSTD_CCtx* cctx,
|
||||||
/*= Decompression context
|
/*= Decompression context
|
||||||
* When decompressing many times,
|
* When decompressing many times,
|
||||||
* it is recommended to allocate a context only once,
|
* it is recommended to allocate a context only once,
|
||||||
* and re-use it for each successive compression operation.
|
* and reuse it for each successive compression operation.
|
||||||
* This will make workload friendlier for system's memory.
|
* This will make workload friendlier for system's memory.
|
||||||
* Use one context per thread for parallel execution. */
|
* Use one context per thread for parallel execution. */
|
||||||
typedef struct ZSTD_DCtx_s ZSTD_DCtx;
|
typedef struct ZSTD_DCtx_s ZSTD_DCtx;
|
||||||
|
@ -286,7 +286,7 @@ ZSTDLIB_API size_t ZSTD_freeDCtx(ZSTD_DCtx* dctx); /* accept NULL pointer *
|
||||||
/*! ZSTD_decompressDCtx() :
|
/*! ZSTD_decompressDCtx() :
|
||||||
* Same as ZSTD_decompress(),
|
* Same as ZSTD_decompress(),
|
||||||
* requires an allocated ZSTD_DCtx.
|
* requires an allocated ZSTD_DCtx.
|
||||||
* Compatible with sticky parameters.
|
* Compatible with sticky parameters (see below).
|
||||||
*/
|
*/
|
||||||
ZSTDLIB_API size_t ZSTD_decompressDCtx(ZSTD_DCtx* dctx,
|
ZSTDLIB_API size_t ZSTD_decompressDCtx(ZSTD_DCtx* dctx,
|
||||||
void* dst, size_t dstCapacity,
|
void* dst, size_t dstCapacity,
|
||||||
|
@ -302,12 +302,12 @@ ZSTDLIB_API size_t ZSTD_decompressDCtx(ZSTD_DCtx* dctx,
|
||||||
* using ZSTD_CCtx_set*() functions.
|
* using ZSTD_CCtx_set*() functions.
|
||||||
* Pushed parameters are sticky : they are valid for next compressed frame, and any subsequent frame.
|
* Pushed parameters are sticky : they are valid for next compressed frame, and any subsequent frame.
|
||||||
* "sticky" parameters are applicable to `ZSTD_compress2()` and `ZSTD_compressStream*()` !
|
* "sticky" parameters are applicable to `ZSTD_compress2()` and `ZSTD_compressStream*()` !
|
||||||
* __They do not apply to "simple" one-shot variants such as ZSTD_compressCCtx()__ .
|
* __They do not apply to one-shot variants such as ZSTD_compressCCtx()__ .
|
||||||
*
|
*
|
||||||
* It's possible to reset all parameters to "default" using ZSTD_CCtx_reset().
|
* It's possible to reset all parameters to "default" using ZSTD_CCtx_reset().
|
||||||
*
|
*
|
||||||
* This API supersedes all other "advanced" API entry points in the experimental section.
|
* This API supersedes all other "advanced" API entry points in the experimental section.
|
||||||
* In the future, we expect to remove from experimental API entry points which are redundant with this API.
|
* In the future, we expect to remove API entry points from experimental which are redundant with this API.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -390,6 +390,19 @@ typedef enum {
|
||||||
* The higher the value of selected strategy, the more complex it is,
|
* The higher the value of selected strategy, the more complex it is,
|
||||||
* resulting in stronger and slower compression.
|
* resulting in stronger and slower compression.
|
||||||
* Special: value 0 means "use default strategy". */
|
* Special: value 0 means "use default strategy". */
|
||||||
|
|
||||||
|
ZSTD_c_targetCBlockSize=130, /* v1.5.6+
|
||||||
|
* Attempts to fit compressed block size into approximatively targetCBlockSize.
|
||||||
|
* Bound by ZSTD_TARGETCBLOCKSIZE_MIN and ZSTD_TARGETCBLOCKSIZE_MAX.
|
||||||
|
* Note that it's not a guarantee, just a convergence target (default:0).
|
||||||
|
* No target when targetCBlockSize == 0.
|
||||||
|
* This is helpful in low bandwidth streaming environments to improve end-to-end latency,
|
||||||
|
* when a client can make use of partial documents (a prominent example being Chrome).
|
||||||
|
* Note: this parameter is stable since v1.5.6.
|
||||||
|
* It was present as an experimental parameter in earlier versions,
|
||||||
|
* but it's not recommended using it with earlier library versions
|
||||||
|
* due to massive performance regressions.
|
||||||
|
*/
|
||||||
/* LDM mode parameters */
|
/* LDM mode parameters */
|
||||||
ZSTD_c_enableLongDistanceMatching=160, /* Enable long distance matching.
|
ZSTD_c_enableLongDistanceMatching=160, /* Enable long distance matching.
|
||||||
* This parameter is designed to improve compression ratio
|
* This parameter is designed to improve compression ratio
|
||||||
|
@ -469,7 +482,6 @@ typedef enum {
|
||||||
* ZSTD_c_forceMaxWindow
|
* ZSTD_c_forceMaxWindow
|
||||||
* ZSTD_c_forceAttachDict
|
* ZSTD_c_forceAttachDict
|
||||||
* ZSTD_c_literalCompressionMode
|
* ZSTD_c_literalCompressionMode
|
||||||
* ZSTD_c_targetCBlockSize
|
|
||||||
* ZSTD_c_srcSizeHint
|
* ZSTD_c_srcSizeHint
|
||||||
* ZSTD_c_enableDedicatedDictSearch
|
* ZSTD_c_enableDedicatedDictSearch
|
||||||
* ZSTD_c_stableInBuffer
|
* ZSTD_c_stableInBuffer
|
||||||
|
@ -490,7 +502,7 @@ typedef enum {
|
||||||
ZSTD_c_experimentalParam3=1000,
|
ZSTD_c_experimentalParam3=1000,
|
||||||
ZSTD_c_experimentalParam4=1001,
|
ZSTD_c_experimentalParam4=1001,
|
||||||
ZSTD_c_experimentalParam5=1002,
|
ZSTD_c_experimentalParam5=1002,
|
||||||
ZSTD_c_experimentalParam6=1003,
|
/* was ZSTD_c_experimentalParam6=1003; is now ZSTD_c_targetCBlockSize */
|
||||||
ZSTD_c_experimentalParam7=1004,
|
ZSTD_c_experimentalParam7=1004,
|
||||||
ZSTD_c_experimentalParam8=1005,
|
ZSTD_c_experimentalParam8=1005,
|
||||||
ZSTD_c_experimentalParam9=1006,
|
ZSTD_c_experimentalParam9=1006,
|
||||||
|
@ -575,6 +587,7 @@ ZSTDLIB_API size_t ZSTD_CCtx_reset(ZSTD_CCtx* cctx, ZSTD_ResetDirective reset);
|
||||||
|
|
||||||
/*! ZSTD_compress2() :
|
/*! ZSTD_compress2() :
|
||||||
* Behave the same as ZSTD_compressCCtx(), but compression parameters are set using the advanced API.
|
* Behave the same as ZSTD_compressCCtx(), but compression parameters are set using the advanced API.
|
||||||
|
* (note that this entry point doesn't even expose a compression level parameter).
|
||||||
* ZSTD_compress2() always starts a new frame.
|
* ZSTD_compress2() always starts a new frame.
|
||||||
* Should cctx hold data from a previously unfinished frame, everything about it is forgotten.
|
* Should cctx hold data from a previously unfinished frame, everything about it is forgotten.
|
||||||
* - Compression parameters are pushed into CCtx before starting compression, using ZSTD_CCtx_set*()
|
* - Compression parameters are pushed into CCtx before starting compression, using ZSTD_CCtx_set*()
|
||||||
|
@ -618,6 +631,7 @@ typedef enum {
|
||||||
* ZSTD_d_forceIgnoreChecksum
|
* ZSTD_d_forceIgnoreChecksum
|
||||||
* ZSTD_d_refMultipleDDicts
|
* ZSTD_d_refMultipleDDicts
|
||||||
* ZSTD_d_disableHuffmanAssembly
|
* ZSTD_d_disableHuffmanAssembly
|
||||||
|
* ZSTD_d_maxBlockSize
|
||||||
* Because they are not stable, it's necessary to define ZSTD_STATIC_LINKING_ONLY to access them.
|
* Because they are not stable, it's necessary to define ZSTD_STATIC_LINKING_ONLY to access them.
|
||||||
* note : never ever use experimentalParam? names directly
|
* note : never ever use experimentalParam? names directly
|
||||||
*/
|
*/
|
||||||
|
@ -625,7 +639,8 @@ typedef enum {
|
||||||
ZSTD_d_experimentalParam2=1001,
|
ZSTD_d_experimentalParam2=1001,
|
||||||
ZSTD_d_experimentalParam3=1002,
|
ZSTD_d_experimentalParam3=1002,
|
||||||
ZSTD_d_experimentalParam4=1003,
|
ZSTD_d_experimentalParam4=1003,
|
||||||
ZSTD_d_experimentalParam5=1004
|
ZSTD_d_experimentalParam5=1004,
|
||||||
|
ZSTD_d_experimentalParam6=1005
|
||||||
|
|
||||||
} ZSTD_dParameter;
|
} ZSTD_dParameter;
|
||||||
|
|
||||||
|
@ -680,14 +695,14 @@ typedef struct ZSTD_outBuffer_s {
|
||||||
* A ZSTD_CStream object is required to track streaming operation.
|
* A ZSTD_CStream object is required to track streaming operation.
|
||||||
* Use ZSTD_createCStream() and ZSTD_freeCStream() to create/release resources.
|
* Use ZSTD_createCStream() and ZSTD_freeCStream() to create/release resources.
|
||||||
* ZSTD_CStream objects can be reused multiple times on consecutive compression operations.
|
* ZSTD_CStream objects can be reused multiple times on consecutive compression operations.
|
||||||
* It is recommended to re-use ZSTD_CStream since it will play nicer with system's memory, by re-using already allocated memory.
|
* It is recommended to reuse ZSTD_CStream since it will play nicer with system's memory, by re-using already allocated memory.
|
||||||
*
|
*
|
||||||
* For parallel execution, use one separate ZSTD_CStream per thread.
|
* For parallel execution, use one separate ZSTD_CStream per thread.
|
||||||
*
|
*
|
||||||
* note : since v1.3.0, ZSTD_CStream and ZSTD_CCtx are the same thing.
|
* note : since v1.3.0, ZSTD_CStream and ZSTD_CCtx are the same thing.
|
||||||
*
|
*
|
||||||
* Parameters are sticky : when starting a new compression on the same context,
|
* Parameters are sticky : when starting a new compression on the same context,
|
||||||
* it will re-use the same sticky parameters as previous compression session.
|
* it will reuse the same sticky parameters as previous compression session.
|
||||||
* When in doubt, it's recommended to fully initialize the context before usage.
|
* When in doubt, it's recommended to fully initialize the context before usage.
|
||||||
* Use ZSTD_CCtx_reset() to reset the context and ZSTD_CCtx_setParameter(),
|
* Use ZSTD_CCtx_reset() to reset the context and ZSTD_CCtx_setParameter(),
|
||||||
* ZSTD_CCtx_setPledgedSrcSize(), or ZSTD_CCtx_loadDictionary() and friends to
|
* ZSTD_CCtx_setPledgedSrcSize(), or ZSTD_CCtx_loadDictionary() and friends to
|
||||||
|
@ -776,6 +791,11 @@ typedef enum {
|
||||||
* only ZSTD_e_end or ZSTD_e_flush operations are allowed.
|
* only ZSTD_e_end or ZSTD_e_flush operations are allowed.
|
||||||
* Before starting a new compression job, or changing compression parameters,
|
* Before starting a new compression job, or changing compression parameters,
|
||||||
* it is required to fully flush internal buffers.
|
* it is required to fully flush internal buffers.
|
||||||
|
* - note: if an operation ends with an error, it may leave @cctx in an undefined state.
|
||||||
|
* Therefore, it's UB to invoke ZSTD_compressStream2() of ZSTD_compressStream() on such a state.
|
||||||
|
* In order to be re-employed after an error, a state must be reset,
|
||||||
|
* which can be done explicitly (ZSTD_CCtx_reset()),
|
||||||
|
* or is sometimes implied by methods starting a new compression job (ZSTD_initCStream(), ZSTD_compressCCtx())
|
||||||
*/
|
*/
|
||||||
ZSTDLIB_API size_t ZSTD_compressStream2( ZSTD_CCtx* cctx,
|
ZSTDLIB_API size_t ZSTD_compressStream2( ZSTD_CCtx* cctx,
|
||||||
ZSTD_outBuffer* output,
|
ZSTD_outBuffer* output,
|
||||||
|
@ -835,7 +855,7 @@ ZSTDLIB_API size_t ZSTD_endStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output);
|
||||||
*
|
*
|
||||||
* A ZSTD_DStream object is required to track streaming operations.
|
* A ZSTD_DStream object is required to track streaming operations.
|
||||||
* Use ZSTD_createDStream() and ZSTD_freeDStream() to create/release resources.
|
* Use ZSTD_createDStream() and ZSTD_freeDStream() to create/release resources.
|
||||||
* ZSTD_DStream objects can be re-used multiple times.
|
* ZSTD_DStream objects can be reused multiple times.
|
||||||
*
|
*
|
||||||
* Use ZSTD_initDStream() to start a new decompression operation.
|
* Use ZSTD_initDStream() to start a new decompression operation.
|
||||||
* @return : recommended first input size
|
* @return : recommended first input size
|
||||||
|
@ -889,6 +909,12 @@ ZSTDLIB_API size_t ZSTD_initDStream(ZSTD_DStream* zds);
|
||||||
* @return : 0 when a frame is completely decoded and fully flushed,
|
* @return : 0 when a frame is completely decoded and fully flushed,
|
||||||
* or an error code, which can be tested using ZSTD_isError(),
|
* or an error code, which can be tested using ZSTD_isError(),
|
||||||
* or any other value > 0, which means there is some decoding or flushing to do to complete current frame.
|
* or any other value > 0, which means there is some decoding or flushing to do to complete current frame.
|
||||||
|
*
|
||||||
|
* Note: when an operation returns with an error code, the @zds state may be left in undefined state.
|
||||||
|
* It's UB to invoke `ZSTD_decompressStream()` on such a state.
|
||||||
|
* In order to re-use such a state, it must be first reset,
|
||||||
|
* which can be done explicitly (`ZSTD_DCtx_reset()`),
|
||||||
|
* or is implied for operations starting some new decompression job (`ZSTD_initDStream`, `ZSTD_decompressDCtx()`, `ZSTD_decompress_usingDict()`)
|
||||||
*/
|
*/
|
||||||
ZSTDLIB_API size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inBuffer* input);
|
ZSTDLIB_API size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inBuffer* input);
|
||||||
|
|
||||||
|
@ -1021,7 +1047,7 @@ ZSTDLIB_API unsigned ZSTD_getDictID_fromFrame(const void* src, size_t srcSize);
|
||||||
*
|
*
|
||||||
* This API allows dictionaries to be used with ZSTD_compress2(),
|
* This API allows dictionaries to be used with ZSTD_compress2(),
|
||||||
* ZSTD_compressStream2(), and ZSTD_decompressDCtx().
|
* ZSTD_compressStream2(), and ZSTD_decompressDCtx().
|
||||||
* Dictionaries are sticky, they remain valid when same context is re-used,
|
* Dictionaries are sticky, they remain valid when same context is reused,
|
||||||
* they only reset when the context is reset
|
* they only reset when the context is reset
|
||||||
* with ZSTD_reset_parameters or ZSTD_reset_session_and_parameters.
|
* with ZSTD_reset_parameters or ZSTD_reset_session_and_parameters.
|
||||||
* In contrast, Prefixes are single-use.
|
* In contrast, Prefixes are single-use.
|
||||||
|
@ -1239,7 +1265,7 @@ ZSTDLIB_API size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict);
|
||||||
#define ZSTD_LDM_HASHRATELOG_MAX (ZSTD_WINDOWLOG_MAX - ZSTD_HASHLOG_MIN)
|
#define ZSTD_LDM_HASHRATELOG_MAX (ZSTD_WINDOWLOG_MAX - ZSTD_HASHLOG_MIN)
|
||||||
|
|
||||||
/* Advanced parameter bounds */
|
/* Advanced parameter bounds */
|
||||||
#define ZSTD_TARGETCBLOCKSIZE_MIN 64
|
#define ZSTD_TARGETCBLOCKSIZE_MIN 1340 /* suitable to fit into an ethernet / wifi / 4G transport frame */
|
||||||
#define ZSTD_TARGETCBLOCKSIZE_MAX ZSTD_BLOCKSIZE_MAX
|
#define ZSTD_TARGETCBLOCKSIZE_MAX ZSTD_BLOCKSIZE_MAX
|
||||||
#define ZSTD_SRCSIZEHINT_MIN 0
|
#define ZSTD_SRCSIZEHINT_MIN 0
|
||||||
#define ZSTD_SRCSIZEHINT_MAX INT_MAX
|
#define ZSTD_SRCSIZEHINT_MAX INT_MAX
|
||||||
|
@ -1527,25 +1553,38 @@ typedef enum {
|
||||||
ZSTDLIB_STATIC_API size_t ZSTD_sequenceBound(size_t srcSize);
|
ZSTDLIB_STATIC_API size_t ZSTD_sequenceBound(size_t srcSize);
|
||||||
|
|
||||||
/*! ZSTD_generateSequences() :
|
/*! ZSTD_generateSequences() :
|
||||||
|
* WARNING: This function is meant for debugging and informational purposes ONLY!
|
||||||
|
* Its implementation is flawed, and it will be deleted in a future version.
|
||||||
|
* It is not guaranteed to succeed, as there are several cases where it will give
|
||||||
|
* up and fail. You should NOT use this function in production code.
|
||||||
|
*
|
||||||
|
* This function is deprecated, and will be removed in a future version.
|
||||||
|
*
|
||||||
* Generate sequences using ZSTD_compress2(), given a source buffer.
|
* Generate sequences using ZSTD_compress2(), given a source buffer.
|
||||||
*
|
*
|
||||||
|
* @param zc The compression context to be used for ZSTD_compress2(). Set any
|
||||||
|
* compression parameters you need on this context.
|
||||||
|
* @param outSeqs The output sequences buffer of size @p outSeqsSize
|
||||||
|
* @param outSeqsSize The size of the output sequences buffer.
|
||||||
|
* ZSTD_sequenceBound(srcSize) is an upper bound on the number
|
||||||
|
* of sequences that can be generated.
|
||||||
|
* @param src The source buffer to generate sequences from of size @p srcSize.
|
||||||
|
* @param srcSize The size of the source buffer.
|
||||||
|
*
|
||||||
* Each block will end with a dummy sequence
|
* Each block will end with a dummy sequence
|
||||||
* with offset == 0, matchLength == 0, and litLength == length of last literals.
|
* with offset == 0, matchLength == 0, and litLength == length of last literals.
|
||||||
* litLength may be == 0, and if so, then the sequence of (of: 0 ml: 0 ll: 0)
|
* litLength may be == 0, and if so, then the sequence of (of: 0 ml: 0 ll: 0)
|
||||||
* simply acts as a block delimiter.
|
* simply acts as a block delimiter.
|
||||||
*
|
*
|
||||||
* @zc can be used to insert custom compression params.
|
* @returns The number of sequences generated, necessarily less than
|
||||||
* This function invokes ZSTD_compress2().
|
* ZSTD_sequenceBound(srcSize), or an error code that can be checked
|
||||||
*
|
* with ZSTD_isError().
|
||||||
* The output of this function can be fed into ZSTD_compressSequences() with CCtx
|
|
||||||
* setting of ZSTD_c_blockDelimiters as ZSTD_sf_explicitBlockDelimiters
|
|
||||||
* @return : number of sequences generated
|
|
||||||
*/
|
*/
|
||||||
|
ZSTD_DEPRECATED("For debugging only, will be replaced by ZSTD_extractSequences()")
|
||||||
ZSTDLIB_STATIC_API size_t
|
ZSTDLIB_STATIC_API size_t
|
||||||
ZSTD_generateSequences( ZSTD_CCtx* zc,
|
ZSTD_generateSequences(ZSTD_CCtx* zc,
|
||||||
ZSTD_Sequence* outSeqs, size_t outSeqsSize,
|
ZSTD_Sequence* outSeqs, size_t outSeqsSize,
|
||||||
const void* src, size_t srcSize);
|
const void* src, size_t srcSize);
|
||||||
|
|
||||||
/*! ZSTD_mergeBlockDelimiters() :
|
/*! ZSTD_mergeBlockDelimiters() :
|
||||||
* Given an array of ZSTD_Sequence, remove all sequences that represent block delimiters/last literals
|
* Given an array of ZSTD_Sequence, remove all sequences that represent block delimiters/last literals
|
||||||
|
@ -1640,56 +1679,59 @@ ZSTDLIB_API unsigned ZSTD_isSkippableFrame(const void* buffer, size_t size);
|
||||||
/*! ZSTD_estimate*() :
|
/*! ZSTD_estimate*() :
|
||||||
* These functions make it possible to estimate memory usage
|
* These functions make it possible to estimate memory usage
|
||||||
* of a future {D,C}Ctx, before its creation.
|
* of a future {D,C}Ctx, before its creation.
|
||||||
|
* This is useful in combination with ZSTD_initStatic(),
|
||||||
|
* which makes it possible to employ a static buffer for ZSTD_CCtx* state.
|
||||||
*
|
*
|
||||||
* ZSTD_estimateCCtxSize() will provide a memory budget large enough
|
* ZSTD_estimateCCtxSize() will provide a memory budget large enough
|
||||||
* for any compression level up to selected one.
|
* to compress data of any size using one-shot compression ZSTD_compressCCtx() or ZSTD_compress2()
|
||||||
* Note : Unlike ZSTD_estimateCStreamSize*(), this estimate
|
* associated with any compression level up to max specified one.
|
||||||
* does not include space for a window buffer.
|
|
||||||
* Therefore, the estimation is only guaranteed for single-shot compressions, not streaming.
|
|
||||||
* The estimate will assume the input may be arbitrarily large,
|
* The estimate will assume the input may be arbitrarily large,
|
||||||
* which is the worst case.
|
* which is the worst case.
|
||||||
*
|
*
|
||||||
|
* Note that the size estimation is specific for one-shot compression,
|
||||||
|
* it is not valid for streaming (see ZSTD_estimateCStreamSize*())
|
||||||
|
* nor other potential ways of using a ZSTD_CCtx* state.
|
||||||
|
*
|
||||||
* When srcSize can be bound by a known and rather "small" value,
|
* When srcSize can be bound by a known and rather "small" value,
|
||||||
* this fact can be used to provide a tighter estimation
|
* this knowledge can be used to provide a tighter budget estimation
|
||||||
* because the CCtx compression context will need less memory.
|
* because the ZSTD_CCtx* state will need less memory for small inputs.
|
||||||
* This tighter estimation can be provided by more advanced functions
|
* This tighter estimation can be provided by employing more advanced functions
|
||||||
* ZSTD_estimateCCtxSize_usingCParams(), which can be used in tandem with ZSTD_getCParams(),
|
* ZSTD_estimateCCtxSize_usingCParams(), which can be used in tandem with ZSTD_getCParams(),
|
||||||
* and ZSTD_estimateCCtxSize_usingCCtxParams(), which can be used in tandem with ZSTD_CCtxParams_setParameter().
|
* and ZSTD_estimateCCtxSize_usingCCtxParams(), which can be used in tandem with ZSTD_CCtxParams_setParameter().
|
||||||
* Both can be used to estimate memory using custom compression parameters and arbitrary srcSize limits.
|
* Both can be used to estimate memory using custom compression parameters and arbitrary srcSize limits.
|
||||||
*
|
*
|
||||||
* Note : only single-threaded compression is supported.
|
* Note : only single-threaded compression is supported.
|
||||||
* ZSTD_estimateCCtxSize_usingCCtxParams() will return an error code if ZSTD_c_nbWorkers is >= 1.
|
* ZSTD_estimateCCtxSize_usingCCtxParams() will return an error code if ZSTD_c_nbWorkers is >= 1.
|
||||||
*
|
|
||||||
* Note 2 : ZSTD_estimateCCtxSize* functions are not compatible with the Block-Level Sequence Producer API at this time.
|
|
||||||
* Size estimates assume that no external sequence producer is registered.
|
|
||||||
*/
|
*/
|
||||||
ZSTDLIB_STATIC_API size_t ZSTD_estimateCCtxSize(int compressionLevel);
|
ZSTDLIB_STATIC_API size_t ZSTD_estimateCCtxSize(int maxCompressionLevel);
|
||||||
ZSTDLIB_STATIC_API size_t ZSTD_estimateCCtxSize_usingCParams(ZSTD_compressionParameters cParams);
|
ZSTDLIB_STATIC_API size_t ZSTD_estimateCCtxSize_usingCParams(ZSTD_compressionParameters cParams);
|
||||||
ZSTDLIB_STATIC_API size_t ZSTD_estimateCCtxSize_usingCCtxParams(const ZSTD_CCtx_params* params);
|
ZSTDLIB_STATIC_API size_t ZSTD_estimateCCtxSize_usingCCtxParams(const ZSTD_CCtx_params* params);
|
||||||
ZSTDLIB_STATIC_API size_t ZSTD_estimateDCtxSize(void);
|
ZSTDLIB_STATIC_API size_t ZSTD_estimateDCtxSize(void);
|
||||||
|
|
||||||
/*! ZSTD_estimateCStreamSize() :
|
/*! ZSTD_estimateCStreamSize() :
|
||||||
* ZSTD_estimateCStreamSize() will provide a budget large enough for any compression level up to selected one.
|
* ZSTD_estimateCStreamSize() will provide a memory budget large enough for streaming compression
|
||||||
* It will also consider src size to be arbitrarily "large", which is worst case.
|
* using any compression level up to the max specified one.
|
||||||
|
* It will also consider src size to be arbitrarily "large", which is a worst case scenario.
|
||||||
* If srcSize is known to always be small, ZSTD_estimateCStreamSize_usingCParams() can provide a tighter estimation.
|
* If srcSize is known to always be small, ZSTD_estimateCStreamSize_usingCParams() can provide a tighter estimation.
|
||||||
* ZSTD_estimateCStreamSize_usingCParams() can be used in tandem with ZSTD_getCParams() to create cParams from compressionLevel.
|
* ZSTD_estimateCStreamSize_usingCParams() can be used in tandem with ZSTD_getCParams() to create cParams from compressionLevel.
|
||||||
* ZSTD_estimateCStreamSize_usingCCtxParams() can be used in tandem with ZSTD_CCtxParams_setParameter(). Only single-threaded compression is supported. This function will return an error code if ZSTD_c_nbWorkers is >= 1.
|
* ZSTD_estimateCStreamSize_usingCCtxParams() can be used in tandem with ZSTD_CCtxParams_setParameter(). Only single-threaded compression is supported. This function will return an error code if ZSTD_c_nbWorkers is >= 1.
|
||||||
* Note : CStream size estimation is only correct for single-threaded compression.
|
* Note : CStream size estimation is only correct for single-threaded compression.
|
||||||
* ZSTD_DStream memory budget depends on window Size.
|
* ZSTD_estimateCStreamSize_usingCCtxParams() will return an error code if ZSTD_c_nbWorkers is >= 1.
|
||||||
|
* Note 2 : ZSTD_estimateCStreamSize* functions are not compatible with the Block-Level Sequence Producer API at this time.
|
||||||
|
* Size estimates assume that no external sequence producer is registered.
|
||||||
|
*
|
||||||
|
* ZSTD_DStream memory budget depends on frame's window Size.
|
||||||
* This information can be passed manually, using ZSTD_estimateDStreamSize,
|
* This information can be passed manually, using ZSTD_estimateDStreamSize,
|
||||||
* or deducted from a valid frame Header, using ZSTD_estimateDStreamSize_fromFrame();
|
* or deducted from a valid frame Header, using ZSTD_estimateDStreamSize_fromFrame();
|
||||||
|
* Any frame requesting a window size larger than max specified one will be rejected.
|
||||||
* Note : if streaming is init with function ZSTD_init?Stream_usingDict(),
|
* Note : if streaming is init with function ZSTD_init?Stream_usingDict(),
|
||||||
* an internal ?Dict will be created, which additional size is not estimated here.
|
* an internal ?Dict will be created, which additional size is not estimated here.
|
||||||
* In this case, get total size by adding ZSTD_estimate?DictSize
|
* In this case, get total size by adding ZSTD_estimate?DictSize
|
||||||
* Note 2 : only single-threaded compression is supported.
|
|
||||||
* ZSTD_estimateCStreamSize_usingCCtxParams() will return an error code if ZSTD_c_nbWorkers is >= 1.
|
|
||||||
* Note 3 : ZSTD_estimateCStreamSize* functions are not compatible with the Block-Level Sequence Producer API at this time.
|
|
||||||
* Size estimates assume that no external sequence producer is registered.
|
|
||||||
*/
|
*/
|
||||||
ZSTDLIB_STATIC_API size_t ZSTD_estimateCStreamSize(int compressionLevel);
|
ZSTDLIB_STATIC_API size_t ZSTD_estimateCStreamSize(int maxCompressionLevel);
|
||||||
ZSTDLIB_STATIC_API size_t ZSTD_estimateCStreamSize_usingCParams(ZSTD_compressionParameters cParams);
|
ZSTDLIB_STATIC_API size_t ZSTD_estimateCStreamSize_usingCParams(ZSTD_compressionParameters cParams);
|
||||||
ZSTDLIB_STATIC_API size_t ZSTD_estimateCStreamSize_usingCCtxParams(const ZSTD_CCtx_params* params);
|
ZSTDLIB_STATIC_API size_t ZSTD_estimateCStreamSize_usingCCtxParams(const ZSTD_CCtx_params* params);
|
||||||
ZSTDLIB_STATIC_API size_t ZSTD_estimateDStreamSize(size_t windowSize);
|
ZSTDLIB_STATIC_API size_t ZSTD_estimateDStreamSize(size_t maxWindowSize);
|
||||||
ZSTDLIB_STATIC_API size_t ZSTD_estimateDStreamSize_fromFrame(const void* src, size_t srcSize);
|
ZSTDLIB_STATIC_API size_t ZSTD_estimateDStreamSize_fromFrame(const void* src, size_t srcSize);
|
||||||
|
|
||||||
/*! ZSTD_estimate?DictSize() :
|
/*! ZSTD_estimate?DictSize() :
|
||||||
|
@ -1946,11 +1988,6 @@ ZSTDLIB_STATIC_API size_t ZSTD_CCtx_refPrefix_advanced(ZSTD_CCtx* cctx, const vo
|
||||||
*/
|
*/
|
||||||
#define ZSTD_c_literalCompressionMode ZSTD_c_experimentalParam5
|
#define ZSTD_c_literalCompressionMode ZSTD_c_experimentalParam5
|
||||||
|
|
||||||
/* Tries to fit compressed block size to be around targetCBlockSize.
|
|
||||||
* No target when targetCBlockSize == 0.
|
|
||||||
* There is no guarantee on compressed block size (default:0) */
|
|
||||||
#define ZSTD_c_targetCBlockSize ZSTD_c_experimentalParam6
|
|
||||||
|
|
||||||
/* User's best guess of source size.
|
/* User's best guess of source size.
|
||||||
* Hint is not valid when srcSizeHint == 0.
|
* Hint is not valid when srcSizeHint == 0.
|
||||||
* There is no guarantee that hint is close to actual source size,
|
* There is no guarantee that hint is close to actual source size,
|
||||||
|
@ -2430,6 +2467,22 @@ ZSTDLIB_STATIC_API size_t ZSTD_DCtx_getParameter(ZSTD_DCtx* dctx, ZSTD_dParamete
|
||||||
*/
|
*/
|
||||||
#define ZSTD_d_disableHuffmanAssembly ZSTD_d_experimentalParam5
|
#define ZSTD_d_disableHuffmanAssembly ZSTD_d_experimentalParam5
|
||||||
|
|
||||||
|
/* ZSTD_d_maxBlockSize
|
||||||
|
* Allowed values are between 1KB and ZSTD_BLOCKSIZE_MAX (128KB).
|
||||||
|
* The default is ZSTD_BLOCKSIZE_MAX, and setting to 0 will set to the default.
|
||||||
|
*
|
||||||
|
* Forces the decompressor to reject blocks whose content size is
|
||||||
|
* larger than the configured maxBlockSize. When maxBlockSize is
|
||||||
|
* larger than the windowSize, the windowSize is used instead.
|
||||||
|
* This saves memory on the decoder when you know all blocks are small.
|
||||||
|
*
|
||||||
|
* This option is typically used in conjunction with ZSTD_c_maxBlockSize.
|
||||||
|
*
|
||||||
|
* WARNING: This causes the decoder to reject otherwise valid frames
|
||||||
|
* that have block sizes larger than the configured maxBlockSize.
|
||||||
|
*/
|
||||||
|
#define ZSTD_d_maxBlockSize ZSTD_d_experimentalParam6
|
||||||
|
|
||||||
|
|
||||||
/*! ZSTD_DCtx_setFormat() :
|
/*! ZSTD_DCtx_setFormat() :
|
||||||
* This function is REDUNDANT. Prefer ZSTD_DCtx_setParameter().
|
* This function is REDUNDANT. Prefer ZSTD_DCtx_setParameter().
|
||||||
|
@ -2557,7 +2610,7 @@ size_t ZSTD_initCStream_usingCDict_advanced(ZSTD_CStream* zcs,
|
||||||
* explicitly specified.
|
* explicitly specified.
|
||||||
*
|
*
|
||||||
* start a new frame, using same parameters from previous frame.
|
* start a new frame, using same parameters from previous frame.
|
||||||
* This is typically useful to skip dictionary loading stage, since it will re-use it in-place.
|
* This is typically useful to skip dictionary loading stage, since it will reuse it in-place.
|
||||||
* Note that zcs must be init at least once before using ZSTD_resetCStream().
|
* Note that zcs must be init at least once before using ZSTD_resetCStream().
|
||||||
* If pledgedSrcSize is not known at reset time, use macro ZSTD_CONTENTSIZE_UNKNOWN.
|
* If pledgedSrcSize is not known at reset time, use macro ZSTD_CONTENTSIZE_UNKNOWN.
|
||||||
* If pledgedSrcSize > 0, its value must be correct, as it will be written in header, and controlled at the end.
|
* If pledgedSrcSize > 0, its value must be correct, as it will be written in header, and controlled at the end.
|
||||||
|
@ -2633,7 +2686,7 @@ ZSTDLIB_STATIC_API size_t ZSTD_initDStream_usingDDict(ZSTD_DStream* zds, const Z
|
||||||
*
|
*
|
||||||
* ZSTD_DCtx_reset(zds, ZSTD_reset_session_only);
|
* ZSTD_DCtx_reset(zds, ZSTD_reset_session_only);
|
||||||
*
|
*
|
||||||
* re-use decompression parameters from previous init; saves dictionary loading
|
* reuse decompression parameters from previous init; saves dictionary loading
|
||||||
*/
|
*/
|
||||||
ZSTD_DEPRECATED("use ZSTD_DCtx_reset, see zstd.h for detailed instructions")
|
ZSTD_DEPRECATED("use ZSTD_DCtx_reset, see zstd.h for detailed instructions")
|
||||||
ZSTDLIB_STATIC_API size_t ZSTD_resetDStream(ZSTD_DStream* zds);
|
ZSTDLIB_STATIC_API size_t ZSTD_resetDStream(ZSTD_DStream* zds);
|
||||||
|
@ -2765,7 +2818,7 @@ ZSTDLIB_STATIC_API size_t ZSTD_resetDStream(ZSTD_DStream* zds);
|
||||||
|
|
||||||
#define ZSTD_SEQUENCE_PRODUCER_ERROR ((size_t)(-1))
|
#define ZSTD_SEQUENCE_PRODUCER_ERROR ((size_t)(-1))
|
||||||
|
|
||||||
typedef size_t ZSTD_sequenceProducer_F (
|
typedef size_t (*ZSTD_sequenceProducer_F) (
|
||||||
void* sequenceProducerState,
|
void* sequenceProducerState,
|
||||||
ZSTD_Sequence* outSeqs, size_t outSeqsCapacity,
|
ZSTD_Sequence* outSeqs, size_t outSeqsCapacity,
|
||||||
const void* src, size_t srcSize,
|
const void* src, size_t srcSize,
|
||||||
|
@ -2797,7 +2850,23 @@ ZSTDLIB_STATIC_API void
|
||||||
ZSTD_registerSequenceProducer(
|
ZSTD_registerSequenceProducer(
|
||||||
ZSTD_CCtx* cctx,
|
ZSTD_CCtx* cctx,
|
||||||
void* sequenceProducerState,
|
void* sequenceProducerState,
|
||||||
ZSTD_sequenceProducer_F* sequenceProducer
|
ZSTD_sequenceProducer_F sequenceProducer
|
||||||
|
);
|
||||||
|
|
||||||
|
/*! ZSTD_CCtxParams_registerSequenceProducer() :
|
||||||
|
* Same as ZSTD_registerSequenceProducer(), but operates on ZSTD_CCtx_params.
|
||||||
|
* This is used for accurate size estimation with ZSTD_estimateCCtxSize_usingCCtxParams(),
|
||||||
|
* which is needed when creating a ZSTD_CCtx with ZSTD_initStaticCCtx().
|
||||||
|
*
|
||||||
|
* If you are using the external sequence producer API in a scenario where ZSTD_initStaticCCtx()
|
||||||
|
* is required, then this function is for you. Otherwise, you probably don't need it.
|
||||||
|
*
|
||||||
|
* See tests/zstreamtest.c for example usage. */
|
||||||
|
ZSTDLIB_STATIC_API void
|
||||||
|
ZSTD_CCtxParams_registerSequenceProducer(
|
||||||
|
ZSTD_CCtx_params* params,
|
||||||
|
void* sequenceProducerState,
|
||||||
|
ZSTD_sequenceProducer_F sequenceProducer
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
@ -2820,7 +2889,7 @@ ZSTD_registerSequenceProducer(
|
||||||
|
|
||||||
A ZSTD_CCtx object is required to track streaming operations.
|
A ZSTD_CCtx object is required to track streaming operations.
|
||||||
Use ZSTD_createCCtx() / ZSTD_freeCCtx() to manage resource.
|
Use ZSTD_createCCtx() / ZSTD_freeCCtx() to manage resource.
|
||||||
ZSTD_CCtx object can be re-used multiple times within successive compression operations.
|
ZSTD_CCtx object can be reused multiple times within successive compression operations.
|
||||||
|
|
||||||
Start by initializing a context.
|
Start by initializing a context.
|
||||||
Use ZSTD_compressBegin(), or ZSTD_compressBegin_usingDict() for dictionary compression.
|
Use ZSTD_compressBegin(), or ZSTD_compressBegin_usingDict() for dictionary compression.
|
||||||
|
@ -2841,7 +2910,7 @@ ZSTD_registerSequenceProducer(
|
||||||
It's possible to use srcSize==0, in which case, it will write a final empty block to end the frame.
|
It's possible to use srcSize==0, in which case, it will write a final empty block to end the frame.
|
||||||
Without last block mark, frames are considered unfinished (hence corrupted) by compliant decoders.
|
Without last block mark, frames are considered unfinished (hence corrupted) by compliant decoders.
|
||||||
|
|
||||||
`ZSTD_CCtx` object can be re-used (ZSTD_compressBegin()) to compress again.
|
`ZSTD_CCtx` object can be reused (ZSTD_compressBegin()) to compress again.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*===== Buffer-less streaming compression functions =====*/
|
/*===== Buffer-less streaming compression functions =====*/
|
||||||
|
@ -2873,7 +2942,7 @@ size_t ZSTD_compressBegin_usingCDict_advanced(ZSTD_CCtx* const cctx, const ZSTD_
|
||||||
|
|
||||||
A ZSTD_DCtx object is required to track streaming operations.
|
A ZSTD_DCtx object is required to track streaming operations.
|
||||||
Use ZSTD_createDCtx() / ZSTD_freeDCtx() to manage it.
|
Use ZSTD_createDCtx() / ZSTD_freeDCtx() to manage it.
|
||||||
A ZSTD_DCtx object can be re-used multiple times.
|
A ZSTD_DCtx object can be reused multiple times.
|
||||||
|
|
||||||
First typical operation is to retrieve frame parameters, using ZSTD_getFrameHeader().
|
First typical operation is to retrieve frame parameters, using ZSTD_getFrameHeader().
|
||||||
Frame header is extracted from the beginning of compressed frame, so providing only the frame's beginning is enough.
|
Frame header is extracted from the beginning of compressed frame, so providing only the frame's beginning is enough.
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
package otelgrpc // import "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
|
package otelgrpc // import "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"google.golang.org/grpc/stats"
|
||||||
|
|
||||||
"go.opentelemetry.io/otel"
|
"go.opentelemetry.io/otel"
|
||||||
"go.opentelemetry.io/otel/attribute"
|
"go.opentelemetry.io/otel/attribute"
|
||||||
"go.opentelemetry.io/otel/metric"
|
"go.opentelemetry.io/otel/metric"
|
||||||
|
@ -20,18 +22,26 @@ const (
|
||||||
GRPCStatusCodeKey = attribute.Key("rpc.grpc.status_code")
|
GRPCStatusCodeKey = attribute.Key("rpc.grpc.status_code")
|
||||||
)
|
)
|
||||||
|
|
||||||
// Filter is a predicate used to determine whether a given request in
|
// InterceptorFilter is a predicate used to determine whether a given request in
|
||||||
// interceptor info should be traced. A Filter must return true if
|
// interceptor info should be instrumented. A InterceptorFilter must return true if
|
||||||
// the request should be traced.
|
// the request should be traced.
|
||||||
type Filter func(*InterceptorInfo) bool
|
//
|
||||||
|
// Deprecated: Use stats handlers instead.
|
||||||
|
type InterceptorFilter func(*InterceptorInfo) bool
|
||||||
|
|
||||||
|
// Filter is a predicate used to determine whether a given request in
|
||||||
|
// should be instrumented by the attatched RPC tag info.
|
||||||
|
// A Filter must return true if the request should be instrumented.
|
||||||
|
type Filter func(*stats.RPCTagInfo) bool
|
||||||
|
|
||||||
// config is a group of options for this instrumentation.
|
// config is a group of options for this instrumentation.
|
||||||
type config struct {
|
type config struct {
|
||||||
Filter Filter
|
Filter Filter
|
||||||
Propagators propagation.TextMapPropagator
|
InterceptorFilter InterceptorFilter
|
||||||
TracerProvider trace.TracerProvider
|
Propagators propagation.TextMapPropagator
|
||||||
MeterProvider metric.MeterProvider
|
TracerProvider trace.TracerProvider
|
||||||
SpanStartOptions []trace.SpanStartOption
|
MeterProvider metric.MeterProvider
|
||||||
|
SpanStartOptions []trace.SpanStartOption
|
||||||
|
|
||||||
ReceivedEvent bool
|
ReceivedEvent bool
|
||||||
SentEvent bool
|
SentEvent bool
|
||||||
|
@ -152,15 +162,30 @@ func (o tracerProviderOption) apply(c *config) {
|
||||||
// WithInterceptorFilter returns an Option to use the request filter.
|
// WithInterceptorFilter returns an Option to use the request filter.
|
||||||
//
|
//
|
||||||
// Deprecated: Use stats handlers instead.
|
// Deprecated: Use stats handlers instead.
|
||||||
func WithInterceptorFilter(f Filter) Option {
|
func WithInterceptorFilter(f InterceptorFilter) Option {
|
||||||
return interceptorFilterOption{f: f}
|
return interceptorFilterOption{f: f}
|
||||||
}
|
}
|
||||||
|
|
||||||
type interceptorFilterOption struct {
|
type interceptorFilterOption struct {
|
||||||
f Filter
|
f InterceptorFilter
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o interceptorFilterOption) apply(c *config) {
|
func (o interceptorFilterOption) apply(c *config) {
|
||||||
|
if o.f != nil {
|
||||||
|
c.InterceptorFilter = o.f
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithFilter returns an Option to use the request filter.
|
||||||
|
func WithFilter(f Filter) Option {
|
||||||
|
return filterOption{f: f}
|
||||||
|
}
|
||||||
|
|
||||||
|
type filterOption struct {
|
||||||
|
f Filter
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o filterOption) apply(c *config) {
|
||||||
if o.f != nil {
|
if o.f != nil {
|
||||||
c.Filter = o.f
|
c.Filter = o.f
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,7 +70,7 @@ func UnaryClientInterceptor(opts ...Option) grpc.UnaryClientInterceptor {
|
||||||
Method: method,
|
Method: method,
|
||||||
Type: UnaryClient,
|
Type: UnaryClient,
|
||||||
}
|
}
|
||||||
if cfg.Filter != nil && !cfg.Filter(i) {
|
if cfg.InterceptorFilter != nil && !cfg.InterceptorFilter(i) {
|
||||||
return invoker(ctx, method, req, reply, cc, callOpts...)
|
return invoker(ctx, method, req, reply, cc, callOpts...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -230,7 +230,7 @@ func StreamClientInterceptor(opts ...Option) grpc.StreamClientInterceptor {
|
||||||
Method: method,
|
Method: method,
|
||||||
Type: StreamClient,
|
Type: StreamClient,
|
||||||
}
|
}
|
||||||
if cfg.Filter != nil && !cfg.Filter(i) {
|
if cfg.InterceptorFilter != nil && !cfg.InterceptorFilter(i) {
|
||||||
return streamer(ctx, desc, cc, method, callOpts...)
|
return streamer(ctx, desc, cc, method, callOpts...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -285,7 +285,7 @@ func UnaryServerInterceptor(opts ...Option) grpc.UnaryServerInterceptor {
|
||||||
UnaryServerInfo: info,
|
UnaryServerInfo: info,
|
||||||
Type: UnaryServer,
|
Type: UnaryServer,
|
||||||
}
|
}
|
||||||
if cfg.Filter != nil && !cfg.Filter(i) {
|
if cfg.InterceptorFilter != nil && !cfg.InterceptorFilter(i) {
|
||||||
return handler(ctx, req)
|
return handler(ctx, req)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -411,7 +411,7 @@ func StreamServerInterceptor(opts ...Option) grpc.StreamServerInterceptor {
|
||||||
StreamServerInfo: info,
|
StreamServerInfo: info,
|
||||||
Type: StreamServer,
|
Type: StreamServer,
|
||||||
}
|
}
|
||||||
if cfg.Filter != nil && !cfg.Filter(i) {
|
if cfg.InterceptorFilter != nil && !cfg.InterceptorFilter(i) {
|
||||||
return handler(srv, wrapServerStream(ctx, ss, cfg))
|
return handler(srv, wrapServerStream(ctx, ss, cfg))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@ type gRPCContext struct {
|
||||||
messagesReceived int64
|
messagesReceived int64
|
||||||
messagesSent int64
|
messagesSent int64
|
||||||
metricAttrs []attribute.KeyValue
|
metricAttrs []attribute.KeyValue
|
||||||
|
record bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type serverHandler struct {
|
type serverHandler struct {
|
||||||
|
@ -66,6 +67,10 @@ func (h *serverHandler) TagRPC(ctx context.Context, info *stats.RPCTagInfo) cont
|
||||||
|
|
||||||
gctx := gRPCContext{
|
gctx := gRPCContext{
|
||||||
metricAttrs: attrs,
|
metricAttrs: attrs,
|
||||||
|
record: true,
|
||||||
|
}
|
||||||
|
if h.config.Filter != nil {
|
||||||
|
gctx.record = h.config.Filter(info)
|
||||||
}
|
}
|
||||||
return context.WithValue(ctx, gRPCContextKey{}, &gctx)
|
return context.WithValue(ctx, gRPCContextKey{}, &gctx)
|
||||||
}
|
}
|
||||||
|
@ -102,6 +107,10 @@ func (h *clientHandler) TagRPC(ctx context.Context, info *stats.RPCTagInfo) cont
|
||||||
|
|
||||||
gctx := gRPCContext{
|
gctx := gRPCContext{
|
||||||
metricAttrs: attrs,
|
metricAttrs: attrs,
|
||||||
|
record: true,
|
||||||
|
}
|
||||||
|
if h.config.Filter != nil {
|
||||||
|
gctx.record = h.config.Filter(info)
|
||||||
}
|
}
|
||||||
|
|
||||||
return inject(context.WithValue(ctx, gRPCContextKey{}, &gctx), h.config.Propagators)
|
return inject(context.WithValue(ctx, gRPCContextKey{}, &gctx), h.config.Propagators)
|
||||||
|
@ -130,6 +139,9 @@ func (c *config) handleRPC(ctx context.Context, rs stats.RPCStats, isServer bool
|
||||||
|
|
||||||
gctx, _ := ctx.Value(gRPCContextKey{}).(*gRPCContext)
|
gctx, _ := ctx.Value(gRPCContextKey{}).(*gRPCContext)
|
||||||
if gctx != nil {
|
if gctx != nil {
|
||||||
|
if !gctx.record {
|
||||||
|
return
|
||||||
|
}
|
||||||
metricAttrs = make([]attribute.KeyValue, 0, len(gctx.metricAttrs)+1)
|
metricAttrs = make([]attribute.KeyValue, 0, len(gctx.metricAttrs)+1)
|
||||||
metricAttrs = append(metricAttrs, gctx.metricAttrs...)
|
metricAttrs = append(metricAttrs, gctx.metricAttrs...)
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ package otelgrpc // import "go.opentelemetry.io/contrib/instrumentation/google.g
|
||||||
|
|
||||||
// Version is the current release version of the gRPC instrumentation.
|
// Version is the current release version of the gRPC instrumentation.
|
||||||
func Version() string {
|
func Version() string {
|
||||||
return "0.51.0"
|
return "0.52.0"
|
||||||
// This string is updated by the pre_release.sh script during release
|
// This string is updated by the pre_release.sh script during release
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
2
vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/version.go
generated
vendored
2
vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/version.go
generated
vendored
|
@ -5,7 +5,7 @@ package otelhttp // import "go.opentelemetry.io/contrib/instrumentation/net/http
|
||||||
|
|
||||||
// Version is the current release version of the otelhttp instrumentation.
|
// Version is the current release version of the otelhttp instrumentation.
|
||||||
func Version() string {
|
func Version() string {
|
||||||
return "0.51.0"
|
return "0.52.0"
|
||||||
// This string is updated by the pre_release.sh script during release
|
// This string is updated by the pre_release.sh script during release
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
43
vendor/go.opentelemetry.io/otel/CHANGELOG.md
generated
vendored
43
vendor/go.opentelemetry.io/otel/CHANGELOG.md
generated
vendored
|
@ -8,6 +8,41 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [1.27.0/0.49.0/0.3.0] 2024-05-21
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Add example for `go.opentelemetry.io/otel/exporters/stdout/stdoutlog`. (#5242)
|
||||||
|
- Add `RecordFactory` in `go.opentelemetry.io/otel/sdk/log/logtest` to facilitate testing exporter and processor implementations. (#5258)
|
||||||
|
- Add `RecordFactory` in `go.opentelemetry.io/otel/log/logtest` to facilitate testing bridge implementations. (#5263)
|
||||||
|
- The count of dropped records from the `BatchProcessor` in `go.opentelemetry.io/otel/sdk/log` is logged. (#5276)
|
||||||
|
- Add metrics in the `otel-collector` example. (#5283)
|
||||||
|
- Add the synchronous gauge instrument to `go.opentelemetry.io/otel/metric`. (#5304)
|
||||||
|
- An `int64` or `float64` synchronous gauge instrument can now be created from a `Meter`.
|
||||||
|
- All implementations of the API (`go.opentelemetry.io/otel/metric/noop`, `go.opentelemetry.io/otel/sdk/metric`) are updated to support this instrument.
|
||||||
|
- Add logs to `go.opentelemetry.io/otel/example/dice`. (#5349)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- The `Shutdown` method of `Exporter` in `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` ignores the context cancellation and always returns `nil`. (#5189)
|
||||||
|
- The `ForceFlush` and `Shutdown` methods of the exporter returned by `New` in `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` ignore the context cancellation and always return `nil`. (#5189)
|
||||||
|
- Apply the value length limits to `Record` attributes in `go.opentelemetry.io/otel/sdk/log`. (#5230)
|
||||||
|
- De-duplicate map attributes added to a `Record` in `go.opentelemetry.io/otel/sdk/log`. (#5230)
|
||||||
|
- `go.opentelemetry.io/otel/exporters/stdout/stdoutlog` won't print timestamps when `WithoutTimestamps` option is set. (#5241)
|
||||||
|
- The `go.opentelemetry.io/otel/exporters/stdout/stdoutlog` exporter won't print `AttributeValueLengthLimit` and `AttributeCountLimit` fields now, instead it prints the `DroppedAttributes` field. (#5272)
|
||||||
|
- Improved performance in the `Stringer` implementation of `go.opentelemetry.io/otel/baggage.Member` by reducing the number of allocations. (#5286)
|
||||||
|
- Set the start time for last-value aggregates in `go.opentelemetry.io/otel/sdk/metric`. (#5305)
|
||||||
|
- The `Span` in `go.opentelemetry.io/otel/sdk/trace` will record links without span context if either non-empty `TraceState` or attributes are provided. (#5315)
|
||||||
|
- Upgrade all dependencies of `go.opentelemetry.io/otel/semconv/v1.24.0` to `go.opentelemetry.io/otel/semconv/v1.25.0`. (#5374)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Comparison of unordered maps for `go.opentelemetry.io/otel/log.KeyValue` and `go.opentelemetry.io/otel/log.Value`. (#5306)
|
||||||
|
- Fix the empty output of `go.opentelemetry.io/otel/log.Value` in `go.opentelemetry.io/otel/exporters/stdout/stdoutlog`. (#5311)
|
||||||
|
- Split the behavior of `Recorder` in `go.opentelemetry.io/otel/log/logtest` so it behaves as a `LoggerProvider` only. (#5365)
|
||||||
|
- Fix wrong package name of the error message when parsing endpoint URL in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`. (#5371)
|
||||||
|
- Identify the `Logger` returned from the global `LoggerProvider` in `go.opentelemetry.io/otel/log/global` with its schema URL. (#5375)
|
||||||
|
|
||||||
## [1.26.0/0.48.0/0.2.0-alpha] 2024-04-24
|
## [1.26.0/0.48.0/0.2.0-alpha] 2024-04-24
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
@ -33,6 +68,11 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
||||||
|
|
||||||
- Update `go.opentelemetry.io/proto/otlp` from v1.1.0 to v1.2.0. (#5177)
|
- Update `go.opentelemetry.io/proto/otlp` from v1.1.0 to v1.2.0. (#5177)
|
||||||
- Improve performance of baggage member character validation in `go.opentelemetry.io/otel/baggage`. (#5214)
|
- Improve performance of baggage member character validation in `go.opentelemetry.io/otel/baggage`. (#5214)
|
||||||
|
- The `otel-collector` example now uses docker compose to bring up services instead of kubernetes. (#5244)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Slice attribute values in `go.opentelemetry.io/otel/attribute` are now emitted as their JSON representation. (#5159)
|
||||||
|
|
||||||
## [1.25.0/0.47.0/0.0.8/0.1.0-alpha] 2024-04-05
|
## [1.25.0/0.47.0/0.0.8/0.1.0-alpha] 2024-04-05
|
||||||
|
|
||||||
|
@ -2921,7 +2961,8 @@ It contains api and sdk for trace and meter.
|
||||||
- CircleCI build CI manifest files.
|
- CircleCI build CI manifest files.
|
||||||
- CODEOWNERS file to track owners of this project.
|
- CODEOWNERS file to track owners of this project.
|
||||||
|
|
||||||
[Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.26.0...HEAD
|
[Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.27.0...HEAD
|
||||||
|
[1.27.0/0.49.0/0.3.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.27.0
|
||||||
[1.26.0/0.48.0/0.2.0-alpha]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.26.0
|
[1.26.0/0.48.0/0.2.0-alpha]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.26.0
|
||||||
[1.25.0/0.47.0/0.0.8/0.1.0-alpha]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.25.0
|
[1.25.0/0.47.0/0.0.8/0.1.0-alpha]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.25.0
|
||||||
[1.24.0/0.46.0/0.0.1-alpha]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.24.0
|
[1.24.0/0.46.0/0.0.1-alpha]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.24.0
|
||||||
|
|
4
vendor/go.opentelemetry.io/otel/CODEOWNERS
generated
vendored
4
vendor/go.opentelemetry.io/otel/CODEOWNERS
generated
vendored
|
@ -12,6 +12,6 @@
|
||||||
# https://help.github.com/en/articles/about-code-owners
|
# https://help.github.com/en/articles/about-code-owners
|
||||||
#
|
#
|
||||||
|
|
||||||
* @MrAlias @Aneurysm9 @evantorrie @XSAM @dashpole @MadVikingGod @pellared @hanyuancheung @dmathieu
|
* @MrAlias @evantorrie @XSAM @dashpole @MadVikingGod @pellared @hanyuancheung @dmathieu
|
||||||
|
|
||||||
CODEOWNERS @MrAlias @MadVikingGod @pellared @dashpole
|
CODEOWNERS @MrAlias @MadVikingGod @pellared @dashpole
|
||||||
|
|
5
vendor/go.opentelemetry.io/otel/CONTRIBUTING.md
generated
vendored
5
vendor/go.opentelemetry.io/otel/CONTRIBUTING.md
generated
vendored
|
@ -570,6 +570,9 @@ functionality should be added, each one will need their own super-set
|
||||||
interfaces and will duplicate the pattern. For this reason, the simple targeted
|
interfaces and will duplicate the pattern. For this reason, the simple targeted
|
||||||
interface that defines the specific functionality should be preferred.
|
interface that defines the specific functionality should be preferred.
|
||||||
|
|
||||||
|
See also:
|
||||||
|
[Keeping Your Modules Compatible: Working with interfaces](https://go.dev/blog/module-compatibility#working-with-interfaces).
|
||||||
|
|
||||||
### Testing
|
### Testing
|
||||||
|
|
||||||
The tests should never leak goroutines.
|
The tests should never leak goroutines.
|
||||||
|
@ -629,7 +632,6 @@ should be canceled.
|
||||||
- [Sam Xie](https://github.com/XSAM), Cisco/AppDynamics
|
- [Sam Xie](https://github.com/XSAM), Cisco/AppDynamics
|
||||||
- [Chester Cheung](https://github.com/hanyuancheung), Tencent
|
- [Chester Cheung](https://github.com/hanyuancheung), Tencent
|
||||||
- [Damien Mathieu](https://github.com/dmathieu), Elastic
|
- [Damien Mathieu](https://github.com/dmathieu), Elastic
|
||||||
- [Anthony Mirabella](https://github.com/Aneurysm9), AWS
|
|
||||||
|
|
||||||
### Maintainers
|
### Maintainers
|
||||||
|
|
||||||
|
@ -643,6 +645,7 @@ should be canceled.
|
||||||
- [Liz Fong-Jones](https://github.com/lizthegrey), Honeycomb
|
- [Liz Fong-Jones](https://github.com/lizthegrey), Honeycomb
|
||||||
- [Gustavo Silva Paiva](https://github.com/paivagustavo), LightStep
|
- [Gustavo Silva Paiva](https://github.com/paivagustavo), LightStep
|
||||||
- [Josh MacDonald](https://github.com/jmacd), LightStep
|
- [Josh MacDonald](https://github.com/jmacd), LightStep
|
||||||
|
- [Anthony Mirabella](https://github.com/Aneurysm9), AWS
|
||||||
|
|
||||||
### Become an Approver or a Maintainer
|
### Become an Approver or a Maintainer
|
||||||
|
|
||||||
|
|
18
vendor/go.opentelemetry.io/otel/Makefile
generated
vendored
18
vendor/go.opentelemetry.io/otel/Makefile
generated
vendored
|
@ -14,8 +14,8 @@ TIMEOUT = 60
|
||||||
.DEFAULT_GOAL := precommit
|
.DEFAULT_GOAL := precommit
|
||||||
|
|
||||||
.PHONY: precommit ci
|
.PHONY: precommit ci
|
||||||
precommit: generate dependabot-generate license-check misspell go-mod-tidy golangci-lint-fix verify-readmes test-default
|
precommit: generate license-check misspell go-mod-tidy golangci-lint-fix verify-readmes test-default
|
||||||
ci: generate dependabot-check license-check lint vanity-import-check verify-readmes build test-default check-clean-work-tree test-coverage
|
ci: generate license-check lint vanity-import-check verify-readmes build test-default check-clean-work-tree test-coverage
|
||||||
|
|
||||||
# Tools
|
# Tools
|
||||||
|
|
||||||
|
@ -39,9 +39,6 @@ $(TOOLS)/crosslink: PACKAGE=go.opentelemetry.io/build-tools/crosslink
|
||||||
SEMCONVKIT = $(TOOLS)/semconvkit
|
SEMCONVKIT = $(TOOLS)/semconvkit
|
||||||
$(TOOLS)/semconvkit: PACKAGE=go.opentelemetry.io/otel/$(TOOLS_MOD_DIR)/semconvkit
|
$(TOOLS)/semconvkit: PACKAGE=go.opentelemetry.io/otel/$(TOOLS_MOD_DIR)/semconvkit
|
||||||
|
|
||||||
DBOTCONF = $(TOOLS)/dbotconf
|
|
||||||
$(TOOLS)/dbotconf: PACKAGE=go.opentelemetry.io/build-tools/dbotconf
|
|
||||||
|
|
||||||
GOLANGCI_LINT = $(TOOLS)/golangci-lint
|
GOLANGCI_LINT = $(TOOLS)/golangci-lint
|
||||||
$(TOOLS)/golangci-lint: PACKAGE=github.com/golangci/golangci-lint/cmd/golangci-lint
|
$(TOOLS)/golangci-lint: PACKAGE=github.com/golangci/golangci-lint/cmd/golangci-lint
|
||||||
|
|
||||||
|
@ -70,7 +67,7 @@ GOVULNCHECK = $(TOOLS)/govulncheck
|
||||||
$(TOOLS)/govulncheck: PACKAGE=golang.org/x/vuln/cmd/govulncheck
|
$(TOOLS)/govulncheck: PACKAGE=golang.org/x/vuln/cmd/govulncheck
|
||||||
|
|
||||||
.PHONY: tools
|
.PHONY: tools
|
||||||
tools: $(CROSSLINK) $(DBOTCONF) $(GOLANGCI_LINT) $(MISSPELL) $(GOCOVMERGE) $(STRINGER) $(PORTO) $(GOJQ) $(SEMCONVGEN) $(MULTIMOD) $(SEMCONVKIT) $(GOTMPL) $(GORELEASE)
|
tools: $(CROSSLINK) $(GOLANGCI_LINT) $(MISSPELL) $(GOCOVMERGE) $(STRINGER) $(PORTO) $(GOJQ) $(SEMCONVGEN) $(MULTIMOD) $(SEMCONVKIT) $(GOTMPL) $(GORELEASE)
|
||||||
|
|
||||||
# Virtualized python tools via docker
|
# Virtualized python tools via docker
|
||||||
|
|
||||||
|
@ -252,15 +249,6 @@ license-check:
|
||||||
exit 1; \
|
exit 1; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DEPENDABOT_CONFIG = .github/dependabot.yml
|
|
||||||
.PHONY: dependabot-check
|
|
||||||
dependabot-check: $(DBOTCONF)
|
|
||||||
@$(DBOTCONF) verify $(DEPENDABOT_CONFIG) || ( echo "(run: make dependabot-generate)"; exit 1 )
|
|
||||||
|
|
||||||
.PHONY: dependabot-generate
|
|
||||||
dependabot-generate: $(DBOTCONF)
|
|
||||||
@$(DBOTCONF) generate > $(DEPENDABOT_CONFIG)
|
|
||||||
|
|
||||||
.PHONY: check-clean-work-tree
|
.PHONY: check-clean-work-tree
|
||||||
check-clean-work-tree:
|
check-clean-work-tree:
|
||||||
@if ! git diff --quiet; then \
|
@if ! git diff --quiet; then \
|
||||||
|
|
14
vendor/go.opentelemetry.io/otel/README.md
generated
vendored
14
vendor/go.opentelemetry.io/otel/README.md
generated
vendored
|
@ -15,7 +15,7 @@ It provides a set of APIs to directly measure performance and behavior of your s
|
||||||
|---------|--------------------|
|
|---------|--------------------|
|
||||||
| Traces | Stable |
|
| Traces | Stable |
|
||||||
| Metrics | Stable |
|
| Metrics | Stable |
|
||||||
| Logs | In development[^1] |
|
| Logs | Beta[^1] |
|
||||||
|
|
||||||
Progress and status specific to this repository is tracked in our
|
Progress and status specific to this repository is tracked in our
|
||||||
[project boards](https://github.com/open-telemetry/opentelemetry-go/projects)
|
[project boards](https://github.com/open-telemetry/opentelemetry-go/projects)
|
||||||
|
@ -97,12 +97,12 @@ export pipeline to send that telemetry to an observability platform.
|
||||||
|
|
||||||
All officially supported exporters for the OpenTelemetry project are contained in the [exporters directory](./exporters).
|
All officially supported exporters for the OpenTelemetry project are contained in the [exporters directory](./exporters).
|
||||||
|
|
||||||
| Exporter | Metrics | Traces |
|
| Exporter | Logs | Metrics | Traces |
|
||||||
|---------------------------------------|:-------:|:------:|
|
|---------------------------------------|:----:|:-------:|:------:|
|
||||||
| [OTLP](./exporters/otlp/) | ✓ | ✓ |
|
| [OTLP](./exporters/otlp/) | ✓ | ✓ | ✓ |
|
||||||
| [Prometheus](./exporters/prometheus/) | ✓ | |
|
| [Prometheus](./exporters/prometheus/) | | ✓ | |
|
||||||
| [stdout](./exporters/stdout/) | ✓ | ✓ |
|
| [stdout](./exporters/stdout/) | ✓ | ✓ | ✓ |
|
||||||
| [Zipkin](./exporters/zipkin/) | | ✓ |
|
| [Zipkin](./exporters/zipkin/) | | | ✓ |
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
|
6
vendor/go.opentelemetry.io/otel/RELEASING.md
generated
vendored
6
vendor/go.opentelemetry.io/otel/RELEASING.md
generated
vendored
|
@ -27,6 +27,12 @@ You can run `make gorelease` that runs [gorelease](https://pkg.go.dev/golang.org
|
||||||
|
|
||||||
You can check/report problems with `gorelease` [here](https://golang.org/issues/26420).
|
You can check/report problems with `gorelease` [here](https://golang.org/issues/26420).
|
||||||
|
|
||||||
|
## Verify changes for contrib repository
|
||||||
|
|
||||||
|
If the changes in the main repository are going to affect the contrib repository, it is important to verify that the changes are compatible with the contrib repository.
|
||||||
|
|
||||||
|
Follow [the steps](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/RELEASING.md#verify-otel-changes) in the contrib repository to verify OTel changes.
|
||||||
|
|
||||||
## Pre-Release
|
## Pre-Release
|
||||||
|
|
||||||
First, decide which module sets will be released and update their versions
|
First, decide which module sets will be released and update their versions
|
||||||
|
|
18
vendor/go.opentelemetry.io/otel/attribute/value.go
generated
vendored
18
vendor/go.opentelemetry.io/otel/attribute/value.go
generated
vendored
|
@ -231,15 +231,27 @@ func (v Value) Emit() string {
|
||||||
case BOOL:
|
case BOOL:
|
||||||
return strconv.FormatBool(v.AsBool())
|
return strconv.FormatBool(v.AsBool())
|
||||||
case INT64SLICE:
|
case INT64SLICE:
|
||||||
return fmt.Sprint(v.asInt64Slice())
|
j, err := json.Marshal(v.asInt64Slice())
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Sprintf("invalid: %v", v.asInt64Slice())
|
||||||
|
}
|
||||||
|
return string(j)
|
||||||
case INT64:
|
case INT64:
|
||||||
return strconv.FormatInt(v.AsInt64(), 10)
|
return strconv.FormatInt(v.AsInt64(), 10)
|
||||||
case FLOAT64SLICE:
|
case FLOAT64SLICE:
|
||||||
return fmt.Sprint(v.asFloat64Slice())
|
j, err := json.Marshal(v.asFloat64Slice())
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Sprintf("invalid: %v", v.asFloat64Slice())
|
||||||
|
}
|
||||||
|
return string(j)
|
||||||
case FLOAT64:
|
case FLOAT64:
|
||||||
return fmt.Sprint(v.AsFloat64())
|
return fmt.Sprint(v.AsFloat64())
|
||||||
case STRINGSLICE:
|
case STRINGSLICE:
|
||||||
return fmt.Sprint(v.asStringSlice())
|
j, err := json.Marshal(v.asStringSlice())
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Sprintf("invalid: %v", v.asStringSlice())
|
||||||
|
}
|
||||||
|
return string(j)
|
||||||
case STRING:
|
case STRING:
|
||||||
return v.stringly
|
return v.stringly
|
||||||
default:
|
default:
|
||||||
|
|
4
vendor/go.opentelemetry.io/otel/baggage/baggage.go
generated
vendored
4
vendor/go.opentelemetry.io/otel/baggage/baggage.go
generated
vendored
|
@ -335,9 +335,9 @@ func (m Member) String() string {
|
||||||
// A key is just an ASCII string. A value is restricted to be
|
// A key is just an ASCII string. A value is restricted to be
|
||||||
// US-ASCII characters excluding CTLs, whitespace,
|
// US-ASCII characters excluding CTLs, whitespace,
|
||||||
// DQUOTE, comma, semicolon, and backslash.
|
// DQUOTE, comma, semicolon, and backslash.
|
||||||
s := fmt.Sprintf("%s%s%s", m.key, keyValueDelimiter, valueEscape(m.value))
|
s := m.key + keyValueDelimiter + valueEscape(m.value)
|
||||||
if len(m.properties) > 0 {
|
if len(m.properties) > 0 {
|
||||||
s = fmt.Sprintf("%s%s%s", s, propertyDelimiter, m.properties.String())
|
s += propertyDelimiter + m.properties.String()
|
||||||
}
|
}
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
52
vendor/go.opentelemetry.io/otel/internal/global/instruments.go
generated
vendored
52
vendor/go.opentelemetry.io/otel/internal/global/instruments.go
generated
vendored
|
@ -281,6 +281,32 @@ func (i *sfHistogram) Record(ctx context.Context, x float64, opts ...metric.Reco
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type sfGauge struct {
|
||||||
|
embedded.Float64Gauge
|
||||||
|
|
||||||
|
name string
|
||||||
|
opts []metric.Float64GaugeOption
|
||||||
|
|
||||||
|
delegate atomic.Value // metric.Float64Gauge
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ metric.Float64Gauge = (*sfGauge)(nil)
|
||||||
|
|
||||||
|
func (i *sfGauge) setDelegate(m metric.Meter) {
|
||||||
|
ctr, err := m.Float64Gauge(i.name, i.opts...)
|
||||||
|
if err != nil {
|
||||||
|
GetErrorHandler().Handle(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
i.delegate.Store(ctr)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *sfGauge) Record(ctx context.Context, x float64, opts ...metric.RecordOption) {
|
||||||
|
if ctr := i.delegate.Load(); ctr != nil {
|
||||||
|
ctr.(metric.Float64Gauge).Record(ctx, x, opts...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
type siCounter struct {
|
type siCounter struct {
|
||||||
embedded.Int64Counter
|
embedded.Int64Counter
|
||||||
|
|
||||||
|
@ -358,3 +384,29 @@ func (i *siHistogram) Record(ctx context.Context, x int64, opts ...metric.Record
|
||||||
ctr.(metric.Int64Histogram).Record(ctx, x, opts...)
|
ctr.(metric.Int64Histogram).Record(ctx, x, opts...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type siGauge struct {
|
||||||
|
embedded.Int64Gauge
|
||||||
|
|
||||||
|
name string
|
||||||
|
opts []metric.Int64GaugeOption
|
||||||
|
|
||||||
|
delegate atomic.Value // metric.Int64Gauge
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ metric.Int64Gauge = (*siGauge)(nil)
|
||||||
|
|
||||||
|
func (i *siGauge) setDelegate(m metric.Meter) {
|
||||||
|
ctr, err := m.Int64Gauge(i.name, i.opts...)
|
||||||
|
if err != nil {
|
||||||
|
GetErrorHandler().Handle(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
i.delegate.Store(ctr)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *siGauge) Record(ctx context.Context, x int64, opts ...metric.RecordOption) {
|
||||||
|
if ctr := i.delegate.Load(); ctr != nil {
|
||||||
|
ctr.(metric.Int64Gauge).Record(ctx, x, opts...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
22
vendor/go.opentelemetry.io/otel/internal/global/meter.go
generated
vendored
22
vendor/go.opentelemetry.io/otel/internal/global/meter.go
generated
vendored
|
@ -164,6 +164,17 @@ func (m *meter) Int64Histogram(name string, options ...metric.Int64HistogramOpti
|
||||||
return i, nil
|
return i, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *meter) Int64Gauge(name string, options ...metric.Int64GaugeOption) (metric.Int64Gauge, error) {
|
||||||
|
if del, ok := m.delegate.Load().(metric.Meter); ok {
|
||||||
|
return del.Int64Gauge(name, options...)
|
||||||
|
}
|
||||||
|
m.mtx.Lock()
|
||||||
|
defer m.mtx.Unlock()
|
||||||
|
i := &siGauge{name: name, opts: options}
|
||||||
|
m.instruments = append(m.instruments, i)
|
||||||
|
return i, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (m *meter) Int64ObservableCounter(name string, options ...metric.Int64ObservableCounterOption) (metric.Int64ObservableCounter, error) {
|
func (m *meter) Int64ObservableCounter(name string, options ...metric.Int64ObservableCounterOption) (metric.Int64ObservableCounter, error) {
|
||||||
if del, ok := m.delegate.Load().(metric.Meter); ok {
|
if del, ok := m.delegate.Load().(metric.Meter); ok {
|
||||||
return del.Int64ObservableCounter(name, options...)
|
return del.Int64ObservableCounter(name, options...)
|
||||||
|
@ -230,6 +241,17 @@ func (m *meter) Float64Histogram(name string, options ...metric.Float64Histogram
|
||||||
return i, nil
|
return i, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *meter) Float64Gauge(name string, options ...metric.Float64GaugeOption) (metric.Float64Gauge, error) {
|
||||||
|
if del, ok := m.delegate.Load().(metric.Meter); ok {
|
||||||
|
return del.Float64Gauge(name, options...)
|
||||||
|
}
|
||||||
|
m.mtx.Lock()
|
||||||
|
defer m.mtx.Unlock()
|
||||||
|
i := &sfGauge{name: name, opts: options}
|
||||||
|
m.instruments = append(m.instruments, i)
|
||||||
|
return i, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (m *meter) Float64ObservableCounter(name string, options ...metric.Float64ObservableCounterOption) (metric.Float64ObservableCounter, error) {
|
func (m *meter) Float64ObservableCounter(name string, options ...metric.Float64ObservableCounterOption) (metric.Float64ObservableCounter, error) {
|
||||||
if del, ok := m.delegate.Load().(metric.Meter); ok {
|
if del, ok := m.delegate.Load().(metric.Meter); ok {
|
||||||
return del.Float64ObservableCounter(name, options...)
|
return del.Float64ObservableCounter(name, options...)
|
||||||
|
|
6
vendor/go.opentelemetry.io/otel/metric/asyncfloat64.go
generated
vendored
6
vendor/go.opentelemetry.io/otel/metric/asyncfloat64.go
generated
vendored
|
@ -39,7 +39,7 @@ type Float64ObservableCounter interface {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Float64ObservableCounterConfig contains options for asynchronous counter
|
// Float64ObservableCounterConfig contains options for asynchronous counter
|
||||||
// instruments that record int64 values.
|
// instruments that record float64 values.
|
||||||
type Float64ObservableCounterConfig struct {
|
type Float64ObservableCounterConfig struct {
|
||||||
description string
|
description string
|
||||||
unit string
|
unit string
|
||||||
|
@ -97,7 +97,7 @@ type Float64ObservableUpDownCounter interface {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Float64ObservableUpDownCounterConfig contains options for asynchronous
|
// Float64ObservableUpDownCounterConfig contains options for asynchronous
|
||||||
// counter instruments that record int64 values.
|
// counter instruments that record float64 values.
|
||||||
type Float64ObservableUpDownCounterConfig struct {
|
type Float64ObservableUpDownCounterConfig struct {
|
||||||
description string
|
description string
|
||||||
unit string
|
unit string
|
||||||
|
@ -154,7 +154,7 @@ type Float64ObservableGauge interface {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Float64ObservableGaugeConfig contains options for asynchronous counter
|
// Float64ObservableGaugeConfig contains options for asynchronous counter
|
||||||
// instruments that record int64 values.
|
// instruments that record float64 values.
|
||||||
type Float64ObservableGaugeConfig struct {
|
type Float64ObservableGaugeConfig struct {
|
||||||
description string
|
description string
|
||||||
unit string
|
unit string
|
||||||
|
|
20
vendor/go.opentelemetry.io/otel/metric/embedded/embedded.go
generated
vendored
20
vendor/go.opentelemetry.io/otel/metric/embedded/embedded.go
generated
vendored
|
@ -102,6 +102,16 @@ type Float64Counter interface{ float64Counter() }
|
||||||
// the API package).
|
// the API package).
|
||||||
type Float64Histogram interface{ float64Histogram() }
|
type Float64Histogram interface{ float64Histogram() }
|
||||||
|
|
||||||
|
// Float64Gauge is embedded in [go.opentelemetry.io/otel/metric.Float64Gauge].
|
||||||
|
//
|
||||||
|
// Embed this interface in your implementation of the
|
||||||
|
// [go.opentelemetry.io/otel/metric.Float64Gauge] if you want users to
|
||||||
|
// experience a compilation error, signaling they need to update to your latest
|
||||||
|
// implementation, when the [go.opentelemetry.io/otel/metric.Float64Gauge]
|
||||||
|
// interface is extended (which is something that can happen without a major
|
||||||
|
// version bump of the API package).
|
||||||
|
type Float64Gauge interface{ float64Gauge() }
|
||||||
|
|
||||||
// Float64ObservableCounter is embedded in
|
// Float64ObservableCounter is embedded in
|
||||||
// [go.opentelemetry.io/otel/metric.Float64ObservableCounter].
|
// [go.opentelemetry.io/otel/metric.Float64ObservableCounter].
|
||||||
//
|
//
|
||||||
|
@ -174,6 +184,16 @@ type Int64Counter interface{ int64Counter() }
|
||||||
// the API package).
|
// the API package).
|
||||||
type Int64Histogram interface{ int64Histogram() }
|
type Int64Histogram interface{ int64Histogram() }
|
||||||
|
|
||||||
|
// Int64Gauge is embedded in [go.opentelemetry.io/otel/metric.Int64Gauge].
|
||||||
|
//
|
||||||
|
// Embed this interface in your implementation of the
|
||||||
|
// [go.opentelemetry.io/otel/metric.Int64Gauge] if you want users to experience
|
||||||
|
// a compilation error, signaling they need to update to your latest
|
||||||
|
// implementation, when the [go.opentelemetry.io/otel/metric.Int64Gauge]
|
||||||
|
// interface is extended (which is something that can happen without a major
|
||||||
|
// version bump of the API package).
|
||||||
|
type Int64Gauge interface{ int64Gauge() }
|
||||||
|
|
||||||
// Int64ObservableCounter is embedded in
|
// Int64ObservableCounter is embedded in
|
||||||
// [go.opentelemetry.io/otel/metric.Int64ObservableCounter].
|
// [go.opentelemetry.io/otel/metric.Int64ObservableCounter].
|
||||||
//
|
//
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue