diff --git a/cmd/registry-connect/discover/apigee/edge/edge_client_test.go b/cmd/registry-connect/discover/apigee/edge/edge_client_test.go index a11578bb..48063666 100644 --- a/cmd/registry-connect/discover/apigee/edge/edge_client_test.go +++ b/cmd/registry-connect/discover/apigee/edge/edge_client_test.go @@ -292,7 +292,7 @@ func TestMutualTLSNoCerts(t *testing.T) { } _, err = c.Do(req, nil) - errorContains(t, err, "remote error: tls: bad certificate") + errorContains(t, err, "remote error: tls:") } func newMutualTLSServer() *httptest.Server { diff --git a/cmd/registry-connect/publish/backstage/catalog.go b/cmd/registry-connect/publish/backstage/catalog.go index 1d64b7f0..e749d4e9 100644 --- a/cmd/registry-connect/publish/backstage/catalog.go +++ b/cmd/registry-connect/publish/backstage/catalog.go @@ -181,7 +181,7 @@ func (c *catalog) createAPIs(ctx context.Context) error { if err != nil { return err } - return visitor.ListAPIs(ctx, c.client, project.Api("-"), c.filter, func(ctx context.Context, a *rpc.Api) error { + return visitor.ListAPIs(ctx, c.client, project.Api("-"), 0, c.filter, func(ctx context.Context, a *rpc.Api) error { log.FromContext(ctx).Infof("publishing %s", a.Name) var specContents string @@ -212,7 +212,7 @@ func (c *catalog) createAPIs(ctx context.Context) error { var specs []*rpc.ApiSpec vName, _ := names.ParseVersion(av.Name) - err = visitor.ListSpecs(ctx, c.client, vName.Spec("-"), "", true, func(ctx context.Context, as *rpc.ApiSpec) error { + err = visitor.ListSpecs(ctx, c.client, vName.Spec("-"), 0, "", true, func(ctx context.Context, as *rpc.ApiSpec) error { specs = append(specs, as) return nil }) @@ -268,7 +268,7 @@ func (c *catalog) createAPIs(ctx context.Context) error { return err } - err = visitor.ListDeployments(ctx, c.client, apiName.Deployment("-"), "", func(ctx context.Context, d *rpc.ApiDeployment) error { + err = visitor.ListDeployments(ctx, c.client, apiName.Deployment("-"), 0, "", func(ctx context.Context, d *rpc.ApiDeployment) error { env, err := c.createDeployment(d) dep := env.Spec.(*encoding.Component) dep.ProvidesApis = append(dep.ProvidesApis, api.Reference()) @@ -386,7 +386,7 @@ func recommendedOrLatestVersion(ctx context.Context, client connection.RegistryC } var version *rpc.ApiVersion - err := visitor.ListVersions(ctx, client, versionName, "", func(ctx context.Context, av *rpc.ApiVersion) error { + err := visitor.ListVersions(ctx, client, versionName, 0, "", func(ctx context.Context, av *rpc.ApiVersion) error { version = av return nil }) diff --git a/cmd/registry-experimental/cmd/compute/descriptor.go b/cmd/registry-experimental/cmd/compute/descriptor.go index 14cde70e..54c03b25 100644 --- a/cmd/registry-experimental/cmd/compute/descriptor.go +++ b/cmd/registry-experimental/cmd/compute/descriptor.go @@ -68,7 +68,7 @@ func descriptorCommand() *cobra.Command { defer wait() // Generate tasks. if spec, err := names.ParseSpec(pattern); err == nil { - err = visitor.ListSpecs(ctx, client, spec, filter, false, func(ctx context.Context, spec *rpc.ApiSpec) error { + err = visitor.ListSpecs(ctx, client, spec, 0, filter, false, func(ctx context.Context, spec *rpc.ApiSpec) error { taskQueue <- &computeDescriptorTask{ client: client, specName: spec.Name, diff --git a/cmd/registry-experimental/cmd/compute/summary/summary.go b/cmd/registry-experimental/cmd/compute/summary/summary.go index 9ae8944d..47d1076a 100644 --- a/cmd/registry-experimental/cmd/compute/summary/summary.go +++ b/cmd/registry-experimental/cmd/compute/summary/summary.go @@ -89,7 +89,7 @@ func (v *summaryVisitor) ProjectHandler() visitor.ProjectHandler { } apiCount := 0 if err := visitor.ListAPIs(ctx, v.registryClient, - projectName.Api("-"), "", + projectName.Api("-"), 0, "", func(ctx context.Context, api *rpc.Api) error { apiCount++ return nil @@ -98,7 +98,7 @@ func (v *summaryVisitor) ProjectHandler() visitor.ProjectHandler { } versionCount := 0 if err := visitor.ListVersions(ctx, v.registryClient, - projectName.Api("-").Version("-"), "", + projectName.Api("-").Version("-"), 0, "", func(ctx context.Context, message *rpc.ApiVersion) error { versionCount++ return nil @@ -108,7 +108,7 @@ func (v *summaryVisitor) ProjectHandler() visitor.ProjectHandler { specCount := 0 mimeTypes := make(map[string]int) if err := visitor.ListSpecs(ctx, v.registryClient, - projectName.Api("-").Version("-").Spec("-"), "", false, + projectName.Api("-").Version("-").Spec("-"), 0, "", false, func(ctx context.Context, message *rpc.ApiSpec) error { specCount++ mimeTypes[message.MimeType]++ @@ -118,7 +118,7 @@ func (v *summaryVisitor) ProjectHandler() visitor.ProjectHandler { } deploymentCount := 0 if err := visitor.ListDeployments(ctx, v.registryClient, - projectName.Api("-").Deployment("-"), "", + projectName.Api("-").Deployment("-"), 0, "", func(ctx context.Context, message *rpc.ApiDeployment) error { deploymentCount++ return nil @@ -154,7 +154,7 @@ func (v *summaryVisitor) ApiHandler() visitor.ApiHandler { } versionCount := 0 if err := visitor.ListVersions(ctx, v.registryClient, - apiName.Version("-"), "", + apiName.Version("-"), 0, "", func(ctx context.Context, message *rpc.ApiVersion) error { versionCount++ return nil @@ -164,7 +164,7 @@ func (v *summaryVisitor) ApiHandler() visitor.ApiHandler { specCount := 0 mimeTypes := make(map[string]int) if err := visitor.ListSpecs(ctx, v.registryClient, - apiName.Version("-").Spec("-"), "", false, + apiName.Version("-").Spec("-"), 0, "", false, func(ctx context.Context, message *rpc.ApiSpec) error { specCount++ mimeTypes[message.MimeType]++ @@ -174,7 +174,7 @@ func (v *summaryVisitor) ApiHandler() visitor.ApiHandler { } deploymentCount := 0 if err := visitor.ListDeployments(ctx, v.registryClient, - apiName.Deployment("-"), "", + apiName.Deployment("-"), 0, "", func(ctx context.Context, message *rpc.ApiDeployment) error { deploymentCount++ return nil diff --git a/cmd/registry-experimental/cmd/count/deployments.go b/cmd/registry-experimental/cmd/count/deployments.go index 5ff1459d..0bd4d470 100644 --- a/cmd/registry-experimental/cmd/count/deployments.go +++ b/cmd/registry-experimental/cmd/count/deployments.go @@ -61,7 +61,7 @@ func deploymentsCommand() *cobra.Command { } // Iterate through a collection of APIs and count the number of deployments of each. - err = visitor.ListAPIs(ctx, client, api, filter, func(ctx context.Context, api *rpc.Api) error { + err = visitor.ListAPIs(ctx, client, api, 0, filter, func(ctx context.Context, api *rpc.Api) error { taskQueue <- &countApiDeploymentsTask{ client: client, api: api, diff --git a/cmd/registry-experimental/cmd/count/revisions.go b/cmd/registry-experimental/cmd/count/revisions.go index 8112dbd5..879fbab8 100644 --- a/cmd/registry-experimental/cmd/count/revisions.go +++ b/cmd/registry-experimental/cmd/count/revisions.go @@ -56,7 +56,7 @@ func revisionsCommand() *cobra.Command { defer wait() // Generate tasks. if spec, err := names.ParseSpec(args[0]); err == nil { - err = visitor.ListSpecs(ctx, client, spec, filter, false, func(ctx context.Context, spec *rpc.ApiSpec) error { + err = visitor.ListSpecs(ctx, client, spec, 0, filter, false, func(ctx context.Context, spec *rpc.ApiSpec) error { taskQueue <- &countSpecRevisionsTask{ client: client, specName: spec.Name, @@ -68,7 +68,7 @@ func revisionsCommand() *cobra.Command { log.FromContext(ctx).WithError(err).Fatal("Failed to list API specs") } } else if deployment, err := names.ParseDeployment(args[0]); err == nil { - err = visitor.ListDeployments(ctx, client, deployment, filter, func(ctx context.Context, deployment *rpc.ApiDeployment) error { + err = visitor.ListDeployments(ctx, client, deployment, 0, filter, func(ctx context.Context, deployment *rpc.ApiDeployment) error { taskQueue <- &countDeploymentRevisionsTask{ client: client, deploymentName: deployment.Name, @@ -104,7 +104,7 @@ func (task *countSpecRevisionsTask) Run(ctx context.Context) error { return err } count := 0 - err = visitor.ListSpecRevisions(ctx, task.client, name, "", false, func(context.Context, *rpc.ApiSpec) error { + err = visitor.ListSpecRevisions(ctx, task.client, name, 0, "", false, func(context.Context, *rpc.ApiSpec) error { count++ return nil }) diff --git a/cmd/registry-experimental/cmd/count/versions.go b/cmd/registry-experimental/cmd/count/versions.go index 2bcec79c..1bc93056 100644 --- a/cmd/registry-experimental/cmd/count/versions.go +++ b/cmd/registry-experimental/cmd/count/versions.go @@ -61,7 +61,7 @@ func versionsCommand() *cobra.Command { } // Iterate through a collection of APIs and count the number of versions of each. - err = visitor.ListAPIs(ctx, client, api, filter, func(ctx context.Context, api *rpc.Api) error { + err = visitor.ListAPIs(ctx, client, api, 0, filter, func(ctx context.Context, api *rpc.Api) error { taskQueue <- &countApiVersionsTask{ client: client, api: api, diff --git a/cmd/registry-experimental/cmd/export/csv.go b/cmd/registry-experimental/cmd/export/csv.go index 5d648104..4295fe02 100644 --- a/cmd/registry-experimental/cmd/export/csv.go +++ b/cmd/registry-experimental/cmd/export/csv.go @@ -68,7 +68,7 @@ func csvCommand() *cobra.Command { return } - err = visitor.ListSpecs(ctx, client, version.Spec(""), filter, false, func(ctx context.Context, spec *rpc.ApiSpec) error { + err = visitor.ListSpecs(ctx, client, version.Spec(""), 0, filter, false, func(ctx context.Context, spec *rpc.ApiSpec) error { name, err := names.ParseSpec(spec.GetName()) if err != nil { log.Debugf(ctx, "Failed to parse spec name %q: skipping spec row", spec.GetName()) diff --git a/cmd/registry-experimental/cmd/generate/openapi.go b/cmd/registry-experimental/cmd/generate/openapi.go index 52960aeb..751f8d2e 100644 --- a/cmd/registry-experimental/cmd/generate/openapi.go +++ b/cmd/registry-experimental/cmd/generate/openapi.go @@ -65,7 +65,7 @@ func openapiCommand() *cobra.Command { } // Iterate through a collection of specs and evaluate each. - err = visitor.ListSpecs(ctx, client, spec, filter, false, func(ctx context.Context, spec *rpc.ApiSpec) error { + err = visitor.ListSpecs(ctx, client, spec, 0, filter, false, func(ctx context.Context, spec *rpc.ApiSpec) error { taskQueue <- &generateOpenAPITask{ client: client, specName: spec.Name, diff --git a/cmd/registry-experimental/cmd/vocabulary/similarity.go b/cmd/registry-experimental/cmd/vocabulary/similarity.go index c89b8cdc..cb18340d 100644 --- a/cmd/registry-experimental/cmd/vocabulary/similarity.go +++ b/cmd/registry-experimental/cmd/vocabulary/similarity.go @@ -53,10 +53,8 @@ func similarityCommand() *cobra.Command { if err != nil { return err } - if err = visitor.ListArtifacts(ctx, client, - name, - filter, - true, func(ctx context.Context, message *rpc.Artifact) error { + if err = visitor.ListArtifacts(ctx, client, name, 0, filter, true, + func(ctx context.Context, message *rpc.Artifact) error { messageType, err := mime.MessageTypeForMimeType(message.GetMimeType()) if err != nil || messageType != "gnostic.metrics.Vocabulary" { log.Debugf(ctx, "Skipping, not a vocabulary: %s", message.Name) diff --git a/cmd/registry-experimental/cmd/vocabulary/stems.go b/cmd/registry-experimental/cmd/vocabulary/stems.go index 6b4270d6..5126160f 100644 --- a/cmd/registry-experimental/cmd/vocabulary/stems.go +++ b/cmd/registry-experimental/cmd/vocabulary/stems.go @@ -66,7 +66,7 @@ func stemsCommand() *cobra.Command { log.FromContext(ctx).WithError(err).Fatal("Invalid pattern") } - err = visitor.ListArtifacts(ctx, client, patternName, filter, true, func(ctx context.Context, artifact *rpc.Artifact) error { + err = visitor.ListArtifacts(ctx, client, patternName, 0, filter, true, func(ctx context.Context, artifact *rpc.Artifact) error { messageType, err := mime.MessageTypeForMimeType(artifact.GetMimeType()) if err != nil || messageType != "gnostic.metrics.Vocabulary" { log.Debugf(ctx, "Skipping, not a vocabulary: %s", artifact.Name) diff --git a/cmd/registry-experimental/cmd/vocabulary/vocabulary.go b/cmd/registry-experimental/cmd/vocabulary/vocabulary.go index 991233ef..1f6be9cf 100644 --- a/cmd/registry-experimental/cmd/vocabulary/vocabulary.go +++ b/cmd/registry-experimental/cmd/vocabulary/vocabulary.go @@ -65,7 +65,7 @@ func collectInputVocabularies(ctx context.Context, client connection.RegistryCli continue } - err = visitor.ListArtifacts(ctx, client, artifact, filter, true, func(ctx context.Context, artifact *rpc.Artifact) error { + err = visitor.ListArtifacts(ctx, client, artifact, 0, filter, true, func(ctx context.Context, artifact *rpc.Artifact) error { messageType, err := mime.MessageTypeForMimeType(artifact.GetMimeType()) if err != nil || messageType != "gnostic.metrics.Vocabulary" { log.Debugf(ctx, "Skipping, not a vocabulary: %s", artifact.Name) diff --git a/go.mod b/go.mod index 3da0fe4a..250661ce 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( cloud.google.com/go/pubsub v1.30.0 github.com/GoogleCloudPlatform/cloudsql-proxy v1.32.0 github.com/apex/log v1.9.0 - github.com/apigee/registry v0.6.13-0.20230607165826-f3ddf3b7a75e + github.com/apigee/registry v0.6.14-0.20230814170855-82fd89e64a50 github.com/blevesearch/bleve v1.0.14 github.com/envoyproxy/go-control-plane v0.10.3 github.com/fatih/camelcase v1.0.0 diff --git a/go.sum b/go.sum index 9cac20ee..89cff954 100644 --- a/go.sum +++ b/go.sum @@ -54,6 +54,7 @@ cloud.google.com/go/compute v1.18.0 h1:FEigFqoDbys2cvFkZ9Fjq4gnHBP55anJ0yQyau2f9 cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/datacatalog v1.12.0 h1:3uaYULZRLByPdbuUvacGeqneudztEM4xqKQsBcxbDnY= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= @@ -75,6 +76,7 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= +cloud.google.com/go/storage v1.28.1 h1:F5QDG5ChchaAVQhINh24U99OWHURqrW8OmQcGKXcbgI= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-sdk-for-go/sdk/azcore v0.19.0/go.mod h1:h6H6c8enJmmocHUbLiiGY6sx7f9i+X3m1CHdd5c6Rdw= github.com/Azure/azure-sdk-for-go/sdk/azidentity v0.11.0/go.mod h1:HcM1YX14R7CJcghJGOYCgdezslRSVzqwLf/q+4Y2r/0= @@ -85,6 +87,7 @@ github.com/GoogleCloudPlatform/cloudsql-proxy v1.32.0 h1:647YHw0ZJ3Uu5xlkytf1li7 github.com/GoogleCloudPlatform/cloudsql-proxy v1.32.0/go.mod h1:FjoDxLvxFAbnXFuUKkzM7rY66YaU/YHezlau786y9hs= github.com/JohannesKaufmann/html-to-markdown v1.3.6 h1:i3Ma4RmIU97gqArbxZXbFqbWKm7XtImlMwVNUouQ7Is= github.com/JohannesKaufmann/html-to-markdown v1.3.6/go.mod h1:Ol3Jv/xw8jt8qsaLeSh/6DBBw4ZBJrTqrOu3wbbUUg8= +github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= @@ -108,8 +111,8 @@ github.com/apex/log v1.9.0/go.mod h1:m82fZlWIuiWzWP04XCTXmnX0xRkYYbCdYn8jbJeLBEA github.com/apex/logs v1.0.0/go.mod h1:XzxuLZ5myVHDy9SAmYpamKKRNApGj54PfYLcFrXqDwo= github.com/aphistic/golf v0.0.0-20180712155816-02c07f170c5a/go.mod h1:3NqKYiepwy8kCu4PNA+aP7WUV72eXWJeP9/r3/K9aLE= github.com/aphistic/sweet v0.2.0/go.mod h1:fWDlIh/isSE9n6EPsRmC0det+whmX6dJid3stzu0Xys= -github.com/apigee/registry v0.6.13-0.20230607165826-f3ddf3b7a75e h1:ZbP9FhE2dSsZwi4YoJqH5S3mcZKAkEoC0RyzD5nzLL4= -github.com/apigee/registry v0.6.13-0.20230607165826-f3ddf3b7a75e/go.mod h1:eZeR9mdhytrGxwmacGGSEgwKiv2wyBjIAgabWeqia7g= +github.com/apigee/registry v0.6.14-0.20230814170855-82fd89e64a50 h1:unLwkFZrMt52jdHPO5icEbunEvvgRFpvvOq+AV389PE= +github.com/apigee/registry v0.6.14-0.20230814170855-82fd89e64a50/go.mod h1:9zQr8ftzndKqg2ORcXE/7nmrWk0vrRdbJL88R/7SNKg= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/aws/aws-sdk-go v1.20.6/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I= @@ -299,7 +302,6 @@ github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -328,10 +330,12 @@ github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= @@ -557,7 +561,7 @@ github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qq github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= @@ -654,6 +658,7 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.4/go.mod h1:rmuwmfZ0+bvzB24eSC//bk1R1Zp3hM0OXYv/G2LIilg= github.com/yuin/goldmark v1.4.14 h1:jwww1XQfhJN7Zm+/a1ZA/3WUiEBEroYFNTiV3dKwM8U= github.com/yuin/goldmark v1.4.14/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= @@ -1012,6 +1017,7 @@ golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNq golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +gonum.org/v1/gonum v0.11.0 h1:f1IJhK4Km5tBJmaiJXtk/PkL4cdVX6J+tGiM187uT5E= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=