diff --git a/docs/sbom-full.json b/docs/sbom-full.json index ec9e356..23c8c6f 100644 --- a/docs/sbom-full.json +++ b/docs/sbom-full.json @@ -3005,35 +3005,6 @@ } ] }, - { - "bom-ref": "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "type": "library", - "name": "github.com/davecgh/go-spew", - "version": "v1.1.2-0.20180830191138-d8f796af33cc", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "53da8f488d8f216492d55c285d04fd0375b2f4c3375a0bea4b11567a7a8976e3" - } - ], - "purl": "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?goarch=amd64&goos=linux&type=module", - "externalReferences": [ - { - "url": "https://github.com/davecgh/go-spew", - "type": "vcs" - } - ], - "evidence": { - "licenses": [ - { - "license": { - "id": "0BSD" - } - } - ] - } - }, { "bom-ref": "pkg:golang/github.com/davidlazar/go-crypto@v0.0.0-20200604182044-b73af7476f6c?type=module", "type": "library", @@ -8963,35 +8934,6 @@ ] } }, - { - "bom-ref": "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", - "type": "library", - "name": "github.com/pmezard/go-difflib", - "version": "v1.0.1-0.20181226105442-5d4384ee4fb2", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "25a9af839a6c44871cb3b14635394844c913f3082da797825dd065aa16062fa5" - } - ], - "purl": "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?goarch=amd64&goos=linux&type=module", - "externalReferences": [ - { - "url": "https://github.com/pmezard/go-difflib", - "type": "vcs" - } - ], - "evidence": { - "licenses": [ - { - "license": { - "id": "BSD-3-Clause" - } - } - ] - } - }, { "bom-ref": "pkg:golang/github.com/polydawn/refmt@v0.89.1-0.20221221234430-40501e09de1f?type=module", "type": "library", @@ -12779,9 +12721,7 @@ "dependsOn": [ "pkg:golang/buf.build/go/interrupt@v1.1.0?type=module", "pkg:golang/github.com/cpuguy83/go-md2man/v2@v2.0.7?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/inconshreveable/mousetrap@v1.1.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/russross/blackfriday/v2@v2.1.0?type=module", "pkg:golang/github.com/spf13/cobra@v1.10.2?type=module", "pkg:golang/github.com/spf13/pflag@v1.0.10?type=module", @@ -12800,10 +12740,8 @@ "pkg:golang/cel.dev/expr@v0.25.2?type=module", "pkg:golang/github.com/antlr4-go/antlr/v4@v4.13.1?type=module", "pkg:golang/github.com/bufbuild/protocompile@v0.14.2-0.20260522222248-64e6ad034132?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/google/cel-go@v0.28.1?type=module", "pkg:golang/github.com/mattn/go-isatty@v0.0.22?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/spf13/pflag@v1.0.10?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/exp@v0.0.0-20260508232706-74f9aab9d74a?type=module", @@ -12834,10 +12772,8 @@ "pkg:golang/buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go@v1.36.11-20260415201107-50325440f8f2.1?type=module", "pkg:golang/cel.dev/expr@v0.25.2?type=module", "pkg:golang/github.com/antlr4-go/antlr/v4@v4.13.1?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/google/cel-go@v0.28.1?type=module", "pkg:golang/github.com/google/go-cmp@v0.7.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/exp@v0.0.0-20260508232706-74f9aab9d74a?type=module", "pkg:golang/golang.org/x/text@v0.41.0?type=module", @@ -12854,10 +12790,8 @@ "pkg:golang/buf.build/go/protovalidate@v1.2.0?type=module", "pkg:golang/cel.dev/expr@v0.25.2?type=module", "pkg:golang/github.com/antlr4-go/antlr/v4@v4.13.1?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/google/cel-go@v0.28.1?type=module", "pkg:golang/github.com/google/go-cmp@v0.7.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.yaml.in/yaml/v3@v3.0.4?type=module", "pkg:golang/golang.org/x/exp@v0.0.0-20260508232706-74f9aab9d74a?type=module", @@ -12874,8 +12808,6 @@ { "ref": "pkg:golang/buf.build/go/standard@v0.1.1-0.20260325175353-2b287e071df5?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" ] @@ -12984,12 +12916,10 @@ "ref": "pkg:golang/connectrpc.com/otelconnect@v0.9.0?type=module", "dependsOn": [ "pkg:golang/connectrpc.com/connect@v1.20.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/go-logr/logr@v1.4.3?type=module", "pkg:golang/github.com/go-logr/stdr@v1.2.2?type=module", "pkg:golang/github.com/google/go-cmp@v0.7.0?type=module", "pkg:golang/github.com/google/uuid@v1.6.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.opentelemetry.io/otel@v1.43.0?type=module", "pkg:golang/go.opentelemetry.io/otel/metric@v1.43.0?type=module", @@ -13003,8 +12933,6 @@ "ref": "pkg:golang/dev.gaijin.team/go/exhaustruct/v4@v4.0.0?type=module", "dependsOn": [ "pkg:golang/dev.gaijin.team/go/golib@v0.6.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/mod@v0.38.0?type=module", "pkg:golang/golang.org/x/sync@v0.22.0?type=module", @@ -13015,8 +12943,6 @@ { "ref": "pkg:golang/dev.gaijin.team/go/golib@v0.6.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/sirupsen/logrus@v1.9.4?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.uber.org/multierr@v1.11.0?type=module", @@ -13043,8 +12969,6 @@ "ref": "pkg:golang/github.com/4meepo/tagalign@v1.4.3?type=module", "dependsOn": [ "pkg:golang/github.com/alfatraining/structtag@v1.0.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/mod@v0.38.0?type=module", "pkg:golang/golang.org/x/sync@v0.22.0?type=module", @@ -13104,8 +13028,6 @@ "ref": "pkg:golang/github.com/Azure/azure-sdk-for-go/sdk/azcore@v1.21.0?type=module", "dependsOn": [ "pkg:golang/github.com/Azure/azure-sdk-for-go/sdk/internal@v1.11.2?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/net@v0.57.0?type=module", "pkg:golang/golang.org/x/text@v0.41.0?type=module", @@ -13118,12 +13040,10 @@ "pkg:golang/github.com/Azure/azure-sdk-for-go/sdk/azcore@v1.21.0?type=module", "pkg:golang/github.com/Azure/azure-sdk-for-go/sdk/internal@v1.11.2?type=module", "pkg:golang/github.com/AzureAD/microsoft-authentication-library-for-go@v1.6.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/golang-jwt/jwt/v5@v5.3.1?type=module", "pkg:golang/github.com/google/uuid@v1.6.0?type=module", "pkg:golang/github.com/kylelemons/godebug@v1.1.0?type=module", "pkg:golang/github.com/pkg/browser@v0.0.0-20240102092130-5ac0b6a4141c?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/crypto@v0.55.0?type=module", "pkg:golang/golang.org/x/net@v0.57.0?type=module", @@ -13138,12 +13058,10 @@ "pkg:golang/github.com/Azure/azure-sdk-for-go/sdk/azcore@v1.21.0?type=module", "pkg:golang/github.com/Azure/azure-sdk-for-go/sdk/azidentity@v1.13.1?type=module", "pkg:golang/github.com/AzureAD/microsoft-authentication-library-for-go@v1.6.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/golang-jwt/jwt/v5@v5.3.1?type=module", "pkg:golang/github.com/google/uuid@v1.6.0?type=module", "pkg:golang/github.com/kylelemons/godebug@v1.1.0?type=module", "pkg:golang/github.com/pkg/browser@v0.0.0-20240102092130-5ac0b6a4141c?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/rogpeppe/go-internal@v1.14.1?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/crypto@v0.55.0?type=module", @@ -13313,9 +13231,7 @@ { "ref": "pkg:golang/github.com/ashanbrown/forbidigo/v2@v2.3.1?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/google/go-cmp@v0.7.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.yaml.in/yaml/v3@v3.0.4?type=module", "pkg:golang/golang.org/x/mod@v0.38.0?type=module", @@ -13488,8 +13404,6 @@ { "ref": "pkg:golang/github.com/bombsimon/wsl/v5@v5.8.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.yaml.in/yaml/v3@v3.0.4?type=module", "pkg:golang/golang.org/x/mod@v0.38.0?type=module", @@ -13543,7 +13457,6 @@ "pkg:golang/github.com/containerd/errdefs@v1.0.0?type=module", "pkg:golang/github.com/containerd/errdefs/pkg@v0.3.0?type=module", "pkg:golang/github.com/cpuguy83/go-md2man/v2@v2.0.7?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/distribution/reference@v0.6.0?type=module", "pkg:golang/github.com/docker/cli@v29.5.2+incompatible?type=module", "pkg:golang/github.com/docker/docker-credential-helpers@v0.9.7?type=module", @@ -13569,7 +13482,6 @@ "pkg:golang/github.com/opencontainers/go-digest@v1.0.0?type=module", "pkg:golang/github.com/opencontainers/image-spec@v1.1.1?type=module", "pkg:golang/github.com/petermattis/goid@v0.0.0-20260330135022-df67b199bc81?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/quic-go/qpack@v0.6.0?type=module", "pkg:golang/github.com/quic-go/quic-go@v0.60.0?type=module", "pkg:golang/github.com/rivo/uniseg@v0.4.7?type=module", @@ -13617,10 +13529,8 @@ "dependsOn": [ "pkg:golang/buf.build/gen/go/bufbuild/protodescriptor/protocolbuffers/go@v1.36.11-20250109164928-1da0de137947.1?type=module", "pkg:golang/buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go@v1.36.11-20260415201107-50325440f8f2.1?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/google/go-cmp@v0.7.0?type=module", "pkg:golang/github.com/petermattis/goid@v0.0.0-20260330135022-df67b199bc81?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/rivo/uniseg@v0.4.7?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/github.com/tidwall/btree@v1.8.1?type=module", @@ -13634,9 +13544,7 @@ "ref": "pkg:golang/github.com/bufbuild/protoplugin@v0.0.0-20260414125817-25d1d281b46b?type=module", "dependsOn": [ "pkg:golang/github.com/bufbuild/protocompile@v0.14.2-0.20260522222248-64e6ad034132?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/google/go-cmp@v0.7.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/sync@v0.22.0?type=module", "pkg:golang/google.golang.org/protobuf@v1.36.11?type=module", @@ -13646,8 +13554,6 @@ { "ref": "pkg:golang/github.com/butuzov/ireturn@v0.4.1?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/mod@v0.38.0?type=module", "pkg:golang/golang.org/x/sync@v0.22.0?type=module", @@ -13674,8 +13580,6 @@ { "ref": "pkg:golang/github.com/ccojocar/zxcvbn-go@v1.0.4?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" ] @@ -13805,10 +13709,8 @@ { "ref": "pkg:golang/github.com/daixiang0/gci@v0.13.7?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/hexops/gotextdiff@v1.0.3?type=module", "pkg:golang/github.com/inconshreveable/mousetrap@v1.1.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/spf13/cobra@v1.10.2?type=module", "pkg:golang/github.com/spf13/pflag@v1.0.10?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", @@ -13829,9 +13731,6 @@ "pkg:golang/golang.org/x/tools@v0.48.0?type=module" ] }, - { - "ref": "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module" - }, { "ref": "pkg:golang/github.com/davidlazar/go-crypto@v0.0.0-20200604182044-b73af7476f6c?type=module", "dependsOn": [ @@ -13845,8 +13744,6 @@ { "ref": "pkg:golang/github.com/denis-tingaikin/go-header@v0.5.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" ] @@ -13908,13 +13805,11 @@ { "ref": "pkg:golang/github.com/ferranbt/fastssz@v1.0.1-0.20251203093649-0b1f38e43198?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/emicklei/dot@v1.9.1?type=module", "pkg:golang/github.com/golang/snappy@v1.0.0?type=module", "pkg:golang/github.com/klauspost/cpuid/v2@v2.3.0?type=module", "pkg:golang/github.com/minio/sha256-simd@v1.0.1?type=module", "pkg:golang/github.com/mitchellh/mapstructure@v1.5.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/gopkg.in/yaml.v2@v2.4.0?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" @@ -14034,7 +13929,6 @@ "pkg:golang/github.com/curioswitch/go-reassign@v0.3.0?type=module", "pkg:golang/github.com/daixiang0/gci@v0.13.7?type=module", "pkg:golang/github.com/dave/dst@v0.27.3?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/decred/dcrd/dcrec/secp256k1/v4@v4.4.0?type=module", "pkg:golang/github.com/denis-tingaikin/go-header@v0.5.0?type=module", "pkg:golang/github.com/distribution/reference@v0.6.0?type=module", @@ -14159,7 +14053,6 @@ "pkg:golang/github.com/opentracing/opentracing-go@v1.2.0?type=module", "pkg:golang/github.com/pelletier/go-toml/v2@v2.3.1?type=module", "pkg:golang/github.com/pkg/browser@v0.0.0-20240102092130-5ac0b6a4141c?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/polydawn/refmt@v0.89.1-0.20221221234430-40501e09de1f?type=module", "pkg:golang/github.com/prometheus/client_golang@v1.24.1?type=module", "pkg:golang/github.com/prometheus/client_model@v0.6.2?type=module", @@ -14265,7 +14158,6 @@ "pkg:golang/github.com/charmbracelet/x/term@v0.2.2?type=module", "pkg:golang/github.com/clipperhouse/displaywidth@v0.11.0?type=module", "pkg:golang/github.com/clipperhouse/uax29/v2@v2.7.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/davidlazar/go-crypto@v0.0.0-20200604182044-b73af7476f6c?type=module", "pkg:golang/github.com/decred/dcrd/dcrec/secp256k1/v4@v4.4.0?type=module", "pkg:golang/github.com/dunglas/httpsfv@v1.1.0?type=module", @@ -14350,7 +14242,6 @@ "pkg:golang/github.com/pion/transport/v3@v3.0.7?type=module", "pkg:golang/github.com/pion/turn/v4@v4.0.2?type=module", "pkg:golang/github.com/pion/webrtc/v4@v4.1.2?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/polydawn/refmt@v0.89.1-0.20221221234430-40501e09de1f?type=module", "pkg:golang/github.com/prometheus/client_golang@v1.24.1?type=module", "pkg:golang/github.com/prometheus/client_model@v0.6.2?type=module", @@ -14503,8 +14394,6 @@ { "ref": "pkg:golang/github.com/godoc-lint/godoc-lint@v0.11.2?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.yaml.in/yaml/v3@v3.0.4?type=module", "pkg:golang/golang.org/x/mod@v0.38.0?type=module", @@ -14517,7 +14406,6 @@ "ref": "pkg:golang/github.com/gofiber/fiber/v3@v3.4.0?type=module", "dependsOn": [ "pkg:golang/github.com/andybalholm/brotli@v1.2.2?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/fxamacker/cbor/v2@v2.9.2?type=module", "pkg:golang/github.com/gofiber/schema@v1.8.0?type=module", "pkg:golang/github.com/gofiber/utils/v2@v2.1.1?type=module", @@ -14526,7 +14414,6 @@ "pkg:golang/github.com/mattn/go-colorable@v0.1.15?type=module", "pkg:golang/github.com/mattn/go-isatty@v0.0.22?type=module", "pkg:golang/github.com/philhofer/fwd@v1.2.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/github.com/tinylib/msgp@v1.6.4?type=module", "pkg:golang/github.com/valyala/bytebufferpool@v1.0.0?type=module", @@ -14549,10 +14436,8 @@ { "ref": "pkg:golang/github.com/gofiber/utils/v2@v2.1.1?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/fxamacker/cbor/v2@v2.9.2?type=module", "pkg:golang/github.com/google/uuid@v1.6.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/github.com/x448/float16@v0.8.4?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" @@ -14561,8 +14446,6 @@ { "ref": "pkg:golang/github.com/gofrs/flock@v0.13.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/sys@v0.47.0?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" @@ -14666,7 +14549,6 @@ "pkg:golang/github.com/curioswitch/go-reassign@v0.3.0?type=module", "pkg:golang/github.com/daixiang0/gci@v0.13.7?type=module", "pkg:golang/github.com/dave/dst@v0.27.3?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/denis-tingaikin/go-header@v0.5.0?type=module", "pkg:golang/github.com/dlclark/regexp2@v1.12.0?type=module", "pkg:golang/github.com/ettle/strcase@v0.2.0?type=module", @@ -14747,7 +14629,6 @@ "pkg:golang/github.com/nishanths/predeclared@v0.2.2?type=module", "pkg:golang/github.com/nunnatsa/ginkgolinter@v0.23.0?type=module", "pkg:golang/github.com/pelletier/go-toml/v2@v2.3.1?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/prometheus/client_golang@v1.24.1?type=module", "pkg:golang/github.com/prometheus/client_model@v0.6.2?type=module", "pkg:golang/github.com/prometheus/common@v0.70.1?type=module", @@ -14825,10 +14706,8 @@ "dependsOn": [ "pkg:golang/github.com/alecthomas/units@v0.0.0-20240927000941-0f3dac36c52b?type=module", "pkg:golang/github.com/dave/dst@v0.27.3?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/google/go-cmp@v0.7.0?type=module", "pkg:golang/github.com/ldez/structtags@v0.6.1?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/rogpeppe/go-internal@v1.14.1?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/mod@v0.38.0?type=module", @@ -14865,8 +14744,6 @@ { "ref": "pkg:golang/github.com/golangci/swaggoswag@v0.0.0-20250504205917-77f2aca3143e?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/mod@v0.38.0?type=module", "pkg:golang/golang.org/x/sync@v0.22.0?type=module", @@ -15091,7 +14968,6 @@ "pkg:golang/github.com/benbjohnson/clock@v1.3.5?type=module", "pkg:golang/github.com/beorn7/perks@v1.0.1?type=module", "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/davidlazar/go-crypto@v0.0.0-20200604182044-b73af7476f6c?type=module", "pkg:golang/github.com/decred/dcrd/dcrec/secp256k1/v4@v4.4.0?type=module", "pkg:golang/github.com/docker/go-units@v0.5.0?type=module", @@ -15165,7 +15041,6 @@ "pkg:golang/github.com/pion/transport/v3@v3.0.7?type=module", "pkg:golang/github.com/pion/turn/v4@v4.0.2?type=module", "pkg:golang/github.com/pion/webrtc/v4@v4.1.2?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/polydawn/refmt@v0.89.1-0.20221221234430-40501e09de1f?type=module", "pkg:golang/github.com/prometheus/client_golang@v1.24.1?type=module", "pkg:golang/github.com/prometheus/client_model@v0.6.2?type=module", @@ -15306,7 +15181,6 @@ { "ref": "pkg:golang/github.com/json-iterator/go@v1.1.12?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/modern-go/concurrent@v0.0.0-20180306012644-bacd9c7ef1dd?type=module", "pkg:golang/github.com/modern-go/reflect2@v1.0.3-0.20250322232337-35a7c28c31ee?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module" @@ -15411,9 +15285,7 @@ { "ref": "pkg:golang/github.com/lasiar/canonicalheader@v1.1.2?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/go-toolsmith/astcast@v1.1.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/mod@v0.38.0?type=module", "pkg:golang/golang.org/x/sync@v0.22.0?type=module", @@ -15432,9 +15304,7 @@ { "ref": "pkg:golang/github.com/ldez/gomoddirectives@v0.8.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/ldez/grignotin@v0.10.1?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/mod@v0.38.0?type=module", "pkg:golang/golang.org/x/tools@v0.48.0?type=module", @@ -15444,8 +15314,6 @@ { "ref": "pkg:golang/github.com/ldez/grignotin@v0.10.1?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/mod@v0.38.0?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" @@ -15454,9 +15322,7 @@ { "ref": "pkg:golang/github.com/ldez/structtags@v0.6.1?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/fatih/structtag@v1.2.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" ] @@ -15510,7 +15376,6 @@ "pkg:golang/github.com/benbjohnson/clock@v1.3.5?type=module", "pkg:golang/github.com/beorn7/perks@v1.0.1?type=module", "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/davidlazar/go-crypto@v0.0.0-20200604182044-b73af7476f6c?type=module", "pkg:golang/github.com/decred/dcrd/dcrec/secp256k1/v4@v4.4.0?type=module", "pkg:golang/github.com/dunglas/httpsfv@v1.1.0?type=module", @@ -15567,7 +15432,6 @@ "pkg:golang/github.com/pion/transport/v4@v4.0.1?type=module", "pkg:golang/github.com/pion/turn/v4@v4.0.2?type=module", "pkg:golang/github.com/pion/webrtc/v4@v4.1.2?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/prometheus/client_golang@v1.24.1?type=module", "pkg:golang/github.com/prometheus/client_model@v0.6.2?type=module", "pkg:golang/github.com/prometheus/common@v0.70.1?type=module", @@ -15602,8 +15466,6 @@ { "ref": "pkg:golang/github.com/libp2p/go-libp2p-asn-util@v0.4.1?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/exp@v0.0.0-20260508232706-74f9aab9d74a?type=module", "pkg:golang/gopkg.in/yaml.v2@v2.4.0?type=module" @@ -15615,7 +15477,6 @@ "pkg:golang/github.com/benbjohnson/clock@v1.3.5?type=module", "pkg:golang/github.com/beorn7/perks@v1.0.1?type=module", "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/davidlazar/go-crypto@v0.0.0-20200604182044-b73af7476f6c?type=module", "pkg:golang/github.com/decred/dcrd/dcrec/secp256k1/v4@v4.4.0?type=module", "pkg:golang/github.com/docker/go-units@v0.5.0?type=module", @@ -15685,7 +15546,6 @@ "pkg:golang/github.com/pion/transport/v3@v3.0.7?type=module", "pkg:golang/github.com/pion/turn/v4@v4.0.2?type=module", "pkg:golang/github.com/pion/webrtc/v4@v4.1.2?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/polydawn/refmt@v0.89.1-0.20221221234430-40501e09de1f?type=module", "pkg:golang/github.com/prometheus/client_golang@v1.24.1?type=module", "pkg:golang/github.com/prometheus/client_model@v0.6.2?type=module", @@ -15724,7 +15584,6 @@ { "ref": "pkg:golang/github.com/libp2p/go-libp2p-kbucket@v0.7.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/decred/dcrd/dcrec/secp256k1/v4@v4.4.0?type=module", "pkg:golang/github.com/ipfs/boxo@v0.30.0?type=module", "pkg:golang/github.com/ipfs/go-cid@v0.5.0?type=module", @@ -15745,7 +15604,6 @@ "pkg:golang/github.com/multiformats/go-multihash@v0.2.3?type=module", "pkg:golang/github.com/multiformats/go-multistream@v0.6.1?type=module", "pkg:golang/github.com/multiformats/go-varint@v0.1.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/rogpeppe/go-internal@v1.14.1?type=module", "pkg:golang/github.com/spaolacci/murmur3@v1.1.0?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", @@ -15762,7 +15620,6 @@ { "ref": "pkg:golang/github.com/libp2p/go-libp2p-mplex@v0.11.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/decred/dcrd/dcrec/secp256k1/v4@v4.4.0?type=module", "pkg:golang/github.com/ipfs/go-cid@v0.5.0?type=module", "pkg:golang/github.com/ipfs/go-log/v2@v2.6.0?type=module", @@ -15781,7 +15638,6 @@ "pkg:golang/github.com/multiformats/go-multihash@v0.2.3?type=module", "pkg:golang/github.com/multiformats/go-multistream@v0.6.1?type=module", "pkg:golang/github.com/multiformats/go-varint@v0.1.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/rogpeppe/go-internal@v1.14.1?type=module", "pkg:golang/github.com/spaolacci/murmur3@v1.1.0?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", @@ -15801,7 +15657,6 @@ "pkg:golang/github.com/benbjohnson/clock@v1.3.5?type=module", "pkg:golang/github.com/beorn7/perks@v1.0.1?type=module", "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/davidlazar/go-crypto@v0.0.0-20200604182044-b73af7476f6c?type=module", "pkg:golang/github.com/decred/dcrd/dcrec/secp256k1/v4@v4.4.0?type=module", "pkg:golang/github.com/dunglas/httpsfv@v1.1.0?type=module", @@ -15858,7 +15713,6 @@ "pkg:golang/github.com/pion/transport/v3@v3.0.7?type=module", "pkg:golang/github.com/pion/turn/v4@v4.0.2?type=module", "pkg:golang/github.com/pion/webrtc/v4@v4.1.2?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/prometheus/client_golang@v1.24.1?type=module", "pkg:golang/github.com/prometheus/client_model@v0.6.2?type=module", "pkg:golang/github.com/prometheus/common@v0.70.1?type=module", @@ -15916,7 +15770,6 @@ { "ref": "pkg:golang/github.com/libp2p/go-libp2p-routing-helpers@v0.7.5?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/decred/dcrd/dcrec/secp256k1/v4@v4.4.0?type=module", "pkg:golang/github.com/go-logr/logr@v1.4.3?type=module", "pkg:golang/github.com/go-logr/stdr@v1.2.2?type=module", @@ -15936,7 +15789,6 @@ "pkg:golang/github.com/multiformats/go-multicodec@v0.9.2?type=module", "pkg:golang/github.com/multiformats/go-multihash@v0.2.3?type=module", "pkg:golang/github.com/multiformats/go-varint@v0.1.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/rogpeppe/go-internal@v1.14.1?type=module", "pkg:golang/github.com/spaolacci/murmur3@v1.1.0?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", @@ -15978,8 +15830,6 @@ { "ref": "pkg:golang/github.com/libp2p/go-netroute@v0.4.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/net@v0.57.0?type=module", "pkg:golang/golang.org/x/sys@v0.47.0?type=module", @@ -15989,8 +15839,6 @@ { "ref": "pkg:golang/github.com/libp2p/go-reuseport@v0.4.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/sys@v0.47.0?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" @@ -15999,9 +15847,7 @@ { "ref": "pkg:golang/github.com/libp2p/go-yamux/v5@v5.0.1?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/libp2p/go-buffer-pool@v0.1.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" ] @@ -16084,13 +15930,11 @@ "dependsOn": [ "pkg:golang/codeberg.org/chavacava/garif@v0.2.0?type=module", "pkg:golang/github.com/BurntSushi/toml@v1.6.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/fatih/color@v1.19.0?type=module", "pkg:golang/github.com/fatih/structtag@v1.2.0?type=module", "pkg:golang/github.com/hashicorp/go-version@v1.9.0?type=module", "pkg:golang/github.com/mattn/go-colorable@v0.1.15?type=module", "pkg:golang/github.com/mattn/go-isatty@v0.0.22?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/spf13/afero@v1.15.0?type=module", "pkg:golang/golang.org/x/mod@v0.38.0?type=module", "pkg:golang/golang.org/x/sync@v0.22.0?type=module", @@ -16218,7 +16062,6 @@ { "ref": "pkg:golang/github.com/multiformats/go-multiaddr@v0.16.1?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/ipfs/go-cid@v0.5.0?type=module", "pkg:golang/github.com/klauspost/cpuid/v2@v2.3.0?type=module", "pkg:golang/github.com/minio/sha256-simd@v1.0.1?type=module", @@ -16228,7 +16071,6 @@ "pkg:golang/github.com/multiformats/go-multibase@v0.2.0?type=module", "pkg:golang/github.com/multiformats/go-multihash@v0.2.3?type=module", "pkg:golang/github.com/multiformats/go-varint@v0.1.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/spaolacci/murmur3@v1.1.0?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/crypto@v0.55.0?type=module", @@ -16345,13 +16187,11 @@ "ref": "pkg:golang/github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics@v0.148.0?type=module", "dependsOn": [ "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/hashicorp/go-version@v1.9.0?type=module", "pkg:golang/github.com/json-iterator/go@v1.1.12?type=module", "pkg:golang/github.com/modern-go/concurrent@v0.0.0-20180306012644-bacd9c7ef1dd?type=module", "pkg:golang/github.com/modern-go/reflect2@v1.0.3-0.20250322232337-35a7c28c31ee?type=module", "pkg:golang/github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil@v0.148.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.opentelemetry.io/collector/featuregate@v1.54.0?type=module", "pkg:golang/go.opentelemetry.io/collector/pdata@v1.54.0?type=module", @@ -16363,12 +16203,10 @@ "ref": "pkg:golang/github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil@v0.148.0?type=module", "dependsOn": [ "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/hashicorp/go-version@v1.9.0?type=module", "pkg:golang/github.com/json-iterator/go@v1.1.12?type=module", "pkg:golang/github.com/modern-go/concurrent@v0.0.0-20180306012644-bacd9c7ef1dd?type=module", "pkg:golang/github.com/modern-go/reflect2@v1.0.3-0.20250322232337-35a7c28c31ee?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.opentelemetry.io/collector/featuregate@v1.54.0?type=module", "pkg:golang/go.opentelemetry.io/collector/pdata@v1.54.0?type=module", @@ -16381,7 +16219,6 @@ "ref": "pkg:golang/github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor@v0.148.0?type=module", "dependsOn": [ "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/go-logr/logr@v1.4.3?type=module", "pkg:golang/github.com/go-logr/stdr@v1.2.2?type=module", "pkg:golang/github.com/go-viper/mapstructure/v2@v2.5.0?type=module", @@ -16399,7 +16236,6 @@ "pkg:golang/github.com/modern-go/reflect2@v1.0.3-0.20250322232337-35a7c28c31ee?type=module", "pkg:golang/github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics@v0.148.0?type=module", "pkg:golang/github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil@v0.148.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/puzpuzpuz/xsync/v4@v4.4.0?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.opentelemetry.io/auto/sdk@v1.2.1?type=module", @@ -16454,12 +16290,10 @@ { "ref": "pkg:golang/github.com/pion/datachannel@v1.5.10?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/pion/logging@v0.2.4?type=module", "pkg:golang/github.com/pion/randutil@v0.1.0?type=module", "pkg:golang/github.com/pion/sctp@v1.8.39?type=module", "pkg:golang/github.com/pion/transport/v3@v3.0.7?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" ] @@ -16467,10 +16301,8 @@ { "ref": "pkg:golang/github.com/pion/dtls/v3@v3.1.4?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/pion/logging@v0.2.4?type=module", "pkg:golang/github.com/pion/transport/v4@v4.0.1?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/crypto@v0.55.0?type=module", "pkg:golang/golang.org/x/net@v0.57.0?type=module", @@ -16481,7 +16313,6 @@ { "ref": "pkg:golang/github.com/pion/ice/v4@v4.0.10?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/google/uuid@v1.6.0?type=module", "pkg:golang/github.com/pion/dtls/v3@v3.1.4?type=module", "pkg:golang/github.com/pion/logging@v0.2.4?type=module", @@ -16490,7 +16321,6 @@ "pkg:golang/github.com/pion/stun/v3@v3.1.1?type=module", "pkg:golang/github.com/pion/transport/v3@v3.0.7?type=module", "pkg:golang/github.com/pion/turn/v4@v4.0.2?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/github.com/wlynxg/anet@v0.0.5?type=module", "pkg:golang/golang.org/x/crypto@v0.55.0?type=module", @@ -16502,13 +16332,11 @@ { "ref": "pkg:golang/github.com/pion/interceptor@v0.1.40?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/pion/logging@v0.2.4?type=module", "pkg:golang/github.com/pion/randutil@v0.1.0?type=module", "pkg:golang/github.com/pion/rtcp@v1.2.16?type=module", "pkg:golang/github.com/pion/rtp@v1.8.19?type=module", "pkg:golang/github.com/pion/transport/v3@v3.0.7?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" ] @@ -16516,8 +16344,6 @@ { "ref": "pkg:golang/github.com/pion/logging@v0.2.4?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" ] @@ -16537,8 +16363,6 @@ { "ref": "pkg:golang/github.com/pion/rtcp@v1.2.16?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" ] @@ -16546,9 +16370,7 @@ { "ref": "pkg:golang/github.com/pion/rtp@v1.8.19?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/pion/randutil@v0.1.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" ] @@ -16556,11 +16378,9 @@ { "ref": "pkg:golang/github.com/pion/sctp@v1.8.39?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/pion/logging@v0.2.4?type=module", "pkg:golang/github.com/pion/randutil@v0.1.0?type=module", "pkg:golang/github.com/pion/transport/v3@v3.0.7?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" ] @@ -16568,9 +16388,7 @@ { "ref": "pkg:golang/github.com/pion/sdp/v3@v3.0.18?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/pion/randutil@v0.1.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" ] @@ -16578,13 +16396,11 @@ { "ref": "pkg:golang/github.com/pion/srtp/v3@v3.0.6?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/pion/logging@v0.2.4?type=module", "pkg:golang/github.com/pion/randutil@v0.1.0?type=module", "pkg:golang/github.com/pion/rtcp@v1.2.16?type=module", "pkg:golang/github.com/pion/rtp@v1.8.19?type=module", "pkg:golang/github.com/pion/transport/v3@v3.0.7?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/sys@v0.47.0?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" @@ -16593,11 +16409,9 @@ { "ref": "pkg:golang/github.com/pion/stun/v3@v3.1.1?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/pion/dtls/v3@v3.1.4?type=module", "pkg:golang/github.com/pion/logging@v0.2.4?type=module", "pkg:golang/github.com/pion/transport/v4@v4.0.1?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/github.com/wlynxg/anet@v0.0.5?type=module", "pkg:golang/golang.org/x/crypto@v0.55.0?type=module", @@ -16608,9 +16422,7 @@ { "ref": "pkg:golang/github.com/pion/transport/v3@v3.0.7?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/pion/logging@v0.2.4?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/github.com/wlynxg/anet@v0.0.5?type=module", "pkg:golang/golang.org/x/net@v0.57.0?type=module", @@ -16621,9 +16433,7 @@ { "ref": "pkg:golang/github.com/pion/transport/v4@v4.0.1?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/pion/logging@v0.2.4?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/github.com/wlynxg/anet@v0.0.5?type=module", "pkg:golang/golang.org/x/net@v0.57.0?type=module", @@ -16635,13 +16445,11 @@ { "ref": "pkg:golang/github.com/pion/turn/v4@v4.0.2?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/pion/dtls/v3@v3.1.4?type=module", "pkg:golang/github.com/pion/logging@v0.2.4?type=module", "pkg:golang/github.com/pion/randutil@v0.1.0?type=module", "pkg:golang/github.com/pion/stun/v3@v3.1.1?type=module", "pkg:golang/github.com/pion/transport/v3@v3.0.7?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/github.com/wlynxg/anet@v0.0.5?type=module", "pkg:golang/golang.org/x/crypto@v0.55.0?type=module", @@ -16652,7 +16460,6 @@ { "ref": "pkg:golang/github.com/pion/webrtc/v4@v4.1.2?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/google/uuid@v1.6.0?type=module", "pkg:golang/github.com/pion/datachannel@v1.5.10?type=module", "pkg:golang/github.com/pion/dtls/v3@v3.1.4?type=module", @@ -16669,7 +16476,6 @@ "pkg:golang/github.com/pion/stun/v3@v3.1.1?type=module", "pkg:golang/github.com/pion/transport/v3@v3.0.7?type=module", "pkg:golang/github.com/pion/turn/v4@v4.0.2?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/github.com/wlynxg/anet@v0.0.5?type=module", "pkg:golang/golang.org/x/crypto@v0.55.0?type=module", @@ -16684,9 +16490,6 @@ "pkg:golang/golang.org/x/sys@v0.47.0?type=module" ] }, - { - "ref": "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module" - }, { "ref": "pkg:golang/github.com/polydawn/refmt@v0.89.1-0.20221221234430-40501e09de1f?type=module" }, @@ -16741,14 +16544,12 @@ "pkg:golang/github.com/alecthomas/units@v0.0.0-20240927000941-0f3dac36c52b?type=module", "pkg:golang/github.com/beorn7/perks@v1.0.1?type=module", "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/golang-jwt/jwt/v5@v5.3.1?type=module", "pkg:golang/github.com/google/go-cmp@v0.7.0?type=module", "pkg:golang/github.com/google/uuid@v1.6.0?type=module", "pkg:golang/github.com/jpillora/backoff@v1.0.0?type=module", "pkg:golang/github.com/munnerz/goautoneg@v0.0.0-20191010083416-a7dc8b61c822?type=module", "pkg:golang/github.com/mwitkow/go-conntrack@v0.0.0-20190716064945-2f068394615f?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/prometheus/client_golang@v1.24.1?type=module", "pkg:golang/github.com/prometheus/client_model@v0.6.2?type=module", "pkg:golang/github.com/prometheus/procfs@v0.21.1?type=module", @@ -16804,7 +16605,6 @@ "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", "pkg:golang/github.com/containerd/errdefs@v1.0.0?type=module", "pkg:golang/github.com/containerd/errdefs/pkg@v0.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/dennwc/varint@v1.0.0?type=module", "pkg:golang/github.com/distribution/reference@v0.6.0?type=module", "pkg:golang/github.com/docker/go-connections@v0.7.0?type=module", @@ -16856,7 +16656,6 @@ "pkg:golang/github.com/opencontainers/image-spec@v1.1.1?type=module", "pkg:golang/github.com/pbnjay/memory@v0.0.0-20210728143218-7b4eea64cf58?type=module", "pkg:golang/github.com/pkg/browser@v0.0.0-20240102092130-5ac0b6a4141c?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/prometheus/client_golang@v1.24.1?type=module", "pkg:golang/github.com/prometheus/client_golang/exp@v0.0.0-20260325093428-d8591d0db856?type=module", "pkg:golang/github.com/prometheus/client_model@v0.6.2?type=module", @@ -16941,13 +16740,11 @@ "pkg:golang/github.com/aws/smithy-go@v1.24.2?type=module", "pkg:golang/github.com/beorn7/perks@v1.0.1?type=module", "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/golang-jwt/jwt/v5@v5.3.1?type=module", "pkg:golang/github.com/google/uuid@v1.6.0?type=module", "pkg:golang/github.com/jpillora/backoff@v1.0.0?type=module", "pkg:golang/github.com/munnerz/goautoneg@v0.0.0-20191010083416-a7dc8b61c822?type=module", "pkg:golang/github.com/mwitkow/go-conntrack@v0.0.0-20190716064945-2f068394615f?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/prometheus/client_golang@v1.24.1?type=module", "pkg:golang/github.com/prometheus/client_model@v0.6.2?type=module", "pkg:golang/github.com/prometheus/common@v0.70.1?type=module", @@ -17001,8 +16798,6 @@ { "ref": "pkg:golang/github.com/quic-go/qpack@v0.6.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/net@v0.57.0?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" @@ -17011,8 +16806,6 @@ { "ref": "pkg:golang/github.com/quic-go/quic-go@v0.60.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/quic-go/qpack@v0.6.0?type=module", "pkg:golang/github.com/rogpeppe/go-internal@v1.14.1?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", @@ -17030,9 +16823,7 @@ { "ref": "pkg:golang/github.com/quic-go/webtransport-go@v0.11.1?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/dunglas/httpsfv@v1.1.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/quic-go/qpack@v0.6.0?type=module", "pkg:golang/github.com/quic-go/quic-go@v0.60.0?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", @@ -17073,9 +16864,7 @@ "ref": "pkg:golang/github.com/ryancurrah/gomodguard@v1.4.1?type=module", "dependsOn": [ "pkg:golang/github.com/Masterminds/semver/v3@v3.5.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/mitchellh/go-homedir@v1.1.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/mod@v0.38.0?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" @@ -17085,8 +16874,6 @@ "ref": "pkg:golang/github.com/ryancurrah/gomodguard/v2@v2.1.3?type=module", "dependsOn": [ "pkg:golang/github.com/Masterminds/semver/v3@v3.5.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/mod@v0.38.0?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" @@ -17149,7 +16936,6 @@ "pkg:golang/github.com/Masterminds/semver/v3@v3.5.0?type=module", "pkg:golang/github.com/ccojocar/zxcvbn-go@v1.0.4?type=module", "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/felixge/httpsnoop@v1.0.4?type=module", "pkg:golang/github.com/go-logr/logr@v1.4.3?type=module", "pkg:golang/github.com/go-logr/stdr@v1.2.2?type=module", @@ -17159,7 +16945,6 @@ "pkg:golang/github.com/googleapis/enterprise-certificate-proxy@v0.3.14?type=module", "pkg:golang/github.com/googleapis/gax-go/v2@v2.18.0?type=module", "pkg:golang/github.com/gorilla/websocket@v1.5.4-0.20250319132907-e064f32e3674?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/santhosh-tekuri/jsonschema/v6@v6.0.2?type=module", "pkg:golang/github.com/stretchr/objx@v0.5.2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", @@ -17199,8 +16984,6 @@ { "ref": "pkg:golang/github.com/sirupsen/logrus@v1.9.4?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/sys@v0.47.0?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" @@ -17263,12 +17046,10 @@ { "ref": "pkg:golang/github.com/spf13/viper@v1.21.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/fsnotify/fsnotify@v1.9.0?type=module", "pkg:golang/github.com/go-viper/mapstructure/v2@v2.5.0?type=module", "pkg:golang/github.com/google/go-cmp@v0.7.0?type=module", "pkg:golang/github.com/pelletier/go-toml/v2@v2.3.1?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/sagikazarmark/locafero@v0.12.0?type=module", "pkg:golang/github.com/spf13/afero@v1.15.0?type=module", "pkg:golang/github.com/spf13/cast@v1.10.0?type=module", @@ -17298,8 +17079,6 @@ { "ref": "pkg:golang/github.com/stretchr/objx@v0.5.2?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" ] @@ -17307,8 +17086,6 @@ { "ref": "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/objx@v0.5.2?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" ] @@ -17316,8 +17093,6 @@ { "ref": "pkg:golang/github.com/subosito/gotenv@v1.6.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/text@v0.41.0?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" @@ -17348,8 +17123,6 @@ { "ref": "pkg:golang/github.com/timonwong/loggercheck@v0.11.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/mod@v0.38.0?type=module", "pkg:golang/golang.org/x/sync@v0.22.0?type=module", @@ -17368,12 +17141,10 @@ { "ref": "pkg:golang/github.com/tomarrell/wrapcheck/v2@v2.12.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/fsnotify/fsnotify@v1.9.0?type=module", "pkg:golang/github.com/gobwas/glob@v0.2.3?type=module", "pkg:golang/github.com/mitchellh/mapstructure@v1.5.0?type=module", "pkg:golang/github.com/pelletier/go-toml/v2@v2.3.1?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/spf13/afero@v1.15.0?type=module", "pkg:golang/github.com/spf13/cast@v1.10.0?type=module", "pkg:golang/github.com/spf13/pflag@v1.0.10?type=module", @@ -17392,7 +17163,6 @@ { "ref": "pkg:golang/github.com/tommy-muehle/go-mnd/v2@v2.5.1?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/tools@v0.48.0?type=module" ] @@ -17482,8 +17252,6 @@ "pkg:golang/github.com/alecthomas/units@v0.0.0-20240927000941-0f3dac36c52b?type=module", "pkg:golang/github.com/beorn7/perks@v1.0.1?type=module", "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/prometheus/client_golang@v1.24.1?type=module", "pkg:golang/github.com/prometheus/client_model@v0.6.2?type=module", "pkg:golang/github.com/prometheus/common@v0.70.1?type=module", @@ -17582,8 +17350,6 @@ { "ref": "pkg:golang/go.opentelemetry.io/auto/sdk@v1.2.1?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/rogpeppe/go-internal@v1.14.1?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.opentelemetry.io/otel@v1.43.0?type=module", @@ -17595,12 +17361,10 @@ "ref": "pkg:golang/go.opentelemetry.io/collector/component@v1.54.0?type=module", "dependsOn": [ "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/hashicorp/go-version@v1.9.0?type=module", "pkg:golang/github.com/json-iterator/go@v1.1.12?type=module", "pkg:golang/github.com/modern-go/concurrent@v0.0.0-20180306012644-bacd9c7ef1dd?type=module", "pkg:golang/github.com/modern-go/reflect2@v1.0.3-0.20250322232337-35a7c28c31ee?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/rogpeppe/go-internal@v1.14.1?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.opentelemetry.io/collector/featuregate@v1.54.0?type=module", @@ -17617,7 +17381,6 @@ { "ref": "pkg:golang/go.opentelemetry.io/collector/confmap@v1.54.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/go-viper/mapstructure/v2@v2.5.0?type=module", "pkg:golang/github.com/gobwas/glob@v0.2.3?type=module", "pkg:golang/github.com/hashicorp/go-version@v1.9.0?type=module", @@ -17626,7 +17389,6 @@ "pkg:golang/github.com/knadh/koanf/v2@v2.3.3?type=module", "pkg:golang/github.com/mitchellh/copystructure@v1.2.0?type=module", "pkg:golang/github.com/mitchellh/reflectwalk@v1.0.2?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.opentelemetry.io/collector/featuregate@v1.54.0?type=module", "pkg:golang/go.uber.org/goleak@v1.3.0?type=module", @@ -17639,7 +17401,6 @@ { "ref": "pkg:golang/go.opentelemetry.io/collector/confmap/xconfmap@v0.148.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/go-viper/mapstructure/v2@v2.5.0?type=module", "pkg:golang/github.com/gobwas/glob@v0.2.3?type=module", "pkg:golang/github.com/hashicorp/go-version@v1.9.0?type=module", @@ -17648,7 +17409,6 @@ "pkg:golang/github.com/knadh/koanf/v2@v2.3.3?type=module", "pkg:golang/github.com/mitchellh/copystructure@v1.2.0?type=module", "pkg:golang/github.com/mitchellh/reflectwalk@v1.0.2?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.opentelemetry.io/collector/confmap@v1.54.0?type=module", "pkg:golang/go.opentelemetry.io/collector/featuregate@v1.54.0?type=module", @@ -17661,12 +17421,10 @@ { "ref": "pkg:golang/go.opentelemetry.io/collector/consumer@v1.54.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/hashicorp/go-version@v1.9.0?type=module", "pkg:golang/github.com/json-iterator/go@v1.1.12?type=module", "pkg:golang/github.com/modern-go/concurrent@v0.0.0-20180306012644-bacd9c7ef1dd?type=module", "pkg:golang/github.com/modern-go/reflect2@v1.0.3-0.20250322232337-35a7c28c31ee?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.opentelemetry.io/collector/featuregate@v1.54.0?type=module", "pkg:golang/go.opentelemetry.io/collector/pdata@v1.54.0?type=module", @@ -17678,9 +17436,7 @@ { "ref": "pkg:golang/go.opentelemetry.io/collector/featuregate@v1.54.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/hashicorp/go-version@v1.9.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/rogpeppe/go-internal@v1.14.1?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.uber.org/goleak@v1.3.0?type=module", @@ -17692,12 +17448,10 @@ "ref": "pkg:golang/go.opentelemetry.io/collector/internal/componentalias@v0.148.0?type=module", "dependsOn": [ "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/hashicorp/go-version@v1.9.0?type=module", "pkg:golang/github.com/json-iterator/go@v1.1.12?type=module", "pkg:golang/github.com/modern-go/concurrent@v0.0.0-20180306012644-bacd9c7ef1dd?type=module", "pkg:golang/github.com/modern-go/reflect2@v1.0.3-0.20250322232337-35a7c28c31ee?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.opentelemetry.io/collector/component@v1.54.0?type=module", "pkg:golang/go.opentelemetry.io/collector/featuregate@v1.54.0?type=module", @@ -17713,12 +17467,10 @@ { "ref": "pkg:golang/go.opentelemetry.io/collector/pdata@v1.54.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/hashicorp/go-version@v1.9.0?type=module", "pkg:golang/github.com/json-iterator/go@v1.1.12?type=module", "pkg:golang/github.com/modern-go/concurrent@v0.0.0-20180306012644-bacd9c7ef1dd?type=module", "pkg:golang/github.com/modern-go/reflect2@v1.0.3-0.20250322232337-35a7c28c31ee?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.opentelemetry.io/collector/featuregate@v1.54.0?type=module", "pkg:golang/go.uber.org/goleak@v1.3.0?type=module", @@ -17735,8 +17487,6 @@ { "ref": "pkg:golang/go.opentelemetry.io/collector/pipeline@v1.54.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" ] @@ -17745,12 +17495,10 @@ "ref": "pkg:golang/go.opentelemetry.io/collector/processor@v1.54.0?type=module", "dependsOn": [ "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/hashicorp/go-version@v1.9.0?type=module", "pkg:golang/github.com/json-iterator/go@v1.1.12?type=module", "pkg:golang/github.com/modern-go/concurrent@v0.0.0-20180306012644-bacd9c7ef1dd?type=module", "pkg:golang/github.com/modern-go/reflect2@v1.0.3-0.20250322232337-35a7c28c31ee?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.opentelemetry.io/collector/component@v1.54.0?type=module", "pkg:golang/go.opentelemetry.io/collector/consumer@v1.54.0?type=module", @@ -17771,13 +17519,11 @@ "ref": "pkg:golang/go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace@v0.67.0?type=module", "dependsOn": [ "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/felixge/httpsnoop@v1.0.4?type=module", "pkg:golang/github.com/go-logr/logr@v1.4.3?type=module", "pkg:golang/github.com/go-logr/stdr@v1.2.2?type=module", "pkg:golang/github.com/google/go-cmp@v0.7.0?type=module", "pkg:golang/github.com/google/uuid@v1.6.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.opentelemetry.io/auto/sdk@v1.2.1?type=module", "pkg:golang/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp@v0.68.0?type=module", @@ -17792,12 +17538,10 @@ "ref": "pkg:golang/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp@v0.68.0?type=module", "dependsOn": [ "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/felixge/httpsnoop@v1.0.4?type=module", "pkg:golang/github.com/go-logr/logr@v1.4.3?type=module", "pkg:golang/github.com/go-logr/stdr@v1.2.2?type=module", "pkg:golang/github.com/google/uuid@v1.6.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.opentelemetry.io/auto/sdk@v1.2.1?type=module", "pkg:golang/go.opentelemetry.io/otel@v1.43.0?type=module", @@ -17811,11 +17555,9 @@ "ref": "pkg:golang/go.opentelemetry.io/otel@v1.43.0?type=module", "dependsOn": [ "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/go-logr/logr@v1.4.3?type=module", "pkg:golang/github.com/go-logr/stdr@v1.2.2?type=module", "pkg:golang/github.com/google/go-cmp@v0.7.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.opentelemetry.io/auto/sdk@v1.2.1?type=module", "pkg:golang/go.opentelemetry.io/otel/metric@v1.43.0?type=module", @@ -17827,10 +17569,8 @@ "ref": "pkg:golang/go.opentelemetry.io/otel/metric@v1.43.0?type=module", "dependsOn": [ "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/go-logr/logr@v1.4.3?type=module", "pkg:golang/github.com/go-logr/stdr@v1.2.2?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.opentelemetry.io/auto/sdk@v1.2.1?type=module", "pkg:golang/go.opentelemetry.io/otel@v1.43.0?type=module", @@ -17842,9 +17582,7 @@ "ref": "pkg:golang/go.opentelemetry.io/otel/trace@v1.43.0?type=module", "dependsOn": [ "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/google/go-cmp@v0.7.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.opentelemetry.io/otel@v1.43.0?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" @@ -17853,16 +17591,12 @@ { "ref": "pkg:golang/go.uber.org/atomic@v1.11.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module" ] }, { "ref": "pkg:golang/go.uber.org/dig@v1.19.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" ] @@ -17870,8 +17604,6 @@ { "ref": "pkg:golang/go.uber.org/fx@v1.24.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.uber.org/dig@v1.19.0?type=module", "pkg:golang/go.uber.org/goleak@v1.3.0?type=module", @@ -17884,8 +17616,6 @@ { "ref": "pkg:golang/go.uber.org/goleak@v1.3.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" ] @@ -17893,8 +17623,6 @@ { "ref": "pkg:golang/go.uber.org/mock@v0.5.2?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/mod@v0.38.0?type=module", "pkg:golang/golang.org/x/sync@v0.22.0?type=module", @@ -17905,8 +17633,6 @@ { "ref": "pkg:golang/go.uber.org/multierr@v1.11.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/gopkg.in/yaml.v3@v3.0.1?type=module" ] @@ -17914,8 +17640,6 @@ { "ref": "pkg:golang/go.uber.org/zap@v1.28.0?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/go.uber.org/goleak@v1.3.0?type=module", "pkg:golang/go.uber.org/multierr@v1.11.0?type=module", @@ -18017,7 +17741,6 @@ "ref": "pkg:golang/gonum.org/v1/gonum@v0.17.0?type=module", "dependsOn": [ "pkg:golang/github.com/google/go-cmp@v0.7.0?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/golang.org/x/mod@v0.38.0?type=module", "pkg:golang/golang.org/x/sync@v0.22.0?type=module", "pkg:golang/golang.org/x/text@v0.41.0?type=module", @@ -18139,7 +17862,6 @@ { "ref": "pkg:golang/k8s.io/apimachinery@v0.35.3?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/fxamacker/cbor/v2@v2.9.2?type=module", "pkg:golang/github.com/go-logr/logr@v1.4.3?type=module", "pkg:golang/github.com/google/go-cmp@v0.7.0?type=module", @@ -18147,7 +17869,6 @@ "pkg:golang/github.com/json-iterator/go@v1.1.12?type=module", "pkg:golang/github.com/modern-go/concurrent@v0.0.0-20180306012644-bacd9c7ef1dd?type=module", "pkg:golang/github.com/modern-go/reflect2@v1.0.3-0.20250322232337-35a7c28c31ee?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/rogpeppe/go-internal@v1.14.1?type=module", "pkg:golang/github.com/spf13/pflag@v1.0.10?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", @@ -18173,7 +17894,6 @@ "ref": "pkg:golang/k8s.io/client-go@v0.35.3?type=module", "dependsOn": [ "pkg:golang/github.com/Masterminds/semver/v3@v3.5.0?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/fxamacker/cbor/v2@v2.9.2?type=module", "pkg:golang/github.com/go-logr/logr@v1.4.3?type=module", "pkg:golang/github.com/google/go-cmp@v0.7.0?type=module", @@ -18183,7 +17903,6 @@ "pkg:golang/github.com/modern-go/concurrent@v0.0.0-20180306012644-bacd9c7ef1dd?type=module", "pkg:golang/github.com/modern-go/reflect2@v1.0.3-0.20250322232337-35a7c28c31ee?type=module", "pkg:golang/github.com/munnerz/goautoneg@v0.0.0-20191010083416-a7dc8b61c822?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/spf13/pflag@v1.0.10?type=module", "pkg:golang/github.com/stretchr/objx@v0.5.2?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", @@ -18219,7 +17938,6 @@ { "ref": "pkg:golang/k8s.io/kube-openapi@v0.0.0-20250910181357-589584f1c912?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/go-logr/logr@v1.4.3?type=module", "pkg:golang/github.com/google/go-cmp@v0.7.0?type=module", "pkg:golang/github.com/google/uuid@v1.6.0?type=module", @@ -18227,7 +17945,6 @@ "pkg:golang/github.com/modern-go/concurrent@v0.0.0-20180306012644-bacd9c7ef1dd?type=module", "pkg:golang/github.com/modern-go/reflect2@v1.0.3-0.20250322232337-35a7c28c31ee?type=module", "pkg:golang/github.com/munnerz/goautoneg@v0.0.0-20191010083416-a7dc8b61c822?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/rogpeppe/go-internal@v1.14.1?type=module", "pkg:golang/github.com/spf13/pflag@v1.0.10?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", @@ -18252,7 +17969,6 @@ { "ref": "pkg:golang/k8s.io/utils@v0.0.0-20251002143259-bc988d571ff4?type=module", "dependsOn": [ - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/go-logr/logr@v1.4.3?type=module", "pkg:golang/k8s.io/klog/v2@v2.140.0?type=module" ] @@ -18299,9 +18015,7 @@ "dependsOn": [ "pkg:golang/buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go@v1.36.11-20260415201107-50325440f8f2.1?type=module", "pkg:golang/buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go@v1.36.11-20241007202033-cf42259fcbfc.1?type=module", - "pkg:golang/github.com/davecgh/go-spew@v1.1.2-0.20180830191138-d8f796af33cc?type=module", "pkg:golang/github.com/mattn/go-isatty@v0.0.22?type=module", - "pkg:golang/github.com/pmezard/go-difflib@v1.0.1-0.20181226105442-5d4384ee4fb2?type=module", "pkg:golang/github.com/spf13/pflag@v1.0.10?type=module", "pkg:golang/github.com/stretchr/testify@v1.11.1?type=module", "pkg:golang/golang.org/x/sys@v0.47.0?type=module", diff --git a/pkg/config/config.go b/pkg/config/config.go index 73409d5..b0d2215 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -135,15 +135,7 @@ func LoadConfig(confFile string) (*AppConfig, error) { } cfg.Version = version.GetVersion() cfg.CommitHash = version.GetCommitHash() - cfg.propagationEnabled.Store(cfg.PropagationEnabledRaw) - cfg.skipMessageFromSelf.Store(true) - var aggMs int64 - if cfg.AggregationIntervalMs == 0 { - aggMs = DefaultAggregationIntervalMs - } else { - aggMs = cfg.AggregationIntervalMs - } - cfg.aggregationIntervalMs.Store(aggMs) + cfg.InitDerived() if err := cfg.Validate(); err != nil { return nil, fmt.Errorf("failed to validate config: %w", err) @@ -226,6 +218,23 @@ func (c *AppConfig) GetDCRotator() *commonconfig.Rotator { return c.rotator } +// InitDerived seeds atomics from yaml/env fields. Required for hand-built configs; +// unsafe after dynamic-config rotation, which owns those atomics afterwards. +func (c *AppConfig) InitDerived() { + c.propagationEnabled.Store(c.PropagationEnabledRaw) + c.skipMessageFromSelf.Store(true) + c.aggregationIntervalMs.Store(c.effectiveAggregationIntervalMs()) +} + +// effectiveAggregationIntervalMs resolves the zero-means-default rule shared by +// InitDerived and Validate. +func (c *AppConfig) effectiveAggregationIntervalMs() int64 { + if c.AggregationIntervalMs == 0 { + return DefaultAggregationIntervalMs + } + return c.AggregationIntervalMs +} + // Validate ensures the AppConfig has valid and complete values func (c *AppConfig) Validate() error { if c.IdentityLibP2PDir == "" { @@ -291,13 +300,7 @@ func (c *AppConfig) Validate() error { if c.AggregationIntervalMs < 0 { return fmt.Errorf("aggregation_interval_ms must be non-negative") } - var effectiveAggMs int64 - if c.AggregationIntervalMs == 0 { - effectiveAggMs = DefaultAggregationIntervalMs - } else { - effectiveAggMs = c.AggregationIntervalMs - } - if effectiveAggMs > maxAggregationIntervalMs { + if c.effectiveAggregationIntervalMs() > maxAggregationIntervalMs { return fmt.Errorf("aggregation_interval_ms must be <= %d", maxAggregationIntervalMs) } diff --git a/pkg/service/gossipsub-gateway/accelerate_gate_test.go b/pkg/service/gossipsub-gateway/accelerate_gate_test.go new file mode 100644 index 0000000..b3996dc --- /dev/null +++ b/pkg/service/gossipsub-gateway/accelerate_gate_test.go @@ -0,0 +1,101 @@ +package gossipsub_gateway + +import ( + "context" + "encoding/binary" + "encoding/hex" + "testing" + "time" + + "github.com/golang/snappy" + "github.com/libp2p/go-libp2p" + libp2ppubsub "github.com/libp2p/go-libp2p-pubsub" + "github.com/stretchr/testify/require" + + commonentities "github.com/getoptimum/optimum-common/pkg/entities" + chainstate "github.com/getoptimum/optimum-gateway/pkg/protocol/chain_state" + "github.com/getoptimum/optimum-gateway/pkg/protocol/consensus" + "github.com/getoptimum/optimum-gateway/pkg/service/streamhub" + "github.com/getoptimum/optimum-gateway/pkg/test_utils" + "github.com/getoptimum/optimum-gateway/pkg/utils" +) + +// blockAtSlot rewrites the gossip block's slot; DecodeBeaconBlockHeader must read it back. +func blockAtSlot(t *testing.T, hexBlock string, slot uint64) []byte { + t.Helper() + raw, err := hex.DecodeString(hexBlock) + require.NoError(t, err) + ssz, err := utils.DecodeSnappy(raw, utils.MaxGossipPayloadSize) + require.NoError(t, err) + off := 4 + 96 // SSZ prefix + BLS signature + require.GreaterOrEqual(t, len(ssz), off+8, "fixture is too short to hold a slot") + binary.LittleEndian.PutUint64(ssz[off:off+8], slot) + encoded := snappy.Encode(nil, ssz) + hdr, err := consensus.DecodeBeaconBlockHeader(encoded) + require.NoError(t, err) + require.Equal(t, slot, hdr.Header.Slot, "slot rewrite landed at the wrong offset") + return encoded +} + +// joinCLTopic subscribes to a real gossipsub topic so CL publishes can be read back. +func joinCLTopic(t *testing.T, svc *Service, topic string) *libp2ppubsub.Subscription { + t.Helper() + h, err := libp2p.New(libp2p.NoListenAddrs) + require.NoError(t, err) + t.Cleanup(func() { _ = h.Close() }) + ps, err := libp2ppubsub.NewGossipSub(t.Context(), h) + require.NoError(t, err) + tp, err := ps.Join(topic) + require.NoError(t, err) + sub, err := tp.Subscribe() + require.NoError(t, err) + t.Cleanup(sub.Cancel) + svc.libP2PTopics.Store(topic, tp) + return sub +} + +// Unselected slot is withheld from the CL; both blocks are still streamed (gate is after arrival). +func TestMumP2PBeaconBlockAccelerateGate(t *testing.T) { + cur := chainstate.CurrentSlot(time.Now()) + // Seed before the router exists: bgSync primes at startup and may land after the refresh. + svc, _ := newGateway(t, func(b *test_utils.LocalBootstrapServer) { + b.SetAccelerateResponse(map[string]any{ + "to_slot": cur + 10, + "slots": []int64{int64(cur)}, + "generated_at_ms": 1, + }) + }) + topic := "/eth2/deadbeef/beacon_block/ssz_snappy" + clSub := joinCLTopic(t, svc, topic) + hub := streamhub.New() + svc.streamHub = hub + sub := hub.Subscribe(4) + t.Cleanup(sub.Close) + t.Cleanup(svc.messagesMap.Close) + + svc.srvMsgRouter.RefreshAccelerateSlots(t.Context()) + + fixture := test_utils.HoodiBeaconBlockMessage1 + svc.processMumP2PMessage(svc.log, &commonentities.P2PMessage{ + SourceNodeID: "peer-1", Topic: topic, Message: blockAtSlot(t, fixture, cur+1), + }) + svc.processMumP2PMessage(svc.log, &commonentities.P2PMessage{ + SourceNodeID: "peer-1", Topic: topic, Message: blockAtSlot(t, fixture, cur), + }) + + ctx, cancel := context.WithTimeout(t.Context(), 5*time.Second) + defer cancel() + got, err := clSub.Next(ctx) + require.NoError(t, err, "on-list slot must reach the CL") + delivered, err := consensus.DecodeBeaconBlockHeader(got.Data) + require.NoError(t, err) + require.Equal(t, cur, delivered.Header.Slot, "examined but unselected slot must be withheld from the CL") + + // Covers gossipsub delivering the two publishes in either order. + idle, cancelIdle := context.WithTimeout(t.Context(), 250*time.Millisecond) + defer cancelIdle() + _, err = clSub.Next(idle) + require.ErrorIs(t, err, context.DeadlineExceeded, "only the on-list slot may reach the CL") + + require.Len(t, sub.Events(), 2, "both blocks are streamed regardless of the verdict") +} diff --git a/pkg/service/gossipsub-gateway/messages_proxy.go b/pkg/service/gossipsub-gateway/messages_proxy.go index d31fbf3..1575384 100644 --- a/pkg/service/gossipsub-gateway/messages_proxy.go +++ b/pkg/service/gossipsub-gateway/messages_proxy.go @@ -37,7 +37,6 @@ func (s *Service) handleMessagesFromCL() { } func (s *Service) processCLBeaconBlock(l logger.AppLogger, msg *entities.CLMessage) { - // beacon_block always try to deliver as fast as possible slot, forward := s.processBeaconBlockArrival(l, msg.Topic, msg.Message, time.Now().UnixMilli(), entities.SourceLibP2P, "", msg.ReceivedFrom) if !forward { return @@ -46,6 +45,9 @@ func (s *Service) processCLBeaconBlock(l logger.AppLogger, msg *entities.CLMessa if s.isDuplicateMessage(msg.Message) { return } + if !s.srvMsgRouter.ShouldAccelerateBlock(slot) { + return + } if s.nodeMumP2P == nil { return } @@ -106,8 +108,11 @@ func (s *Service) processMumP2PMessage(l logger.AppLogger, msg *commonentities.P meta := topics.TopicMetaFor(msg.Topic) // block measure goes before rejecting self messages: otherwise we send a message, // nobody sends it back (we already have it) and we lose the propagation latency sample. + var slot uint64 if meta.IsBeaconBlock() { - if _, forward := s.processBeaconBlockArrival(l, msg.Topic, msg.Message, time.Now().UnixMilli(), entities.SourceMumP2P, msg.SourceNodeID, msg.UpstreamPeerID); !forward { + var forward bool + slot, forward = s.processBeaconBlockArrival(l, msg.Topic, msg.Message, time.Now().UnixMilli(), entities.SourceMumP2P, msg.SourceNodeID, msg.UpstreamPeerID) + if !forward { return } } @@ -121,13 +126,13 @@ func (s *Service) processMumP2PMessage(l logger.AppLogger, msg *commonentities.P switch { case meta.IsBeaconBlock(): - s.processMumP2PBeaconBlock(l, msg) + s.processMumP2PBeaconBlock(l, msg, slot) case msg.Topic == mumP2PAggregatedMessagesTopic: s.handleAggregatedMessages(l, msg) } } -func (s *Service) processMumP2PBeaconBlock(l logger.AppLogger, msg *commonentities.P2PMessage) { +func (s *Service) processMumP2PBeaconBlock(l logger.AppLogger, msg *commonentities.P2PMessage, slot uint64) { propagationEnabled := s.cfg.PropagationEnabled() telemetry.SetPropagationState(propagationEnabled) if !propagationEnabled { @@ -137,6 +142,9 @@ func (s *Service) processMumP2PBeaconBlock(l logger.AppLogger, msg *commonentiti if !s.srvMsgRouter.ShouldForwardMessageToCLP2P(topics.TopicBeaconBlock, msg.Message) { return } + if !s.srvMsgRouter.ShouldAccelerateBlock(slot) { + return + } if err := s.publishToCLTopic(msg.Message, msg.Topic); err != nil { telemetry.IncParseSSZError(msg.Topic, entities.SourceMumP2P) telemetry.IncreaseBadMessagesToCL() diff --git a/pkg/service/gossipsub-gateway/setup_test.go b/pkg/service/gossipsub-gateway/setup_test.go index c3741a2..e316d38 100644 --- a/pkg/service/gossipsub-gateway/setup_test.go +++ b/pkg/service/gossipsub-gateway/setup_test.go @@ -10,7 +10,8 @@ import ( "github.com/getoptimum/optimum-gateway/pkg/test_utils" ) -func newGateway(t *testing.T) (*Service, *test_utils.LocalBootstrapServer) { +// prepare seeds the stub before any service polls it. +func newGateway(t *testing.T, prepare ...func(*test_utils.LocalBootstrapServer)) (*Service, *test_utils.LocalBootstrapServer) { t.Helper() cnt := test_utils.GetClean(t) @@ -21,6 +22,9 @@ func newGateway(t *testing.T) (*Service, *test_utils.LocalBootstrapServer) { "fork_digest": "deadbeef", "future_fork": "DDEEFF00", }) + for _, p := range prepare { + p(bootstrap) + } cfg := rig.AppCfg(t) cfg.RemoteBootstrapURL = bootstrap.URL() srvAuth, err := auth_token.New(t.Context(), cnt.Log, cfg) diff --git a/pkg/service/message_router/accelerate.go b/pkg/service/message_router/accelerate.go new file mode 100644 index 0000000..9028aa6 --- /dev/null +++ b/pkg/service/message_router/accelerate.go @@ -0,0 +1,86 @@ +package message_router + +import ( + "context" + "net/http" + "time" + + "github.com/getoptimum/optimum-common/pkg/logger" + commonnet "github.com/getoptimum/optimum-common/pkg/net" + "github.com/getoptimum/optimum-gateway/pkg/service/telemetry" + "github.com/getoptimum/optimum-gateway/pkg/utils" +) + +type accelerateWindow struct { + toSlot uint64 + slots map[uint64]struct{} +} + +type accelerateSlotsResponse struct { + ToSlot int64 `json:"to_slot"` + Slots []int64 `json:"slots"` + GeneratedAtMs int64 `json:"generated_at_ms"` +} + +// Verdicts double as the `result` label on accelerate_decision_total. +const ( + accelerateOnList = "on_list" + accelerateNotOnList = "not_on_list" + accelerateFailOpen = "fail_open" +) + +// ShouldAccelerateBlock is ADR-0012: accelerate unless the slot was examined and +// not selected. Header slot, not the clock. No list / past to_slot fail-opens. +func (s *Service) ShouldAccelerateBlock(slot uint64) bool { + decision := decideAccelerate(s.accelerate.Load(), slot) + telemetry.IncAccelerateDecision(decision) + return decision != accelerateNotOnList +} + +func decideAccelerate(w *accelerateWindow, slot uint64) string { + if w == nil || w.toSlot == 0 || slot > w.toSlot { + return accelerateFailOpen + } + if _, ok := w.slots[slot]; ok { + return accelerateOnList + } + return accelerateNotOnList +} + +// RefreshAccelerateSlots runs one poll and swaps the whole window. A failed poll keeps the previous one. +func (s *Service) RefreshAccelerateSlots(ctx context.Context) { + chainID := s.authMgr.Chain() + if chainID == "" || s.cfg.RemoteBootstrapURL == "" { + return + } + // Mint gets its own deadline: it runs on http.DefaultClient, so a hung auth stalls bgSync. + var headers map[string]string + tokCtx, cancelTok := context.WithTimeout(ctx, 5*time.Second) + tok, tokErr := s.authMgr.ServicesToken(tokCtx) + cancelTok() + if tokErr != nil { + s.log.Error("accelerate_slots poll has no services token, polling unauthenticated", tokErr) + } + if tok != "" { + headers = map[string]string{"Authorization": "Bearer " + tok} + } + ctx, cancel := context.WithTimeout(ctx, 5*time.Second) + defer cancel() + res, code, err := commonnet.GetCurl[accelerateSlotsResponse](ctx, utils.BootstrapAccelerateSlotsURL(s.cfg.RemoteBootstrapURL, chainID), headers) + // GetCurl reports a non-JSON body as an unmarshal error alongside the code. + if err != nil || code != http.StatusOK || res == nil { + s.log.Error("accelerate_slots poll failed, keeping previous list", err, logger.WithInt("status_code", code)) + return + } + w := &accelerateWindow{slots: make(map[uint64]struct{}, len(res.Slots))} + if res.ToSlot > 0 { + w.toSlot = uint64(res.ToSlot) + } + for _, slot := range res.Slots { + if slot >= 0 { + w.slots[uint64(slot)] = struct{}{} + } + } + s.accelerate.Store(w) + telemetry.SetAccelerateWindow(w.toSlot, res.GeneratedAtMs) +} diff --git a/pkg/service/message_router/accelerate_test.go b/pkg/service/message_router/accelerate_test.go new file mode 100644 index 0000000..b06d232 --- /dev/null +++ b/pkg/service/message_router/accelerate_test.go @@ -0,0 +1,68 @@ +package message_router_test + +import ( + "encoding/json" + "net/http" + "net/http/httptest" + "sync/atomic" + "testing" + "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + commonentities "github.com/getoptimum/optimum-common/pkg/entities" +) + +func TestShouldAccelerateBlock(t *testing.T) { + var fail atomic.Bool + fail.Store(true) // keep window nil until the fail-open assert; bgSync polls at start + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + // assert, not require: FailNow off the test goroutine is unsupported. + assert.Equal(t, "/api/v2/hoodi/accelerate_slots", r.URL.Path) + assert.NotEmpty(t, r.Header.Get("Authorization")) + if fail.Load() { + w.WriteHeader(http.StatusInternalServerError) + return + } + _ = json.NewEncoder(w).Encode(map[string]any{ + "to_slot": 120, + "slots": []int64{100, 101}, + "generated_at_ms": 1, + }) + })) + t.Cleanup(ts.Close) + + srv := newTestServiceAt(t, commonentities.GatewayTypePartner, ts.URL) + require.True(t, srv.ShouldAccelerateBlock(1), "no list fail-opens") + + fail.Store(false) + srv.RefreshAccelerateSlots(t.Context()) + require.True(t, srv.ShouldAccelerateBlock(100)) + require.True(t, srv.ShouldAccelerateBlock(101)) + require.False(t, srv.ShouldAccelerateBlock(110), "examined, not selected") + require.True(t, srv.ShouldAccelerateBlock(121), "past to_slot fail-opens") + + fail.Store(true) + srv.RefreshAccelerateSlots(t.Context()) + require.False(t, srv.ShouldAccelerateBlock(110), "failed poll must not clear the list") + require.True(t, srv.ShouldAccelerateBlock(100)) +} + +func TestAccelerateSlotsPrimedAtStartup(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { + _ = json.NewEncoder(w).Encode(map[string]any{ + "to_slot": 120, + "slots": []int64{100}, + "generated_at_ms": 1, + }) + })) + t.Cleanup(ts.Close) + + srv := newTestServiceAt(t, commonentities.GatewayTypePartner, ts.URL) + + require.Eventually(t, func() bool { + return !srv.ShouldAccelerateBlock(110) + }, 5*time.Second, 5*time.Millisecond, "startup must fetch the window without waiting for a tick") + require.True(t, srv.ShouldAccelerateBlock(100), "selected slot still accelerates") +} diff --git a/pkg/service/message_router/bg_sync.go b/pkg/service/message_router/bg_sync.go index ac458ba..9b97c17 100644 --- a/pkg/service/message_router/bg_sync.go +++ b/pkg/service/message_router/bg_sync.go @@ -16,6 +16,9 @@ import ( // and the per-tick work degenerates to a single comparison, so we don't // bother short-circuiting here. func (s *Service) bgSync(ctx context.Context) { + // Prime so a restart is not fail-open until the first 30s tick. + s.RefreshAccelerateSlots(ctx) + ticker := time.NewTicker(30 * time.Second) defer ticker.Stop() for { @@ -24,6 +27,7 @@ func (s *Service) bgSync(ctx context.Context) { return case <-ticker.C: s.SetKnownValidators(s.authMgr.ValidatorIndexes()) + s.RefreshAccelerateSlots(ctx) } } } diff --git a/pkg/service/message_router/service.go b/pkg/service/message_router/service.go index 31bcb67..df35eab 100644 --- a/pkg/service/message_router/service.go +++ b/pkg/service/message_router/service.go @@ -2,6 +2,7 @@ package message_router import ( "context" + "sync/atomic" "time" commonentities "github.com/getoptimum/optimum-common/pkg/entities" @@ -29,6 +30,7 @@ type Service struct { // knownValidators keep mapping between validator and target chunkID. also keep length of target chunk // 1st number is chunkID, 2nd number is chunk length knownValidators *syncx.RWMap[uint64, [2]uint64] + accelerate atomic.Pointer[accelerateWindow] // nil = ADR-0012 fail-open } func NewService(ctx context.Context, cfg *config.AppConfig, log logger.AppLogger, authMgr *auth_token.Service) (*Service, error) { diff --git a/pkg/service/message_router/service_test.go b/pkg/service/message_router/service_test.go index b41d0c4..314c47d 100644 --- a/pkg/service/message_router/service_test.go +++ b/pkg/service/message_router/service_test.go @@ -3,6 +3,8 @@ package message_router_test import ( "bytes" "encoding/hex" + "net/http" + "net/http/httptest" "testing" "time" @@ -219,6 +221,16 @@ func TestService_ResolveValidatorChunkUsesSortedValidatorSet(t *testing.T) { func newTestService(t *testing.T, pairedWith commonentities.GatewayType, validators ...uint64) *message_router.Service { t.Helper() + // bgSync polls at startup; an unstubbed URL would put every caller on the network. + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { + w.WriteHeader(http.StatusNotFound) + })) + t.Cleanup(ts.Close) + return newTestServiceAt(t, pairedWith, ts.URL, validators...) +} + +func newTestServiceAt(t *testing.T, pairedWith commonentities.GatewayType, bootstrapURL string, validators ...uint64) *message_router.Service { + t.Helper() cnt := test_utils.GetClean(t) rig := test_utils.NewAuthTestRig(t, test_utils.WithClaimModifier(func(claims *jwks_verifier.Claims) { @@ -231,7 +243,7 @@ func newTestService(t *testing.T, pairedWith commonentities.GatewayType, validat require.NoError(t, err) srv, err := message_router.NewService(t.Context(), &config.AppConfig{ - RemoteBootstrapURL: "dev-bootstrap.getoptimum.io", + RemoteBootstrapURL: bootstrapURL, }, cnt.Log, m) require.NoError(t, err) srv.SetKnownValidators(validators) diff --git a/pkg/service/telemetry/accelerate.go b/pkg/service/telemetry/accelerate.go new file mode 100644 index 0000000..5be7313 --- /dev/null +++ b/pkg/service/telemetry/accelerate.go @@ -0,0 +1,45 @@ +package telemetry + +import ( + "github.com/prometheus/client_golang/prometheus" + + commonmetrics "github.com/getoptimum/optimum-common/pkg/telemetry" +) + +var ( + accelerateDecisionTotal *prometheus.CounterVec + accelerateToSlot prometheus.Gauge + accelerateGeneratedAtMs prometheus.Gauge +) + +func initAccelerateMetrics() { + accelerateDecisionTotal = commonmetrics.NewCounterVec( + "accelerate_decision_total", + subsystem, + "Beacon-block acceleration verdicts (ADR-0012): on_list, not_on_list, fail_open", + []string{"result"}, + ) + accelerateToSlot = commonmetrics.NewGauge( + "accelerate_to_slot", + subsystem, + "Last successfully polled accelerate_slots horizon (0 = not covered)", + ) + accelerateGeneratedAtMs = commonmetrics.NewGauge( + "accelerate_generated_at_ms", + subsystem, + "generated_at_ms from the last successfully polled accelerate_slots body", + ) +} + +func IncAccelerateDecision(result string) { + if enabledMetrics { + accelerateDecisionTotal.WithLabelValues(result).Inc() + } +} + +func SetAccelerateWindow(toSlot uint64, generatedAtMs int64) { + if enabledMetrics { + accelerateToSlot.Set(float64(toSlot)) + accelerateGeneratedAtMs.Set(float64(generatedAtMs)) + } +} diff --git a/pkg/service/telemetry/metrics.go b/pkg/service/telemetry/metrics.go index ed17414..f486160 100644 --- a/pkg/service/telemetry/metrics.go +++ b/pkg/service/telemetry/metrics.go @@ -161,6 +161,7 @@ func InitMetricsWithRegistry(log logger.AppLogger, pairedWith string) { initProcessingSpeedMetrics() initAggregationMetrics() initAttestationMetrics() + initAccelerateMetrics() initAuthMetrics() initGatewayHealthMetrics() initMump2pTraceMetrics() diff --git a/pkg/test_utils/jwt_auth_claims.go b/pkg/test_utils/jwt_auth_claims.go index cc74f8c..570700d 100644 --- a/pkg/test_utils/jwt_auth_claims.go +++ b/pkg/test_utils/jwt_auth_claims.go @@ -66,7 +66,9 @@ func (r *AuthTestRig) AppCfg(t *testing.T) *config.AppConfig { TelemetryPort: 48123, GatewayClusterID: "test-cluster", TelemetryEnable: true, + PropagationEnabledRaw: true, // match the yaml-loaded test configs } + cfg.InitDerived() require.NoError(t, cfg.Validate()) return cfg } diff --git a/pkg/test_utils/local_bootstrap_server.go b/pkg/test_utils/local_bootstrap_server.go index b9ac68e..e083394 100644 --- a/pkg/test_utils/local_bootstrap_server.go +++ b/pkg/test_utils/local_bootstrap_server.go @@ -35,13 +35,14 @@ type ExposeNodesRequest struct { // LocalBootstrapServer is an in-process httptest bootstrap stub for gateway tests. type LocalBootstrapServer struct { - rig *AuthTestRig - messages *syncx.RWMap[string, any] - forksResponse *syncx.RWMap[string, any] - registerReqs chan RegisterGatewayRequest - exposeReqs chan ExposeNodesRequest - latencyReqs chan BlockLatencyRequest - srv *httptest.Server + rig *AuthTestRig + messages *syncx.RWMap[string, any] + forksResponse *syncx.RWMap[string, any] + accelerateResponse *syncx.RWMap[string, any] + registerReqs chan RegisterGatewayRequest + exposeReqs chan ExposeNodesRequest + latencyReqs chan BlockLatencyRequest + srv *httptest.Server } func NewLocalBootstrapServerWithRig(t *testing.T, rig *AuthTestRig) *LocalBootstrapServer { @@ -54,6 +55,7 @@ func newLocalBootstrapServer(t *testing.T, rig *AuthTestRig) *LocalBootstrapServ messages := syncx.NewRWMap[string, any]() forksResponse := syncx.NewRWMap[string, any]() + accelerateResponse := syncx.NewRWMap[string, any]() registerReqs := make(chan RegisterGatewayRequest, 32) exposeReqs := make(chan ExposeNodesRequest, 32) latencyReqs := make(chan BlockLatencyRequest, 32) @@ -82,11 +84,17 @@ func newLocalBootstrapServer(t *testing.T, rig *AuthTestRig) *LocalBootstrapServ return nil }) app.Get(utils.BootstrapForkDigestPath, func(c fiber.Ctx) error { - if rig != nil { - require.True(t, c.HasHeader("Authorization")) + if err := requireAuth(rig, c); err != nil { + return err } return c.JSON(forksResponse.LoadAll()) }) + app.Get("/api/v2/:chain/accelerate_slots", func(c fiber.Ctx) error { + if err := requireAuth(rig, c); err != nil { + return err + } + return c.JSON(accelerateResponse.LoadAll()) + }) app.Post(utils.BootstrapHandleBlockLatencyV2, func(c fiber.Ctx) error { var payload entities.LatencyComparator require.NoError(t, json.Unmarshal(c.Body(), &payload)) @@ -106,14 +114,23 @@ func newLocalBootstrapServer(t *testing.T, rig *AuthTestRig) *LocalBootstrapServ t.Cleanup(srv.Close) return &LocalBootstrapServer{ - rig: rig, - srv: srv, - forksResponse: forksResponse, - messages: messages, - registerReqs: registerReqs, - exposeReqs: exposeReqs, - latencyReqs: latencyReqs, + rig: rig, + srv: srv, + forksResponse: forksResponse, + accelerateResponse: accelerateResponse, + messages: messages, + registerReqs: registerReqs, + exposeReqs: exposeReqs, + latencyReqs: latencyReqs, + } +} + +// Fiber handlers cannot require.FailNow; return 401 instead. +func requireAuth(rig *AuthTestRig, c fiber.Ctx) error { + if rig == nil || c.HasHeader("Authorization") { + return nil } + return c.Status(fiber.StatusUnauthorized).JSON(fiber.Map{"error": "missing Authorization header"}) } func mapToURLValues(src map[string]string) url.Values { @@ -128,6 +145,10 @@ func (m *LocalBootstrapServer) SetForkResponse(payload map[string]any) { m.forksResponse.Replace(payload) } +func (m *LocalBootstrapServer) SetAccelerateResponse(payload map[string]any) { + m.accelerateResponse.Replace(payload) +} + func (m *LocalBootstrapServer) SetMessagesResponse(payload map[string]any) { m.messages.Replace(payload) } diff --git a/pkg/utils/bootstrap_urls.go b/pkg/utils/bootstrap_urls.go index afb14e9..afbd74b 100644 --- a/pkg/utils/bootstrap_urls.go +++ b/pkg/utils/bootstrap_urls.go @@ -15,6 +15,11 @@ const ( BootstrapForkDigestPath = "/api/v2/fork-digest" ) +// BootstrapAccelerateSlotsURL is GET /api/v2/:chain/accelerate_slots (ADR-0012). +func BootstrapAccelerateSlotsURL(host string, chainID chain.Chain) string { + return bootstrapPathURL(host, "/api/v2/"+url.PathEscape(chainID.String())+"/accelerate_slots") +} + // isBaseURL returns true if s looks like a full URL (http:// or https://). func isBaseURL(s string) bool { return strings.HasPrefix(s, "http://") || strings.HasPrefix(s, "https://") diff --git a/pkg/utils/bootstrap_urls_test.go b/pkg/utils/bootstrap_urls_test.go index f75d075..7136ea4 100644 --- a/pkg/utils/bootstrap_urls_test.go +++ b/pkg/utils/bootstrap_urls_test.go @@ -83,6 +83,31 @@ func TestBootstrapExposeNodesURL(t *testing.T) { } } +func TestBootstrapAccelerateSlotsURL(t *testing.T) { + tests := map[string]struct { + host string + chainID chain.Chain + want string + }{ + "hostname": { + host: "bootstrap.example.com", + chainID: chain.ChainHoodi, + want: "https://bootstrap.example.com/api/v2/hoodi/accelerate_slots", + }, + "base url with trailing slash": { + host: "https://bootstrap.example.com/", + chainID: chain.ChainMainnet, + want: "https://bootstrap.example.com/api/v2/mainnet/accelerate_slots", + }, + } + + for name, tt := range tests { + t.Run(name, func(t *testing.T) { + require.Equal(t, tt.want, utils.BootstrapAccelerateSlotsURL(tt.host, tt.chainID)) + }) + } +} + func TestBootstrapForkDigestURL(t *testing.T) { tests := map[string]struct { host string