diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9be2ec4..f11333b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,9 +16,9 @@ jobs: - uses: actions/setup-go@v5 with: - go-version: "1.21" + go-version: "1.22" - - uses: actions/checkout@v4.1.1 + - uses: actions/checkout@v4 - name: go build run: | diff --git a/.github/workflows/check-code.yml b/.github/workflows/check-code.yml index ab9b7dc..7c5dc0b 100644 --- a/.github/workflows/check-code.yml +++ b/.github/workflows/check-code.yml @@ -16,10 +16,10 @@ jobs: - uses: actions/setup-go@v5 with: - go-version: "1.21" + go-version: "1.22" - - uses: actions/checkout@v4.1.1 + - uses: actions/checkout@v4 - - uses: dominikh/staticcheck-action@v1.3.0 + - uses: dominikh/staticcheck-action@v1.3.1 with: install-go: false diff --git a/.github/workflows/check-test.yml b/.github/workflows/check-test.yml index ee98122..a6c741a 100644 --- a/.github/workflows/check-test.yml +++ b/.github/workflows/check-test.yml @@ -16,9 +16,9 @@ jobs: - uses: actions/setup-go@v5 with: - go-version: "1.21" + go-version: "1.22" - - uses: actions/checkout@v4.1.1 + - uses: actions/checkout@v4 - name: go build run: | diff --git a/broker/eventbridge/awscdk.go b/broker/eventbridge/awscdk.go index 396fb83..e716a57 100644 --- a/broker/eventbridge/awscdk.go +++ b/broker/eventbridge/awscdk.go @@ -38,7 +38,7 @@ type SinkProps struct { Source []string Categories []string Pattern map[string]interface{} - Lambda *scud.FunctionGoProps + Function scud.FunctionProps } func NewSink(scope constructs.Construct, id *string, props *SinkProps) *Sink { @@ -46,7 +46,7 @@ func NewSink(scope constructs.Construct, id *string, props *SinkProps) *Sink { // pattern := &awsevents.EventPattern{} - if props.Categories != nil && len(props.Categories) > 0 { + if len(props.Categories) > 0 { seq := make([]*string, len(props.Categories)) for i, category := range props.Categories { seq[i] = jsii.String(category) @@ -54,7 +54,7 @@ func NewSink(scope constructs.Construct, id *string, props *SinkProps) *Sink { pattern.DetailType = &seq } - if props.Source != nil && len(props.Source) > 0 { + if len(props.Source) > 0 { seq := make([]*string, len(props.Source)) for i, agent := range props.Source { seq[i] = jsii.String(agent) @@ -78,8 +78,8 @@ func NewSink(scope constructs.Construct, id *string, props *SinkProps) *Sink { }, ) - if props.Lambda != nil { - sink.Handler = scud.NewFunctionGo(sink.Construct, jsii.String("Func"), props.Lambda) + if props.Function != nil { + sink.Handler = scud.NewFunction(sink.Construct, jsii.String("Func"), props.Function) sink.Rule.AddTarget(awseventstargets.NewLambdaFunction( sink.Handler, diff --git a/broker/eventbridge/awscdk_test.go b/broker/eventbridge/awscdk_test.go index eb9dd3d..f35dedd 100644 --- a/broker/eventbridge/awscdk_test.go +++ b/broker/eventbridge/awscdk_test.go @@ -28,9 +28,9 @@ func TestEventBridgeCDK(t *testing.T) { broker.NewSink( &eventbridge.SinkProps{ Source: []string{"swarm-example-eventbridge"}, - Lambda: &scud.FunctionGoProps{ - SourceCodePackage: "github.com/fogfish/swarm", - SourceCodeLambda: "examples/eventbridge/dequeue", + Function: &scud.FunctionGoProps{ + SourceCodeModule: "github.com/fogfish/swarm", + SourceCodeLambda: "examples/eventbridge/dequeue", }, }, ) diff --git a/broker/eventddb/awscdk.go b/broker/eventddb/awscdk.go index 20fdd09..502e8d4 100644 --- a/broker/eventddb/awscdk.go +++ b/broker/eventddb/awscdk.go @@ -33,14 +33,14 @@ type Sink struct { type SinkProps struct { Table awsdynamodb.ITable - Lambda *scud.FunctionGoProps + Function scud.FunctionProps EventSource *awslambdaeventsources.DynamoEventSourceProps } func NewSink(scope constructs.Construct, id *string, props *SinkProps) *Sink { sink := &Sink{Construct: constructs.NewConstruct(scope, id)} - sink.Handler = scud.NewFunctionGo(sink.Construct, jsii.String("Func"), props.Lambda) + sink.Handler = scud.NewFunction(sink.Construct, jsii.String("Func"), props.Function) eventsource := &awslambdaeventsources.DynamoEventSourceProps{ StartingPosition: awslambda.StartingPosition_LATEST, @@ -142,7 +142,9 @@ func (broker *Broker) NewTable(props *awsdynamodb.TablePropsV2) awsdynamodb.ITab } if props.Billing == nil { - props.Billing = awsdynamodb.Billing_OnDemand() + props.Billing = awsdynamodb.Billing_OnDemand( + &awsdynamodb.MaxThroughputProps{}, + ) } if props.DynamoStream == "" { diff --git a/broker/eventddb/awscdk_test.go b/broker/eventddb/awscdk_test.go index f50ce9c..eac843b 100644 --- a/broker/eventddb/awscdk_test.go +++ b/broker/eventddb/awscdk_test.go @@ -27,9 +27,9 @@ func TestEventDdbCDK(t *testing.T) { broker.NewSink( &eventddb.SinkProps{ - Lambda: &scud.FunctionGoProps{ - SourceCodePackage: "github.com/fogfish/swarm", - SourceCodeLambda: "examples/eventddb/dequeue", + Function: &scud.FunctionGoProps{ + SourceCodeModule: "github.com/fogfish/swarm", + SourceCodeLambda: "examples/eventddb/dequeue", }, }, ) diff --git a/broker/events3/awscdk.go b/broker/events3/awscdk.go index c83ee68..85d288f 100644 --- a/broker/events3/awscdk.go +++ b/broker/events3/awscdk.go @@ -35,13 +35,13 @@ type Sink struct { type SinkProps struct { Bucket awss3.Bucket EventSource *awslambdaeventsources.S3EventSourceProps - Lambda *scud.FunctionGoProps + Function scud.FunctionProps } func NewSink(scope constructs.Construct, id *string, props *SinkProps) *Sink { sink := &Sink{Construct: constructs.NewConstruct(scope, id)} - sink.Handler = scud.NewFunctionGo(sink.Construct, jsii.String("Func"), props.Lambda) + sink.Handler = scud.NewFunction(sink.Construct, jsii.String("Func"), props.Function) eventsource := &awslambdaeventsources.S3EventSourceProps{ Events: &[]awss3.EventType{ diff --git a/broker/events3/awscdk_test.go b/broker/events3/awscdk_test.go index 0d62571..9c79f6b 100644 --- a/broker/events3/awscdk_test.go +++ b/broker/events3/awscdk_test.go @@ -27,9 +27,9 @@ func TestEventS3CDK(t *testing.T) { broker.NewSink( &events3.SinkProps{ - Lambda: &scud.FunctionGoProps{ - SourceCodePackage: "github.com/fogfish/swarm", - SourceCodeLambda: "examples/events3/dequeue", + Function: &scud.FunctionGoProps{ + SourceCodeModule: "github.com/fogfish/swarm", + SourceCodeLambda: "examples/events3/dequeue", }, }, ) diff --git a/broker/eventsqs/awscdk.go b/broker/eventsqs/awscdk.go index 1cd9509..433b591 100644 --- a/broker/eventsqs/awscdk.go +++ b/broker/eventsqs/awscdk.go @@ -33,14 +33,14 @@ type Sink struct { } type SinkProps struct { - Queue awssqs.IQueue - Lambda *scud.FunctionGoProps + Queue awssqs.IQueue + Function scud.FunctionProps } func NewSink(scope constructs.Construct, id *string, props *SinkProps) *Sink { sink := &Sink{Construct: constructs.NewConstruct(scope, id)} - sink.Handler = scud.NewFunctionGo(sink.Construct, jsii.String("Func"), props.Lambda) + sink.Handler = scud.NewFunction(sink.Construct, jsii.String("Func"), props.Function) source := awslambdaeventsources.NewSqsEventSource(props.Queue, &awslambdaeventsources.SqsEventSourceProps{}) diff --git a/broker/eventsqs/awscdk_test.go b/broker/eventsqs/awscdk_test.go index b1e327f..c71de57 100644 --- a/broker/eventsqs/awscdk_test.go +++ b/broker/eventsqs/awscdk_test.go @@ -27,9 +27,9 @@ func TestEventBridgeCDK(t *testing.T) { broker.NewSink( &eventsqs.SinkProps{ - Lambda: &scud.FunctionGoProps{ - SourceCodePackage: "github.com/fogfish/swarm", - SourceCodeLambda: "examples/eventsqs/dequeue", + Function: &scud.FunctionGoProps{ + SourceCodeModule: "github.com/fogfish/swarm", + SourceCodeLambda: "examples/eventsqs/dequeue", }, }, ) diff --git a/broker/websocket/awscdk.go b/broker/websocket/awscdk.go index b0cb7b1..5eac1bc 100644 --- a/broker/websocket/awscdk.go +++ b/broker/websocket/awscdk.go @@ -23,6 +23,7 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/constructs-go/constructs/v10" "github.com/aws/jsii-runtime-go" + "github.com/fogfish/golem/optics" "github.com/fogfish/scud" ) @@ -40,32 +41,16 @@ type Sink struct { } type SinkProps struct { - Route string - Lambda *scud.FunctionGoProps - Gateway awsapigatewayv2.WebSocketApi + Route string + Function scud.FunctionProps + Gateway awsapigatewayv2.WebSocketApi } func NewSink(scope constructs.Construct, id *string, props *SinkProps) *Sink { sink := &Sink{Construct: constructs.NewConstruct(scope, id)} - if props.Lambda.FunctionProps == nil { - props.Lambda.FunctionProps = &awslambda.FunctionProps{} - } - - if props.Lambda.FunctionProps.Environment == nil { - props.Lambda.FunctionProps.Environment = &map[string]*string{} - } - - if _, has := (*props.Lambda.FunctionProps.Environment)["CONFIG_SWARM_WS_EVENT_TYPE"]; !has { - (*props.Lambda.FunctionProps.Environment)["CONFIG_SWARM_WS_EVENT_TYPE"] = jsii.String(props.Route) - } - - if _, has := (*props.Lambda.FunctionProps.Environment)["CONFIG_SWARM_WS_URL"]; !has { - url := aws.ToString(props.Gateway.ApiEndpoint()) + "/" + stage - (*props.Lambda.FunctionProps.Environment)["CONFIG_SWARM_WS_URL"] = aws.String(url) - } - - sink.Handler = scud.NewFunctionGo(sink.Construct, jsii.String("Func"), props.Lambda) + defaultEnvironment(props) + sink.Handler = scud.NewFunction(sink.Construct, jsii.String("Func"), props.Function) it := integrations.NewWebSocketLambdaIntegration(jsii.String(props.Route), sink.Handler, &integrations.WebSocketLambdaIntegrationProps{}, @@ -82,6 +67,46 @@ func NewSink(scope constructs.Construct, id *string, props *SinkProps) *Sink { return sink } +var ( + lensFunction = optics.ForProduct1[scud.FunctionGoProps, *map[string]*string]("Environment") + lensContainer = optics.ForProduct1[scud.ContainerGoProps, *map[string]*string]("Environment") +) + +func defineLambdaEnvironment[T any](lens optics.Lens[T, *map[string]*string], props *SinkProps, fprops *T) { + env := lens.Get(fprops) + + if env == nil { + env = &map[string]*string{} + } + + if _, has := (*env)["CONFIG_SWARM_WS_EVENT_TYPE"]; !has { + (*env)["CONFIG_SWARM_WS_EVENT_TYPE"] = jsii.String(props.Route) + } + + if _, has := (*env)["CONFIG_SWARM_WS_URL"]; !has { + url := aws.ToString(props.Gateway.ApiEndpoint()) + "/" + stage + (*env)["CONFIG_SWARM_WS_URL"] = aws.String(url) + } + + lens.Put(fprops, env) +} + +func defaultEnvironment(props *SinkProps) { + switch fprops := props.Function.(type) { + case *scud.FunctionGoProps: + if fprops.FunctionProps == nil { + fprops.FunctionProps = &awslambda.FunctionProps{} + } + + defineLambdaEnvironment(lensFunction, props, fprops) + case *scud.ContainerGoProps: + if fprops.DockerImageFunctionProps == nil { + fprops.DockerImageFunctionProps = &awslambda.DockerImageFunctionProps{} + } + defineLambdaEnvironment(lensContainer, props, fprops) + } +} + //------------------------------------------------------------------------------ // // AWS CDK Stack Construct @@ -123,8 +148,8 @@ func (broker *Broker) NewAuthorizerApiKey(props *AuthorizerApiKeyProps) awsapiga handler := scud.NewFunctionGo(broker.Construct, jsii.String("Authorizer"), &scud.FunctionGoProps{ - SourceCodePackage: "github.com/fogfish/swarm", - SourceCodeLambda: "broker/websocket/lambda/auth", + SourceCodeModule: "github.com/fogfish/swarm", + SourceCodeLambda: "broker/websocket/lambda/auth", FunctionProps: &awslambda.FunctionProps{ Environment: &map[string]*string{ "CONFIG_SWARM_WS_AUTHORIZER_ACCESS": jsii.String(props.Access), @@ -165,8 +190,8 @@ func (broker *Broker) NewAuthorizerJwt(props *AuthorizerJwtProps) awsapigatewayv handler := scud.NewFunctionGo(broker.Construct, jsii.String("Authorizer"), &scud.FunctionGoProps{ - SourceCodePackage: "github.com/fogfish/swarm", - SourceCodeLambda: "broker/websocket/lambda/auth", + SourceCodeModule: "github.com/fogfish/swarm", + SourceCodeLambda: "broker/websocket/lambda/auth", FunctionProps: &awslambda.FunctionProps{ Environment: &map[string]*string{ "CONFIG_SWARM_WS_AUTHORIZER_ISS": jsii.String(props.Issuer), @@ -215,8 +240,8 @@ func (broker *Broker) NewAuthorizerUniversal(props *AuthorizerUniversalProps) aw handler := scud.NewFunctionGo(broker.Construct, jsii.String("Authorizer"), &scud.FunctionGoProps{ - SourceCodePackage: "github.com/fogfish/swarm", - SourceCodeLambda: "broker/websocket/lambda/auth", + SourceCodeModule: "github.com/fogfish/swarm", + SourceCodeLambda: "broker/websocket/lambda/auth", FunctionProps: &awslambda.FunctionProps{ Environment: &map[string]*string{ "CONFIG_SWARM_WS_AUTHORIZER_ACCESS": jsii.String(props.AuthorizerApiKey.Access), @@ -258,8 +283,8 @@ func (broker *Broker) NewGateway(props *WebSocketApiProps) awsapigatewayv2.WebSo if props.WebSocketApiProps.ConnectRouteOptions == nil && broker.Authorizer != nil { connector := scud.NewFunctionGo(broker.Construct, jsii.String("Connector"), &scud.FunctionGoProps{ - SourceCodePackage: "github.com/fogfish/swarm", - SourceCodeLambda: "broker/websocket/lambda/connector", + SourceCodeModule: "github.com/fogfish/swarm", + SourceCodeLambda: "broker/websocket/lambda/connector", }, ) diff --git a/event.go b/event.go index 03617c9..7d03997 100644 --- a/event.go +++ b/event.go @@ -32,20 +32,28 @@ type EventKind[A any] pure.HKT[EventType, A] // changed together with using unique identifier. type Event[T any] struct { // - // Unique identity for event - // It is automatically defined by the library upon the transmission + // Unique identity for event. + // It is automatically defined by the library upon the transmission unless + // defined by sender. Preserving ID across sequence of messages allows + // building request/response semantic. ID string `json:"id,omitempty"` // // Canonical IRI that defines a type of action. - // It is automatically defined by the library upon the transmission + // It is automatically defined by the library upon the transmission unless + // defined by sender. Type curie.IRI `json:"type,omitempty"` // - // Direct performer of the event, a software service that emits action to the stream. - // It is automatically defined by the library upon the transmission + // Direct performer of the event, a software service that emits action to + // the stream. It is automatically defined by the library upon the transmission + // unless defined by sender. Agent curie.IRI `json:"agent,omitempty"` + // + // Indicates target performer of the event, a software service that is able to + Target curie.IRI `json:"target,omitempty"` + // // Indirect participants, a user who initiated an event. Participant curie.IRI `json:"participant,omitempty"` @@ -58,6 +66,11 @@ type Event[T any] struct { // // The object upon which the event is carried out. Object T `json:"object,omitempty"` + + // Status (Pending | Success | Failure) + // Deadline before after | nbf NotBefore + // Target + } func (Event[T]) HKT1(EventType) {} diff --git a/examples/eventbridge/serverless/main.go b/examples/eventbridge/serverless/main.go index 877c50d..df96c81 100644 --- a/examples/eventbridge/serverless/main.go +++ b/examples/eventbridge/serverless/main.go @@ -34,9 +34,9 @@ func main() { broker.NewSink( &eventbridge.SinkProps{ Source: []string{"swarm-example-eventbridge"}, - Lambda: &scud.FunctionGoProps{ - SourceCodePackage: "github.com/fogfish/swarm", - SourceCodeLambda: "examples/eventbridge/dequeue", + Function: &scud.FunctionGoProps{ + SourceCodeModule: "github.com/fogfish/swarm", + SourceCodeLambda: "examples/eventbridge/dequeue", }, }, ) diff --git a/examples/eventddb/serverless/main.go b/examples/eventddb/serverless/main.go index 8467fe0..a12dea8 100644 --- a/examples/eventddb/serverless/main.go +++ b/examples/eventddb/serverless/main.go @@ -33,9 +33,9 @@ func main() { broker.NewSink( &eventddb.SinkProps{ - Lambda: &scud.FunctionGoProps{ - SourceCodePackage: "github.com/fogfish/swarm", - SourceCodeLambda: "examples/eventddb/dequeue", + Function: &scud.FunctionGoProps{ + SourceCodeModule: "github.com/fogfish/swarm", + SourceCodeLambda: "examples/eventddb/dequeue", }, }, ) diff --git a/examples/events3/serverless/main.go b/examples/events3/serverless/main.go index cf65797..4f3ffae 100644 --- a/examples/events3/serverless/main.go +++ b/examples/events3/serverless/main.go @@ -40,9 +40,9 @@ func main() { broker.NewSink( &events3.SinkProps{ // Note: the default property of EventSource captures OBJECT_CREATED and OBJECT_REMOVED events - Lambda: &scud.FunctionGoProps{ - SourceCodePackage: "github.com/fogfish/swarm", - SourceCodeLambda: "examples/events3/dequeue", + Function: &scud.FunctionGoProps{ + SourceCodeModule: "github.com/fogfish/swarm", + SourceCodeLambda: "examples/events3/dequeue", }, }, ) diff --git a/examples/eventsqs/serverless/main.go b/examples/eventsqs/serverless/main.go index 1802d21..81d77ac 100644 --- a/examples/eventsqs/serverless/main.go +++ b/examples/eventsqs/serverless/main.go @@ -33,9 +33,9 @@ func main() { broker.NewSink( &eventsqs.SinkProps{ - Lambda: &scud.FunctionGoProps{ - SourceCodePackage: "github.com/fogfish/swarm", - SourceCodeLambda: "examples/eventsqs/dequeue", + Function: &scud.FunctionGoProps{ + SourceCodeModule: "github.com/fogfish/swarm", + SourceCodeLambda: "examples/eventsqs/dequeue", }, }, ) diff --git a/examples/websocket/serverless/main.go b/examples/websocket/serverless/main.go index 93c1a3a..02455ab 100644 --- a/examples/websocket/serverless/main.go +++ b/examples/websocket/serverless/main.go @@ -47,9 +47,9 @@ func main() { broker.NewSink( &websocket.SinkProps{ Route: "User", - Lambda: &scud.FunctionGoProps{ - SourceCodePackage: "github.com/fogfish/swarm", - SourceCodeLambda: "examples/websocket/dequeue", + Function: &scud.FunctionGoProps{ + SourceCodeModule: "github.com/fogfish/swarm", + SourceCodeLambda: "examples/websocket/dequeue", }, }, ) diff --git a/go.mod b/go.mod index de436d9..ba836cb 100644 --- a/go.mod +++ b/go.mod @@ -1,56 +1,57 @@ module github.com/fogfish/swarm -go 1.21 +go 1.22 require ( - github.com/auth0/go-jwt-middleware/v2 v2.2.1 - github.com/aws/aws-cdk-go/awscdk/v2 v2.138.0 + github.com/auth0/go-jwt-middleware/v2 v2.2.2 + github.com/aws/aws-cdk-go/awscdk/v2 v2.158.0 github.com/aws/aws-lambda-go v1.47.0 - github.com/aws/aws-sdk-go-v2 v1.26.1 - github.com/aws/aws-sdk-go-v2/config v1.27.11 - github.com/aws/aws-sdk-go-v2/service/apigatewaymanagementapi v1.19.4 - github.com/aws/aws-sdk-go-v2/service/eventbridge v1.30.4 - github.com/aws/aws-sdk-go-v2/service/sqs v1.31.4 + github.com/aws/aws-sdk-go-v2 v1.30.5 + github.com/aws/aws-sdk-go-v2/config v1.27.33 + github.com/aws/aws-sdk-go-v2/service/apigatewaymanagementapi v1.21.6 + github.com/aws/aws-sdk-go-v2/service/eventbridge v1.33.7 + github.com/aws/aws-sdk-go-v2/service/sqs v1.34.8 github.com/aws/constructs-go/constructs/v10 v10.3.0 - github.com/aws/jsii-runtime-go v1.97.0 + github.com/aws/jsii-runtime-go v1.103.1 github.com/fogfish/curie v1.8.2 github.com/fogfish/faults v0.2.0 - github.com/fogfish/golem/optics v0.11.2 + github.com/fogfish/golem/optics v0.13.0 github.com/fogfish/golem/pure v0.10.1 github.com/fogfish/guid/v2 v2.0.4 github.com/fogfish/it v1.0.0 - github.com/fogfish/it/v2 v2.0.1 - github.com/fogfish/logger/v3 v3.1.0 - github.com/fogfish/scud v0.7.3 + github.com/fogfish/it/v2 v2.0.2 + github.com/fogfish/logger/v3 v3.1.1 + github.com/fogfish/scud v0.10.1 ) require ( github.com/Masterminds/semver/v3 v3.2.1 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.11 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 // indirect - github.com/aws/smithy-go v1.20.2 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.32 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.17 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.22.7 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.7 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.30.7 // indirect + github.com/aws/smithy-go v1.20.4 // indirect github.com/cdklabs/awscdk-asset-awscli-go/awscliv1/v2 v2.2.202 // indirect github.com/cdklabs/awscdk-asset-kubectl-go/kubectlv20/v2 v2.1.2 // indirect - github.com/cdklabs/awscdk-asset-node-proxy-agent-go/nodeproxyagentv6/v2 v2.0.3 // indirect - github.com/fatih/color v1.16.0 // indirect - github.com/fogfish/golem/hseq v1.1.2 // indirect + github.com/cdklabs/awscdk-asset-node-proxy-agent-go/nodeproxyagentv6/v2 v2.1.0 // indirect + github.com/cdklabs/cloud-assembly-schema-go/awscdkcloudassemblyschema/v36 v36.0.24 // indirect + github.com/fatih/color v1.17.0 // indirect + github.com/fogfish/golem/hseq v1.2.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/yuin/goldmark v1.5.3 // indirect golang.org/x/crypto v0.17.0 // indirect golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 // indirect - golang.org/x/mod v0.17.0 // indirect - golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.19.0 // indirect - golang.org/x/tools v0.20.0 // indirect - gopkg.in/go-jose/go-jose.v2 v2.6.2 // indirect + golang.org/x/mod v0.20.0 // indirect + golang.org/x/sync v0.8.0 // indirect + golang.org/x/sys v0.23.0 // indirect + golang.org/x/tools v0.24.0 // indirect + gopkg.in/go-jose/go-jose.v2 v2.6.3 // indirect ) diff --git a/go.sum b/go.sum index b241fef..bb61af1 100644 --- a/go.sum +++ b/go.sum @@ -1,79 +1,81 @@ github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= -github.com/auth0/go-jwt-middleware/v2 v2.2.1 h1:pqxEIwlCztD0T9ZygGfOrw4NK/F9iotnCnPJVADKbkE= -github.com/auth0/go-jwt-middleware/v2 v2.2.1/go.mod h1:CSi0tuu0QrALbWdiQZwqFL8SbBhj4e2MJzkvNfjY0Us= -github.com/aws/aws-cdk-go/awscdk/v2 v2.138.0 h1:DjLBg6QL1c9c9i7IslmXOs43SdnMXd4E2LnmLIrnoeM= -github.com/aws/aws-cdk-go/awscdk/v2 v2.138.0/go.mod h1:5v16UNDrkqbV9CJRKt8a1aBRnldnpHJNBi8H9oIS7ig= +github.com/auth0/go-jwt-middleware/v2 v2.2.2 h1:vrvkFZf72r3Qbt45KLjBG3/6Xq2r3NTixWKu2e8de9I= +github.com/auth0/go-jwt-middleware/v2 v2.2.2/go.mod h1:4vwxpVtu/Kl4c4HskT+gFLjq0dra8F1joxzamrje6J0= +github.com/aws/aws-cdk-go/awscdk/v2 v2.158.0 h1:tr1kWDuewQgenaeC6lTSHeelRe7ebp8jx7ozWtHCtao= +github.com/aws/aws-cdk-go/awscdk/v2 v2.158.0/go.mod h1:DKU6PSvsf02PiyVR5JB4uIvcUElwXIgFKGiAehqIORY= github.com/aws/aws-lambda-go v1.47.0 h1:0H8s0vumYx/YKs4sE7YM0ktwL2eWse+kfopsRI1sXVI= github.com/aws/aws-lambda-go v1.47.0/go.mod h1:dpMpZgvWx5vuQJfBt0zqBha60q7Dd7RfgJv23DymV8A= -github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA= -github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= -github.com/aws/aws-sdk-go-v2/config v1.27.11 h1:f47rANd2LQEYHda2ddSCKYId18/8BhSRM4BULGmfgNA= -github.com/aws/aws-sdk-go-v2/config v1.27.11/go.mod h1:SMsV78RIOYdve1vf36z8LmnszlRWkwMQtomCAI0/mIE= -github.com/aws/aws-sdk-go-v2/credentials v1.17.11 h1:YuIB1dJNf1Re822rriUOTxopaHHvIq0l/pX3fwO+Tzs= -github.com/aws/aws-sdk-go-v2/credentials v1.17.11/go.mod h1:AQtFPsDH9bI2O+71anW6EKL+NcD7LG3dpKGMV4SShgo= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5/go.mod h1:FSaRudD0dXiMPK2UjknVwwTYyZMRsHv3TtkabsZih5I= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5/go.mod h1:jU1li6RFryMz+so64PpKtudI+QzbKoIEivqdf6LNpOc= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0= -github.com/aws/aws-sdk-go-v2/service/apigatewaymanagementapi v1.19.4 h1:Z2rMhVjjmnL5tpoeS4g82ndLatejrZZuGK6xqvu69Co= -github.com/aws/aws-sdk-go-v2/service/apigatewaymanagementapi v1.19.4/go.mod h1:P0TfIcrZzEHEClfOxy6ZrwS+JB0nAVqznuZQsro4bAE= -github.com/aws/aws-sdk-go-v2/service/eventbridge v1.30.4 h1:Vz4ilZcVXCR9yatX5yfMrkBldYggtkih3h7woHvzu5Q= -github.com/aws/aws-sdk-go-v2/service/eventbridge v1.30.4/go.mod h1:aIINXlt2xXhMeRsyCsLDUDohI8AdDm92gY9nIB6pv0M= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk= -github.com/aws/aws-sdk-go-v2/service/sqs v1.31.4 h1:mE2ysZMEeQ3ulHWs4mmc4fZEhOfeY1o6QXAfDqjbSgw= -github.com/aws/aws-sdk-go-v2/service/sqs v1.31.4/go.mod h1:lCN2yKnj+Sp9F6UzpoPPTir+tSaC9Jwf6LcmTqnXFZw= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 h1:vN8hEbpRnL7+Hopy9dzmRle1xmDc7o8tmY0klsr175w= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.5/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 h1:Jux+gDDyi1Lruk+KHF91tK2KCuY61kzoCpvtvJJBtOE= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4/go.mod h1:mUYPBhaF2lGiukDEjJX2BLRRKTmoUSitGDUgM4tRxak= -github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 h1:cwIxeBttqPN3qkaAjcEcsh8NYr8n2HZPkcKgPAi1phU= -github.com/aws/aws-sdk-go-v2/service/sts v1.28.6/go.mod h1:FZf1/nKNEkHdGGJP/cI2MoIMquumuRK6ol3QQJNDxmw= +github.com/aws/aws-sdk-go-v2 v1.30.5 h1:mWSRTwQAb0aLE17dSzztCVJWI9+cRMgqebndjwDyK0g= +github.com/aws/aws-sdk-go-v2 v1.30.5/go.mod h1:CT+ZPWXbYrci8chcARI3OmI/qgd+f6WtuLOoaIA8PR0= +github.com/aws/aws-sdk-go-v2/config v1.27.33 h1:Nof9o/MsmH4oa0s2q9a0k7tMz5x/Yj5k06lDODWz3BU= +github.com/aws/aws-sdk-go-v2/config v1.27.33/go.mod h1:kEqdYzRb8dd8Sy2pOdEbExTTF5v7ozEXX0McgPE7xks= +github.com/aws/aws-sdk-go-v2/credentials v1.17.32 h1:7Cxhp/BnT2RcGy4VisJ9miUPecY+lyE9I8JvcZofn9I= +github.com/aws/aws-sdk-go-v2/credentials v1.17.32/go.mod h1:P5/QMF3/DCHbXGEGkdbilXHsyTBX5D3HSwcrSc9p20I= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13 h1:pfQ2sqNpMVK6xz2RbqLEL0GH87JOwSxPV2rzm8Zsb74= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13/go.mod h1:NG7RXPUlqfsCLLFfi0+IpKN4sCB9D9fw/qTaSB+xRoU= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17 h1:pI7Bzt0BJtYA0N/JEC6B8fJ4RBrEMi1LBrkMdFYNSnQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17/go.mod h1:Dh5zzJYMtxfIjYW+/evjQ8uj2OyR/ve2KROHGHlSFqE= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17 h1:Mqr/V5gvrhA2gvgnF42Zh5iMiQNcOYthFYwCyrnuWlc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17/go.mod h1:aLJpZlCmjE+V+KtN1q1uyZkfnUWpQGpbsn89XPKyzfU= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.17 h1:Roo69qTpfu8OlJ2Tb7pAYVuF0CpuUMB0IYWwYP/4DZM= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.17/go.mod h1:NcWPxQzGM1USQggaTVwz6VpqMZPX1CvDJLDh6jnOCa4= +github.com/aws/aws-sdk-go-v2/service/apigatewaymanagementapi v1.21.6 h1:Gm1/SrnnL6aiZgQFWHJvWNCyAkvnL9enApzoKNAmaEI= +github.com/aws/aws-sdk-go-v2/service/apigatewaymanagementapi v1.21.6/go.mod h1:YPVHhH3cjN3icbtCmrvlLGDgGt4l0N0Rj1bIVRefdRE= +github.com/aws/aws-sdk-go-v2/service/eventbridge v1.33.7 h1:q+xiPu+Dk5MFC20ZjdGGhbihD39Xsih98epvVjnOjyE= +github.com/aws/aws-sdk-go-v2/service/eventbridge v1.33.7/go.mod h1:iQCsmx9LyBMyMEkLCBVqnIAz+rfo6/ss3oLcYn26+no= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 h1:KypMCbLPPHEmf9DgMGw51jMj77VfGPAN2Kv4cfhlfgI= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4/go.mod h1:Vz1JQXliGcQktFTN/LN6uGppAIRoLBR2bMvIMP0gOjc= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19 h1:rfprUlsdzgl7ZL2KlXiUAoJnI/VxfHCvDFr2QDFj6u4= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19/go.mod h1:SCWkEdRq8/7EK60NcvvQ6NXKuTcchAD4ROAsC37VEZE= +github.com/aws/aws-sdk-go-v2/service/sqs v1.34.8 h1:t3TzmBX0lpDNtLhl7vY97VMvLtxp/KTvjjj2X3s6SUQ= +github.com/aws/aws-sdk-go-v2/service/sqs v1.34.8/go.mod h1:zn0Oy7oNni7XIGoAd6bHBTVtX06OrnpvT1kww8jxyi8= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.7 h1:pIaGg+08llrP7Q5aiz9ICWbY8cqhTkyy+0SHvfzQpTc= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.7/go.mod h1:eEygMHnTKH/3kNp9Jr1n3PdejuSNcgwLe1dWgQtO0VQ= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.7 h1:/Cfdu0XV3mONYKaOt1Gr0k1KvQzkzPyiKUdlWJqy+J4= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.7/go.mod h1:bCbAxKDqNvkHxRaIMnyVPXPo+OaPRwvmgzMxbz1VKSA= +github.com/aws/aws-sdk-go-v2/service/sts v1.30.7 h1:NKTa1eqZYw8tiHSRGpP0VtTdub/8KNk8sDkNPFaOKDE= +github.com/aws/aws-sdk-go-v2/service/sts v1.30.7/go.mod h1:NXi1dIAGteSaRLqYgarlhP/Ij0cFT+qmCwiJqWh/U5o= github.com/aws/constructs-go/constructs/v10 v10.3.0 h1:LsjBIMiaDX/vqrXWhzTquBJ9pPdi02/H+z1DCwg0PEM= github.com/aws/constructs-go/constructs/v10 v10.3.0/go.mod h1:GgzwIwoRJ2UYsr3SU+JhAl+gq5j39bEMYf8ev3J+s9s= -github.com/aws/jsii-runtime-go v1.97.0 h1:z3g6aLUQUyjZfHFI4z6Q47zvwUjyGYPamOWcVwGmU9w= -github.com/aws/jsii-runtime-go v1.97.0/go.mod h1:30XYoqvHizeedL8KNra3DBZ9w+NtJDQpbU4o1bN9lVc= -github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q= -github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= +github.com/aws/jsii-runtime-go v1.103.1 h1:7CwjdpiSrylOeuYP1LzHu2AJKV2K65P89nuOC/8Do7g= +github.com/aws/jsii-runtime-go v1.103.1/go.mod h1:PPR8BRc8cv9lDs5gDPe2SGG4+crOahE4SRrNHR1SvhA= +github.com/aws/smithy-go v1.20.4 h1:2HK1zBdPgRbjFOHlfeQZfpC4r72MOb9bZkiFwggKO+4= +github.com/aws/smithy-go v1.20.4/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/cdklabs/awscdk-asset-awscli-go/awscliv1/v2 v2.2.202 h1:VixXB9DnHN8oP7pXipq8GVFPjWCOdeNxIaS/ZyUwTkI= github.com/cdklabs/awscdk-asset-awscli-go/awscliv1/v2 v2.2.202/go.mod h1:iPUti/SWjA3XAS3CpnLciFjS8TN9Y+8mdZgDfSgcyus= github.com/cdklabs/awscdk-asset-kubectl-go/kubectlv20/v2 v2.1.2 h1:k+WD+6cERd59Mao84v0QtRrcdZuuSMfzlEmuIypKnVs= github.com/cdklabs/awscdk-asset-kubectl-go/kubectlv20/v2 v2.1.2/go.mod h1:CvFHBo0qcg8LUkJqIxQtP1rD/sNGv9bX3L2vHT2FUAo= -github.com/cdklabs/awscdk-asset-node-proxy-agent-go/nodeproxyagentv6/v2 v2.0.3 h1:8NLWOIVaxAtpUXv5reojlAeDP7R8yswm9mDONf7F/3o= -github.com/cdklabs/awscdk-asset-node-proxy-agent-go/nodeproxyagentv6/v2 v2.0.3/go.mod h1:ZjFqfhYpCLzh4z7ChcHCrkXfqCuEiRlNApDfJd6plts= +github.com/cdklabs/awscdk-asset-node-proxy-agent-go/nodeproxyagentv6/v2 v2.1.0 h1:kElXjprC8wkpJu58vp+WFH6z0AJw4zitg5iSKJPKe3c= +github.com/cdklabs/awscdk-asset-node-proxy-agent-go/nodeproxyagentv6/v2 v2.1.0/go.mod h1:JY4UnvNa1YDGQ4H5wohXTHl6YVY3uCDUWl4JYUrQfb8= +github.com/cdklabs/cloud-assembly-schema-go/awscdkcloudassemblyschema/v36 v36.0.24 h1:LUbzbmLODkoCLiVaQ5Tju+svzqD5KOZ4r0igoNRyrwE= +github.com/cdklabs/cloud-assembly-schema-go/awscdkcloudassemblyschema/v36 v36.0.24/go.mod h1:Y4IW0WqYYpn4YCOuU029wda5fPfsCEPsRGwZ7B4c5H0= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= -github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= +github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= github.com/fogfish/curie v1.8.2 h1:+4CezyjZ5uszSXUZAV27gfKwv58w3lKTH0JbQwh3S9A= github.com/fogfish/curie v1.8.2/go.mod h1:jPv7pg4hHd8Ug/USG29ZA2bAwlRfh/iinY90/30ATGg= github.com/fogfish/faults v0.2.0 h1:3KHvZN3cgv2omAGw0MCVH/AbrqxfNag+TFGpgUp6m1w= github.com/fogfish/faults v0.2.0/go.mod h1:PtvzLt9TP4IF/hRkwRp4dZub42oaMrLbxdS6vmSCJOs= -github.com/fogfish/golem/hseq v1.1.2 h1:jgmMSo+d3KUAQr87U6coQtrTHNL4RTd0/qTocn4ReAQ= -github.com/fogfish/golem/hseq v1.1.2/go.mod h1:N5y7RLLJyL8iNxFOcD6mkciIBx5TJ9mT1fRszr+ByhQ= -github.com/fogfish/golem/optics v0.11.2 h1:RzHClHoIZsO/HZqs1E6axeNu8e/mn+Q2aSGGVkb9tCM= -github.com/fogfish/golem/optics v0.11.2/go.mod h1:ICzDm+HkWu732lHaHYJTSSEKz9rwyiLKJR/C4QWF0WY= +github.com/fogfish/golem/hseq v1.2.0 h1:B6yrzOHQNoTqSlhLb+AvK7dhEAELjHThrCQTF/uqwbM= +github.com/fogfish/golem/hseq v1.2.0/go.mod h1:17XORt8nNKl6KOhF43MHSmjK8NksbkBsohAoJGiinUs= +github.com/fogfish/golem/optics v0.13.0 h1:U3htppjVTMbICQIzPTTe151+WziSGEppNVmkanKa440= +github.com/fogfish/golem/optics v0.13.0/go.mod h1:U1y90OVcXF/A61dIP3abQ0x2GweTmzVHPC15pv0pcM0= github.com/fogfish/golem/pure v0.10.1 h1:0+cnvdaV9zF+0NN8SZMgR5bgFM6yNfBHU4rynYSDfmE= github.com/fogfish/golem/pure v0.10.1/go.mod h1:kLPfgu5uKP0CrwVap7jejisRwV7vo1q8Eyqnc/Z0qyw= github.com/fogfish/guid/v2 v2.0.4 h1:EZiPlM4UAghqf7DU5/nLEF+iRH7ODe0AiFuYOMRvITQ= github.com/fogfish/guid/v2 v2.0.4/go.mod h1:KkZ5T4EE3BqWQJFZBPLSHV/tBe23Xq4KvuPfwtNtepU= github.com/fogfish/it v1.0.0 h1:kiwFHZcrkRLUydZoIoY0gTuMfj38trwvLo0YRyIkeG8= github.com/fogfish/it v1.0.0/go.mod h1:NQJG4Ygvek85y7zGj0Gny8+6ygAnHjfBORhI7TdQhp4= -github.com/fogfish/it/v2 v2.0.1 h1:vu3kV2xzYDPHoMHMABxXeu5CoMcTfRc4gkWkzOUkRJY= -github.com/fogfish/it/v2 v2.0.1/go.mod h1:h5FdKaEQT4sUEykiVkB8VV4jX27XabFVeWhoDZaRZtE= -github.com/fogfish/logger/v3 v3.1.0 h1:Kl3atzqBxfOkUDdFJqG8wFpzvzfhm+DHwSBoFtA6xPI= -github.com/fogfish/logger/v3 v3.1.0/go.mod h1:hsucoJz/3OX90UdYrXykcKvjjteBnPcYSTr4Rie0ZqU= -github.com/fogfish/scud v0.7.3 h1:IHHXFtR2IPZ67TlBBkL4BmNZ8MSn3fS3+wLrxV34JUU= -github.com/fogfish/scud v0.7.3/go.mod h1:s64mu40iA4qH7GYsvDhuddQP7bz21+kQtWT20rZpl8E= +github.com/fogfish/it/v2 v2.0.2 h1:UR6yVemf8zD3WVs6Bq0zE6LJwapZ8urv9zvU5VB5E6o= +github.com/fogfish/it/v2 v2.0.2/go.mod h1:HHwufnTaZTvlRVnSesPl49HzzlMrQtweKbf+8Co/ll4= +github.com/fogfish/logger/v3 v3.1.1 h1:awmTNpBWRvSj086H3RWIUnc+FSu9qXHJgBa49wYpNCE= +github.com/fogfish/logger/v3 v3.1.1/go.mod h1:hsucoJz/3OX90UdYrXykcKvjjteBnPcYSTr4Rie0ZqU= +github.com/fogfish/scud v0.10.1 h1:eJI/1zQamihBTTwDhgn2VTXlG+74B1qVAOnGGDv4u7E= +github.com/fogfish/scud v0.10.1/go.mod h1:IVtHIfQMsb9lPKFeCI/OGcT2ssmd6onOZdpXgj/ORgs= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= @@ -94,25 +96,25 @@ golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= -golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= +golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= +golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY= -golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg= +golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= +golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/go-jose/go-jose.v2 v2.6.2 h1:Rl5+9rA0kG3vsO1qhncMPRT5eHICihAMQYJkD7u/i4M= -gopkg.in/go-jose/go-jose.v2 v2.6.2/go.mod h1:zzZDPkNNw/c9IE7Z9jr11mBZQhKQTMzoEEIoEdZlFBI= +gopkg.in/go-jose/go-jose.v2 v2.6.3 h1:nt80fvSDlhKWQgSWyHyy5CfmlQr+asih51R8PTWNKKs= +gopkg.in/go-jose/go-jose.v2 v2.6.3/go.mod h1:zzZDPkNNw/c9IE7Z9jr11mBZQhKQTMzoEEIoEdZlFBI= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=