diff --git a/.release-please-manifest.premain.json b/.release-please-manifest.premain.json index de8652c1..2c96d8f4 100644 --- a/.release-please-manifest.premain.json +++ b/.release-please-manifest.premain.json @@ -1,3 +1,3 @@ { - ".": "0.18.2-rc" + ".": "0.19.0-rc" } diff --git a/cdk-go/apptheorycdk/AppTheoryEventBridgeBus.go b/cdk-go/apptheorycdk/AppTheoryEventBridgeBus.go new file mode 100644 index 00000000..7d575212 --- /dev/null +++ b/cdk-go/apptheorycdk/AppTheoryEventBridgeBus.go @@ -0,0 +1,176 @@ +package apptheorycdk + +import ( + _jsii_ "github.com/aws/jsii-runtime-go/runtime" + _init_ "github.com/theory-cloud/apptheory/cdk-go/apptheorycdk/jsii" + + "github.com/aws/aws-cdk-go/awscdk/v2/awsevents" + "github.com/aws/constructs-go/constructs/v10" + "github.com/theory-cloud/apptheory/cdk-go/apptheorycdk/internal" +) + +// Opinionated custom EventBridge bus with explicit cross-account publish allowlist. +type AppTheoryEventBridgeBus interface { + constructs.Construct + EventBus() awsevents.EventBus + // The tree node. + Node() constructs.Node + Policies() *[]awsevents.CfnEventBusPolicy + // Adds a single account ID to the cross-account publish allowlist. + AllowAccount(accountId *string) awsevents.CfnEventBusPolicy + // Returns a string representation of this construct. + ToString() *string + // Applies one or more mixins to this construct. + // + // Mixins are applied in order. The list of constructs is captured at the + // start of the call, so constructs added by a mixin will not be visited. + // Use multiple `with()` calls if subsequent mixins should apply to added + // constructs. + // + // Returns: This construct for chaining. + With(mixins ...constructs.IMixin) constructs.IConstruct +} + +// The jsii proxy struct for AppTheoryEventBridgeBus +type jsiiProxy_AppTheoryEventBridgeBus struct { + internal.Type__constructsConstruct +} + +func (j *jsiiProxy_AppTheoryEventBridgeBus) EventBus() awsevents.EventBus { + var returns awsevents.EventBus + _jsii_.Get( + j, + "eventBus", + &returns, + ) + return returns +} + +func (j *jsiiProxy_AppTheoryEventBridgeBus) Node() constructs.Node { + var returns constructs.Node + _jsii_.Get( + j, + "node", + &returns, + ) + return returns +} + +func (j *jsiiProxy_AppTheoryEventBridgeBus) Policies() *[]awsevents.CfnEventBusPolicy { + var returns *[]awsevents.CfnEventBusPolicy + _jsii_.Get( + j, + "policies", + &returns, + ) + return returns +} + +func NewAppTheoryEventBridgeBus(scope constructs.Construct, id *string, props *AppTheoryEventBridgeBusProps) AppTheoryEventBridgeBus { + _init_.Initialize() + + if err := validateNewAppTheoryEventBridgeBusParameters(scope, id, props); err != nil { + panic(err) + } + j := jsiiProxy_AppTheoryEventBridgeBus{} + + _jsii_.Create( + "@theory-cloud/apptheory-cdk.AppTheoryEventBridgeBus", + []interface{}{scope, id, props}, + &j, + ) + + return &j +} + +func NewAppTheoryEventBridgeBus_Override(a AppTheoryEventBridgeBus, scope constructs.Construct, id *string, props *AppTheoryEventBridgeBusProps) { + _init_.Initialize() + + _jsii_.Create( + "@theory-cloud/apptheory-cdk.AppTheoryEventBridgeBus", + []interface{}{scope, id, props}, + a, + ) +} + +// Checks if `x` is a construct. +// +// Use this method instead of `instanceof` to properly detect `Construct` +// instances, even when the construct library is symlinked. +// +// Explanation: in JavaScript, multiple copies of the `constructs` library on +// disk are seen as independent, completely different libraries. As a +// consequence, the class `Construct` in each copy of the `constructs` library +// is seen as a different class, and an instance of one class will not test as +// `instanceof` the other class. `npm install` will not create installations +// like this, but users may manually symlink construct libraries together or +// use a monorepo tool: in those cases, multiple copies of the `constructs` +// library can be accidentally installed, and `instanceof` will behave +// unpredictably. It is safest to avoid using `instanceof`, and using +// this type-testing method instead. +// +// Returns: true if `x` is an object created from a class which extends `Construct`. +func AppTheoryEventBridgeBus_IsConstruct(x interface{}) *bool { + _init_.Initialize() + + if err := validateAppTheoryEventBridgeBus_IsConstructParameters(x); err != nil { + panic(err) + } + var returns *bool + + _jsii_.StaticInvoke( + "@theory-cloud/apptheory-cdk.AppTheoryEventBridgeBus", + "isConstruct", + []interface{}{x}, + &returns, + ) + + return returns +} + +func (a *jsiiProxy_AppTheoryEventBridgeBus) AllowAccount(accountId *string) awsevents.CfnEventBusPolicy { + if err := a.validateAllowAccountParameters(accountId); err != nil { + panic(err) + } + var returns awsevents.CfnEventBusPolicy + + _jsii_.Invoke( + a, + "allowAccount", + []interface{}{accountId}, + &returns, + ) + + return returns +} + +func (a *jsiiProxy_AppTheoryEventBridgeBus) ToString() *string { + var returns *string + + _jsii_.Invoke( + a, + "toString", + nil, // no parameters + &returns, + ) + + return returns +} + +func (a *jsiiProxy_AppTheoryEventBridgeBus) With(mixins ...constructs.IMixin) constructs.IConstruct { + args := []interface{}{} + for _, a := range mixins { + args = append(args, a) + } + + var returns constructs.IConstruct + + _jsii_.Invoke( + a, + "with", + args, + &returns, + ) + + return returns +} diff --git a/cdk-go/apptheorycdk/AppTheoryEventBridgeBusProps.go b/cdk-go/apptheorycdk/AppTheoryEventBridgeBusProps.go new file mode 100644 index 00000000..63ad113f --- /dev/null +++ b/cdk-go/apptheorycdk/AppTheoryEventBridgeBusProps.go @@ -0,0 +1,18 @@ +package apptheorycdk + +type AppTheoryEventBridgeBusProps struct { + // Explicit cross-account allowlist for `events:PutEvents`. + // + // Partners can be onboarded one account at a time by adding IDs here. + // Default: []. + // + AllowedAccountIds *[]*string `field:"optional" json:"allowedAccountIds" yaml:"allowedAccountIds"` + // Optional event bus description. + // Default: - no description. + // + Description *string `field:"optional" json:"description" yaml:"description"` + // Optional custom event bus name. + // Default: - CloudFormation-generated name. + // + EventBusName *string `field:"optional" json:"eventBusName" yaml:"eventBusName"` +} diff --git a/cdk-go/apptheorycdk/AppTheoryEventBridgeBus__checks.go b/cdk-go/apptheorycdk/AppTheoryEventBridgeBus__checks.go new file mode 100644 index 00000000..3c5fc4bd --- /dev/null +++ b/cdk-go/apptheorycdk/AppTheoryEventBridgeBus__checks.go @@ -0,0 +1,43 @@ +//go:build !no_runtime_type_checking + +package apptheorycdk + +import ( + "fmt" + + _jsii_ "github.com/aws/jsii-runtime-go/runtime" + + "github.com/aws/constructs-go/constructs/v10" +) + +func (a *jsiiProxy_AppTheoryEventBridgeBus) validateAllowAccountParameters(accountId *string) error { + if accountId == nil { + return fmt.Errorf("parameter accountId is required, but nil was provided") + } + + return nil +} + +func validateAppTheoryEventBridgeBus_IsConstructParameters(x interface{}) error { + if x == nil { + return fmt.Errorf("parameter x is required, but nil was provided") + } + + return nil +} + +func validateNewAppTheoryEventBridgeBusParameters(scope constructs.Construct, id *string, props *AppTheoryEventBridgeBusProps) error { + if scope == nil { + return fmt.Errorf("parameter scope is required, but nil was provided") + } + + if id == nil { + return fmt.Errorf("parameter id is required, but nil was provided") + } + + if err := _jsii_.ValidateStruct(props, func() string { return "parameter props" }); err != nil { + return err + } + + return nil +} diff --git a/cdk-go/apptheorycdk/AppTheoryEventBridgeBus__no_checks.go b/cdk-go/apptheorycdk/AppTheoryEventBridgeBus__no_checks.go new file mode 100644 index 00000000..1dce9dc6 --- /dev/null +++ b/cdk-go/apptheorycdk/AppTheoryEventBridgeBus__no_checks.go @@ -0,0 +1,17 @@ +//go:build no_runtime_type_checking + +package apptheorycdk + +// Building without runtime type checking enabled, so all the below just return nil + +func (a *jsiiProxy_AppTheoryEventBridgeBus) validateAllowAccountParameters(accountId *string) error { + return nil +} + +func validateAppTheoryEventBridgeBus_IsConstructParameters(x interface{}) error { + return nil +} + +func validateNewAppTheoryEventBridgeBusParameters(scope constructs.Construct, id *string, props *AppTheoryEventBridgeBusProps) error { + return nil +} diff --git a/cdk-go/apptheorycdk/AppTheoryEventBusTable.go b/cdk-go/apptheorycdk/AppTheoryEventBusTable.go index bf11e603..17429318 100644 --- a/cdk-go/apptheorycdk/AppTheoryEventBusTable.go +++ b/cdk-go/apptheorycdk/AppTheoryEventBusTable.go @@ -5,6 +5,7 @@ import ( _init_ "github.com/theory-cloud/apptheory/cdk-go/apptheorycdk/jsii" "github.com/aws/aws-cdk-go/awscdk/v2/awsdynamodb" + "github.com/aws/aws-cdk-go/awscdk/v2/awslambda" "github.com/aws/constructs-go/constructs/v10" "github.com/theory-cloud/apptheory/cdk-go/apptheorycdk/internal" ) @@ -14,6 +15,8 @@ type AppTheoryEventBusTable interface { // The tree node. Node() constructs.Node Table() awsdynamodb.Table + // Binds the table to a Lambda function for EventBus publish/query/replay flows. + Bind(handler awslambda.IFunction, options *AppTheoryEventBusTableBindingOptions) // Returns a string representation of this construct. ToString() *string // Applies one or more mixins to this construct. @@ -114,6 +117,17 @@ func AppTheoryEventBusTable_IsConstruct(x interface{}) *bool { return returns } +func (a *jsiiProxy_AppTheoryEventBusTable) Bind(handler awslambda.IFunction, options *AppTheoryEventBusTableBindingOptions) { + if err := a.validateBindParameters(handler, options); err != nil { + panic(err) + } + _jsii_.InvokeVoid( + a, + "bind", + []interface{}{handler, options}, + ) +} + func (a *jsiiProxy_AppTheoryEventBusTable) ToString() *string { var returns *string diff --git a/cdk-go/apptheorycdk/AppTheoryEventBusTableBindingOptions.go b/cdk-go/apptheorycdk/AppTheoryEventBusTableBindingOptions.go new file mode 100644 index 00000000..80025579 --- /dev/null +++ b/cdk-go/apptheorycdk/AppTheoryEventBusTableBindingOptions.go @@ -0,0 +1,16 @@ +package apptheorycdk + +type AppTheoryEventBusTableBindingOptions struct { + // Environment variable name used for the table name binding. + // + // AppTheory runtime code reads `APPTHEORY_EVENTBUS_TABLE_NAME` by default. + // Default: APPTHEORY_EVENTBUS_TABLE_NAME. + // + EnvVarName *string `field:"optional" json:"envVarName" yaml:"envVarName"` + // Grant read-only access for replay/query consumers. + // + // When false, the handler receives read/write access for publish + replay flows. + // Default: false. + // + ReadOnly *bool `field:"optional" json:"readOnly" yaml:"readOnly"` +} diff --git a/cdk-go/apptheorycdk/AppTheoryEventBusTable__checks.go b/cdk-go/apptheorycdk/AppTheoryEventBusTable__checks.go index 1e3760b7..01c5426b 100644 --- a/cdk-go/apptheorycdk/AppTheoryEventBusTable__checks.go +++ b/cdk-go/apptheorycdk/AppTheoryEventBusTable__checks.go @@ -7,9 +7,22 @@ import ( _jsii_ "github.com/aws/jsii-runtime-go/runtime" + "github.com/aws/aws-cdk-go/awscdk/v2/awslambda" "github.com/aws/constructs-go/constructs/v10" ) +func (a *jsiiProxy_AppTheoryEventBusTable) validateBindParameters(handler awslambda.IFunction, options *AppTheoryEventBusTableBindingOptions) error { + if handler == nil { + return fmt.Errorf("parameter handler is required, but nil was provided") + } + + if err := _jsii_.ValidateStruct(options, func() string { return "parameter options" }); err != nil { + return err + } + + return nil +} + func validateAppTheoryEventBusTable_IsConstructParameters(x interface{}) error { if x == nil { return fmt.Errorf("parameter x is required, but nil was provided") diff --git a/cdk-go/apptheorycdk/AppTheoryEventBusTable__no_checks.go b/cdk-go/apptheorycdk/AppTheoryEventBusTable__no_checks.go index 8bc9906a..cffce219 100644 --- a/cdk-go/apptheorycdk/AppTheoryEventBusTable__no_checks.go +++ b/cdk-go/apptheorycdk/AppTheoryEventBusTable__no_checks.go @@ -4,6 +4,10 @@ package apptheorycdk // Building without runtime type checking enabled, so all the below just return nil +func (a *jsiiProxy_AppTheoryEventBusTable) validateBindParameters(handler awslambda.IFunction, options *AppTheoryEventBusTableBindingOptions) error { + return nil +} + func validateAppTheoryEventBusTable_IsConstructParameters(x interface{}) error { return nil } diff --git a/cdk-go/apptheorycdk/AppTheoryHttpIngestionEndpoint.go b/cdk-go/apptheorycdk/AppTheoryHttpIngestionEndpoint.go new file mode 100644 index 00000000..eddfb99a --- /dev/null +++ b/cdk-go/apptheorycdk/AppTheoryHttpIngestionEndpoint.go @@ -0,0 +1,230 @@ +package apptheorycdk + +import ( + _jsii_ "github.com/aws/jsii-runtime-go/runtime" + _init_ "github.com/theory-cloud/apptheory/cdk-go/apptheorycdk/jsii" + + "github.com/aws/aws-cdk-go/awscdk/v2/awsapigatewayv2" + "github.com/aws/aws-cdk-go/awscdk/v2/awsapigatewayv2authorizers" + "github.com/aws/aws-cdk-go/awscdk/v2/awslogs" + "github.com/aws/aws-cdk-go/awscdk/v2/awsroute53" + "github.com/aws/constructs-go/constructs/v10" + "github.com/theory-cloud/apptheory/cdk-go/apptheorycdk/internal" +) + +// Authenticated HTTPS ingestion endpoint backed by Lambda. +// +// This construct is intended for server-to-server submission paths where callers +// authenticate with a shared secret key via a Lambda request authorizer. +type AppTheoryHttpIngestionEndpoint interface { + constructs.Construct + AccessLogGroup() awslogs.ILogGroup + Api() awsapigatewayv2.HttpApi + ApiMapping() awsapigatewayv2.ApiMapping + CnameRecord() awsroute53.CnameRecord + DomainName() awsapigatewayv2.DomainName + Endpoint() *string + // The tree node. + Node() constructs.Node + RouteAuthorizer() awsapigatewayv2authorizers.HttpLambdaAuthorizer + Stage() awsapigatewayv2.IStage + // Returns a string representation of this construct. + ToString() *string + // Applies one or more mixins to this construct. + // + // Mixins are applied in order. The list of constructs is captured at the + // start of the call, so constructs added by a mixin will not be visited. + // Use multiple `with()` calls if subsequent mixins should apply to added + // constructs. + // + // Returns: This construct for chaining. + With(mixins ...constructs.IMixin) constructs.IConstruct +} + +// The jsii proxy struct for AppTheoryHttpIngestionEndpoint +type jsiiProxy_AppTheoryHttpIngestionEndpoint struct { + internal.Type__constructsConstruct +} + +func (j *jsiiProxy_AppTheoryHttpIngestionEndpoint) AccessLogGroup() awslogs.ILogGroup { + var returns awslogs.ILogGroup + _jsii_.Get( + j, + "accessLogGroup", + &returns, + ) + return returns +} + +func (j *jsiiProxy_AppTheoryHttpIngestionEndpoint) Api() awsapigatewayv2.HttpApi { + var returns awsapigatewayv2.HttpApi + _jsii_.Get( + j, + "api", + &returns, + ) + return returns +} + +func (j *jsiiProxy_AppTheoryHttpIngestionEndpoint) ApiMapping() awsapigatewayv2.ApiMapping { + var returns awsapigatewayv2.ApiMapping + _jsii_.Get( + j, + "apiMapping", + &returns, + ) + return returns +} + +func (j *jsiiProxy_AppTheoryHttpIngestionEndpoint) CnameRecord() awsroute53.CnameRecord { + var returns awsroute53.CnameRecord + _jsii_.Get( + j, + "cnameRecord", + &returns, + ) + return returns +} + +func (j *jsiiProxy_AppTheoryHttpIngestionEndpoint) DomainName() awsapigatewayv2.DomainName { + var returns awsapigatewayv2.DomainName + _jsii_.Get( + j, + "domainName", + &returns, + ) + return returns +} + +func (j *jsiiProxy_AppTheoryHttpIngestionEndpoint) Endpoint() *string { + var returns *string + _jsii_.Get( + j, + "endpoint", + &returns, + ) + return returns +} + +func (j *jsiiProxy_AppTheoryHttpIngestionEndpoint) Node() constructs.Node { + var returns constructs.Node + _jsii_.Get( + j, + "node", + &returns, + ) + return returns +} + +func (j *jsiiProxy_AppTheoryHttpIngestionEndpoint) RouteAuthorizer() awsapigatewayv2authorizers.HttpLambdaAuthorizer { + var returns awsapigatewayv2authorizers.HttpLambdaAuthorizer + _jsii_.Get( + j, + "routeAuthorizer", + &returns, + ) + return returns +} + +func (j *jsiiProxy_AppTheoryHttpIngestionEndpoint) Stage() awsapigatewayv2.IStage { + var returns awsapigatewayv2.IStage + _jsii_.Get( + j, + "stage", + &returns, + ) + return returns +} + +func NewAppTheoryHttpIngestionEndpoint(scope constructs.Construct, id *string, props *AppTheoryHttpIngestionEndpointProps) AppTheoryHttpIngestionEndpoint { + _init_.Initialize() + + if err := validateNewAppTheoryHttpIngestionEndpointParameters(scope, id, props); err != nil { + panic(err) + } + j := jsiiProxy_AppTheoryHttpIngestionEndpoint{} + + _jsii_.Create( + "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpoint", + []interface{}{scope, id, props}, + &j, + ) + + return &j +} + +func NewAppTheoryHttpIngestionEndpoint_Override(a AppTheoryHttpIngestionEndpoint, scope constructs.Construct, id *string, props *AppTheoryHttpIngestionEndpointProps) { + _init_.Initialize() + + _jsii_.Create( + "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpoint", + []interface{}{scope, id, props}, + a, + ) +} + +// Checks if `x` is a construct. +// +// Use this method instead of `instanceof` to properly detect `Construct` +// instances, even when the construct library is symlinked. +// +// Explanation: in JavaScript, multiple copies of the `constructs` library on +// disk are seen as independent, completely different libraries. As a +// consequence, the class `Construct` in each copy of the `constructs` library +// is seen as a different class, and an instance of one class will not test as +// `instanceof` the other class. `npm install` will not create installations +// like this, but users may manually symlink construct libraries together or +// use a monorepo tool: in those cases, multiple copies of the `constructs` +// library can be accidentally installed, and `instanceof` will behave +// unpredictably. It is safest to avoid using `instanceof`, and using +// this type-testing method instead. +// +// Returns: true if `x` is an object created from a class which extends `Construct`. +func AppTheoryHttpIngestionEndpoint_IsConstruct(x interface{}) *bool { + _init_.Initialize() + + if err := validateAppTheoryHttpIngestionEndpoint_IsConstructParameters(x); err != nil { + panic(err) + } + var returns *bool + + _jsii_.StaticInvoke( + "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpoint", + "isConstruct", + []interface{}{x}, + &returns, + ) + + return returns +} + +func (a *jsiiProxy_AppTheoryHttpIngestionEndpoint) ToString() *string { + var returns *string + + _jsii_.Invoke( + a, + "toString", + nil, // no parameters + &returns, + ) + + return returns +} + +func (a *jsiiProxy_AppTheoryHttpIngestionEndpoint) With(mixins ...constructs.IMixin) constructs.IConstruct { + args := []interface{}{} + for _, a := range mixins { + args = append(args, a) + } + + var returns constructs.IConstruct + + _jsii_.Invoke( + a, + "with", + args, + &returns, + ) + + return returns +} diff --git a/cdk-go/apptheorycdk/AppTheoryHttpIngestionEndpointDomainOptions.go b/cdk-go/apptheorycdk/AppTheoryHttpIngestionEndpointDomainOptions.go new file mode 100644 index 00000000..7a41426a --- /dev/null +++ b/cdk-go/apptheorycdk/AppTheoryHttpIngestionEndpointDomainOptions.go @@ -0,0 +1,29 @@ +package apptheorycdk + +import ( + "github.com/aws/aws-cdk-go/awscdk/v2/awscertificatemanager" + "github.com/aws/aws-cdk-go/awscdk/v2/awsroute53" +) + +type AppTheoryHttpIngestionEndpointDomainOptions struct { + // The custom domain name (for example `ingest.example.com`). + DomainName *string `field:"required" json:"domainName" yaml:"domainName"` + // Optional API mapping key under the custom domain. + // Default: undefined. + // + BasePath *string `field:"optional" json:"basePath" yaml:"basePath"` + // ACM certificate for the domain. + // + // Provide either `certificate` or `certificateArn`. + Certificate awscertificatemanager.ICertificate `field:"optional" json:"certificate" yaml:"certificate"` + // ACM certificate ARN. + // + // Provide either `certificate` or `certificateArn`. + CertificateArn *string `field:"optional" json:"certificateArn" yaml:"certificateArn"` + // Route53 hosted zone for automatic DNS record creation. + // + // If provided, a CNAME record will be created pointing to the API Gateway domain. + // Default: undefined. + // + HostedZone awsroute53.IHostedZone `field:"optional" json:"hostedZone" yaml:"hostedZone"` +} diff --git a/cdk-go/apptheorycdk/AppTheoryHttpIngestionEndpointProps.go b/cdk-go/apptheorycdk/AppTheoryHttpIngestionEndpointProps.go new file mode 100644 index 00000000..3b442c90 --- /dev/null +++ b/cdk-go/apptheorycdk/AppTheoryHttpIngestionEndpointProps.go @@ -0,0 +1,45 @@ +package apptheorycdk + +import ( + "github.com/aws/aws-cdk-go/awscdk/v2" + "github.com/aws/aws-cdk-go/awscdk/v2/awslambda" +) + +type AppTheoryHttpIngestionEndpointProps struct { + // Lambda request authorizer used for secret-key validation. + Authorizer awslambda.IFunction `field:"required" json:"authorizer" yaml:"authorizer"` + // Lambda function that handles the ingestion request. + Handler awslambda.IFunction `field:"required" json:"handler" yaml:"handler"` + // Optional API name. + // Default: undefined. + // + ApiName *string `field:"optional" json:"apiName" yaml:"apiName"` + // Lambda authorizer result cache TTL. + // + // Defaults to disabled to match the upstream backoffice-api-authorizer behavior. + // Default: Duration.seconds(0) + // + AuthorizerCacheTtl awscdk.Duration `field:"optional" json:"authorizerCacheTtl" yaml:"authorizerCacheTtl"` + // Header used as the identity source for secret-key authorization. + // + // This defaults to `Authorization` to mirror the backoffice-api-authorizer pattern. + // Default: "Authorization". + // + AuthorizerHeaderName *string `field:"optional" json:"authorizerHeaderName" yaml:"authorizerHeaderName"` + // Friendly authorizer name. + // Default: undefined. + // + AuthorizerName *string `field:"optional" json:"authorizerName" yaml:"authorizerName"` + // Optional custom domain configuration. + // Default: undefined. + // + Domain *AppTheoryHttpIngestionEndpointDomainOptions `field:"optional" json:"domain" yaml:"domain"` + // HTTPS path exposed by the endpoint. + // Default: "/ingest". + // + EndpointPath *string `field:"optional" json:"endpointPath" yaml:"endpointPath"` + // Optional stage configuration. + // Default: undefined. + // + Stage *AppTheoryHttpIngestionEndpointStageOptions `field:"optional" json:"stage" yaml:"stage"` +} diff --git a/cdk-go/apptheorycdk/AppTheoryHttpIngestionEndpointStageOptions.go b/cdk-go/apptheorycdk/AppTheoryHttpIngestionEndpointStageOptions.go new file mode 100644 index 00000000..bcf529d9 --- /dev/null +++ b/cdk-go/apptheorycdk/AppTheoryHttpIngestionEndpointStageOptions.go @@ -0,0 +1,30 @@ +package apptheorycdk + +import ( + "github.com/aws/aws-cdk-go/awscdk/v2/awslogs" +) + +type AppTheoryHttpIngestionEndpointStageOptions struct { + // Enable CloudWatch access logging for the stage. + // Default: false. + // + AccessLogging *bool `field:"optional" json:"accessLogging" yaml:"accessLogging"` + // Retention period for auto-created access log group. + // + // Only applies when accessLogging is true. + // Default: logs.RetentionDays.ONE_MONTH + // + AccessLogRetention awslogs.RetentionDays `field:"optional" json:"accessLogRetention" yaml:"accessLogRetention"` + // Stage name. + // Default: "$default". + // + StageName *string `field:"optional" json:"stageName" yaml:"stageName"` + // Throttling burst limit for the stage. + // Default: undefined. + // + ThrottlingBurstLimit *float64 `field:"optional" json:"throttlingBurstLimit" yaml:"throttlingBurstLimit"` + // Throttling rate limit (requests per second) for the stage. + // Default: undefined. + // + ThrottlingRateLimit *float64 `field:"optional" json:"throttlingRateLimit" yaml:"throttlingRateLimit"` +} diff --git a/cdk-go/apptheorycdk/AppTheoryHttpIngestionEndpoint__checks.go b/cdk-go/apptheorycdk/AppTheoryHttpIngestionEndpoint__checks.go new file mode 100644 index 00000000..2d607e94 --- /dev/null +++ b/cdk-go/apptheorycdk/AppTheoryHttpIngestionEndpoint__checks.go @@ -0,0 +1,38 @@ +//go:build !no_runtime_type_checking + +package apptheorycdk + +import ( + "fmt" + + _jsii_ "github.com/aws/jsii-runtime-go/runtime" + + "github.com/aws/constructs-go/constructs/v10" +) + +func validateAppTheoryHttpIngestionEndpoint_IsConstructParameters(x interface{}) error { + if x == nil { + return fmt.Errorf("parameter x is required, but nil was provided") + } + + return nil +} + +func validateNewAppTheoryHttpIngestionEndpointParameters(scope constructs.Construct, id *string, props *AppTheoryHttpIngestionEndpointProps) error { + if scope == nil { + return fmt.Errorf("parameter scope is required, but nil was provided") + } + + if id == nil { + return fmt.Errorf("parameter id is required, but nil was provided") + } + + if props == nil { + return fmt.Errorf("parameter props is required, but nil was provided") + } + if err := _jsii_.ValidateStruct(props, func() string { return "parameter props" }); err != nil { + return err + } + + return nil +} diff --git a/cdk-go/apptheorycdk/AppTheoryHttpIngestionEndpoint__no_checks.go b/cdk-go/apptheorycdk/AppTheoryHttpIngestionEndpoint__no_checks.go new file mode 100644 index 00000000..eb506114 --- /dev/null +++ b/cdk-go/apptheorycdk/AppTheoryHttpIngestionEndpoint__no_checks.go @@ -0,0 +1,13 @@ +//go:build no_runtime_type_checking + +package apptheorycdk + +// Building without runtime type checking enabled, so all the below just return nil + +func validateAppTheoryHttpIngestionEndpoint_IsConstructParameters(x interface{}) error { + return nil +} + +func validateNewAppTheoryHttpIngestionEndpointParameters(scope constructs.Construct, id *string, props *AppTheoryHttpIngestionEndpointProps) error { + return nil +} diff --git a/cdk-go/apptheorycdk/AppTheoryMcpProtectedResource.go b/cdk-go/apptheorycdk/AppTheoryMcpProtectedResource.go index 201c2da2..498ce5cd 100644 --- a/cdk-go/apptheorycdk/AppTheoryMcpProtectedResource.go +++ b/cdk-go/apptheorycdk/AppTheoryMcpProtectedResource.go @@ -8,7 +8,7 @@ import ( "github.com/theory-cloud/apptheory/cdk-go/apptheorycdk/internal" ) -// Adds `/.well-known/oauth-protected-resource` metadata (RFC9728) to a REST API. +// Adds path-scoped `/.well-known/oauth-protected-resource/...` metadata (RFC9728) to a REST API. type AppTheoryMcpProtectedResource interface { constructs.Construct // The tree node. diff --git a/cdk-go/apptheorycdk/AppTheoryMcpProtectedResourceProps.go b/cdk-go/apptheorycdk/AppTheoryMcpProtectedResourceProps.go index ac142423..1551162d 100644 --- a/cdk-go/apptheorycdk/AppTheoryMcpProtectedResourceProps.go +++ b/cdk-go/apptheorycdk/AppTheoryMcpProtectedResourceProps.go @@ -4,7 +4,7 @@ package apptheorycdk // // This construct adds the RFC9728 protected resource metadata endpoint required // by MCP auth (2025-06-18): -// - GET `/.well-known/oauth-protected-resource` +// - GET `/.well-known/oauth-protected-resource/...resource path...` type AppTheoryMcpProtectedResourceProps struct { // One or more OAuth Authorization Server issuer/base URLs. // diff --git a/cdk-go/apptheorycdk/AppTheoryRemoteMcpServer.go b/cdk-go/apptheorycdk/AppTheoryRemoteMcpServer.go index cfb46e31..814288dc 100644 --- a/cdk-go/apptheorycdk/AppTheoryRemoteMcpServer.go +++ b/cdk-go/apptheorycdk/AppTheoryRemoteMcpServer.go @@ -14,7 +14,7 @@ import ( // This construct is designed for MCP Streamable HTTP (2025-06-18). type AppTheoryRemoteMcpServer interface { constructs.Construct - // The MCP endpoint URL (`.../mcp`). + // The MCP endpoint URL or template (`.../mcp` or `.../mcp/{actor}`). Endpoint() *string // The tree node. Node() constructs.Node diff --git a/cdk-go/apptheorycdk/AppTheoryRemoteMcpServerProps.go b/cdk-go/apptheorycdk/AppTheoryRemoteMcpServerProps.go index a9b88010..3e80a1dd 100644 --- a/cdk-go/apptheorycdk/AppTheoryRemoteMcpServerProps.go +++ b/cdk-go/apptheorycdk/AppTheoryRemoteMcpServerProps.go @@ -12,6 +12,17 @@ import ( type AppTheoryRemoteMcpServerProps struct { // The Lambda function that handles MCP Streamable HTTP requests. Handler awslambda.IFunction `field:"required" json:"handler" yaml:"handler"` + // Enable per-actor MCP endpoint bundles. + // + // When enabled, the construct mounts the transport at `/mcp/{actor}` and + // co-registers the RFC 9728 discovery route at + // `/.well-known/oauth-protected-resource/mcp/{actor}`. + // + // The public `endpoint` and injected `MCP_ENDPOINT` environment variable + // become a template string ending in `/mcp/{actor}`. + // Default: false. + // + ActorPath *bool `field:"optional" json:"actorPath" yaml:"actorPath"` // Optional API name. // Default: undefined. // diff --git a/cdk-go/apptheorycdk/README.md b/cdk-go/apptheorycdk/README.md index dc5136c0..c69d053e 100644 --- a/cdk-go/apptheorycdk/README.md +++ b/cdk-go/apptheorycdk/README.md @@ -21,8 +21,10 @@ Status: early; start with a small “top 20%” set and grow based on real usage * `AppTheoryQueueConsumer` — SQS → Lambda event source mapping with full knobs. * `AppTheoryQueueProcessor` — SQS queue + consumer wiring (convenience wrapper over `AppTheoryQueue` + `AppTheoryQueueConsumer`). * `AppTheoryEventBridgeHandler` — EventBridge schedule/rule + Lambda target wiring. +* `AppTheoryEventBridgeBus` — custom EventBridge bus with explicit cross-account publish allowlist. * `AppTheoryDynamoDBStreamMapping` — DynamoDB Streams event source mapping + permissions. -* `AppTheoryEventBusTable` — DynamoDB table for AppTheory EventBus (`pk`/`sk` schema + required GSIs). +* `AppTheoryEventBusTable` — DynamoDB table for AppTheory EventBus (`pk`/`sk` schema + required GSIs + Lambda binding helper). +* `AppTheoryHttpIngestionEndpoint` — authenticated HTTP API v2 ingestion endpoint with Lambda request authorizer + throttling controls. * `AppTheoryDynamoTable` — general-purpose DynamoDB table construct (schema-explicit + consistent defaults). * `AppTheoryLambdaRole` — Lambda execution role helper (baseline + X-Ray + KMS + escape hatches). * `AppTheoryPathRoutedFrontend` — CloudFront distribution for multi-SPA routing + API origin (stage domain pattern). diff --git a/cdk-go/apptheorycdk/jsii/jsii.go b/cdk-go/apptheorycdk/jsii/jsii.go index 2c3f0573..790db1b3 100644 --- a/cdk-go/apptheorycdk/jsii/jsii.go +++ b/cdk-go/apptheorycdk/jsii/jsii.go @@ -13,7 +13,7 @@ import ( constructs "github.com/aws/constructs-go/constructs/v10/jsii" ) -//go:embed theory-cloud-apptheory-cdk-0.11.1.tgz +//go:embed theory-cloud-apptheory-cdk-0.18.2.tgz var tarball []byte // Initialize loads the necessary packages in the @jsii/kernel to support the enclosing module. @@ -24,5 +24,5 @@ func Initialize() { constructs.Initialize() // Load this library into the kernel - _jsii_.Load("@theory-cloud/apptheory-cdk", "0.11.1", tarball) + _jsii_.Load("@theory-cloud/apptheory-cdk", "0.18.2", tarball) } diff --git a/cdk-go/apptheorycdk/jsii/theory-cloud-apptheory-cdk-0.11.1.tgz b/cdk-go/apptheorycdk/jsii/theory-cloud-apptheory-cdk-0.11.1.tgz deleted file mode 100644 index 2353d3f1..00000000 Binary files a/cdk-go/apptheorycdk/jsii/theory-cloud-apptheory-cdk-0.11.1.tgz and /dev/null differ diff --git a/cdk-go/apptheorycdk/jsii/theory-cloud-apptheory-cdk-0.18.2.tgz b/cdk-go/apptheorycdk/jsii/theory-cloud-apptheory-cdk-0.18.2.tgz new file mode 100644 index 00000000..a687fc29 Binary files /dev/null and b/cdk-go/apptheorycdk/jsii/theory-cloud-apptheory-cdk-0.18.2.tgz differ diff --git a/cdk-go/apptheorycdk/main.go b/cdk-go/apptheorycdk/main.go index e66fb1b7..09b8d430 100644 --- a/cdk-go/apptheorycdk/main.go +++ b/cdk-go/apptheorycdk/main.go @@ -176,6 +176,27 @@ func init() { "@theory-cloud/apptheory-cdk.AppTheoryEnhancedSecurityProps", reflect.TypeOf((*AppTheoryEnhancedSecurityProps)(nil)).Elem(), ) + _jsii_.RegisterClass( + "@theory-cloud/apptheory-cdk.AppTheoryEventBridgeBus", + reflect.TypeOf((*AppTheoryEventBridgeBus)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "allowAccount", GoMethod: "AllowAccount"}, + _jsii_.MemberProperty{JsiiProperty: "eventBus", GoGetter: "EventBus"}, + _jsii_.MemberProperty{JsiiProperty: "node", GoGetter: "Node"}, + _jsii_.MemberProperty{JsiiProperty: "policies", GoGetter: "Policies"}, + _jsii_.MemberMethod{JsiiMethod: "toString", GoMethod: "ToString"}, + _jsii_.MemberMethod{JsiiMethod: "with", GoMethod: "With"}, + }, + func() interface{} { + j := jsiiProxy_AppTheoryEventBridgeBus{} + _jsii_.InitJsiiProxy(&j.Type__constructsConstruct) + return &j + }, + ) + _jsii_.RegisterStruct( + "@theory-cloud/apptheory-cdk.AppTheoryEventBridgeBusProps", + reflect.TypeOf((*AppTheoryEventBridgeBusProps)(nil)).Elem(), + ) _jsii_.RegisterClass( "@theory-cloud/apptheory-cdk.AppTheoryEventBridgeHandler", reflect.TypeOf((*AppTheoryEventBridgeHandler)(nil)).Elem(), @@ -218,6 +239,7 @@ func init() { "@theory-cloud/apptheory-cdk.AppTheoryEventBusTable", reflect.TypeOf((*AppTheoryEventBusTable)(nil)).Elem(), []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "bind", GoMethod: "Bind"}, _jsii_.MemberProperty{JsiiProperty: "node", GoGetter: "Node"}, _jsii_.MemberProperty{JsiiProperty: "table", GoGetter: "Table"}, _jsii_.MemberMethod{JsiiMethod: "toString", GoMethod: "ToString"}, @@ -229,6 +251,10 @@ func init() { return &j }, ) + _jsii_.RegisterStruct( + "@theory-cloud/apptheory-cdk.AppTheoryEventBusTableBindingOptions", + reflect.TypeOf((*AppTheoryEventBusTableBindingOptions)(nil)).Elem(), + ) _jsii_.RegisterStruct( "@theory-cloud/apptheory-cdk.AppTheoryEventBusTableProps", reflect.TypeOf((*AppTheoryEventBusTableProps)(nil)).Elem(), @@ -316,6 +342,40 @@ func init() { "@theory-cloud/apptheory-cdk.AppTheoryHttpApiProps", reflect.TypeOf((*AppTheoryHttpApiProps)(nil)).Elem(), ) + _jsii_.RegisterClass( + "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpoint", + reflect.TypeOf((*AppTheoryHttpIngestionEndpoint)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "accessLogGroup", GoGetter: "AccessLogGroup"}, + _jsii_.MemberProperty{JsiiProperty: "api", GoGetter: "Api"}, + _jsii_.MemberProperty{JsiiProperty: "apiMapping", GoGetter: "ApiMapping"}, + _jsii_.MemberProperty{JsiiProperty: "cnameRecord", GoGetter: "CnameRecord"}, + _jsii_.MemberProperty{JsiiProperty: "domainName", GoGetter: "DomainName"}, + _jsii_.MemberProperty{JsiiProperty: "endpoint", GoGetter: "Endpoint"}, + _jsii_.MemberProperty{JsiiProperty: "node", GoGetter: "Node"}, + _jsii_.MemberProperty{JsiiProperty: "routeAuthorizer", GoGetter: "RouteAuthorizer"}, + _jsii_.MemberProperty{JsiiProperty: "stage", GoGetter: "Stage"}, + _jsii_.MemberMethod{JsiiMethod: "toString", GoMethod: "ToString"}, + _jsii_.MemberMethod{JsiiMethod: "with", GoMethod: "With"}, + }, + func() interface{} { + j := jsiiProxy_AppTheoryHttpIngestionEndpoint{} + _jsii_.InitJsiiProxy(&j.Type__constructsConstruct) + return &j + }, + ) + _jsii_.RegisterStruct( + "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpointDomainOptions", + reflect.TypeOf((*AppTheoryHttpIngestionEndpointDomainOptions)(nil)).Elem(), + ) + _jsii_.RegisterStruct( + "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpointProps", + reflect.TypeOf((*AppTheoryHttpIngestionEndpointProps)(nil)).Elem(), + ) + _jsii_.RegisterStruct( + "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpointStageOptions", + reflect.TypeOf((*AppTheoryHttpIngestionEndpointStageOptions)(nil)).Elem(), + ) _jsii_.RegisterClass( "@theory-cloud/apptheory-cdk.AppTheoryJobsTable", reflect.TypeOf((*AppTheoryJobsTable)(nil)).Elem(), diff --git a/cdk-go/apptheorycdk/version b/cdk-go/apptheorycdk/version index af88ba82..503a21de 100644 --- a/cdk-go/apptheorycdk/version +++ b/cdk-go/apptheorycdk/version @@ -1 +1 @@ -0.11.1 +0.18.2 diff --git a/cdk/.jsii b/cdk/.jsii index 2c1b952f..a13dec84 100644 --- a/cdk/.jsii +++ b/cdk/.jsii @@ -6,8 +6,8 @@ ] }, "dependencies": { - "aws-cdk-lib": "2.240.0", - "constructs": "10.5.1" + "aws-cdk-lib": "2.244.0", + "constructs": "10.6.0" }, "dependencyClosure": { "@aws-cdk/asset-awscli-v1": { @@ -614,6 +614,19 @@ } } }, + "aws-cdk-lib.aws_bedrockmantle": { + "targets": { + "dotnet": { + "namespace": "Amazon.CDK.AWS.BedrockMantle" + }, + "java": { + "package": "software.amazon.awscdk.services.bedrockmantle" + }, + "python": { + "module": "aws_cdk.aws_bedrockmantle" + } + } + }, "aws-cdk-lib.aws_billingconductor": { "targets": { "dotnet": { @@ -1018,6 +1031,19 @@ } } }, + "aws-cdk-lib.aws_computeoptimizer": { + "targets": { + "dotnet": { + "namespace": "Amazon.CDK.AWS.ComputeOptimizer" + }, + "java": { + "package": "software.amazon.awscdk.services.computeoptimizer" + }, + "python": { + "module": "aws_cdk.aws_computeoptimizer" + } + } + }, "aws-cdk-lib.aws_config": { "targets": { "dotnet": { @@ -1239,6 +1265,19 @@ } } }, + "aws-cdk-lib.aws_directconnect": { + "targets": { + "dotnet": { + "namespace": "Amazon.CDK.AWS.DirectConnect" + }, + "java": { + "package": "software.amazon.awscdk.services.directconnect" + }, + "python": { + "module": "aws_cdk.aws_directconnect" + } + } + }, "aws-cdk-lib.aws_directoryservice": { "targets": { "dotnet": { @@ -1356,6 +1395,22 @@ } } }, + "aws-cdk-lib.aws_ecr.mixins": { + "targets": { + "dotnet": { + "namespace": "Amazon.CDK.AWS.ECR.Mixins" + }, + "go": { + "packageName": "awsecrmixins" + }, + "java": { + "package": "software.amazon.awscdk.services.ecr.mixins" + }, + "python": { + "module": "aws_cdk.aws_ecr.mixins" + } + } + }, "aws-cdk-lib.aws_ecr_assets": { "targets": { "dotnet": { @@ -1382,6 +1437,22 @@ } } }, + "aws-cdk-lib.aws_ecs.mixins": { + "targets": { + "dotnet": { + "namespace": "Amazon.CDK.AWS.ECS.Mixins" + }, + "go": { + "packageName": "awsecsmixins" + }, + "java": { + "package": "software.amazon.awscdk.services.ecs.mixins" + }, + "python": { + "module": "aws_cdk.aws_ecs.mixins" + } + } + }, "aws-cdk-lib.aws_ecs_patterns": { "targets": { "dotnet": { @@ -3306,6 +3377,22 @@ } } }, + "aws-cdk-lib.aws_s3.mixins": { + "targets": { + "dotnet": { + "namespace": "Amazon.CDK.AWS.S3.Mixins" + }, + "go": { + "packageName": "awss3mixins" + }, + "java": { + "package": "software.amazon.awscdk.services.s3.mixins" + }, + "python": { + "module": "aws_cdk.aws_s3.mixins" + } + } + }, "aws-cdk-lib.aws_s3_assets": { "targets": { "dotnet": { @@ -4595,6 +4682,22 @@ } } }, + "aws-cdk-lib.interfaces.aws_bedrockmantle": { + "targets": { + "dotnet": { + "namespace": "Amazon.CDK.Interfaces.BedrockMantle" + }, + "go": { + "packageName": "interfacesawsbedrockmantle" + }, + "java": { + "package": "software.amazon.awscdk.interfaces.bedrockmantle" + }, + "python": { + "module": "aws_cdk.interfaces.aws_bedrockmantle" + } + } + }, "aws-cdk-lib.interfaces.aws_billing": { "targets": { "dotnet": { @@ -5043,6 +5146,22 @@ } } }, + "aws-cdk-lib.interfaces.aws_computeoptimizer": { + "targets": { + "dotnet": { + "namespace": "Amazon.CDK.Interfaces.ComputeOptimizer" + }, + "go": { + "packageName": "interfacesawscomputeoptimizer" + }, + "java": { + "package": "software.amazon.awscdk.interfaces.computeoptimizer" + }, + "python": { + "module": "aws_cdk.interfaces.aws_computeoptimizer" + } + } + }, "aws-cdk-lib.interfaces.aws_config": { "targets": { "dotnet": { @@ -5315,6 +5434,22 @@ } } }, + "aws-cdk-lib.interfaces.aws_directconnect": { + "targets": { + "dotnet": { + "namespace": "Amazon.CDK.Interfaces.DirectConnect" + }, + "go": { + "packageName": "interfacesawsdirectconnect" + }, + "java": { + "package": "software.amazon.awscdk.interfaces.directconnect" + }, + "python": { + "module": "aws_cdk.interfaces.aws_directconnect" + } + } + }, "aws-cdk-lib.interfaces.aws_directoryservice": { "targets": { "dotnet": { @@ -8507,7 +8642,7 @@ }, "description": "AppTheory CDK constructs (TS-first jsii)", "homepage": "https://github.com/theory-cloud/AppTheory.git", - "jsiiVersion": "5.9.23 (build 29252a0)", + "jsiiVersion": "5.9.34 (build 8773a22)", "license": "Apache-2.0", "metadata": { "jsii": { @@ -8518,7 +8653,7 @@ }, "name": "@theory-cloud/apptheory-cdk", "readme": { - "markdown": "# AppTheory CDK Constructs\n\nTS-first `jsii` constructs for deploying AppTheory apps with consistent defaults across Go/TypeScript/Python.\n\nStatus: early; start with a small “top 20%” set and grow based on real usage.\n\n## Documentation\n\n- CDK docs index: `cdk/docs/README.md`\n- Repo docs index: `docs/README.md`\n\n## Constructs\n\n- `AppTheoryHttpApi` — HTTP API (APIGWv2) + Lambda proxy routes (`/` and `/{proxy+}`).\n- `AppTheoryRestApi` — API Gateway REST API v1 + Lambda proxy routes (supports streaming per-method).\n- `AppTheoryRestApiRouter` — REST API v1 multi-Lambda router with full streaming parity + stage controls + domain wiring.\n- `AppTheoryWebSocketApi` — WebSocket API + routes/permissions (optional connection table + access logging).\n- `AppTheoryFunction` — Lambda wrapper with AppTheory-friendly defaults.\n- `AppTheoryFunctionAlarms` — baseline CloudWatch alarms for a Lambda function.\n- `AppTheoryQueue` — SQS queue with optional DLQ (queue-only friendly).\n- `AppTheoryQueueConsumer` — SQS → Lambda event source mapping with full knobs.\n- `AppTheoryQueueProcessor` — SQS queue + consumer wiring (convenience wrapper over `AppTheoryQueue` + `AppTheoryQueueConsumer`).\n- `AppTheoryEventBridgeHandler` — EventBridge schedule/rule + Lambda target wiring.\n- `AppTheoryDynamoDBStreamMapping` — DynamoDB Streams event source mapping + permissions.\n- `AppTheoryEventBusTable` — DynamoDB table for AppTheory EventBus (`pk`/`sk` schema + required GSIs).\n- `AppTheoryDynamoTable` — general-purpose DynamoDB table construct (schema-explicit + consistent defaults).\n- `AppTheoryLambdaRole` — Lambda execution role helper (baseline + X-Ray + KMS + escape hatches).\n- `AppTheoryPathRoutedFrontend` — CloudFront distribution for multi-SPA routing + API origin (stage domain pattern).\n- `AppTheoryMediaCdn` — CloudFront distribution for an S3-backed media CDN (optional private media via key groups).\n- `AppTheoryApp` — higher-level “app” pattern (Lambda + HTTP API + optional DynamoDB tables).\n- `AppTheorySsrSite` — SSR site pattern (Lambda + CloudFront + domain/cert helpers).\n\n## Minimal example\n\n```ts\nimport { Stack } from \"aws-cdk-lib\";\nimport * as lambda from \"aws-cdk-lib/aws-lambda\";\nimport { AppTheoryHttpApi } from \"@theory-cloud/apptheory-cdk\";\n\nconst stack = new Stack();\nconst fn = new lambda.Function(stack, \"Handler\", {\n runtime: lambda.Runtime.NODEJS_24_X,\n handler: \"index.handler\",\n code: lambda.Code.fromAsset(\"dist\"),\n});\n\nnew AppTheoryHttpApi(stack, \"Api\", { handler: fn, apiName: \"my-api\" });\n```\n\n## Development\n\n```bash\ncd cdk\nnpm ci\nnpm test\n```\n" + "markdown": "# AppTheory CDK Constructs\n\nTS-first `jsii` constructs for deploying AppTheory apps with consistent defaults across Go/TypeScript/Python.\n\nStatus: early; start with a small “top 20%” set and grow based on real usage.\n\n## Documentation\n\n- CDK docs index: `cdk/docs/README.md`\n- Repo docs index: `docs/README.md`\n\n## Constructs\n\n- `AppTheoryHttpApi` — HTTP API (APIGWv2) + Lambda proxy routes (`/` and `/{proxy+}`).\n- `AppTheoryRestApi` — API Gateway REST API v1 + Lambda proxy routes (supports streaming per-method).\n- `AppTheoryRestApiRouter` — REST API v1 multi-Lambda router with full streaming parity + stage controls + domain wiring.\n- `AppTheoryWebSocketApi` — WebSocket API + routes/permissions (optional connection table + access logging).\n- `AppTheoryFunction` — Lambda wrapper with AppTheory-friendly defaults.\n- `AppTheoryFunctionAlarms` — baseline CloudWatch alarms for a Lambda function.\n- `AppTheoryQueue` — SQS queue with optional DLQ (queue-only friendly).\n- `AppTheoryQueueConsumer` — SQS → Lambda event source mapping with full knobs.\n- `AppTheoryQueueProcessor` — SQS queue + consumer wiring (convenience wrapper over `AppTheoryQueue` + `AppTheoryQueueConsumer`).\n- `AppTheoryEventBridgeHandler` — EventBridge schedule/rule + Lambda target wiring.\n- `AppTheoryEventBridgeBus` — custom EventBridge bus with explicit cross-account publish allowlist.\n- `AppTheoryDynamoDBStreamMapping` — DynamoDB Streams event source mapping + permissions.\n- `AppTheoryEventBusTable` — DynamoDB table for AppTheory EventBus (`pk`/`sk` schema + required GSIs + Lambda binding helper).\n- `AppTheoryHttpIngestionEndpoint` — authenticated HTTP API v2 ingestion endpoint with Lambda request authorizer + throttling controls.\n- `AppTheoryDynamoTable` — general-purpose DynamoDB table construct (schema-explicit + consistent defaults).\n- `AppTheoryLambdaRole` — Lambda execution role helper (baseline + X-Ray + KMS + escape hatches).\n- `AppTheoryPathRoutedFrontend` — CloudFront distribution for multi-SPA routing + API origin (stage domain pattern).\n- `AppTheoryMediaCdn` — CloudFront distribution for an S3-backed media CDN (optional private media via key groups).\n- `AppTheoryApp` — higher-level “app” pattern (Lambda + HTTP API + optional DynamoDB tables).\n- `AppTheorySsrSite` — SSR site pattern (Lambda + CloudFront + domain/cert helpers).\n\n## Minimal example\n\n```ts\nimport { Stack } from \"aws-cdk-lib\";\nimport * as lambda from \"aws-cdk-lib/aws-lambda\";\nimport { AppTheoryHttpApi } from \"@theory-cloud/apptheory-cdk\";\n\nconst stack = new Stack();\nconst fn = new lambda.Function(stack, \"Handler\", {\n runtime: lambda.Runtime.NODEJS_24_X,\n handler: \"index.handler\",\n code: lambda.Code.fromAsset(\"dist\"),\n});\n\nnew AppTheoryHttpApi(stack, \"Api\", { handler: fn, apiName: \"my-api\" });\n```\n\n## Development\n\n```bash\ncd cdk\nnpm ci\nnpm test\n```\n" }, "repository": { "directory": "cdk", @@ -10940,6 +11075,173 @@ ], "symbolId": "lib/enhanced-security:AppTheoryEnhancedSecurityProps" }, + "@theory-cloud/apptheory-cdk.AppTheoryEventBridgeBus": { + "assembly": "@theory-cloud/apptheory-cdk", + "base": "constructs.Construct", + "docs": { + "summary": "Opinionated custom EventBridge bus with explicit cross-account publish allowlist." + }, + "fqn": "@theory-cloud/apptheory-cdk.AppTheoryEventBridgeBus", + "initializer": { + "locationInModule": { + "filename": "lib/eventbridge-bus.ts", + "line": 35 + }, + "parameters": [ + { + "name": "scope", + "type": { + "fqn": "constructs.Construct" + } + }, + { + "name": "id", + "type": { + "primitive": "string" + } + }, + { + "name": "props", + "optional": true, + "type": { + "fqn": "@theory-cloud/apptheory-cdk.AppTheoryEventBridgeBusProps" + } + } + ] + }, + "kind": "class", + "locationInModule": { + "filename": "lib/eventbridge-bus.ts", + "line": 29 + }, + "methods": [ + { + "docs": { + "summary": "Adds a single account ID to the cross-account publish allowlist." + }, + "locationInModule": { + "filename": "lib/eventbridge-bus.ts", + "line": 51 + }, + "name": "allowAccount", + "parameters": [ + { + "name": "accountId", + "type": { + "primitive": "string" + } + } + ], + "returns": { + "type": { + "fqn": "aws-cdk-lib.aws_events.CfnEventBusPolicy" + } + } + } + ], + "name": "AppTheoryEventBridgeBus", + "properties": [ + { + "immutable": true, + "locationInModule": { + "filename": "lib/eventbridge-bus.ts", + "line": 30 + }, + "name": "eventBus", + "type": { + "fqn": "aws-cdk-lib.aws_events.EventBus" + } + }, + { + "immutable": true, + "locationInModule": { + "filename": "lib/eventbridge-bus.ts", + "line": 31 + }, + "name": "policies", + "type": { + "collection": { + "elementtype": { + "fqn": "aws-cdk-lib.aws_events.CfnEventBusPolicy" + }, + "kind": "array" + } + } + } + ], + "symbolId": "lib/eventbridge-bus:AppTheoryEventBridgeBus" + }, + "@theory-cloud/apptheory-cdk.AppTheoryEventBridgeBusProps": { + "assembly": "@theory-cloud/apptheory-cdk", + "datatype": true, + "fqn": "@theory-cloud/apptheory-cdk.AppTheoryEventBridgeBusProps", + "kind": "interface", + "locationInModule": { + "filename": "lib/eventbridge-bus.ts", + "line": 5 + }, + "name": "AppTheoryEventBridgeBusProps", + "properties": [ + { + "abstract": true, + "docs": { + "default": "[]", + "remarks": "Partners can be onboarded one account at a time by adding IDs here.", + "summary": "Explicit cross-account allowlist for `events:PutEvents`." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/eventbridge-bus.ts", + "line": 23 + }, + "name": "allowedAccountIds", + "optional": true, + "type": { + "collection": { + "elementtype": { + "primitive": "string" + }, + "kind": "array" + } + } + }, + { + "abstract": true, + "docs": { + "default": "- no description", + "summary": "Optional event bus description." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/eventbridge-bus.ts", + "line": 16 + }, + "name": "description", + "optional": true, + "type": { + "primitive": "string" + } + }, + { + "abstract": true, + "docs": { + "default": "- CloudFormation-generated name", + "summary": "Optional custom event bus name." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/eventbridge-bus.ts", + "line": 10 + }, + "name": "eventBusName", + "optional": true, + "type": { + "primitive": "string" + } + } + ], + "symbolId": "lib/eventbridge-bus:AppTheoryEventBridgeBusProps" + }, "@theory-cloud/apptheory-cdk.AppTheoryEventBridgeHandler": { "assembly": "@theory-cloud/apptheory-cdk", "base": "constructs.Construct", @@ -11294,7 +11596,7 @@ "initializer": { "locationInModule": { "filename": "lib/eventbus-table.ts", - "line": 21 + "line": 38 }, "parameters": [ { @@ -11321,15 +11623,42 @@ "kind": "class", "locationInModule": { "filename": "lib/eventbus-table.ts", - "line": 18 + "line": 35 }, + "methods": [ + { + "docs": { + "summary": "Binds the table to a Lambda function for EventBus publish/query/replay flows." + }, + "locationInModule": { + "filename": "lib/eventbus-table.ts", + "line": 103 + }, + "name": "bind", + "parameters": [ + { + "name": "handler", + "type": { + "fqn": "aws-cdk-lib.aws_lambda.IFunction" + } + }, + { + "name": "options", + "optional": true, + "type": { + "fqn": "@theory-cloud/apptheory-cdk.AppTheoryEventBusTableBindingOptions" + } + } + ] + } + ], "name": "AppTheoryEventBusTable", "properties": [ { "immutable": true, "locationInModule": { "filename": "lib/eventbus-table.ts", - "line": 19 + "line": 36 }, "name": "table", "type": { @@ -11339,14 +11668,64 @@ ], "symbolId": "lib/eventbus-table:AppTheoryEventBusTable" }, - "@theory-cloud/apptheory-cdk.AppTheoryEventBusTableProps": { + "@theory-cloud/apptheory-cdk.AppTheoryEventBusTableBindingOptions": { "assembly": "@theory-cloud/apptheory-cdk", "datatype": true, - "fqn": "@theory-cloud/apptheory-cdk.AppTheoryEventBusTableProps", + "fqn": "@theory-cloud/apptheory-cdk.AppTheoryEventBusTableBindingOptions", "kind": "interface", "locationInModule": { "filename": "lib/eventbus-table.ts", - "line": 5 + "line": 19 + }, + "name": "AppTheoryEventBusTableBindingOptions", + "properties": [ + { + "abstract": true, + "docs": { + "default": "APPTHEORY_EVENTBUS_TABLE_NAME", + "remarks": "AppTheory runtime code reads `APPTHEORY_EVENTBUS_TABLE_NAME` by default.", + "summary": "Environment variable name used for the table name binding." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/eventbus-table.ts", + "line": 32 + }, + "name": "envVarName", + "optional": true, + "type": { + "primitive": "string" + } + }, + { + "abstract": true, + "docs": { + "default": "false", + "remarks": "When false, the handler receives read/write access for publish + replay flows.", + "summary": "Grant read-only access for replay/query consumers." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/eventbus-table.ts", + "line": 25 + }, + "name": "readOnly", + "optional": true, + "type": { + "primitive": "boolean" + } + } + ], + "symbolId": "lib/eventbus-table:AppTheoryEventBusTableBindingOptions" + }, + "@theory-cloud/apptheory-cdk.AppTheoryEventBusTableProps": { + "assembly": "@theory-cloud/apptheory-cdk", + "datatype": true, + "fqn": "@theory-cloud/apptheory-cdk.AppTheoryEventBusTableProps", + "kind": "interface", + "locationInModule": { + "filename": "lib/eventbus-table.ts", + "line": 6 }, "name": "AppTheoryEventBusTableProps", "properties": [ @@ -11355,7 +11734,7 @@ "immutable": true, "locationInModule": { "filename": "lib/eventbus-table.ts", - "line": 7 + "line": 8 }, "name": "billingMode", "optional": true, @@ -11368,7 +11747,7 @@ "immutable": true, "locationInModule": { "filename": "lib/eventbus-table.ts", - "line": 13 + "line": 14 }, "name": "enableEventIdIndex", "optional": true, @@ -11381,7 +11760,7 @@ "immutable": true, "locationInModule": { "filename": "lib/eventbus-table.ts", - "line": 10 + "line": 11 }, "name": "enablePointInTimeRecovery", "optional": true, @@ -11394,7 +11773,7 @@ "immutable": true, "locationInModule": { "filename": "lib/eventbus-table.ts", - "line": 11 + "line": 12 }, "name": "enableStream", "optional": true, @@ -11407,7 +11786,7 @@ "immutable": true, "locationInModule": { "filename": "lib/eventbus-table.ts", - "line": 14 + "line": 15 }, "name": "readCapacity", "optional": true, @@ -11420,7 +11799,7 @@ "immutable": true, "locationInModule": { "filename": "lib/eventbus-table.ts", - "line": 8 + "line": 9 }, "name": "removalPolicy", "optional": true, @@ -11433,7 +11812,7 @@ "immutable": true, "locationInModule": { "filename": "lib/eventbus-table.ts", - "line": 12 + "line": 13 }, "name": "streamViewType", "optional": true, @@ -11446,7 +11825,7 @@ "immutable": true, "locationInModule": { "filename": "lib/eventbus-table.ts", - "line": 6 + "line": 7 }, "name": "tableName", "optional": true, @@ -11459,7 +11838,7 @@ "immutable": true, "locationInModule": { "filename": "lib/eventbus-table.ts", - "line": 9 + "line": 10 }, "name": "timeToLiveAttribute", "optional": true, @@ -11472,7 +11851,7 @@ "immutable": true, "locationInModule": { "filename": "lib/eventbus-table.ts", - "line": 15 + "line": 16 }, "name": "writeCapacity", "optional": true, @@ -12074,6 +12453,505 @@ ], "symbolId": "lib/http-api:AppTheoryHttpApiProps" }, + "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpoint": { + "assembly": "@theory-cloud/apptheory-cdk", + "base": "constructs.Construct", + "docs": { + "remarks": "This construct is intended for server-to-server submission paths where callers\nauthenticate with a shared secret key via a Lambda request authorizer.", + "summary": "Authenticated HTTPS ingestion endpoint backed by Lambda." + }, + "fqn": "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpoint", + "initializer": { + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 148 + }, + "parameters": [ + { + "name": "scope", + "type": { + "fqn": "constructs.Construct" + } + }, + { + "name": "id", + "type": { + "primitive": "string" + } + }, + { + "name": "props", + "type": { + "fqn": "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpointProps" + } + } + ] + }, + "kind": "class", + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 138 + }, + "name": "AppTheoryHttpIngestionEndpoint", + "properties": [ + { + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 139 + }, + "name": "api", + "type": { + "fqn": "aws-cdk-lib.aws_apigatewayv2.HttpApi" + } + }, + { + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 141 + }, + "name": "endpoint", + "type": { + "primitive": "string" + } + }, + { + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 140 + }, + "name": "routeAuthorizer", + "type": { + "fqn": "aws-cdk-lib.aws_apigatewayv2_authorizers.HttpLambdaAuthorizer" + } + }, + { + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 142 + }, + "name": "stage", + "type": { + "fqn": "aws-cdk-lib.aws_apigatewayv2.IStage" + } + }, + { + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 143 + }, + "name": "accessLogGroup", + "optional": true, + "type": { + "fqn": "aws-cdk-lib.aws_logs.ILogGroup" + } + }, + { + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 145 + }, + "name": "apiMapping", + "optional": true, + "type": { + "fqn": "aws-cdk-lib.aws_apigatewayv2.ApiMapping" + } + }, + { + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 146 + }, + "name": "cnameRecord", + "optional": true, + "type": { + "fqn": "aws-cdk-lib.aws_route53.CnameRecord" + } + }, + { + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 144 + }, + "name": "domainName", + "optional": true, + "type": { + "fqn": "aws-cdk-lib.aws_apigatewayv2.DomainName" + } + } + ], + "symbolId": "lib/http-ingestion-endpoint:AppTheoryHttpIngestionEndpoint" + }, + "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpointDomainOptions": { + "assembly": "@theory-cloud/apptheory-cdk", + "datatype": true, + "fqn": "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpointDomainOptions", + "kind": "interface", + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 11 + }, + "name": "AppTheoryHttpIngestionEndpointDomainOptions", + "properties": [ + { + "abstract": true, + "docs": { + "summary": "The custom domain name (for example `ingest.example.com`)." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 15 + }, + "name": "domainName", + "type": { + "primitive": "string" + } + }, + { + "abstract": true, + "docs": { + "default": "undefined", + "summary": "Optional API mapping key under the custom domain." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 40 + }, + "name": "basePath", + "optional": true, + "type": { + "primitive": "string" + } + }, + { + "abstract": true, + "docs": { + "remarks": "Provide either `certificate` or `certificateArn`.", + "summary": "ACM certificate for the domain." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 21 + }, + "name": "certificate", + "optional": true, + "type": { + "fqn": "aws-cdk-lib.aws_certificatemanager.ICertificate" + } + }, + { + "abstract": true, + "docs": { + "remarks": "Provide either `certificate` or `certificateArn`.", + "summary": "ACM certificate ARN." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 27 + }, + "name": "certificateArn", + "optional": true, + "type": { + "primitive": "string" + } + }, + { + "abstract": true, + "docs": { + "default": "undefined", + "remarks": "If provided, a CNAME record will be created pointing to the API Gateway domain.", + "summary": "Route53 hosted zone for automatic DNS record creation." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 34 + }, + "name": "hostedZone", + "optional": true, + "type": { + "fqn": "aws-cdk-lib.aws_route53.IHostedZone" + } + } + ], + "symbolId": "lib/http-ingestion-endpoint:AppTheoryHttpIngestionEndpointDomainOptions" + }, + "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpointProps": { + "assembly": "@theory-cloud/apptheory-cdk", + "datatype": true, + "fqn": "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpointProps", + "kind": "interface", + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 76 + }, + "name": "AppTheoryHttpIngestionEndpointProps", + "properties": [ + { + "abstract": true, + "docs": { + "summary": "Lambda request authorizer used for secret-key validation." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 85 + }, + "name": "authorizer", + "type": { + "fqn": "aws-cdk-lib.aws_lambda.IFunction" + } + }, + { + "abstract": true, + "docs": { + "summary": "Lambda function that handles the ingestion request." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 80 + }, + "name": "handler", + "type": { + "fqn": "aws-cdk-lib.aws_lambda.IFunction" + } + }, + { + "abstract": true, + "docs": { + "default": "undefined", + "summary": "Optional API name." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 91 + }, + "name": "apiName", + "optional": true, + "type": { + "primitive": "string" + } + }, + { + "abstract": true, + "docs": { + "default": "Duration.seconds(0)", + "remarks": "Defaults to disabled to match the upstream backoffice-api-authorizer behavior.", + "summary": "Lambda authorizer result cache TTL." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 117 + }, + "name": "authorizerCacheTtl", + "optional": true, + "type": { + "fqn": "aws-cdk-lib.Duration" + } + }, + { + "abstract": true, + "docs": { + "default": "\"Authorization\"", + "remarks": "This defaults to `Authorization` to mirror the backoffice-api-authorizer pattern.", + "summary": "Header used as the identity source for secret-key authorization." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 104 + }, + "name": "authorizerHeaderName", + "optional": true, + "type": { + "primitive": "string" + } + }, + { + "abstract": true, + "docs": { + "default": "undefined", + "summary": "Friendly authorizer name." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 110 + }, + "name": "authorizerName", + "optional": true, + "type": { + "primitive": "string" + } + }, + { + "abstract": true, + "docs": { + "default": "undefined", + "summary": "Optional custom domain configuration." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 123 + }, + "name": "domain", + "optional": true, + "type": { + "fqn": "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpointDomainOptions" + } + }, + { + "abstract": true, + "docs": { + "default": "\"/ingest\"", + "summary": "HTTPS path exposed by the endpoint." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 97 + }, + "name": "endpointPath", + "optional": true, + "type": { + "primitive": "string" + } + }, + { + "abstract": true, + "docs": { + "default": "undefined", + "summary": "Optional stage configuration." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 129 + }, + "name": "stage", + "optional": true, + "type": { + "fqn": "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpointStageOptions" + } + } + ], + "symbolId": "lib/http-ingestion-endpoint:AppTheoryHttpIngestionEndpointProps" + }, + "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpointStageOptions": { + "assembly": "@theory-cloud/apptheory-cdk", + "datatype": true, + "fqn": "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpointStageOptions", + "kind": "interface", + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 43 + }, + "name": "AppTheoryHttpIngestionEndpointStageOptions", + "properties": [ + { + "abstract": true, + "docs": { + "default": "false", + "summary": "Enable CloudWatch access logging for the stage." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 54 + }, + "name": "accessLogging", + "optional": true, + "type": { + "primitive": "boolean" + } + }, + { + "abstract": true, + "docs": { + "default": "logs.RetentionDays.ONE_MONTH", + "remarks": "Only applies when accessLogging is true.", + "summary": "Retention period for auto-created access log group." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 61 + }, + "name": "accessLogRetention", + "optional": true, + "type": { + "fqn": "aws-cdk-lib.aws_logs.RetentionDays" + } + }, + { + "abstract": true, + "docs": { + "default": "\"$default\"", + "summary": "Stage name." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 48 + }, + "name": "stageName", + "optional": true, + "type": { + "primitive": "string" + } + }, + { + "abstract": true, + "docs": { + "default": "undefined", + "summary": "Throttling burst limit for the stage." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 73 + }, + "name": "throttlingBurstLimit", + "optional": true, + "type": { + "primitive": "number" + } + }, + { + "abstract": true, + "docs": { + "default": "undefined", + "summary": "Throttling rate limit (requests per second) for the stage." + }, + "immutable": true, + "locationInModule": { + "filename": "lib/http-ingestion-endpoint.ts", + "line": 67 + }, + "name": "throttlingRateLimit", + "optional": true, + "type": { + "primitive": "number" + } + } + ], + "symbolId": "lib/http-ingestion-endpoint:AppTheoryHttpIngestionEndpointStageOptions" + }, "@theory-cloud/apptheory-cdk.AppTheoryJobsTable": { "assembly": "@theory-cloud/apptheory-cdk", "base": "constructs.Construct", @@ -18965,5 +19843,5 @@ } }, "version": "0.18.2", - "fingerprint": "2aa7x1dhAo/AwIqP54auhmDQlKpY/W789oz+Pvfd5r0=" + "fingerprint": "WmhHkKjnxLJNc0gpxpH0gbUS5NpDx6KJGqRTaOhjuF8=" } \ No newline at end of file diff --git a/cdk/README.md b/cdk/README.md index 93bb264e..30c4f772 100644 --- a/cdk/README.md +++ b/cdk/README.md @@ -21,8 +21,10 @@ Status: early; start with a small “top 20%” set and grow based on real usage - `AppTheoryQueueConsumer` — SQS → Lambda event source mapping with full knobs. - `AppTheoryQueueProcessor` — SQS queue + consumer wiring (convenience wrapper over `AppTheoryQueue` + `AppTheoryQueueConsumer`). - `AppTheoryEventBridgeHandler` — EventBridge schedule/rule + Lambda target wiring. +- `AppTheoryEventBridgeBus` — custom EventBridge bus with explicit cross-account publish allowlist. - `AppTheoryDynamoDBStreamMapping` — DynamoDB Streams event source mapping + permissions. -- `AppTheoryEventBusTable` — DynamoDB table for AppTheory EventBus (`pk`/`sk` schema + required GSIs). +- `AppTheoryEventBusTable` — DynamoDB table for AppTheory EventBus (`pk`/`sk` schema + required GSIs + Lambda binding helper). +- `AppTheoryHttpIngestionEndpoint` — authenticated HTTP API v2 ingestion endpoint with Lambda request authorizer + throttling controls. - `AppTheoryDynamoTable` — general-purpose DynamoDB table construct (schema-explicit + consistent defaults). - `AppTheoryLambdaRole` — Lambda execution role helper (baseline + X-Ray + KMS + escape hatches). - `AppTheoryPathRoutedFrontend` — CloudFront distribution for multi-SPA routing + API origin (stage domain pattern). diff --git a/cdk/docs/README.md b/cdk/docs/README.md index 86b0dd65..ef82d8a4 100644 --- a/cdk/docs/README.md +++ b/cdk/docs/README.md @@ -25,7 +25,10 @@ - [MCP Server for Claude Remote MCP](./mcp-server-remote-mcp.md) — deploy Streamable HTTP `/mcp` (REST API v1 + streaming) for Claude connectors. - [MCP Protected Resource Metadata (OAuth)](./mcp-protected-resource.md) — add `/.well-known/oauth-protected-resource` (RFC9728) for Claude Remote MCP auth discovery. - [SQS Queue + Consumer Patterns](./sqs-queue-consumer.md) — queue-only, queue+consumer, and processor patterns (DLQs + partial batch failures). +- [EventBridge Bus](./eventbridge-bus.md) — custom EventBridge bus with explicit cross-account publish allowlist. - [EventBridge Rule Target](./eventbridge-rule-target.md) — rule → Lambda wiring for schedules and event patterns. +- [EventBus Table](./eventbus-table.md) — durable EventBus DynamoDB table with binding guidance for publish and replay flows. +- [HTTP Ingestion Endpoint](./http-ingestion-endpoint.md) — authenticated server-to-server ingestion endpoint with Lambda request authorizer. - [S3 Ingest Front Door](./s3-ingest.md) — secure bucket + optional EventBridge/SQS notifications for import workloads. - [CodeBuild Job Runner (Import Pipeline)](./codebuild-job-runner.md) — batch job runner for transforms/decrypt/backfills. - [Jobs Table (Import Pipeline)](./jobs-table.md) — opinionated DynamoDB table for job ledgers (schema + GSIs + TTL). diff --git a/cdk/docs/_contract.yaml b/cdk/docs/_contract.yaml index 253ee11e..34bd40e5 100644 --- a/cdk/docs/_contract.yaml +++ b/cdk/docs/_contract.yaml @@ -19,7 +19,10 @@ contract: - cdk/docs/mcp-server-remote-mcp.md - cdk/docs/mcp-protected-resource.md - cdk/docs/sqs-queue-consumer.md + - cdk/docs/eventbridge-bus.md - cdk/docs/eventbridge-rule-target.md + - cdk/docs/eventbus-table.md + - cdk/docs/http-ingestion-endpoint.md - cdk/docs/s3-ingest.md - cdk/docs/codebuild-job-runner.md - cdk/docs/jobs-table.md diff --git a/cdk/docs/api-reference.md b/cdk/docs/api-reference.md index bf0da75c..825454e8 100644 --- a/cdk/docs/api-reference.md +++ b/cdk/docs/api-reference.md @@ -20,11 +20,13 @@ AppTheory CDK exports constructs such as: - `AppTheoryQueueConsumer` (SQS → Lambda event source mapping with full options) - `AppTheoryQueueProcessor` (SQS + Lambda consumer wiring convenience wrapper) - `AppTheoryEventBridgeHandler` (EventBridge rule/schedule + Lambda target) +- `AppTheoryEventBridgeBus` (custom EventBridge bus + explicit cross-account publish allowlist) - `AppTheoryEventBridgeRuleTarget` (EventBridge rule → Lambda target; schedule XOR eventPattern) +- `AppTheoryHttpIngestionEndpoint` (authenticated HTTP API v2 endpoint + Lambda request authorizer + stage throttling) - `AppTheoryS3Ingest` (secure S3 ingest bucket + optional EventBridge/SQS notifications) - `AppTheoryCodeBuildJobRunner` (CodeBuild project wrapper for batch steps; safe defaults + logs + state-change hook) - `AppTheoryDynamoDBStreamMapping` (Streams mapping + permissions) -- `AppTheoryEventBusTable` (opinionated EventBus DynamoDB table + required GSIs) +- `AppTheoryEventBusTable` (opinionated EventBus DynamoDB table + required GSIs + Lambda binding helper) - `AppTheoryDynamoTable` (general-purpose DynamoDB table; schema-explicit + consistent defaults) - `AppTheoryJobsTable` (opinionated Jobs table for import pipelines; schema + GSIs + TTL) - `AppTheoryLambdaRole` (Lambda execution role helper; baseline + X-Ray + KMS + escape hatches) diff --git a/cdk/docs/eventbridge-bus.md b/cdk/docs/eventbridge-bus.md new file mode 100644 index 00000000..117267a2 --- /dev/null +++ b/cdk/docs/eventbridge-bus.md @@ -0,0 +1,38 @@ +# EventBridge Bus + +`AppTheoryEventBridgeBus` creates a custom EventBridge bus and applies an explicit cross-account `events:PutEvents` +allowlist. This is the AppTheory CDK primitive for partner-account relay patterns where publishers are onboarded one +AWS account at a time. + +## Key behavior + +- creates a custom EventBridge bus +- applies one resource-policy statement per allowed AWS account ID +- fails closed on invalid or duplicate literal account IDs + +## Example + +```typescript +import { AppTheoryEventBridgeBus } from "@theory-cloud/apptheory-cdk"; + +const relayBus = new AppTheoryEventBridgeBus(stack, "RelayBus", { + eventBusName: "compliance-advisor-relay", + description: "Beacon relay ingress for compliance-advisor", + allowedAccountIds: [ + "111111111111", + "222222222222", + ], +}); +``` + +## Incremental onboarding + +If partners are onboarded after the construct is created, call `allowAccount(...)` to add another explicit publisher: + +```typescript +relayBus.allowAccount("333333333333"); +``` + +## Related + +- `AppTheoryEventBridgeRuleTarget` attaches Lambda consumers to a custom bus. diff --git a/cdk/docs/eventbridge-rule-target.md b/cdk/docs/eventbridge-rule-target.md index 421310e6..03a5b36b 100644 --- a/cdk/docs/eventbridge-rule-target.md +++ b/cdk/docs/eventbridge-rule-target.md @@ -38,21 +38,52 @@ new AppTheoryEventBridgeRuleTarget(stack, "S3ObjectCreated", { ## Custom event bus example ```typescript -import { AppTheoryEventBridgeRuleTarget } from "@theory-cloud/apptheory-cdk"; -import * as events from "aws-cdk-lib/aws-events"; - -const bus = new events.EventBus(stack, "Bus"); +import { + AppTheoryEventBridgeBus, + AppTheoryEventBridgeRuleTarget, +} from "@theory-cloud/apptheory-cdk"; + +const bus = new AppTheoryEventBridgeBus(stack, "Bus", { + eventBusName: "partner-relay", + allowedAccountIds: ["111111111111"], +}); new AppTheoryEventBridgeRuleTarget(stack, "PartnerEvents", { handler: partnerLambda, - eventBus: bus, + eventBus: bus.eventBus, eventPattern: { source: ["com.partner.events"], }, }); ``` +## Compliance relay example + +This is the receive-side pattern for a cross-account relay bus feeding an ingestion Lambda: + +```typescript +import { + AppTheoryEventBridgeBus, + AppTheoryEventBridgeRuleTarget, +} from "@theory-cloud/apptheory-cdk"; + +const relayBus = new AppTheoryEventBridgeBus(stack, "RelayBus", { + eventBusName: "compliance-advisor-relay", + allowedAccountIds: ["111111111111"], +}); + +new AppTheoryEventBridgeRuleTarget(stack, "ComplianceIngress", { + handler: ingestionLambda, + eventBus: relayBus.eventBus, + ruleName: "compliance-beacon-ingress", + eventPattern: { + source: ["pay-theory.compliance-beacon"], + detailType: ["compliance.beacon.submitted"], + }, +}); +``` + ## Related +- `AppTheoryEventBridgeBus` creates the custom bus and cross-account publish allowlist. - `AppTheoryEventBridgeHandler` remains available for schedule-only stacks (back-compat). - diff --git a/cdk/docs/eventbus-table.md b/cdk/docs/eventbus-table.md new file mode 100644 index 00000000..5f801139 --- /dev/null +++ b/cdk/docs/eventbus-table.md @@ -0,0 +1,59 @@ +# EventBus Table + +`AppTheoryEventBusTable` provisions the DynamoDB schema required by AppTheory's durable EventBus runtime and now includes +a `bind(...)` helper so Lambda publishers and replay/query workers receive the right permissions plus a stable table-name +environment variable. + +## Key behavior + +- creates the AppTheory EventBus table schema (`pk` / `sk`) +- creates the required GSIs: + - `event-id-index` + - `tenant-timestamp-index` +- enables DynamoDB-backed durability with TTL and point-in-time recovery defaults +- binds Lambda functions for publish/query/replay flows + +## CDK example + +```typescript +import { AppTheoryEventBusTable } from "@theory-cloud/apptheory-cdk"; + +const table = new AppTheoryEventBusTable(stack, "Events", { + tableName: "apptheory-events", +}); + +table.bind(ingestionLambda); +table.bind(replayLambda, { + readOnly: true, + envVarName: "COMPLIANCE_REPLAY_TABLE", +}); +``` + +`bind(...)` sets `APPTHEORY_EVENTBUS_TABLE_NAME` by default and grants `readWrite` access unless `readOnly: true` is +requested for replay/query workers. + +## Retention and replay + +Infrastructure provides the durable table; runtime code configures retention and replay behavior: + +```go +bus := services.NewDynamoDBEventBus(db, services.EventBusConfig{ + TableName: os.Getenv("APPTHEORY_EVENTBUS_TABLE_NAME"), + TTL: 30 * 24 * time.Hour, +}) + +events, err := bus.Query(ctx, &services.EventQuery{ + TenantID: "merchant_123", + EventType: "compliance.beacon", + Limit: 100, +}) +``` + +- retention is controlled by `services.EventBusConfig.TTL` +- replay workers use `Query(...)` and `GetEvent(...)` to reprocess missed or failed events +- DynamoDB point-in-time recovery remains enabled by default for operational recovery + +## Related + +- `AppTheoryEventBridgeBus` handles cross-account ingress +- `AppTheoryEventBridgeRuleTarget` routes relay events to ingestion handlers diff --git a/cdk/docs/http-ingestion-endpoint.md b/cdk/docs/http-ingestion-endpoint.md new file mode 100644 index 00000000..e59a2a65 --- /dev/null +++ b/cdk/docs/http-ingestion-endpoint.md @@ -0,0 +1,49 @@ +# HTTP Ingestion Endpoint + +`AppTheoryHttpIngestionEndpoint` provisions an authenticated HTTPS endpoint for server-to-server submissions. It uses an +HTTP API v2 route backed by Lambda and a Lambda request authorizer whose identity source defaults to the +`Authorization` header to mirror the backoffice-api-authorizer pattern. + +## Key behavior + +- creates a `POST` endpoint for ingestion traffic +- uses a Lambda request authorizer with simple responses +- disables authorizer caching by default (`0s`) to match the upstream secret-key validation pattern +- supports stage throttling and access logging +- supports optional custom domains + +## Example + +```typescript +import { AppTheoryHttpIngestionEndpoint } from "@theory-cloud/apptheory-cdk"; + +const endpoint = new AppTheoryHttpIngestionEndpoint(stack, "Endpoint", { + handler: ingestionLambda, + authorizer: secretKeyAuthorizerLambda, + endpointPath: "/evidence", + stage: { + throttlingRateLimit: 50, + throttlingBurstLimit: 100, + }, +}); +``` + +The generated authorizer uses `Authorization` as its identity source by default: + +```text +$request.header.Authorization +``` + +This is an inference from the backoffice-api-authorizer infrastructure, which wires its HTTP API request authorizer to +that same header. + +## Validation and throttling + +- request authentication happens at the edge through the Lambda request authorizer +- request body/schema validation remains application-specific and should be enforced in the ingestion Lambda +- stage-level throttling is available through `stage.throttlingRateLimit` and `stage.throttlingBurstLimit` + +## Related + +- `AppTheoryEventBridgeBus` and `AppTheoryEventBridgeRuleTarget` cover the cross-account EventBridge relay path +- `AppTheoryEventBusTable` covers durable storage and replay after ingestion diff --git a/cdk/lib/api-domain.js b/cdk/lib/api-domain.js index 38ebf874..ed6647b7 100644 --- a/cdk/lib/api-domain.js +++ b/cdk/lib/api-domain.js @@ -55,7 +55,7 @@ class AppTheoryApiDomain extends constructs_1.Construct { } exports.AppTheoryApiDomain = AppTheoryApiDomain; _a = JSII_RTTI_SYMBOL_1; -AppTheoryApiDomain[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryApiDomain", version: "0.18.0-rc" }; +AppTheoryApiDomain[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryApiDomain", version: "0.18.2" }; function toRoute53RecordName(domainName, zone) { const fqdn = String(domainName ?? "").trim().replace(/\.$/, ""); const zoneName = String(zone.zoneName ?? "").trim().replace(/\.$/, ""); diff --git a/cdk/lib/app.js b/cdk/lib/app.js index a3bcbaff..a6741b98 100644 --- a/cdk/lib/app.js +++ b/cdk/lib/app.js @@ -112,5 +112,5 @@ class AppTheoryApp extends constructs_1.Construct { } exports.AppTheoryApp = AppTheoryApp; _a = JSII_RTTI_SYMBOL_1; -AppTheoryApp[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryApp", version: "0.18.0-rc" }; +AppTheoryApp[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryApp", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQXlEO0FBRXpELDBEQUEwRDtBQUMxRCxxREFBcUQ7QUFDckQsaURBQWlEO0FBRWpELDJDQUF1QztBQUV2Qyw2Q0FBa0Q7QUFDbEQseUNBQStDO0FBQy9DLHlDQUE4QztBQTRCOUMsTUFBYSxZQUFhLFNBQVEsc0JBQVM7SUFPekMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUNoRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO1FBQ3BGLENBQUM7UUFFRCxNQUFNLEdBQUcsR0FBMkIsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBRXJFLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztZQUN6QyxHQUFHLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBQ3BELENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNoQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsaUJBQWlCLElBQUksR0FBRyxPQUFPLFFBQVEsQ0FBQztZQUNoRSxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUM7WUFFNUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDeEQsU0FBUztnQkFDVCxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlO2dCQUNqRCxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO2dCQUM3RSxPQUFPLEVBQUUsS0FBSyxDQUFDLGVBQWU7b0JBQzVCLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtvQkFDdEUsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2IsbUJBQW1CLEVBQUUsS0FBSztnQkFDMUIsbUJBQW1CLEVBQUUsSUFBSTtnQkFDekIsVUFBVSxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVztnQkFDaEQsTUFBTSxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsa0JBQWtCO2FBQ25ELENBQUMsQ0FBQztZQUVILEdBQUcsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFDcEQsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDN0IsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixJQUFJLEdBQUcsT0FBTyxjQUFjLENBQUM7WUFFdkUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUMvRCxTQUFTO2dCQUNULFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLGVBQWU7Z0JBQ2pELFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO2dCQUNqRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtnQkFDNUQsbUJBQW1CLEVBQUUsS0FBSztnQkFDMUIsbUJBQW1CLEVBQUUsSUFBSTtnQkFDekIsVUFBVSxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVzthQUNqRCxDQUFDLENBQUM7WUFFSCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztZQUNwRCxHQUFHLENBQUMsK0JBQStCLEdBQUcsYUFBYSxDQUFDO1lBQ3BELEdBQUcsQ0FBQyxxQkFBcUIsR0FBRyxhQUFhLENBQUM7WUFDMUMsR0FBRyxDQUFDLGdCQUFnQixHQUFHLGFBQWEsQ0FBQztZQUNyQyxHQUFHLENBQUMsa0JBQWtCLEdBQUcsYUFBYSxDQUFDO1FBQ3pDLENBQUM7UUFFRCxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksNEJBQWlCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNoRCxZQUFZLEVBQUUsT0FBTztZQUNyQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWU7WUFDeEQsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksV0FBVztZQUNyQyxJQUFJO1lBQ0osV0FBVyxFQUFFLEdBQUc7WUFDaEIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLE9BQU8sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQztTQUN0RCxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLDJCQUFnQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7WUFDM0MsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNuQixPQUFPLEVBQUUsR0FBRyxPQUFPLE1BQU07U0FDMUIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDL0MsTUFBTSxJQUFJLEtBQUssQ0FBQyx3RkFBd0YsQ0FBQyxDQUFDO1lBQzVHLENBQUM7WUFFRCxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRTNGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSwrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO2dCQUNuRCxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7Z0JBQzVCLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHO2dCQUNyQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxZQUFZO2dCQUMvQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7YUFDN0IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdCLElBQUksdUJBQVMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRTtZQUM3QixXQUFXLEVBQUUsMEJBQTBCO1NBQ3hDLENBQUMsQ0FBQztRQUVILElBQUksdUJBQVMsQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFO1lBQ25DLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZO1lBQzlCLFdBQVcsRUFBRSxzQkFBc0I7U0FDcEMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsSUFBSSx1QkFBUyxDQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBRTtnQkFDeEMsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUztnQkFDbkMsV0FBVyxFQUFFLHFCQUFxQjthQUNuQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs7QUF6SEgsb0NBMEhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuT3V0cHV0LCBEdXJhdGlvbiwgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGFwaWd3djIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5djJcIjtcbmltcG9ydCAqIGFzIGFjbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0ICogYXMgZHluYW1vZGIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1keW5hbW9kYlwiO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgdHlwZSAqIGFzIHJvdXRlNTMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbXBvcnQgeyBBcHBUaGVvcnlBcGlEb21haW4gfSBmcm9tIFwiLi9hcGktZG9tYWluXCI7XG5pbXBvcnQgeyBBcHBUaGVvcnlGdW5jdGlvbiB9IGZyb20gXCIuL2Z1bmN0aW9uXCI7XG5pbXBvcnQgeyBBcHBUaGVvcnlIdHRwQXBpIH0gZnJvbSBcIi4vaHR0cC1hcGlcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBcHBUaGVvcnlBcHBQcm9wcyB7XG4gIHJlYWRvbmx5IGFwcE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgY29kZUFzc2V0UGF0aD86IHN0cmluZztcbiAgcmVhZG9ubHkgY29kZT86IGxhbWJkYS5Db2RlO1xuICByZWFkb25seSBydW50aW1lPzogbGFtYmRhLlJ1bnRpbWU7XG4gIHJlYWRvbmx5IGhhbmRsZXI/OiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICByZWFkb25seSBtZW1vcnlTaXplPzogbnVtYmVyO1xuICByZWFkb25seSB0aW1lb3V0U2Vjb25kcz86IG51bWJlcjtcblxuICByZWFkb25seSBlbmFibGVEYXRhYmFzZT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGRhdGFiYXNlVGFibGVOYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBkYXRhYmFzZVBhcnRpdGlvbktleT86IHN0cmluZztcbiAgcmVhZG9ubHkgZGF0YWJhc2VTb3J0S2V5Pzogc3RyaW5nO1xuICByZWFkb25seSBkYXRhYmFzZVRhYmxlPzogZHluYW1vZGIuSVRhYmxlO1xuXG4gIHJlYWRvbmx5IGVuYWJsZVJhdGVMaW1pdGluZz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHJhdGVMaW1pdFRhYmxlTmFtZT86IHN0cmluZztcblxuICByZWFkb25seSBkb21haW5OYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBjZXJ0aWZpY2F0ZUFybj86IHN0cmluZztcbiAgcmVhZG9ubHkgaG9zdGVkWm9uZT86IHJvdXRlNTMuSUhvc3RlZFpvbmU7XG4gIHJlYWRvbmx5IHN0YWdlPzogYXBpZ3d2Mi5JU3RhZ2U7XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBUaGVvcnlBcHAgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgYXBpOiBBcHBUaGVvcnlIdHRwQXBpO1xuICBwdWJsaWMgcmVhZG9ubHkgZm46IEFwcFRoZW9yeUZ1bmN0aW9uO1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YWJhc2VUYWJsZT86IGR5bmFtb2RiLklUYWJsZTtcbiAgcHVibGljIHJlYWRvbmx5IHJhdGVMaW1pdFRhYmxlPzogZHluYW1vZGIuSVRhYmxlO1xuICBwdWJsaWMgcmVhZG9ubHkgZG9tYWluPzogQXBwVGhlb3J5QXBpRG9tYWluO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBcHBUaGVvcnlBcHBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBhcHBOYW1lID0gU3RyaW5nKHByb3BzLmFwcE5hbWUgPz8gXCJcIikudHJpbSgpO1xuICAgIGlmICghYXBwTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXBwVGhlb3J5QXBwIHJlcXVpcmVzIHByb3BzLmFwcE5hbWVcIik7XG4gICAgfVxuXG4gICAgY29uc3QgY29kZSA9IHByb3BzLmNvZGUgPz8gKHByb3BzLmNvZGVBc3NldFBhdGggPyBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocHJvcHMuY29kZUFzc2V0UGF0aCkgOiB1bmRlZmluZWQpO1xuICAgIGlmICghY29kZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXBwVGhlb3J5QXBwIHJlcXVpcmVzIGVpdGhlciBwcm9wcy5jb2RlIG9yIHByb3BzLmNvZGVBc3NldFBhdGhcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZW52OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0geyAuLi4ocHJvcHMuZW52aXJvbm1lbnQgPz8ge30pIH07XG5cbiAgICBpZiAocHJvcHMuZGF0YWJhc2VUYWJsZSkge1xuICAgICAgdGhpcy5kYXRhYmFzZVRhYmxlID0gcHJvcHMuZGF0YWJhc2VUYWJsZTtcbiAgICAgIGVudi5EWU5BTU9EQl9UQUJMRSA9IHRoaXMuZGF0YWJhc2VUYWJsZS50YWJsZU5hbWU7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5lbmFibGVEYXRhYmFzZSkge1xuICAgICAgY29uc3QgdGFibGVOYW1lID0gcHJvcHMuZGF0YWJhc2VUYWJsZU5hbWUgPz8gYCR7YXBwTmFtZX0tdGFibGVgO1xuICAgICAgY29uc3QgcGFydGl0aW9uS2V5TmFtZSA9IHByb3BzLmRhdGFiYXNlUGFydGl0aW9uS2V5ID8/IFwiSURcIjtcblxuICAgICAgdGhpcy5kYXRhYmFzZVRhYmxlID0gbmV3IGR5bmFtb2RiLlRhYmxlKHRoaXMsIFwiRGF0YWJhc2VcIiwge1xuICAgICAgICB0YWJsZU5hbWUsXG4gICAgICAgIGJpbGxpbmdNb2RlOiBkeW5hbW9kYi5CaWxsaW5nTW9kZS5QQVlfUEVSX1JFUVVFU1QsXG4gICAgICAgIHBhcnRpdGlvbktleTogeyBuYW1lOiBwYXJ0aXRpb25LZXlOYW1lLCB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyB9LFxuICAgICAgICBzb3J0S2V5OiBwcm9wcy5kYXRhYmFzZVNvcnRLZXlcbiAgICAgICAgICA/IHsgbmFtZTogcHJvcHMuZGF0YWJhc2VTb3J0S2V5LCB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyB9XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIHRpbWVUb0xpdmVBdHRyaWJ1dGU6IFwidHRsXCIsXG4gICAgICAgIHBvaW50SW5UaW1lUmVjb3Zlcnk6IHRydWUsXG4gICAgICAgIGVuY3J5cHRpb246IGR5bmFtb2RiLlRhYmxlRW5jcnlwdGlvbi5BV1NfTUFOQUdFRCxcbiAgICAgICAgc3RyZWFtOiBkeW5hbW9kYi5TdHJlYW1WaWV3VHlwZS5ORVdfQU5EX09MRF9JTUFHRVMsXG4gICAgICB9KTtcblxuICAgICAgZW52LkRZTkFNT0RCX1RBQkxFID0gdGhpcy5kYXRhYmFzZVRhYmxlLnRhYmxlTmFtZTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuZW5hYmxlUmF0ZUxpbWl0aW5nKSB7XG4gICAgICBjb25zdCB0YWJsZU5hbWUgPSBwcm9wcy5yYXRlTGltaXRUYWJsZU5hbWUgPz8gYCR7YXBwTmFtZX0tcmF0ZS1saW1pdHNgO1xuXG4gICAgICB0aGlzLnJhdGVMaW1pdFRhYmxlID0gbmV3IGR5bmFtb2RiLlRhYmxlKHRoaXMsIFwiUmF0ZUxpbWl0VGFibGVcIiwge1xuICAgICAgICB0YWJsZU5hbWUsXG4gICAgICAgIGJpbGxpbmdNb2RlOiBkeW5hbW9kYi5CaWxsaW5nTW9kZS5QQVlfUEVSX1JFUVVFU1QsXG4gICAgICAgIHBhcnRpdGlvbktleTogeyBuYW1lOiBcInBrXCIsIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HIH0sXG4gICAgICAgIHNvcnRLZXk6IHsgbmFtZTogXCJza1wiLCB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyB9LFxuICAgICAgICB0aW1lVG9MaXZlQXR0cmlidXRlOiBcInR0bFwiLFxuICAgICAgICBwb2ludEluVGltZVJlY292ZXJ5OiB0cnVlLFxuICAgICAgICBlbmNyeXB0aW9uOiBkeW5hbW9kYi5UYWJsZUVuY3J5cHRpb24uQVdTX01BTkFHRUQsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcmF0ZUxpbWl0TmFtZSA9IHRoaXMucmF0ZUxpbWl0VGFibGUudGFibGVOYW1lO1xuICAgICAgZW52LkFQUFRIRU9SWV9SQVRFX0xJTUlUX1RBQkxFX05BTUUgPSByYXRlTGltaXROYW1lO1xuICAgICAgZW52LlJBVEVfTElNSVRfVEFCTEVfTkFNRSA9IHJhdGVMaW1pdE5hbWU7XG4gICAgICBlbnYuUkFURV9MSU1JVF9UQUJMRSA9IHJhdGVMaW1pdE5hbWU7XG4gICAgICBlbnYuTElNSVRFRF9UQUJMRV9OQU1FID0gcmF0ZUxpbWl0TmFtZTtcbiAgICB9XG5cbiAgICB0aGlzLmZuID0gbmV3IEFwcFRoZW9yeUZ1bmN0aW9uKHRoaXMsIFwiRnVuY3Rpb25cIiwge1xuICAgICAgZnVuY3Rpb25OYW1lOiBhcHBOYW1lLFxuICAgICAgcnVudGltZTogcHJvcHMucnVudGltZSA/PyBsYW1iZGEuUnVudGltZS5QUk9WSURFRF9BTDIwMjMsXG4gICAgICBoYW5kbGVyOiBwcm9wcy5oYW5kbGVyID8/IFwiYm9vdHN0cmFwXCIsXG4gICAgICBjb2RlLFxuICAgICAgZW52aXJvbm1lbnQ6IGVudixcbiAgICAgIG1lbW9yeVNpemU6IHByb3BzLm1lbW9yeVNpemUsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKHByb3BzLnRpbWVvdXRTZWNvbmRzID8/IDMwKSxcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmRhdGFiYXNlVGFibGUpIHtcbiAgICAgIHRoaXMuZGF0YWJhc2VUYWJsZS5ncmFudFJlYWRXcml0ZURhdGEodGhpcy5mbi5mbik7XG4gICAgfVxuICAgIGlmICh0aGlzLnJhdGVMaW1pdFRhYmxlKSB7XG4gICAgICB0aGlzLnJhdGVMaW1pdFRhYmxlLmdyYW50UmVhZFdyaXRlRGF0YSh0aGlzLmZuLmZuKTtcbiAgICB9XG5cbiAgICB0aGlzLmFwaSA9IG5ldyBBcHBUaGVvcnlIdHRwQXBpKHRoaXMsIFwiQVBJXCIsIHtcbiAgICAgIGhhbmRsZXI6IHRoaXMuZm4uZm4sXG4gICAgICBhcGlOYW1lOiBgJHthcHBOYW1lfS1hcGlgLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLmRvbWFpbk5hbWUgfHwgcHJvcHMuY2VydGlmaWNhdGVBcm4pIHtcbiAgICAgIGlmICghcHJvcHMuZG9tYWluTmFtZSB8fCAhcHJvcHMuY2VydGlmaWNhdGVBcm4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXBwVGhlb3J5QXBwIHJlcXVpcmVzIGJvdGggcHJvcHMuZG9tYWluTmFtZSBhbmQgcHJvcHMuY2VydGlmaWNhdGVBcm4gZm9yIGN1c3RvbSBkb21haW5cIik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNlcnQgPSBhY20uQ2VydGlmaWNhdGUuZnJvbUNlcnRpZmljYXRlQXJuKHRoaXMsIFwiQ2VydGlmaWNhdGVcIiwgcHJvcHMuY2VydGlmaWNhdGVBcm4pO1xuXG4gICAgICB0aGlzLmRvbWFpbiA9IG5ldyBBcHBUaGVvcnlBcGlEb21haW4odGhpcywgXCJEb21haW5cIiwge1xuICAgICAgICBkb21haW5OYW1lOiBwcm9wcy5kb21haW5OYW1lLFxuICAgICAgICBjZXJ0aWZpY2F0ZTogY2VydCxcbiAgICAgICAgaHR0cEFwaTogdGhpcy5hcGkuYXBpLFxuICAgICAgICBzdGFnZTogcHJvcHMuc3RhZ2UgPz8gdGhpcy5hcGkuYXBpLmRlZmF1bHRTdGFnZSxcbiAgICAgICAgaG9zdGVkWm9uZTogcHJvcHMuaG9zdGVkWm9uZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YWNrID0gU3RhY2sub2YodGhpcyk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHN0YWNrLCBcIkFwaVVybFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5hcGkuYXBpLnVybCA/PyBcIlwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiQVBJIEdhdGV3YXkgZW5kcG9pbnQgVVJMXCIsXG4gICAgfSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHN0YWNrLCBcIkZ1bmN0aW9uTmFtZVwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5mbi5mbi5mdW5jdGlvbk5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogXCJMYW1iZGEgZnVuY3Rpb24gbmFtZVwiLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuZGF0YWJhc2VUYWJsZSkge1xuICAgICAgbmV3IENmbk91dHB1dChzdGFjaywgXCJEYXRhYmFzZVRhYmxlTmFtZVwiLCB7XG4gICAgICAgIHZhbHVlOiB0aGlzLmRhdGFiYXNlVGFibGUudGFibGVOYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJEeW5hbW9EQiB0YWJsZSBuYW1lXCIsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/cdk/lib/certificate.js b/cdk/lib/certificate.js index 331e4b02..3d23271d 100644 --- a/cdk/lib/certificate.js +++ b/cdk/lib/certificate.js @@ -27,5 +27,5 @@ class AppTheoryCertificate extends constructs_1.Construct { } exports.AppTheoryCertificate = AppTheoryCertificate; _a = JSII_RTTI_SYMBOL_1; -AppTheoryCertificate[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryCertificate", version: "0.18.0-rc" }; +AppTheoryCertificate[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryCertificate", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZXJ0aWZpY2F0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBEQUEwRDtBQUUxRCwyQ0FBd0Q7QUFXeEQsTUFBYSxvQkFBcUIsU0FBUSxzQkFBUztJQUdqRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWdDO1FBQ3hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztRQUNwRSxDQUFDO1FBRUQsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDO1FBRWhFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDMUQsVUFBVTtZQUNWLHVCQUF1QixFQUFFLEtBQUssQ0FBQyx1QkFBdUI7WUFDdEQsVUFBVSxFQUFFLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQzdELDBCQUEwQixFQUFFLEtBQUssQ0FBQywwQkFBMEIsSUFBSSxJQUFJO1lBQ3BFLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtTQUN2QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQXNCO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsRCxDQUFDOztBQXhCSCxvREF5QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhY20gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXJcIjtcbmltcG9ydCAqIGFzIHJvdXRlNTMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIHR5cGUgSUNvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwVGhlb3J5Q2VydGlmaWNhdGVQcm9wcyB7XG4gIHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgc3ViamVjdEFsdGVybmF0aXZlTmFtZXM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgaG9zdGVkWm9uZTogcm91dGU1My5JSG9zdGVkWm9uZTtcbiAgcmVhZG9ubHkgdmFsaWRhdGlvblpvbmU/OiByb3V0ZTUzLklIb3N0ZWRab25lO1xuICByZWFkb25seSB0cmFuc3BhcmVuY3lMb2dnaW5nRW5hYmxlZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGNlcnRpZmljYXRlTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEFwcFRoZW9yeUNlcnRpZmljYXRlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGNlcnRpZmljYXRlOiBhY20uQ2VydGlmaWNhdGU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFwcFRoZW9yeUNlcnRpZmljYXRlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgZG9tYWluTmFtZSA9IFN0cmluZyhwcm9wcy5kb21haW5OYW1lID8/IFwiXCIpLnRyaW0oKTtcbiAgICBpZiAoIWRvbWFpbk5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkFwcFRoZW9yeUNlcnRpZmljYXRlIHJlcXVpcmVzIHByb3BzLmRvbWFpbk5hbWVcIik7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdGlvblpvbmUgPSBwcm9wcy52YWxpZGF0aW9uWm9uZSA/PyBwcm9wcy5ob3N0ZWRab25lO1xuXG4gICAgdGhpcy5jZXJ0aWZpY2F0ZSA9IG5ldyBhY20uQ2VydGlmaWNhdGUodGhpcywgXCJDZXJ0aWZpY2F0ZVwiLCB7XG4gICAgICBkb21haW5OYW1lLFxuICAgICAgc3ViamVjdEFsdGVybmF0aXZlTmFtZXM6IHByb3BzLnN1YmplY3RBbHRlcm5hdGl2ZU5hbWVzLFxuICAgICAgdmFsaWRhdGlvbjogYWNtLkNlcnRpZmljYXRlVmFsaWRhdGlvbi5mcm9tRG5zKHZhbGlkYXRpb25ab25lKSxcbiAgICAgIHRyYW5zcGFyZW5jeUxvZ2dpbmdFbmFibGVkOiBwcm9wcy50cmFuc3BhcmVuY3lMb2dnaW5nRW5hYmxlZCA/PyB0cnVlLFxuICAgICAgY2VydGlmaWNhdGVOYW1lOiBwcm9wcy5jZXJ0aWZpY2F0ZU5hbWUsXG4gICAgfSk7XG4gIH1cblxuICBhZGREZXBlbmRlbmN5KGRlcGVuZGVuY3k6IElDb25zdHJ1Y3QpOiB2b2lkIHtcbiAgICB0aGlzLmNlcnRpZmljYXRlLm5vZGUuYWRkRGVwZW5kZW5jeShkZXBlbmRlbmN5KTtcbiAgfVxufVxuXG4iXX0= \ No newline at end of file diff --git a/cdk/lib/codebuild-job-runner.js b/cdk/lib/codebuild-job-runner.js index 1977f4e0..1aa88a87 100644 --- a/cdk/lib/codebuild-job-runner.js +++ b/cdk/lib/codebuild-job-runner.js @@ -107,5 +107,5 @@ class AppTheoryCodeBuildJobRunner extends constructs_1.Construct { } exports.AppTheoryCodeBuildJobRunner = AppTheoryCodeBuildJobRunner; _a = JSII_RTTI_SYMBOL_1; -AppTheoryCodeBuildJobRunner[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryCodeBuildJobRunner", version: "0.18.0-rc" }; +AppTheoryCodeBuildJobRunner[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryCodeBuildJobRunner", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWJ1aWxkLWpvYi1ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb2RlYnVpbGQtam9iLXJ1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF1QztBQUN2Qyx1REFBdUQ7QUFFdkQsaURBQWlEO0FBQ2pELDJDQUEyQztBQUUzQyw2Q0FBNkM7QUFHN0MsMkNBQXVDO0FBbUd2Qzs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsMkJBQTRCLFNBQVEsc0JBQVM7SUFNeEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1QztRQUMvRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDckMsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDO1NBQy9ELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRO1lBQ1gsS0FBSyxDQUFDLFFBQVE7Z0JBQ2QsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7b0JBQ2xDLFNBQVMsRUFBRSxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUztpQkFDOUQsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDcEQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakQsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM5QyxXQUFXLEVBQUU7Z0JBQ1gsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLElBQUksU0FBUyxDQUFDLGVBQWUsQ0FBQyxZQUFZO2dCQUN0RSxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUs7Z0JBQzdELG9CQUFvQixFQUFFLEtBQUssQ0FBQyxvQkFBb0I7YUFDakQ7WUFDRCxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDbEMsT0FBTyxFQUFFO2dCQUNQLFVBQVUsRUFBRTtvQkFDVixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7aUJBQ3hCO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxLQUFLLE1BQU0sU0FBUyxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7Z0JBQzlELFFBQVEsRUFBRSxLQUFLLENBQUMsbUJBQW1CO2dCQUNuQyxXQUFXLEVBQUUsS0FBSyxDQUFDLDBCQUEwQjtnQkFDN0MsT0FBTyxFQUFFLEtBQUssQ0FBQyxzQkFBc0IsSUFBSSxJQUFJO2dCQUM3QyxRQUFRLEVBQUUsS0FBSyxDQUFDLG1CQUFtQjtnQkFDbkMsWUFBWSxFQUFFO29CQUNaLE1BQU0sRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDekIsVUFBVSxFQUFFLENBQUMsOEJBQThCLENBQUM7b0JBQzVDLE1BQU0sRUFBRTt3QkFDTixjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztxQkFDM0M7aUJBQ0Y7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVyxDQUFDLE1BQWtCO1FBQ25DLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVksQ0FBQyxNQUFrQjtRQUNwQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxlQUFlLENBQUMsS0FBc0I7UUFDM0MsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0JBQWdCLENBQUMsS0FBc0I7UUFDNUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZUFBZSxDQUFDLE1BQThCO1FBQ25ELE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWUsQ0FBQyxTQUE4QjtRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuQyxDQUFDOztBQXJHSCxrRUFzR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgY29kZWJ1aWxkIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkXCI7XG5pbXBvcnQgdHlwZSAqIGFzIGR5bmFtb2RiIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGJcIjtcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWV2ZW50c1wiO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgdHlwZSAqIGFzIGttcyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWttc1wiO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIjtcbmltcG9ydCB0eXBlICogYXMgczMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHR5cGUgKiBhcyBzZWNyZXRzbWFuYWdlciBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcFRoZW9yeUNvZGVCdWlsZEpvYlJ1bm5lclByb3BzIHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHByb2plY3QgbmFtZS5cbiAgICogQGRlZmF1bHQgLSBDbG91ZEZvcm1hdGlvbi1nZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlc2NyaXB0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHNwZWNpZmljYXRpb24uXG4gICAqL1xuICByZWFkb25seSBidWlsZFNwZWM6IGNvZGVidWlsZC5CdWlsZFNwZWM7XG5cbiAgLyoqXG4gICAqIENvZGVCdWlsZCBzb3VyY2UgY29uZmlndXJhdGlvbi5cbiAgICogQGRlZmF1bHQgLSBOb1NvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlPzogY29kZWJ1aWxkLklTb3VyY2U7XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGltYWdlLlxuICAgKiBAZGVmYXVsdCBjb2RlYnVpbGQuTGludXhCdWlsZEltYWdlLlNUQU5EQVJEXzdfMFxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRJbWFnZT86IGNvZGVidWlsZC5JQnVpbGRJbWFnZTtcblxuICAvKipcbiAgICogQ29tcHV0ZSB0eXBlLlxuICAgKiBAZGVmYXVsdCBjb2RlYnVpbGQuQ29tcHV0ZVR5cGUuU01BTExcbiAgICovXG4gIHJlYWRvbmx5IGNvbXB1dGVUeXBlPzogY29kZWJ1aWxkLkNvbXB1dGVUeXBlO1xuXG4gIC8qKlxuICAgKiBUaW1lb3V0IGZvciBhIHNpbmdsZSBidWlsZC5cbiAgICogQGRlZmF1bHQgRHVyYXRpb24ubWludXRlcyg2MClcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogRW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnRWYXJpYWJsZXM/OiBSZWNvcmQ8c3RyaW5nLCBjb2RlYnVpbGQuQnVpbGRFbnZpcm9ubWVudFZhcmlhYmxlPjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgS01TIGtleSBmb3IgZW5jcnlwdGluZyBidWlsZCBhcnRpZmFjdHMvbG9ncy5cbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuSUtleTtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBJQU0gcG9saWN5IHN0YXRlbWVudHMgdG8gYXR0YWNoIHRvIHRoZSBDb2RlQnVpbGQgcm9sZS5cbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxTdGF0ZW1lbnRzPzogaWFtLlBvbGljeVN0YXRlbWVudFtdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBsb2cgZ3JvdXAgdG8gdXNlIGZvciBDb2RlQnVpbGQgbG9ncy5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG5cbiAgLyoqXG4gICAqIFJldGVudGlvbiBmb3IgYXV0by1tYW5hZ2VkIGxvZyBncm91cC5cbiAgICogQGRlZmF1bHQgbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9NT05USFxuICAgKi9cbiAgcmVhZG9ubHkgbG9nUmV0ZW50aW9uPzogbG9ncy5SZXRlbnRpb25EYXlzO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNyZWF0ZSBhbiBFdmVudEJyaWRnZSBydWxlIGZvciBidWlsZCBzdGF0ZSBjaGFuZ2VzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlU3RhdGVDaGFuZ2VSdWxlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgcnVsZSBuYW1lIGZvciB0aGUgc3RhdGUgY2hhbmdlIHJ1bGUuXG4gICAqIEBkZWZhdWx0IC0gQ2xvdWRGb3JtYXRpb24tZ2VuZXJhdGVkIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlUnVsZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHJ1bGUgZGVzY3JpcHRpb24gZm9yIHRoZSBzdGF0ZSBjaGFuZ2UgcnVsZS5cbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlUnVsZURlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBzdGF0ZSBjaGFuZ2UgcnVsZSBzaG91bGQgYmUgZW5hYmxlZC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGVDaGFuZ2VSdWxlRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIEV2ZW50QnVzIGZvciB0aGUgc3RhdGUgY2hhbmdlIHJ1bGUuXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBldmVudCBidXNcbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlRXZlbnRCdXM/OiBldmVudHMuSUV2ZW50QnVzO1xufVxuXG4vKipcbiAqIE9waW5pb25hdGVkIENvZGVCdWlsZCB3cmFwcGVyIGZvciBydW5uaW5nIGltcG9ydC9iYXRjaCBqb2JzIG91dHNpZGUgTGFtYmRhLlxuICpcbiAqIFRoaXMgY29uc3RydWN0IGNyZWF0ZXMgYSBDb2RlQnVpbGQgcHJvamVjdCB3aXRoOlxuICogLSBzYWZlIGRlZmF1bHRzIGZvciBpbWFnZS9jb21wdXRlL3RpbWVvdXRcbiAqIC0gZGV0ZXJtaW5pc3RpYyBsb2cgZ3JvdXAgcmV0ZW50aW9uIChhdXRvLW1hbmFnZWQgYnkgZGVmYXVsdClcbiAqIC0gYW4gb3B0aW9uYWwgRXZlbnRCcmlkZ2Ugc3RhdGUtY2hhbmdlIHJ1bGUgaG9va1xuICogLSBlcmdvbm9taWMgZ3JhbnQgaGVscGVycyBmb3IgY29tbW9uIEFXUyByZXNvdXJjZXNcbiAqL1xuZXhwb3J0IGNsYXNzIEFwcFRoZW9yeUNvZGVCdWlsZEpvYlJ1bm5lciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBwcm9qZWN0OiBjb2RlYnVpbGQuUHJvamVjdDtcbiAgcHVibGljIHJlYWRvbmx5IHJvbGU6IGlhbS5Sb2xlO1xuICBwdWJsaWMgcmVhZG9ubHkgbG9nR3JvdXA6IGxvZ3MuSUxvZ0dyb3VwO1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdGVDaGFuZ2VSdWxlPzogZXZlbnRzLlJ1bGU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFwcFRoZW9yeUNvZGVCdWlsZEpvYlJ1bm5lclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMucm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCBcIlJvbGVcIiwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJjb2RlYnVpbGQuYW1hem9uYXdzLmNvbVwiKSxcbiAgICB9KTtcblxuICAgIHRoaXMubG9nR3JvdXAgPVxuICAgICAgcHJvcHMubG9nR3JvdXAgPz9cbiAgICAgIG5ldyBsb2dzLkxvZ0dyb3VwKHRoaXMsIFwiTG9nR3JvdXBcIiwge1xuICAgICAgICByZXRlbnRpb246IHByb3BzLmxvZ1JldGVudGlvbiA/PyBsb2dzLlJldGVudGlvbkRheXMuT05FX01PTlRILFxuICAgICAgfSk7XG4gICAgdGhpcy5sb2dHcm91cC5ncmFudFdyaXRlKHRoaXMucm9sZSk7XG5cbiAgICB0aGlzLnByb2plY3QgPSBuZXcgY29kZWJ1aWxkLlByb2plY3QodGhpcywgXCJQcm9qZWN0XCIsIHtcbiAgICAgIHJvbGU6IHRoaXMucm9sZSxcbiAgICAgIHByb2plY3ROYW1lOiBwcm9wcy5wcm9qZWN0TmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIC4uLihwcm9wcy5zb3VyY2UgPyB7IHNvdXJjZTogcHJvcHMuc291cmNlIH0gOiB7fSksXG4gICAgICBidWlsZFNwZWM6IHByb3BzLmJ1aWxkU3BlYyxcbiAgICAgIHRpbWVvdXQ6IHByb3BzLnRpbWVvdXQgPz8gRHVyYXRpb24ubWludXRlcyg2MCksXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBidWlsZEltYWdlOiBwcm9wcy5idWlsZEltYWdlID8/IGNvZGVidWlsZC5MaW51eEJ1aWxkSW1hZ2UuU1RBTkRBUkRfN18wLFxuICAgICAgICBjb21wdXRlVHlwZTogcHJvcHMuY29tcHV0ZVR5cGUgPz8gY29kZWJ1aWxkLkNvbXB1dGVUeXBlLlNNQUxMLFxuICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlczogcHJvcHMuZW52aXJvbm1lbnRWYXJpYWJsZXMsXG4gICAgICB9LFxuICAgICAgZW5jcnlwdGlvbktleTogcHJvcHMuZW5jcnlwdGlvbktleSxcbiAgICAgIGxvZ2dpbmc6IHtcbiAgICAgICAgY2xvdWRXYXRjaDoge1xuICAgICAgICAgIGxvZ0dyb3VwOiB0aGlzLmxvZ0dyb3VwLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGZvciAoY29uc3Qgc3RhdGVtZW50IG9mIHByb3BzLmFkZGl0aW9uYWxTdGF0ZW1lbnRzID8/IFtdKSB7XG4gICAgICB0aGlzLnJvbGUuYWRkVG9Qb2xpY3koc3RhdGVtZW50KTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuZW5hYmxlU3RhdGVDaGFuZ2VSdWxlKSB7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlUnVsZSA9IG5ldyBldmVudHMuUnVsZSh0aGlzLCBcIlN0YXRlQ2hhbmdlUnVsZVwiLCB7XG4gICAgICAgIHJ1bGVOYW1lOiBwcm9wcy5zdGF0ZUNoYW5nZVJ1bGVOYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuc3RhdGVDaGFuZ2VSdWxlRGVzY3JpcHRpb24sXG4gICAgICAgIGVuYWJsZWQ6IHByb3BzLnN0YXRlQ2hhbmdlUnVsZUVuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgICAgZXZlbnRCdXM6IHByb3BzLnN0YXRlQ2hhbmdlRXZlbnRCdXMsXG4gICAgICAgIGV2ZW50UGF0dGVybjoge1xuICAgICAgICAgIHNvdXJjZTogW1wiYXdzLmNvZGVidWlsZFwiXSxcbiAgICAgICAgICBkZXRhaWxUeXBlOiBbXCJDb2RlQnVpbGQgQnVpbGQgU3RhdGUgQ2hhbmdlXCJdLFxuICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgXCJwcm9qZWN0LW5hbWVcIjogW3RoaXMucHJvamVjdC5wcm9qZWN0TmFtZV0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBTMyByZWFkIHBlcm1pc3Npb25zIHRvIHRoZSBwcm9qZWN0LlxuICAgKi9cbiAgcHVibGljIGdyYW50UzNSZWFkKGJ1Y2tldDogczMuSUJ1Y2tldCk6IHZvaWQge1xuICAgIGJ1Y2tldC5ncmFudFJlYWQodGhpcy5wcm9qZWN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBTMyB3cml0ZSBwZXJtaXNzaW9ucyB0byB0aGUgcHJvamVjdC5cbiAgICovXG4gIHB1YmxpYyBncmFudFMzV3JpdGUoYnVja2V0OiBzMy5JQnVja2V0KTogdm9pZCB7XG4gICAgYnVja2V0LmdyYW50V3JpdGUodGhpcy5wcm9qZWN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBEeW5hbW9EQiByZWFkIHBlcm1pc3Npb25zIHRvIHRoZSBwcm9qZWN0LlxuICAgKi9cbiAgcHVibGljIGdyYW50RHluYW1vUmVhZCh0YWJsZTogZHluYW1vZGIuSVRhYmxlKTogdm9pZCB7XG4gICAgdGFibGUuZ3JhbnRSZWFkRGF0YSh0aGlzLnByb2plY3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IER5bmFtb0RCIHdyaXRlIHBlcm1pc3Npb25zIHRvIHRoZSBwcm9qZWN0LlxuICAgKi9cbiAgcHVibGljIGdyYW50RHluYW1vV3JpdGUodGFibGU6IGR5bmFtb2RiLklUYWJsZSk6IHZvaWQge1xuICAgIHRhYmxlLmdyYW50V3JpdGVEYXRhKHRoaXMucHJvamVjdCk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgU2VjcmV0cyBNYW5hZ2VyIHJlYWQgcGVybWlzc2lvbnMgdG8gdGhlIHByb2plY3QuXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRTZWNyZXRSZWFkKHNlY3JldDogc2VjcmV0c21hbmFnZXIuSVNlY3JldCk6IHZvaWQge1xuICAgIHNlY3JldC5ncmFudFJlYWQodGhpcy5wcm9qZWN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggYSBwb2xpY3kgc3RhdGVtZW50IHRvIHRoZSBDb2RlQnVpbGQgcm9sZS5cbiAgICovXG4gIHB1YmxpYyBhZGRUb1JvbGVQb2xpY3koc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5yb2xlLmFkZFRvUG9saWN5KHN0YXRlbWVudCk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/cdk/lib/dynamo-table.js b/cdk/lib/dynamo-table.js index 66210521..a6b7a8a9 100644 --- a/cdk/lib/dynamo-table.js +++ b/cdk/lib/dynamo-table.js @@ -91,5 +91,5 @@ class AppTheoryDynamoTable extends constructs_1.Construct { } exports.AppTheoryDynamoTable = AppTheoryDynamoTable; _a = JSII_RTTI_SYMBOL_1; -AppTheoryDynamoTable[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryDynamoTable", version: "0.18.0-rc" }; +AppTheoryDynamoTable[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryDynamoTable", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1vLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZHluYW1vLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQTRDO0FBQzVDLHFEQUFxRDtBQUdyRCwyQ0FBdUM7QUF1Q3ZDLE1BQWEsb0JBQXFCLFNBQVEsc0JBQVM7SUFHakQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFnQztRQUN4RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUM7UUFDOUUsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsSUFBSSwyQkFBYSxDQUFDLE1BQU0sQ0FBQztRQUNsRSxNQUFNLFlBQVksR0FDaEIsS0FBSyxDQUFDLG1CQUFtQixLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakcsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLHlCQUF5QixJQUFJLElBQUksQ0FBQztRQUMzRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDO1FBQzVFLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDO1FBRWpELElBQUksS0FBSyxDQUFDLG1CQUFtQixLQUFLLFNBQVMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzdELE1BQU0sSUFBSSxLQUFLLENBQUMsMEZBQTBGLENBQUMsQ0FBQztRQUM5RyxDQUFDO1FBRUQsSUFBSSxVQUFVLEtBQUssUUFBUSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FB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SUFBSSxLQUFLLENBQUMsWUFBWSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxLQUFLLE1BQU0sT0FBTyxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNoRSxNQUFNLElBQUksS0FBSyxDQUFDLHlFQUF5RSxDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUNELEtBQUssTUFBTSxPQUFPLElBQUksS0FBSyxDQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDOztBQTNGSCxvREE0RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBkeW5hbW9kYiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiXCI7XG5pbXBvcnQgdHlwZSAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHR5cGUgKiBhcyBrbXMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1rbXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwVGhlb3J5RHluYW1vVGFibGVHc2lQcm9wcyB7XG4gIHJlYWRvbmx5IGluZGV4TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwYXJ0aXRpb25LZXlOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhcnRpdGlvbktleVR5cGU/OiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlO1xuICByZWFkb25seSBzb3J0S2V5TmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgc29ydEtleVR5cGU/OiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlO1xuICByZWFkb25seSBwcm9qZWN0aW9uVHlwZT86IGR5bmFtb2RiLlByb2plY3Rpb25UeXBlO1xuICByZWFkb25seSBub25LZXlBdHRyaWJ1dGVzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IHJlYWRDYXBhY2l0eT86IG51bWJlcjtcbiAgcmVhZG9ubHkgd3JpdGVDYXBhY2l0eT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBUaGVvcnlEeW5hbW9UYWJsZVByb3BzIHtcbiAgcmVhZG9ubHkgdGFibGVOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhcnRpdGlvbktleU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcGFydGl0aW9uS2V5VHlwZT86IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGU7XG4gIHJlYWRvbmx5IHNvcnRLZXlOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvcnRLZXlUeXBlPzogZHluYW1vZGIuQXR0cmlidXRlVHlwZTtcbiAgcmVhZG9ubHkgdGltZVRvTGl2ZUF0dHJpYnV0ZT86IHN0cmluZztcbiAgcmVhZG9ubHkgYmlsbGluZ01vZGU/OiBkeW5hbW9kYi5CaWxsaW5nTW9kZTtcbiAgcmVhZG9ubHkgcmVhZENhcGFjaXR5PzogbnVtYmVyO1xuICByZWFkb25seSB3cml0ZUNhcGFjaXR5PzogbnVtYmVyO1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcbiAgcmVhZG9ubHkgZGVsZXRpb25Qcm90ZWN0aW9uPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZW5hYmxlUG9pbnRJblRpbWVSZWNvdmVyeT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBkeW5hbW9kYi5UYWJsZUVuY3J5cHRpb247XG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuSUtleTtcbiAgcmVhZG9ubHkgZW5hYmxlU3RyZWFtPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc3RyZWFtVmlld1R5cGU/OiBkeW5hbW9kYi5TdHJlYW1WaWV3VHlwZTtcbiAgcmVhZG9ubHkgZ2xvYmFsU2Vjb25kYXJ5SW5kZXhlcz86IEFwcFRoZW9yeUR5bmFtb1RhYmxlR3NpUHJvcHNbXTtcblxuICByZWFkb25seSBncmFudFJlYWRUbz86IGlhbS5JR3JhbnRhYmxlW107XG4gIHJlYWRvbmx5IGdyYW50V3JpdGVUbz86IGlhbS5JR3JhbnRhYmxlW107XG4gIHJlYWRvbmx5IGdyYW50UmVhZFdyaXRlVG8/OiBpYW0uSUdyYW50YWJsZVtdO1xuICByZWFkb25seSBncmFudFN0cmVhbVJlYWRUbz86IGlhbS5JR3JhbnRhYmxlW107XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBUaGVvcnlEeW5hbW9UYWJsZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSB0YWJsZTogZHluYW1vZGIuVGFibGU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFwcFRoZW9yeUR5bmFtb1RhYmxlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgYmlsbGluZ01vZGUgPSBwcm9wcy5iaWxsaW5nTW9kZSA/PyBkeW5hbW9kYi5CaWxsaW5nTW9kZS5QQVlfUEVSX1JFUVVFU1Q7XG4gICAgY29uc3QgcmVtb3ZhbFBvbGljeSA9IHByb3BzLnJlbW92YWxQb2xpY3kgPz8gUmVtb3ZhbFBvbGljeS5SRVRBSU47XG4gICAgY29uc3QgdHRsQXR0cmlidXRlID1cbiAgICAgIHByb3BzLnRpbWVUb0xpdmVBdHRyaWJ1dGUgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IFN0cmluZyhwcm9wcy50aW1lVG9MaXZlQXR0cmlidXRlKS50cmltKCk7XG4gICAgY29uc3QgZW5hYmxlUElUUiA9IHByb3BzLmVuYWJsZVBvaW50SW5UaW1lUmVjb3ZlcnkgPz8gdHJ1ZTtcbiAgICBjb25zdCBlbmNyeXB0aW9uID0gcHJvcHMuZW5jcnlwdGlvbiA/PyBkeW5hbW9kYi5UYWJsZUVuY3J5cHRpb24uQVdTX01BTkFHRUQ7XG4gICAgY29uc3QgZW5hYmxlU3RyZWFtID0gcHJvcHMuZW5hYmxlU3RyZWFtID8/IGZhbHNlO1xuXG4gICAgaWYgKHByb3BzLnRpbWVUb0xpdmVBdHRyaWJ1dGUgIT09IHVuZGVmaW5lZCAmJiAhdHRsQXR0cmlidXRlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcHBUaGVvcnlEeW5hbW9UYWJsZSByZXF1aXJlcyB0aW1lVG9MaXZlQXR0cmlidXRlIHRvIGJlIGEgbm9uLWVtcHR5IHN0cmluZyB3aGVuIHByb3ZpZGVkXCIpO1xuICAgIH1cblxuICAgIGlmIChlbmNyeXB0aW9uID09PSBkeW5hbW9kYi5UYWJsZUVuY3J5cHRpb24uQ1VTVE9NRVJfTUFOQUdFRCAmJiAhcHJvcHMuZW5jcnlwdGlvbktleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXBwVGhlb3J5RHluYW1vVGFibGUgcmVxdWlyZXMgZW5jcnlwdGlvbktleSB3aGVuIGVuY3J5cHRpb24gaXMgQ1VTVE9NRVJfTUFOQUdFRFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdHJlYW0gPSBlbmFibGVTdHJlYW1cbiAgICAgID8gKHByb3BzLnN0cmVhbVZpZXdUeXBlID8/IGR5bmFtb2RiLlN0cmVhbVZpZXdUeXBlLk5FV19BTkRfT0xEX0lNQUdFUylcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgdGhpcy50YWJsZSA9IG5ldyBkeW5hbW9kYi5UYWJsZSh0aGlzLCBcIlRhYmxlXCIsIHtcbiAgICAgIHRhYmxlTmFtZTogcHJvcHMudGFibGVOYW1lLFxuICAgICAgYmlsbGluZ01vZGUsXG4gICAgICBwYXJ0aXRpb25LZXk6IHtcbiAgICAgICAgbmFtZTogcHJvcHMucGFydGl0aW9uS2V5TmFtZSxcbiAgICAgICAgdHlwZTogcHJvcHMucGFydGl0aW9uS2V5VHlwZSA/PyBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgIH0sXG4gICAgICBzb3J0S2V5OiB7XG4gICAgICAgIG5hbWU6IHByb3BzLnNvcnRLZXlOYW1lLFxuICAgICAgICB0eXBlOiBwcm9wcy5zb3J0S2V5VHlwZSA/PyBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgIH0sXG4gICAgICAuLi4odHRsQXR0cmlidXRlID8geyB0aW1lVG9MaXZlQXR0cmlidXRlOiB0dGxBdHRyaWJ1dGUgfSA6IHt9KSxcbiAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgICBkZWxldGlvblByb3RlY3Rpb246IHByb3BzLmRlbGV0aW9uUHJvdGVjdGlvbixcbiAgICAgIHBvaW50SW5UaW1lUmVjb3Zlcnk6IGVuYWJsZVBJVFIsXG4gICAgICBlbmNyeXB0aW9uLFxuICAgICAgZW5jcnlwdGlvbktleTogcHJvcHMuZW5jcnlwdGlvbktleSxcbiAgICAgIHN0cmVhbSxcbiAgICAgIC4uLihiaWxsaW5nTW9kZSA9PT0gZHluYW1vZGIuQmlsbGluZ01vZGUuUFJPVklTSU9ORURcbiAgICAgICAgPyB7XG4gICAgICAgICAgcmVhZENhcGFjaXR5OiBwcm9wcy5yZWFkQ2FwYWNpdHkgPz8gNSxcbiAgICAgICAgICB3cml0ZUNhcGFjaXR5OiBwcm9wcy53cml0ZUNhcGFjaXR5ID8/IDUsXG4gICAgICAgIH1cbiAgICAgICAgOiB7fSksXG4gICAgfSk7XG5cbiAgICBmb3IgKGNvbnN0IGdzaSBvZiBwcm9wcy5nbG9iYWxTZWNvbmRhcnlJbmRleGVzID8/IFtdKSB7XG4gICAgICB0aGlzLnRhYmxlLmFkZEdsb2JhbFNlY29uZGFyeUluZGV4KHtcbiAgICAgICAgaW5kZXhOYW1lOiBnc2kuaW5kZXhOYW1lLFxuICAgICAgICBwYXJ0aXRpb25LZXk6IHtcbiAgICAgICAgICBuYW1lOiBnc2kucGFydGl0aW9uS2V5TmFtZSxcbiAgICAgICAgICB0eXBlOiBnc2kucGFydGl0aW9uS2V5VHlwZSA/PyBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgICAgfSxcbiAgICAgICAgc29ydEtleTogZ3NpLnNvcnRLZXlOYW1lXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICBuYW1lOiBnc2kuc29ydEtleU5hbWUsXG4gICAgICAgICAgICB0eXBlOiBnc2kuc29ydEtleVR5cGUgPz8gZHluYW1vZGIuQXR0cmlidXRlVHlwZS5TVFJJTkcsXG4gICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICBwcm9qZWN0aW9uVHlwZTogZ3NpLnByb2plY3Rpb25UeXBlID8/IGR5bmFtb2RiLlByb2plY3Rpb25UeXBlLkFMTCxcbiAgICAgICAgbm9uS2V5QXR0cmlidXRlczogZ3NpLm5vbktleUF0dHJpYnV0ZXMsXG4gICAgICAgIC4uLihiaWxsaW5nTW9kZSA9PT0gZHluYW1vZGIuQmlsbGluZ01vZGUuUFJPVklTSU9ORURcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgIHJlYWRDYXBhY2l0eTogZ3NpLnJlYWRDYXBhY2l0eSA/PyA1LFxuICAgICAgICAgICAgd3JpdGVDYXBhY2l0eTogZ3NpLndyaXRlQ2FwYWNpdHkgPz8gNSxcbiAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGdyYW50ZWUgb2YgcHJvcHMuZ3JhbnRSZWFkVG8gPz8gW10pIHtcbiAgICAgIHRoaXMudGFibGUuZ3JhbnRSZWFkRGF0YShncmFudGVlKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBncmFudGVlIG9mIHByb3BzLmdyYW50V3JpdGVUbyA/PyBbXSkge1xuICAgICAgdGhpcy50YWJsZS5ncmFudFdyaXRlRGF0YShncmFudGVlKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBncmFudGVlIG9mIHByb3BzLmdyYW50UmVhZFdyaXRlVG8gPz8gW10pIHtcbiAgICAgIHRoaXMudGFibGUuZ3JhbnRSZWFkV3JpdGVEYXRhKGdyYW50ZWUpO1xuICAgIH1cbiAgICBpZiAoKHByb3BzLmdyYW50U3RyZWFtUmVhZFRvID8/IFtdKS5sZW5ndGggPiAwICYmICFlbmFibGVTdHJlYW0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkFwcFRoZW9yeUR5bmFtb1RhYmxlIHJlcXVpcmVzIGVuYWJsZVN0cmVhbSB3aGVuIHVzaW5nIGdyYW50U3RyZWFtUmVhZFRvXCIpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGdyYW50ZWUgb2YgcHJvcHMuZ3JhbnRTdHJlYW1SZWFkVG8gPz8gW10pIHtcbiAgICAgIHRoaXMudGFibGUuZ3JhbnRTdHJlYW1SZWFkKGdyYW50ZWUpO1xuICAgIH1cbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/cdk/lib/dynamodb-stream-mapping.js b/cdk/lib/dynamodb-stream-mapping.js index 3bfcede6..ecc1b9c6 100644 --- a/cdk/lib/dynamodb-stream-mapping.js +++ b/cdk/lib/dynamodb-stream-mapping.js @@ -24,5 +24,5 @@ class AppTheoryDynamoDBStreamMapping extends constructs_1.Construct { } exports.AppTheoryDynamoDBStreamMapping = AppTheoryDynamoDBStreamMapping; _a = JSII_RTTI_SYMBOL_1; -AppTheoryDynamoDBStreamMapping[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryDynamoDBStreamMapping", version: "0.18.0-rc" }; +AppTheoryDynamoDBStreamMapping[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryDynamoDBStreamMapping", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1vZGItc3RyZWFtLW1hcHBpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkeW5hbW9kYi1zdHJlYW0tbWFwcGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLGlEQUFpRDtBQUNqRCwyRUFBMkU7QUFDM0UsMkNBQXVDO0FBZXZDLE1BQWEsOEJBQStCLFNBQVEsc0JBQVM7SUFDM0QsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQztRQUNsRixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLEtBQUssQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUMzQixJQUFJLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDcEQsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNO1lBQzFFLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMxQixrQkFBa0IsRUFBRSxLQUFLLENBQUMsa0JBQWtCO1lBQzVDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxxQkFBcUI7WUFDbEQsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO1lBQ2xDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUI7WUFDMUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyx1QkFBdUIsSUFBSSxJQUFJO1NBQy9ELENBQUMsQ0FDSCxDQUFDO1FBRUYsS0FBSyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7O0FBbEJILHdFQW1CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB0eXBlICogYXMgZHluYW1vZGIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1keW5hbW9kYlwiO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgKiBhcyBsYW1iZGFFdmVudFNvdXJjZXMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGEtZXZlbnQtc291cmNlc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBcHBUaGVvcnlEeW5hbW9EQlN0cmVhbU1hcHBpbmdQcm9wcyB7XG4gIHJlYWRvbmx5IGNvbnN1bWVyOiBsYW1iZGEuRnVuY3Rpb247XG4gIHJlYWRvbmx5IHRhYmxlOiBkeW5hbW9kYi5JVGFibGU7XG4gIHJlYWRvbmx5IHN0YXJ0aW5nUG9zaXRpb24/OiBsYW1iZGEuU3RhcnRpbmdQb3NpdGlvbjtcbiAgcmVhZG9ubHkgYmF0Y2hTaXplPzogbnVtYmVyO1xuICByZWFkb25seSBiaXNlY3RCYXRjaE9uRXJyb3I/OiBib29sZWFuO1xuICByZWFkb25seSBwYXJhbGxlbGl6YXRpb25GYWN0b3I/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHJldHJ5QXR0ZW1wdHM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IG1heEJhdGNoaW5nV2luZG93PzogRHVyYXRpb247XG4gIHJlYWRvbmx5IG1heFJlY29yZEFnZT86IER1cmF0aW9uO1xuICByZWFkb25seSByZXBvcnRCYXRjaEl0ZW1GYWlsdXJlcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBUaGVvcnlEeW5hbW9EQlN0cmVhbU1hcHBpbmcgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXBwVGhlb3J5RHluYW1vREJTdHJlYW1NYXBwaW5nUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgcHJvcHMuY29uc3VtZXIuYWRkRXZlbnRTb3VyY2UoXG4gICAgICBuZXcgbGFtYmRhRXZlbnRTb3VyY2VzLkR5bmFtb0V2ZW50U291cmNlKHByb3BzLnRhYmxlLCB7XG4gICAgICAgIHN0YXJ0aW5nUG9zaXRpb246IHByb3BzLnN0YXJ0aW5nUG9zaXRpb24gPz8gbGFtYmRhLlN0YXJ0aW5nUG9zaXRpb24uTEFURVNULFxuICAgICAgICBiYXRjaFNpemU6IHByb3BzLmJhdGNoU2l6ZSxcbiAgICAgICAgYmlzZWN0QmF0Y2hPbkVycm9yOiBwcm9wcy5iaXNlY3RCYXRjaE9uRXJyb3IsXG4gICAgICAgIHBhcmFsbGVsaXphdGlvbkZhY3RvcjogcHJvcHMucGFyYWxsZWxpemF0aW9uRmFjdG9yLFxuICAgICAgICByZXRyeUF0dGVtcHRzOiBwcm9wcy5yZXRyeUF0dGVtcHRzLFxuICAgICAgICBtYXhCYXRjaGluZ1dpbmRvdzogcHJvcHMubWF4QmF0Y2hpbmdXaW5kb3csXG4gICAgICAgIG1heFJlY29yZEFnZTogcHJvcHMubWF4UmVjb3JkQWdlLFxuICAgICAgICByZXBvcnRCYXRjaEl0ZW1GYWlsdXJlczogcHJvcHMucmVwb3J0QmF0Y2hJdGVtRmFpbHVyZXMgPz8gdHJ1ZSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICBwcm9wcy50YWJsZS5ncmFudFN0cmVhbVJlYWQocHJvcHMuY29uc3VtZXIpO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/cdk/lib/enhanced-security.js b/cdk/lib/enhanced-security.js index 8693e06d..a79f202c 100644 --- a/cdk/lib/enhanced-security.js +++ b/cdk/lib/enhanced-security.js @@ -258,7 +258,7 @@ class AppTheoryEnhancedSecurity extends constructs_1.Construct { } exports.AppTheoryEnhancedSecurity = AppTheoryEnhancedSecurity; _a = JSII_RTTI_SYMBOL_1; -AppTheoryEnhancedSecurity[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryEnhancedSecurity", version: "0.18.0-rc" }; +AppTheoryEnhancedSecurity[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryEnhancedSecurity", version: "0.18.2" }; function portForRule(port, protocol) { switch (protocol) { case ec2.Protocol.TCP: diff --git a/cdk/lib/eventbridge-bus.d.ts b/cdk/lib/eventbridge-bus.d.ts new file mode 100644 index 00000000..caa45912 --- /dev/null +++ b/cdk/lib/eventbridge-bus.d.ts @@ -0,0 +1,33 @@ +import * as events from "aws-cdk-lib/aws-events"; +import { Construct } from "constructs"; +export interface AppTheoryEventBridgeBusProps { + /** + * Optional custom event bus name. + * @default - CloudFormation-generated name + */ + readonly eventBusName?: string; + /** + * Optional event bus description. + * @default - no description + */ + readonly description?: string; + /** + * Explicit cross-account allowlist for `events:PutEvents`. + * Partners can be onboarded one account at a time by adding IDs here. + * @default [] + */ + readonly allowedAccountIds?: string[]; +} +/** + * Opinionated custom EventBridge bus with explicit cross-account publish allowlist. + */ +export declare class AppTheoryEventBridgeBus extends Construct { + readonly eventBus: events.EventBus; + readonly policies: events.CfnEventBusPolicy[]; + private readonly allowedAccounts; + constructor(scope: Construct, id: string, props?: AppTheoryEventBridgeBusProps); + /** + * Adds a single account ID to the cross-account publish allowlist. + */ + allowAccount(accountId: string): events.CfnEventBusPolicy; +} diff --git a/cdk/lib/eventbridge-bus.js b/cdk/lib/eventbridge-bus.js new file mode 100644 index 00000000..f9eca958 --- /dev/null +++ b/cdk/lib/eventbridge-bus.js @@ -0,0 +1,67 @@ +"use strict"; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AppTheoryEventBridgeBus = void 0; +const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); +const aws_cdk_lib_1 = require("aws-cdk-lib"); +const events = require("aws-cdk-lib/aws-events"); +const constructs_1 = require("constructs"); +/** + * Opinionated custom EventBridge bus with explicit cross-account publish allowlist. + */ +class AppTheoryEventBridgeBus extends constructs_1.Construct { + constructor(scope, id, props = {}) { + super(scope, id); + this.policies = []; + this.allowedAccounts = new Set(); + this.eventBus = new events.EventBus(this, "Bus", { + eventBusName: props.eventBusName, + description: props.description, + }); + for (const accountId of props.allowedAccountIds ?? []) { + this.allowAccount(accountId); + } + } + /** + * Adds a single account ID to the cross-account publish allowlist. + */ + allowAccount(accountId) { + const normalized = normalizeAccountId(accountId); + validateAccountId(normalized); + if (this.allowedAccounts.has(normalized)) { + throw new Error(`AppTheoryEventBridgeBus: duplicate allowed account ID ${normalized}`); + } + const index = this.policies.length + 1; + const policy = new events.CfnEventBusPolicy(this, `AllowAccount${index}`, { + eventBusName: this.eventBus.eventBusName, + statementId: `AllowPutEvents${index}`, + statement: { + Effect: "Allow", + Action: "events:PutEvents", + Principal: { AWS: normalized }, + Resource: this.eventBus.eventBusArn, + }, + }); + this.allowedAccounts.add(normalized); + this.policies.push(policy); + return policy; + } +} +exports.AppTheoryEventBridgeBus = AppTheoryEventBridgeBus; +_a = JSII_RTTI_SYMBOL_1; +AppTheoryEventBridgeBus[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryEventBridgeBus", version: "0.18.2" }; +function normalizeAccountId(raw) { + return String(raw ?? "").trim(); +} +function validateAccountId(accountId) { + if (!accountId) { + throw new Error("AppTheoryEventBridgeBus: allowedAccountIds cannot contain empty values"); + } + if (aws_cdk_lib_1.Token.isUnresolved(accountId)) { + return; + } + if (!/^\d{12}$/.test(accountId)) { + throw new Error("AppTheoryEventBridgeBus: allowedAccountIds must be 12-digit AWS account IDs"); + } +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRicmlkZ2UtYnVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXZlbnRicmlkZ2UtYnVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQW9DO0FBQ3BDLGlEQUFpRDtBQUNqRCwyQ0FBdUM7QUF1QnZDOztHQUVHO0FBQ0gsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQU1wRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQXNDLEVBQUU7UUFDaEYsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUxILGFBQVEsR0FBK0IsRUFBRSxDQUFDO1FBRXpDLG9CQUFlLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUtuRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQy9DLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7U0FDL0IsQ0FBQyxDQUFDO1FBRUgsS0FBSyxNQUFNLFNBQVMsSUFBSSxLQUFLLENBQUMsaUJBQWlCLElBQUksRUFBRSxFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWSxDQUFDLFNBQWlCO1FBQ25DLE1BQU0sVUFBVSxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTlCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN6QyxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDdkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGVBQWUsS0FBSyxFQUFFLEVBQUU7WUFDeEUsWUFBWSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWTtZQUN4QyxXQUFXLEVBQUUsaUJBQWlCLEtBQUssRUFBRTtZQUNyQyxTQUFTLEVBQUU7Z0JBQ1QsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsTUFBTSxFQUFFLGtCQUFrQjtnQkFDMUIsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRTtnQkFDOUIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVzthQUNwQztTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O0FBN0NILDBEQThDQzs7O0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxHQUFXO0lBQ3JDLE9BQU8sTUFBTSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUNsQyxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxTQUFpQjtJQUMxQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLHdFQUF3RSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUNELElBQUksbUJBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxPQUFPO0lBQ1QsQ0FBQztJQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2RUFBNkUsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWV2ZW50c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBcHBUaGVvcnlFdmVudEJyaWRnZUJ1c1Byb3BzIHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGN1c3RvbSBldmVudCBidXMgbmFtZS5cbiAgICogQGRlZmF1bHQgLSBDbG91ZEZvcm1hdGlvbi1nZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRCdXNOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBldmVudCBidXMgZGVzY3JpcHRpb24uXG4gICAqIEBkZWZhdWx0IC0gbm8gZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeHBsaWNpdCBjcm9zcy1hY2NvdW50IGFsbG93bGlzdCBmb3IgYGV2ZW50czpQdXRFdmVudHNgLlxuICAgKiBQYXJ0bmVycyBjYW4gYmUgb25ib2FyZGVkIG9uZSBhY2NvdW50IGF0IGEgdGltZSBieSBhZGRpbmcgSURzIGhlcmUuXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBhbGxvd2VkQWNjb3VudElkcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIE9waW5pb25hdGVkIGN1c3RvbSBFdmVudEJyaWRnZSBidXMgd2l0aCBleHBsaWNpdCBjcm9zcy1hY2NvdW50IHB1Ymxpc2ggYWxsb3dsaXN0LlxuICovXG5leHBvcnQgY2xhc3MgQXBwVGhlb3J5RXZlbnRCcmlkZ2VCdXMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRCdXM6IGV2ZW50cy5FdmVudEJ1cztcbiAgcHVibGljIHJlYWRvbmx5IHBvbGljaWVzOiBldmVudHMuQ2ZuRXZlbnRCdXNQb2xpY3lbXSA9IFtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWxsb3dlZEFjY291bnRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFwcFRoZW9yeUV2ZW50QnJpZGdlQnVzUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmV2ZW50QnVzID0gbmV3IGV2ZW50cy5FdmVudEJ1cyh0aGlzLCBcIkJ1c1wiLCB7XG4gICAgICBldmVudEJ1c05hbWU6IHByb3BzLmV2ZW50QnVzTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICB9KTtcblxuICAgIGZvciAoY29uc3QgYWNjb3VudElkIG9mIHByb3BzLmFsbG93ZWRBY2NvdW50SWRzID8/IFtdKSB7XG4gICAgICB0aGlzLmFsbG93QWNjb3VudChhY2NvdW50SWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgc2luZ2xlIGFjY291bnQgSUQgdG8gdGhlIGNyb3NzLWFjY291bnQgcHVibGlzaCBhbGxvd2xpc3QuXG4gICAqL1xuICBwdWJsaWMgYWxsb3dBY2NvdW50KGFjY291bnRJZDogc3RyaW5nKTogZXZlbnRzLkNmbkV2ZW50QnVzUG9saWN5IHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplQWNjb3VudElkKGFjY291bnRJZCk7XG4gICAgdmFsaWRhdGVBY2NvdW50SWQobm9ybWFsaXplZCk7XG5cbiAgICBpZiAodGhpcy5hbGxvd2VkQWNjb3VudHMuaGFzKG5vcm1hbGl6ZWQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFwcFRoZW9yeUV2ZW50QnJpZGdlQnVzOiBkdXBsaWNhdGUgYWxsb3dlZCBhY2NvdW50IElEICR7bm9ybWFsaXplZH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbmRleCA9IHRoaXMucG9saWNpZXMubGVuZ3RoICsgMTtcbiAgICBjb25zdCBwb2xpY3kgPSBuZXcgZXZlbnRzLkNmbkV2ZW50QnVzUG9saWN5KHRoaXMsIGBBbGxvd0FjY291bnQke2luZGV4fWAsIHtcbiAgICAgIGV2ZW50QnVzTmFtZTogdGhpcy5ldmVudEJ1cy5ldmVudEJ1c05hbWUsXG4gICAgICBzdGF0ZW1lbnRJZDogYEFsbG93UHV0RXZlbnRzJHtpbmRleH1gLFxuICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgIEVmZmVjdDogXCJBbGxvd1wiLFxuICAgICAgICBBY3Rpb246IFwiZXZlbnRzOlB1dEV2ZW50c1wiLFxuICAgICAgICBQcmluY2lwYWw6IHsgQVdTOiBub3JtYWxpemVkIH0sXG4gICAgICAgIFJlc291cmNlOiB0aGlzLmV2ZW50QnVzLmV2ZW50QnVzQXJuLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWxsb3dlZEFjY291bnRzLmFkZChub3JtYWxpemVkKTtcbiAgICB0aGlzLnBvbGljaWVzLnB1c2gocG9saWN5KTtcbiAgICByZXR1cm4gcG9saWN5O1xuICB9XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUFjY291bnRJZChyYXc6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBTdHJpbmcocmF3ID8/IFwiXCIpLnRyaW0oKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVBY2NvdW50SWQoYWNjb3VudElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKCFhY2NvdW50SWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcHBUaGVvcnlFdmVudEJyaWRnZUJ1czogYWxsb3dlZEFjY291bnRJZHMgY2Fubm90IGNvbnRhaW4gZW1wdHkgdmFsdWVzXCIpO1xuICB9XG4gIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoYWNjb3VudElkKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoIS9eXFxkezEyfSQvLnRlc3QoYWNjb3VudElkKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkFwcFRoZW9yeUV2ZW50QnJpZGdlQnVzOiBhbGxvd2VkQWNjb3VudElkcyBtdXN0IGJlIDEyLWRpZ2l0IEFXUyBhY2NvdW50IElEc1wiKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/cdk/lib/eventbridge-bus.ts b/cdk/lib/eventbridge-bus.ts new file mode 100644 index 00000000..e1df3b71 --- /dev/null +++ b/cdk/lib/eventbridge-bus.ts @@ -0,0 +1,91 @@ +import { Token } from "aws-cdk-lib"; +import * as events from "aws-cdk-lib/aws-events"; +import { Construct } from "constructs"; + +export interface AppTheoryEventBridgeBusProps { + /** + * Optional custom event bus name. + * @default - CloudFormation-generated name + */ + readonly eventBusName?: string; + + /** + * Optional event bus description. + * @default - no description + */ + readonly description?: string; + + /** + * Explicit cross-account allowlist for `events:PutEvents`. + * Partners can be onboarded one account at a time by adding IDs here. + * @default [] + */ + readonly allowedAccountIds?: string[]; +} + +/** + * Opinionated custom EventBridge bus with explicit cross-account publish allowlist. + */ +export class AppTheoryEventBridgeBus extends Construct { + public readonly eventBus: events.EventBus; + public readonly policies: events.CfnEventBusPolicy[] = []; + + private readonly allowedAccounts = new Set(); + + constructor(scope: Construct, id: string, props: AppTheoryEventBridgeBusProps = {}) { + super(scope, id); + + this.eventBus = new events.EventBus(this, "Bus", { + eventBusName: props.eventBusName, + description: props.description, + }); + + for (const accountId of props.allowedAccountIds ?? []) { + this.allowAccount(accountId); + } + } + + /** + * Adds a single account ID to the cross-account publish allowlist. + */ + public allowAccount(accountId: string): events.CfnEventBusPolicy { + const normalized = normalizeAccountId(accountId); + validateAccountId(normalized); + + if (this.allowedAccounts.has(normalized)) { + throw new Error(`AppTheoryEventBridgeBus: duplicate allowed account ID ${normalized}`); + } + + const index = this.policies.length + 1; + const policy = new events.CfnEventBusPolicy(this, `AllowAccount${index}`, { + eventBusName: this.eventBus.eventBusName, + statementId: `AllowPutEvents${index}`, + statement: { + Effect: "Allow", + Action: "events:PutEvents", + Principal: { AWS: normalized }, + Resource: this.eventBus.eventBusArn, + }, + }); + + this.allowedAccounts.add(normalized); + this.policies.push(policy); + return policy; + } +} + +function normalizeAccountId(raw: string): string { + return String(raw ?? "").trim(); +} + +function validateAccountId(accountId: string): void { + if (!accountId) { + throw new Error("AppTheoryEventBridgeBus: allowedAccountIds cannot contain empty values"); + } + if (Token.isUnresolved(accountId)) { + return; + } + if (!/^\d{12}$/.test(accountId)) { + throw new Error("AppTheoryEventBridgeBus: allowedAccountIds must be 12-digit AWS account IDs"); + } +} diff --git a/cdk/lib/eventbridge-handler.js b/cdk/lib/eventbridge-handler.js index 39d8c030..2ff64c5b 100644 --- a/cdk/lib/eventbridge-handler.js +++ b/cdk/lib/eventbridge-handler.js @@ -20,5 +20,5 @@ class AppTheoryEventBridgeHandler extends constructs_1.Construct { } exports.AppTheoryEventBridgeHandler = AppTheoryEventBridgeHandler; _a = JSII_RTTI_SYMBOL_1; -AppTheoryEventBridgeHandler[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryEventBridgeHandler", version: "0.18.0-rc" }; +AppTheoryEventBridgeHandler[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryEventBridgeHandler", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRicmlkZ2UtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImV2ZW50YnJpZGdlLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpREFBaUQ7QUFDakQsMERBQTBEO0FBRTFELDJDQUF1QztBQWV2QyxNQUFhLDJCQUE0QixTQUFRLHNCQUFTO0lBR3hELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBdUM7UUFDL0UsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3hDLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztTQUN2QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDOztBQWRILGtFQWVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZXZlbnRzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZXZlbnRzXCI7XG5pbXBvcnQgKiBhcyB0YXJnZXRzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHNcIjtcbmltcG9ydCB0eXBlICogYXMgbGFtYmRhIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcFRoZW9yeUV2ZW50QnJpZGdlSGFuZGxlclByb3BzIHtcbiAgcmVhZG9ubHkgaGFuZGxlcjogbGFtYmRhLklGdW5jdGlvbjtcbiAgcmVhZG9ubHkgc2NoZWR1bGU6IGV2ZW50cy5TY2hlZHVsZTtcbiAgcmVhZG9ubHkgcnVsZU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVuYWJsZWQ/OiBib29sZWFuO1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBMYW1iZGEgdGFyZ2V0IChETFEsIGlucHV0LCByZXRyaWVzLCBtYXggZXZlbnQgYWdlLCBldGMpLlxuICAgKiBQYXNzZWQgdGhyb3VnaCB0byBgYXdzLWV2ZW50cy10YXJnZXRzLkxhbWJkYUZ1bmN0aW9uYC5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldFByb3BzPzogdGFyZ2V0cy5MYW1iZGFGdW5jdGlvblByb3BzO1xufVxuXG5leHBvcnQgY2xhc3MgQXBwVGhlb3J5RXZlbnRCcmlkZ2VIYW5kbGVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHJ1bGU6IGV2ZW50cy5SdWxlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBcHBUaGVvcnlFdmVudEJyaWRnZUhhbmRsZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnJ1bGUgPSBuZXcgZXZlbnRzLlJ1bGUodGhpcywgXCJSdWxlXCIsIHtcbiAgICAgIHJ1bGVOYW1lOiBwcm9wcy5ydWxlTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIHNjaGVkdWxlOiBwcm9wcy5zY2hlZHVsZSxcbiAgICAgIGVuYWJsZWQ6IHByb3BzLmVuYWJsZWQsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJ1bGUuYWRkVGFyZ2V0KG5ldyB0YXJnZXRzLkxhbWJkYUZ1bmN0aW9uKHByb3BzLmhhbmRsZXIsIHByb3BzLnRhcmdldFByb3BzKSk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/cdk/lib/eventbridge-rule-target.js b/cdk/lib/eventbridge-rule-target.js index 93189987..c3f9eb43 100644 --- a/cdk/lib/eventbridge-rule-target.js +++ b/cdk/lib/eventbridge-rule-target.js @@ -33,5 +33,5 @@ class AppTheoryEventBridgeRuleTarget extends constructs_1.Construct { } exports.AppTheoryEventBridgeRuleTarget = AppTheoryEventBridgeRuleTarget; _a = JSII_RTTI_SYMBOL_1; -AppTheoryEventBridgeRuleTarget[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryEventBridgeRuleTarget", version: "0.18.0-rc" }; +AppTheoryEventBridgeRuleTarget[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryEventBridgeRuleTarget", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRicmlkZ2UtcnVsZS10YXJnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJldmVudGJyaWRnZS1ydWxlLXRhcmdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlEQUFpRDtBQUNqRCwwREFBMEQ7QUFFMUQsMkNBQXVDO0FBb0R2Qzs7Ozs7R0FLRztBQUNILE1BQWEsOEJBQStCLFNBQVEsc0JBQVM7SUFHM0QsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQztRQUNsRixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxZQUFZLEtBQUssU0FBUyxDQUFDO1FBQ3pELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDO1FBRWpELElBQUksZUFBZSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUZBQWlGLENBQUMsQ0FBQztRQUNyRyxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUN4QyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtTQUN6QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDOztBQXZCSCx3RUF3QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBldmVudHMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHNcIjtcbmltcG9ydCAqIGFzIHRhcmdldHMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0c1wiO1xuaW1wb3J0IHR5cGUgKiBhcyBsYW1iZGEgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwVGhlb3J5RXZlbnRCcmlkZ2VSdWxlVGFyZ2V0UHJvcHMge1xuICAvKipcbiAgICogVGhlIExhbWJkYSBmdW5jdGlvbiB0byBpbnZva2Ugd2hlbiB0aGUgcnVsZSBtYXRjaGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgaGFuZGxlcjogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogRXZlbnRCcmlkZ2UgZXZlbnQgcGF0dGVybiBmb3IgcnVsZSBtYXRjaGluZy5cbiAgICpcbiAgICogTXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggYHNjaGVkdWxlYC5cbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50UGF0dGVybj86IGV2ZW50cy5FdmVudFBhdHRlcm47XG5cbiAgLyoqXG4gICAqIFNjaGVkdWxlIGZvciBydWxlIHRyaWdnZXJpbmcuXG4gICAqXG4gICAqIE11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGBldmVudFBhdHRlcm5gLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGU/OiBldmVudHMuU2NoZWR1bGU7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGV2ZW50IGJ1cyB0byBhdHRhY2ggdGhlIHJ1bGUgdG8uXG4gICAqIEBkZWZhdWx0IC0gdGhlIGFjY291bnQgZGVmYXVsdCBldmVudCBidXNcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50QnVzPzogZXZlbnRzLklFdmVudEJ1cztcblxuICAvKipcbiAgICogT3B0aW9uYWwgcnVsZSBuYW1lLlxuICAgKiBAZGVmYXVsdCAtIENsb3VkRm9ybWF0aW9uLWdlbmVyYXRlZCBuYW1lXG4gICAqL1xuICByZWFkb25seSBydWxlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcnVsZSBpcyBlbmFibGVkLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgcnVsZSBkZXNjcmlwdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGUgTGFtYmRhIHRhcmdldCAoRExRLCBpbnB1dCwgcmV0cmllcywgbWF4IGV2ZW50IGFnZSwgZXRjKS5cbiAgICogUGFzc2VkIHRocm91Z2ggdG8gYGF3cy1ldmVudHMtdGFyZ2V0cy5MYW1iZGFGdW5jdGlvbmAuXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRQcm9wcz86IHRhcmdldHMuTGFtYmRhRnVuY3Rpb25Qcm9wcztcbn1cblxuLyoqXG4gKiBPcGluaW9uYXRlZCB3aXJpbmcgZm9yIGFuIEV2ZW50QnJpZGdlIHJ1bGUgd2l0aCBhIExhbWJkYSB0YXJnZXQuXG4gKlxuICogVGhpcyBjb25zdHJ1Y3QgaW50ZW50aW9uYWxseSBlbmZvcmNlcyBgZXZlbnRQYXR0ZXJuYCBYT1IgYHNjaGVkdWxlYCAoZmFpbCBjbG9zZWQpLlxuICogRm9yIHNjaGVkdWxlLW9ubHkgYmFjay1jb21wYXQsIHNlZSBgQXBwVGhlb3J5RXZlbnRCcmlkZ2VIYW5kbGVyYC5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwcFRoZW9yeUV2ZW50QnJpZGdlUnVsZVRhcmdldCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBydWxlOiBldmVudHMuUnVsZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXBwVGhlb3J5RXZlbnRCcmlkZ2VSdWxlVGFyZ2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgaGFzRXZlbnRQYXR0ZXJuID0gcHJvcHMuZXZlbnRQYXR0ZXJuICE9PSB1bmRlZmluZWQ7XG4gICAgY29uc3QgaGFzU2NoZWR1bGUgPSBwcm9wcy5zY2hlZHVsZSAhPT0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKGhhc0V2ZW50UGF0dGVybiA9PT0gaGFzU2NoZWR1bGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkFwcFRoZW9yeUV2ZW50QnJpZGdlUnVsZVRhcmdldCByZXF1aXJlcyBleGFjdGx5IG9uZSBvZiBldmVudFBhdHRlcm4gb3Igc2NoZWR1bGVcIik7XG4gICAgfVxuXG4gICAgdGhpcy5ydWxlID0gbmV3IGV2ZW50cy5SdWxlKHRoaXMsIFwiUnVsZVwiLCB7XG4gICAgICBydWxlTmFtZTogcHJvcHMucnVsZU5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBlbmFibGVkOiBwcm9wcy5lbmFibGVkLFxuICAgICAgZXZlbnRCdXM6IHByb3BzLmV2ZW50QnVzLFxuICAgICAgZXZlbnRQYXR0ZXJuOiBwcm9wcy5ldmVudFBhdHRlcm4sXG4gICAgICBzY2hlZHVsZTogcHJvcHMuc2NoZWR1bGUsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJ1bGUuYWRkVGFyZ2V0KG5ldyB0YXJnZXRzLkxhbWJkYUZ1bmN0aW9uKHByb3BzLmhhbmRsZXIsIHByb3BzLnRhcmdldFByb3BzKSk7XG4gIH1cbn1cblxuIl19 \ No newline at end of file diff --git a/cdk/lib/eventbus-table.d.ts b/cdk/lib/eventbus-table.d.ts index ba22ce8c..163ae4f2 100644 --- a/cdk/lib/eventbus-table.d.ts +++ b/cdk/lib/eventbus-table.d.ts @@ -1,5 +1,6 @@ import { RemovalPolicy } from "aws-cdk-lib"; import * as dynamodb from "aws-cdk-lib/aws-dynamodb"; +import type * as lambda from "aws-cdk-lib/aws-lambda"; import { Construct } from "constructs"; export interface AppTheoryEventBusTableProps { readonly tableName?: string; @@ -13,7 +14,26 @@ export interface AppTheoryEventBusTableProps { readonly readCapacity?: number; readonly writeCapacity?: number; } +export interface AppTheoryEventBusTableBindingOptions { + /** + * Grant read-only access for replay/query consumers. + * When false, the handler receives read/write access for publish + replay flows. + * @default false + */ + readonly readOnly?: boolean; + /** + * Environment variable name used for the table name binding. + * AppTheory runtime code reads `APPTHEORY_EVENTBUS_TABLE_NAME` by default. + * @default APPTHEORY_EVENTBUS_TABLE_NAME + */ + readonly envVarName?: string; +} export declare class AppTheoryEventBusTable extends Construct { readonly table: dynamodb.Table; constructor(scope: Construct, id: string, props?: AppTheoryEventBusTableProps); + /** + * Binds the table to a Lambda function for EventBus publish/query/replay flows. + */ + bind(handler: lambda.IFunction, options?: AppTheoryEventBusTableBindingOptions): void; + private addEnvironment; } diff --git a/cdk/lib/eventbus-table.js b/cdk/lib/eventbus-table.js index ad5737b7..38f94769 100644 --- a/cdk/lib/eventbus-table.js +++ b/cdk/lib/eventbus-table.js @@ -63,8 +63,28 @@ class AppTheoryEventBusTable extends constructs_1.Construct { : {}), }); } + /** + * Binds the table to a Lambda function for EventBus publish/query/replay flows. + */ + bind(handler, options = {}) { + if (!handler) { + throw new Error("AppTheoryEventBusTable: handler is required"); + } + if (options.readOnly) { + this.table.grantReadData(handler); + } + else { + this.table.grantReadWriteData(handler); + } + this.addEnvironment(handler, options.envVarName ?? "APPTHEORY_EVENTBUS_TABLE_NAME", this.table.tableName); + } + addEnvironment(handler, key, value) { + if ("addEnvironment" in handler && typeof handler.addEnvironment === "function") { + handler.addEnvironment(key, value); + } + } } exports.AppTheoryEventBusTable = AppTheoryEventBusTable; _a = JSII_RTTI_SYMBOL_1; -AppTheoryEventBusTable[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryEventBusTable", version: "0.18.0-rc" }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRidXMtdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJldmVudGJ1cy10YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE0QztBQUM1QyxxREFBcUQ7QUFDckQsMkNBQXVDO0FBZXZDLE1BQWEsc0JBQXVCLFNBQVEsc0JBQVM7SUFHbkQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUFxQyxFQUFFO1FBQy9FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQztRQUM5RSxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxJQUFJLDJCQUFhLENBQUMsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxLQUFLLENBQUM7UUFDeEQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLHlCQUF5QixJQUFJLElBQUksQ0FBQztRQUMzRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQztRQUVqRCxNQUFNLE1BQU0sR0FBRyxZQUFZO1lBQ3pCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFjLElBQUksUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7WUFDN0QsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVkLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDN0MsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLFdBQVc7WUFDWCxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUNqRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUM1RCxtQkFBbUIsRUFBRSxZQUFZO1lBQ2pDLGFBQWE7WUFDYixtQkFBbUIsRUFBRSxVQUFVO1lBQy9CLFVBQVUsRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLFdBQVc7WUFDaEQsTUFBTTtZQUNOLEdBQUcsQ0FBQyxXQUFXLEtBQUssUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXO2dCQUNsRCxDQUFDLENBQUM7b0JBQ0UsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksQ0FBQztvQkFDckMsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhLElBQUksQ0FBQztpQkFDeEM7Z0JBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNSLENBQUMsQ0FBQztRQUVILGtFQUFrRTtRQUNsRSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDO2dCQUNqQyxTQUFTLEVBQUUsZ0JBQWdCO2dCQUMzQixZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtnQkFDakUsY0FBYyxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRztnQkFDM0MsR0FBRyxDQUFDLFdBQVcsS0FBSyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVc7b0JBQ2xELENBQUMsQ0FBQzt3QkFDRSxZQUFZLEVBQUUsQ0FBQzt3QkFDZixhQUFhLEVBQUUsQ0FBQztxQkFDakI7b0JBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUNSLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCwrREFBK0Q7UUFDL0QsSUFBSSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztZQUNqQyxTQUFTLEVBQUUsd0JBQXdCO1lBQ25DLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO1lBQ3hFLHNFQUFzRTtZQUN0RSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUN0RSxjQUFjLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHO1lBQzNDLEdBQUcsQ0FBQyxXQUFXLEtBQUssUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXO2dCQUNsRCxDQUFDLENBQUM7b0JBQ0UsWUFBWSxFQUFFLENBQUM7b0JBQ2YsYUFBYSxFQUFFLENBQUM7aUJBQ2pCO2dCQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDUixDQUFDLENBQUM7SUFDTCxDQUFDOztBQS9ESCx3REFnRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBkeW5hbW9kYiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcFRoZW9yeUV2ZW50QnVzVGFibGVQcm9wcyB7XG4gIHJlYWRvbmx5IHRhYmxlTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgYmlsbGluZ01vZGU/OiBkeW5hbW9kYi5CaWxsaW5nTW9kZTtcbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG4gIHJlYWRvbmx5IHRpbWVUb0xpdmVBdHRyaWJ1dGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVuYWJsZVBvaW50SW5UaW1lUmVjb3Zlcnk/OiBib29sZWFuO1xuICByZWFkb25seSBlbmFibGVTdHJlYW0/OiBib29sZWFuO1xuICByZWFkb25seSBzdHJlYW1WaWV3VHlwZT86IGR5bmFtb2RiLlN0cmVhbVZpZXdUeXBlO1xuICByZWFkb25seSBlbmFibGVFdmVudElkSW5kZXg/OiBib29sZWFuO1xuICByZWFkb25seSByZWFkQ2FwYWNpdHk/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHdyaXRlQ2FwYWNpdHk/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBUaGVvcnlFdmVudEJ1c1RhYmxlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHRhYmxlOiBkeW5hbW9kYi5UYWJsZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXBwVGhlb3J5RXZlbnRCdXNUYWJsZVByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgYmlsbGluZ01vZGUgPSBwcm9wcy5iaWxsaW5nTW9kZSA/PyBkeW5hbW9kYi5CaWxsaW5nTW9kZS5QQVlfUEVSX1JFUVVFU1Q7XG4gICAgY29uc3QgcmVtb3ZhbFBvbGljeSA9IHByb3BzLnJlbW92YWxQb2xpY3kgPz8gUmVtb3ZhbFBvbGljeS5SRVRBSU47XG4gICAgY29uc3QgdHRsQXR0cmlidXRlID0gcHJvcHMudGltZVRvTGl2ZUF0dHJpYnV0ZSA/PyBcInR0bFwiO1xuICAgIGNvbnN0IGVuYWJsZVBJVFIgPSBwcm9wcy5lbmFibGVQb2ludEluVGltZVJlY292ZXJ5ID8/IHRydWU7XG4gICAgY29uc3QgZW5hYmxlU3RyZWFtID0gcHJvcHMuZW5hYmxlU3RyZWFtID8/IGZhbHNlO1xuXG4gICAgY29uc3Qgc3RyZWFtID0gZW5hYmxlU3RyZWFtXG4gICAgICA/IChwcm9wcy5zdHJlYW1WaWV3VHlwZSA/PyBkeW5hbW9kYi5TdHJlYW1WaWV3VHlwZS5ORVdfSU1BR0UpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHRoaXMudGFibGUgPSBuZXcgZHluYW1vZGIuVGFibGUodGhpcywgXCJUYWJsZVwiLCB7XG4gICAgICB0YWJsZU5hbWU6IHByb3BzLnRhYmxlTmFtZSxcbiAgICAgIGJpbGxpbmdNb2RlLFxuICAgICAgcGFydGl0aW9uS2V5OiB7IG5hbWU6IFwicGtcIiwgdHlwZTogZHluYW1vZGIuQXR0cmlidXRlVHlwZS5TVFJJTkcgfSxcbiAgICAgIHNvcnRLZXk6IHsgbmFtZTogXCJza1wiLCB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyB9LFxuICAgICAgdGltZVRvTGl2ZUF0dHJpYnV0ZTogdHRsQXR0cmlidXRlLFxuICAgICAgcmVtb3ZhbFBvbGljeSxcbiAgICAgIHBvaW50SW5UaW1lUmVjb3Zlcnk6IGVuYWJsZVBJVFIsXG4gICAgICBlbmNyeXB0aW9uOiBkeW5hbW9kYi5UYWJsZUVuY3J5cHRpb24uQVdTX01BTkFHRUQsXG4gICAgICBzdHJlYW0sXG4gICAgICAuLi4oYmlsbGluZ01vZGUgPT09IGR5bmFtb2RiLkJpbGxpbmdNb2RlLlBST1ZJU0lPTkVEXG4gICAgICAgID8ge1xuICAgICAgICAgICAgcmVhZENhcGFjaXR5OiBwcm9wcy5yZWFkQ2FwYWNpdHkgPz8gNSxcbiAgICAgICAgICAgIHdyaXRlQ2FwYWNpdHk6IHByb3BzLndyaXRlQ2FwYWNpdHkgPz8gNSxcbiAgICAgICAgICB9XG4gICAgICAgIDoge30pLFxuICAgIH0pO1xuXG4gICAgLy8gUmVxdWlyZWQgYnkgQXBwVGhlb3J5IGBwa2cvc2VydmljZXNgIEV2ZW50QnVzIChHZXRFdmVudCBieSBJRCkuXG4gICAgaWYgKHByb3BzLmVuYWJsZUV2ZW50SWRJbmRleCA/PyB0cnVlKSB7XG4gICAgICB0aGlzLnRhYmxlLmFkZEdsb2JhbFNlY29uZGFyeUluZGV4KHtcbiAgICAgICAgaW5kZXhOYW1lOiBcImV2ZW50LWlkLWluZGV4XCIsXG4gICAgICAgIHBhcnRpdGlvbktleTogeyBuYW1lOiBcImlkXCIsIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HIH0sXG4gICAgICAgIHByb2plY3Rpb25UeXBlOiBkeW5hbW9kYi5Qcm9qZWN0aW9uVHlwZS5BTEwsXG4gICAgICAgIC4uLihiaWxsaW5nTW9kZSA9PT0gZHluYW1vZGIuQmlsbGluZ01vZGUuUFJPVklTSU9ORURcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgcmVhZENhcGFjaXR5OiA1LFxuICAgICAgICAgICAgICB3cml0ZUNhcGFjaXR5OiA1LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gUmVxdWlyZWQgZm9yIHRlbmFudC13aWRlIHF1ZXJpZXMgKFF1ZXJ5IHdpdGhvdXQgZXZlbnRfdHlwZSkuXG4gICAgdGhpcy50YWJsZS5hZGRHbG9iYWxTZWNvbmRhcnlJbmRleCh7XG4gICAgICBpbmRleE5hbWU6IFwidGVuYW50LXRpbWVzdGFtcC1pbmRleFwiLFxuICAgICAgcGFydGl0aW9uS2V5OiB7IG5hbWU6IFwidGVuYW50X2lkXCIsIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HIH0sXG4gICAgICAvLyBUYWJsZVRoZW9yeSBzdG9yZXMgYHRpbWUuVGltZWAgYXMgYSBzdHJpbmcsIG1hdGNoaW5nIExpZnQncyBzY2hlbWEuXG4gICAgICBzb3J0S2V5OiB7IG5hbWU6IFwicHVibGlzaGVkX2F0XCIsIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HIH0sXG4gICAgICBwcm9qZWN0aW9uVHlwZTogZHluYW1vZGIuUHJvamVjdGlvblR5cGUuQUxMLFxuICAgICAgLi4uKGJpbGxpbmdNb2RlID09PSBkeW5hbW9kYi5CaWxsaW5nTW9kZS5QUk9WSVNJT05FRFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIHJlYWRDYXBhY2l0eTogNSxcbiAgICAgICAgICAgIHdyaXRlQ2FwYWNpdHk6IDUsXG4gICAgICAgICAgfVxuICAgICAgICA6IHt9KSxcbiAgICB9KTtcbiAgfVxufVxuIl19 \ No newline at end of file +AppTheoryEventBusTable[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryEventBusTable", version: "0.18.2" }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRidXMtdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJldmVudGJ1cy10YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE0QztBQUM1QyxxREFBcUQ7QUFFckQsMkNBQXVDO0FBK0J2QyxNQUFhLHNCQUF1QixTQUFRLHNCQUFTO0lBR25ELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBcUMsRUFBRTtRQUMvRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUM7UUFDOUUsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsSUFBSSwyQkFBYSxDQUFDLE1BQU0sQ0FBQztRQUNsRSxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsbUJBQW1CLElBQUksS0FBSyxDQUFDO1FBQ3hELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyx5QkFBeUIsSUFBSSxJQUFJLENBQUM7UUFDM0QsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUM7UUFFakQsTUFBTSxNQUFNLEdBQUcsWUFBWTtZQUN6QixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLFFBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1lBQzdELENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFZCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQzdDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMxQixXQUFXO1lBQ1gsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDakUsT0FBTyxFQUFFLEVBQUUsSUFBSSxF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QUFLLENBQUMsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQzs7QUExRkgsd0RBMkZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgZHluYW1vZGIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1keW5hbW9kYlwiO1xuaW1wb3J0IHR5cGUgKiBhcyBsYW1iZGEgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwVGhlb3J5RXZlbnRCdXNUYWJsZVByb3BzIHtcbiAgcmVhZG9ubHkgdGFibGVOYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBiaWxsaW5nTW9kZT86IGR5bmFtb2RiLkJpbGxpbmdNb2RlO1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcbiAgcmVhZG9ubHkgdGltZVRvTGl2ZUF0dHJpYnV0ZT86IHN0cmluZztcbiAgcmVhZG9ubHkgZW5hYmxlUG9pbnRJblRpbWVSZWNvdmVyeT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGVuYWJsZVN0cmVhbT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHN0cmVhbVZpZXdUeXBlPzogZHluYW1vZGIuU3RyZWFtVmlld1R5cGU7XG4gIHJlYWRvbmx5IGVuYWJsZUV2ZW50SWRJbmRleD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHJlYWRDYXBhY2l0eT86IG51bWJlcjtcbiAgcmVhZG9ubHkgd3JpdGVDYXBhY2l0eT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBUaGVvcnlFdmVudEJ1c1RhYmxlQmluZGluZ09wdGlvbnMge1xuICAvKipcbiAgICogR3JhbnQgcmVhZC1vbmx5IGFjY2VzcyBmb3IgcmVwbGF5L3F1ZXJ5IGNvbnN1bWVycy5cbiAgICogV2hlbiBmYWxzZSwgdGhlIGhhbmRsZXIgcmVjZWl2ZXMgcmVhZC93cml0ZSBhY2Nlc3MgZm9yIHB1Ymxpc2ggKyByZXBsYXkgZmxvd3MuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZWFkT25seT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVudmlyb25tZW50IHZhcmlhYmxlIG5hbWUgdXNlZCBmb3IgdGhlIHRhYmxlIG5hbWUgYmluZGluZy5cbiAgICogQXBwVGhlb3J5IHJ1bnRpbWUgY29kZSByZWFkcyBgQVBQVEhFT1JZX0VWRU5UQlVTX1RBQkxFX05BTUVgIGJ5IGRlZmF1bHQuXG4gICAqIEBkZWZhdWx0IEFQUFRIRU9SWV9FVkVOVEJVU19UQUJMRV9OQU1FXG4gICAqL1xuICByZWFkb25seSBlbnZWYXJOYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQXBwVGhlb3J5RXZlbnRCdXNUYWJsZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSB0YWJsZTogZHluYW1vZGIuVGFibGU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFwcFRoZW9yeUV2ZW50QnVzVGFibGVQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGJpbGxpbmdNb2RlID0gcHJvcHMuYmlsbGluZ01vZGUgPz8gZHluYW1vZGIuQmlsbGluZ01vZGUuUEFZX1BFUl9SRVFVRVNUO1xuICAgIGNvbnN0IHJlbW92YWxQb2xpY3kgPSBwcm9wcy5yZW1vdmFsUG9saWN5ID8/IFJlbW92YWxQb2xpY3kuUkVUQUlOO1xuICAgIGNvbnN0IHR0bEF0dHJpYnV0ZSA9IHByb3BzLnRpbWVUb0xpdmVBdHRyaWJ1dGUgPz8gXCJ0dGxcIjtcbiAgICBjb25zdCBlbmFibGVQSVRSID0gcHJvcHMuZW5hYmxlUG9pbnRJblRpbWVSZWNvdmVyeSA/PyB0cnVlO1xuICAgIGNvbnN0IGVuYWJsZVN0cmVhbSA9IHByb3BzLmVuYWJsZVN0cmVhbSA/PyBmYWxzZTtcblxuICAgIGNvbnN0IHN0cmVhbSA9IGVuYWJsZVN0cmVhbVxuICAgICAgPyAocHJvcHMuc3RyZWFtVmlld1R5cGUgPz8gZHluYW1vZGIuU3RyZWFtVmlld1R5cGUuTkVXX0lNQUdFKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLnRhYmxlID0gbmV3IGR5bmFtb2RiLlRhYmxlKHRoaXMsIFwiVGFibGVcIiwge1xuICAgICAgdGFibGVOYW1lOiBwcm9wcy50YWJsZU5hbWUsXG4gICAgICBiaWxsaW5nTW9kZSxcbiAgICAgIHBhcnRpdGlvbktleTogeyBuYW1lOiBcInBrXCIsIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HIH0sXG4gICAgICBzb3J0S2V5OiB7IG5hbWU6IFwic2tcIiwgdHlwZTogZHluYW1vZGIuQXR0cmlidXRlVHlwZS5TVFJJTkcgfSxcbiAgICAgIHRpbWVUb0xpdmVBdHRyaWJ1dGU6IHR0bEF0dHJpYnV0ZSxcbiAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgICBwb2ludEluVGltZVJlY292ZXJ5OiBlbmFibGVQSVRSLFxuICAgICAgZW5jcnlwdGlvbjogZHluYW1vZGIuVGFibGVFbmNyeXB0aW9uLkFXU19NQU5BR0VELFxuICAgICAgc3RyZWFtLFxuICAgICAgLi4uKGJpbGxpbmdNb2RlID09PSBkeW5hbW9kYi5CaWxsaW5nTW9kZS5QUk9WSVNJT05FRFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIHJlYWRDYXBhY2l0eTogcHJvcHMucmVhZENhcGFjaXR5ID8/IDUsXG4gICAgICAgICAgICB3cml0ZUNhcGFjaXR5OiBwcm9wcy53cml0ZUNhcGFjaXR5ID8/IDUsXG4gICAgICAgICAgfVxuICAgICAgICA6IHt9KSxcbiAgICB9KTtcblxuICAgIC8vIFJlcXVpcmVkIGJ5IEFwcFRoZW9yeSBgcGtnL3NlcnZpY2VzYCBFdmVudEJ1cyAoR2V0RXZlbnQgYnkgSUQpLlxuICAgIGlmIChwcm9wcy5lbmFibGVFdmVudElkSW5kZXggPz8gdHJ1ZSkge1xuICAgICAgdGhpcy50YWJsZS5hZGRHbG9iYWxTZWNvbmRhcnlJbmRleCh7XG4gICAgICAgIGluZGV4TmFtZTogXCJldmVudC1pZC1pbmRleFwiLFxuICAgICAgICBwYXJ0aXRpb25LZXk6IHsgbmFtZTogXCJpZFwiLCB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyB9LFxuICAgICAgICBwcm9qZWN0aW9uVHlwZTogZHluYW1vZGIuUHJvamVjdGlvblR5cGUuQUxMLFxuICAgICAgICAuLi4oYmlsbGluZ01vZGUgPT09IGR5bmFtb2RiLkJpbGxpbmdNb2RlLlBST1ZJU0lPTkVEXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIHJlYWRDYXBhY2l0eTogNSxcbiAgICAgICAgICAgICAgd3JpdGVDYXBhY2l0eTogNSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFJlcXVpcmVkIGZvciB0ZW5hbnQtd2lkZSBxdWVyaWVzIChRdWVyeSB3aXRob3V0IGV2ZW50X3R5cGUpLlxuICAgIHRoaXMudGFibGUuYWRkR2xvYmFsU2Vjb25kYXJ5SW5kZXgoe1xuICAgICAgaW5kZXhOYW1lOiBcInRlbmFudC10aW1lc3RhbXAtaW5kZXhcIixcbiAgICAgIHBhcnRpdGlvbktleTogeyBuYW1lOiBcInRlbmFudF9pZFwiLCB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyB9LFxuICAgICAgLy8gVGFibGVUaGVvcnkgc3RvcmVzIGB0aW1lLlRpbWVgIGFzIGEgc3RyaW5nLCBtYXRjaGluZyBMaWZ0J3Mgc2NoZW1hLlxuICAgICAgc29ydEtleTogeyBuYW1lOiBcInB1Ymxpc2hlZF9hdFwiLCB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyB9LFxuICAgICAgcHJvamVjdGlvblR5cGU6IGR5bmFtb2RiLlByb2plY3Rpb25UeXBlLkFMTCxcbiAgICAgIC4uLihiaWxsaW5nTW9kZSA9PT0gZHluYW1vZGIuQmlsbGluZ01vZGUuUFJPVklTSU9ORURcbiAgICAgICAgPyB7XG4gICAgICAgICAgICByZWFkQ2FwYWNpdHk6IDUsXG4gICAgICAgICAgICB3cml0ZUNhcGFjaXR5OiA1LFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7fSksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQmluZHMgdGhlIHRhYmxlIHRvIGEgTGFtYmRhIGZ1bmN0aW9uIGZvciBFdmVudEJ1cyBwdWJsaXNoL3F1ZXJ5L3JlcGxheSBmbG93cy5cbiAgICovXG4gIHB1YmxpYyBiaW5kKGhhbmRsZXI6IGxhbWJkYS5JRnVuY3Rpb24sIG9wdGlvbnM6IEFwcFRoZW9yeUV2ZW50QnVzVGFibGVCaW5kaW5nT3B0aW9ucyA9IHt9KTogdm9pZCB7XG4gICAgaWYgKCFoYW5kbGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcHBUaGVvcnlFdmVudEJ1c1RhYmxlOiBoYW5kbGVyIGlzIHJlcXVpcmVkXCIpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnJlYWRPbmx5KSB7XG4gICAgICB0aGlzLnRhYmxlLmdyYW50UmVhZERhdGEoaGFuZGxlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGFibGUuZ3JhbnRSZWFkV3JpdGVEYXRhKGhhbmRsZXIpO1xuICAgIH1cblxuICAgIHRoaXMuYWRkRW52aXJvbm1lbnQoXG4gICAgICBoYW5kbGVyLFxuICAgICAgb3B0aW9ucy5lbnZWYXJOYW1lID8/IFwiQVBQVEhFT1JZX0VWRU5UQlVTX1RBQkxFX05BTUVcIixcbiAgICAgIHRoaXMudGFibGUudGFibGVOYW1lLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFkZEVudmlyb25tZW50KGhhbmRsZXI6IGxhbWJkYS5JRnVuY3Rpb24sIGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKFwiYWRkRW52aXJvbm1lbnRcIiBpbiBoYW5kbGVyICYmIHR5cGVvZiBoYW5kbGVyLmFkZEVudmlyb25tZW50ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIGhhbmRsZXIuYWRkRW52aXJvbm1lbnQoa2V5LCB2YWx1ZSk7XG4gICAgfVxuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/cdk/lib/eventbus-table.ts b/cdk/lib/eventbus-table.ts index 6e1008c5..481fb514 100644 --- a/cdk/lib/eventbus-table.ts +++ b/cdk/lib/eventbus-table.ts @@ -1,5 +1,6 @@ import { RemovalPolicy } from "aws-cdk-lib"; import * as dynamodb from "aws-cdk-lib/aws-dynamodb"; +import type * as lambda from "aws-cdk-lib/aws-lambda"; import { Construct } from "constructs"; export interface AppTheoryEventBusTableProps { @@ -15,6 +16,22 @@ export interface AppTheoryEventBusTableProps { readonly writeCapacity?: number; } +export interface AppTheoryEventBusTableBindingOptions { + /** + * Grant read-only access for replay/query consumers. + * When false, the handler receives read/write access for publish + replay flows. + * @default false + */ + readonly readOnly?: boolean; + + /** + * Environment variable name used for the table name binding. + * AppTheory runtime code reads `APPTHEORY_EVENTBUS_TABLE_NAME` by default. + * @default APPTHEORY_EVENTBUS_TABLE_NAME + */ + readonly envVarName?: string; +} + export class AppTheoryEventBusTable extends Construct { public readonly table: dynamodb.Table; @@ -79,4 +96,31 @@ export class AppTheoryEventBusTable extends Construct { : {}), }); } + + /** + * Binds the table to a Lambda function for EventBus publish/query/replay flows. + */ + public bind(handler: lambda.IFunction, options: AppTheoryEventBusTableBindingOptions = {}): void { + if (!handler) { + throw new Error("AppTheoryEventBusTable: handler is required"); + } + + if (options.readOnly) { + this.table.grantReadData(handler); + } else { + this.table.grantReadWriteData(handler); + } + + this.addEnvironment( + handler, + options.envVarName ?? "APPTHEORY_EVENTBUS_TABLE_NAME", + this.table.tableName, + ); + } + + private addEnvironment(handler: lambda.IFunction, key: string, value: string): void { + if ("addEnvironment" in handler && typeof handler.addEnvironment === "function") { + handler.addEnvironment(key, value); + } + } } diff --git a/cdk/lib/function-alarms.js b/cdk/lib/function-alarms.js index 4496d73e..e933ee80 100644 --- a/cdk/lib/function-alarms.js +++ b/cdk/lib/function-alarms.js @@ -26,5 +26,5 @@ class AppTheoryFunctionAlarms extends constructs_1.Construct { } exports.AppTheoryFunctionAlarms = AppTheoryFunctionAlarms; _a = JSII_RTTI_SYMBOL_1; -AppTheoryFunctionAlarms[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryFunctionAlarms", version: "0.18.0-rc" }; +AppTheoryFunctionAlarms[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryFunctionAlarms", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tYWxhcm1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZnVuY3Rpb24tYWxhcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQXVDO0FBQ3ZDLHlEQUF5RDtBQUV6RCwyQ0FBdUM7QUFTdkMsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUlwRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1DO1FBQzNFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQztRQUNqRCxNQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNqRCxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN6QyxTQUFTLEVBQUUsY0FBYztZQUN6QixpQkFBaUIsRUFBRSxDQUFDO1NBQ3JCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDdkQsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDNUMsU0FBUyxFQUFFLGlCQUFpQjtZQUM1QixpQkFBaUIsRUFBRSxDQUFDO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBdEJILDBEQXVCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBjbG91ZHdhdGNoIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaFwiO1xuaW1wb3J0IHR5cGUgKiBhcyBsYW1iZGEgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwVGhlb3J5RnVuY3Rpb25BbGFybXNQcm9wcyB7XG4gIHJlYWRvbmx5IGZuOiBsYW1iZGEuSUZ1bmN0aW9uO1xuICByZWFkb25seSBwZXJpb2Q/OiBEdXJhdGlvbjtcbiAgcmVhZG9ubHkgZXJyb3JUaHJlc2hvbGQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHRocm90dGxlVGhyZXNob2xkPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgQXBwVGhlb3J5RnVuY3Rpb25BbGFybXMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgZXJyb3JzOiBjbG91ZHdhdGNoLkFsYXJtO1xuICBwdWJsaWMgcmVhZG9ubHkgdGhyb3R0bGVzOiBjbG91ZHdhdGNoLkFsYXJtO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBcHBUaGVvcnlGdW5jdGlvbkFsYXJtc1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHBlcmlvZCA9IHByb3BzLnBlcmlvZCA/PyBEdXJhdGlvbi5taW51dGVzKDUpO1xuICAgIGNvbnN0IGVycm9yVGhyZXNob2xkID0gcHJvcHMuZXJyb3JUaHJlc2hvbGQgPz8gMTtcbiAgICBjb25zdCB0aHJvdHRsZVRocmVzaG9sZCA9IHByb3BzLnRocm90dGxlVGhyZXNob2xkID8/IDE7XG5cbiAgICB0aGlzLmVycm9ycyA9IG5ldyBjbG91ZHdhdGNoLkFsYXJtKHRoaXMsIFwiRXJyb3JzXCIsIHtcbiAgICAgIG1ldHJpYzogcHJvcHMuZm4ubWV0cmljRXJyb3JzKHsgcGVyaW9kIH0pLFxuICAgICAgdGhyZXNob2xkOiBlcnJvclRocmVzaG9sZCxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgIH0pO1xuXG4gICAgdGhpcy50aHJvdHRsZXMgPSBuZXcgY2xvdWR3YXRjaC5BbGFybSh0aGlzLCBcIlRocm90dGxlc1wiLCB7XG4gICAgICBtZXRyaWM6IHByb3BzLmZuLm1ldHJpY1Rocm90dGxlcyh7IHBlcmlvZCB9KSxcbiAgICAgIHRocmVzaG9sZDogdGhyb3R0bGVUaHJlc2hvbGQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICB9KTtcbiAgfVxufVxuXG4iXX0= \ No newline at end of file diff --git a/cdk/lib/function.js b/cdk/lib/function.js index 686e6db4..35bd1e20 100644 --- a/cdk/lib/function.js +++ b/cdk/lib/function.js @@ -20,5 +20,5 @@ class AppTheoryFunction extends constructs_1.Construct { } exports.AppTheoryFunction = AppTheoryFunction; _a = JSII_RTTI_SYMBOL_1; -AppTheoryFunction[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryFunction", version: "0.18.0-rc" }; +AppTheoryFunction[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryFunction", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF1QztBQUN2QyxpREFBaUQ7QUFDakQsMkNBQXVDO0FBSXZDLE1BQWEsaUJBQWtCLFNBQVEsc0JBQVM7SUFHOUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE2QjtRQUNyRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDOUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNO1lBQzlELE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUMvQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFBSSxHQUFHO1lBQ25DLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM5QyxHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDOztBQWJILDhDQWNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBcHBUaGVvcnlGdW5jdGlvblByb3BzIGV4dGVuZHMgbGFtYmRhLkZ1bmN0aW9uUHJvcHMge31cblxuZXhwb3J0IGNsYXNzIEFwcFRoZW9yeUZ1bmN0aW9uIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGZuOiBsYW1iZGEuRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFwcFRoZW9yeUZ1bmN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5mbiA9IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgXCJGdW5jdGlvblwiLCB7XG4gICAgICBhcmNoaXRlY3R1cmU6IHByb3BzLmFyY2hpdGVjdHVyZSA/PyBsYW1iZGEuQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICAgIHRyYWNpbmc6IHByb3BzLnRyYWNpbmcgPz8gbGFtYmRhLlRyYWNpbmcuQUNUSVZFLFxuICAgICAgbWVtb3J5U2l6ZTogcHJvcHMubWVtb3J5U2l6ZSA/PyAyNTYsXG4gICAgICB0aW1lb3V0OiBwcm9wcy50aW1lb3V0ID8/IER1cmF0aW9uLnNlY29uZHMoMTApLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSk7XG4gIH1cbn1cblxuIl19 \ No newline at end of file diff --git a/cdk/lib/hosted-zone.js b/cdk/lib/hosted-zone.js index a217add6..1494b549 100644 --- a/cdk/lib/hosted-zone.js +++ b/cdk/lib/hosted-zone.js @@ -81,7 +81,7 @@ class AppTheoryHostedZone extends constructs_1.Construct { } exports.AppTheoryHostedZone = AppTheoryHostedZone; _a = JSII_RTTI_SYMBOL_1; -AppTheoryHostedZone[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryHostedZone", version: "0.18.0-rc" }; +AppTheoryHostedZone[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryHostedZone", version: "0.18.2" }; function sanitizeCloudFormationExportName(name) { const input = String(name ?? "").trim(); if (!input) diff --git a/cdk/lib/http-api.js b/cdk/lib/http-api.js index 201d6f3f..705600d4 100644 --- a/cdk/lib/http-api.js +++ b/cdk/lib/http-api.js @@ -30,5 +30,5 @@ class AppTheoryHttpApi extends constructs_1.Construct { } exports.AppTheoryHttpApi = AppTheoryHttpApi; _a = JSII_RTTI_SYMBOL_1; -AppTheoryHttpApi[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryHttpApi", version: "0.18.0-rc" }; +AppTheoryHttpApi[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryHttpApi", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJodHRwLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHdEQUF3RDtBQUN4RCxpRkFBaUY7QUFFakYsMkNBQXVDO0FBT3ZDLE1BQWEsZ0JBQWlCLFNBQVEsc0JBQVM7SUFHN0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE0QjtRQUNwRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7WUFDMUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1NBQ3ZCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO1lBQ2pCLElBQUksRUFBRSxHQUFHO1lBQ1QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7WUFDakMsV0FBVyxFQUFFLElBQUksbUJBQW1CLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hGLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXO2FBQy9ELENBQUM7U0FDSCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztZQUNqQixJQUFJLEVBQUUsV0FBVztZQUNqQixPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztZQUNqQyxXQUFXLEVBQUUsSUFBSSxtQkFBbUIsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRTtnQkFDakYsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLG9CQUFvQixDQUFDLFdBQVc7YUFDL0QsQ0FBQztTQUNILENBQUMsQ0FBQztJQUNMLENBQUM7O0FBekJILDRDQTBCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFwaWd3djIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5djJcIjtcbmltcG9ydCAqIGFzIGFwaWd3djJJbnRlZ3JhdGlvbnMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5djItaW50ZWdyYXRpb25zXCI7XG5pbXBvcnQgdHlwZSAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBcHBUaGVvcnlIdHRwQXBpUHJvcHMge1xuICByZWFkb25seSBoYW5kbGVyOiBsYW1iZGEuSUZ1bmN0aW9uO1xuICByZWFkb25seSBhcGlOYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQXBwVGhlb3J5SHR0cEFwaSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBhcGk6IGFwaWd3djIuSHR0cEFwaTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXBwVGhlb3J5SHR0cEFwaVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuYXBpID0gbmV3IGFwaWd3djIuSHR0cEFwaSh0aGlzLCBcIkFwaVwiLCB7XG4gICAgICBhcGlOYW1lOiBwcm9wcy5hcGlOYW1lLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hcGkuYWRkUm91dGVzKHtcbiAgICAgIHBhdGg6IFwiL1wiLFxuICAgICAgbWV0aG9kczogW2FwaWd3djIuSHR0cE1ldGhvZC5BTlldLFxuICAgICAgaW50ZWdyYXRpb246IG5ldyBhcGlnd3YySW50ZWdyYXRpb25zLkh0dHBMYW1iZGFJbnRlZ3JhdGlvbihcIlJvb3RcIiwgcHJvcHMuaGFuZGxlciwge1xuICAgICAgICBwYXlsb2FkRm9ybWF0VmVyc2lvbjogYXBpZ3d2Mi5QYXlsb2FkRm9ybWF0VmVyc2lvbi5WRVJTSU9OXzJfMCxcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hcGkuYWRkUm91dGVzKHtcbiAgICAgIHBhdGg6IFwiL3twcm94eSt9XCIsXG4gICAgICBtZXRob2RzOiBbYXBpZ3d2Mi5IdHRwTWV0aG9kLkFOWV0sXG4gICAgICBpbnRlZ3JhdGlvbjogbmV3IGFwaWd3djJJbnRlZ3JhdGlvbnMuSHR0cExhbWJkYUludGVncmF0aW9uKFwiUHJveHlcIiwgcHJvcHMuaGFuZGxlciwge1xuICAgICAgICBwYXlsb2FkRm9ybWF0VmVyc2lvbjogYXBpZ3d2Mi5QYXlsb2FkRm9ybWF0VmVyc2lvbi5WRVJTSU9OXzJfMCxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/cdk/lib/http-ingestion-endpoint.d.ts b/cdk/lib/http-ingestion-endpoint.d.ts new file mode 100644 index 00000000..d5368df1 --- /dev/null +++ b/cdk/lib/http-ingestion-endpoint.d.ts @@ -0,0 +1,128 @@ +import { Duration } from "aws-cdk-lib"; +import * as acm from "aws-cdk-lib/aws-certificatemanager"; +import * as apigwv2 from "aws-cdk-lib/aws-apigatewayv2"; +import * as apigwv2Authorizers from "aws-cdk-lib/aws-apigatewayv2-authorizers"; +import type * as lambda from "aws-cdk-lib/aws-lambda"; +import * as logs from "aws-cdk-lib/aws-logs"; +import * as route53 from "aws-cdk-lib/aws-route53"; +import { Construct } from "constructs"; +export interface AppTheoryHttpIngestionEndpointDomainOptions { + /** + * The custom domain name (for example `ingest.example.com`). + */ + readonly domainName: string; + /** + * ACM certificate for the domain. + * Provide either `certificate` or `certificateArn`. + */ + readonly certificate?: acm.ICertificate; + /** + * ACM certificate ARN. + * Provide either `certificate` or `certificateArn`. + */ + readonly certificateArn?: string; + /** + * Route53 hosted zone for automatic DNS record creation. + * If provided, a CNAME record will be created pointing to the API Gateway domain. + * @default undefined + */ + readonly hostedZone?: route53.IHostedZone; + /** + * Optional API mapping key under the custom domain. + * @default undefined + */ + readonly basePath?: string; +} +export interface AppTheoryHttpIngestionEndpointStageOptions { + /** + * Stage name. + * @default "$default" + */ + readonly stageName?: string; + /** + * Enable CloudWatch access logging for the stage. + * @default false + */ + readonly accessLogging?: boolean; + /** + * Retention period for auto-created access log group. + * Only applies when accessLogging is true. + * @default logs.RetentionDays.ONE_MONTH + */ + readonly accessLogRetention?: logs.RetentionDays; + /** + * Throttling rate limit (requests per second) for the stage. + * @default undefined + */ + readonly throttlingRateLimit?: number; + /** + * Throttling burst limit for the stage. + * @default undefined + */ + readonly throttlingBurstLimit?: number; +} +export interface AppTheoryHttpIngestionEndpointProps { + /** + * Lambda function that handles the ingestion request. + */ + readonly handler: lambda.IFunction; + /** + * Lambda request authorizer used for secret-key validation. + */ + readonly authorizer: lambda.IFunction; + /** + * Optional API name. + * @default undefined + */ + readonly apiName?: string; + /** + * HTTPS path exposed by the endpoint. + * @default "/ingest" + */ + readonly endpointPath?: string; + /** + * Header used as the identity source for secret-key authorization. + * This defaults to `Authorization` to mirror the backoffice-api-authorizer pattern. + * @default "Authorization" + */ + readonly authorizerHeaderName?: string; + /** + * Friendly authorizer name. + * @default undefined + */ + readonly authorizerName?: string; + /** + * Lambda authorizer result cache TTL. + * Defaults to disabled to match the upstream backoffice-api-authorizer behavior. + * @default Duration.seconds(0) + */ + readonly authorizerCacheTtl?: Duration; + /** + * Optional custom domain configuration. + * @default undefined + */ + readonly domain?: AppTheoryHttpIngestionEndpointDomainOptions; + /** + * Optional stage configuration. + * @default undefined + */ + readonly stage?: AppTheoryHttpIngestionEndpointStageOptions; +} +/** + * Authenticated HTTPS ingestion endpoint backed by Lambda. + * + * This construct is intended for server-to-server submission paths where callers + * authenticate with a shared secret key via a Lambda request authorizer. + */ +export declare class AppTheoryHttpIngestionEndpoint extends Construct { + readonly api: apigwv2.HttpApi; + readonly routeAuthorizer: apigwv2Authorizers.HttpLambdaAuthorizer; + readonly endpoint: string; + readonly stage: apigwv2.IStage; + readonly accessLogGroup?: logs.ILogGroup; + readonly domainName?: apigwv2.DomainName; + readonly apiMapping?: apigwv2.ApiMapping; + readonly cnameRecord?: route53.CnameRecord; + constructor(scope: Construct, id: string, props: AppTheoryHttpIngestionEndpointProps); + private setupCustomDomain; +} diff --git a/cdk/lib/http-ingestion-endpoint.js b/cdk/lib/http-ingestion-endpoint.js new file mode 100644 index 00000000..a90388a9 --- /dev/null +++ b/cdk/lib/http-ingestion-endpoint.js @@ -0,0 +1,176 @@ +"use strict"; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AppTheoryHttpIngestionEndpoint = void 0; +const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); +const aws_cdk_lib_1 = require("aws-cdk-lib"); +const acm = require("aws-cdk-lib/aws-certificatemanager"); +const apigwv2 = require("aws-cdk-lib/aws-apigatewayv2"); +const apigwv2Authorizers = require("aws-cdk-lib/aws-apigatewayv2-authorizers"); +const apigwv2Integrations = require("aws-cdk-lib/aws-apigatewayv2-integrations"); +const logs = require("aws-cdk-lib/aws-logs"); +const route53 = require("aws-cdk-lib/aws-route53"); +const constructs_1 = require("constructs"); +/** + * Authenticated HTTPS ingestion endpoint backed by Lambda. + * + * This construct is intended for server-to-server submission paths where callers + * authenticate with a shared secret key via a Lambda request authorizer. + */ +class AppTheoryHttpIngestionEndpoint extends constructs_1.Construct { + constructor(scope, id, props) { + super(scope, id); + const endpointPath = normalizeEndpointPath(props.endpointPath ?? "/ingest"); + const authorizerHeaderName = normalizeHeaderName(props.authorizerHeaderName ?? "Authorization"); + const stageOpts = props.stage ?? {}; + const stageName = stageOpts.stageName ?? "$default"; + const needsExplicitStage = stageName !== "$default" + || stageOpts.accessLogging + || stageOpts.throttlingRateLimit !== undefined + || stageOpts.throttlingBurstLimit !== undefined; + this.api = new apigwv2.HttpApi(this, "Api", { + apiName: props.apiName, + createDefaultStage: !needsExplicitStage, + }); + let stage; + if (needsExplicitStage) { + stage = new apigwv2.HttpStage(this, "Stage", { + httpApi: this.api, + stageName, + autoDeploy: true, + throttle: (stageOpts.throttlingRateLimit !== undefined || stageOpts.throttlingBurstLimit !== undefined) + ? { + rateLimit: stageOpts.throttlingRateLimit, + burstLimit: stageOpts.throttlingBurstLimit, + } + : undefined, + }); + if (stageOpts.accessLogging) { + const logGroup = new logs.LogGroup(this, "AccessLogs", { + retention: stageOpts.accessLogRetention ?? logs.RetentionDays.ONE_MONTH, + }); + this.accessLogGroup = logGroup; + const cfnStage = stage.node.defaultChild; + cfnStage.accessLogSettings = { + destinationArn: logGroup.logGroupArn, + format: JSON.stringify({ + requestId: "$context.requestId", + ip: "$context.identity.sourceIp", + requestTime: "$context.requestTime", + httpMethod: "$context.httpMethod", + routeKey: "$context.routeKey", + status: "$context.status", + protocol: "$context.protocol", + responseLength: "$context.responseLength", + integrationLatency: "$context.integrationLatency", + }), + }; + } + } + else { + stage = this.api.defaultStage; + } + if (!stage) { + throw new Error("AppTheoryHttpIngestionEndpoint: failed to create API stage"); + } + this.stage = stage; + this.routeAuthorizer = new apigwv2Authorizers.HttpLambdaAuthorizer("Authorizer", props.authorizer, { + authorizerName: props.authorizerName, + identitySource: [`$request.header.${authorizerHeaderName}`], + resultsCacheTtl: props.authorizerCacheTtl ?? aws_cdk_lib_1.Duration.seconds(0), + responseTypes: [apigwv2Authorizers.HttpLambdaResponseType.SIMPLE], + }); + this.api.addRoutes({ + path: endpointPath, + methods: [apigwv2.HttpMethod.POST], + integration: new apigwv2Integrations.HttpLambdaIntegration("IngestionHandler", props.handler, { + payloadFormatVersion: apigwv2.PayloadFormatVersion.VERSION_2_0, + }), + authorizer: this.routeAuthorizer, + }); + if (props.domain) { + this.setupCustomDomain(props.domain); + this.endpoint = joinUrlParts(`https://${props.domain.domainName}`, props.domain.basePath, endpointPath); + } + else { + const baseUrl = stageName === "$default" + ? this.api.apiEndpoint + : `${this.api.apiEndpoint}/${stageName}`; + this.endpoint = joinUrlParts(baseUrl, endpointPath); + } + } + setupCustomDomain(domainOpts) { + const certificate = domainOpts.certificate ?? (domainOpts.certificateArn + ? acm.Certificate.fromCertificateArn(this, "ImportedCert", domainOpts.certificateArn) + : undefined); + if (!certificate) { + throw new Error("AppTheoryHttpIngestionEndpoint: domain requires either certificate or certificateArn"); + } + const domainName = new apigwv2.DomainName(this, "DomainName", { + domainName: domainOpts.domainName, + certificate, + }); + this.domainName = domainName; + const apiMapping = new apigwv2.ApiMapping(this, "ApiMapping", { + api: this.api, + domainName, + stage: this.stage, + apiMappingKey: normalizeBasePath(domainOpts.basePath), + }); + this.apiMapping = apiMapping; + if (domainOpts.hostedZone) { + const recordName = toRoute53RecordName(domainOpts.domainName, domainOpts.hostedZone); + const record = new route53.CnameRecord(this, "CnameRecord", { + zone: domainOpts.hostedZone, + recordName, + domainName: domainName.regionalDomainName, + }); + this.cnameRecord = record; + } + } +} +exports.AppTheoryHttpIngestionEndpoint = AppTheoryHttpIngestionEndpoint; +_a = JSII_RTTI_SYMBOL_1; +AppTheoryHttpIngestionEndpoint[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryHttpIngestionEndpoint", version: "0.18.2" }; +function normalizeEndpointPath(path) { + const trimmed = String(path ?? "").trim(); + if (!trimmed) { + throw new Error("AppTheoryHttpIngestionEndpoint: endpointPath is required"); + } + return `/${trimmed.replace(/^\/+/, "").replace(/\/+$/, "")}`.replace(/\/{2,}/g, "/"); +} +function normalizeHeaderName(headerName) { + const trimmed = String(headerName ?? "").trim(); + if (!trimmed) { + throw new Error("AppTheoryHttpIngestionEndpoint: authorizerHeaderName is required"); + } + return trimmed; +} +function normalizeBasePath(basePath) { + const trimmed = String(basePath ?? "").trim().replace(/^\/+/, "").replace(/\/+$/, ""); + return trimmed || undefined; +} +function joinUrlParts(baseUrl, ...parts) { + let out = String(baseUrl ?? "").replace(/\/+$/, ""); + for (const part of parts) { + const normalized = String(part ?? "").trim().replace(/^\/+/, "").replace(/\/+$/, ""); + if (!normalized) + continue; + out = `${out}/${normalized}`; + } + return out; +} +function toRoute53RecordName(domainName, zone) { + const fqdn = String(domainName ?? "").trim().replace(/\.$/, ""); + const zoneName = String(zone.zoneName ?? "").trim().replace(/\.$/, ""); + if (!zoneName) + return fqdn; + if (fqdn === zoneName) + return ""; + const suffix = `.${zoneName}`; + if (fqdn.endsWith(suffix)) { + return fqdn.slice(0, -suffix.length); + } + return fqdn; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1pbmdlc3Rpb24tZW5kcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJodHRwLWluZ2VzdGlvbi1lbmRwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF1QztBQUN2QywwREFBMEQ7QUFDMUQsd0RBQXdEO0FBQ3hELCtFQUErRTtBQUMvRSxpRkFBaUY7QUFFakYsNkNBQTZDO0FBQzdDLG1EQUFtRDtBQUNuRCwyQ0FBdUM7QUEySHZDOzs7OztHQUtHO0FBQ0gsTUFBYSw4QkFBK0IsU0FBUSxzQkFBUztJQVUzRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBDO1FBQ2xGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxTQUFTLENBQUMsQ0FBQztRQUM1RSxNQUFNLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxvQkFBb0IsSUFBSSxlQUFlLENBQUMsQ0FBQztRQUNoRyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxJQUFJLFVBQVUsQ0FBQztRQUVwRCxNQUFNLGtCQUFrQixHQUFHLFNBQVMsS0FBSyxVQUFVO2VBQzlDLFNBQVMsQ0FBQyxhQUFhO2VBQ3ZCLFNBQVMsQ0FBQyxtQkFBbUIsS0FBSyxTQUFTO2VBQzNDLFNBQVMsQ0FBQyxvQkFBb0IsS0FBSyxTQUFTLENBQUM7UUFFbEQsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtZQUMxQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsa0JBQWtCLEVBQUUsQ0FBQyxrQkFBa0I7U0FDeEMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxLQUFpQyxDQUFD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QUFHLE1BQU0sQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLElBQUksQ0FBQyxRQUFRO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDM0IsSUFBSSxJQUFJLEtBQUssUUFBUTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2pDLE1BQU0sTUFBTSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFDOUIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGFjbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0ICogYXMgYXBpZ3d2MiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXl2MlwiO1xuaW1wb3J0ICogYXMgYXBpZ3d2MkF1dGhvcml6ZXJzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheXYyLWF1dGhvcml6ZXJzXCI7XG5pbXBvcnQgKiBhcyBhcGlnd3YySW50ZWdyYXRpb25zIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheXYyLWludGVncmF0aW9uc1wiO1xuaW1wb3J0IHR5cGUgKiBhcyBsYW1iZGEgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzXCI7XG5pbXBvcnQgKiBhcyByb3V0ZTUzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBcHBUaGVvcnlIdHRwSW5nZXN0aW9uRW5kcG9pbnREb21haW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjdXN0b20gZG9tYWluIG5hbWUgKGZvciBleGFtcGxlIGBpbmdlc3QuZXhhbXBsZS5jb21gKS5cbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQUNNIGNlcnRpZmljYXRlIGZvciB0aGUgZG9tYWluLlxuICAgKiBQcm92aWRlIGVpdGhlciBgY2VydGlmaWNhdGVgIG9yIGBjZXJ0aWZpY2F0ZUFybmAuXG4gICAqL1xuICByZWFkb25seSBjZXJ0aWZpY2F0ZT86IGFjbS5JQ2VydGlmaWNhdGU7XG5cbiAgLyoqXG4gICAqIEFDTSBjZXJ0aWZpY2F0ZSBBUk4uXG4gICAqIFByb3ZpZGUgZWl0aGVyIGBjZXJ0aWZpY2F0ZWAgb3IgYGNlcnRpZmljYXRlQXJuYC5cbiAgICovXG4gIHJlYWRvbmx5IGNlcnRpZmljYXRlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSb3V0ZTUzIGhvc3RlZCB6b25lIGZvciBhdXRvbWF0aWMgRE5TIHJlY29yZCBjcmVhdGlvbi5cbiAgICogSWYgcHJvdmlkZWQsIGEgQ05BTUUgcmVjb3JkIHdpbGwgYmUgY3JlYXRlZCBwb2ludGluZyB0byB0aGUgQVBJIEdhdGV3YXkgZG9tYWluLlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGhvc3RlZFpvbmU/OiByb3V0ZTUzLklIb3N0ZWRab25lO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBBUEkgbWFwcGluZyBrZXkgdW5kZXIgdGhlIGN1c3RvbSBkb21haW4uXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZVBhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwVGhlb3J5SHR0cEluZ2VzdGlvbkVuZHBvaW50U3RhZ2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIFN0YWdlIG5hbWUuXG4gICAqIEBkZWZhdWx0IFwiJGRlZmF1bHRcIlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2VOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgQ2xvdWRXYXRjaCBhY2Nlc3MgbG9nZ2luZyBmb3IgdGhlIHN0YWdlLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYWNjZXNzTG9nZ2luZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJldGVudGlvbiBwZXJpb2QgZm9yIGF1dG8tY3JlYXRlZCBhY2Nlc3MgbG9nIGdyb3VwLlxuICAgKiBPbmx5IGFwcGxpZXMgd2hlbiBhY2Nlc3NMb2dnaW5nIGlzIHRydWUuXG4gICAqIEBkZWZhdWx0IGxvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfTU9OVEhcbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzc0xvZ1JldGVudGlvbj86IGxvZ3MuUmV0ZW50aW9uRGF5cztcblxuICAvKipcbiAgICogVGhyb3R0bGluZyByYXRlIGxpbWl0IChyZXF1ZXN0cyBwZXIgc2Vjb25kKSBmb3IgdGhlIHN0YWdlLlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHRocm90dGxpbmdSYXRlTGltaXQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRocm90dGxpbmcgYnVyc3QgbGltaXQgZm9yIHRoZSBzdGFnZS5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSB0aHJvdHRsaW5nQnVyc3RMaW1pdD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBUaGVvcnlIdHRwSW5nZXN0aW9uRW5kcG9pbnRQcm9wcyB7XG4gIC8qKlxuICAgKiBMYW1iZGEgZnVuY3Rpb24gdGhhdCBoYW5kbGVzIHRoZSBpbmdlc3Rpb24gcmVxdWVzdC5cbiAgICovXG4gIHJlYWRvbmx5IGhhbmRsZXI6IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIExhbWJkYSByZXF1ZXN0IGF1dGhvcml6ZXIgdXNlZCBmb3Igc2VjcmV0LWtleSB2YWxpZGF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXplcjogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgQVBJIG5hbWUuXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgYXBpTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSFRUUFMgcGF0aCBleHBvc2VkIGJ5IHRoZSBlbmRwb2ludC5cbiAgICogQGRlZmF1bHQgXCIvaW5nZXN0XCJcbiAgICovXG4gIHJlYWRvbmx5IGVuZHBvaW50UGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogSGVhZGVyIHVzZWQgYXMgdGhlIGlkZW50aXR5IHNvdXJjZSBmb3Igc2VjcmV0LWtleSBhdXRob3JpemF0aW9uLlxuICAgKiBUaGlzIGRlZmF1bHRzIHRvIGBBdXRob3JpemF0aW9uYCB0byBtaXJyb3IgdGhlIGJhY2tvZmZpY2UtYXBpLWF1dGhvcml6ZXIgcGF0dGVybi5cbiAgICogQGRlZmF1bHQgXCJBdXRob3JpemF0aW9uXCJcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcml6ZXJIZWFkZXJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGcmllbmRseSBhdXRob3JpemVyIG5hbWUuXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXplck5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExhbWJkYSBhdXRob3JpemVyIHJlc3VsdCBjYWNoZSBUVEwuXG4gICAqIERlZmF1bHRzIHRvIGRpc2FibGVkIHRvIG1hdGNoIHRoZSB1cHN0cmVhbSBiYWNrb2ZmaWNlLWFwaS1hdXRob3JpemVyIGJlaGF2aW9yLlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5zZWNvbmRzKDApXG4gICAqL1xuICByZWFkb25seSBhdXRob3JpemVyQ2FjaGVUdGw/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgY3VzdG9tIGRvbWFpbiBjb25maWd1cmF0aW9uLlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbj86IEFwcFRoZW9yeUh0dHBJbmdlc3Rpb25FbmRwb2ludERvbWFpbk9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHN0YWdlIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2U/OiBBcHBUaGVvcnlIdHRwSW5nZXN0aW9uRW5kcG9pbnRTdGFnZU9wdGlvbnM7XG59XG5cbi8qKlxuICogQXV0aGVudGljYXRlZCBIVFRQUyBpbmdlc3Rpb24gZW5kcG9pbnQgYmFja2VkIGJ5IExhbWJkYS5cbiAqXG4gKiBUaGlzIGNvbnN0cnVjdCBpcyBpbnRlbmRlZCBmb3Igc2VydmVyLXRvLXNlcnZlciBzdWJtaXNzaW9uIHBhdGhzIHdoZXJlIGNhbGxlcnNcbiAqIGF1dGhlbnRpY2F0ZSB3aXRoIGEgc2hhcmVkIHNlY3JldCBrZXkgdmlhIGEgTGFtYmRhIHJlcXVlc3QgYXV0aG9yaXplci5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwcFRoZW9yeUh0dHBJbmdlc3Rpb25FbmRwb2ludCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBhcGk6IGFwaWd3djIuSHR0cEFwaTtcbiAgcHVibGljIHJlYWRvbmx5IHJvdXRlQXV0aG9yaXplcjogYXBpZ3d2MkF1dGhvcml6ZXJzLkh0dHBMYW1iZGFBdXRob3JpemVyO1xuICBwdWJsaWMgcmVhZG9ubHkgZW5kcG9pbnQ6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHN0YWdlOiBhcGlnd3YyLklTdGFnZTtcbiAgcHVibGljIHJlYWRvbmx5IGFjY2Vzc0xvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG4gIHB1YmxpYyByZWFkb25seSBkb21haW5OYW1lPzogYXBpZ3d2Mi5Eb21haW5OYW1lO1xuICBwdWJsaWMgcmVhZG9ubHkgYXBpTWFwcGluZz86IGFwaWd3djIuQXBpTWFwcGluZztcbiAgcHVibGljIHJlYWRvbmx5IGNuYW1lUmVjb3JkPzogcm91dGU1My5DbmFtZVJlY29yZDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXBwVGhlb3J5SHR0cEluZ2VzdGlvbkVuZHBvaW50UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgZW5kcG9pbnRQYXRoID0gbm9ybWFsaXplRW5kcG9pbnRQYXRoKHByb3BzLmVuZHBvaW50UGF0aCA/PyBcIi9pbmdlc3RcIik7XG4gICAgY29uc3QgYXV0aG9yaXplckhlYWRlck5hbWUgPSBub3JtYWxpemVIZWFkZXJOYW1lKHByb3BzLmF1dGhvcml6ZXJIZWFkZXJOYW1lID8/IFwiQXV0aG9yaXphdGlvblwiKTtcbiAgICBjb25zdCBzdGFnZU9wdHMgPSBwcm9wcy5zdGFnZSA/PyB7fTtcbiAgICBjb25zdCBzdGFnZU5hbWUgPSBzdGFnZU9wdHMuc3RhZ2VOYW1lID8/IFwiJGRlZmF1bHRcIjtcblxuICAgIGNvbnN0IG5lZWRzRXhwbGljaXRTdGFnZSA9IHN0YWdlTmFtZSAhPT0gXCIkZGVmYXVsdFwiXG4gICAgICB8fCBzdGFnZU9wdHMuYWNjZXNzTG9nZ2luZ1xuICAgICAgfHwgc3RhZ2VPcHRzLnRocm90dGxpbmdSYXRlTGltaXQgIT09IHVuZGVmaW5lZFxuICAgICAgfHwgc3RhZ2VPcHRzLnRocm90dGxpbmdCdXJzdExpbWl0ICE9PSB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLmFwaSA9IG5ldyBhcGlnd3YyLkh0dHBBcGkodGhpcywgXCJBcGlcIiwge1xuICAgICAgYXBpTmFtZTogcHJvcHMuYXBpTmFtZSxcbiAgICAgIGNyZWF0ZURlZmF1bHRTdGFnZTogIW5lZWRzRXhwbGljaXRTdGFnZSxcbiAgICB9KTtcblxuICAgIGxldCBzdGFnZTogYXBpZ3d2Mi5JU3RhZ2UgfCB1bmRlZmluZWQ7XG4gICAgaWYgKG5lZWRzRXhwbGljaXRTdGFnZSkge1xuICAgICAgc3RhZ2UgPSBuZXcgYXBpZ3d2Mi5IdHRwU3RhZ2UodGhpcywgXCJTdGFnZVwiLCB7XG4gICAgICAgIGh0dHBBcGk6IHRoaXMuYXBpLFxuICAgICAgICBzdGFnZU5hbWUsXG4gICAgICAgIGF1dG9EZXBsb3k6IHRydWUsXG4gICAgICAgIHRocm90dGxlOiAoc3RhZ2VPcHRzLnRocm90dGxpbmdSYXRlTGltaXQgIT09IHVuZGVmaW5lZCB8fCBzdGFnZU9wdHMudGhyb3R0bGluZ0J1cnN0TGltaXQgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgcmF0ZUxpbWl0OiBzdGFnZU9wdHMudGhyb3R0bGluZ1JhdGVMaW1pdCxcbiAgICAgICAgICAgICAgYnVyc3RMaW1pdDogc3RhZ2VPcHRzLnRocm90dGxpbmdCdXJzdExpbWl0LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChzdGFnZU9wdHMuYWNjZXNzTG9nZ2luZykge1xuICAgICAgICBjb25zdCBsb2dHcm91cCA9IG5ldyBsb2dzLkxvZ0dyb3VwKHRoaXMsIFwiQWNjZXNzTG9nc1wiLCB7XG4gICAgICAgICAgcmV0ZW50aW9uOiBzdGFnZU9wdHMuYWNjZXNzTG9nUmV0ZW50aW9uID8/IGxvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfTU9OVEgsXG4gICAgICAgIH0pO1xuICAgICAgICAodGhpcyBhcyB7IGFjY2Vzc0xvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXAgfSkuYWNjZXNzTG9nR3JvdXAgPSBsb2dHcm91cDtcblxuICAgICAgICBjb25zdCBjZm5TdGFnZSA9IHN0YWdlLm5vZGUuZGVmYXVsdENoaWxkIGFzIGFwaWd3djIuQ2ZuU3RhZ2U7XG4gICAgICAgIGNmblN0YWdlLmFjY2Vzc0xvZ1NldHRpbmdzID0ge1xuICAgICAgICAgIGRlc3RpbmF0aW9uQXJuOiBsb2dHcm91cC5sb2dHcm91cEFybixcbiAgICAgICAgICBmb3JtYXQ6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIHJlcXVlc3RJZDogXCIkY29udGV4dC5yZXF1ZXN0SWRcIixcbiAgICAgICAgICAgIGlwOiBcIiRjb250ZXh0LmlkZW50aXR5LnNvdXJjZUlwXCIsXG4gICAgICAgICAgICByZXF1ZXN0VGltZTogXCIkY29udGV4dC5yZXF1ZXN0VGltZVwiLFxuICAgICAgICAgICAgaHR0cE1ldGhvZDogXCIkY29udGV4dC5odHRwTWV0aG9kXCIsXG4gICAgICAgICAgICByb3V0ZUtleTogXCIkY29udGV4dC5yb3V0ZUtleVwiLFxuICAgICAgICAgICAgc3RhdHVzOiBcIiRjb250ZXh0LnN0YXR1c1wiLFxuICAgICAgICAgICAgcHJvdG9jb2w6IFwiJGNvbnRleHQucHJvdG9jb2xcIixcbiAgICAgICAgICAgIHJlc3BvbnNlTGVuZ3RoOiBcIiRjb250ZXh0LnJlc3BvbnNlTGVuZ3RoXCIsXG4gICAgICAgICAgICBpbnRlZ3JhdGlvbkxhdGVuY3k6IFwiJGNvbnRleHQuaW50ZWdyYXRpb25MYXRlbmN5XCIsXG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YWdlID0gdGhpcy5hcGkuZGVmYXVsdFN0YWdlO1xuICAgIH1cblxuICAgIGlmICghc3RhZ2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkFwcFRoZW9yeUh0dHBJbmdlc3Rpb25FbmRwb2ludDogZmFpbGVkIHRvIGNyZWF0ZSBBUEkgc3RhZ2VcIik7XG4gICAgfVxuICAgIHRoaXMuc3RhZ2UgPSBzdGFnZTtcblxuICAgIHRoaXMucm91dGVBdXRob3JpemVyID0gbmV3IGFwaWd3djJBdXRob3JpemVycy5IdHRwTGFtYmRhQXV0aG9yaXplcihcIkF1dGhvcml6ZXJcIiwgcHJvcHMuYXV0aG9yaXplciwge1xuICAgICAgYXV0aG9yaXplck5hbWU6IHByb3BzLmF1dGhvcml6ZXJOYW1lLFxuICAgICAgaWRlbnRpdHlTb3VyY2U6IFtgJHJlcXVlc3QuaGVhZGVyLiR7YXV0aG9yaXplckhlYWRlck5hbWV9YF0sXG4gICAgICByZXN1bHRzQ2FjaGVUdGw6IHByb3BzLmF1dGhvcml6ZXJDYWNoZVR0bCA/PyBEdXJhdGlvbi5zZWNvbmRzKDApLFxuICAgICAgcmVzcG9uc2VUeXBlczogW2FwaWd3djJBdXRob3JpemVycy5IdHRwTGFtYmRhUmVzcG9uc2VUeXBlLlNJTVBMRV0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmFwaS5hZGRSb3V0ZXMoe1xuICAgICAgcGF0aDogZW5kcG9pbnRQYXRoLFxuICAgICAgbWV0aG9kczogW2FwaWd3djIuSHR0cE1ldGhvZC5QT1NUXSxcbiAgICAgIGludGVncmF0aW9uOiBuZXcgYXBpZ3d2MkludGVncmF0aW9ucy5IdHRwTGFtYmRhSW50ZWdyYXRpb24oXCJJbmdlc3Rpb25IYW5kbGVyXCIsIHByb3BzLmhhbmRsZXIsIHtcbiAgICAgICAgcGF5bG9hZEZvcm1hdFZlcnNpb246IGFwaWd3djIuUGF5bG9hZEZvcm1hdFZlcnNpb24uVkVSU0lPTl8yXzAsXG4gICAgICB9KSxcbiAgICAgIGF1dGhvcml6ZXI6IHRoaXMucm91dGVBdXRob3JpemVyLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLmRvbWFpbikge1xuICAgICAgdGhpcy5zZXR1cEN1c3RvbURvbWFpbihwcm9wcy5kb21haW4pO1xuICAgICAgdGhpcy5lbmRwb2ludCA9IGpvaW5VcmxQYXJ0cyhcbiAgICAgICAgYGh0dHBzOi8vJHtwcm9wcy5kb21haW4uZG9tYWluTmFtZX1gLFxuICAgICAgICBwcm9wcy5kb21haW4uYmFzZVBhdGgsXG4gICAgICAgIGVuZHBvaW50UGF0aCxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGJhc2VVcmwgPSBzdGFnZU5hbWUgPT09IFwiJGRlZmF1bHRcIlxuICAgICAgICA/IHRoaXMuYXBpLmFwaUVuZHBvaW50XG4gICAgICAgIDogYCR7dGhpcy5hcGkuYXBpRW5kcG9pbnR9LyR7c3RhZ2VOYW1lfWA7XG4gICAgICB0aGlzLmVuZHBvaW50ID0gam9pblVybFBhcnRzKGJhc2VVcmwsIGVuZHBvaW50UGF0aCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cEN1c3RvbURvbWFpbihkb21haW5PcHRzOiBBcHBUaGVvcnlIdHRwSW5nZXN0aW9uRW5kcG9pbnREb21haW5PcHRpb25zKTogdm9pZCB7XG4gICAgY29uc3QgY2VydGlmaWNhdGUgPSBkb21haW5PcHRzLmNlcnRpZmljYXRlID8/IChkb21haW5PcHRzLmNlcnRpZmljYXRlQXJuXG4gICAgICA/IGFjbS5DZXJ0aWZpY2F0ZS5mcm9tQ2VydGlmaWNhdGVBcm4odGhpcywgXCJJbXBvcnRlZENlcnRcIiwgZG9tYWluT3B0cy5jZXJ0aWZpY2F0ZUFybikgYXMgYWNtLklDZXJ0aWZpY2F0ZVxuICAgICAgOiB1bmRlZmluZWQpO1xuXG4gICAgaWYgKCFjZXJ0aWZpY2F0ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXBwVGhlb3J5SHR0cEluZ2VzdGlvbkVuZHBvaW50OiBkb21haW4gcmVxdWlyZXMgZWl0aGVyIGNlcnRpZmljYXRlIG9yIGNlcnRpZmljYXRlQXJuXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGRvbWFpbk5hbWUgPSBuZXcgYXBpZ3d2Mi5Eb21haW5OYW1lKHRoaXMsIFwiRG9tYWluTmFtZVwiLCB7XG4gICAgICBkb21haW5OYW1lOiBkb21haW5PcHRzLmRvbWFpbk5hbWUsXG4gICAgICBjZXJ0aWZpY2F0ZSxcbiAgICB9KTtcbiAgICAodGhpcyBhcyB7IGRvbWFpbk5hbWU/OiBhcGlnd3YyLkRvbWFpbk5hbWUgfSkuZG9tYWluTmFtZSA9IGRvbWFpbk5hbWU7XG5cbiAgICBjb25zdCBhcGlNYXBwaW5nID0gbmV3IGFwaWd3djIuQXBpTWFwcGluZyh0aGlzLCBcIkFwaU1hcHBpbmdcIiwge1xuICAgICAgYXBpOiB0aGlzLmFwaSxcbiAgICAgIGRvbWFpbk5hbWUsXG4gICAgICBzdGFnZTogdGhpcy5zdGFnZSxcbiAgICAgIGFwaU1hcHBpbmdLZXk6IG5vcm1hbGl6ZUJhc2VQYXRoKGRvbWFpbk9wdHMuYmFzZVBhdGgpLFxuICAgIH0pO1xuICAgICh0aGlzIGFzIHsgYXBpTWFwcGluZz86IGFwaWd3djIuQXBpTWFwcGluZyB9KS5hcGlNYXBwaW5nID0gYXBpTWFwcGluZztcblxuICAgIGlmIChkb21haW5PcHRzLmhvc3RlZFpvbmUpIHtcbiAgICAgIGNvbnN0IHJlY29yZE5hbWUgPSB0b1JvdXRlNTNSZWNvcmROYW1lKGRvbWFpbk9wdHMuZG9tYWluTmFtZSwgZG9tYWluT3B0cy5ob3N0ZWRab25lKTtcbiAgICAgIGNvbnN0IHJlY29yZCA9IG5ldyByb3V0ZTUzLkNuYW1lUmVjb3JkKHRoaXMsIFwiQ25hbWVSZWNvcmRcIiwge1xuICAgICAgICB6b25lOiBkb21haW5PcHRzLmhvc3RlZFpvbmUsXG4gICAgICAgIHJlY29yZE5hbWUsXG4gICAgICAgIGRvbWFpbk5hbWU6IGRvbWFpbk5hbWUucmVnaW9uYWxEb21haW5OYW1lLFxuICAgICAgfSk7XG4gICAgICAodGhpcyBhcyB7IGNuYW1lUmVjb3JkPzogcm91dGU1My5DbmFtZVJlY29yZCB9KS5jbmFtZVJlY29yZCA9IHJlY29yZDtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplRW5kcG9pbnRQYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHRyaW1tZWQgPSBTdHJpbmcocGF0aCA/PyBcIlwiKS50cmltKCk7XG4gIGlmICghdHJpbW1lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkFwcFRoZW9yeUh0dHBJbmdlc3Rpb25FbmRwb2ludDogZW5kcG9pbnRQYXRoIGlzIHJlcXVpcmVkXCIpO1xuICB9XG4gIHJldHVybiBgLyR7dHJpbW1lZC5yZXBsYWNlKC9eXFwvKy8sIFwiXCIpLnJlcGxhY2UoL1xcLyskLywgXCJcIil9YC5yZXBsYWNlKC9cXC97Mix9L2csIFwiL1wiKTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplSGVhZGVyTmFtZShoZWFkZXJOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCB0cmltbWVkID0gU3RyaW5nKGhlYWRlck5hbWUgPz8gXCJcIikudHJpbSgpO1xuICBpZiAoIXRyaW1tZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcHBUaGVvcnlIdHRwSW5nZXN0aW9uRW5kcG9pbnQ6IGF1dGhvcml6ZXJIZWFkZXJOYW1lIGlzIHJlcXVpcmVkXCIpO1xuICB9XG4gIHJldHVybiB0cmltbWVkO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVCYXNlUGF0aChiYXNlUGF0aD86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHRyaW1tZWQgPSBTdHJpbmcoYmFzZVBhdGggPz8gXCJcIikudHJpbSgpLnJlcGxhY2UoL15cXC8rLywgXCJcIikucmVwbGFjZSgvXFwvKyQvLCBcIlwiKTtcbiAgcmV0dXJuIHRyaW1tZWQgfHwgdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBqb2luVXJsUGFydHMoYmFzZVVybDogc3RyaW5nLCAuLi5wYXJ0czogQXJyYXk8c3RyaW5nIHwgdW5kZWZpbmVkPik6IHN0cmluZyB7XG4gIGxldCBvdXQgPSBTdHJpbmcoYmFzZVVybCA/PyBcIlwiKS5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpO1xuICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gU3RyaW5nKHBhcnQgPz8gXCJcIikudHJpbSgpLnJlcGxhY2UoL15cXC8rLywgXCJcIikucmVwbGFjZSgvXFwvKyQvLCBcIlwiKTtcbiAgICBpZiAoIW5vcm1hbGl6ZWQpIGNvbnRpbnVlO1xuICAgIG91dCA9IGAke291dH0vJHtub3JtYWxpemVkfWA7XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cblxuZnVuY3Rpb24gdG9Sb3V0ZTUzUmVjb3JkTmFtZShkb21haW5OYW1lOiBzdHJpbmcsIHpvbmU6IHJvdXRlNTMuSUhvc3RlZFpvbmUpOiBzdHJpbmcge1xuICBjb25zdCBmcWRuID0gU3RyaW5nKGRvbWFpbk5hbWUgPz8gXCJcIikudHJpbSgpLnJlcGxhY2UoL1xcLiQvLCBcIlwiKTtcbiAgY29uc3Qgem9uZU5hbWUgPSBTdHJpbmcoem9uZS56b25lTmFtZSA/PyBcIlwiKS50cmltKCkucmVwbGFjZSgvXFwuJC8sIFwiXCIpO1xuICBpZiAoIXpvbmVOYW1lKSByZXR1cm4gZnFkbjtcbiAgaWYgKGZxZG4gPT09IHpvbmVOYW1lKSByZXR1cm4gXCJcIjtcbiAgY29uc3Qgc3VmZml4ID0gYC4ke3pvbmVOYW1lfWA7XG4gIGlmIChmcWRuLmVuZHNXaXRoKHN1ZmZpeCkpIHtcbiAgICByZXR1cm4gZnFkbi5zbGljZSgwLCAtc3VmZml4Lmxlbmd0aCk7XG4gIH1cbiAgcmV0dXJuIGZxZG47XG59XG4iXX0= \ No newline at end of file diff --git a/cdk/lib/http-ingestion-endpoint.ts b/cdk/lib/http-ingestion-endpoint.ts new file mode 100644 index 00000000..7ee010f1 --- /dev/null +++ b/cdk/lib/http-ingestion-endpoint.ts @@ -0,0 +1,318 @@ +import { Duration } from "aws-cdk-lib"; +import * as acm from "aws-cdk-lib/aws-certificatemanager"; +import * as apigwv2 from "aws-cdk-lib/aws-apigatewayv2"; +import * as apigwv2Authorizers from "aws-cdk-lib/aws-apigatewayv2-authorizers"; +import * as apigwv2Integrations from "aws-cdk-lib/aws-apigatewayv2-integrations"; +import type * as lambda from "aws-cdk-lib/aws-lambda"; +import * as logs from "aws-cdk-lib/aws-logs"; +import * as route53 from "aws-cdk-lib/aws-route53"; +import { Construct } from "constructs"; + +export interface AppTheoryHttpIngestionEndpointDomainOptions { + /** + * The custom domain name (for example `ingest.example.com`). + */ + readonly domainName: string; + + /** + * ACM certificate for the domain. + * Provide either `certificate` or `certificateArn`. + */ + readonly certificate?: acm.ICertificate; + + /** + * ACM certificate ARN. + * Provide either `certificate` or `certificateArn`. + */ + readonly certificateArn?: string; + + /** + * Route53 hosted zone for automatic DNS record creation. + * If provided, a CNAME record will be created pointing to the API Gateway domain. + * @default undefined + */ + readonly hostedZone?: route53.IHostedZone; + + /** + * Optional API mapping key under the custom domain. + * @default undefined + */ + readonly basePath?: string; +} + +export interface AppTheoryHttpIngestionEndpointStageOptions { + /** + * Stage name. + * @default "$default" + */ + readonly stageName?: string; + + /** + * Enable CloudWatch access logging for the stage. + * @default false + */ + readonly accessLogging?: boolean; + + /** + * Retention period for auto-created access log group. + * Only applies when accessLogging is true. + * @default logs.RetentionDays.ONE_MONTH + */ + readonly accessLogRetention?: logs.RetentionDays; + + /** + * Throttling rate limit (requests per second) for the stage. + * @default undefined + */ + readonly throttlingRateLimit?: number; + + /** + * Throttling burst limit for the stage. + * @default undefined + */ + readonly throttlingBurstLimit?: number; +} + +export interface AppTheoryHttpIngestionEndpointProps { + /** + * Lambda function that handles the ingestion request. + */ + readonly handler: lambda.IFunction; + + /** + * Lambda request authorizer used for secret-key validation. + */ + readonly authorizer: lambda.IFunction; + + /** + * Optional API name. + * @default undefined + */ + readonly apiName?: string; + + /** + * HTTPS path exposed by the endpoint. + * @default "/ingest" + */ + readonly endpointPath?: string; + + /** + * Header used as the identity source for secret-key authorization. + * This defaults to `Authorization` to mirror the backoffice-api-authorizer pattern. + * @default "Authorization" + */ + readonly authorizerHeaderName?: string; + + /** + * Friendly authorizer name. + * @default undefined + */ + readonly authorizerName?: string; + + /** + * Lambda authorizer result cache TTL. + * Defaults to disabled to match the upstream backoffice-api-authorizer behavior. + * @default Duration.seconds(0) + */ + readonly authorizerCacheTtl?: Duration; + + /** + * Optional custom domain configuration. + * @default undefined + */ + readonly domain?: AppTheoryHttpIngestionEndpointDomainOptions; + + /** + * Optional stage configuration. + * @default undefined + */ + readonly stage?: AppTheoryHttpIngestionEndpointStageOptions; +} + +/** + * Authenticated HTTPS ingestion endpoint backed by Lambda. + * + * This construct is intended for server-to-server submission paths where callers + * authenticate with a shared secret key via a Lambda request authorizer. + */ +export class AppTheoryHttpIngestionEndpoint extends Construct { + public readonly api: apigwv2.HttpApi; + public readonly routeAuthorizer: apigwv2Authorizers.HttpLambdaAuthorizer; + public readonly endpoint: string; + public readonly stage: apigwv2.IStage; + public readonly accessLogGroup?: logs.ILogGroup; + public readonly domainName?: apigwv2.DomainName; + public readonly apiMapping?: apigwv2.ApiMapping; + public readonly cnameRecord?: route53.CnameRecord; + + constructor(scope: Construct, id: string, props: AppTheoryHttpIngestionEndpointProps) { + super(scope, id); + + const endpointPath = normalizeEndpointPath(props.endpointPath ?? "/ingest"); + const authorizerHeaderName = normalizeHeaderName(props.authorizerHeaderName ?? "Authorization"); + const stageOpts = props.stage ?? {}; + const stageName = stageOpts.stageName ?? "$default"; + + const needsExplicitStage = stageName !== "$default" + || stageOpts.accessLogging + || stageOpts.throttlingRateLimit !== undefined + || stageOpts.throttlingBurstLimit !== undefined; + + this.api = new apigwv2.HttpApi(this, "Api", { + apiName: props.apiName, + createDefaultStage: !needsExplicitStage, + }); + + let stage: apigwv2.IStage | undefined; + if (needsExplicitStage) { + stage = new apigwv2.HttpStage(this, "Stage", { + httpApi: this.api, + stageName, + autoDeploy: true, + throttle: (stageOpts.throttlingRateLimit !== undefined || stageOpts.throttlingBurstLimit !== undefined) + ? { + rateLimit: stageOpts.throttlingRateLimit, + burstLimit: stageOpts.throttlingBurstLimit, + } + : undefined, + }); + + if (stageOpts.accessLogging) { + const logGroup = new logs.LogGroup(this, "AccessLogs", { + retention: stageOpts.accessLogRetention ?? logs.RetentionDays.ONE_MONTH, + }); + (this as { accessLogGroup?: logs.ILogGroup }).accessLogGroup = logGroup; + + const cfnStage = stage.node.defaultChild as apigwv2.CfnStage; + cfnStage.accessLogSettings = { + destinationArn: logGroup.logGroupArn, + format: JSON.stringify({ + requestId: "$context.requestId", + ip: "$context.identity.sourceIp", + requestTime: "$context.requestTime", + httpMethod: "$context.httpMethod", + routeKey: "$context.routeKey", + status: "$context.status", + protocol: "$context.protocol", + responseLength: "$context.responseLength", + integrationLatency: "$context.integrationLatency", + }), + }; + } + } else { + stage = this.api.defaultStage; + } + + if (!stage) { + throw new Error("AppTheoryHttpIngestionEndpoint: failed to create API stage"); + } + this.stage = stage; + + this.routeAuthorizer = new apigwv2Authorizers.HttpLambdaAuthorizer("Authorizer", props.authorizer, { + authorizerName: props.authorizerName, + identitySource: [`$request.header.${authorizerHeaderName}`], + resultsCacheTtl: props.authorizerCacheTtl ?? Duration.seconds(0), + responseTypes: [apigwv2Authorizers.HttpLambdaResponseType.SIMPLE], + }); + + this.api.addRoutes({ + path: endpointPath, + methods: [apigwv2.HttpMethod.POST], + integration: new apigwv2Integrations.HttpLambdaIntegration("IngestionHandler", props.handler, { + payloadFormatVersion: apigwv2.PayloadFormatVersion.VERSION_2_0, + }), + authorizer: this.routeAuthorizer, + }); + + if (props.domain) { + this.setupCustomDomain(props.domain); + this.endpoint = joinUrlParts( + `https://${props.domain.domainName}`, + props.domain.basePath, + endpointPath, + ); + } else { + const baseUrl = stageName === "$default" + ? this.api.apiEndpoint + : `${this.api.apiEndpoint}/${stageName}`; + this.endpoint = joinUrlParts(baseUrl, endpointPath); + } + } + + private setupCustomDomain(domainOpts: AppTheoryHttpIngestionEndpointDomainOptions): void { + const certificate = domainOpts.certificate ?? (domainOpts.certificateArn + ? acm.Certificate.fromCertificateArn(this, "ImportedCert", domainOpts.certificateArn) as acm.ICertificate + : undefined); + + if (!certificate) { + throw new Error("AppTheoryHttpIngestionEndpoint: domain requires either certificate or certificateArn"); + } + + const domainName = new apigwv2.DomainName(this, "DomainName", { + domainName: domainOpts.domainName, + certificate, + }); + (this as { domainName?: apigwv2.DomainName }).domainName = domainName; + + const apiMapping = new apigwv2.ApiMapping(this, "ApiMapping", { + api: this.api, + domainName, + stage: this.stage, + apiMappingKey: normalizeBasePath(domainOpts.basePath), + }); + (this as { apiMapping?: apigwv2.ApiMapping }).apiMapping = apiMapping; + + if (domainOpts.hostedZone) { + const recordName = toRoute53RecordName(domainOpts.domainName, domainOpts.hostedZone); + const record = new route53.CnameRecord(this, "CnameRecord", { + zone: domainOpts.hostedZone, + recordName, + domainName: domainName.regionalDomainName, + }); + (this as { cnameRecord?: route53.CnameRecord }).cnameRecord = record; + } + } +} + +function normalizeEndpointPath(path: string): string { + const trimmed = String(path ?? "").trim(); + if (!trimmed) { + throw new Error("AppTheoryHttpIngestionEndpoint: endpointPath is required"); + } + return `/${trimmed.replace(/^\/+/, "").replace(/\/+$/, "")}`.replace(/\/{2,}/g, "/"); +} + +function normalizeHeaderName(headerName: string): string { + const trimmed = String(headerName ?? "").trim(); + if (!trimmed) { + throw new Error("AppTheoryHttpIngestionEndpoint: authorizerHeaderName is required"); + } + return trimmed; +} + +function normalizeBasePath(basePath?: string): string | undefined { + const trimmed = String(basePath ?? "").trim().replace(/^\/+/, "").replace(/\/+$/, ""); + return trimmed || undefined; +} + +function joinUrlParts(baseUrl: string, ...parts: Array): string { + let out = String(baseUrl ?? "").replace(/\/+$/, ""); + for (const part of parts) { + const normalized = String(part ?? "").trim().replace(/^\/+/, "").replace(/\/+$/, ""); + if (!normalized) continue; + out = `${out}/${normalized}`; + } + return out; +} + +function toRoute53RecordName(domainName: string, zone: route53.IHostedZone): string { + const fqdn = String(domainName ?? "").trim().replace(/\.$/, ""); + const zoneName = String(zone.zoneName ?? "").trim().replace(/\.$/, ""); + if (!zoneName) return fqdn; + if (fqdn === zoneName) return ""; + const suffix = `.${zoneName}`; + if (fqdn.endsWith(suffix)) { + return fqdn.slice(0, -suffix.length); + } + return fqdn; +} diff --git a/cdk/lib/index.d.ts b/cdk/lib/index.d.ts index 99bc0904..1e32f657 100644 --- a/cdk/lib/index.d.ts +++ b/cdk/lib/index.d.ts @@ -8,11 +8,13 @@ export * from "./kms-key"; export * from "./enhanced-security"; export * from "./app"; export * from "./dynamodb-stream-mapping"; +export * from "./eventbridge-bus"; export * from "./eventbus-table"; export * from "./dynamo-table"; export * from "./eventbridge-handler"; export * from "./eventbridge-rule-target"; export * from "./http-api"; +export * from "./http-ingestion-endpoint"; export * from "./jobs-table"; export * from "./queue"; export * from "./queue-consumer"; diff --git a/cdk/lib/index.js b/cdk/lib/index.js index 45127105..302e8e74 100644 --- a/cdk/lib/index.js +++ b/cdk/lib/index.js @@ -24,11 +24,13 @@ __exportStar(require("./kms-key"), exports); __exportStar(require("./enhanced-security"), exports); __exportStar(require("./app"), exports); __exportStar(require("./dynamodb-stream-mapping"), exports); +__exportStar(require("./eventbridge-bus"), exports); __exportStar(require("./eventbus-table"), exports); __exportStar(require("./dynamo-table"), exports); __exportStar(require("./eventbridge-handler"), exports); __exportStar(require("./eventbridge-rule-target"), exports); __exportStar(require("./http-api"), exports); +__exportStar(require("./http-ingestion-endpoint"), exports); __exportStar(require("./jobs-table"), exports); __exportStar(require("./queue"), exports); __exportStar(require("./queue-consumer"), exports); @@ -44,4 +46,4 @@ __exportStar(require("./lambda-role"), exports); __exportStar(require("./mcp-server"), exports); __exportStar(require("./mcp-protected-resource"), exports); __exportStar(require("./remote-mcp-server"), exports); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTJCO0FBQzNCLG9EQUFrQztBQUNsQyxnREFBOEI7QUFDOUIsZ0RBQThCO0FBQzlCLCtDQUE2QjtBQUM3Qix5REFBdUM7QUFDdkMsNENBQTBCO0FBQzFCLHNEQUFvQztBQUNwQyx3Q0FBc0I7QUFDdEIsNERBQTBDO0FBQzFDLG1EQUFpQztBQUNqQyxpREFBK0I7QUFDL0Isd0RBQXNDO0FBQ3RDLDREQUEwQztBQUMxQyw2Q0FBMkI7QUFDM0IsK0NBQTZCO0FBQzdCLDBDQUF3QjtBQUN4QixtREFBaUM7QUFDakMsb0RBQWtDO0FBQ2xDLDZDQUEyQjtBQUMzQixvREFBa0M7QUFDbEMsOENBQTRCO0FBQzVCLGtEQUFnQztBQUNoQyw2Q0FBMkI7QUFDM0IseURBQXVDO0FBQ3ZDLDhDQUE0QjtBQUM1QixnREFBOEI7QUFDOUIsK0NBQTZCO0FBQzdCLDJEQUF5QztBQUN6QyxzREFBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9mdW5jdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZnVuY3Rpb24tYWxhcm1zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ob3N0ZWQtem9uZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY2VydGlmaWNhdGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FwaS1kb21haW5cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvZGVidWlsZC1qb2ItcnVubmVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9rbXMta2V5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbmhhbmNlZC1zZWN1cml0eVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYXBwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9keW5hbW9kYi1zdHJlYW0tbWFwcGluZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXZlbnRidXMtdGFibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2R5bmFtby10YWJsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXZlbnRicmlkZ2UtaGFuZGxlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXZlbnRicmlkZ2UtcnVsZS10YXJnZXRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2h0dHAtYXBpXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qb2JzLXRhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWV1ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcXVldWUtY29uc3VtZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXVlLXByb2Nlc3NvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVzdC1hcGlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Jlc3QtYXBpLXJvdXRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vczMtaW5nZXN0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi93ZWJzb2NrZXQtYXBpXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zc3Itc2l0ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGF0aC1yb3V0ZWQtZnJvbnRlbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21lZGlhLWNkblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGFtYmRhLXJvbGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21jcC1zZXJ2ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21jcC1wcm90ZWN0ZWQtcmVzb3VyY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JlbW90ZS1tY3Atc2VydmVyXCI7XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTJCO0FBQzNCLG9EQUFrQztBQUNsQyxnREFBOEI7QUFDOUIsZ0RBQThCO0FBQzlCLCtDQUE2QjtBQUM3Qix5REFBdUM7QUFDdkMsNENBQTBCO0FBQzFCLHNEQUFvQztBQUNwQyx3Q0FBc0I7QUFDdEIsNERBQTBDO0FBQzFDLG9EQUFrQztBQUNsQyxtREFBaUM7QUFDakMsaURBQStCO0FBQy9CLHdEQUFzQztBQUN0Qyw0REFBMEM7QUFDMUMsNkNBQTJCO0FBQzNCLDREQUEwQztBQUMxQywrQ0FBNkI7QUFDN0IsMENBQXdCO0FBQ3hCLG1EQUFpQztBQUNqQyxvREFBa0M7QUFDbEMsNkNBQTJCO0FBQzNCLG9EQUFrQztBQUNsQyw4Q0FBNEI7QUFDNUIsa0RBQWdDO0FBQ2hDLDZDQUEyQjtBQUMzQix5REFBdUM7QUFDdkMsOENBQTRCO0FBQzVCLGdEQUE4QjtBQUM5QiwrQ0FBNkI7QUFDN0IsMkRBQXlDO0FBQ3pDLHNEQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2Z1bmN0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mdW5jdGlvbi1hbGFybXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2hvc3RlZC16b25lXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jZXJ0aWZpY2F0ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYXBpLWRvbWFpblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29kZWJ1aWxkLWpvYi1ydW5uZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ttcy1rZXlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VuaGFuY2VkLXNlY3VyaXR5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hcHBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2R5bmFtb2RiLXN0cmVhbS1tYXBwaW5nXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ldmVudGJyaWRnZS1idXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V2ZW50YnVzLXRhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9keW5hbW8tdGFibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V2ZW50YnJpZGdlLWhhbmRsZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V2ZW50YnJpZGdlLXJ1bGUtdGFyZ2V0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9odHRwLWFwaVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaHR0cC1pbmdlc3Rpb24tZW5kcG9pbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pvYnMtdGFibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXVlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWV1ZS1jb25zdW1lclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcXVldWUtcHJvY2Vzc29yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXN0LWFwaVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVzdC1hcGktcm91dGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zMy1pbmdlc3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3dlYnNvY2tldC1hcGlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Nzci1zaXRlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wYXRoLXJvdXRlZC1mcm9udGVuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbWVkaWEtY2RuXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9sYW1iZGEtcm9sZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbWNwLXNlcnZlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbWNwLXByb3RlY3RlZC1yZXNvdXJjZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVtb3RlLW1jcC1zZXJ2ZXJcIjtcbiJdfQ== \ No newline at end of file diff --git a/cdk/lib/index.ts b/cdk/lib/index.ts index 99bc0904..1e32f657 100644 --- a/cdk/lib/index.ts +++ b/cdk/lib/index.ts @@ -8,11 +8,13 @@ export * from "./kms-key"; export * from "./enhanced-security"; export * from "./app"; export * from "./dynamodb-stream-mapping"; +export * from "./eventbridge-bus"; export * from "./eventbus-table"; export * from "./dynamo-table"; export * from "./eventbridge-handler"; export * from "./eventbridge-rule-target"; export * from "./http-api"; +export * from "./http-ingestion-endpoint"; export * from "./jobs-table"; export * from "./queue"; export * from "./queue-consumer"; diff --git a/cdk/lib/jobs-table.js b/cdk/lib/jobs-table.js index ef478cf8..70291f94 100644 --- a/cdk/lib/jobs-table.js +++ b/cdk/lib/jobs-table.js @@ -110,5 +110,5 @@ class AppTheoryJobsTable extends constructs_1.Construct { } exports.AppTheoryJobsTable = AppTheoryJobsTable; _a = JSII_RTTI_SYMBOL_1; -AppTheoryJobsTable[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryJobsTable", version: "0.18.0-rc" }; +AppTheoryJobsTable[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryJobsTable", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9icy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImpvYnMtdGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBNEM7QUFDNUMscURBQXFEO0FBSXJELDJDQUF1QztBQThFdkM7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsc0JBQVM7SUFHL0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUFpQyxFQUFFO1FBQzNFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQztRQUM5RSxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxJQUFJLDJCQUFhLENBQUMsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxLQUFLLENBQUM7UUFDeEQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLHlCQUF5QixJQUFJLElBQUksQ0FBQztRQUMzRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDO1FBRTVFLElBQUksVUFBVSxLQUFLLFFBQVEsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckYsTUFBTSxJQUFJLEtBQUssQ0FBQywrRUFBK0UsQ0FBQyxDQUFDO1FBQ25HLENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQzdDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMxQixXQUFXO1lBQ1gsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFD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dUI7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWSxDQUFDLE9BQXVCO1FBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNJLGdCQUFnQixDQUFDLE9BQXVCO1FBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQzs7QUFsR0gsZ0RBbUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgZHluYW1vZGIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1keW5hbW9kYlwiO1xuaW1wb3J0IHR5cGUgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB0eXBlICogYXMga21zIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mta21zXCI7XG5pbXBvcnQgdHlwZSAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBcHBUaGVvcnlKb2JzVGFibGVQcm9wcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCB0YWJsZSBuYW1lLlxuICAgKiBAZGVmYXVsdCAtIENsb3VkRm9ybWF0aW9uLWdlbmVyYXRlZCBuYW1lXG4gICAqL1xuICByZWFkb25seSB0YWJsZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJpbGxpbmcgbW9kZSBmb3IgdGhlIHRhYmxlLlxuICAgKiBAZGVmYXVsdCBQQVlfUEVSX1JFUVVFU1RcbiAgICovXG4gIHJlYWRvbmx5IGJpbGxpbmdNb2RlPzogZHluYW1vZGIuQmlsbGluZ01vZGU7XG5cbiAgLyoqXG4gICAqIFJlbW92YWwgcG9saWN5IGZvciB0aGUgdGFibGUuXG4gICAqIEBkZWZhdWx0IFJlbW92YWxQb2xpY3kuUkVUQUlOXG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcblxuICAvKipcbiAgICogV2hldGhlciBkZWxldGlvbiBwcm90ZWN0aW9uIHNob3VsZCBiZSBlbmFibGVkIGZvciB0aGUgdGFibGUuXG4gICAqIEBkZWZhdWx0IC0gQVdTIGRlZmF1bHQgKG5vIGRlbGV0aW9uIHByb3RlY3Rpb24pXG4gICAqL1xuICByZWFkb25seSBkZWxldGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUVEwgYXR0cmlidXRlIG5hbWUuXG4gICAqIEBkZWZhdWx0IFwidHRsXCJcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVUb0xpdmVBdHRyaWJ1dGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgcG9pbnQtaW4tdGltZSByZWNvdmVyeSBzaG91bGQgYmUgZW5hYmxlZC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlUG9pbnRJblRpbWVSZWNvdmVyeT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRhYmxlIGVuY3J5cHRpb24gc2V0dGluZy5cbiAgICogQGRlZmF1bHQgQVdTX01BTkFHRURcbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBkeW5hbW9kYi5UYWJsZUVuY3J5cHRpb247XG5cbiAgLyoqXG4gICAqIEN1c3RvbWVyLW1hbmFnZWQgS01TIGtleSAocmVxdWlyZWQgd2hlbiBlbmNyeXB0aW9uIGlzIENVU1RPTUVSX01BTkFHRUQpLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IGttcy5JS2V5O1xuXG4gIC8qKlxuICAgKiBQcm92aXNpb25lZCByZWFkIGNhcGFjaXR5IChvbmx5IHVzZWQgd2hlbiBiaWxsaW5nTW9kZSBpcyBQUk9WSVNJT05FRCkuXG4gICAqIEBkZWZhdWx0IDVcbiAgICovXG4gIHJlYWRvbmx5IHJlYWRDYXBhY2l0eT86IG51bWJlcjtcblxuICAvKipcbiAgICogUHJvdmlzaW9uZWQgd3JpdGUgY2FwYWNpdHkgKG9ubHkgdXNlZCB3aGVuIGJpbGxpbmdNb2RlIGlzIFBST1ZJU0lPTkVEKS5cbiAgICogQGRlZmF1bHQgNVxuICAgKi9cbiAgcmVhZG9ubHkgd3JpdGVDYXBhY2l0eT86IG51bWJlcjtcblxuICAvKipcbiAgICogUHJpbmNpcGFscyB0byBncmFudCBEeW5hbW9EQiByZWFkIHBlcm1pc3Npb25zIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgZ3JhbnRSZWFkVG8/OiBpYW0uSUdyYW50YWJsZVtdO1xuXG4gIC8qKlxuICAgKiBQcmluY2lwYWxzIHRvIGdyYW50IER5bmFtb0RCIHdyaXRlIHBlcm1pc3Npb25zIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgZ3JhbnRXcml0ZVRvPzogaWFtLklHcmFudGFibGVbXTtcblxuICAvKipcbiAgICogUHJpbmNpcGFscyB0byBncmFudCBEeW5hbW9EQiByZWFkL3dyaXRlIHBlcm1pc3Npb25zIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgZ3JhbnRSZWFkV3JpdGVUbz86IGlhbS5JR3JhbnRhYmxlW107XG59XG5cbi8qKlxuICogT3BpbmlvbmF0ZWQgRHluYW1vREIgdGFibGUgZm9yIGltcG9ydCBwaXBlbGluZSBqb2IgbGVkZ2Vycy5cbiAqXG4gKiBDYW5vbmljYWwgc2NoZW1hOlxuICogLSBQSzogYHBrYCAoc3RyaW5nKVxuICogLSBTSzogYHNrYCAoc3RyaW5nKVxuICpcbiAqIENhbm9uaWNhbCBHU0lzIChsb2NrZWQgYnkgQURSIDAwMDIpOlxuICogLSBgc3RhdHVzLWNyZWF0ZWQtaW5kZXhgOiBgc3RhdHVzYCAocGspICsgYGNyZWF0ZWRfYXRgIChzaylcbiAqIC0gYHRlbmFudC1jcmVhdGVkLWluZGV4YDogYHRlbmFudF9pZGAgKHBrKSArIGBjcmVhdGVkX2F0YCAoc2spXG4gKlxuICogQ2Fub25pY2FsIFRUTCBhdHRyaWJ1dGU6XG4gKiAtIGB0dGxgIChjb25maWd1cmFibGUpXG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBUaGVvcnlKb2JzVGFibGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgdGFibGU6IGR5bmFtb2RiLlRhYmxlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBcHBUaGVvcnlKb2JzVGFibGVQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGJpbGxpbmdNb2RlID0gcHJvcHMuYmlsbGluZ01vZGUgPz8gZHluYW1vZGIuQmlsbGluZ01vZGUuUEFZX1BFUl9SRVFVRVNUO1xuICAgIGNvbnN0IHJlbW92YWxQb2xpY3kgPSBwcm9wcy5yZW1vdmFsUG9saWN5ID8/IFJlbW92YWxQb2xpY3kuUkVUQUlOO1xuICAgIGNvbnN0IHR0bEF0dHJpYnV0ZSA9IHByb3BzLnRpbWVUb0xpdmVBdHRyaWJ1dGUgPz8gXCJ0dGxcIjtcbiAgICBjb25zdCBlbmFibGVQSVRSID0gcHJvcHMuZW5hYmxlUG9pbnRJblRpbWVSZWNvdmVyeSA/PyB0cnVlO1xuICAgIGNvbnN0IGVuY3J5cHRpb24gPSBwcm9wcy5lbmNyeXB0aW9uID8/IGR5bmFtb2RiLlRhYmxlRW5jcnlwdGlvbi5BV1NfTUFOQUdFRDtcblxuICAgIGlmIChlbmNyeXB0aW9uID09PSBkeW5hbW9kYi5UYWJsZUVuY3J5cHRpb24uQ1VTVE9NRVJfTUFOQUdFRCAmJiAhcHJvcHMuZW5jcnlwdGlvbktleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXBwVGhlb3J5Sm9ic1RhYmxlIHJlcXVpcmVzIGVuY3J5cHRpb25LZXkgd2hlbiBlbmNyeXB0aW9uIGlzIENVU1RPTUVSX01BTkFHRURcIik7XG4gICAgfVxuXG4gICAgdGhpcy50YWJsZSA9IG5ldyBkeW5hbW9kYi5UYWJsZSh0aGlzLCBcIlRhYmxlXCIsIHtcbiAgICAgIHRhYmxlTmFtZTogcHJvcHMudGFibGVOYW1lLFxuICAgICAgYmlsbGluZ01vZGUsXG4gICAgICBwYXJ0aXRpb25LZXk6IHsgbmFtZTogXCJwa1wiLCB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyB9LFxuICAgICAgc29ydEtleTogeyBuYW1lOiBcInNrXCIsIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HIH0sXG4gICAgICB0aW1lVG9MaXZlQXR0cmlidXRlOiB0dGxBdHRyaWJ1dGUsXG4gICAgICByZW1vdmFsUG9saWN5LFxuICAgICAgZGVsZXRpb25Qcm90ZWN0aW9uOiBwcm9wcy5kZWxldGlvblByb3RlY3Rpb24sXG4gICAgICBwb2ludEluVGltZVJlY292ZXJ5OiBlbmFibGVQSVRSLFxuICAgICAgZW5jcnlwdGlvbixcbiAgICAgIGVuY3J5cHRpb25LZXk6IHByb3BzLmVuY3J5cHRpb25LZXksXG4gICAgICAuLi4oYmlsbGluZ01vZGUgPT09IGR5bmFtb2RiLkJpbGxpbmdNb2RlLlBST1ZJU0lPTkVEXG4gICAgICAgID8ge1xuICAgICAgICAgICAgcmVhZENhcGFjaXR5OiBwcm9wcy5yZWFkQ2FwYWNpdHkgPz8gNSxcbiAgICAgICAgICAgIHdyaXRlQ2FwYWNpdHk6IHByb3BzLndyaXRlQ2FwYWNpdHkgPz8gNSxcbiAgICAgICAgICB9XG4gICAgICAgIDoge30pLFxuICAgIH0pO1xuXG4gICAgdGhpcy50YWJsZS5hZGRHbG9iYWxTZWNvbmRhcnlJbmRleCh7XG4gICAgICBpbmRleE5hbWU6IFwic3RhdHVzLWNyZWF0ZWQtaW5kZXhcIixcbiAgICAgIHBhcnRpdGlvbktleTogeyBuYW1lOiBcInN0YXR1c1wiLCB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyB9LFxuICAgICAgc29ydEtleTogeyBuYW1lOiBcImNyZWF0ZWRfYXRcIiwgdHlwZTogZHluYW1vZGIuQXR0cmlidXRlVHlwZS5TVFJJTkcgfSxcbiAgICAgIHByb2plY3Rpb25UeXBlOiBkeW5hbW9kYi5Qcm9qZWN0aW9uVHlwZS5BTEwsXG4gICAgICAuLi4oYmlsbGluZ01vZGUgPT09IGR5bmFtb2RiLkJpbGxpbmdNb2RlLlBST1ZJU0lPTkVEXG4gICAgICAgID8ge1xuICAgICAgICAgICAgcmVhZENhcGFjaXR5OiA1LFxuICAgICAgICAgICAgd3JpdGVDYXBhY2l0eTogNSxcbiAgICAgICAgICB9XG4gICAgICAgIDoge30pLFxuICAgIH0pO1xuXG4gICAgdGhpcy50YWJsZS5hZGRHbG9iYWxTZWNvbmRhcnlJbmRleCh7XG4gICAgICBpbmRleE5hbWU6IFwidGVuYW50LWNyZWF0ZWQtaW5kZXhcIixcbiAgICAgIHBhcnRpdGlvbktleTogeyBuYW1lOiBcInRlbmFudF9pZFwiLCB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyB9LFxuICAgICAgc29ydEtleTogeyBuYW1lOiBcImNyZWF0ZWRfYXRcIiwgdHlwZTogZHluYW1vZGIuQXR0cmlidXRlVHlwZS5TVFJJTkcgfSxcbiAgICAgIHByb2plY3Rpb25UeXBlOiBkeW5hbW9kYi5Qcm9qZWN0aW9uVHlwZS5BTEwsXG4gICAgICAuLi4oYmlsbGluZ01vZGUgPT09IGR5bmFtb2RiLkJpbGxpbmdNb2RlLlBST1ZJU0lPTkVEXG4gICAgICAgID8ge1xuICAgICAgICAgICAgcmVhZENhcGFjaXR5OiA1LFxuICAgICAgICAgICAgd3JpdGVDYXBhY2l0eTogNSxcbiAgICAgICAgICB9XG4gICAgICAgIDoge30pLFxuICAgIH0pO1xuXG4gICAgZm9yIChjb25zdCBncmFudGVlIG9mIHByb3BzLmdyYW50UmVhZFRvID8/IFtdKSB7XG4gICAgICB0aGlzLnRhYmxlLmdyYW50UmVhZERhdGEoZ3JhbnRlZSk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgZ3JhbnRlZSBvZiBwcm9wcy5ncmFudFdyaXRlVG8gPz8gW10pIHtcbiAgICAgIHRoaXMudGFibGUuZ3JhbnRXcml0ZURhdGEoZ3JhbnRlZSk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgZ3JhbnRlZSBvZiBwcm9wcy5ncmFudFJlYWRXcml0ZVRvID8/IFtdKSB7XG4gICAgICB0aGlzLnRhYmxlLmdyYW50UmVhZFdyaXRlRGF0YShncmFudGVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQmluZHMgdGhlIGNhbm9uaWNhbCBqb2JzIHRhYmxlIGVudiB2YXIgdG8gYSBMYW1iZGEgZnVuY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgYmluZEVudmlyb25tZW50KGZuOiBsYW1iZGEuRnVuY3Rpb24pOiB2b2lkIHtcbiAgICBmbi5hZGRFbnZpcm9ubWVudChcIkFQUFRIRU9SWV9KT0JTX1RBQkxFX05BTUVcIiwgdGhpcy50YWJsZS50YWJsZU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IER5bmFtb0RCIHJlYWQgcGVybWlzc2lvbnMuXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRSZWFkVG8oZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlLmdyYW50UmVhZERhdGEoZ3JhbnRlZSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgRHluYW1vREIgd3JpdGUgcGVybWlzc2lvbnMuXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRXcml0ZVRvKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogdm9pZCB7XG4gICAgdGhpcy50YWJsZS5ncmFudFdyaXRlRGF0YShncmFudGVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBEeW5hbW9EQiByZWFkL3dyaXRlIHBlcm1pc3Npb25zLlxuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZFdyaXRlVG8oZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlLmdyYW50UmVhZFdyaXRlRGF0YShncmFudGVlKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/cdk/lib/kms-key.js b/cdk/lib/kms-key.js index 78ea924d..6704aa52 100644 --- a/cdk/lib/kms-key.js +++ b/cdk/lib/kms-key.js @@ -90,7 +90,7 @@ class AppTheoryKmsKey extends constructs_1.Construct { } exports.AppTheoryKmsKey = AppTheoryKmsKey; _a = JSII_RTTI_SYMBOL_1; -AppTheoryKmsKey[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryKmsKey", version: "0.18.0-rc" }; +AppTheoryKmsKey[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryKmsKey", version: "0.18.2" }; function createDefaultReplicaKeyPolicy(scope) { const stack = aws_cdk_lib_1.Stack.of(scope); const accountId = stack.account; diff --git a/cdk/lib/lambda-role.js b/cdk/lib/lambda-role.js index f20dc09d..a11c49cc 100644 --- a/cdk/lib/lambda-role.js +++ b/cdk/lib/lambda-role.js @@ -108,5 +108,5 @@ class AppTheoryLambdaRole extends constructs_1.Construct { } exports.AppTheoryLambdaRole = AppTheoryLambdaRole; _a = JSII_RTTI_SYMBOL_1; -AppTheoryLambdaRole[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryLambdaRole", version: "0.18.0-rc" }; +AppTheoryLambdaRole[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryLambdaRole", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLXJvbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJsYW1iZGEtcm9sZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFtQztBQUNuQywyQ0FBMkM7QUFFM0MsMkNBQXVDO0FBOEN2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFhLG1CQUFvQixTQUFRLHNCQUFTO0lBZ0I5QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQWtDLEVBQUU7UUFDMUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQztRQUU3Qyx3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUNuQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksNENBQTRDO1lBQzlFLFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQztTQUM5RCxDQUFDLENBQUM7UUFFSCxnRkFBZ0Y7UUFDaEYsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLDBDQUEwQyxDQUFDLENBQUMsQ0FBQztRQUVuSCxzQ0FBc0M7UUFDdEMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUM7UUFDdkcsQ0FBQztRQUVELGdFQUFnRTtRQUNoRSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hGLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1RSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FDakIsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUNwQixHQUFHLEVBQUUsNEJBQTRCO2dCQUNqQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7Z0JBQ3hCLFNBQVMsRUFBRSxVQUFVO2FBQ3hCLENBQUMsQ0FDTCxDQUFDO1FBQ04sQ0FBQztRQUVELGtFQUFrRTtRQUNsRSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xFLEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3pDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNMLENBQUM7UUFFRCwrREFBK0Q7UUFDL0QsSUFBSSxLQUFLLENBQUMsb0JBQW9CLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0RSxLQUFLLE1BQU0sU0FBUyxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyQyxDQUFDO1FBQ0wsQ0FBQztRQUVELHlCQUF5QjtRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFbkMsYUFBYTtRQUNiLGtCQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELGtCQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRWxELElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3BELGtCQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGVBQWUsQ0FBQyxPQUF1QjtRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxhQUFhLENBQUMsT0FBdUI7UUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0IsQ0FBQyxNQUEwQjtRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVcsQ0FBQyxTQUE4QjtRQUM3QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7O0FBekdMLGtEQTBHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhZ3MgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0ICogYXMga21zIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mta21zXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIEFwcFRoZW9yeUxhbWJkYVJvbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwVGhlb3J5TGFtYmRhUm9sZVByb3BzIHtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCByb2xlIG5hbWUuIElmIG5vdCBwcm92aWRlZCwgQ2xvdWRGb3JtYXRpb24gd2lsbCBnZW5lcmF0ZSBhIHVuaXF1ZSBuYW1lLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJvbGVOYW1lPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgZGVzY3JpcHRpb24gZm9yIHRoZSBJQU0gcm9sZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEVuYWJsZSBYLVJheSB0cmFjaW5nIHBlcm1pc3Npb25zIGJ5IGF0dGFjaGluZyBBV1NYUmF5RGFlbW9uV3JpdGVBY2Nlc3MgbWFuYWdlZCBwb2xpY3kuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBlbmFibGVYUmF5PzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEtNUyBrZXkocykgZm9yIExhbWJkYSBlbnZpcm9ubWVudCB2YXJpYWJsZSBlbmNyeXB0aW9uLlxuICAgICAqIEdyYW50cyB0aGUgcm9sZSBwZXJtaXNzaW9uIHRvIGRlY3J5cHQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGVuY3J5cHRlZCB3aXRoIHRoZXNlIGtleXMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW52aXJvbm1lbnRFbmNyeXB0aW9uS2V5cz86IGttcy5JS2V5W107XG5cbiAgICAvKipcbiAgICAgKiBLTVMga2V5KHMpIGZvciBhcHBsaWNhdGlvbi1sZXZlbCBLTVMgdXNhZ2UgKGVuY3J5cHQvZGVjcnlwdCBkYXRhIGF0IHJ1bnRpbWUpLlxuICAgICAqIEdyYW50cyB0aGUgcm9sZSBmdWxsIGVuY3J5cHQvZGVjcnlwdCBwZXJtaXNzaW9ucyBvbiB0aGVzZSBrZXlzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFwcGxpY2F0aW9uS21zS2V5cz86IGttcy5JS2V5W107XG5cbiAgICAvKipcbiAgICAgKiBBZGRpdGlvbmFsIGlubGluZSBwb2xpY3kgc3RhdGVtZW50cyB0byBhdHRhY2ggdG8gdGhlIHJvbGUuXG4gICAgICogVXNlIHRoaXMgZXNjYXBlIGhhdGNoIGZvciBhbnkgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBub3QgY292ZXJlZCBieSB0aGUgY29uc3RydWN0LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFkZGl0aW9uYWxTdGF0ZW1lbnRzPzogaWFtLlBvbGljeVN0YXRlbWVudFtdO1xuXG4gICAgLyoqXG4gICAgICogVGFncyB0byBhcHBseSB0byB0aGUgSUFNIHJvbGUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgdGFncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogQSBMYW1iZGEgZXhlY3V0aW9uIHJvbGUgY29uc3RydWN0IHdpdGggYmFzZWxpbmUgcGVybWlzc2lvbnMgYW5kIG9wdGlvbmFsIGVuaGFuY2VtZW50cy5cbiAqXG4gKiBDcmVhdGVzIGFuIElBTSByb2xlIHN1aXRhYmxlIGZvciBMYW1iZGEgZXhlY3V0aW9uIHdpdGg6XG4gKiAtIEJhc2ljIExhbWJkYSBleGVjdXRpb24gcGVybWlzc2lvbnMgKENsb3VkV2F0Y2ggTG9ncylcbiAqIC0gT3B0aW9uYWwgWC1SYXkgdHJhY2luZyBwZXJtaXNzaW9uc1xuICogLSBPcHRpb25hbCBLTVMgcGVybWlzc2lvbnMgZm9yIGVudmlyb25tZW50IGVuY3J5cHRpb25cbiAqIC0gT3B0aW9uYWwgS01TIHBlcm1pc3Npb25zIGZvciBhcHBsaWNhdGlvbi1sZXZlbCBlbmNyeXB0aW9uXG4gKiAtIEVzY2FwZSBoYXRjaCBmb3IgYWRkaXRpb25hbCBpbmxpbmUgcG9saWN5IHN0YXRlbWVudHNcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgcm9sZSA9IG5ldyBBcHBUaGVvcnlMYW1iZGFSb2xlKHRoaXMsICdMYW1iZGFSb2xlJywge1xuICogICByb2xlTmFtZTogJ215LWxhbWJkYS1yb2xlJyxcbiAqICAgZW5hYmxlWFJheTogdHJ1ZSxcbiAqICAgZW52aXJvbm1lbnRFbmNyeXB0aW9uS2V5czogW2VudktleV0sXG4gKiAgIGFwcGxpY2F0aW9uS21zS2V5czogW2RhdGFLZXldLFxuICogICBhZGRpdGlvbmFsU3RhdGVtZW50czogW1xuICogICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAqICAgICAgIGFjdGlvbnM6IFsnczM6R2V0T2JqZWN0J10sXG4gKiAgICAgICByZXNvdXJjZXM6IFsnYXJuOmF3czpzMzo6Om15LWJ1Y2tldC8qJ10sXG4gKiAgICAgfSksXG4gKiAgIF0sXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGNsYXNzIEFwcFRoZW9yeUxhbWJkYVJvbGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAgIC8qKlxuICAgICAqIFRoZSB1bmRlcmx5aW5nIElBTSBSb2xlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSByb2xlOiBpYW0uUm9sZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBBUk4gb2YgdGhlIElBTSBSb2xlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSByb2xlQXJuOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgSUFNIFJvbGUuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHJvbGVOYW1lOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXBwVGhlb3J5TGFtYmRhUm9sZVByb3BzID0ge30pIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgICAgICBjb25zdCBlbmFibGVYUmF5ID0gcHJvcHMuZW5hYmxlWFJheSA/PyBmYWxzZTtcblxuICAgICAgICAvLyBDcmVhdGUgdGhlIGJhc2UgTGFtYmRhIGV4ZWN1dGlvbiByb2xlXG4gICAgICAgIHRoaXMucm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCBcIlJvbGVcIiwge1xuICAgICAgICAgICAgcm9sZU5hbWU6IHByb3BzLnJvbGVOYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uID8/IFwiTGFtYmRhIGV4ZWN1dGlvbiByb2xlIGNyZWF0ZWQgYnkgQXBwVGhlb3J5XCIsXG4gICAgICAgICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbChcImxhbWJkYS5hbWF6b25hd3MuY29tXCIpLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBBdHRhY2ggYmFzZWxpbmUgTGFtYmRhIGV4ZWN1dGlvbiBtYW5hZ2VkIHBvbGljeSAoQ2xvdWRXYXRjaCBMb2dzIHBlcm1pc3Npb25zKVxuICAgICAgICB0aGlzLnJvbGUuYWRkTWFuYWdlZFBvbGljeShpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoXCJzZXJ2aWNlLXJvbGUvQVdTTGFtYmRhQmFzaWNFeGVjdXRpb25Sb2xlXCIpKTtcblxuICAgICAgICAvLyBPcHRpb25hbDogWC1SYXkgdHJhY2luZyBwZXJtaXNzaW9uc1xuICAgICAgICBpZiAoZW5hYmxlWFJheSkge1xuICAgICAgICAgICAgdGhpcy5yb2xlLmFkZE1hbmFnZWRQb2xpY3koaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFwiQVdTWFJheURhZW1vbldyaXRlQWNjZXNzXCIpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9wdGlvbmFsOiBLTVMgcGVybWlzc2lvbnMgZm9yIGVudmlyb25tZW50IHZhcmlhYmxlIGVuY3J5cHRpb25cbiAgICAgICAgaWYgKHByb3BzLmVudmlyb25tZW50RW5jcnlwdGlvbktleXMgJiYgcHJvcHMuZW52aXJvbm1lbnRFbmNyeXB0aW9uS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBlbnZLZXlBcm5zID0gcHJvcHMuZW52aXJvbm1lbnRFbmNyeXB0aW9uS2V5cy5tYXAoKGtleSkgPT4ga2V5LmtleUFybik7XG4gICAgICAgICAgICB0aGlzLnJvbGUuYWRkVG9Qb2xpY3koXG4gICAgICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICAgICAgICBzaWQ6IFwiQWxsb3dFbnZpcm9ubWVudERlY3J5cHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uczogW1wia21zOkRlY3J5cHRcIl0sXG4gICAgICAgICAgICAgICAgICAgIHJlc291cmNlczogZW52S2V5QXJucyxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPcHRpb25hbDogS01TIHBlcm1pc3Npb25zIGZvciBhcHBsaWNhdGlvbi1sZXZlbCBlbmNyeXB0L2RlY3J5cHRcbiAgICAgICAgaWYgKHByb3BzLmFwcGxpY2F0aW9uS21zS2V5cyAmJiBwcm9wcy5hcHBsaWNhdGlvbkttc0tleXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgcHJvcHMuYXBwbGljYXRpb25LbXNLZXlzKSB7XG4gICAgICAgICAgICAgICAga2V5LmdyYW50RW5jcnlwdERlY3J5cHQodGhpcy5yb2xlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9wdGlvbmFsOiBBZGRpdGlvbmFsIGlubGluZSBwb2xpY3kgc3RhdGVtZW50cyAoZXNjYXBlIGhhdGNoKVxuICAgICAgICBpZiAocHJvcHMuYWRkaXRpb25hbFN0YXRlbWVudHMgJiYgcHJvcHMuYWRkaXRpb25hbFN0YXRlbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBzdGF0ZW1lbnQgb2YgcHJvcHMuYWRkaXRpb25hbFN0YXRlbWVudHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvbGUuYWRkVG9Qb2xpY3koc3RhdGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEV4cG9zZSByb2xlIHByb3BlcnRpZXNcbiAgICAgICAgdGhpcy5yb2xlQXJuID0gdGhpcy5yb2xlLnJvbGVBcm47XG4gICAgICAgIHRoaXMucm9sZU5hbWUgPSB0aGlzLnJvbGUucm9sZU5hbWU7XG5cbiAgICAgICAgLy8gQXBwbHkgdGFnc1xuICAgICAgICBUYWdzLm9mKHRoaXMucm9sZSkuYWRkKFwiRnJhbWV3b3JrXCIsIFwiQXBwVGhlb3J5XCIpO1xuICAgICAgICBUYWdzLm9mKHRoaXMucm9sZSkuYWRkKFwiQ29tcG9uZW50XCIsIFwiTGFtYmRhUm9sZVwiKTtcblxuICAgICAgICBpZiAocHJvcHMudGFncykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocHJvcHMudGFncykpIHtcbiAgICAgICAgICAgICAgICBUYWdzLm9mKHRoaXMucm9sZSkuYWRkKGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR3JhbnQgdGhpcyByb2xlIHRvIGEgZ3JhbnRhYmxlIHByaW5jaXBhbC5cbiAgICAgKiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHlvdSBuZWVkIHRvIGFsbG93IGFub3RoZXIgZW50aXR5IHRvIGFzc3VtZSB0aGlzIHJvbGUuXG4gICAgICovXG4gICAgcHVibGljIGdyYW50QXNzdW1lUm9sZShncmFudGVlOiBpYW0uSVByaW5jaXBhbCk6IGlhbS5HcmFudCB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvbGUuZ3JhbnRBc3N1bWVSb2xlKGdyYW50ZWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdyYW50IHBlcm1pc3Npb25zIHRvIHBhc3MgdGhpcyByb2xlLlxuICAgICAqIFRoaXMgaXMgcmVxdWlyZWQgd2hlbiBhIHNlcnZpY2UgbmVlZHMgdG8gcGFzcyB0aGlzIHJvbGUgdG8gTGFtYmRhLlxuICAgICAqL1xuICAgIHB1YmxpYyBncmFudFBhc3NSb2xlKGdyYW50ZWU6IGlhbS5JUHJpbmNpcGFsKTogaWFtLkdyYW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm9sZS5ncmFudFBhc3NSb2xlKGdyYW50ZWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBhIG1hbmFnZWQgcG9saWN5IHRvIHRoaXMgcm9sZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkTWFuYWdlZFBvbGljeShwb2xpY3k6IGlhbS5JTWFuYWdlZFBvbGljeSk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvbGUuYWRkTWFuYWdlZFBvbGljeShwb2xpY3kpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBhbiBpbmxpbmUgcG9saWN5IHN0YXRlbWVudCB0byB0aGlzIHJvbGUuXG4gICAgICovXG4gICAgcHVibGljIGFkZFRvUG9saWN5KHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yb2xlLmFkZFRvUG9saWN5KHN0YXRlbWVudCk7XG4gICAgfVxufVxuIl19 \ No newline at end of file diff --git a/cdk/lib/mcp-protected-resource.js b/cdk/lib/mcp-protected-resource.js index 6e7832b2..8bf89d37 100644 --- a/cdk/lib/mcp-protected-resource.js +++ b/cdk/lib/mcp-protected-resource.js @@ -59,7 +59,7 @@ class AppTheoryMcpProtectedResource extends constructs_1.Construct { } exports.AppTheoryMcpProtectedResource = AppTheoryMcpProtectedResource; _a = JSII_RTTI_SYMBOL_1; -AppTheoryMcpProtectedResource[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryMcpProtectedResource", version: "0.18.1" }; +AppTheoryMcpProtectedResource[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryMcpProtectedResource", version: "0.18.2" }; function metadataPathFromResourceURL(resource) { let parsed; try { diff --git a/cdk/lib/mcp-server.js b/cdk/lib/mcp-server.js index c1b4431a..fac73c59 100644 --- a/cdk/lib/mcp-server.js +++ b/cdk/lib/mcp-server.js @@ -164,7 +164,7 @@ class AppTheoryMcpServer extends constructs_1.Construct { } exports.AppTheoryMcpServer = AppTheoryMcpServer; _a = JSII_RTTI_SYMBOL_1; -AppTheoryMcpServer[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryMcpServer", version: "0.18.0-rc" }; +AppTheoryMcpServer[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryMcpServer", version: "0.18.2" }; /** * Convert a domain name to a Route53 record name relative to the zone. */ diff --git a/cdk/lib/media-cdn.js b/cdk/lib/media-cdn.js index f649a9dd..e8ef90b3 100644 --- a/cdk/lib/media-cdn.js +++ b/cdk/lib/media-cdn.js @@ -155,5 +155,5 @@ class AppTheoryMediaCdn extends constructs_1.Construct { } exports.AppTheoryMediaCdn = AppTheoryMediaCdn; _a = JSII_RTTI_SYMBOL_1; -AppTheoryMediaCdn[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryMediaCdn", version: "0.18.0-rc" }; +AppTheoryMediaCdn[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryMediaCdn", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtY2RuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWVkaWEtY2RuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQTRDO0FBQzVDLDBEQUEwRDtBQUMxRCx5REFBeUQ7QUFDekQsOERBQThEO0FBQzlELG1EQUFtRDtBQUNuRCwyREFBMkQ7QUFDM0QseUNBQXlDO0FBQ3pDLDJDQUF1QztBQXFLdkM7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFhLGlCQUFrQixTQUFRLHNCQUFTO0lBK0I1QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTZCO1FBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsSUFBSSwyQkFBYSxDQUFDLE1BQU0sQ0FBQztRQUNsRSxNQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxLQUFLLENBQUM7UUFDM0QsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUM7UUFFbEQsMENBQTBDO1FBQzFDLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQy9CLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtnQkFDN0MsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO2dCQUM1QixpQkFBaUIsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsU0FBUztnQkFDakQsVUFBVSxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVO2dCQUMxQyxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsYUFBYTtnQkFDYixpQkFBaUI7Z0JBQ2pCLGVBQWUsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFD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QUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsVUFBVSxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUM7WUFDdkQsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7Z0JBQ3JDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVU7Z0JBQzdCLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVU7Z0JBQ25DLE1BQU0sRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDMUYsQ0FBQyxDQUFDO1lBRUgsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQixLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN6QyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO29CQUM1QyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVO29CQUM3QixVQUFVLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVO29CQUNuQyxNQUFNLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUMxRixDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7O0FBMUtMLDhDQTJLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGFjbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0ICogYXMgY2xvdWRmcm9udCBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCAqIGFzIG9yaWdpbnMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250LW9yaWdpbnNcIjtcbmltcG9ydCAqIGFzIHJvdXRlNTMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQgKiBhcyB0YXJnZXRzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzXCI7XG5pbXBvcnQgKiBhcyBzMyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG4vKipcbiAqIERvbWFpbiBjb25maWd1cmF0aW9uIGZvciB0aGUgTWVkaWEgQ0ROIGRpc3RyaWJ1dGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZWRpYUNkbkRvbWFpbkNvbmZpZyB7XG4gICAgLyoqXG4gICAgICogVGhlIGRvbWFpbiBuYW1lIGZvciB0aGUgZGlzdHJpYnV0aW9uIChlLmcuLCBcIm1lZGlhLmV4YW1wbGUuY29tXCIpLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEFDTSBjZXJ0aWZpY2F0ZSBmb3IgSFRUUFMuIE11c3QgYmUgaW4gdXMtZWFzdC0xIGZvciBDbG91ZEZyb250LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNlcnRpZmljYXRlPzogYWNtLklDZXJ0aWZpY2F0ZTtcblxuICAgIC8qKlxuICAgICAqIEFSTiBvZiBhbiBleGlzdGluZyBBQ00gY2VydGlmaWNhdGUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgY2VydGlmaWNhdGVBcm4/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBSb3V0ZTUzIGhvc3RlZCB6b25lIGZvciBETlMgcmVjb3JkIGNyZWF0aW9uLlxuICAgICAqIFdoZW4gcHJvdmlkZWQsIGFuIEEgcmVjb3JkIGFsaWFzIHdpbGwgYmUgY3JlYXRlZCBmb3IgdGhlIGRvbWFpbi5cbiAgICAgKi9cbiAgICByZWFkb25seSBob3N0ZWRab25lPzogcm91dGU1My5JSG9zdGVkWm9uZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gY3JlYXRlIGFuIEFBQUEgYWxpYXMgcmVjb3JkIGluIGFkZGl0aW9uIHRvIHRoZSBBIGFsaWFzIHJlY29yZC5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNyZWF0ZUFBQUFSZWNvcmQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHByaXZhdGUgbWVkaWEgYWNjZXNzIHVzaW5nIENsb3VkRnJvbnQgc2lnbmVkIFVSTHMvY29va2llcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlTWVkaWFDb25maWcge1xuICAgIC8qKlxuICAgICAqIEFuIGV4aXN0aW5nIENsb3VkRnJvbnQga2V5IGdyb3VwIHRvIHVzZSBmb3IgdHJ1c3RlZCBrZXkgZ3JvdXBzLlxuICAgICAqIFdoZW4gcHJvdmlkZWQsIHRoZSBkaXN0cmlidXRpb24gd2lsbCByZXF1aXJlIHNpZ25lZCBVUkxzIG9yIHNpZ25lZCBjb29raWVzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGtleUdyb3VwPzogY2xvdWRmcm9udC5JS2V5R3JvdXA7XG5cbiAgICAvKipcbiAgICAgKiBQdWJsaWMga2V5IFBFTSBjb250ZW50IGZvciBjcmVhdGluZyBhIG5ldyBrZXkgZ3JvdXAuXG4gICAgICogT25seSB1c2VkIGlmIGtleUdyb3VwIGlzIG5vdCBwcm92aWRlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBwdWJsaWNLZXlQZW0/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBOYW1lIGZvciB0aGUgcHVibGljIGtleSB3aGVuIGNyZWF0ZWQgZnJvbSBQRU0uXG4gICAgICogQGRlZmF1bHQgXCJNZWRpYUNkblB1YmxpY0tleVwiXG4gICAgICovXG4gICAgcmVhZG9ubHkgcHVibGljS2V5TmFtZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIE5hbWUgZm9yIHRoZSBrZXkgZ3JvdXAgd2hlbiBjcmVhdGVkLlxuICAgICAqIEBkZWZhdWx0IFwiTWVkaWFDZG5LZXlHcm91cFwiXG4gICAgICovXG4gICAgcmVhZG9ubHkga2V5R3JvdXBOYW1lPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQ29tbWVudC9kZXNjcmlwdGlvbiBmb3IgdGhlIGtleSBncm91cC5cbiAgICAgKi9cbiAgICByZWFkb25seSBrZXlHcm91cENvbW1lbnQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwVGhlb3J5TWVkaWFDZG5Qcm9wcyB7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgZXhpc3RpbmcgUzMgYnVja2V0IHRvIHVzZSBhcyB0aGUgbWVkaWEgb3JpZ2luLlxuICAgICAqIElmIG5vdCBwcm92aWRlZCwgYSBuZXcgYnVja2V0IHdpbGwgYmUgY3JlYXRlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBidWNrZXQ/OiBzMy5JQnVja2V0O1xuXG4gICAgLyoqXG4gICAgICogTmFtZSBmb3IgdGhlIG1lZGlhIGJ1Y2tldCAob25seSB1c2VkIGlmIGJ1Y2tldCBpcyBub3QgcHJvdmlkZWQpLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGJ1Y2tldE5hbWU/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBEb21haW4gY29uZmlndXJhdGlvbiBmb3IgY3VzdG9tIGRvbWFpbiwgY2VydGlmaWNhdGUsIGFuZCBSb3V0ZTUzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRvbWFpbj86IE1lZGlhQ2RuRG9tYWluQ29uZmlnO1xuXG4gICAgLyoqXG4gICAgICogUmVzcG9uc2UgaGVhZGVycyBwb2xpY3kgdG8gYXBwbHkgdG8gdGhlIGRpc3RyaWJ1dGlvbi5cbiAgICAgKi9cbiAgICByZWFkb25seSByZXNwb25zZUhlYWRlcnNQb2xpY3k/OiBjbG91ZGZyb250LklSZXNwb25zZUhlYWRlcnNQb2xpY3k7XG5cbiAgICAvKipcbiAgICAgKiBQcml2YXRlIG1lZGlhIGNvbmZpZ3VyYXRpb24gZm9yIHNpZ25lZCBVUkxzL2Nvb2tpZXMuXG4gICAgICogV2hlbiBjb25maWd1cmVkLCB0aGUgZGlzdHJpYnV0aW9uIHdpbGwgcmVxdWlyZSBhdXRoZW50aWNhdGlvbi5cbiAgICAgKi9cbiAgICByZWFkb25seSBwcml2YXRlTWVkaWE/OiBQcml2YXRlTWVkaWFDb25maWc7XG5cbiAgICAvKipcbiAgICAgKiBEZWZhdWx0IHJvb3Qgb2JqZWN0IGZvciB0aGUgZGlzdHJpYnV0aW9uLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRlZmF1bHRSb290T2JqZWN0Pzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRW5hYmxlIENsb3VkRnJvbnQgYWNjZXNzIGxvZ2dpbmcuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVuYWJsZUxvZ2dpbmc/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgUzMgYnVja2V0IGZvciBDbG91ZEZyb250IGFjY2VzcyBsb2dzLlxuICAgICAqIElmIG5vdCBwcm92aWRlZCBhbmQgZW5hYmxlTG9nZ2luZyBpcyB0cnVlLCBhIG5ldyBidWNrZXQgd2lsbCBiZSBjcmVhdGVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGxvZ3NCdWNrZXQ/OiBzMy5JQnVja2V0O1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZhbCBwb2xpY3kgZm9yIGNyZWF0ZWQgcmVzb3VyY2VzLlxuICAgICAqIEBkZWZhdWx0IFJlbW92YWxQb2xpY3kuUkVUQUlOXG4gICAgICovXG4gICAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGF1dG8tZGVsZXRlIG9iamVjdHMgaW4gY3JlYXRlZCBidWNrZXRzIG9uIHN0YWNrIGRlbGV0aW9uLlxuICAgICAqIE9ubHkgYXBwbGllcyB3aGVuIHJlbW92YWxQb2xpY3kgaXMgREVTVFJPWS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGF1dG9EZWxldGVPYmplY3RzPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsIHdlYiBBQ0wgSUQgZm9yIEFXUyBXQUYgaW50ZWdyYXRpb24uXG4gICAgICovXG4gICAgcmVhZG9ubHkgd2ViQWNsSWQ/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBQcmljZSBjbGFzcyBmb3IgdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uLlxuICAgICAqIEBkZWZhdWx0IFByaWNlQ2xhc3MuUFJJQ0VfQ0xBU1NfQUxMXG4gICAgICovXG4gICAgcmVhZG9ubHkgcHJpY2VDbGFzcz86IGNsb3VkZnJvbnQuUHJpY2VDbGFzcztcblxuICAgIC8qKlxuICAgICAqIEFuIG9wdGlvbmFsIG5hbWUvY29tbWVudCBmb3IgdGhlIGRpc3RyaWJ1dGlvbi5cbiAgICAgKi9cbiAgICByZWFkb25seSBjb21tZW50Pzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQ2FjaGUgcG9saWN5IGZvciB0aGUgZGVmYXVsdCBiZWhhdmlvci5cbiAgICAgKiBAZGVmYXVsdCBDYWNoZVBvbGljeS5DQUNISU5HX09QVElNSVpFRFxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNhY2hlUG9saWN5PzogY2xvdWRmcm9udC5JQ2FjaGVQb2xpY3k7XG5cbiAgICAvKipcbiAgICAgKiBPcmlnaW4gcmVxdWVzdCBwb2xpY3kgZm9yIHRoZSBkZWZhdWx0IGJlaGF2aW9yLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG9yaWdpblJlcXVlc3RQb2xpY3k/OiBjbG91ZGZyb250LklPcmlnaW5SZXF1ZXN0UG9saWN5O1xuXG4gICAgLyoqXG4gICAgICogRXJyb3IgcmVzcG9uc2VzIGZvciB0aGUgZGlzdHJpYnV0aW9uIChlLmcuLCBjdXN0b20gNDA0IGhhbmRsaW5nKS5cbiAgICAgKi9cbiAgICByZWFkb25seSBlcnJvclJlc3BvbnNlcz86IGNsb3VkZnJvbnQuRXJyb3JSZXNwb25zZVtdO1xuXG4gICAgLyoqXG4gICAgICogQWxsb3dlZCBIVFRQIG1ldGhvZHMgZm9yIHRoZSBkaXN0cmlidXRpb24uXG4gICAgICogQGRlZmF1bHQgQWxsb3dlZE1ldGhvZHMuQUxMT1dfR0VUX0hFQURfT1BUSU9OU1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGFsbG93ZWRNZXRob2RzPzogY2xvdWRmcm9udC5BbGxvd2VkTWV0aG9kcztcbn1cblxuLyoqXG4gKiBBIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIG9wdGltaXplZCBmb3Igc2VydmluZyBtZWRpYSBhc3NldHMgZnJvbSBTMy5cbiAqXG4gKiBUaGlzIGNvbnN0cnVjdCBjcmVhdGVzIG9yIHdyYXBzIGFuIFMzIGJ1Y2tldCB3aXRoIGEgQ2xvdWRGcm9udCBkaXN0cmlidXRpb25cbiAqIGNvbmZpZ3VyZWQgZm9yIG1lZGlhIGRlbGl2ZXJ5LiBJdCBzdXBwb3J0czpcbiAqIC0gQ3VzdG9tIGRvbWFpbiB3aXRoIGNlcnRpZmljYXRlIGFuZCBSb3V0ZTUzIGludGVncmF0aW9uXG4gKiAtIFByaXZhdGUgbWVkaWEgYWNjZXNzIHZpYSBzaWduZWQgVVJMcy9jb29raWVzICh0cnVzdGVkIGtleSBncm91cHMpXG4gKiAtIEN1c3RvbWl6YWJsZSBjYWNoaW5nIGFuZCByZXNwb25zZSBoZWFkZXJzXG4gKiAtIEFjY2VzcyBsb2dnaW5nXG4gKlxuICogVXNlIGNhc2VzOlxuICogLSBQdWJsaWMgbWVkaWEgQ0ROIChpbWFnZXMsIHZpZGVvcywgZG9jdW1lbnRzKVxuICogLSBQcml2YXRlL2F1dGhlbnRpY2F0ZWQgbWVkaWEgYWNjZXNzXG4gKiAtIFN0YWdlLXNwZWNpZmljIG1lZGlhIHN1YmRvbWFpbnMgKGUuZy4sIG1lZGlhLnN0YWdlLmV4YW1wbGUuY29tKVxuICovXG5leHBvcnQgY2xhc3MgQXBwVGhlb3J5TWVkaWFDZG4gZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAgIC8qKlxuICAgICAqIFRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzdHJpYnV0aW9uOiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBTMyBidWNrZXQgZm9yIG1lZGlhIGFzc2V0cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYnVja2V0OiBzMy5JQnVja2V0O1xuXG4gICAgLyoqXG4gICAgICogVGhlIENsb3VkRnJvbnQgYWNjZXNzIGxvZ3MgYnVja2V0IChpZiBsb2dnaW5nIGlzIGVuYWJsZWQpLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBsb2dzQnVja2V0PzogczMuSUJ1Y2tldDtcblxuICAgIC8qKlxuICAgICAqIFRoZSBjZXJ0aWZpY2F0ZSB1c2VkIGZvciB0aGUgZGlzdHJpYnV0aW9uIChpZiBjdXN0b20gZG9tYWluIGlzIGNvbmZpZ3VyZWQpLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBjZXJ0aWZpY2F0ZT86IGFjbS5JQ2VydGlmaWNhdGU7XG5cbiAgICAvKipcbiAgICAgKiBUaGUga2V5IGdyb3VwIGZvciBwcml2YXRlIG1lZGlhIGFjY2VzcyAoaWYgY29uZmlndXJlZCkuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGtleUdyb3VwPzogY2xvdWRmcm9udC5JS2V5R3JvdXA7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgcHVibGljIGtleSBjcmVhdGVkIGZvciBwcml2YXRlIG1lZGlhIChpZiBjcmVhdGVkIGZyb20gUEVNKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgcHVibGljS2V5PzogY2xvdWRmcm9udC5QdWJsaWNLZXk7XG5cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXBwVGhlb3J5TWVkaWFDZG5Qcm9wcykge1xuICAgICAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgICAgIGNvbnN0IHJlbW92YWxQb2xpY3kgPSBwcm9wcy5yZW1vdmFsUG9saWN5ID8/IFJlbW92YWxQb2xpY3kuUkVUQUlOO1xuICAgICAgICBjb25zdCBhdXRvRGVsZXRlT2JqZWN0cyA9IHByb3BzLmF1dG9EZWxldGVPYmplY3RzID8/IGZhbHNlO1xuICAgICAgICBjb25zdCBlbmFibGVMb2dnaW5nID0gcHJvcHMuZW5hYmxlTG9nZ2luZyA/PyB0cnVlO1xuXG4gICAgICAgIC8vIENyZWF0ZSBvciB1c2UgdGhlIHByb3ZpZGVkIG1lZGlhIGJ1Y2tldFxuICAgICAgICBpZiAocHJvcHMuYnVja2V0KSB7XG4gICAgICAgICAgICB0aGlzLmJ1Y2tldCA9IHByb3BzLmJ1Y2tldDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYnVja2V0ID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCBcIk1lZGlhQnVja2V0XCIsIHtcbiAgICAgICAgICAgICAgICBidWNrZXROYW1lOiBwcm9wcy5idWNrZXROYW1lLFxuICAgICAgICAgICAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBzMy5CbG9ja1B1YmxpY0FjY2Vzcy5CTE9DS19BTEwsXG4gICAgICAgICAgICAgICAgZW5jcnlwdGlvbjogczMuQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgICAgICAgICAgIGVuZm9yY2VTU0w6IHRydWUsXG4gICAgICAgICAgICAgICAgcmVtb3ZhbFBvbGljeSxcbiAgICAgICAgICAgICAgICBhdXRvRGVsZXRlT2JqZWN0cyxcbiAgICAgICAgICAgICAgICBvYmplY3RPd25lcnNoaXA6IHMzLk9iamVjdE93bmVyc2hpcC5CVUNLRVRfT1dORVJfRU5GT1JDRUQsXG4gICAgICAgICAgICAgICAgdmVyc2lvbmVkOiBmYWxzZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ3JlYXRlIGxvZ3MgYnVja2V0IGlmIGxvZ2dpbmcgaXMgZW5hYmxlZFxuICAgICAgICBpZiAoZW5hYmxlTG9nZ2luZykge1xuICAgICAgICAgICAgdGhpcy5sb2dzQnVja2V0ID1cbiAgICAgICAgICAgICAgICBwcm9wcy5sb2dzQnVja2V0ID8/XG4gICAgICAgICAgICAgICAgbmV3IHMzLkJ1Y2tldCh0aGlzLCBcIkNsb3VkRnJvbnRMb2dzQnVja2V0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IHMzLkJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgICAgICAgICAgICAgICAgZW5jcnlwdGlvbjogczMuQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgICAgICAgICAgICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICByZW1vdmFsUG9saWN5LFxuICAgICAgICAgICAgICAgICAgICBhdXRvRGVsZXRlT2JqZWN0cyxcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0T3duZXJzaGlwOiBzMy5PYmplY3RPd25lcnNoaXAuT0JKRUNUX1dSSVRFUixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhhbmRsZSBwcml2YXRlIG1lZGlhIGNvbmZpZ3VyYXRpb25cbiAgICAgICAgaWYgKHByb3BzLnByaXZhdGVNZWRpYSkge1xuICAgICAgICAgICAgaWYgKHByb3BzLnByaXZhdGVNZWRpYS5rZXlHcm91cCkge1xuICAgICAgICAgICAgICAgIHRoaXMua2V5R3JvdXAgPSBwcm9wcy5wcml2YXRlTWVkaWEua2V5R3JvdXA7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BzLnByaXZhdGVNZWRpYS5wdWJsaWNLZXlQZW0pIHtcbiAgICAgICAgICAgICAgICAvLyBDcmVhdGUgYSBwdWJsaWMga2V5IGZyb20gdGhlIFBFTVxuICAgICAgICAgICAgICAgIHRoaXMucHVibGljS2V5ID0gbmV3IGNsb3VkZnJvbnQuUHVibGljS2V5KHRoaXMsIFwiUHVibGljS2V5XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgZW5jb2RlZEtleTogcHJvcHMucHJpdmF0ZU1lZGlhLnB1YmxpY0tleVBlbSxcbiAgICAgICAgICAgICAgICAgICAgcHVibGljS2V5TmFtZTogcHJvcHMucHJpdmF0ZU1lZGlhLnB1YmxpY0tleU5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnQ6IFwiUHVibGljIGtleSBmb3IgTWVkaWEgQ0ROIHNpZ25lZCBVUkxzXCIsXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAvLyBDcmVhdGUgYSBrZXkgZ3JvdXAgd2l0aCB0aGUgcHVibGljIGtleVxuICAgICAgICAgICAgICAgIHRoaXMua2V5R3JvdXAgPSBuZXcgY2xvdWRmcm9udC5LZXlHcm91cCh0aGlzLCBcIktleUdyb3VwXCIsIHtcbiAgICAgICAgICAgICAgICAgICAga2V5R3JvdXBOYW1lOiBwcm9wcy5wcml2YXRlTWVkaWEua2V5R3JvdXBOYW1lLFxuICAgICAgICAgICAgICAgICAgICBpdGVtczogW3RoaXMucHVibGljS2V5XSxcbiAgICAgICAgICAgICAgICAgICAgY29tbWVudDogcHJvcHMucHJpdmF0ZU1lZGlhLmtleUdyb3VwQ29tbWVudCA/PyBcIktleSBncm91cCBmb3IgTWVkaWEgQ0ROIHByaXZhdGUgYWNjZXNzXCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBIYW5kbGUgZG9tYWluIGNvbmZpZ3VyYXRpb25cbiAgICAgICAgbGV0IGRpc3RyaWJ1dGlvbkRvbWFpbk5hbWVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IGRpc3RyaWJ1dGlvbkNlcnRpZmljYXRlOiBhY20uSUNlcnRpZmljYXRlIHwgdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChwcm9wcy5kb21haW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGRvbWFpbk5hbWUgPSBTdHJpbmcocHJvcHMuZG9tYWluLmRvbWFpbk5hbWUpLnRyaW0oKTtcbiAgICAgICAgICAgIGlmIChkb21haW5OYW1lKSB7XG4gICAgICAgICAgICAgICAgZGlzdHJpYnV0aW9uRG9tYWluTmFtZXMgPSBbZG9tYWluTmFtZV07XG5cbiAgICAgICAgICAgICAgICBpZiAocHJvcHMuZG9tYWluLmNlcnRpZmljYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGlvbkNlcnRpZmljYXRlID0gcHJvcHMuZG9tYWluLmNlcnRpZmljYXRlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcHMuZG9tYWluLmNlcnRpZmljYXRlQXJuKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGlvbkNlcnRpZmljYXRlID0gYWNtLkNlcnRpZmljYXRlLmZyb21DZXJ0aWZpY2F0ZUFybihcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkNlcnRpZmljYXRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5kb21haW4uY2VydGlmaWNhdGVBcm4sXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wcy5kb21haW4uaG9zdGVkWm9uZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBDcmVhdGUgYSBETlMtdmFsaWRhdGVkIGNlcnRpZmljYXRlXG4gICAgICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGlvbkNlcnRpZmljYXRlID0gbmV3IGFjbS5EbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZSh0aGlzLCBcIkNlcnRpZmljYXRlXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbk5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3N0ZWRab25lOiBwcm9wcy5kb21haW4uaG9zdGVkWm9uZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbjogXCJ1cy1lYXN0LTFcIixcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJBcHBUaGVvcnlNZWRpYUNkbiByZXF1aXJlcyBkb21haW4uY2VydGlmaWNhdGUsIGRvbWFpbi5jZXJ0aWZpY2F0ZUFybiwgb3IgZG9tYWluLmhvc3RlZFpvbmUgd2hlbiBkb21haW4uZG9tYWluTmFtZSBpcyBzZXRcIixcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNlcnRpZmljYXRlID0gZGlzdHJpYnV0aW9uQ2VydGlmaWNhdGU7XG5cbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBTMyBvcmlnaW4gd2l0aCBPcmlnaW4gQWNjZXNzIENvbnRyb2xcbiAgICAgICAgY29uc3QgbWVkaWFCdWNrZXRPcmlnaW4gPSBvcmlnaW5zLlMzQnVja2V0T3JpZ2luLndpdGhPcmlnaW5BY2Nlc3NDb250cm9sKHRoaXMuYnVja2V0KTtcblxuICAgICAgICAvLyBCdWlsZCBkZWZhdWx0IGJlaGF2aW9yIG9wdGlvbnNcbiAgICAgICAgY29uc3QgZGVmYXVsdEJlaGF2aW9yT3B0aW9uczogY2xvdWRmcm9udC5CZWhhdmlvck9wdGlvbnMgPSB7XG4gICAgICAgICAgICBvcmlnaW46IG1lZGlhQnVja2V0T3JpZ2luLFxuICAgICAgICAgICAgdmlld2VyUHJvdG9jb2xQb2xpY3k6IGNsb3VkZnJvbnQuVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICAgICAgICBhbGxvd2VkTWV0aG9kczogcHJvcHMuYWxsb3dlZE1ldGhvZHMgPz8gY2xvdWRmcm9udC5BbGxvd2VkTWV0aG9kcy5BTExPV19HRVRfSEVBRF9PUFRJT05TLFxuICAgICAgICAgICAgY2FjaGVQb2xpY3k6IHByb3BzLmNhY2hlUG9saWN5ID8/IGNsb3VkZnJvbnQuQ2FjaGVQb2xpY3kuQ0FDSElOR19PUFRJTUlaRUQsXG4gICAgICAgICAgICBjb21wcmVzczogdHJ1ZSxcbiAgICAgICAgICAgIC4uLihwcm9wcy5vcmlnaW5SZXF1ZXN0UG9saWN5ID8geyBvcmlnaW5SZXF1ZXN0UG9saWN5OiBwcm9wcy5vcmlnaW5SZXF1ZXN0UG9saWN5IH0gOiB7fSksXG4gICAgICAgICAgICAuLi4ocHJvcHMucmVzcG9uc2VIZWFkZXJzUG9saWN5ID8geyByZXNwb25zZUhlYWRlcnNQb2xpY3k6IHByb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeSB9IDoge30pLFxuICAgICAgICAgICAgLi4uKHRoaXMua2V5R3JvdXAgPyB7IHRydXN0ZWRLZXlHcm91cHM6IFt0aGlzLmtleUdyb3VwXSB9IDoge30pLFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgZGlzdHJpYnV0aW9uXG4gICAgICAgIHRoaXMuZGlzdHJpYnV0aW9uID0gbmV3IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uKHRoaXMsIFwiRGlzdHJpYnV0aW9uXCIsIHtcbiAgICAgICAgICAgIC4uLihlbmFibGVMb2dnaW5nICYmIHRoaXMubG9nc0J1Y2tldFxuICAgICAgICAgICAgICAgID8geyBlbmFibGVMb2dnaW5nOiB0cnVlLCBsb2dCdWNrZXQ6IHRoaXMubG9nc0J1Y2tldCwgbG9nRmlsZVByZWZpeDogXCJjbG91ZGZyb250L1wiIH1cbiAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgIC4uLihkaXN0cmlidXRpb25Eb21haW5OYW1lcyAmJiBkaXN0cmlidXRpb25DZXJ0aWZpY2F0ZVxuICAgICAgICAgICAgICAgID8geyBkb21haW5OYW1lczogZGlzdHJpYnV0aW9uRG9tYWluTmFtZXMsIGNlcnRpZmljYXRlOiBkaXN0cmlidXRpb25DZXJ0aWZpY2F0ZSB9XG4gICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICBkZWZhdWx0QmVoYXZpb3I6IGRlZmF1bHRCZWhhdmlvck9wdGlvbnMsXG4gICAgICAgICAgICAuLi4ocHJvcHMuZGVmYXVsdFJvb3RPYmplY3QgPyB7IGRlZmF1bHRSb290T2JqZWN0OiBwcm9wcy5kZWZhdWx0Um9vdE9iamVjdCB9IDoge30pLFxuICAgICAgICAgICAgLi4uKHByb3BzLndlYkFjbElkID8geyB3ZWJBY2xJZDogcHJvcHMud2ViQWNsSWQgfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLihwcm9wcy5wcmljZUNsYXNzID8geyBwcmljZUNsYXNzOiBwcm9wcy5wcmljZUNsYXNzIH0gOiB7fSksXG4gICAgICAgICAgICAuLi4ocHJvcHMuY29tbWVudCA/IHsgY29tbWVudDogcHJvcHMuY29tbWVudCB9IDoge30pLFxuICAgICAgICAgICAgLi4uKHByb3BzLmVycm9yUmVzcG9uc2VzID8geyBlcnJvclJlc3BvbnNlczogcHJvcHMuZXJyb3JSZXNwb25zZXMgfSA6IHt9KSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQ3JlYXRlIFJvdXRlNTMgQSByZWNvcmQgaWYgaG9zdGVkIHpvbmUgaXMgcHJvdmlkZWRcbiAgICAgICAgaWYgKHByb3BzLmRvbWFpbj8uZG9tYWluTmFtZSAmJiBwcm9wcy5kb21haW4/Lmhvc3RlZFpvbmUpIHtcbiAgICAgICAgICAgIG5ldyByb3V0ZTUzLkFSZWNvcmQodGhpcywgXCJBbGlhc1JlY29yZFwiLCB7XG4gICAgICAgICAgICAgICAgem9uZTogcHJvcHMuZG9tYWluLmhvc3RlZFpvbmUsXG4gICAgICAgICAgICAgICAgcmVjb3JkTmFtZTogcHJvcHMuZG9tYWluLmRvbWFpbk5hbWUsXG4gICAgICAgICAgICAgICAgdGFyZ2V0OiByb3V0ZTUzLlJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IHRhcmdldHMuQ2xvdWRGcm9udFRhcmdldCh0aGlzLmRpc3RyaWJ1dGlvbikpLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChwcm9wcy5kb21haW4uY3JlYXRlQUFBQVJlY29yZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIG5ldyByb3V0ZTUzLkFhYWFSZWNvcmQodGhpcywgXCJBbGlhc1JlY29yZEFBQUFcIiwge1xuICAgICAgICAgICAgICAgICAgICB6b25lOiBwcm9wcy5kb21haW4uaG9zdGVkWm9uZSxcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkTmFtZTogcHJvcHMuZG9tYWluLmRvbWFpbk5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogcm91dGU1My5SZWNvcmRUYXJnZXQuZnJvbUFsaWFzKG5ldyB0YXJnZXRzLkNsb3VkRnJvbnRUYXJnZXQodGhpcy5kaXN0cmlidXRpb24pKSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/cdk/lib/path-routed-frontend.js b/cdk/lib/path-routed-frontend.js index b5dd33d5..c8a08a41 100644 --- a/cdk/lib/path-routed-frontend.js +++ b/cdk/lib/path-routed-frontend.js @@ -295,5 +295,5 @@ class AppTheoryPathRoutedFrontend extends constructs_1.Construct { } exports.AppTheoryPathRoutedFrontend = AppTheoryPathRoutedFrontend; _a = JSII_RTTI_SYMBOL_1; -AppTheoryPathRoutedFrontend[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryPathRoutedFrontend", version: "0.18.0-rc" }; +AppTheoryPathRoutedFrontend[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryPathRoutedFrontend", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC1yb3V0ZWQtZnJvbnRlbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwYXRoLXJvdXRlZC1mcm9udGVuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE0QztBQUM1QywwREFBMEQ7QUFDMUQseURBQXlEO0FBQ3pELDhEQUE4RDtBQUM5RCxtREFBbUQ7QUFDbkQsMkRBQTJEO0FBQzNELHlDQUF5QztBQUN6QywyQ0FBdUM7QUFFdkMsSUFBWSx1QkFVWDtBQVZELFdBQVksdUJBQXVCO0lBQy9COztPQUVHO0lBQ0gsc0NBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsd0NBQWEsQ0FBQTtBQUNqQixDQUFDLEVBVlcsdUJBQXVCLHVDQUF2Qix1QkFBdUIsUUFVbEM7QUErTUQ7OztHQUdHO0FBQ0gsU0FBUyw4QkFBOEIsQ0FDbkMsVUFBNkI7SUFFN0IsTUFBTSxPQUFPLEdBQUcsVUFBVTtTQUNyQixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNULE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN6RCxNQUFNLE1BQU0sR0FBRyxHQUFHLFdBQVcsR0FBRyxDQUFDO1FBQ2pDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxXQUFXLElBQUksdUJBQXVCLENBQUMsR0FBRyxDQUFDO1FBQ25FLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFDLHVCQUF1QixLQUFLLElBQUksQ0FBQztRQUNyRSxNQUFNLFNBQVMsR0FBRyxHQUFHLFdBQVcsYUFBYSxDQUFDO1FBQzlDLE9BQU87WUFDSCxXQUFXO1lBQ1gsTUFBTTtZQUNOLFdBQVc7WUFDWCx1QkFBdUI7WUFDdkIsU0FBUztTQUNaLENBQUM7SUFDTixDQUFDLENBQUM7UUFDRixxRUFBcUU7U0FDcEUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxD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WUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQzthQUM1RixJQUFJLEVBQUU7YUFDTixPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMseUVBQXlFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdkcsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLGVBQWUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNqRixNQUFNLFVBQVUsR0FBRyxRQUFRLElBQUksUUFBUSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMzRixPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQzdFLENBQUM7O0FBblBMLGtFQW9QQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGFjbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0ICogYXMgY2xvdWRmcm9udCBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCAqIGFzIG9yaWdpbnMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250LW9yaWdpbnNcIjtcbmltcG9ydCAqIGFzIHJvdXRlNTMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQgKiBhcyB0YXJnZXRzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzXCI7XG5pbXBvcnQgKiBhcyBzMyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgZW51bSBBcHBUaGVvcnlTcGFSZXdyaXRlTW9kZSB7XG4gICAgLyoqXG4gICAgICogUmV3cml0ZSBleHRlbnNpb25sZXNzIHJvdXRlcyB0byBgaW5kZXguaHRtbGAgd2l0aGluIHRoZSBTUEEgcHJlZml4LlxuICAgICAqL1xuICAgIFNQQSA9IFwic3BhXCIsXG5cbiAgICAvKipcbiAgICAgKiBEbyBub3QgcmV3cml0ZSByb3V0ZXMuIFVzZWZ1bCBmb3IgbXVsdGktcGFnZS9zdGF0aWMgc2l0ZXMuXG4gICAgICovXG4gICAgTk9ORSA9IFwibm9uZVwiLFxufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGFuIFNQQSBvcmlnaW4gcm91dGVkIGJ5IHBhdGggcHJlZml4LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYU9yaWdpbkNvbmZpZyB7XG4gICAgLyoqXG4gICAgICogUzMgYnVja2V0IGNvbnRhaW5pbmcgdGhlIFNQQSBhc3NldHMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgYnVja2V0OiBzMy5JQnVja2V0O1xuXG4gICAgLyoqXG4gICAgICogUGF0aCBwYXR0ZXJuIHRvIHJvdXRlIHRvIHRoaXMgU1BBIChlLmcuLCBcIi9sLypcIiwgXCIvYXV0aC8qXCIpLlxuICAgICAqIE11c3QgaW5jbHVkZSB0aGUgdHJhaWxpbmcgd2lsZGNhcmQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcGF0aFBhdHRlcm46IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsIGNhY2hlIHBvbGljeSBvdmVycmlkZS4gRGVmYXVsdHMgdG8gQ0FDSElOR19PUFRJTUlaRUQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgY2FjaGVQb2xpY3k/OiBjbG91ZGZyb250LklDYWNoZVBvbGljeTtcblxuICAgIC8qKlxuICAgICAqIFJlc3BvbnNlIGhlYWRlcnMgcG9saWN5IGZvciB0aGlzIFNQQSBiZWhhdmlvci5cbiAgICAgKiBPdmVycmlkZXMgYHNwYVJlc3BvbnNlSGVhZGVyc1BvbGljeWAgYW5kIGByZXNwb25zZUhlYWRlcnNQb2xpY3lgIChsZWdhY3kpLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJlc3BvbnNlSGVhZGVyc1BvbGljeT86IGNsb3VkZnJvbnQuSVJlc3BvbnNlSGVhZGVyc1BvbGljeTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gc3RyaXAgdGhlIFNQQSBwcmVmaXggYmVmb3JlIGZvcndhcmRpbmcgdG8gdGhlIFMzIG9yaWdpbi5cbiAgICAgKlxuICAgICAqIEV4YW1wbGU6XG4gICAgICogLSBSZXF1ZXN0OiBgL2F1dGgvYXNzZXRzL2FwcC5qc2BcbiAgICAgKiAtIFdpdGggYHN0cmlwUHJlZml4QmVmb3JlT3JpZ2luPXRydWVgLCBTMyByZWNlaXZlczogYC9hc3NldHMvYXBwLmpzYFxuICAgICAqXG4gICAgICogVGhpcyBhbGxvd3MgbGF5aW5nIG91dCB0aGUgU1BBIGJ1Y2tldCBhdCByb290IHdoaWxlIHN0aWxsIHNlcnZpbmcgaXQgdW5kZXIgYSBwcmVmaXguXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN0cmlwUHJlZml4QmVmb3JlT3JpZ2luPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFNQQSByZXdyaXRlIG1vZGUuXG4gICAgICpcbiAgICAgKiAtIGBTUEFgOiByZXdyaXRlIGV4dGVuc2lvbmxlc3Mgcm91dGVzIHRvIHRoZSBTUEEncyBgaW5kZXguaHRtbGBcbiAgICAgKiAtIGBOT05FYDogZG8gbm90IHJld3JpdGUgcm91dGVzICh1c2VmdWwgZm9yIG11bHRpLXBhZ2Ugc2l0ZXMpXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBBcHBUaGVvcnlTcGFSZXdyaXRlTW9kZS5TUEFcbiAgICAgKi9cbiAgICByZWFkb25seSByZXdyaXRlTW9kZT86IEFwcFRoZW9yeVNwYVJld3JpdGVNb2RlO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHBhdGggcGF0dGVybnMgdGhhdCBzaG91bGQgYnlwYXNzIFNQQSByb3V0aW5nIGFuZCBnbyBkaXJlY3RseSB0byB0aGUgQVBJIG9yaWdpbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlCeXBhc3NDb25maWcge1xuICAgIC8qKlxuICAgICAqIFBhdGggcGF0dGVybiB0aGF0IHNob3VsZCByb3V0ZSB0byB0aGUgQVBJIG9yaWdpbiBpbnN0ZWFkIG9mIFNQQSAoZS5nLiwgXCIvYXV0aC93YWxsZXQvKlwiKS5cbiAgICAgKi9cbiAgICByZWFkb25seSBwYXRoUGF0dGVybjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgY2FjaGUgcG9saWN5IG92ZXJyaWRlLiBEZWZhdWx0cyB0byBDQUNISU5HX0RJU0FCTEVELlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNhY2hlUG9saWN5PzogY2xvdWRmcm9udC5JQ2FjaGVQb2xpY3k7XG5cbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBvcmlnaW4gcmVxdWVzdCBwb2xpY3kgb3ZlcnJpZGUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgb3JpZ2luUmVxdWVzdFBvbGljeT86IGNsb3VkZnJvbnQuSU9yaWdpblJlcXVlc3RQb2xpY3k7XG5cbiAgICAvKipcbiAgICAgKiBSZXNwb25zZSBoZWFkZXJzIHBvbGljeSBmb3IgdGhpcyBBUEkgYnlwYXNzIGJlaGF2aW9yLlxuICAgICAqIE92ZXJyaWRlcyBgYXBpQnlwYXNzUmVzcG9uc2VIZWFkZXJzUG9saWN5YCBhbmQgYHJlc3BvbnNlSGVhZGVyc1BvbGljeWAgKGxlZ2FjeSkuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcmVzcG9uc2VIZWFkZXJzUG9saWN5PzogY2xvdWRmcm9udC5JUmVzcG9uc2VIZWFkZXJzUG9saWN5O1xufVxuXG4vKipcbiAqIERvbWFpbiBjb25maWd1cmF0aW9uIGZvciB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGF0aFJvdXRlZEZyb250ZW5kRG9tYWluQ29uZmlnIHtcbiAgICAvKipcbiAgICAgKiBUaGUgZG9tYWluIG5hbWUgZm9yIHRoZSBkaXN0cmlidXRpb24gKGUuZy4sIFwiYXBwLmV4YW1wbGUuY29tXCIpLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEFDTSBjZXJ0aWZpY2F0ZSBmb3IgSFRUUFMuIE11c3QgYmUgaW4gdXMtZWFzdC0xIGZvciBDbG91ZEZyb250LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNlcnRpZmljYXRlPzogYWNtLklDZXJ0aWZpY2F0ZTtcblxuICAgIC8qKlxuICAgICAqIEFSTiBvZiBhbiBleGlzdGluZyBBQ00gY2VydGlmaWNhdGUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgY2VydGlmaWNhdGVBcm4/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBSb3V0ZTUzIGhvc3RlZCB6b25lIGZvciBETlMgcmVjb3JkIGNyZWF0aW9uLlxuICAgICAqIFdoZW4gcHJvdmlkZWQsIGFuIEEgcmVjb3JkIGFsaWFzIHdpbGwgYmUgY3JlYXRlZCBmb3IgdGhlIGRvbWFpbi5cbiAgICAgKi9cbiAgICByZWFkb25seSBob3N0ZWRab25lPzogcm91dGU1My5JSG9zdGVkWm9uZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gY3JlYXRlIGFuIEFBQUEgYWxpYXMgcmVjb3JkIGluIGFkZGl0aW9uIHRvIHRoZSBBIGFsaWFzIHJlY29yZC5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNyZWF0ZUFBQUFSZWNvcmQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcFRoZW9yeVBhdGhSb3V0ZWRGcm9udGVuZFByb3BzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgcHJpbWFyeSBBUEkgb3JpZ2luIFVSTCAoZS5nLiwgdGhlIEFQSSBHYXRld2F5IGludm9rZSBVUkwgb3IgTGFtYmRhIGZ1bmN0aW9uIFVSTCkuXG4gICAgICogVGhpcyBpcyB1c2VkIGZvciB0aGUgZGVmYXVsdCBiZWhhdmlvciBhbmQgYW55IEFQSSBieXBhc3MgcGF0aHMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgYXBpT3JpZ2luVXJsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBTUEEgb3JpZ2lucyB3aXRoIHRoZWlyIHBhdGggcGF0dGVybnMuXG4gICAgICogRWFjaCBTUEEgd2lsbCBiZSBzZXJ2ZWQgdmlhIENsb3VkRnJvbnQgd2l0aCBTUEEgcmV3cml0ZSBzdXBwb3J0LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNwYU9yaWdpbnM/OiBTcGFPcmlnaW5Db25maWdbXTtcblxuICAgIC8qKlxuICAgICAqIEFQSSBieXBhc3MgY29uZmlndXJhdGlvbnMgZm9yIHBhdGhzIHRoYXQgc2hvdWxkIGdvIGRpcmVjdGx5IHRvIHRoZSBBUEkgb3JpZ2luXG4gICAgICogZXZlbiB0aG91Z2ggdGhleSBtaWdodCBtYXRjaCBhbiBTUEEgcGF0aCBwcmVmaXguXG4gICAgICogVGhlc2UgYXJlIGV2YWx1YXRlZCBiZWZvcmUgU1BBIHBhdGhzIGR1ZSB0byBDbG91ZEZyb250IGJlaGF2aW9yIHByZWNlZGVuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgYXBpQnlwYXNzUGF0aHM/OiBBcGlCeXBhc3NDb25maWdbXTtcblxuICAgIC8qKlxuICAgICAqIERvbWFpbiBjb25maWd1cmF0aW9uIGZvciBjdXN0b20gZG9tYWluLCBjZXJ0aWZpY2F0ZSwgYW5kIFJvdXRlNTMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZG9tYWluPzogUGF0aFJvdXRlZEZyb250ZW5kRG9tYWluQ29uZmlnO1xuXG4gICAgLyoqXG4gICAgICogUmVzcG9uc2UgaGVhZGVycyBwb2xpY3kgdG8gYXBwbHkgdG8gYWxsIGJlaGF2aW9ycyAobGVnYWN5KS5cbiAgICAgKlxuICAgICAqIFByZWZlciB1c2luZyBgYXBpUmVzcG9uc2VIZWFkZXJzUG9saWN5YCwgYHNwYVJlc3BvbnNlSGVhZGVyc1BvbGljeWAsIGFuZFxuICAgICAqIGBhcGlCeXBhc3NSZXNwb25zZUhlYWRlcnNQb2xpY3lgIGZvciBiZWhhdmlvci1zY29wZWQgY29udHJvbC5cbiAgICAgKi9cbiAgICByZWFkb25seSByZXNwb25zZUhlYWRlcnNQb2xpY3k/OiBjbG91ZGZyb250LklSZXNwb25zZUhlYWRlcnNQb2xpY3k7XG5cbiAgICAvKipcbiAgICAgKiBSZXNwb25zZSBoZWFkZXJzIHBvbGljeSBmb3IgdGhlIEFQSSBvcmlnaW4gZGVmYXVsdCBiZWhhdmlvci5cbiAgICAgKi9cbiAgICByZWFkb25seSBhcGlSZXNwb25zZUhlYWRlcnNQb2xpY3k/OiBjbG91ZGZyb250LklSZXNwb25zZUhlYWRlcnNQb2xpY3k7XG5cbiAgICAvKipcbiAgICAgKiBEZWZhdWx0IHJlc3BvbnNlIGhlYWRlcnMgcG9saWN5IGZvciBTUEEgYmVoYXZpb3JzLlxuICAgICAqIENhbiBiZSBvdmVycmlkZGVuIHBlciBTUEEgdmlhIGBTcGFPcmlnaW5Db25maWcucmVzcG9uc2VIZWFkZXJzUG9saWN5YC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzcGFSZXNwb25zZUhlYWRlcnNQb2xpY3k/OiBjbG91ZGZyb250LklSZXNwb25zZUhlYWRlcnNQb2xpY3k7XG5cbiAgICAvKipcbiAgICAgKiBEZWZhdWx0IHJlc3BvbnNlIGhlYWRlcnMgcG9saWN5IGZvciBBUEkgYnlwYXNzIGJlaGF2aW9ycy5cbiAgICAgKiBDYW4gYmUgb3ZlcnJpZGRlbiBwZXIgYnlwYXNzIHZpYSBgQXBpQnlwYXNzQ29uZmlnLnJlc3BvbnNlSGVhZGVyc1BvbGljeWAuXG4gICAgICovXG4gICAgcmVhZG9ubHkgYXBpQnlwYXNzUmVzcG9uc2VIZWFkZXJzUG9saWN5PzogY2xvdWRmcm9udC5JUmVzcG9uc2VIZWFkZXJzUG9saWN5O1xuXG4gICAgLyoqXG4gICAgICogT3JpZ2luIHJlcXVlc3QgcG9saWN5IGZvciB0aGUgQVBJIG9yaWdpbiAoZGVmYXVsdCBiZWhhdmlvcikuXG4gICAgICovXG4gICAgcmVhZG9ubHkgYXBpT3JpZ2luUmVxdWVzdFBvbGljeT86IGNsb3VkZnJvbnQuSU9yaWdpblJlcXVlc3RQb2xpY3k7XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGUgQ2xvdWRGcm9udCBhY2Nlc3MgbG9nZ2luZy5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW5hYmxlTG9nZ2luZz86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBTMyBidWNrZXQgZm9yIENsb3VkRnJvbnQgYWNjZXNzIGxvZ3MuXG4gICAgICogSWYgbm90IHByb3ZpZGVkIGFuZCBlbmFibGVMb2dnaW5nIGlzIHRydWUsIGEgbmV3IGJ1Y2tldCB3aWxsIGJlIGNyZWF0ZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbG9nc0J1Y2tldD86IHMzLklCdWNrZXQ7XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmFsIHBvbGljeSBmb3IgY3JlYXRlZCByZXNvdXJjZXMuXG4gICAgICogQGRlZmF1bHQgUmVtb3ZhbFBvbGljeS5SRVRBSU5cbiAgICAgKi9cbiAgICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gYXV0by1kZWxldGUgb2JqZWN0cyBpbiBjcmVhdGVkIGJ1Y2tldHMgb24gc3RhY2sgZGVsZXRpb24uXG4gICAgICogT25seSBhcHBsaWVzIHdoZW4gcmVtb3ZhbFBvbGljeSBpcyBERVNUUk9ZLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgYXV0b0RlbGV0ZU9iamVjdHM/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgd2ViIEFDTCBJRCBmb3IgQVdTIFdBRiBpbnRlZ3JhdGlvbi5cbiAgICAgKi9cbiAgICByZWFkb25seSB3ZWJBY2xJZD86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFByaWNlIGNsYXNzIGZvciB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24uXG4gICAgICogQGRlZmF1bHQgUHJpY2VDbGFzcy5QUklDRV9DTEFTU19BTExcbiAgICAgKi9cbiAgICByZWFkb25seSBwcmljZUNsYXNzPzogY2xvdWRmcm9udC5QcmljZUNsYXNzO1xuXG4gICAgLyoqXG4gICAgICogQW4gb3B0aW9uYWwgbmFtZS9jb21tZW50IGZvciB0aGUgZGlzdHJpYnV0aW9uLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNvbW1lbnQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ2xvdWRGcm9udCBGdW5jdGlvbiBjb2RlIGZvciBTUEEgdmlld2VyLXJlcXVlc3QgcmV3cml0ZS5cbiAqIFJld3JpdGVzIHJlcXVlc3RzIHdpdGhvdXQgZmlsZSBleHRlbnNpb25zIHRvIHRoZSBpbmRleC5odG1sIHdpdGhpbiB0aGUgcHJlZml4LlxuICovXG5mdW5jdGlvbiBnZW5lcmF0ZVNwYVJld3JpdGVGdW5jdGlvbkNvZGUoXG4gICAgc3BhT3JpZ2luczogU3BhT3JpZ2luQ29uZmlnW10sXG4pOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbmZpZ3MgPSBzcGFPcmlnaW5zXG4gICAgICAgIC5tYXAoKHNwYSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2xlYW5QcmVmaXggPSBzcGEucGF0aFBhdHRlcm4ucmVwbGFjZSgvXFwvXFwqJC8sIFwiXCIpO1xuICAgICAgICAgICAgY29uc3QgcHJlZml4ID0gYCR7Y2xlYW5QcmVmaXh9L2A7XG4gICAgICAgICAgICBjb25zdCByZXdyaXRlTW9kZSA9IHNwYS5yZXdyaXRlTW9kZSA/PyBBcHBUaGVvcnlTcGFSZXdyaXRlTW9kZS5TUEE7XG4gICAgICAgICAgICBjb25zdCBzdHJpcFByZWZpeEJlZm9yZU9yaWdpbiA9IHNwYS5zdHJpcFByZWZpeEJlZm9yZU9yaWdpbiA9PT0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4UGF0aCA9IGAke2NsZWFuUHJlZml4fS9pbmRleC5odG1sYDtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgY2xlYW5QcmVmaXgsXG4gICAgICAgICAgICAgICAgcHJlZml4LFxuICAgICAgICAgICAgICAgIHJld3JpdGVNb2RlLFxuICAgICAgICAgICAgICAgIHN0cmlwUHJlZml4QmVmb3JlT3JpZ2luLFxuICAgICAgICAgICAgICAgIGluZGV4UGF0aCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgICAgIC8vIEVuc3VyZSBtb3JlIHNwZWNpZmljIHByZWZpeGVzIG1hdGNoIGZpcnN0IHRvIGF2b2lkIG92ZXJsYXAgaXNzdWVzLlxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYi5jbGVhblByZWZpeC5sZW5ndGggLSBhLmNsZWFuUHJlZml4Lmxlbmd0aCk7XG5cbiAgICBjb25zdCBwcmVmaXhNYXRjaGVzID0gY29uZmlnc1xuICAgICAgICAubWFwKChjZmcpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBgeyBjbGVhblByZWZpeDogJyR7Y2ZnLmNsZWFuUHJlZml4fScsIHByZWZpeDogJyR7Y2ZnLnByZWZpeH0nLCByZXdyaXRlTW9kZTogJyR7Y2ZnLnJld3JpdGVNb2RlfScsIHN0cmlwUHJlZml4QmVmb3JlT3JpZ2luOiAke2NmZy5zdHJpcFByZWZpeEJlZm9yZU9yaWdpbn0sIGluZGV4UGF0aDogJyR7Y2ZnLmluZGV4UGF0aH0nIH1gO1xuICAgICAgICB9KVxuICAgICAgICAuam9pbihcIixcXG4gICAgICBcIik7XG5cbiAgICByZXR1cm4gYFxuXHRmdW5jdGlvbiBoYW5kbGVyKGV2ZW50KSB7XG5cdCAgdmFyIHJlcXVlc3QgPSBldmVudC5yZXF1ZXN0O1xuXHQgIHZhciB1cmkgPSByZXF1ZXN0LnVyaTtcblxuXHQgIC8vIFNQQSBwcmVmaXggY29uZmlndXJhdGlvbnNcblx0ICB2YXIgc3BhUHJlZml4ZXMgPSBbXG5cdCAgICAgICR7cHJlZml4TWF0Y2hlc31cblx0ICBdO1xuXG5cdCAgLy8gQ2hlY2sgaWYgdGhpcyBpcyBhbiBTUEEgcGF0aFxuXHQgIGZvciAodmFyIGkgPSAwOyBpIDwgc3BhUHJlZml4ZXMubGVuZ3RoOyBpKyspIHtcblx0ICAgIHZhciBzcGEgPSBzcGFQcmVmaXhlc1tpXTtcblx0ICAgIGlmICh1cmkuc3RhcnRzV2l0aChzcGEucHJlZml4KSkge1xuXHQgICAgICB2YXIgdXJpV2l0aG91dFByZWZpeCA9IHVyaS5zdWJzdHJpbmcoc3BhLnByZWZpeC5sZW5ndGgpO1xuXG5cdCAgICAgIGlmIChzcGEucmV3cml0ZU1vZGUgPT09ICdzcGEnKSB7XG5cdCAgICAgICAgLy8gSWYgdGhlIFVSSSBkb2Vzbid0IGhhdmUgYW4gZXh0ZW5zaW9uIChubyBmaWxlKSwgcmV3cml0ZSB0byBpbmRleC5odG1sXG5cdCAgICAgICAgLy8gQ2hlY2sgaWYgaXQgaGFzIGEgZmlsZSBleHRlbnNpb24gKGNvbnRhaW5zIGEgZG90IGluIHRoZSBsYXN0IHBhdGggc2VnbWVudClcblx0ICAgICAgICB2YXIgbGFzdFNsYXNoID0gdXJpV2l0aG91dFByZWZpeC5sYXN0SW5kZXhPZignLycpO1xuXHQgICAgICAgIHZhciBsYXN0U2VnbWVudCA9IGxhc3RTbGFzaCA+PSAwID8gdXJpV2l0aG91dFByZWZpeC5zdWJzdHJpbmcobGFzdFNsYXNoICsgMSkgOiB1cmlXaXRob3V0UHJlZml4O1xuXHQgICAgICAgIFxuXHQgICAgICAgIC8vIElmIG5vIGV4dGVuc2lvbiBpbiB0aGUgbGFzdCBzZWdtZW50LCBzZXJ2ZSBpbmRleC5odG1sXG5cdCAgICAgICAgaWYgKGxhc3RTZWdtZW50LmluZGV4T2YoJy4nKSA9PT0gLTEpIHtcblx0ICAgICAgICAgIHJlcXVlc3QudXJpID0gc3BhLmluZGV4UGF0aDtcblx0ICAgICAgICB9XG5cdCAgICAgIH1cblxuXHQgICAgICAvLyBPcHRpb25hbGx5IHN0cmlwIHRoZSBwcmVmaXggYmVmb3JlIGZvcndhcmRpbmcgdG8gdGhlIG9yaWdpbi5cblx0ICAgICAgaWYgKHNwYS5zdHJpcFByZWZpeEJlZm9yZU9yaWdpbikge1xuXHQgICAgICAgIHZhciBjbGVhblByZWZpeFdpdGhTbGFzaCA9IHNwYS5jbGVhblByZWZpeCArICcvJztcblx0ICAgICAgICBpZiAocmVxdWVzdC51cmkuc3RhcnRzV2l0aChjbGVhblByZWZpeFdpdGhTbGFzaCkpIHtcblx0ICAgICAgICAgIHJlcXVlc3QudXJpID0gcmVxdWVzdC51cmkuc3Vic3RyaW5nKHNwYS5jbGVhblByZWZpeC5sZW5ndGgpO1xuXHQgICAgICAgIH1cblx0ICAgICAgfVxuXHQgICAgICBicmVhaztcblx0ICAgIH1cblx0ICB9XG5cblx0ICByZXR1cm4gcmVxdWVzdDtcblx0fVxuXHRgLnRyaW0oKTtcbn1cblxuLyoqXG4gKiBBIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIGZvciBwYXRoLXJvdXRlZCBtdWx0aS1TUEEgKyBBUEkgZGVwbG95bWVudHMuXG4gKlxuICogVGhpcyBjb25zdHJ1Y3QgY3JlYXRlcyBhIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIHRoYXQgcm91dGVzIHJlcXVlc3RzIHRvOlxuICogLSBTUEEgb3JpZ2lucyAoUzMgYnVja2V0cykgYmFzZWQgb24gcGF0aCBwcmVmaXhlcyAoZS5nLiwgL2wvKiwgL2F1dGgvKilcbiAqIC0gQVBJIG9yaWdpbiAoZGVmYXVsdCBiZWhhdmlvcikgZm9yIGFsbCBvdGhlciBwYXRoc1xuICogLSBBUEkgYnlwYXNzIHBhdGhzIGZvciBzcGVjaWZpYyBwYXRocyB0aGF0IHNob3VsZCBza2lwIFNQQSByb3V0aW5nXG4gKlxuICogQSBDbG91ZEZyb250IEZ1bmN0aW9uIGhhbmRsZXMgdmlld2VyLXJlcXVlc3QgcmV3cml0aW5nIGZvciBTUEEgcm91dGluZyxcbiAqIGVuc3VyaW5nIHRoYXQgcGF0aHMgd2l0aG91dCBmaWxlIGV4dGVuc2lvbnMgYXJlIHJld3JpdHRlbiB0byBpbmRleC5odG1sLlxuICovXG5leHBvcnQgY2xhc3MgQXBwVGhlb3J5UGF0aFJvdXRlZEZyb250ZW5kIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgICAvKipcbiAgICAgKiBUaGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24uXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbjogY2xvdWRmcm9udC5EaXN0cmlidXRpb247XG5cbiAgICAvKipcbiAgICAgKiBUaGUgQ2xvdWRGcm9udCBGdW5jdGlvbiBmb3IgU1BBIHJld3JpdGUgKGlmIFNQQSBvcmlnaW5zIGFyZSBjb25maWd1cmVkKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc3BhUmV3cml0ZUZ1bmN0aW9uPzogY2xvdWRmcm9udC5GdW5jdGlvbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBDbG91ZEZyb250IGFjY2VzcyBsb2dzIGJ1Y2tldCAoaWYgbG9nZ2luZyBpcyBlbmFibGVkKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgbG9nc0J1Y2tldD86IHMzLklCdWNrZXQ7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY2VydGlmaWNhdGUgdXNlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiAoaWYgY3VzdG9tIGRvbWFpbiBpcyBjb25maWd1cmVkKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgY2VydGlmaWNhdGU/OiBhY20uSUNlcnRpZmljYXRlO1xuXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFwcFRoZW9yeVBhdGhSb3V0ZWRGcm9udGVuZFByb3BzKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAgICAgaWYgKCFwcm9wcy5hcGlPcmlnaW5VcmwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkFwcFRoZW9yeVBhdGhSb3V0ZWRGcm9udGVuZCByZXF1aXJlcyBwcm9wcy5hcGlPcmlnaW5VcmxcIik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZW1vdmFsUG9saWN5ID0gcHJvcHMucmVtb3ZhbFBvbGljeSA/PyBSZW1vdmFsUG9saWN5LlJFVEFJTjtcbiAgICAgICAgY29uc3QgYXV0b0RlbGV0ZU9iamVjdHMgPSBwcm9wcy5hdXRvRGVsZXRlT2JqZWN0cyA/PyBmYWxzZTtcbiAgICAgICAgY29uc3QgZW5hYmxlTG9nZ2luZyA9IHByb3BzLmVuYWJsZUxvZ2dpbmcgPz8gdHJ1ZTtcblxuICAgICAgICAvLyBDcmVhdGUgbG9ncyBidWNrZXQgaWYgbG9nZ2luZyBpcyBlbmFibGVkXG4gICAgICAgIGlmIChlbmFibGVMb2dnaW5nKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ3NCdWNrZXQgPVxuICAgICAgICAgICAgICAgIHByb3BzLmxvZ3NCdWNrZXQgPz9cbiAgICAgICAgICAgICAgICBuZXcgczMuQnVja2V0KHRoaXMsIFwiQ2xvdWRGcm9udExvZ3NCdWNrZXRcIiwge1xuICAgICAgICAgICAgICAgICAgICBibG9ja1B1YmxpY0FjY2VzczogczMuQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgICAgICAgICAgICAgICAgICBlbmNyeXB0aW9uOiBzMy5CdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICAgICAgICAgICAgICAgIGVuZm9yY2VTU0w6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgICAgICAgICAgICAgICAgIGF1dG9EZWxldGVPYmplY3RzLFxuICAgICAgICAgICAgICAgICAgICBvYmplY3RPd25lcnNoaXA6IHMzLk9iamVjdE93bmVyc2hpcC5PQkpFQ1RfV1JJVEVSLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUGFyc2UgdGhlIEFQSSBvcmlnaW4gVVJMIHRvIGNyZWF0ZSBhbiBIdHRwT3JpZ2luIChkb21haW4gKyBvcHRpb25hbCBvcmlnaW5QYXRoKVxuICAgICAgICBjb25zdCBhcGlPcmlnaW5QYXJzZWQgPSB0aGlzLnBhcnNlT3JpZ2luRnJvbVVybChwcm9wcy5hcGlPcmlnaW5VcmwpO1xuICAgICAgICBjb25zdCBhcGlPcmlnaW4gPSBuZXcgb3JpZ2lucy5IdHRwT3JpZ2luKGFwaU9yaWdpblBhcnNlZC5kb21haW5OYW1lLCB7XG4gICAgICAgICAgICBwcm90b2NvbFBvbGljeTogY2xvdWRmcm9udC5PcmlnaW5Qcm90b2NvbFBvbGljeS5IVFRQU19PTkxZLFxuICAgICAgICAgICAgLi4uKGFwaU9yaWdpblBhcnNlZC5vcmlnaW5QYXRoID8geyBvcmlnaW5QYXRoOiBhcGlPcmlnaW5QYXJzZWQub3JpZ2luUGF0aCB9IDoge30pLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBIYW5kbGUgZG9tYWluIGNvbmZpZ3VyYXRpb25cbiAgICAgICAgbGV0IGRpc3RyaWJ1dGlvbkRvbWFpbk5hbWVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IGRpc3RyaWJ1dGlvbkNlcnRpZmljYXRlOiBhY20uSUNlcnRpZmljYXRlIHwgdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChwcm9wcy5kb21haW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGRvbWFpbk5hbWUgPSBTdHJpbmcocHJvcHMuZG9tYWluLmRvbWFpbk5hbWUpLnRyaW0oKTtcbiAgICAgICAgICAgIGlmIChkb21haW5OYW1lKSB7XG4gICAgICAgICAgICAgICAgZGlzdHJpYnV0aW9uRG9tYWluTmFtZXMgPSBbZG9tYWluTmFtZV07XG5cbiAgICAgICAgICAgICAgICBpZiAocHJvcHMuZG9tYWluLmNlcnRpZmljYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGlvbkNlcnRpZmljYXRlID0gcHJvcHMuZG9tYWluLmNlcnRpZmljYXRlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcHMuZG9tYWluLmNlcnRpZmljYXRlQXJuKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGlvbkNlcnRpZmljYXRlID0gYWNtLkNlcnRpZmljYXRlLmZyb21DZXJ0aWZpY2F0ZUFybihcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkNlcnRpZmljYXRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5kb21haW4uY2VydGlmaWNhdGVBcm4sXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wcy5kb21haW4uaG9zdGVkWm9uZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBDcmVhdGUgYSBETlMtdmFsaWRhdGVkIGNlcnRpZmljYXRlXG4gICAgICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGlvbkNlcnRpZmljYXRlID0gbmV3IGFjbS5EbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZSh0aGlzLCBcIkNlcnRpZmljYXRlXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbk5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3N0ZWRab25lOiBwcm9wcy5kb21haW4uaG9zdGVkWm9uZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbjogXCJ1cy1lYXN0LTFcIixcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJBcHBUaGVvcnlQYXRoUm91dGVkRnJvbnRlbmQgcmVxdWlyZXMgZG9tYWluLmNlcnRpZmljYXRlLCBkb21haW4uY2VydGlmaWNhdGVBcm4sIG9yIGRvbWFpbi5ob3N0ZWRab25lIHdoZW4gZG9tYWluLmRvbWFpbk5hbWUgaXMgc2V0XCIsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jZXJ0aWZpY2F0ZSA9IGRpc3RyaWJ1dGlvbkNlcnRpZmljYXRlO1xuXG4gICAgICAgIC8vIENyZWF0ZSBDbG91ZEZyb250IEZ1bmN0aW9uIGZvciBTUEEgcmV3cml0ZSBpZiBTUEEgb3JpZ2lucyBhcmUgY29uZmlndXJlZFxuICAgICAgICBjb25zdCBzcGFPcmlnaW5zID0gcHJvcHMuc3BhT3JpZ2lucyA/PyBbXTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgc3BhT3JpZ2lucy5zb21lKChzcGEpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXdyaXRlTW9kZSA9IHNwYS5yZXdyaXRlTW9kZSA/PyBBcHBUaGVvcnlTcGFSZXdyaXRlTW9kZS5TUEE7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJld3JpdGVNb2RlICE9PSBBcHBUaGVvcnlTcGFSZXdyaXRlTW9kZS5OT05FIHx8IHNwYS5zdHJpcFByZWZpeEJlZm9yZU9yaWdpbiA9PT0gdHJ1ZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgZnVuY3Rpb25Db2RlID0gZ2VuZXJhdGVTcGFSZXdyaXRlRnVuY3Rpb25Db2RlKHNwYU9yaWdpbnMpO1xuXG4gICAgICAgICAgICB0aGlzLnNwYVJld3JpdGVGdW5jdGlvbiA9IG5ldyBjbG91ZGZyb250LkZ1bmN0aW9uKHRoaXMsIFwiU3BhUmV3cml0ZUZ1bmN0aW9uXCIsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBjbG91ZGZyb250LkZ1bmN0aW9uQ29kZS5mcm9tSW5saW5lKGZ1bmN0aW9uQ29kZSksXG4gICAgICAgICAgICAgICAgcnVudGltZTogY2xvdWRmcm9udC5GdW5jdGlvblJ1bnRpbWUuSlNfMl8wLFxuICAgICAgICAgICAgICAgIGNvbW1lbnQ6IFwiU1BBIHZpZXdlci1yZXF1ZXN0IHJld3JpdGUgZm9yIHBhdGgtcm91dGVkIGZyb250ZW5kXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJ1aWxkIGFkZGl0aW9uYWwgYmVoYXZpb3JzXG4gICAgICAgIGNvbnN0IGFkZGl0aW9uYWxCZWhhdmlvcnM6IFJlY29yZDxzdHJpbmcsIGNsb3VkZnJvbnQuQmVoYXZpb3JPcHRpb25zPiA9IHt9O1xuXG4gICAgICAgIC8vIEFkZCBBUEkgYnlwYXNzIHBhdGhzIGZpcnN0IChoaWdoZXIgcHJlY2VkZW5jZSBpbiBDbG91ZEZyb250KVxuICAgICAgICBmb3IgKGNvbnN0IGJ5cGFzc0NvbmZpZyBvZiBwcm9wcy5hcGlCeXBhc3NQYXRocyA/PyBbXSkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2VIZWFkZXJzUG9saWN5ID1cbiAgICAgICAgICAgICAgICBieXBhc3NDb25maWcucmVzcG9uc2VIZWFkZXJzUG9saWN5ID8/XG4gICAgICAgICAgICAgICAgcHJvcHMuYXBpQnlwYXNzUmVzcG9uc2VIZWFkZXJzUG9saWN5ID8/XG4gICAgICAgICAgICAgICAgcHJvcHMucmVzcG9uc2VIZWFkZXJzUG9saWN5O1xuXG4gICAgICAgICAgICBhZGRpdGlvbmFsQmVoYXZpb3JzW2J5cGFzc0NvbmZpZy5wYXRoUGF0dGVybl0gPSB7XG4gICAgICAgICAgICAgICAgb3JpZ2luOiBhcGlPcmlnaW4sXG4gICAgICAgICAgICAgICAgdmlld2VyUHJvdG9jb2xQb2xpY3k6IGNsb3VkZnJvbnQuVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICAgICAgICAgICAgYWxsb3dlZE1ldGhvZHM6IGNsb3VkZnJvbnQuQWxsb3dlZE1ldGhvZHMuQUxMT1dfQUxMLFxuICAgICAgICAgICAgICAgIGNhY2hlUG9saWN5OiBieXBhc3NDb25maWcuY2FjaGVQb2xpY3kgPz8gY2xvdWRmcm9udC5DYWNoZVBvbGljeS5DQUNISU5HX0RJU0FCTEVELFxuICAgICAgICAgICAgICAgIG9yaWdpblJlcXVlc3RQb2xpY3k6XG4gICAgICAgICAgICAgICAgICAgIGJ5cGFzc0NvbmZpZy5vcmlnaW5SZXF1ZXN0UG9saWN5ID8/IHByb3BzLmFwaU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICAgICAgICAgICAgLi4uKHJlc3BvbnNlSGVhZGVyc1BvbGljeVxuICAgICAgICAgICAgICAgICAgICA/IHsgcmVzcG9uc2VIZWFkZXJzUG9saWN5IH1cbiAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWRkIFNQQSBvcmlnaW4gYmVoYXZpb3JzXG4gICAgICAgIGZvciAoY29uc3Qgc3BhQ29uZmlnIG9mIHNwYU9yaWdpbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlSGVhZGVyc1BvbGljeSA9XG4gICAgICAgICAgICAgICAgc3BhQ29uZmlnLnJlc3BvbnNlSGVhZGVyc1BvbGljeSA/P1xuICAgICAgICAgICAgICAgIHByb3BzLnNwYVJlc3BvbnNlSGVhZGVyc1BvbGljeSA/P1xuICAgICAgICAgICAgICAgIHByb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeTtcbiAgICAgICAgICAgIGNvbnN0IHJld3JpdGVNb2RlID0gc3BhQ29uZmlnLnJld3JpdGVNb2RlID8/IEFwcFRoZW9yeVNwYVJld3JpdGVNb2RlLlNQQTtcbiAgICAgICAgICAgIGNvbnN0IG5lZWRzRnVuY3Rpb24gPVxuICAgICAgICAgICAgICAgIHRoaXMuc3BhUmV3cml0ZUZ1bmN0aW9uICYmXG4gICAgICAgICAgICAgICAgKHJld3JpdGVNb2RlICE9PSBBcHBUaGVvcnlTcGFSZXdyaXRlTW9kZS5OT05FIHx8IHNwYUNvbmZpZy5zdHJpcFByZWZpeEJlZm9yZU9yaWdpbiA9PT0gdHJ1ZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHNwYU9yaWdpbiA9IG9yaWdpbnMuUzNCdWNrZXRPcmlnaW4ud2l0aE9yaWdpbkFjY2Vzc0NvbnRyb2woc3BhQ29uZmlnLmJ1Y2tldCk7XG5cbiAgICAgICAgICAgIGFkZGl0aW9uYWxCZWhhdmlvcnNbc3BhQ29uZmlnLnBhdGhQYXR0ZXJuXSA9IHtcbiAgICAgICAgICAgICAgICBvcmlnaW46IHNwYU9yaWdpbixcbiAgICAgICAgICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogY2xvdWRmcm9udC5WaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgICAgICAgICAgICBhbGxvd2VkTWV0aG9kczogY2xvdWRmcm9udC5BbGxvd2VkTWV0aG9kcy5BTExPV19HRVRfSEVBRF9PUFRJT05TLFxuICAgICAgICAgICAgICAgIGNhY2hlUG9saWN5OiBzcGFDb25maWcuY2FjaGVQb2xpY3kgPz8gY2xvdWRmcm9udC5DYWNoZVBvbGljeS5DQUNISU5HX09QVElNSVpFRCxcbiAgICAgICAgICAgICAgICBjb21wcmVzczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAuLi4obmVlZHNGdW5jdGlvblxuICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uQXNzb2NpYXRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbjogdGhpcy5zcGFSZXdyaXRlRnVuY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50VHlwZTogY2xvdWRmcm9udC5GdW5jdGlvbkV2ZW50VHlwZS5WSUVXRVJfUkVRVUVTVCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAuLi4ocmVzcG9uc2VIZWFkZXJzUG9saWN5XG4gICAgICAgICAgICAgICAgICAgID8geyByZXNwb25zZUhlYWRlcnNQb2xpY3kgfVxuICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDcmVhdGUgdGhlIGRpc3RyaWJ1dGlvblxuICAgICAgICBjb25zdCBkZWZhdWx0UmVzcG9uc2VIZWFkZXJzUG9saWN5ID1cbiAgICAgICAgICAgIHByb3BzLmFwaVJlc3BvbnNlSGVhZGVyc1BvbGljeSA/P1xuICAgICAgICAgICAgcHJvcHMucmVzcG9uc2VIZWFkZXJzUG9saWN5O1xuXG4gICAgICAgIHRoaXMuZGlzdHJpYnV0aW9uID0gbmV3IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uKHRoaXMsIFwiRGlzdHJpYnV0aW9uXCIsIHtcbiAgICAgICAgICAgIC4uLihlbmFibGVMb2dnaW5nICYmIHRoaXMubG9nc0J1Y2tldFxuICAgICAgICAgICAgICAgID8geyBlbmFibGVMb2dnaW5nOiB0cnVlLCBsb2dCdWNrZXQ6IHRoaXMubG9nc0J1Y2tldCwgbG9nRmlsZVByZWZpeDogXCJjbG91ZGZyb250L1wiIH1cbiAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgIC4uLihkaXN0cmlidXRpb25Eb21haW5OYW1lcyAmJiBkaXN0cmlidXRpb25DZXJ0aWZpY2F0ZVxuICAgICAgICAgICAgICAgID8geyBkb21haW5OYW1lczogZGlzdHJpYnV0aW9uRG9tYWluTmFtZXMsIGNlcnRpZmljYXRlOiBkaXN0cmlidXRpb25DZXJ0aWZpY2F0ZSB9XG4gICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICBkZWZhdWx0QmVoYXZpb3I6IHtcbiAgICAgICAgICAgICAgICBvcmlnaW46IGFwaU9yaWdpbixcbiAgICAgICAgICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogY2xvdWRmcm9udC5WaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgICAgICAgICAgICBhbGxvd2VkTWV0aG9kczogY2xvdWRmcm9udC5BbGxvd2VkTWV0aG9kcy5BTExPV19BTEwsXG4gICAgICAgICAgICAgICAgY2FjaGVQb2xpY3k6IGNsb3VkZnJvbnQuQ2FjaGVQb2xpY3kuQ0FDSElOR19ESVNBQkxFRCxcbiAgICAgICAgICAgICAgICBvcmlnaW5SZXF1ZXN0UG9saWN5OiBwcm9wcy5hcGlPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgICAgICAgICAgIC4uLihkZWZhdWx0UmVzcG9uc2VIZWFkZXJzUG9saWN5XG4gICAgICAgICAgICAgICAgICAgID8geyByZXNwb25zZUhlYWRlcnNQb2xpY3k6IGRlZmF1bHRSZXNwb25zZUhlYWRlcnNQb2xpY3kgfVxuICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhZGRpdGlvbmFsQmVoYXZpb3JzLFxuICAgICAgICAgICAgLi4uKHByb3BzLndlYkFjbElkID8geyB3ZWJBY2xJZDogcHJvcHMud2ViQWNsSWQgfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLihwcm9wcy5wcmljZUNsYXNzID8geyBwcmljZUNsYXNzOiBwcm9wcy5wcmljZUNsYXNzIH0gOiB7fSksXG4gICAgICAgICAgICAuLi4ocHJvcHMuY29tbWVudCA/IHsgY29tbWVudDogcHJvcHMuY29tbWVudCB9IDoge30pLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBDcmVhdGUgUm91dGU1MyBBIHJlY29yZCBpZiBob3N0ZWQgem9uZSBpcyBwcm92aWRlZFxuICAgICAgICBpZiAocHJvcHMuZG9tYWluPy5kb21haW5OYW1lICYmIHByb3BzLmRvbWFpbj8uaG9zdGVkWm9uZSkge1xuICAgICAgICAgICAgbmV3IHJvdXRlNTMuQVJlY29yZCh0aGlzLCBcIkFsaWFzUmVjb3JkXCIsIHtcbiAgICAgICAgICAgICAgICB6b25lOiBwcm9wcy5kb21haW4uaG9zdGVkWm9uZSxcbiAgICAgICAgICAgICAgICByZWNvcmROYW1lOiBwcm9wcy5kb21haW4uZG9tYWluTmFtZSxcbiAgICAgICAgICAgICAgICB0YXJnZXQ6IHJvdXRlNTMuUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhuZXcgdGFyZ2V0cy5DbG91ZEZyb250VGFyZ2V0KHRoaXMuZGlzdHJpYnV0aW9uKSksXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHByb3BzLmRvbWFpbi5jcmVhdGVBQUFBUmVjb3JkID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgbmV3IHJvdXRlNTMuQWFhYVJlY29yZCh0aGlzLCBcIkFsaWFzUmVjb3JkQUFBQVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHpvbmU6IHByb3BzLmRvbWFpbi5ob3N0ZWRab25lLFxuICAgICAgICAgICAgICAgICAgICByZWNvcmROYW1lOiBwcm9wcy5kb21haW4uZG9tYWluTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiByb3V0ZTUzLlJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IHRhcmdldHMuQ2xvdWRGcm9udFRhcmdldCh0aGlzLmRpc3RyaWJ1dGlvbikpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXh0cmFjdHMgdGhlIGRvbWFpbiBuYW1lIGZyb20gYSBVUkwgKGUuZy4sIFwiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vcGF0aFwiIC0+IFwiYXBpLmV4YW1wbGUuY29tXCIpLlxuICAgICAqL1xuICAgIHByaXZhdGUgcGFyc2VPcmlnaW5Gcm9tVXJsKHVybDogc3RyaW5nKTogeyBkb21haW5OYW1lOiBzdHJpbmc7IG9yaWdpblBhdGg/OiBzdHJpbmcgfSB7XG4gICAgICAgIGNvbnN0IHVybFN0ciA9IFN0cmluZyh1cmwgPz8gXCJcIikudHJpbSgpO1xuICAgICAgICBpZiAoIXVybFN0cikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXBwVGhlb3J5UGF0aFJvdXRlZEZyb250ZW5kIHJlcXVpcmVzIGEgbm9uLWVtcHR5IGFwaU9yaWdpblVybFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZ1bGwgVVJMIChyZWNvbW1lbmRlZCk6IGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3Byb2RcbiAgICAgICAgaWYgKHVybFN0ci5pbmNsdWRlcyhcIjovL1wiKSkge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gbmV3IFVSTCh1cmxTdHIpO1xuICAgICAgICAgICAgY29uc3QgZG9tYWluTmFtZSA9IFN0cmluZyhwYXJzZWQuaG9zdG5hbWUgPz8gXCJcIikudHJpbSgpO1xuICAgICAgICAgICAgaWYgKCFkb21haW5OYW1lKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBcHBUaGVvcnlQYXRoUm91dGVkRnJvbnRlbmQgY291bGQgbm90IHBhcnNlIGRvbWFpbiBmcm9tIGFwaU9yaWdpblVybDogJHt1cmxTdHJ9YCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBTdHJpbmcocGFyc2VkLnBhdGhuYW1lID8/IFwiXCIpLnRyaW0oKTtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpblBhdGggPSBwYXRoICYmIHBhdGggIT09IFwiL1wiID8gcGF0aC5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgcmV0dXJuIHsgZG9tYWluTmFtZSwgLi4uKG9yaWdpblBhdGggPyB7IG9yaWdpblBhdGggfSA6IHt9KSB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQmFyZSBkb21haW4gKG9yIGRvbWFpbiArIHBhdGgpOiBhcGkuZXhhbXBsZS5jb20gb3IgYXBpLmV4YW1wbGUuY29tL3Byb2RcbiAgICAgICAgY29uc3Qgd2l0aG91dFF1ZXJ5ID0gdXJsU3RyLnNwbGl0KFwiP1wiKVswXT8uc3BsaXQoXCIjXCIpWzBdID8/IHVybFN0cjtcbiAgICAgICAgY29uc3QgZmlyc3RTbGFzaEluZGV4ID0gd2l0aG91dFF1ZXJ5LmluZGV4T2YoXCIvXCIpO1xuICAgICAgICBjb25zdCBkb21haW5QYXJ0ID0gKGZpcnN0U2xhc2hJbmRleCA+PSAwID8gd2l0aG91dFF1ZXJ5LnNsaWNlKDAsIGZpcnN0U2xhc2hJbmRleCkgOiB3aXRob3V0UXVlcnkpXG4gICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAucmVwbGFjZSgvOlxcZCskLywgXCJcIik7XG4gICAgICAgIGlmICghZG9tYWluUGFydCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBcHBUaGVvcnlQYXRoUm91dGVkRnJvbnRlbmQgY291bGQgbm90IHBhcnNlIGRvbWFpbiBmcm9tIGFwaU9yaWdpblVybDogJHt1cmxTdHJ9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXRoUGFydCA9IGZpcnN0U2xhc2hJbmRleCA+PSAwID8gd2l0aG91dFF1ZXJ5LnNsaWNlKGZpcnN0U2xhc2hJbmRleCkgOiBcIlwiO1xuICAgICAgICBjb25zdCBvcmlnaW5QYXRoID0gcGF0aFBhcnQgJiYgcGF0aFBhcnQgIT09IFwiL1wiID8gcGF0aFBhcnQucmVwbGFjZSgvXFwvKyQvLCBcIlwiKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHsgZG9tYWluTmFtZTogZG9tYWluUGFydCwgLi4uKG9yaWdpblBhdGggPyB7IG9yaWdpblBhdGggfSA6IHt9KSB9O1xuICAgIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/cdk/lib/queue-consumer.js b/cdk/lib/queue-consumer.js index 243a2d8e..c16ad425 100644 --- a/cdk/lib/queue-consumer.js +++ b/cdk/lib/queue-consumer.js @@ -59,5 +59,5 @@ class AppTheoryQueueConsumer extends constructs_1.Construct { } exports.AppTheoryQueueConsumer = AppTheoryQueueConsumer; _a = JSII_RTTI_SYMBOL_1; -AppTheoryQueueConsumer[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryQueueConsumer", version: "0.18.0-rc" }; +AppTheoryQueueConsumer[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryQueueConsumer", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUtY29uc3VtZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJxdWV1ZS1jb25zdW1lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUdBLDJDQUF1QztBQTZEdkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSxzQkFBUztJQWdCakQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFrQztRQUN4RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFFekIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLEVBQUU7WUFDakYsY0FBYyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUNwQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxFQUFFO1lBQ2hDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUI7WUFDMUMsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLHVCQUF1QjtZQUN0RCxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWM7WUFDcEMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEtBQUssS0FBSztZQUNoQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87U0FDekIsQ0FBQyxDQUFDO1FBRUgsdUNBQXVDO1FBQ3ZDLElBQUksS0FBSyxDQUFDLG9CQUFvQixLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3ZDLEtBQUssQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksT0FBTztRQUNWLHdFQUF3RTtRQUN4RSx3REFBd0Q7UUFDeEQsT0FBTyxDQUFDLElBQUksQ0FBQyw4RkFBOEYsQ0FBQyxDQUFDO0lBQ2pILENBQUM7O0FBOUNMLHdEQStDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB0eXBlICogYXMgc3FzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3FzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIEFwcFRoZW9yeVF1ZXVlQ29uc3VtZXIgY29uc3RydWN0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcFRoZW9yeVF1ZXVlQ29uc3VtZXJQcm9wcyB7XG4gICAgLyoqXG4gICAgICogVGhlIFNRUyBxdWV1ZSB0byBjb25zdW1lIG1lc3NhZ2VzIGZyb20uXG4gICAgICovXG4gICAgcmVhZG9ubHkgcXVldWU6IHNxcy5JUXVldWU7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgd2lsbCBwcm9jZXNzIG1lc3NhZ2VzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNvbnN1bWVyOiBsYW1iZGEuSUZ1bmN0aW9uO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHJlY29yZHMgdG8gcmV0cmlldmUgcGVyIGJhdGNoLlxuICAgICAqIEBkZWZhdWx0IDEwXG4gICAgICovXG4gICAgcmVhZG9ubHkgYmF0Y2hTaXplPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG1heGltdW0gYW1vdW50IG9mIHRpbWUgdG8gd2FpdCBmb3IgYSBiYXRjaCB0byBiZSBnYXRoZXJlZC5cbiAgICAgKiBAZGVmYXVsdCAtIE5vIGJhdGNoaW5nIHdpbmRvdyAobWVzc2FnZXMgcHJvY2Vzc2VkIGltbWVkaWF0ZWx5KVxuICAgICAqL1xuICAgIHJlYWRvbmx5IG1heEJhdGNoaW5nV2luZG93PzogRHVyYXRpb247XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIHJlcG9ydCBiYXRjaCBpdGVtIGZhaWx1cmVzLlxuICAgICAqIFdoZW4gZW5hYmxlZCwgdGhlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gYSBwYXJ0aWFsIGZhaWx1cmUgcmVzcG9uc2UuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSByZXBvcnRCYXRjaEl0ZW1GYWlsdXJlcz86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbWF4aW11bSBjb25jdXJyZW5jeSBzZXR0aW5nIGxpbWl0cyB0aGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgaW5zdGFuY2VzIG9mIHRoZSBmdW5jdGlvbi5cbiAgICAgKiBWYWxpZCByYW5nZTogMi0xMDAwLlxuICAgICAqIEBkZWZhdWx0IC0gTm8gY29uY3VycmVuY3kgbGltaXRcbiAgICAgKi9cbiAgICByZWFkb25seSBtYXhDb25jdXJyZW5jeT86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGV2ZW50IHNvdXJjZSBtYXBwaW5nIGlzIGVuYWJsZWQuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVuYWJsZWQ/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBhdXRvbWF0aWNhbGx5IGdyYW50IGNvbnN1bWUgcGVybWlzc2lvbnMgdG8gdGhlIExhbWJkYSBmdW5jdGlvbi5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcmVhZG9ubHkgZ3JhbnRDb25zdW1lTWVzc2FnZXM/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgZmlsdGVycyB0byBjb250cm9sIHdoaWNoIG1lc3NhZ2VzIHRyaWdnZXIgdGhlIExhbWJkYS5cbiAgICAgKiBAZGVmYXVsdCAtIEFsbCBtZXNzYWdlcyB0cmlnZ2VyIHRoZSBMYW1iZGFcbiAgICAgKi9cbiAgICByZWFkb25seSBmaWx0ZXJzPzogbGFtYmRhLkZpbHRlckNyaXRlcmlhW107XG59XG5cbi8qKlxuICogQSBjb21wb3NhYmxlIFNRUyBjb25zdW1lciBjb25zdHJ1Y3QgdGhhdCB3aXJlcyBhIExhbWJkYSBmdW5jdGlvbiB0byBhbiBTUVMgcXVldWUuXG4gKlxuICogVGhpcyBjb25zdHJ1Y3QgY3JlYXRlcyBhbiBldmVudCBzb3VyY2UgbWFwcGluZyBiZXR3ZWVuIGFuIFNRUyBxdWV1ZSBhbmQgYSBMYW1iZGEgZnVuY3Rpb24sXG4gKiB3aXRoIGZ1bGwgY29udHJvbCBvdmVyIGJhdGNoaW5nLCBjb25jdXJyZW5jeSwgYW5kIGZhaWx1cmUgcmVwb3J0aW5nLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBCYXNpYyBjb25zdW1lciB3aXRoIGRlZmF1bHQgc2V0dGluZ3NcbiAqIG5ldyBBcHBUaGVvcnlRdWV1ZUNvbnN1bWVyKHN0YWNrLCAnQ29uc3VtZXInLCB7XG4gKiAgIHF1ZXVlOiBteVF1ZXVlLnF1ZXVlLFxuICogICBjb25zdW1lcjogbXlGdW5jdGlvbixcbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDb25zdW1lciB3aXRoIGZ1bGwgY29uZmlndXJhdGlvblxuICogbmV3IEFwcFRoZW9yeVF1ZXVlQ29uc3VtZXIoc3RhY2ssICdDb25zdW1lcicsIHtcbiAqICAgcXVldWU6IG15UXVldWUucXVldWUsXG4gKiAgIGNvbnN1bWVyOiBteUZ1bmN0aW9uLFxuICogICBiYXRjaFNpemU6IDEwMCxcbiAqICAgbWF4QmF0Y2hpbmdXaW5kb3c6IER1cmF0aW9uLnNlY29uZHMoMTApLFxuICogICByZXBvcnRCYXRjaEl0ZW1GYWlsdXJlczogdHJ1ZSxcbiAqICAgbWF4Q29uY3VycmVuY3k6IDUwLFxuICogfSk7XG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBUaGVvcnlRdWV1ZUNvbnN1bWVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgICAvKipcbiAgICAgKiBUaGUgZXZlbnQgc291cmNlIG1hcHBpbmcuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGV2ZW50U291cmNlTWFwcGluZzogbGFtYmRhLkV2ZW50U291cmNlTWFwcGluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBjb25zdW1lciBMYW1iZGEgZnVuY3Rpb24uXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbnN1bWVyOiBsYW1iZGEuSUZ1bmN0aW9uO1xuXG4gICAgLyoqXG4gICAgICogVGhlIFNRUyBxdWV1ZSBiZWluZyBjb25zdW1lZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgcXVldWU6IHNxcy5JUXVldWU7XG5cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXBwVGhlb3J5UXVldWVDb25zdW1lclByb3BzKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAgICAgdGhpcy5jb25zdW1lciA9IHByb3BzLmNvbnN1bWVyO1xuICAgICAgICB0aGlzLnF1ZXVlID0gcHJvcHMucXVldWU7XG5cbiAgICAgICAgdGhpcy5ldmVudFNvdXJjZU1hcHBpbmcgPSBwcm9wcy5jb25zdW1lci5hZGRFdmVudFNvdXJjZU1hcHBpbmcoXCJFdmVudFNvdXJjZU1hcHBpbmdcIiwge1xuICAgICAgICAgICAgZXZlbnRTb3VyY2VBcm46IHByb3BzLnF1ZXVlLnF1ZXVlQXJuLFxuICAgICAgICAgICAgYmF0Y2hTaXplOiBwcm9wcy5iYXRjaFNpemUgPz8gMTAsXG4gICAgICAgICAgICBtYXhCYXRjaGluZ1dpbmRvdzogcHJvcHMubWF4QmF0Y2hpbmdXaW5kb3csXG4gICAgICAgICAgICByZXBvcnRCYXRjaEl0ZW1GYWlsdXJlczogcHJvcHMucmVwb3J0QmF0Y2hJdGVtRmFpbHVyZXMsXG4gICAgICAgICAgICBtYXhDb25jdXJyZW5jeTogcHJvcHMubWF4Q29uY3VycmVuY3ksXG4gICAgICAgICAgICBlbmFibGVkOiBwcm9wcy5lbmFibGVkICE9PSBmYWxzZSxcbiAgICAgICAgICAgIGZpbHRlcnM6IHByb3BzLmZpbHRlcnMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEdyYW50IGNvbnN1bWUgcGVybWlzc2lvbnMgYnkgZGVmYXVsdFxuICAgICAgICBpZiAocHJvcHMuZ3JhbnRDb25zdW1lTWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBwcm9wcy5xdWV1ZS5ncmFudENvbnN1bWVNZXNzYWdlcyhwcm9wcy5jb25zdW1lcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaXNhYmxlIHRoZSBldmVudCBzb3VyY2UgbWFwcGluZy5cbiAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIGZvciBjaXJjdWl0IGJyZWFrZXIgcGF0dGVybnMuXG4gICAgICovXG4gICAgcHVibGljIGRpc2FibGUoKTogdm9pZCB7XG4gICAgICAgIC8vIE5vdGU6IERpc2FibGluZyBhdCBydW50aW1lIHJlcXVpcmVzIHVwZGF0aW5nIHRoZSBldmVudCBzb3VyY2UgbWFwcGluZ1xuICAgICAgICAvLyBUaGlzIGlzIHR5cGljYWxseSBkb25lIHRocm91Z2ggdGhlIEFXUyBTREsgb3IgY29uc29sZVxuICAgICAgICBjb25zb2xlLndhcm4oXCJkaXNhYmxlKCkgaXMgYSBkZXBsb3ltZW50LXRpbWUgb3BlcmF0aW9uLiBVc2UgJ2VuYWJsZWQ6IGZhbHNlJyBpbiBwcm9wcyBmb3IgbmV3IGRlcGxveW1lbnRzLlwiKTtcbiAgICB9XG59XG4iXX0= \ No newline at end of file diff --git a/cdk/lib/queue-processor.js b/cdk/lib/queue-processor.js index 83b705e6..dd97d463 100644 --- a/cdk/lib/queue-processor.js +++ b/cdk/lib/queue-processor.js @@ -74,5 +74,5 @@ class AppTheoryQueueProcessor extends constructs_1.Construct { } exports.AppTheoryQueueProcessor = AppTheoryQueueProcessor; _a = JSII_RTTI_SYMBOL_1; -AppTheoryQueueProcessor[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryQueueProcessor", version: "0.18.0-rc" }; +AppTheoryQueueProcessor[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryQueueProcessor", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUtcHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicXVldWUtcHJvY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EsMkNBQXVDO0FBQ3ZDLG1DQUF5QztBQUN6QyxxREFBMEQ7QUEyRjFEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JHO0FBQ0gsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQXFCcEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFtQztRQUMzRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLDREQUE0RDtRQUM1RCxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQztRQUV0RCx3Q0FBd0M7UUFDeEMsOEVBQThFO1FBQzlFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxzQkFBYyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUMvRCxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVM7WUFDekUsaUJBQWlCLEVBQUUsY0FBYztnQkFDL0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsaUJBQWlCO2dCQUNyQyxDQUFDLENBQUMsS0FBSyxDQUFDLGlCQUFpQjtZQUMzQixzQkFBc0IsRUFBRSxjQUFjO2dCQUNwQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxzQkFBc0I7Z0JBQzFDLENBQUMsQ0FBQyxLQUFLLENBQUMsc0JBQXNCO1lBQ2hDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssRUFBRSwwQ0FBMEM7WUFDL0UsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ3RDLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtTQUNuQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUM7UUFFM0QsbURBQW1EO1FBQ25ELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLHVDQUFzQixDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRTtZQUM3RSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMxQixpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1lBQzFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyx1QkFBdUI7WUFDdEQsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQ3BDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixvQkFBb0IsRUFBRSxJQUFJO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBeERILDBEQXlEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgdHlwZSAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHR5cGUgKiBhcyBzcXMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zcXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBcHBUaGVvcnlRdWV1ZSB9IGZyb20gXCIuL3F1ZXVlXCI7XG5pbXBvcnQgeyBBcHBUaGVvcnlRdWV1ZUNvbnN1bWVyIH0gZnJvbSBcIi4vcXVldWUtY29uc3VtZXJcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgQXBwVGhlb3J5UXVldWVQcm9jZXNzb3IgY29uc3RydWN0LlxuICpcbiAqIFRoaXMgY29uc3RydWN0IG1haW50YWlucyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBvcmlnaW5hbCBBUElcbiAqIHdoaWxlIGxldmVyYWdpbmcgdGhlIG5ldyBjb21wb3NhYmxlIEFwcFRoZW9yeVF1ZXVlIGFuZCBBcHBUaGVvcnlRdWV1ZUNvbnN1bWVyIGNvbnN0cnVjdHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwVGhlb3J5UXVldWVQcm9jZXNzb3JQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgd2lsbCBjb25zdW1lIG1lc3NhZ2VzIGZyb20gdGhlIHF1ZXVlLlxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3VtZXI6IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgZm9yIHRoZSB1bmRlcmx5aW5nIFNRUyBxdWV1ZS5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIHF1ZXVlTmFtZSwgdmlzaWJpbGl0eVRpbWVvdXQsIGFuZCBvdGhlciBzcGVjaWZpYyBwcm9wcyBpbnN0ZWFkXG4gICAqL1xuICByZWFkb25seSBxdWV1ZVByb3BzPzogc3FzLlF1ZXVlUHJvcHM7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBxdWV1ZS5cbiAgICogQGRlZmF1bHQgLSBDbG91ZEZvcm1hdGlvbi1nZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgcXVldWVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmlzaWJpbGl0eSB0aW1lb3V0IGZvciBtZXNzYWdlcyBpbiB0aGUgcXVldWUuXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLnNlY29uZHMoMzApXG4gICAqL1xuICByZWFkb25seSB2aXNpYmlsaXR5VGltZW91dD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIHRpbWUgZm9yIHdoaWNoIGEgUmVjZWl2ZU1lc3NhZ2UgY2FsbCB3aWxsIHdhaXQgZm9yIGEgbWVzc2FnZSB0byBhcnJpdmUgaW4gdGhlIHF1ZXVlXG4gICAqIGJlZm9yZSByZXR1cm5pbmcuIFVzZWQgZm9yIFNRUyBsb25nIHBvbGxpbmcuXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVjZWl2ZU1lc3NhZ2VXYWl0VGltZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBhIERlYWQgTGV0dGVyIFF1ZXVlIChETFEpLlxuICAgKiBAZGVmYXVsdCBmYWxzZSAoZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggb3JpZ2luYWwgYmVoYXZpb3IpXG4gICAqL1xuICByZWFkb25seSBlbmFibGVEbHE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgdGltZXMgYSBtZXNzYWdlIGNhbiBiZSByZWNlaXZlZCBiZWZvcmUgYmVpbmcgc2VudCB0byB0aGUgRExRLlxuICAgKiBPbmx5IGFwcGxpY2FibGUgd2hlbiBlbmFibGVEbHEgaXMgdHJ1ZS5cbiAgICogQGRlZmF1bHQgM1xuICAgKi9cbiAgcmVhZG9ubHkgbWF4UmVjZWl2ZUNvdW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcmVjb3JkcyB0byByZXRyaWV2ZSBwZXIgYmF0Y2guXG4gICAqIEBkZWZhdWx0IDEwXG4gICAqL1xuICByZWFkb25seSBiYXRjaFNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB0aW1lIHRvIHdhaXQgZm9yIGEgYmF0Y2ggdG8gYmUgZ2F0aGVyZWQuXG4gICAqIEBkZWZhdWx0IC0gTm8gYmF0Y2hpbmcgd2luZG93XG4gICAqL1xuICByZWFkb25seSBtYXhCYXRjaGluZ1dpbmRvdz86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJlcG9ydCBiYXRjaCBpdGVtIGZhaWx1cmVzLlxuICAgKiBXaGVuIGVuYWJsZWQsIHRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGEgcGFydGlhbCBmYWlsdXJlIHJlc3BvbnNlLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3J0QmF0Y2hJdGVtRmFpbHVyZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBjb25jdXJyZW5jeSBzZXR0aW5nIGxpbWl0cyB0aGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgaW5zdGFuY2VzIG9mIHRoZSBmdW5jdGlvbi5cbiAgICogVmFsaWQgcmFuZ2U6IDItMTAwMC5cbiAgICogQGRlZmF1bHQgLSBObyBjb25jdXJyZW5jeSBsaW1pdFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q29uY3VycmVuY3k/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGV2ZW50IHNvdXJjZSBtYXBwaW5nIGlzIGVuYWJsZWQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVtb3ZhbCBwb2xpY3kgZm9yIHRoZSBxdWV1ZShzKS5cbiAgICogQGRlZmF1bHQgUmVtb3ZhbFBvbGljeS5ERVNUUk9ZXG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcbn1cblxuLyoqXG4gKiBBIGNvbWJpbmVkIHF1ZXVlICsgY29uc3VtZXIgY29uc3RydWN0IGZvciBTUVMgcHJvY2Vzc2luZyB3b3JrZmxvd3MuXG4gKlxuICogVGhpcyBpcyBhIGNvbnZlbmllbmNlIGNvbnN0cnVjdCB0aGF0IGNvbWJpbmVzIEFwcFRoZW9yeVF1ZXVlIGFuZCBBcHBUaGVvcnlRdWV1ZUNvbnN1bWVyXG4gKiBpbnRvIGEgc2luZ2xlLCBlYXN5LXRvLXVzZSBwYXR0ZXJuLiBGb3IgbW9yZSBjb250cm9sLCB1c2UgdGhlIGluZGl2aWR1YWwgY29uc3RydWN0cy5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQmFzaWMgcHJvY2Vzc29yIChiYWNrd2FyZHMgY29tcGF0aWJsZSlcbiAqIG5ldyBBcHBUaGVvcnlRdWV1ZVByb2Nlc3NvcihzdGFjaywgJ1Byb2Nlc3NvcicsIHtcbiAqICAgY29uc3VtZXI6IG15RnVuY3Rpb24sXG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUHJvY2Vzc29yIHdpdGggRExRXG4gKiBuZXcgQXBwVGhlb3J5UXVldWVQcm9jZXNzb3Ioc3RhY2ssICdQcm9jZXNzb3InLCB7XG4gKiAgIGNvbnN1bWVyOiBteUZ1bmN0aW9uLFxuICogICBlbmFibGVEbHE6IHRydWUsXG4gKiAgIG1heFJlY2VpdmVDb3VudDogNSxcbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBQcm9jZXNzb3Igd2l0aCBmdWxsIG9wdGlvbnNcbiAqIG5ldyBBcHBUaGVvcnlRdWV1ZVByb2Nlc3NvcihzdGFjaywgJ1Byb2Nlc3NvcicsIHtcbiAqICAgY29uc3VtZXI6IG15RnVuY3Rpb24sXG4gKiAgIHF1ZXVlTmFtZTogJ215LXF1ZXVlJyxcbiAqICAgZW5hYmxlRGxxOiB0cnVlLFxuICogICBiYXRjaFNpemU6IDEwMCxcbiAqICAgbWF4QmF0Y2hpbmdXaW5kb3c6IER1cmF0aW9uLnNlY29uZHMoMTApLFxuICogICByZXBvcnRCYXRjaEl0ZW1GYWlsdXJlczogdHJ1ZSxcbiAqICAgbWF4Q29uY3VycmVuY3k6IDUwLFxuICogfSk7XG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBUaGVvcnlRdWV1ZVByb2Nlc3NvciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgbWFpbiBTUVMgcXVldWUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcXVldWU6IHNxcy5JUXVldWU7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmRlcmx5aW5nIEFwcFRoZW9yeVF1ZXVlIGNvbnN0cnVjdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBxdWV1ZUNvbnN0cnVjdDogQXBwVGhlb3J5UXVldWU7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmRlcmx5aW5nIEFwcFRoZW9yeVF1ZXVlQ29uc3VtZXIgY29uc3RydWN0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbnN1bWVyQ29uc3RydWN0OiBBcHBUaGVvcnlRdWV1ZUNvbnN1bWVyO1xuXG4gIC8qKlxuICAgKiBUaGUgRGVhZCBMZXR0ZXIgUXVldWUsIGlmIGVuYWJsZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVhZExldHRlclF1ZXVlPzogc3FzLlF1ZXVlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBcHBUaGVvcnlRdWV1ZVByb2Nlc3NvclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIERldGVybWluZSBpZiB3ZSBzaG91bGQgdXNlIGxlZ2FjeSBxdWV1ZVByb3BzIG9yIG5ldyBwcm9wc1xuICAgIGNvbnN0IHVzZUxlZ2FjeVByb3BzID0gcHJvcHMucXVldWVQcm9wcyAhPT0gdW5kZWZpbmVkO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBxdWV1ZSB1c2luZyBBcHBUaGVvcnlRdWV1ZVxuICAgIC8vIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgRExRIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgKG9yaWdpbmFsIGJlaGF2aW9yKVxuICAgIHRoaXMucXVldWVDb25zdHJ1Y3QgPSBuZXcgQXBwVGhlb3J5UXVldWUodGhpcywgXCJBcHBUaGVvcnlRdWV1ZVwiLCB7XG4gICAgICBxdWV1ZU5hbWU6IHVzZUxlZ2FjeVByb3BzID8gcHJvcHMucXVldWVQcm9wcz8ucXVldWVOYW1lIDogcHJvcHMucXVldWVOYW1lLFxuICAgICAgdmlzaWJpbGl0eVRpbWVvdXQ6IHVzZUxlZ2FjeVByb3BzXG4gICAgICAgID8gcHJvcHMucXVldWVQcm9wcz8udmlzaWJpbGl0eVRpbWVvdXRcbiAgICAgICAgOiBwcm9wcy52aXNpYmlsaXR5VGltZW91dCxcbiAgICAgIHJlY2VpdmVNZXNzYWdlV2FpdFRpbWU6IHVzZUxlZ2FjeVByb3BzXG4gICAgICAgID8gcHJvcHMucXVldWVQcm9wcz8ucmVjZWl2ZU1lc3NhZ2VXYWl0VGltZVxuICAgICAgICA6IHByb3BzLnJlY2VpdmVNZXNzYWdlV2FpdFRpbWUsXG4gICAgICBlbmFibGVEbHE6IHByb3BzLmVuYWJsZURscSA/PyBmYWxzZSwgLy8gQmFja3dhcmRzIGNvbXBhdGlibGU6IG5vIERMUSBieSBkZWZhdWx0XG4gICAgICBtYXhSZWNlaXZlQ291bnQ6IHByb3BzLm1heFJlY2VpdmVDb3VudCxcbiAgICAgIHJlbW92YWxQb2xpY3k6IHByb3BzLnJlbW92YWxQb2xpY3ksXG4gICAgfSk7XG5cbiAgICB0aGlzLnF1ZXVlID0gdGhpcy5xdWV1ZUNvbnN0cnVjdC5xdWV1ZTtcbiAgICB0aGlzLmRlYWRMZXR0ZXJRdWV1ZSA9IHRoaXMucXVldWVDb25zdHJ1Y3QuZGVhZExldHRlclF1ZXVlO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBjb25zdW1lciB1c2luZyBBcHBUaGVvcnlRdWV1ZUNvbnN1bWVyXG4gICAgdGhpcy5jb25zdW1lckNvbnN0cnVjdCA9IG5ldyBBcHBUaGVvcnlRdWV1ZUNvbnN1bWVyKHRoaXMsIFwiQXBwVGhlb3J5Q29uc3VtZXJcIiwge1xuICAgICAgcXVldWU6IHRoaXMucXVldWUsXG4gICAgICBjb25zdW1lcjogcHJvcHMuY29uc3VtZXIsXG4gICAgICBiYXRjaFNpemU6IHByb3BzLmJhdGNoU2l6ZSxcbiAgICAgIG1heEJhdGNoaW5nV2luZG93OiBwcm9wcy5tYXhCYXRjaGluZ1dpbmRvdyxcbiAgICAgIHJlcG9ydEJhdGNoSXRlbUZhaWx1cmVzOiBwcm9wcy5yZXBvcnRCYXRjaEl0ZW1GYWlsdXJlcyxcbiAgICAgIG1heENvbmN1cnJlbmN5OiBwcm9wcy5tYXhDb25jdXJyZW5jeSxcbiAgICAgIGVuYWJsZWQ6IHByb3BzLmVuYWJsZWQsXG4gICAgICBncmFudENvbnN1bWVNZXNzYWdlczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/cdk/lib/queue.js b/cdk/lib/queue.js index 7716f396..9bafa594 100644 --- a/cdk/lib/queue.js +++ b/cdk/lib/queue.js @@ -101,5 +101,5 @@ class AppTheoryQueue extends constructs_1.Construct { } exports.AppTheoryQueue = AppTheoryQueue; _a = JSII_RTTI_SYMBOL_1; -AppTheoryQueue[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryQueue", version: "0.18.0-rc" }; +AppTheoryQueue[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryQueue", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJxdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFzRDtBQUV0RCwyQ0FBMkM7QUFDM0MsMkNBQXVDO0FBd0Z2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsc0JBQVM7SUEwQnpDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBNkIsRUFBRTtRQUNyRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDO1FBQzVDLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksMkJBQWEsQ0FBQyxPQUFPLENBQUM7UUFFbkUsd0JBQXdCO1FBQ3hCLElBQUksU0FBUyxFQUFFLENBQUM7WUFDWixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtnQkFDMUQsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPO2dCQUM5RCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsb0JBQW9CLElBQUksS0FBSyxDQUFDLGlCQUFpQjtnQkFDeEUsZUFBZSxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxzQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzlELFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtnQkFDNUIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2dCQUNoQix5QkFBeUIsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ25GLGFBQWE7YUFDaEIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELG9CQUFvQjtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQ3RDLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUztZQUN0RixpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1lBQzFDLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUN0QyxzQkFBc0IsRUFBRSxLQUFLLENBQUMsc0JBQXNCO1lBQ3BELFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtZQUM1QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIseUJBQXlCLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQ25GLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtnQkFDakMsQ0FBQyxDQUFDO29CQUNFLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZTtvQkFDM0IsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlLElBQUksQ0FBQztpQkFDOUM7Z0JBQ0QsQ0FBQyxDQUFDLFNBQVM7WUFDZixhQUFhO1NBQ2hCLENBQUMsQ0FBQztRQUVILGdDQUFnQztRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUV0QyxzQ0FBc0M7UUFDdEMsSUFBSSxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM1QixLQUFLLE1BQU0sRUFBRSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksaUJBQWlCLENBQUMsT0FBeUI7UUFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxvQkFBb0IsQ0FBQyxPQUF5QjtRQUNqRCxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNJLFVBQVUsQ0FBQyxPQUF5QjtRQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDOztBQWhHTCx3Q0FpR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHR5cGUgKiBhcyBsYW1iZGEgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCAqIGFzIHNxcyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNxc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBBcHBUaGVvcnlRdWV1ZSBjb25zdHJ1Y3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwVGhlb3J5UXVldWVQcm9wcyB7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIHF1ZXVlLlxuICAgICAqIEBkZWZhdWx0IC0gQ2xvdWRGb3JtYXRpb24tZ2VuZXJhdGVkIG5hbWVcbiAgICAgKi9cbiAgICByZWFkb25seSBxdWV1ZU5hbWU/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdmlzaWJpbGl0eSB0aW1lb3V0IGZvciBtZXNzYWdlcyBpbiB0aGUgcXVldWUuXG4gICAgICogQGRlZmF1bHQgRHVyYXRpb24uc2Vjb25kcygzMClcbiAgICAgKi9cbiAgICByZWFkb25seSB2aXNpYmlsaXR5VGltZW91dD86IER1cmF0aW9uO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG51bWJlciBvZiBzZWNvbmRzIHRoYXQgQW1hem9uIFNRUyByZXRhaW5zIGEgbWVzc2FnZS5cbiAgICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5kYXlzKDQpXG4gICAgICovXG4gICAgcmVhZG9ubHkgcmV0ZW50aW9uUGVyaW9kPzogRHVyYXRpb247XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYW1vdW50IG9mIHRpbWUgZm9yIHdoaWNoIGEgUmVjZWl2ZU1lc3NhZ2UgY2FsbCB3aWxsIHdhaXQgZm9yIGEgbWVzc2FnZSB0byBhcnJpdmUgaW4gdGhlIHF1ZXVlXG4gICAgICogYmVmb3JlIHJldHVybmluZy4gVXNlZCBmb3IgU1FTIGxvbmcgcG9sbGluZy5cbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKi9cbiAgICByZWFkb25seSByZWNlaXZlTWVzc2FnZVdhaXRUaW1lPzogRHVyYXRpb247XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBhIERlYWQgTGV0dGVyIFF1ZXVlIChETFEpLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICByZWFkb25seSBlbmFibGVEbHE/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHRpbWVzIGEgbWVzc2FnZSBjYW4gYmUgcmVjZWl2ZWQgYmVmb3JlIGJlaW5nIHNlbnQgdG8gdGhlIERMUS5cbiAgICAgKiBPbmx5IGFwcGxpY2FibGUgd2hlbiBlbmFibGVEbHEgaXMgdHJ1ZS5cbiAgICAgKiBAZGVmYXVsdCAzXG4gICAgICovXG4gICAgcmVhZG9ubHkgbWF4UmVjZWl2ZUNvdW50PzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHZpc2liaWxpdHkgdGltZW91dCBmb3IgdGhlIERMUS5cbiAgICAgKiBAZGVmYXVsdCAtIFNhbWUgYXMgdGhlIG1haW4gcXVldWVcbiAgICAgKi9cbiAgICByZWFkb25seSBkbHFWaXNpYmlsaXR5VGltZW91dD86IER1cmF0aW9uO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHJldGVudGlvbiBwZXJpb2QgZm9yIHRoZSBETFEuXG4gICAgICogQGRlZmF1bHQgRHVyYXRpb24uZGF5cygxNClcbiAgICAgKi9cbiAgICByZWFkb25seSBkbHFSZXRlbnRpb25QZXJpb2Q/OiBEdXJhdGlvbjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgbWVzc2FnZXMgZGVsaXZlcmVkIHRvIHRoZSBxdWV1ZSB3aWxsIGJlIGVuY3J5cHRlZC5cbiAgICAgKiBAZGVmYXVsdCAtIEFXUyBtYW5hZ2VkIGVuY3J5cHRpb24gaXMgdXNlZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBzcXMuUXVldWVFbmNyeXB0aW9uO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBlbmFibGUgY29udGVudC1iYXNlZCBkZWR1cGxpY2F0aW9uIGZvciBGSUZPIHF1ZXVlcy5cbiAgICAgKiBPbmx5IGFwcGxpY2FibGUgZm9yIEZJRk8gcXVldWVzLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbj86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBxdWV1ZSBpcyBhIEZJRk8gcXVldWUuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBmaWZvPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFByaW5jaXBhbHMgdG8gZ3JhbnQgc2VuZCBtZXNzYWdlcyBwZXJtaXNzaW9uIHRvLlxuICAgICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBwcmluY2lwYWxzXG4gICAgICovXG4gICAgcmVhZG9ubHkgZ3JhbnRTZW5kTWVzc2FnZXNUbz86IGxhbWJkYS5JRnVuY3Rpb25bXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSByZW1vdmFsIHBvbGljeSBmb3IgdGhlIHF1ZXVlKHMpLlxuICAgICAqIEBkZWZhdWx0IFJlbW92YWxQb2xpY3kuREVTVFJPWVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJlbW92YWxQb2xpY3k/OiBSZW1vdmFsUG9saWN5O1xufVxuXG4vKipcbiAqIEEgY29tcG9zYWJsZSBTUVMgcXVldWUgY29uc3RydWN0IHdpdGggb3B0aW9uYWwgRExRIHN1cHBvcnQuXG4gKlxuICogVGhpcyBjb25zdHJ1Y3QgY3JlYXRlcyBhbiBTUVMgcXVldWUgd2l0aCBvcHRpb25hbCBEZWFkIExldHRlciBRdWV1ZSAoRExRKSBjb25maWd1cmF0aW9uLlxuICogSXQgY2FuIGJlIHVzZWQgc3RhbmRhbG9uZSAoZm9yIG1hbnVhbCBtZXNzYWdlIHByb2R1Y3Rpb24vY29uc3VtcHRpb24pIG9yIGNvbXBvc2VkXG4gKiB3aXRoIEFwcFRoZW9yeVF1ZXVlQ29uc3VtZXIgZm9yIExhbWJkYSBpbnRlZ3JhdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUXVldWUgd2l0aCBETFEgKGRlZmF1bHQpXG4gKiBjb25zdCBxdWV1ZSA9IG5ldyBBcHBUaGVvcnlRdWV1ZShzdGFjaywgJ1F1ZXVlJywge1xuICogICBxdWV1ZU5hbWU6ICdteS1xdWV1ZScsXG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUXVldWUgd2l0aG91dCBETFFcbiAqIGNvbnN0IHF1ZXVlID0gbmV3IEFwcFRoZW9yeVF1ZXVlKHN0YWNrLCAnUXVldWUnLCB7XG4gKiAgIHF1ZXVlTmFtZTogJ215LXF1ZXVlJyxcbiAqICAgZW5hYmxlRGxxOiBmYWxzZSxcbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBRdWV1ZSB3aXRoIGN1c3RvbSBETFEgY29uZmlndXJhdGlvblxuICogY29uc3QgcXVldWUgPSBuZXcgQXBwVGhlb3J5UXVldWUoc3RhY2ssICdRdWV1ZScsIHtcbiAqICAgcXVldWVOYW1lOiAnbXktcXVldWUnLFxuICogICBtYXhSZWNlaXZlQ291bnQ6IDUsXG4gKiAgIGRscVJldGVudGlvblBlcmlvZDogRHVyYXRpb24uZGF5cygxNCksXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGNsYXNzIEFwcFRoZW9yeVF1ZXVlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgICAvKipcbiAgICAgKiBUaGUgbWFpbiBTUVMgcXVldWUuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHF1ZXVlOiBzcXMuUXVldWU7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgRGVhZCBMZXR0ZXIgUXVldWUsIGlmIGVuYWJsZWQuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGRlYWRMZXR0ZXJRdWV1ZT86IHNxcy5RdWV1ZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBBUk4gb2YgdGhlIG1haW4gcXVldWUuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHF1ZXVlQXJuOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgVVJMIG9mIHRoZSBtYWluIHF1ZXVlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBxdWV1ZVVybDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIG1haW4gcXVldWUuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHF1ZXVlTmFtZTogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFwcFRoZW9yeVF1ZXVlUHJvcHMgPSB7fSkge1xuICAgICAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgICAgIGNvbnN0IGVuYWJsZURscSA9IHByb3BzLmVuYWJsZURscSAhPT0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHJlbW92YWxQb2xpY3kgPSBwcm9wcy5yZW1vdmFsUG9saWN5ID8/IFJlbW92YWxQb2xpY3kuREVTVFJPWTtcblxuICAgICAgICAvLyBDcmVhdGUgRExRIGlmIGVuYWJsZWRcbiAgICAgICAgaWYgKGVuYWJsZURscSkge1xuICAgICAgICAgICAgY29uc3QgZGxxTmFtZSA9IHByb3BzLnF1ZXVlTmFtZSA/IGAke3Byb3BzLnF1ZXVlTmFtZX0tZGxxYCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuZGVhZExldHRlclF1ZXVlID0gbmV3IHNxcy5RdWV1ZSh0aGlzLCBcIkRlYWRMZXR0ZXJRdWV1ZVwiLCB7XG4gICAgICAgICAgICAgICAgcXVldWVOYW1lOiBwcm9wcy5maWZvICYmIGRscU5hbWUgPyBgJHtkbHFOYW1lfS5maWZvYCA6IGRscU5hbWUsXG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eVRpbWVvdXQ6IHByb3BzLmRscVZpc2liaWxpdHlUaW1lb3V0ID8/IHByb3BzLnZpc2liaWxpdHlUaW1lb3V0LFxuICAgICAgICAgICAgICAgIHJldGVudGlvblBlcmlvZDogcHJvcHMuZGxxUmV0ZW50aW9uUGVyaW9kID8/IER1cmF0aW9uLmRheXMoMTQpLFxuICAgICAgICAgICAgICAgIGVuY3J5cHRpb246IHByb3BzLmVuY3J5cHRpb24sXG4gICAgICAgICAgICAgICAgZmlmbzogcHJvcHMuZmlmbyxcbiAgICAgICAgICAgICAgICBjb250ZW50QmFzZWREZWR1cGxpY2F0aW9uOiBwcm9wcy5maWZvID8gcHJvcHMuY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICByZW1vdmFsUG9saWN5LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDcmVhdGUgbWFpbiBxdWV1ZVxuICAgICAgICB0aGlzLnF1ZXVlID0gbmV3IHNxcy5RdWV1ZSh0aGlzLCBcIlF1ZXVlXCIsIHtcbiAgICAgICAgICAgIHF1ZXVlTmFtZTogcHJvcHMuZmlmbyAmJiBwcm9wcy5xdWV1ZU5hbWUgPyBgJHtwcm9wcy5xdWV1ZU5hbWV9LmZpZm9gIDogcHJvcHMucXVldWVOYW1lLFxuICAgICAgICAgICAgdmlzaWJpbGl0eVRpbWVvdXQ6IHByb3BzLnZpc2liaWxpdHlUaW1lb3V0LFxuICAgICAgICAgICAgcmV0ZW50aW9uUGVyaW9kOiBwcm9wcy5yZXRlbnRpb25QZXJpb2QsXG4gICAgICAgICAgICByZWNlaXZlTWVzc2FnZVdhaXRUaW1lOiBwcm9wcy5yZWNlaXZlTWVzc2FnZVdhaXRUaW1lLFxuICAgICAgICAgICAgZW5jcnlwdGlvbjogcHJvcHMuZW5jcnlwdGlvbixcbiAgICAgICAgICAgIGZpZm86IHByb3BzLmZpZm8sXG4gICAgICAgICAgICBjb250ZW50QmFzZWREZWR1cGxpY2F0aW9uOiBwcm9wcy5maWZvID8gcHJvcHMuY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGRlYWRMZXR0ZXJRdWV1ZTogdGhpcy5kZWFkTGV0dGVyUXVldWVcbiAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgcXVldWU6IHRoaXMuZGVhZExldHRlclF1ZXVlLFxuICAgICAgICAgICAgICAgICAgICBtYXhSZWNlaXZlQ291bnQ6IHByb3BzLm1heFJlY2VpdmVDb3VudCA/PyAzLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEV4cG9zZSBjb252ZW5pZW5jZSBwcm9wZXJ0aWVzXG4gICAgICAgIHRoaXMucXVldWVBcm4gPSB0aGlzLnF1ZXVlLnF1ZXVlQXJuO1xuICAgICAgICB0aGlzLnF1ZXVlVXJsID0gdGhpcy5xdWV1ZS5xdWV1ZVVybDtcbiAgICAgICAgdGhpcy5xdWV1ZU5hbWUgPSB0aGlzLnF1ZXVlLnF1ZXVlTmFtZTtcblxuICAgICAgICAvLyBHcmFudCBzZW5kIHBlcm1pc3Npb25zIGlmIHNwZWNpZmllZFxuICAgICAgICBpZiAocHJvcHMuZ3JhbnRTZW5kTWVzc2FnZXNUbykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBmbiBvZiBwcm9wcy5ncmFudFNlbmRNZXNzYWdlc1RvKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5xdWV1ZS5ncmFudFNlbmRNZXNzYWdlcyhmbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHcmFudCBzZW5kIG1lc3NhZ2VzIHBlcm1pc3Npb24gdG8gYSBMYW1iZGEgZnVuY3Rpb24uXG4gICAgICovXG4gICAgcHVibGljIGdyYW50U2VuZE1lc3NhZ2VzKGdyYW50ZWU6IGxhbWJkYS5JRnVuY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5xdWV1ZS5ncmFudFNlbmRNZXNzYWdlcyhncmFudGVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHcmFudCBjb25zdW1lIG1lc3NhZ2VzIHBlcm1pc3Npb24gdG8gYSBMYW1iZGEgZnVuY3Rpb24uXG4gICAgICovXG4gICAgcHVibGljIGdyYW50Q29uc3VtZU1lc3NhZ2VzKGdyYW50ZWU6IGxhbWJkYS5JRnVuY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5xdWV1ZS5ncmFudENvbnN1bWVNZXNzYWdlcyhncmFudGVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHcmFudCBwdXJnZSBtZXNzYWdlcyBwZXJtaXNzaW9uIHRvIGEgTGFtYmRhIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIHB1YmxpYyBncmFudFB1cmdlKGdyYW50ZWU6IGxhbWJkYS5JRnVuY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5xdWV1ZS5ncmFudFB1cmdlKGdyYW50ZWUpO1xuICAgIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/cdk/lib/remote-mcp-server.js b/cdk/lib/remote-mcp-server.js index 4cdfd51e..b2516202 100644 --- a/cdk/lib/remote-mcp-server.js +++ b/cdk/lib/remote-mcp-server.js @@ -87,7 +87,7 @@ class AppTheoryRemoteMcpServer extends constructs_1.Construct { } exports.AppTheoryRemoteMcpServer = AppTheoryRemoteMcpServer; _a = JSII_RTTI_SYMBOL_1; -AppTheoryRemoteMcpServer[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryRemoteMcpServer", version: "0.18.1" }; +AppTheoryRemoteMcpServer[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryRemoteMcpServer", version: "0.18.2" }; function computeMcpEndpoint(router, stageName, domain, actorPath) { const suffix = actorPath ? "/mcp/{actor}" : "/mcp"; if (!domain) { diff --git a/cdk/lib/rest-api-router.js b/cdk/lib/rest-api-router.js index 9046f9ff..9d77ec1f 100644 --- a/cdk/lib/rest-api-router.js +++ b/cdk/lib/rest-api-router.js @@ -310,7 +310,7 @@ class AppTheoryRestApiRouter extends constructs_1.Construct { } exports.AppTheoryRestApiRouter = AppTheoryRestApiRouter; _a = JSII_RTTI_SYMBOL_1; -AppTheoryRestApiRouter[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryRestApiRouter", version: "0.18.0-rc" }; +AppTheoryRestApiRouter[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryRestApiRouter", version: "0.18.2" }; /** * Convert a domain name to a Route53 record name relative to the zone. */ diff --git a/cdk/lib/rest-api.js b/cdk/lib/rest-api.js index 78132a78..c0a85f9b 100644 --- a/cdk/lib/rest-api.js +++ b/cdk/lib/rest-api.js @@ -32,7 +32,7 @@ class AppTheoryRestApi extends constructs_1.Construct { } exports.AppTheoryRestApi = AppTheoryRestApi; _a = JSII_RTTI_SYMBOL_1; -AppTheoryRestApi[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryRestApi", version: "0.18.0-rc" }; +AppTheoryRestApi[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryRestApi", version: "0.18.2" }; function resourceForPath(api, inputPath) { let current = api.root; const trimmed = String(inputPath ?? "") diff --git a/cdk/lib/s3-ingest.js b/cdk/lib/s3-ingest.js index 637fd01a..b79ead2c 100644 --- a/cdk/lib/s3-ingest.js +++ b/cdk/lib/s3-ingest.js @@ -110,5 +110,5 @@ class AppTheoryS3Ingest extends constructs_1.Construct { } exports.AppTheoryS3Ingest = AppTheoryS3Ingest; _a = JSII_RTTI_SYMBOL_1; -AppTheoryS3Ingest[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryS3Ingest", version: "0.18.0-rc" }; +AppTheoryS3Ingest[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryS3Ingest", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtaW5nZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiczMtaW5nZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQTRDO0FBRTVDLG1EQUFtRDtBQUVuRCx5Q0FBeUM7QUFDekMsd0RBQXdEO0FBRXhELDJDQUF1QztBQUV2QyxtQ0FBeUM7QUFFekMsU0FBUyxnQkFBZ0IsQ0FBQyxNQUFpQjtJQUN6QyxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNoRyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBd0ZEOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLGlCQUFrQixTQUFRLHNCQUFTO0lBSzlDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBZ0MsRUFBRTtRQUMxRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixJQUFJLEtBQUssQ0FBQztRQUUzRCxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMscUVBQXFFLENBQUMsQ0FBQztRQUN6RixDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMxQyxNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxDQUFDLENB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LEVBQUUsQ0FBQyxTQUFTLENBQUM7Z0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixFQUFFLDZCQUE2QixFQUFFLGNBQWMsQ0FBQztnQkFDbkYsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDNUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQzs7QUF0R0gsOENBdUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHR5cGUgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCAqIGFzIGlhbUNvbmNyZXRlIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgdHlwZSAqIGFzIGttcyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWttc1wiO1xuaW1wb3J0ICogYXMgczMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0ICogYXMgczNuIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczMtbm90aWZpY2F0aW9uc1wiO1xuaW1wb3J0IHR5cGUgKiBhcyBzcXMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zcXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgdHlwZSB7IEFwcFRoZW9yeVF1ZXVlUHJvcHMgfSBmcm9tIFwiLi9xdWV1ZVwiO1xuaW1wb3J0IHsgQXBwVGhlb3J5UXVldWUgfSBmcm9tIFwiLi9xdWV1ZVwiO1xuXG5mdW5jdGlvbiBub3JtYWxpemVGaWx0ZXJzKHZhbHVlcz86IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICBpZiAoIXZhbHVlcykgcmV0dXJuIFtdO1xuICBjb25zdCB0cmltbWVkID0gdmFsdWVzLm1hcCgodmFsdWUpID0+IFN0cmluZyh2YWx1ZSkudHJpbSgpKS5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZS5sZW5ndGggPiAwKTtcbiAgcmV0dXJuIEFycmF5LmZyb20obmV3IFNldCh0cmltbWVkKSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwVGhlb3J5UzNJbmdlc3RQcm9wcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBleGlzdGluZyBTMyBidWNrZXQgdG8gdXNlIGZvciBpbmdlc3QuXG4gICAqXG4gICAqIElmIG5vdCBwcm92aWRlZCwgYSBuZXcgYnVja2V0IHdpbGwgYmUgY3JlYXRlZCB3aXRoIHNlY3VyZSBkZWZhdWx0cy5cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldD86IHMzLklCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIE5hbWUgZm9yIHRoZSBpbmdlc3QgYnVja2V0IChvbmx5IHVzZWQgaWYgYnVja2V0IGlzIG5vdCBwcm92aWRlZCkuXG4gICAqL1xuICByZWFkb25seSBidWNrZXROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZW1vdmFsIHBvbGljeSBmb3IgY3JlYXRlZCByZXNvdXJjZXMuXG4gICAqIEBkZWZhdWx0IFJlbW92YWxQb2xpY3kuUkVUQUlOXG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhdXRvLWRlbGV0ZSBvYmplY3RzIGluIGEgY3JlYXRlZCBidWNrZXQgd2hlbiByZW1vdmFsUG9saWN5IGlzIERFU1RST1kuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhdXRvRGVsZXRlT2JqZWN0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIEV2ZW50QnJpZGdlIG5vdGlmaWNhdGlvbnMgZm9yIHRoZSBidWNrZXQuXG4gICAqXG4gICAqIFdoZW4gY3JlYXRpbmcgYSBidWNrZXQsIHRoaXMgc2V0cyBgZXZlbnRCcmlkZ2VFbmFibGVkYC5cbiAgICogV2hlbiB1c2luZyBhbiBleGlzdGluZyBidWNrZXQsIHRoaXMgY2FsbHMgYGVuYWJsZUV2ZW50QnJpZGdlTm90aWZpY2F0aW9uKClgLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlRXZlbnRCcmlkZ2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBTUVMgcXVldWUgdGFyZ2V0IGZvciBkaXJlY3QgUzMgLT4gU1FTIG5vdGlmaWNhdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBxdWV1ZVRhcmdldD86IHNxcy5JUXVldWU7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHF1ZXVlIHByb3BzIHRvIGNyZWF0ZSBhbiBTUVMgcXVldWUgZm9yIGRpcmVjdCBTMyAtPiBTUVMgbm90aWZpY2F0aW9ucy5cbiAgICpcbiAgICogTXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggYHF1ZXVlVGFyZ2V0YC5cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXVlUHJvcHM/OiBBcHBUaGVvcnlRdWV1ZVByb3BzO1xuXG4gIC8qKlxuICAgKiBPYmplY3Qga2V5IHByZWZpeGVzIHRvIG1hdGNoIGZvciBTMyAtPiBTUVMgbm90aWZpY2F0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeGVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE9iamVjdCBrZXkgc3VmZml4ZXMgdG8gbWF0Y2ggZm9yIFMzIC0+IFNRUyBub3RpZmljYXRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgc3VmZml4ZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgYnVja2V0IGVuY3J5cHRpb24gc2V0dGluZyAob25seSB1c2VkIHdoZW4gY3JlYXRpbmcgYSBidWNrZXQpLlxuICAgKiBAZGVmYXVsdCBzMy5CdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRURcbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBzMy5CdWNrZXRFbmNyeXB0aW9uO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjdXN0b21lci1tYW5hZ2VkIEtNUyBrZXkgKG9ubHkgdXNlZCB3aGVuIGNyZWF0aW5nIGEgYnVja2V0KS5cbiAgICogT25seSB2YWxpZCB3aGVuIGBlbmNyeXB0aW9uYCBpcyBgczMuQnVja2V0RW5jcnlwdGlvbi5LTVNgLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IGttcy5JS2V5O1xuXG4gIC8qKlxuICAgKiBQcmluY2lwYWxzIHRvIGdyYW50IHJlYWQgcGVybWlzc2lvbnMgdG8uXG4gICAqL1xuICByZWFkb25seSBncmFudFJlYWRUbz86IGlhbS5JR3JhbnRhYmxlW107XG5cbiAgLyoqXG4gICAqIFByaW5jaXBhbHMgdG8gZ3JhbnQgd3JpdGUgcGVybWlzc2lvbnMgdG8uXG4gICAqL1xuICByZWFkb25seSBncmFudFdyaXRlVG8/OiBpYW0uSUdyYW50YWJsZVtdO1xuXG4gIC8qKlxuICAgKiBDcm9zcy1hY2NvdW50IHdyaXRlciBwcmluY2lwYWxzIHRvIGFsbG93IHZpYSBidWNrZXQgcG9saWN5LlxuICAgKlxuICAgKiBUaGlzIGlzIGludGVudGlvbmFsbHkgZXhwbGljaXQgKGJ1Y2tldCBwb2xpY3kpLCByYXRoZXIgdGhhbiBpbXBsaWNpdCBtYWdpYy5cbiAgICovXG4gIHJlYWRvbmx5IHdyaXRlclByaW5jaXBhbHM/OiBpYW1Db25jcmV0ZS5JUHJpbmNpcGFsW107XG59XG5cbi8qKlxuICogU2VjdXJlIOKAnGZyb250IGRvb3LigJ0gUzMgaW5nZXN0IHdpcmluZyBmb3IgaW1wb3J0IHBpcGVsaW5lcy5cbiAqXG4gKiBUaGlzIGNvbnN0cnVjdCBjYW46XG4gKiAtIENyZWF0ZSBhIHNlY3VyZSBidWNrZXQgKG9yIGF0dGFjaCB0byBhbiBleGlzdGluZyBidWNrZXQpXG4gKiAtIEVuYWJsZSBTMyAtPiBFdmVudEJyaWRnZSBub3RpZmljYXRpb25zXG4gKiAtIENvbmZpZ3VyZSBTMyAtPiBTUVMgbm90aWZpY2F0aW9ucyB3aXRoIHByZWZpeC9zdWZmaXggZmlsdGVyc1xuICovXG5leHBvcnQgY2xhc3MgQXBwVGhlb3J5UzNJbmdlc3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgYnVja2V0OiBzMy5JQnVja2V0O1xuICBwdWJsaWMgcmVhZG9ubHkgcXVldWU/OiBzcXMuSVF1ZXVlO1xuICBwdWJsaWMgcmVhZG9ubHkgcXVldWVDb25zdHJ1Y3Q/OiBBcHBUaGVvcnlRdWV1ZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXBwVGhlb3J5UzNJbmdlc3RQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGVuYWJsZUV2ZW50QnJpZGdlID0gcHJvcHMuZW5hYmxlRXZlbnRCcmlkZ2UgPz8gZmFsc2U7XG5cbiAgICBpZiAocHJvcHMuYnVja2V0ICYmIHByb3BzLmJ1Y2tldE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkFwcFRoZW9yeVMzSW5nZXN0IGRvZXMgbm90IGFsbG93IGJ1Y2tldE5hbWUgd2hlbiBidWNrZXQgaXMgcHJvdmlkZWRcIik7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnF1ZXVlVGFyZ2V0ICYmIHByb3BzLnF1ZXVlUHJvcHMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkFwcFRoZW9yeVMzSW5nZXN0IHJlcXVpcmVzIGF0IG1vc3Qgb25lIG9mIHF1ZXVlVGFyZ2V0IG9yIHF1ZXVlUHJvcHNcIik7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmVuY3J5cHRpb25LZXkgJiYgcHJvcHMuZW5jcnlwdGlvbiAhPT0gczMuQnVja2V0RW5jcnlwdGlvbi5LTVMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkFwcFRoZW9yeVMzSW5nZXN0IG9ubHkgc3VwcG9ydHMgZW5jcnlwdGlvbktleSB3aGVuIGVuY3J5cHRpb24gaXMgQnVja2V0RW5jcnlwdGlvbi5LTVNcIik7XG4gICAgfVxuXG4gICAgaWYgKCFwcm9wcy5idWNrZXQpIHtcbiAgICAgIGNvbnN0IHJlbW92YWxQb2xpY3kgPSBwcm9wcy5yZW1vdmFsUG9saWN5ID8/IFJlbW92YWxQb2xpY3kuUkVUQUlOO1xuICAgICAgY29uc3QgYXV0b0RlbGV0ZU9iamVjdHMgPSBwcm9wcy5hdXRvRGVsZXRlT2JqZWN0cyA/PyBmYWxzZTtcbiAgICAgIGNvbnN0IGVuY3J5cHRpb24gPSBwcm9wcy5lbmNyeXB0aW9uID8/IHMzLkJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRDtcblxuICAgICAgaWYgKGVuY3J5cHRpb24gPT09IHMzLkJ1Y2tldEVuY3J5cHRpb24uS01TICYmICFwcm9wcy5lbmNyeXB0aW9uS2V5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkFwcFRoZW9yeVMzSW5nZXN0IHJlcXVpcmVzIGVuY3J5cHRpb25LZXkgd2hlbiBlbmNyeXB0aW9uIGlzIEJ1Y2tldEVuY3J5cHRpb24uS01TXCIpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgXCJCdWNrZXRcIiwge1xuICAgICAgICBidWNrZXROYW1lOiBwcm9wcy5idWNrZXROYW1lLFxuICAgICAgICBibG9ja1B1YmxpY0FjY2VzczogczMuQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgICAgICBlbmNyeXB0aW9uLFxuICAgICAgICBlbmNyeXB0aW9uS2V5OiBwcm9wcy5lbmNyeXB0aW9uS2V5LFxuICAgICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgICAgICBvYmplY3RPd25lcnNoaXA6IHMzLk9iamVjdE93bmVyc2hpcC5CVUNLRVRfT1dORVJfRU5GT1JDRUQsXG4gICAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgICAgIGF1dG9EZWxldGVPYmplY3RzLFxuICAgICAgICBldmVudEJyaWRnZUVuYWJsZWQ6IGVuYWJsZUV2ZW50QnJpZGdlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYnVja2V0ID0gcHJvcHMuYnVja2V0O1xuICAgICAgaWYgKGVuYWJsZUV2ZW50QnJpZGdlKSB7XG4gICAgICAgIHRoaXMuYnVja2V0LmVuYWJsZUV2ZW50QnJpZGdlTm90aWZpY2F0aW9uKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnF1ZXVlUHJvcHMpIHtcbiAgICAgIHRoaXMucXVldWVDb25zdHJ1Y3QgPSBuZXcgQXBwVGhlb3J5UXVldWUodGhpcywgXCJRdWV1ZVwiLCBwcm9wcy5xdWV1ZVByb3BzKTtcbiAgICAgIHRoaXMucXVldWUgPSB0aGlzLnF1ZXVlQ29uc3RydWN0LnF1ZXVlO1xuICAgIH0gZWxzZSBpZiAocHJvcHMucXVldWVUYXJnZXQpIHtcbiAgICAgIHRoaXMucXVldWUgPSBwcm9wcy5xdWV1ZVRhcmdldDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWV1ZSkge1xuICAgICAgY29uc3QgZGVzdGluYXRpb24gPSBuZXcgczNuLlNxc0Rlc3RpbmF0aW9uKHRoaXMucXVldWUpO1xuXG4gICAgICBjb25zdCBwcmVmaXhlcyA9IG5vcm1hbGl6ZUZpbHRlcnMocHJvcHMucHJlZml4ZXMpO1xuICAgICAgY29uc3Qgc3VmZml4ZXMgPSBub3JtYWxpemVGaWx0ZXJzKHByb3BzLnN1ZmZpeGVzKTtcblxuICAgICAgY29uc3QgcHJlZml4VmFsdWVzID0gcHJlZml4ZXMubGVuZ3RoID4gMCA/IHByZWZpeGVzIDogW3VuZGVmaW5lZF07XG4gICAgICBjb25zdCBzdWZmaXhWYWx1ZXMgPSBzdWZmaXhlcy5sZW5ndGggPiAwID8gc3VmZml4ZXMgOiBbdW5kZWZpbmVkXTtcblxuICAgICAgZm9yIChjb25zdCBwcmVmaXggb2YgcHJlZml4VmFsdWVzKSB7XG4gICAgICAgIGZvciAoY29uc3Qgc3VmZml4IG9mIHN1ZmZpeFZhbHVlcykge1xuICAgICAgICAgIGlmICghcHJlZml4ICYmICFzdWZmaXgpIHtcbiAgICAgICAgICAgIHRoaXMuYnVja2V0LmFkZEV2ZW50Tm90aWZpY2F0aW9uKHMzLkV2ZW50VHlwZS5PQkpFQ1RfQ1JFQVRFRCwgZGVzdGluYXRpb24pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmJ1Y2tldC5hZGRFdmVudE5vdGlmaWNhdGlvbihzMy5FdmVudFR5cGUuT0JKRUNUX0NSRUFURUQsIGRlc3RpbmF0aW9uLCB7XG4gICAgICAgICAgICAgIHByZWZpeCxcbiAgICAgICAgICAgICAgc3VmZml4LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBncmFudGVlIG9mIHByb3BzLmdyYW50UmVhZFRvID8/IFtdKSB7XG4gICAgICB0aGlzLmJ1Y2tldC5ncmFudFJlYWQoZ3JhbnRlZSk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgZ3JhbnRlZSBvZiBwcm9wcy5ncmFudFdyaXRlVG8gPz8gW10pIHtcbiAgICAgIHRoaXMuYnVja2V0LmdyYW50V3JpdGUoZ3JhbnRlZSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwcmluY2lwYWwgb2YgcHJvcHMud3JpdGVyUHJpbmNpcGFscyA/PyBbXSkge1xuICAgICAgdGhpcy5idWNrZXQuYWRkVG9SZXNvdXJjZVBvbGljeShcbiAgICAgICAgbmV3IGlhbUNvbmNyZXRlLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgcHJpbmNpcGFsczogW3ByaW5jaXBhbF0sXG4gICAgICAgICAgYWN0aW9uczogW1wiczM6R2V0QnVja2V0TG9jYXRpb25cIiwgXCJzMzpMaXN0QnVja2V0TXVsdGlwYXJ0VXBsb2Fkc1wiXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFt0aGlzLmJ1Y2tldC5idWNrZXRBcm5dLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICB0aGlzLmJ1Y2tldC5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgICBuZXcgaWFtQ29uY3JldGUuUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBwcmluY2lwYWxzOiBbcHJpbmNpcGFsXSxcbiAgICAgICAgICBhY3Rpb25zOiBbXCJzMzpBYm9ydE11bHRpcGFydFVwbG9hZFwiLCBcInMzOkxpc3RNdWx0aXBhcnRVcGxvYWRQYXJ0c1wiLCBcInMzOlB1dE9iamVjdFwiXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFt0aGlzLmJ1Y2tldC5hcm5Gb3JPYmplY3RzKFwiKlwiKV0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuIl19 \ No newline at end of file diff --git a/cdk/lib/ssr-site.js b/cdk/lib/ssr-site.js index 9316fab1..0e97ba4e 100644 --- a/cdk/lib/ssr-site.js +++ b/cdk/lib/ssr-site.js @@ -176,5 +176,5 @@ class AppTheorySsrSite extends constructs_1.Construct { } exports.AppTheorySsrSite = AppTheorySsrSite; _a = JSII_RTTI_SYMBOL_1; -AppTheorySsrSite[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheorySsrSite", version: "0.18.0-rc" }; +AppTheorySsrSite[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheorySsrSite", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NyLXNpdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzc3Itc2l0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFnRDtBQUNoRCwwREFBMEQ7QUFDMUQseURBQXlEO0FBQ3pELDhEQUE4RDtBQUM5RCxpREFBaUQ7QUFDakQsbURBQW1EO0FBQ25ELDJEQUEyRDtBQUMzRCx5Q0FBeUM7QUFDekMsMERBQTBEO0FBQzFELDJDQUF1QztBQXdDdkMsTUFBYSxnQkFBaUIsU0FBUSxzQkFBUztJQVM3QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksMkJBQWEsQ0FBQyxNQUFNLENBQUM7UUFDbEUsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsaUJBQWlCLElBQUksS0FBSyxDQUFDO1FBRTNELElBQUksQ0FBQyxZQUFZO1lBQ2YsS0FBSyxDQUFDLFlBQVk7Z0JBQ2xCLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO29CQUNsQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsU0FBUztvQkFDakQsVUFBVSxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVO29CQUMxQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsYUFBYTtvQkFDYixpQkFBaUI7aUJBQ2xCLENBQUMsQ0FBQztRQUVMLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDO1FBQ2xELElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFVBQVU7Z0JB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QUMsVUFBVTtnQkFDdEIsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RCLE1BQU0sRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDeEYsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUVILENBQUM7O0FBek1ILDRDQTBNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZuLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBhY20gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXJcIjtcbmltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQgKiBhcyBvcmlnaW5zIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zXCI7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCAqIGFzIHJvdXRlNTMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQgKiBhcyB0YXJnZXRzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzXCI7XG5pbXBvcnQgKiBhcyBzMyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgKiBhcyBzM2RlcGxveSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzLWRlcGxveW1lbnRcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwVGhlb3J5U3NyU2l0ZVByb3BzIHtcbiAgcmVhZG9ubHkgc3NyRnVuY3Rpb246IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgcmVhZG9ubHkgaW52b2tlTW9kZT86IGxhbWJkYS5JbnZva2VNb2RlO1xuXG4gIHJlYWRvbmx5IGFzc2V0c0J1Y2tldD86IHMzLklCdWNrZXQ7XG4gIHJlYWRvbmx5IGFzc2V0c1BhdGg/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFzc2V0c0tleVByZWZpeD86IHN0cmluZztcbiAgcmVhZG9ubHkgYXNzZXRzTWFuaWZlc3RLZXk/OiBzdHJpbmc7XG5cbiAgLy8gQWRkaXRpb25hbCBDbG91ZEZyb250IHBhdGggcGF0dGVybnMgdG8gcm91dGUgdG8gdGhlIHN0YXRpYyBTMyBvcmlnaW4uXG4gIC8vIEV4YW1wbGUgKEZhY2VUaGVvcnkgU1NHIGh5ZHJhdGlvbik6IFwiL19mYWNldGhlb3J5L2RhdGEvKlwiXG4gIHJlYWRvbmx5IHN0YXRpY1BhdGhQYXR0ZXJucz86IHN0cmluZ1tdO1xuXG4gIC8vIE9wdGlvbmFsIER5bmFtb0RCIHRhYmxlIG5hbWUgZm9yIElTUi9jYWNoZSBtZXRhZGF0YSBvd25lZCBieSBhcHAgY29kZSAoVGFibGVUaGVvcnkpLlxuICAvLyBXaGVuIHNldCwgQXBwVGhlb3J5IHdpbGwgd2lyZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgb24gdGhlIFNTUiBmdW5jdGlvbi5cbiAgcmVhZG9ubHkgY2FjaGVUYWJsZU5hbWU/OiBzdHJpbmc7XG5cbiAgLy8gV2hlbiB0cnVlIChkZWZhdWx0KSwgQXBwVGhlb3J5IHdpcmVzIHJlY29tbWVuZGVkIHJ1bnRpbWUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9udG8gdGhlIFNTUiBmdW5jdGlvbi5cbiAgcmVhZG9ubHkgd2lyZVJ1bnRpbWVFbnY/OiBib29sZWFuO1xuXG4gIC8vIEFkZGl0aW9uYWwgaGVhZGVycyB0byBmb3J3YXJkIHRvIHRoZSBTU1Igb3JpZ2luIChMYW1iZGEgRnVuY3Rpb24gVVJMKSB2aWEgdGhlIG9yaWdpbiByZXF1ZXN0IHBvbGljeS5cbiAgLy8gRXhhbXBsZSAoRmFjZVRoZW9yeSBtdWx0aS10ZW5hbnQpOiBcIngtZmFjZXRoZW9yeS10ZW5hbnRcIlxuICByZWFkb25seSBzc3JGb3J3YXJkSGVhZGVycz86IHN0cmluZ1tdO1xuXG4gIHJlYWRvbmx5IGVuYWJsZUxvZ2dpbmc/OiBib29sZWFuO1xuICByZWFkb25seSBsb2dzQnVja2V0PzogczMuSUJ1Y2tldDtcblxuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcbiAgcmVhZG9ubHkgYXV0b0RlbGV0ZU9iamVjdHM/OiBib29sZWFuO1xuXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGhvc3RlZFpvbmU/OiByb3V0ZTUzLklIb3N0ZWRab25lO1xuICByZWFkb25seSBjZXJ0aWZpY2F0ZUFybj86IHN0cmluZztcblxuICByZWFkb25seSB3ZWJBY2xJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEFwcFRoZW9yeVNzclNpdGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZXRzQnVja2V0OiBzMy5JQnVja2V0O1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZXRzS2V5UHJlZml4OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBhc3NldHNNYW5pZmVzdEtleTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbG9nc0J1Y2tldD86IHMzLklCdWNrZXQ7XG4gIHB1YmxpYyByZWFkb25seSBzc3JVcmw6IGxhbWJkYS5GdW5jdGlvblVybDtcbiAgcHVibGljIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbjogY2xvdWRmcm9udC5EaXN0cmlidXRpb247XG4gIHB1YmxpYyByZWFkb25seSBjZXJ0aWZpY2F0ZT86IGFjbS5JQ2VydGlmaWNhdGU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFwcFRoZW9yeVNzclNpdGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAoIXByb3BzPy5zc3JGdW5jdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXBwVGhlb3J5U3NyU2l0ZSByZXF1aXJlcyBwcm9wcy5zc3JGdW5jdGlvblwiKTtcbiAgICB9XG5cbiAgICBjb25zdCByZW1vdmFsUG9saWN5ID0gcHJvcHMucmVtb3ZhbFBvbGljeSA/PyBSZW1vdmFsUG9saWN5LlJFVEFJTjtcbiAgICBjb25zdCBhdXRvRGVsZXRlT2JqZWN0cyA9IHByb3BzLmF1dG9EZWxldGVPYmplY3RzID8/IGZhbHNlO1xuXG4gICAgdGhpcy5hc3NldHNCdWNrZXQgPVxuICAgICAgcHJvcHMuYXNzZXRzQnVja2V0ID8/XG4gICAgICBuZXcgczMuQnVja2V0KHRoaXMsIFwiQXNzZXRzQnVja2V0XCIsIHtcbiAgICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IHMzLkJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgICAgZW5jcnlwdGlvbjogczMuQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgICAgICByZW1vdmFsUG9saWN5LFxuICAgICAgICBhdXRvRGVsZXRlT2JqZWN0cyxcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgZW5hYmxlTG9nZ2luZyA9IHByb3BzLmVuYWJsZUxvZ2dpbmcgPz8gdHJ1ZTtcbiAgICBpZiAoZW5hYmxlTG9nZ2luZykge1xuICAgICAgdGhpcy5sb2dzQnVja2V0ID1cbiAgICAgICAgcHJvcHMubG9nc0J1Y2tldCA/P1xuICAgICAgICBuZXcgczMuQnVja2V0KHRoaXMsIFwiQ2xvdWRGcm9udExvZ3NCdWNrZXRcIiwge1xuICAgICAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBzMy5CbG9ja1B1YmxpY0FjY2Vzcy5CTE9DS19BTEwsXG4gICAgICAgICAgZW5jcnlwdGlvbjogczMuQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgICAgIGVuZm9yY2VTU0w6IHRydWUsXG4gICAgICAgICAgcmVtb3ZhbFBvbGljeSxcbiAgICAgICAgICBhdXRvRGVsZXRlT2JqZWN0cyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgYXNzZXRzUHJlZml4UmF3ID0gU3RyaW5nKHByb3BzLmFzc2V0c0tleVByZWZpeCA/PyBcImFzc2V0c1wiKS50cmltKCkucmVwbGFjZSgvXlxcLysvLCBcIlwiKS5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpO1xuICAgIGNvbnN0IGFzc2V0c0tleVByZWZpeCA9IGFzc2V0c1ByZWZpeFJhdyB8fCBcImFzc2V0c1wiO1xuXG4gICAgY29uc3QgbWFuaWZlc3RSYXcgPSBTdHJpbmcocHJvcHMuYXNzZXRzTWFuaWZlc3RLZXkgPz8gYCR7YXNzZXRzS2V5UHJlZml4fS9tYW5pZmVzdC5qc29uYClcbiAgICAgIC50cmltKClcbiAgICAgIC5yZXBsYWNlKC9eXFwvKy8sIFwiXCIpXG4gICAgICAucmVwbGFjZSgvXFwvKyQvLCBcIlwiKTtcbiAgICBjb25zdCBhc3NldHNNYW5pZmVzdEtleSA9IG1hbmlmZXN0UmF3IHx8IGAke2Fzc2V0c0tleVByZWZpeH0vbWFuaWZlc3QuanNvbmA7XG5cbiAgICB0aGlzLmFzc2V0c0tleVByZWZpeCA9IGFzc2V0c0tleVByZWZpeDtcbiAgICB0aGlzLmFzc2V0c01hbmlmZXN0S2V5ID0gYXNzZXRzTWFuaWZlc3RLZXk7XG5cbiAgICBpZiAocHJvcHMuYXNzZXRzUGF0aCkge1xuICAgICAgbmV3IHMzZGVwbG95LkJ1Y2tldERlcGxveW1lbnQodGhpcywgXCJBc3NldHNEZXBsb3ltZW50XCIsIHtcbiAgICAgICAgc291cmNlczogW3MzZGVwbG95LlNvdXJjZS5hc3NldChwcm9wcy5hc3NldHNQYXRoKV0sXG4gICAgICAgIGRlc3RpbmF0aW9uQnVja2V0OiB0aGlzLmFzc2V0c0J1Y2tldCxcbiAgICAgICAgZGVzdGluYXRpb25LZXlQcmVmaXg6IGFzc2V0c0tleVByZWZpeCxcbiAgICAgICAgcHJ1bmU6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnNzclVybCA9IG5ldyBsYW1iZGEuRnVuY3Rpb25VcmwodGhpcywgXCJTc3JVcmxcIiwge1xuICAgICAgZnVuY3Rpb246IHByb3BzLnNzckZ1bmN0aW9uLFxuICAgICAgYXV0aFR5cGU6IGxhbWJkYS5GdW5jdGlvblVybEF1dGhUeXBlLk5PTkUsXG4gICAgICBpbnZva2VNb2RlOiBwcm9wcy5pbnZva2VNb2RlID8/IGxhbWJkYS5JbnZva2VNb2RlLlJFU1BPTlNFX1NUUkVBTSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHNzckRvbWFpbk5hbWUgPSBGbi5zZWxlY3QoMiwgRm4uc3BsaXQoXCIvXCIsIHRoaXMuc3NyVXJsLnVybCkpO1xuICAgIGNvbnN0IHNzck9yaWdpbiA9IG5ldyBvcmlnaW5zLkh0dHBPcmlnaW4oc3NyRG9tYWluTmFtZSwge1xuICAgICAgcHJvdG9jb2xQb2xpY3k6IGNsb3VkZnJvbnQuT3JpZ2luUHJvdG9jb2xQb2xpY3kuSFRUUFNfT05MWSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFzc2V0c09yaWdpbiA9IG9yaWdpbnMuUzNCdWNrZXRPcmlnaW4ud2l0aE9yaWdpbkFjY2Vzc0NvbnRyb2wodGhpcy5hc3NldHNCdWNrZXQpO1xuXG4gICAgY29uc3QgYmFzZVNzckZvcndhcmRIZWFkZXJzID0gW1xuICAgICAgXCJhY2NlcHRcIixcbiAgICAgIFwiYWNjZXB0LWxhbmd1YWdlXCIsXG4gICAgICBcImNhY2hlLWNvbnRyb2xcIixcbiAgICAgIFwiaG9zdFwiLFxuICAgICAgXCJpZi1ub25lLW1hdGNoXCIsXG4gICAgICBcInVzZXItYWdlbnRcIixcbiAgICAgIFwieC1mb3J3YXJkZWQtZm9yXCIsXG4gICAgICBcIngtZm9yd2FyZGVkLXByb3RvXCIsXG4gICAgICBcImNsb3VkZnJvbnQtZm9yd2FyZGVkLXByb3RvXCIsXG4gICAgICBcImNsb3VkZnJvbnQtdmlld2VyLWFkZHJlc3NcIixcbiAgICBdO1xuXG4gICAgY29uc3QgZXh0cmFTc3JGb3J3YXJkSGVhZGVycyA9IEFycmF5LmlzQXJyYXkocHJvcHMuc3NyRm9yd2FyZEhlYWRlcnMpXG4gICAgICA/IHByb3BzLnNzckZvcndhcmRIZWFkZXJzXG4gICAgICAgICAgLm1hcCgoaGVhZGVyKSA9PiBTdHJpbmcoaGVhZGVyKS50cmltKCkudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAuZmlsdGVyKChoZWFkZXIpID0+IGhlYWRlci5sZW5ndGggPiAwKVxuICAgICAgOiBbXTtcblxuICAgIGNvbnN0IHNzckZvcndhcmRIZWFkZXJzID0gQXJyYXkuZnJvbShuZXcgU2V0KFsuLi5iYXNlU3NyRm9yd2FyZEhlYWRlcnMsIC4uLmV4dHJhU3NyRm9yd2FyZEhlYWRlcnNdKSk7XG5cbiAgICBjb25zdCBzc3JPcmlnaW5SZXF1ZXN0UG9saWN5ID0gbmV3IGNsb3VkZnJvbnQuT3JpZ2luUmVxdWVzdFBvbGljeSh0aGlzLCBcIlNzck9yaWdpblJlcXVlc3RQb2xpY3lcIiwge1xuICAgICAgcXVlcnlTdHJpbmdCZWhhdmlvcjogY2xvdWRmcm9udC5PcmlnaW5SZXF1ZXN0UXVlcnlTdHJpbmdCZWhhdmlvci5hbGwoKSxcbiAgICAgIGNvb2tpZUJlaGF2aW9yOiBjbG91ZGZyb250Lk9yaWdpblJlcXVlc3RDb29raWVCZWhhdmlvci5hbGwoKSxcbiAgICAgIGhlYWRlckJlaGF2aW9yOiBjbG91ZGZyb250Lk9yaWdpblJlcXVlc3RIZWFkZXJCZWhhdmlvci5hbGxvd0xpc3QoLi4uc3NyRm9yd2FyZEhlYWRlcnMpLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZG9tYWluTmFtZSA9IFN0cmluZyhwcm9wcy5kb21haW5OYW1lID8/IFwiXCIpLnRyaW0oKTtcblxuICAgIGxldCBkaXN0cmlidXRpb25DZXJ0aWZpY2F0ZTogYWNtLklDZXJ0aWZpY2F0ZSB8IHVuZGVmaW5lZDtcbiAgICBsZXQgZGlzdHJpYnV0aW9uRG9tYWluTmFtZXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKGRvbWFpbk5hbWUpIHtcbiAgICAgIGRpc3RyaWJ1dGlvbkRvbWFpbk5hbWVzID0gW2RvbWFpbk5hbWVdO1xuICAgICAgY29uc3QgY2VydEFybiA9IFN0cmluZyhwcm9wcy5jZXJ0aWZpY2F0ZUFybiA/PyBcIlwiKS50cmltKCk7XG4gICAgICBpZiAoY2VydEFybikge1xuICAgICAgICBkaXN0cmlidXRpb25DZXJ0aWZpY2F0ZSA9IGFjbS5DZXJ0aWZpY2F0ZS5mcm9tQ2VydGlmaWNhdGVBcm4odGhpcywgXCJDZXJ0aWZpY2F0ZVwiLCBjZXJ0QXJuKTtcbiAgICAgIH0gZWxzZSBpZiAocHJvcHMuaG9zdGVkWm9uZSkge1xuICAgICAgICBkaXN0cmlidXRpb25DZXJ0aWZpY2F0ZSA9IG5ldyBhY20uRG5zVmFsaWRhdGVkQ2VydGlmaWNhdGUodGhpcywgXCJDZXJ0aWZpY2F0ZVwiLCB7XG4gICAgICAgICAgZG9tYWluTmFtZSxcbiAgICAgICAgICBob3N0ZWRab25lOiBwcm9wcy5ob3N0ZWRab25lLFxuICAgICAgICAgIHJlZ2lvbjogXCJ1cy1lYXN0LTFcIixcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcHBUaGVvcnlTc3JTaXRlIHJlcXVpcmVzIHByb3BzLmNlcnRpZmljYXRlQXJuIG9yIHByb3BzLmhvc3RlZFpvbmUgd2hlbiBwcm9wcy5kb21haW5OYW1lIGlzIHNldFwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNlcnRpZmljYXRlID0gZGlzdHJpYnV0aW9uQ2VydGlmaWNhdGU7XG5cbiAgICBjb25zdCBjcmVhdGVTdGF0aWNCZWhhdmlvciA9ICgpOiBjbG91ZGZyb250LkJlaGF2aW9yT3B0aW9ucyA9PiAoe1xuICAgICAgb3JpZ2luOiBhc3NldHNPcmlnaW4sXG4gICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogY2xvdWRmcm9udC5WaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgIGFsbG93ZWRNZXRob2RzOiBjbG91ZGZyb250LkFsbG93ZWRNZXRob2RzLkFMTE9XX0dFVF9IRUFEX09QVElPTlMsXG4gICAgICBjYWNoZVBvbGljeTogY2xvdWRmcm9udC5DYWNoZVBvbGljeS5DQUNISU5HX09QVElNSVpFRCxcbiAgICAgIGNvbXByZXNzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3RhdGljUGF0aFBhdHRlcm5zID0gQXJyYXkuZnJvbShcbiAgICAgIG5ldyBTZXQoXG4gICAgICAgIEFycmF5LmlzQXJyYXkocHJvcHMuc3RhdGljUGF0aFBhdHRlcm5zKVxuICAgICAgICAgID8gcHJvcHMuc3RhdGljUGF0aFBhdHRlcm5zXG4gICAgICAgICAgICAgIC5tYXAoKHBhdHRlcm4pID0+IFN0cmluZyhwYXR0ZXJuKS50cmltKCkucmVwbGFjZSgvXlxcLysvLCBcIlwiKSlcbiAgICAgICAgICAgICAgLmZpbHRlcigocGF0dGVybikgPT4gcGF0dGVybi5sZW5ndGggPiAwKVxuICAgICAgICAgIDogW10sXG4gICAgICApLFxuICAgICk7XG5cbiAgICBjb25zdCBhZGRpdGlvbmFsQmVoYXZpb3JzOiBSZWNvcmQ8c3RyaW5nLCBjbG91ZGZyb250LkJlaGF2aW9yT3B0aW9ucz4gPSB7XG4gICAgICBbYCR7YXNzZXRzS2V5UHJlZml4fS8qYF06IGNyZWF0ZVN0YXRpY0JlaGF2aW9yKCksXG4gICAgfTtcblxuICAgIGZvciAoY29uc3QgcGF0dGVybiBvZiBzdGF0aWNQYXRoUGF0dGVybnMpIHtcbiAgICAgIGFkZGl0aW9uYWxCZWhhdmlvcnNbcGF0dGVybl0gPSBjcmVhdGVTdGF0aWNCZWhhdmlvcigpO1xuICAgIH1cblxuICAgIHRoaXMuZGlzdHJpYnV0aW9uID0gbmV3IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uKHRoaXMsIFwiRGlzdHJpYnV0aW9uXCIsIHtcbiAgICAgIC4uLihlbmFibGVMb2dnaW5nICYmIHRoaXMubG9nc0J1Y2tldFxuICAgICAgICA/IHsgZW5hYmxlTG9nZ2luZzogdHJ1ZSwgbG9nQnVja2V0OiB0aGlzLmxvZ3NCdWNrZXQsIGxvZ0ZpbGVQcmVmaXg6IFwiY2xvdWRmcm9udC9cIiB9XG4gICAgICAgIDoge30pLFxuICAgICAgLi4uKGRpc3RyaWJ1dGlvbkRvbWFpbk5hbWVzICYmIGRpc3RyaWJ1dGlvbkNlcnRpZmljYXRlXG4gICAgICAgID8geyBkb21haW5OYW1lczogZGlzdHJpYnV0aW9uRG9tYWluTmFtZXMsIGNlcnRpZmljYXRlOiBkaXN0cmlidXRpb25DZXJ0aWZpY2F0ZSB9XG4gICAgICAgIDoge30pLFxuICAgICAgZGVmYXVsdEJlaGF2aW9yOiB7XG4gICAgICAgIG9yaWdpbjogc3NyT3JpZ2luLFxuICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogY2xvdWRmcm9udC5WaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgICAgYWxsb3dlZE1ldGhvZHM6IGNsb3VkZnJvbnQuQWxsb3dlZE1ldGhvZHMuQUxMT1dfQUxMLFxuICAgICAgICBjYWNoZVBvbGljeTogY2xvdWRmcm9udC5DYWNoZVBvbGljeS5DQUNISU5HX0RJU0FCTEVELFxuICAgICAgICBvcmlnaW5SZXF1ZXN0UG9saWN5OiBzc3JPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgfSxcbiAgICAgIGFkZGl0aW9uYWxCZWhhdmlvcnMsXG4gICAgICAuLi4ocHJvcHMud2ViQWNsSWQgPyB7IHdlYkFjbElkOiBwcm9wcy53ZWJBY2xJZCB9IDoge30pLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLndpcmVSdW50aW1lRW52ID8/IHRydWUpIHtcbiAgICAgIHRoaXMuYXNzZXRzQnVja2V0LmdyYW50UmVhZChwcm9wcy5zc3JGdW5jdGlvbik7XG5cbiAgICAgIGNvbnN0IHNzckZ1bmN0aW9uQW55ID0gcHJvcHMuc3NyRnVuY3Rpb24gYXMgYW55O1xuICAgICAgaWYgKHR5cGVvZiBzc3JGdW5jdGlvbkFueS5hZGRFbnZpcm9ubWVudCAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBcIkFwcFRoZW9yeVNzclNpdGUgd2lyZVJ1bnRpbWVFbnYgcmVxdWlyZXMgcHJvcHMuc3NyRnVuY3Rpb24gdG8gc3VwcG9ydCBhZGRFbnZpcm9ubWVudDsgcGFzcyBhIGxhbWJkYS5GdW5jdGlvbiBvciBzZXQgd2lyZVJ1bnRpbWVFbnY9ZmFsc2UgYW5kIHNldCBlbnYgdmFycyBtYW51YWxseVwiLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBzc3JGdW5jdGlvbkFueS5hZGRFbnZpcm9ubWVudChcIkFQUFRIRU9SWV9BU1NFVFNfQlVDS0VUXCIsIHRoaXMuYXNzZXRzQnVja2V0LmJ1Y2tldE5hbWUpO1xuICAgICAgc3NyRnVuY3Rpb25BbnkuYWRkRW52aXJvbm1lbnQoXCJBUFBUSEVPUllfQVNTRVRTX1BSRUZJWFwiLCBhc3NldHNLZXlQcmVmaXgpO1xuICAgICAgc3NyRnVuY3Rpb25BbnkuYWRkRW52aXJvbm1lbnQoXCJBUFBUSEVPUllfQVNTRVRTX01BTklGRVNUX0tFWVwiLCBhc3NldHNNYW5pZmVzdEtleSk7XG5cbiAgICAgIGNvbnN0IGNhY2hlVGFibGVOYW1lID0gU3RyaW5nKHByb3BzLmNhY2hlVGFibGVOYW1lID8/IFwiXCIpLnRyaW0oKTtcbiAgICAgIGlmIChjYWNoZVRhYmxlTmFtZSkge1xuICAgICAgICBzc3JGdW5jdGlvbkFueS5hZGRFbnZpcm9ubWVudChcIkFQUFRIRU9SWV9DQUNIRV9UQUJMRV9OQU1FXCIsIGNhY2hlVGFibGVOYW1lKTtcbiAgICAgICAgc3NyRnVuY3Rpb25BbnkuYWRkRW52aXJvbm1lbnQoXCJGQUNFVEhFT1JZX0NBQ0hFX1RBQkxFX05BTUVcIiwgY2FjaGVUYWJsZU5hbWUpO1xuICAgICAgICBzc3JGdW5jdGlvbkFueS5hZGRFbnZpcm9ubWVudChcIkNBQ0hFX1RBQkxFX05BTUVcIiwgY2FjaGVUYWJsZU5hbWUpO1xuICAgICAgICBzc3JGdW5jdGlvbkFueS5hZGRFbnZpcm9ubWVudChcIkNBQ0hFX1RBQkxFXCIsIGNhY2hlVGFibGVOYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZG9tYWluTmFtZSAmJiBwcm9wcy5ob3N0ZWRab25lKSB7XG4gICAgICBuZXcgcm91dGU1My5BUmVjb3JkKHRoaXMsIFwiQWxpYXNSZWNvcmRcIiwge1xuICAgICAgICB6b25lOiBwcm9wcy5ob3N0ZWRab25lLFxuICAgICAgICByZWNvcmROYW1lOiBkb21haW5OYW1lLFxuICAgICAgICB0YXJnZXQ6IHJvdXRlNTMuUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhuZXcgdGFyZ2V0cy5DbG91ZEZyb250VGFyZ2V0KHRoaXMuZGlzdHJpYnV0aW9uKSksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/cdk/lib/websocket-api.js b/cdk/lib/websocket-api.js index f2a49dd3..e5f44259 100644 --- a/cdk/lib/websocket-api.js +++ b/cdk/lib/websocket-api.js @@ -113,5 +113,5 @@ class AppTheoryWebSocketApi extends constructs_1.Construct { } exports.AppTheoryWebSocketApi = AppTheoryWebSocketApi; _a = JSII_RTTI_SYMBOL_1; -AppTheoryWebSocketApi[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryWebSocketApi", version: "0.18.0-rc" }; +AppTheoryWebSocketApi[_a] = { fqn: "@theory-cloud/apptheory-cdk.AppTheoryWebSocketApi", version: "0.18.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndlYnNvY2tldC1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBNEM7QUFDNUMseURBQXlEO0FBQ3pELHdEQUF3RDtBQUN4RCxpRkFBaUY7QUFDakYscURBQXFEO0FBQ3JELDJDQUEyQztBQUUzQyw2Q0FBNkM7QUFDN0MsMkNBQXVDO0FBMEJ2QyxNQUFhLHFCQUFzQixTQUFRLHNCQUFTO0lBTWxELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLENBQUM7UUFDbkUsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQzdELE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDbkUsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRTdELElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7WUFDL0MsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1NBQ3ZCLENBQUMsQ0FBQztRQUVILE1BQU0sd0JBQXdCLEdBQzVCLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckcsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1lBQzdCLE1BQU0sa0JBQWtCLEdB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QztZQUNoRyxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs7QUFqSUgsc0RBa0lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgYXBpZ2F0ZXdheSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXlcIjtcbmltcG9ydCAqIGFzIGFwaWd3djIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5djJcIjtcbmltcG9ydCAqIGFzIGFwaWd3djJJbnRlZ3JhdGlvbnMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5djItaW50ZWdyYXRpb25zXCI7XG5pbXBvcnQgKiBhcyBkeW5hbW9kYiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB0eXBlICogYXMgbGFtYmRhIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBcHBUaGVvcnlXZWJTb2NrZXRBcGlQcm9wcyB7XG4gIHJlYWRvbmx5IGhhbmRsZXI6IGxhbWJkYS5JRnVuY3Rpb247XG4gIHJlYWRvbmx5IGNvbm5lY3RIYW5kbGVyPzogbGFtYmRhLklGdW5jdGlvbjtcbiAgcmVhZG9ubHkgZGlzY29ubmVjdEhhbmRsZXI/OiBsYW1iZGEuSUZ1bmN0aW9uO1xuICByZWFkb25seSBkZWZhdWx0SGFuZGxlcj86IGxhbWJkYS5JRnVuY3Rpb247XG4gIHJlYWRvbmx5IGFwaU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN0YWdlTmFtZT86IHN0cmluZztcblxuICByZWFkb25seSBjb25uZWN0aW9uVGFibGU/OiBkeW5hbW9kYi5JVGFibGU7XG4gIHJlYWRvbmx5IGVuYWJsZUNvbm5lY3Rpb25UYWJsZT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25UYWJsZU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25UYWJsZVBhcnRpdGlvbktleU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25UYWJsZVNvcnRLZXlOYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBjb25uZWN0aW9uVGFibGVUaW1lVG9MaXZlQXR0cmlidXRlPzogc3RyaW5nO1xuICByZWFkb25seSBjb25uZWN0aW9uVGFibGVSZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcbiAgcmVhZG9ubHkgY29ubmVjdGlvblRhYmxlRW5hYmxlUG9pbnRJblRpbWVSZWNvdmVyeT86IGJvb2xlYW47XG5cbiAgcmVhZG9ubHkgZW5hYmxlQWNjZXNzTG9nZ2luZz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGFjY2Vzc0xvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG4gIHJlYWRvbmx5IGFjY2Vzc0xvZ1JldGVudGlvbj86IGxvZ3MuUmV0ZW50aW9uRGF5cztcbiAgcmVhZG9ubHkgYWNjZXNzTG9nUmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG4gIHJlYWRvbmx5IGFjY2Vzc0xvZ0Zvcm1hdD86IGFwaWdhdGV3YXkuQWNjZXNzTG9nRm9ybWF0O1xufVxuXG5leHBvcnQgY2xhc3MgQXBwVGhlb3J5V2ViU29ja2V0QXBpIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGFwaTogYXBpZ3d2Mi5XZWJTb2NrZXRBcGk7XG4gIHB1YmxpYyByZWFkb25seSBzdGFnZTogYXBpZ3d2Mi5XZWJTb2NrZXRTdGFnZTtcbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25UYWJsZT86IGR5bmFtb2RiLklUYWJsZTtcbiAgcHVibGljIHJlYWRvbmx5IGFjY2Vzc0xvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFwcFRoZW9yeVdlYlNvY2tldEFwaVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHN0YWdlTmFtZSA9IFN0cmluZyhwcm9wcy5zdGFnZU5hbWUgPz8gXCJkZXZcIikudHJpbSgpIHx8IFwiZGV2XCI7XG4gICAgY29uc3QgY29ubmVjdEhhbmRsZXIgPSBwcm9wcy5jb25uZWN0SGFuZGxlciA/PyBwcm9wcy5oYW5kbGVyO1xuICAgIGNvbnN0IGRpc2Nvbm5lY3RIYW5kbGVyID0gcHJvcHMuZGlzY29ubmVjdEhhbmRsZXIgPz8gcHJvcHMuaGFuZGxlcjtcbiAgICBjb25zdCBkZWZhdWx0SGFuZGxlciA9IHByb3BzLmRlZmF1bHRIYW5kbGVyID8/IHByb3BzLmhhbmRsZXI7XG5cbiAgICB0aGlzLmFwaSA9IG5ldyBhcGlnd3YyLldlYlNvY2tldEFwaSh0aGlzLCBcIkFwaVwiLCB7XG4gICAgICBhcGlOYW1lOiBwcm9wcy5hcGlOYW1lLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdXNlUm91dGVTcGVjaWZpY0hhbmRsZXJzID1cbiAgICAgIEJvb2xlYW4ocHJvcHMuY29ubmVjdEhhbmRsZXIpIHx8IEJvb2xlYW4ocHJvcHMuZGlzY29ubmVjdEhhbmRsZXIpIHx8IEJvb2xlYW4ocHJvcHMuZGVmYXVsdEhhbmRsZXIpO1xuICAgIGlmICh1c2VSb3V0ZVNwZWNpZmljSGFuZGxlcnMpIHtcbiAgICAgIGNvbnN0IGNvbm5lY3RJbnRlZ3JhdGlvbiA9IG5ldyBhcGlnd3YySW50ZWdyYXRpb25zLldlYlNvY2tldExhbWJkYUludGVncmF0aW9uKFwiQ29ubmVjdEhhbmRsZXJcIiwgY29ubmVjdEhhbmRsZXIpO1xuICAgICAgY29uc3QgZGlzY29ubmVjdEludGVncmF0aW9uID0gbmV3IGFwaWd3djJJbnRlZ3JhdGlvbnMuV2ViU29ja2V0TGFtYmRhSW50ZWdyYXRpb24oXG4gICAgICAgIFwiRGlzY29ubmVjdEhhbmRsZXJcIixcbiAgICAgICAgZGlzY29ubmVjdEhhbmRsZXIsXG4gICAgICApO1xuICAgICAgY29uc3QgZGVmYXVsdEludGVncmF0aW9uID0gbmV3IGFwaWd3djJJbnRlZ3JhdGlvbnMuV2ViU29ja2V0TGFtYmRhSW50ZWdyYXRpb24oXCJEZWZhdWx0SGFuZGxlclwiLCBkZWZhdWx0SGFuZGxlcik7XG5cbiAgICAgIHRoaXMuYXBpLmFkZFJvdXRlKFwiJGNvbm5lY3RcIiwgeyBpbnRlZ3JhdGlvbjogY29ubmVjdEludGVncmF0aW9uIH0pO1xuICAgICAgdGhpcy5hcGkuYWRkUm91dGUoXCIkZGlzY29ubmVjdFwiLCB7IGludGVncmF0aW9uOiBkaXNjb25uZWN0SW50ZWdyYXRpb24gfSk7XG4gICAgICB0aGlzLmFwaS5hZGRSb3V0ZShcIiRkZWZhdWx0XCIsIHsgaW50ZWdyYXRpb246IGRlZmF1bHRJbnRlZ3JhdGlvbiB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW50ZWdyYXRpb24gPSBuZXcgYXBpZ3d2MkludGVncmF0aW9ucy5XZWJTb2NrZXRMYW1iZGFJbnRlZ3JhdGlvbihcIkhhbmRsZXJcIiwgcHJvcHMuaGFuZGxlcik7XG5cbiAgICAgIHRoaXMuYXBpLmFkZFJvdXRlKFwiJGNvbm5lY3RcIiwgeyBpbnRlZ3JhdGlvbiB9KTtcbiAgICAgIHRoaXMuYXBpLmFkZFJvdXRlKFwiJGRpc2Nvbm5lY3RcIiwgeyBpbnRlZ3JhdGlvbiB9KTtcbiAgICAgIHRoaXMuYXBpLmFkZFJvdXRlKFwiJGRlZmF1bHRcIiwgeyBpbnRlZ3JhdGlvbiB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBzaG91bGRDcmVhdGVDb25uZWN0aW9uVGFibGUgPVxuICAgICAgKHByb3BzLmVuYWJsZUNvbm5lY3Rpb25UYWJsZSA/PyBmYWxzZSkgfHwgQm9vbGVhbihwcm9wcy5jb25uZWN0aW9uVGFibGVOYW1lKTtcbiAgICBpZiAocHJvcHMuY29ubmVjdGlvblRhYmxlICYmIHNob3VsZENyZWF0ZUNvbm5lY3Rpb25UYWJsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkFwcFRoZW9yeVdlYlNvY2tldEFwaSBzdXBwb3J0cyBlaXRoZXIgcHJvcHMuY29ubmVjdGlvblRhYmxlIG9yIHByb3BzLmVuYWJsZUNvbm5lY3Rpb25UYWJsZS9wcm9wcy5jb25uZWN0aW9uVGFibGVOYW1lXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5jb25uZWN0aW9uVGFibGUpIHtcbiAgICAgIHRoaXMuY29ubmVjdGlvblRhYmxlID0gcHJvcHMuY29ubmVjdGlvblRhYmxlO1xuICAgIH0gZWxzZSBpZiAoc2hvdWxkQ3JlYXRlQ29ubmVjdGlvblRhYmxlKSB7XG4gICAgICBjb25zdCBwa05hbWUgPSBwcm9wcy5jb25uZWN0aW9uVGFibGVQYXJ0aXRpb25LZXlOYW1lID8/IFwiUEtcIjtcbiAgICAgIGNvbnN0IHNrTmFtZSA9IHByb3BzLmNvbm5lY3Rpb25UYWJsZVNvcnRLZXlOYW1lID8/IFwiU0tcIjtcbiAgICAgIGNvbnN0IHR0bEF0dHJpYnV0ZSA9IHByb3BzLmNvbm5lY3Rpb25UYWJsZVRpbWVUb0xpdmVBdHRyaWJ1dGUgPz8gXCJ0dGxcIjtcbiAgICAgIGNvbnN0IHJlbW92YWxQb2xpY3kgPSBwcm9wcy5jb25uZWN0aW9uVGFibGVSZW1vdmFsUG9saWN5ID8/IFJlbW92YWxQb2xpY3kuUkVUQUlOO1xuICAgICAgY29uc3QgZW5hYmxlUElUUiA9IHByb3BzLmNvbm5lY3Rpb25UYWJsZUVuYWJsZVBvaW50SW5UaW1lUmVjb3ZlcnkgPz8gdHJ1ZTtcblxuICAgICAgdGhpcy5jb25uZWN0aW9uVGFibGUgPSBuZXcgZHluYW1vZGIuVGFibGUodGhpcywgXCJDb25uZWN0aW9uVGFibGVcIiwge1xuICAgICAgICB0YWJsZU5hbWU6IHByb3BzLmNvbm5lY3Rpb25UYWJsZU5hbWUsXG4gICAgICAgIGJpbGxpbmdNb2RlOiBkeW5hbW9kYi5CaWxsaW5nTW9kZS5QQVlfUEVSX1JFUVVFU1QsXG4gICAgICAgIHBhcnRpdGlvbktleTogeyBuYW1lOiBwa05hbWUsIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HIH0sXG4gICAgICAgIHNvcnRLZXk6IHsgbmFtZTogc2tOYW1lLCB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyB9LFxuICAgICAgICB0aW1lVG9MaXZlQXR0cmlidXRlOiB0dGxBdHRyaWJ1dGUsXG4gICAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgICAgIHBvaW50SW5UaW1lUmVjb3Zlcnk6IGVuYWJsZVBJVFIsXG4gICAgICAgIGVuY3J5cHRpb246IGR5bmFtb2RiLlRhYmxlRW5jcnlwdGlvbi5BV1NfTUFOQUdFRCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbm5lY3Rpb25UYWJsZSkge1xuICAgICAgY29uc3QgaGFuZGxlcnMgPSBuZXcgU2V0PGxhbWJkYS5JRnVuY3Rpb24+KFtjb25uZWN0SGFuZGxlciwgZGlzY29ubmVjdEhhbmRsZXIsIGRlZmF1bHRIYW5kbGVyXSk7XG4gICAgICBmb3IgKGNvbnN0IGhhbmRsZXIgb2YgaGFuZGxlcnMpIHtcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uVGFibGUuZ3JhbnRSZWFkV3JpdGVEYXRhKGhhbmRsZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBhY2Nlc3NMb2dTZXR0aW5nczogYXBpZ3d2Mi5JQWNjZXNzTG9nU2V0dGluZ3MgfCB1bmRlZmluZWQ7XG4gICAgaWYgKHByb3BzLmVuYWJsZUFjY2Vzc0xvZ2dpbmcgPz8gZmFsc2UpIHtcbiAgICAgIGNvbnN0IGxvZ0dyb3VwID1cbiAgICAgICAgcHJvcHMuYWNjZXNzTG9nR3JvdXAgPz9cbiAgICAgICAgbmV3IGxvZ3MuTG9nR3JvdXAodGhpcywgXCJBY2Nlc3NMb2dzXCIsIHtcbiAgICAgICAgICByZXRlbnRpb246IHByb3BzLmFjY2Vzc0xvZ1JldGVudGlvbiA/PyBsb2dzLlJldGVudGlvbkRheXMuT05FX1dFRUssXG4gICAgICAgICAgcmVtb3ZhbFBvbGljeTogcHJvcHMuYWNjZXNzTG9nUmVtb3ZhbFBvbGljeSA/PyBSZW1vdmFsUG9saWN5LlJFVEFJTixcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFjY2Vzc0xvZ0dyb3VwID0gbG9nR3JvdXA7XG5cbiAgICAgIGxvZ0dyb3VwLmFkZFRvUmVzb3VyY2VQb2xpY3koXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiYXBpZ2F0ZXdheS5hbWF6b25hd3MuY29tXCIpXSxcbiAgICAgICAgICBhY3Rpb25zOiBbXCJsb2dzOkNyZWF0ZUxvZ1N0cmVhbVwiLCBcImxvZ3M6RGVzY3JpYmVMb2dTdHJlYW1zXCIsIFwibG9nczpQdXRMb2dFdmVudHNcIl0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbbG9nR3JvdXAubG9nR3JvdXBBcm5dLFxuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGZvcm1hdCA9XG4gICAgICAgIHByb3BzLmFjY2Vzc0xvZ0Zvcm1hdCA/P1xuICAgICAgICBhcGlnYXRld2F5LkFjY2Vzc0xvZ0Zvcm1hdC5jdXN0b20oXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgcmVxdWVzdElkOiBhcGlnYXRld2F5LkFjY2Vzc0xvZ0ZpZWxkLmNvbnRleHRSZXF1ZXN0SWQoKSxcbiAgICAgICAgICAgIGV2ZW50VHlwZTogYXBpZ2F0ZXdheS5BY2Nlc3NMb2dGaWVsZC5jb250ZXh0RXZlbnRUeXBlKCksXG4gICAgICAgICAgICByb3V0ZUtleTogYXBpZ2F0ZXdheS5BY2Nlc3NMb2dGaWVsZC5jb250ZXh0Um91dGVLZXkoKSxcbiAgICAgICAgICAgIGNvbm5lY3Rpb25JZDogYXBpZ2F0ZXdheS5BY2Nlc3NMb2dGaWVsZC5jb250ZXh0Q29ubmVjdGlvbklkKCksXG4gICAgICAgICAgICBzdGF0dXM6IGFwaWdhdGV3YXkuQWNjZXNzTG9nRmllbGQuY29udGV4dFN0YXR1cygpLFxuICAgICAgICAgICAgcmVzcG9uc2VMZW5ndGg6IGFwaWdhdGV3YXkuQWNjZXNzTG9nRmllbGQuY29udGV4dFJlc3BvbnNlTGVuZ3RoKCksXG4gICAgICAgICAgICBpbnRlZ3JhdGlvbkxhdGVuY3k6IGFwaWdhdGV3YXkuQWNjZXNzTG9nRmllbGQuY29udGV4dEludGVncmF0aW9uTGF0ZW5jeSgpLFxuICAgICAgICAgICAgcmVxdWVzdFRpbWU6IGFwaWdhdGV3YXkuQWNjZXNzTG9nRmllbGQuY29udGV4dFJlcXVlc3RUaW1lKCksXG4gICAgICAgICAgICBpcDogYXBpZ2F0ZXdheS5BY2Nlc3NMb2dGaWVsZC5jb250ZXh0SWRlbnRpdHlTb3VyY2VJcCgpLFxuICAgICAgICAgICAgdXNlckFnZW50OiBhcGlnYXRld2F5LkFjY2Vzc0xvZ0ZpZWxkLmNvbnRleHRJZGVudGl0eVVzZXJBZ2VudCgpLFxuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuXG4gICAgICBhY2Nlc3NMb2dTZXR0aW5ncyA9IHtcbiAgICAgICAgZGVzdGluYXRpb246IG5ldyBhcGlnd3YyLkxvZ0dyb3VwTG9nRGVzdGluYXRpb24obG9nR3JvdXApLFxuICAgICAgICBmb3JtYXQsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuc3RhZ2UgPSBuZXcgYXBpZ3d2Mi5XZWJTb2NrZXRTdGFnZSh0aGlzLCBcIlN0YWdlXCIsIHtcbiAgICAgIHdlYlNvY2tldEFwaTogdGhpcy5hcGksXG4gICAgICBzdGFnZU5hbWUsXG4gICAgICBhdXRvRGVwbG95OiB0cnVlLFxuICAgICAgYWNjZXNzTG9nU2V0dGluZ3MsXG4gICAgfSk7XG5cbiAgICB7XG4gICAgICBjb25zdCBoYW5kbGVycyA9IG5ldyBTZXQ8bGFtYmRhLklGdW5jdGlvbj4oW2Nvbm5lY3RIYW5kbGVyLCBkaXNjb25uZWN0SGFuZGxlciwgZGVmYXVsdEhhbmRsZXJdKTtcbiAgICAgIGZvciAoY29uc3QgaGFuZGxlciBvZiBoYW5kbGVycykge1xuICAgICAgICB0aGlzLnN0YWdlLmdyYW50TWFuYWdlbWVudEFwaUFjY2VzcyhoYW5kbGVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/cdk/package-lock.json b/cdk/package-lock.json index 0750c707..819aa665 100644 --- a/cdk/package-lock.json +++ b/cdk/package-lock.json @@ -9,19 +9,19 @@ "version": "0.18.2", "license": "Apache-2.0", "devDependencies": { - "@types/node": "25.2.3", - "aws-cdk-lib": "file:../third_party/aws-cdk-lib-2.240.0+minimatch-10.2.4.tgz", - "constructs": "10.5.1", - "jsii": "5.9.23", - "jsii-pacmak": "1.125.0", + "@types/node": "25.5.0", + "aws-cdk-lib": "file:../third_party/aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz", + "constructs": "10.6.0", + "jsii": "5.9.34", + "jsii-pacmak": "1.127.0", "typescript": "5.9.3" }, "engines": { "node": ">=24" }, "peerDependencies": { - "aws-cdk-lib": "2.240.0", - "constructs": "10.5.1" + "aws-cdk-lib": "2.244.0", + "constructs": "10.6.0" } }, "node_modules/@aws-cdk/asset-awscli-v1": { @@ -32,23 +32,22 @@ "license": "Apache-2.0" }, "node_modules/@aws-cdk/asset-node-proxy-agent-v6": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.1.0.tgz", - "integrity": "sha512-7bY3J8GCVxLupn/kNmpPc5VJz8grx+4RKfnnJiO1LG+uxkZfANZG3RMHhE+qQxxwkyQ9/MfPtTpf748UhR425A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.1.1.tgz", + "integrity": "sha512-We4bmHaowOPHr+IQR4/FyTGjRfjgBj4ICMjtqmJeBDWad3Q/6St12NT07leNtyuukv2qMhtSZJQorD8KpKTwRA==", "dev": true, "license": "Apache-2.0" }, "node_modules/@aws-cdk/cloud-assembly-schema": { - "version": "50.4.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-50.4.0.tgz", - "integrity": "sha512-9Cplwc5C+SNe3hMfqZET7gXeM68tiH2ytQytCi+zz31Bn7O3GAgAnC2dYe+HWnZAgVH788ZkkBwnYXkeqx7v4g==", + "version": "52.2.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-52.2.0.tgz", + "integrity": "sha512-ourZjixQ/UfsZc7gdk3vt1eHBODMUjQTYYYCY3ZX8fiXyHtWNDAYZPrXUK96jpCC2fLP+tfHTJrBjZ563pmcEw==", "bundleDependencies": [ "jsonschema", "semver" ], "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "jsonschema": "~1.4.1", "semver": "^7.7.3" @@ -79,28 +78,25 @@ } }, "node_modules/@jsii/check-node": { - "version": "1.125.0", - "resolved": "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.125.0.tgz", - "integrity": "sha512-vhFFXFiq2JPE7KoUC54/VsASiuWMu0+rS3BExteIZ3zGu8TdcSLh9aHbfYbww5MjpDTWxxW8TgXumgFTSlyT0Q==", + "version": "1.127.0", + "resolved": "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.127.0.tgz", + "integrity": "sha512-IYkLRond94RmaeP40LiFLM4JTxnVING3qWVndOpjhK5nPydDPBp865GW6gUQT724a6zhZww/2E1uw3c3b/i12A==", "dev": true, "license": "Apache-2.0", "dependencies": { "chalk": "^4.1.2", - "semver": "^7.7.2" + "semver": "^7.7.4" }, "engines": { "node": ">= 14.17.0" } }, "node_modules/@jsii/spec": { - "version": "1.125.0", - "resolved": "https://registry.npmjs.org/@jsii/spec/-/spec-1.125.0.tgz", - "integrity": "sha512-FneFGrzBMAUjLM1Z4LY3VuWhUrBWUgfrPYLsjnC11HwcMgE1LvVi26QIuTKvV0KWCStIJu4N2TkOEc82b0hbUQ==", + "version": "1.127.0", + "resolved": "https://registry.npmjs.org/@jsii/spec/-/spec-1.127.0.tgz", + "integrity": "sha512-LJiQLjlyQuMx1KyoKDdU9SlxNe/3xnllPSTlb6alPL84aYAcrGQX82XX7v554AudesIZHp5p5u0bupTK+v3QWA==", "dev": true, "license": "Apache-2.0", - "dependencies": { - "ajv": "^8.17.1" - }, "engines": { "node": ">= 14.17.0" } @@ -111,6 +107,7 @@ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -125,6 +122,7 @@ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 8" } @@ -135,6 +133,7 @@ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -144,13 +143,13 @@ } }, "node_modules/@types/node": { - "version": "25.2.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.2.3.tgz", - "integrity": "sha512-m0jEgYlYz+mDJZ2+F4v8D1AyQb+QzsNqRuI7xg1VQX/KlKS0qT9r1Mo16yo5F/MtifXFgaofIFsdFMox2SxIbQ==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", + "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.16.0" + "undici-types": "~7.18.0" } }, "node_modules/@xmldom/xmldom": { @@ -159,27 +158,11 @@ "integrity": "sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=14.6" } }, - "node_modules/ajv": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", - "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -207,9 +190,9 @@ } }, "node_modules/aws-cdk-lib": { - "version": "2.240.0", - "resolved": "file:../third_party/aws-cdk-lib-2.240.0+minimatch-10.2.4.tgz", - "integrity": "sha512-7rhcf4AIun6HcF/uDzMZ8gECEBVwbbrhI9HF+xLylwl/LZ/hxpE32l5NUB1HSYMMRVTnh0DlJY2JMs4I1OBDpw==", + "version": "2.244.0", + "resolved": "file:../third_party/aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz", + "integrity": "sha512-v/sIShiiSsN6GcBB3ucxMG7xupiedFkHuG1j/Tbj60+WBTZ5o+XFBTX5qjSbaDmkFEGImtE6WpjMq73Mo+mGnw==", "bundleDependencies": [ "@balena/dockerignore", "@aws-cdk/cloud-assembly-api", @@ -228,30 +211,30 @@ "license": "Apache-2.0", "dependencies": { "@aws-cdk/asset-awscli-v1": "2.2.263", - "@aws-cdk/asset-node-proxy-agent-v6": "^2.1.0", - "@aws-cdk/cloud-assembly-api": "^2.0.1", - "@aws-cdk/cloud-assembly-schema": "^50.3.0", + "@aws-cdk/asset-node-proxy-agent-v6": "^2.1.1", + "@aws-cdk/cloud-assembly-api": "^2.1.1", + "@aws-cdk/cloud-assembly-schema": "^52.1.0", "@balena/dockerignore": "^1.0.2", "case": "1.6.3", "fs-extra": "^11.3.3", "ignore": "^5.3.2", "jsonschema": "^1.5.0", "mime-types": "^2.1.35", - "minimatch": "^10.2.1", + "minimatch": "^10.2.3", "punycode": "^2.3.1", "semver": "^7.7.4", "table": "^6.9.0", "yaml": "1.10.2" }, "engines": { - "node": ">= 18.0.0" + "node": ">= 20.0.0" }, "peerDependencies": { "constructs": "^10.5.0" } }, "node_modules/aws-cdk-lib/node_modules/@aws-cdk/cloud-assembly-api": { - "version": "2.0.1", + "version": "2.1.1", "bundleDependencies": [ "jsonschema", "semver" @@ -267,7 +250,7 @@ "node": ">= 18.0.0" }, "peerDependencies": { - "@aws-cdk/cloud-assembly-schema": ">=50.3.0" + "@aws-cdk/cloud-assembly-schema": ">=52.1.0" } }, "node_modules/aws-cdk-lib/node_modules/@aws-cdk/cloud-assembly-api/node_modules/jsonschema": { @@ -642,6 +625,7 @@ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fill-range": "^7.1.1" }, @@ -715,9 +699,9 @@ } }, "node_modules/codemaker": { - "version": "1.125.0", - "resolved": "https://registry.npmjs.org/codemaker/-/codemaker-1.125.0.tgz", - "integrity": "sha512-SmWZmRLE/Awxb/F99yd3VwJPomOMLFS+1CAJ8rKYZUORQQL5esqsAmQs7KxhrU6Wt1Tr2Cf7MAFPNDJbUd9SYg==", + "version": "1.127.0", + "resolved": "https://registry.npmjs.org/codemaker/-/codemaker-1.127.0.tgz", + "integrity": "sha512-iX64GnNH86f88aRj/McYBSNRKT+bn21Okng0v/aGI/G66uOx7bKAf5bhGiqSaip7s5OcXfvjyJ6iA0VhLL4bSg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -768,12 +752,11 @@ } }, "node_modules/constructs": { - "version": "10.5.1", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.5.1.tgz", - "integrity": "sha512-f/TfFXiS3G/yVIXDjOQn9oTlyu9Wo7Fxyjj7lb8r92iO81jR2uST+9MstxZTmDGx/CgIbxCXkFXgupnLTNxQZg==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.6.0.tgz", + "integrity": "sha512-TxHOnBO5zMo/G76ykzGF/wMpEHu257TbWiIxP9K0Yv/+t70UzgBQiTqjkAsWOPC6jW91DzJI0+ehQV6xDRNBuQ==", "dev": true, - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/date-format": { "version": "4.0.14", @@ -892,6 +875,7 @@ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -903,29 +887,13 @@ "node": ">=8.6.0" } }, - "node_modules/fast-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, "node_modules/fastq": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "reusify": "^1.0.4" } @@ -936,6 +904,7 @@ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -981,6 +950,7 @@ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -1011,6 +981,7 @@ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -1031,6 +1002,7 @@ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -1044,24 +1016,25 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.12.0" } }, "node_modules/jsii": { - "version": "5.9.23", - "resolved": "https://registry.npmjs.org/jsii/-/jsii-5.9.23.tgz", - "integrity": "sha512-bIPRjOVyBRFl3cmx0kcnTqt3abMazlQvpq67Oix9Ku0jpICaXQv0OJoL/qaUkSl8QXgalUzNOUuxMBjZi680Yw==", + "version": "5.9.34", + "resolved": "https://registry.npmjs.org/jsii/-/jsii-5.9.34.tgz", + "integrity": "sha512-g9yzIKZRc7fOMMhmY5v9Xkf7JgYOjAZhNbdt+Px6cTVpz5NvQta5b/GmrTCvRRDedMgsAWpG/ZcNZILTp4YVQw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jsii/check-node": "1.125.0", - "@jsii/spec": "1.125.0", + "@jsii/check-node": "1.127.0", + "@jsii/spec": "1.127.0", "case": "^1.6.3", "chalk": "^4", "fast-deep-equal": "^3.1.3", "log4js": "^6.9.1", - "semver": "^7.7.3", + "semver": "^7.7.4", "semver-intersect": "^1.5.0", "sort-json": "^2.0.1", "spdx-license-list": "^6.11.0", @@ -1076,22 +1049,22 @@ } }, "node_modules/jsii-pacmak": { - "version": "1.125.0", - "resolved": "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.125.0.tgz", - "integrity": "sha512-VItspZZSZb0/h/iFM5pMVujDTKrnL8e5QMgKBymc3O+VMrUwhr95YiadjMvb5z7O2Wkit2th9RoAeWI+eJpbGw==", + "version": "1.127.0", + "resolved": "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.127.0.tgz", + "integrity": "sha512-AexTwVNVsYMcVk+jmudJ/uArnoTIkUuM/kJuISTlhcrbodSglWGiR15GV0CATMdh1T9qqW3Xc9iIoYAW7r1iyA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jsii/check-node": "1.125.0", - "@jsii/spec": "1.125.0", + "@jsii/check-node": "1.127.0", + "@jsii/spec": "1.127.0", "clone": "^2.1.2", - "codemaker": "^1.125.0", + "codemaker": "^1.127.0", "commonmark": "^0.31.2", "escape-string-regexp": "^4.0.0", "fs-extra": "^10.1.0", - "jsii-reflect": "^1.125.0", - "semver": "^7.7.2", - "spdx-license-list": "^6.10.0", + "jsii-reflect": "^1.127.0", + "semver": "^7.7.4", + "spdx-license-list": "^6.11.0", "xmlbuilder": "^15.1.1", "yargs": "^17.7.2" }, @@ -1102,21 +1075,21 @@ "node": ">= 14.17.0" }, "peerDependencies": { - "jsii-rosetta": ">=5.7.0" + "jsii-rosetta": ">=5.9.0" } }, "node_modules/jsii-reflect": { - "version": "1.125.0", - "resolved": "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.125.0.tgz", - "integrity": "sha512-GV8w5oCFB8xWqpri3QM2F1DuEj22ookGzUvGqnB4TNuPSveWsdwZXu9VFnRoDETjnUXkUYEk7hK1cpfp9te6Bg==", + "version": "1.127.0", + "resolved": "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.127.0.tgz", + "integrity": "sha512-yvNj1kfxXMnZykixalACgp8o8t9s2ZbTwo1uzsmWfPJP7OY3AyShF7q21m0499mXHXS5bS9YNKsQYYtBKi23zQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jsii/check-node": "1.125.0", - "@jsii/spec": "1.125.0", + "@jsii/check-node": "1.127.0", + "@jsii/spec": "1.127.0", "chalk": "^4", "fs-extra": "^10.1.0", - "oo-ascii-tree": "^1.125.0", + "oo-ascii-tree": "^1.127.0", "yargs": "^17.7.2" }, "bin": { @@ -1156,13 +1129,6 @@ "node": ">= 18.12.0" } }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" - }, "node_modules/jsonfile": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", @@ -1206,6 +1172,7 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 8" } @@ -1216,6 +1183,7 @@ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -1242,9 +1210,9 @@ "license": "MIT" }, "node_modules/oo-ascii-tree": { - "version": "1.125.0", - "resolved": "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.125.0.tgz", - "integrity": "sha512-wrCjLv3vuGFx1nhLJsP8N8Ejvgr9ImBiRmQiP55msGP1xqU8SU7LOG57SgAtOLjFHnFZTXaUBaxbxK+MSONodg==", + "version": "1.127.0", + "resolved": "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.127.0.tgz", + "integrity": "sha512-VaWD3Ivu8CccVuv7oVcNdWEwSbFyDAPnHT0Ki2j32sjzAZjhSfFRYNGr3xvggcag1GUvdmwoxsLwM4OhAtS7LA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1257,6 +1225,7 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8.6" }, @@ -1283,7 +1252,8 @@ "url": "https://feross.org/support" } ], - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/require-directory": { "version": "2.1.1", @@ -1295,22 +1265,13 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -1343,14 +1304,15 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -1413,7 +1375,8 @@ "resolved": "https://registry.npmjs.org/stream-chain/-/stream-chain-2.2.5.tgz", "integrity": "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==", "dev": true, - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/stream-json": { "version": "1.9.1", @@ -1421,6 +1384,7 @@ "integrity": "sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "stream-chain": "^2.2.5" } @@ -1522,6 +1486,7 @@ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "is-number": "^7.0.0" }, @@ -1544,9 +1509,9 @@ } }, "node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", "dev": true, "license": "MIT" }, @@ -1565,7 +1530,8 @@ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", "dev": true, - "license": "Apache-2.0" + "license": "Apache-2.0", + "peer": true }, "node_modules/wrap-ansi": { "version": "7.0.0", diff --git a/cdk/package.json b/cdk/package.json index 04159785..aa355612 100644 --- a/cdk/package.json +++ b/cdk/package.json @@ -23,17 +23,16 @@ "pretest": "npm run build", "test": "node --test test/*.test.cjs" }, - "dependencies": {}, "peerDependencies": { - "aws-cdk-lib": "2.240.0", - "constructs": "10.5.1" + "aws-cdk-lib": "2.244.0", + "constructs": "10.6.0" }, "devDependencies": { - "@types/node": "25.2.3", - "aws-cdk-lib": "file:../third_party/aws-cdk-lib-2.240.0+minimatch-10.2.4.tgz", - "constructs": "10.5.1", - "jsii": "5.9.23", - "jsii-pacmak": "1.125.0", + "@types/node": "25.5.0", + "aws-cdk-lib": "file:../third_party/aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz", + "constructs": "10.6.0", + "jsii": "5.9.34", + "jsii-pacmak": "1.127.0", "typescript": "5.9.3" }, "overrides": { diff --git a/cdk/test/constructs.test.cjs b/cdk/test/constructs.test.cjs index 57d8ff42..ea4cd3a4 100644 --- a/cdk/test/constructs.test.cjs +++ b/cdk/test/constructs.test.cjs @@ -129,6 +129,78 @@ test("AppTheoryHttpApi synthesizes expected template", () => { } }); +test("AppTheoryHttpIngestionEndpoint synthesizes expected template", () => { + const app = new cdk.App(); + const stack = new cdk.Stack(app, "TestStack"); + + const handler = new lambda.Function(stack, "Handler", { + runtime: lambda.Runtime.NODEJS_24_X, + handler: "index.handler", + code: lambda.Code.fromInline("exports.handler = async () => ({ statusCode: 202, body: 'accepted' });"), + }); + const authorizer = new lambda.Function(stack, "AuthorizerFn", { + runtime: lambda.Runtime.NODEJS_24_X, + handler: "index.handler", + code: lambda.Code.fromInline("exports.handler = async () => ({ isAuthorized: true });"), + }); + + new apptheory.AppTheoryHttpIngestionEndpoint(stack, "Endpoint", { + handler, + authorizer, + apiName: "apptheory-ingestion", + endpointPath: "/evidence", + stage: { + stageName: "prod", + accessLogging: true, + throttlingRateLimit: 50, + throttlingBurstLimit: 100, + }, + }); + + const template = assertions.Template.fromStack(stack).toJSON(); + if (process.env.UPDATE_SNAPSHOTS === "1") { + writeSnapshot("http-ingestion-endpoint", template); + } else { + expectSnapshot("http-ingestion-endpoint", template); + } +}); + +test("AppTheoryHttpIngestionEndpoint fails closed on invalid props", () => { + const app = new cdk.App(); + const stack = new cdk.Stack(app, "TestStack"); + + const handler = new lambda.Function(stack, "Handler", { + runtime: lambda.Runtime.NODEJS_24_X, + handler: "index.handler", + code: lambda.Code.fromInline("exports.handler = async () => ({ statusCode: 202, body: 'accepted' });"), + }); + const authorizer = new lambda.Function(stack, "AuthorizerFn", { + runtime: lambda.Runtime.NODEJS_24_X, + handler: "index.handler", + code: lambda.Code.fromInline("exports.handler = async () => ({ isAuthorized: true });"), + }); + + assert.throws( + () => + new apptheory.AppTheoryHttpIngestionEndpoint(stack, "MissingPath", { + handler, + authorizer, + endpointPath: " ", + }), + /endpointPath is required/, + ); + + assert.throws( + () => + new apptheory.AppTheoryHttpIngestionEndpoint(stack, "MissingHeader", { + handler, + authorizer, + authorizerHeaderName: " ", + }), + /authorizerHeaderName is required/, + ); +}); + test("AppTheoryWebSocketApi synthesizes expected template", () => { const app = new cdk.App(); const stack = new cdk.Stack(app, "TestStack"); @@ -403,6 +475,45 @@ test("AppTheoryEventBridgeHandler synthesizes expected template", () => { } }); +test("AppTheoryEventBridgeBus synthesizes expected template", () => { + const app = new cdk.App(); + const stack = new cdk.Stack(app, "TestStack"); + + new apptheory.AppTheoryEventBridgeBus(stack, "Bus", { + eventBusName: "apptheory-compliance", + description: "Compliance advisor relay bus", + allowedAccountIds: ["111111111111", "222222222222"], + }); + + const template = assertions.Template.fromStack(stack).toJSON(); + if (process.env.UPDATE_SNAPSHOTS === "1") { + writeSnapshot("eventbridge-bus", template); + } else { + expectSnapshot("eventbridge-bus", template); + } +}); + +test("AppTheoryEventBridgeBus fails closed on invalid allowlist entries", () => { + const app = new cdk.App(); + const stack = new cdk.Stack(app, "TestStack"); + + assert.throws( + () => + new apptheory.AppTheoryEventBridgeBus(stack, "InvalidBus", { + allowedAccountIds: ["not-an-account"], + }), + /12-digit AWS account IDs/, + ); + + assert.throws( + () => + new apptheory.AppTheoryEventBridgeBus(stack, "DuplicateBus", { + allowedAccountIds: ["111111111111", "111111111111"], + }), + /duplicate allowed account ID/, + ); +}); + test("AppTheoryEventBridgeRuleTarget (schedule) synthesizes expected template", () => { const app = new cdk.App(); const stack = new cdk.Stack(app, "TestStack"); @@ -481,6 +592,40 @@ test("AppTheoryEventBridgeRuleTarget (eventBus + eventPattern) synthesizes expec } }); +test("AppTheoryEventBridgeRuleTarget (compliance beacon relay bus) synthesizes expected template", () => { + const app = new cdk.App(); + const stack = new cdk.Stack(app, "TestStack"); + + const fn = new lambda.Function(stack, "Fn", { + runtime: lambda.Runtime.NODEJS_24_X, + handler: "index.handler", + code: lambda.Code.fromInline("exports.handler = async () => ({ statusCode: 200, body: 'ok' });"), + }); + + const relayBus = new apptheory.AppTheoryEventBridgeBus(stack, "RelayBus", { + eventBusName: "compliance-advisor-relay", + allowedAccountIds: ["111111111111"], + }); + + new apptheory.AppTheoryEventBridgeRuleTarget(stack, "RuleTarget", { + handler: fn, + eventBus: relayBus.eventBus, + ruleName: "compliance-beacon-ingress", + description: "Route compliance beacon relay events to ingestion", + eventPattern: { + source: ["pay-theory.compliance-beacon"], + detailType: ["compliance.beacon.submitted"], + }, + }); + + const template = assertions.Template.fromStack(stack).toJSON(); + if (process.env.UPDATE_SNAPSHOTS === "1") { + writeSnapshot("eventbridge-rule-target-compliance-beacon", template); + } else { + expectSnapshot("eventbridge-rule-target-compliance-beacon", template); + } +}); + test("AppTheoryEventBridgeRuleTarget fails closed on invalid props", () => { const app = new cdk.App(); const stack = new cdk.Stack(app, "TestStack"); @@ -753,6 +898,39 @@ test("AppTheoryEventBusTable synthesizes expected template", () => { } }); +test("AppTheoryEventBusTable bind wires env vars and grants", () => { + const app = new cdk.App(); + const stack = new cdk.Stack(app, "TestStack"); + + const ingestionFn = new lambda.Function(stack, "IngestionFn", { + runtime: lambda.Runtime.NODEJS_24_X, + handler: "index.handler", + code: lambda.Code.fromInline("exports.handler = async () => ({ statusCode: 200, body: 'ok' });"), + }); + const replayFn = new lambda.Function(stack, "ReplayFn", { + runtime: lambda.Runtime.NODEJS_24_X, + handler: "index.handler", + code: lambda.Code.fromInline("exports.handler = async () => ({ statusCode: 200, body: 'ok' });"), + }); + + const table = new apptheory.AppTheoryEventBusTable(stack, "Events", { + tableName: "apptheory-events", + }); + + table.bind(ingestionFn); + table.bind(replayFn, { + readOnly: true, + envVarName: "COMPLIANCE_REPLAY_TABLE", + }); + + const template = assertions.Template.fromStack(stack).toJSON(); + if (process.env.UPDATE_SNAPSHOTS === "1") { + writeSnapshot("eventbus-table-binding", template); + } else { + expectSnapshot("eventbus-table-binding", template); + } +}); + test("AppTheoryDynamoTable synthesizes expected template", () => { const app = new cdk.App(); const stack = new cdk.Stack(app, "TestStack"); diff --git a/cdk/test/snapshots/app.json b/cdk/test/snapshots/app.json index a3ca6c4b..c9c919af 100644 --- a/cdk/test/snapshots/app.json +++ b/cdk/test/snapshots/app.json @@ -355,12 +355,14 @@ "dynamodb:DescribeTable" ], "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "AppDatabaseFE436DA6", - "Arn" - ] - } + "Resource": [ + { + "Fn::GetAtt": [ + "AppDatabaseFE436DA6", + "Arn" + ] + } + ] }, { "Action": [ @@ -368,12 +370,14 @@ "dynamodb:GetShardIterator" ], "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "AppDatabaseFE436DA6", - "Arn" - ] - } + "Resource": [ + { + "Fn::GetAtt": [ + "AppDatabaseFE436DA6", + "Arn" + ] + } + ] }, { "Action": [ @@ -389,12 +393,14 @@ "dynamodb:DescribeTable" ], "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "AppRateLimitTable811D78F6", - "Arn" - ] - } + "Resource": [ + { + "Fn::GetAtt": [ + "AppRateLimitTable811D78F6", + "Arn" + ] + } + ] }, { "Action": [ @@ -402,12 +408,14 @@ "dynamodb:GetShardIterator" ], "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "AppRateLimitTable811D78F6", - "Arn" - ] - } + "Resource": [ + { + "Fn::GetAtt": [ + "AppRateLimitTable811D78F6", + "Arn" + ] + } + ] } ], "Version": "2012-10-17" diff --git a/cdk/test/snapshots/eventbridge-bus.json b/cdk/test/snapshots/eventbridge-bus.json new file mode 100644 index 00000000..14ecd491 --- /dev/null +++ b/cdk/test/snapshots/eventbridge-bus.json @@ -0,0 +1,89 @@ +{ + "Parameters": { + "BootstrapVersion": { + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", + "Type": "AWS::SSM::Parameter::Value" + } + }, + "Resources": { + "Bus95A03305": { + "Properties": { + "Description": "Compliance advisor relay bus", + "Name": "apptheory-compliance" + }, + "Type": "AWS::Events::EventBus" + }, + "BusAllowAccount13C41CE0A": { + "Properties": { + "EventBusName": { + "Ref": "Bus95A03305" + }, + "Statement": { + "Action": "events:PutEvents", + "Effect": "Allow", + "Principal": { + "AWS": "111111111111" + }, + "Resource": { + "Fn::GetAtt": [ + "Bus95A03305", + "Arn" + ] + } + }, + "StatementId": "AllowPutEvents1" + }, + "Type": "AWS::Events::EventBusPolicy" + }, + "BusAllowAccount25D6025C7": { + "Properties": { + "EventBusName": { + "Ref": "Bus95A03305" + }, + "Statement": { + "Action": "events:PutEvents", + "Effect": "Allow", + "Principal": { + "AWS": "222222222222" + }, + "Resource": { + "Fn::GetAtt": [ + "Bus95A03305", + "Arn" + ] + } + }, + "StatementId": "AllowPutEvents2" + }, + "Type": "AWS::Events::EventBusPolicy" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} diff --git a/cdk/test/snapshots/eventbridge-rule-target-compliance-beacon.json b/cdk/test/snapshots/eventbridge-rule-target-compliance-beacon.json new file mode 100644 index 00000000..b721fab8 --- /dev/null +++ b/cdk/test/snapshots/eventbridge-rule-target-compliance-beacon.json @@ -0,0 +1,165 @@ +{ + "Parameters": { + "BootstrapVersion": { + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", + "Type": "AWS::SSM::Parameter::Value" + } + }, + "Resources": { + "Fn9270CBC0": { + "DependsOn": [ + "FnServiceRoleB9001A96" + ], + "Properties": { + "Code": { + "ZipFile": "exports.handler = async () => ({ statusCode: 200, body: 'ok' });" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "FnServiceRoleB9001A96", + "Arn" + ] + }, + "Runtime": "nodejs24.x" + }, + "Type": "AWS::Lambda::Function" + }, + "FnServiceRoleB9001A96": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "RelayBusAllowAccount142D03F60": { + "Properties": { + "EventBusName": { + "Ref": "RelayBusEF5DF001" + }, + "Statement": { + "Action": "events:PutEvents", + "Effect": "Allow", + "Principal": { + "AWS": "111111111111" + }, + "Resource": { + "Fn::GetAtt": [ + "RelayBusEF5DF001", + "Arn" + ] + } + }, + "StatementId": "AllowPutEvents1" + }, + "Type": "AWS::Events::EventBusPolicy" + }, + "RelayBusEF5DF001": { + "Properties": { + "Name": "compliance-advisor-relay" + }, + "Type": "AWS::Events::EventBus" + }, + "RuleTargetRule43C26B44": { + "Properties": { + "Description": "Route compliance beacon relay events to ingestion", + "EventBusName": { + "Ref": "RelayBusEF5DF001" + }, + "EventPattern": { + "detail-type": [ + "compliance.beacon.submitted" + ], + "source": [ + "pay-theory.compliance-beacon" + ] + }, + "Name": "compliance-beacon-ingress", + "State": "ENABLED", + "Targets": [ + { + "Arn": { + "Fn::GetAtt": [ + "Fn9270CBC0", + "Arn" + ] + }, + "Id": "Target0" + } + ] + }, + "Type": "AWS::Events::Rule" + }, + "RuleTargetRuleAllowEventRuleTestStackFnDC3B58FB94DEC4AD": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "Fn9270CBC0", + "Arn" + ] + }, + "Principal": "events.amazonaws.com", + "SourceArn": { + "Fn::GetAtt": [ + "RuleTargetRule43C26B44", + "Arn" + ] + } + }, + "Type": "AWS::Lambda::Permission" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} diff --git a/cdk/test/snapshots/eventbus-table-binding.json b/cdk/test/snapshots/eventbus-table-binding.json new file mode 100644 index 00000000..f20018d1 --- /dev/null +++ b/cdk/test/snapshots/eventbus-table-binding.json @@ -0,0 +1,395 @@ +{ + "Parameters": { + "BootstrapVersion": { + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", + "Type": "AWS::SSM::Parameter::Value" + } + }, + "Resources": { + "EventsTable4B7491D3": { + "DeletionPolicy": "Retain", + "Properties": { + "AttributeDefinitions": [ + { + "AttributeName": "pk", + "AttributeType": "S" + }, + { + "AttributeName": "sk", + "AttributeType": "S" + }, + { + "AttributeName": "id", + "AttributeType": "S" + }, + { + "AttributeName": "tenant_id", + "AttributeType": "S" + }, + { + "AttributeName": "published_at", + "AttributeType": "S" + } + ], + "BillingMode": "PAY_PER_REQUEST", + "GlobalSecondaryIndexes": [ + { + "IndexName": "event-id-index", + "KeySchema": [ + { + "AttributeName": "id", + "KeyType": "HASH" + } + ], + "Projection": { + "ProjectionType": "ALL" + } + }, + { + "IndexName": "tenant-timestamp-index", + "KeySchema": [ + { + "AttributeName": "tenant_id", + "KeyType": "HASH" + }, + { + "AttributeName": "published_at", + "KeyType": "RANGE" + } + ], + "Projection": { + "ProjectionType": "ALL" + } + } + ], + "KeySchema": [ + { + "AttributeName": "pk", + "KeyType": "HASH" + }, + { + "AttributeName": "sk", + "KeyType": "RANGE" + } + ], + "PointInTimeRecoverySpecification": { + "PointInTimeRecoveryEnabled": true + }, + "SSESpecification": { + "SSEEnabled": true + }, + "TableName": "apptheory-events", + "TimeToLiveSpecification": { + "AttributeName": "ttl", + "Enabled": true + } + }, + "Type": "AWS::DynamoDB::Table", + "UpdateReplacePolicy": "Retain" + }, + "IngestionFn233E043F": { + "DependsOn": [ + "IngestionFnServiceRoleDefaultPolicyB1D824B3", + "IngestionFnServiceRole74590F09" + ], + "Properties": { + "Code": { + "ZipFile": "exports.handler = async () => ({ statusCode: 200, body: 'ok' });" + }, + "Environment": { + "Variables": { + "APPTHEORY_EVENTBUS_TABLE_NAME": { + "Ref": "EventsTable4B7491D3" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "IngestionFnServiceRole74590F09", + "Arn" + ] + }, + "Runtime": "nodejs24.x" + }, + "Type": "AWS::Lambda::Function" + }, + "IngestionFnServiceRole74590F09": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "IngestionFnServiceRoleDefaultPolicyB1D824B3": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:BatchGetItem", + "dynamodb:Query", + "dynamodb:GetItem", + "dynamodb:Scan", + "dynamodb:ConditionCheckItem", + "dynamodb:BatchWriteItem", + "dynamodb:PutItem", + "dynamodb:UpdateItem", + "dynamodb:DeleteItem", + "dynamodb:DescribeTable" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "EventsTable4B7491D3", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "EventsTable4B7491D3", + "Arn" + ] + }, + "/index/*" + ] + ] + } + ] + }, + { + "Action": [ + "dynamodb:GetRecords", + "dynamodb:GetShardIterator" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "EventsTable4B7491D3", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "EventsTable4B7491D3", + "Arn" + ] + }, + "/index/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "IngestionFnServiceRoleDefaultPolicyB1D824B3", + "Roles": [ + { + "Ref": "IngestionFnServiceRole74590F09" + } + ] + }, + "Type": "AWS::IAM::Policy" + }, + "ReplayFn6908A346": { + "DependsOn": [ + "ReplayFnServiceRoleDefaultPolicy62253CCD", + "ReplayFnServiceRoleE37F6C22" + ], + "Properties": { + "Code": { + "ZipFile": "exports.handler = async () => ({ statusCode: 200, body: 'ok' });" + }, + "Environment": { + "Variables": { + "COMPLIANCE_REPLAY_TABLE": { + "Ref": "EventsTable4B7491D3" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "ReplayFnServiceRoleE37F6C22", + "Arn" + ] + }, + "Runtime": "nodejs24.x" + }, + "Type": "AWS::Lambda::Function" + }, + "ReplayFnServiceRoleDefaultPolicy62253CCD": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:BatchGetItem", + "dynamodb:Query", + "dynamodb:GetItem", + "dynamodb:Scan", + "dynamodb:ConditionCheckItem", + "dynamodb:DescribeTable" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "EventsTable4B7491D3", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "EventsTable4B7491D3", + "Arn" + ] + }, + "/index/*" + ] + ] + } + ] + }, + { + "Action": [ + "dynamodb:GetRecords", + "dynamodb:GetShardIterator" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "EventsTable4B7491D3", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "EventsTable4B7491D3", + "Arn" + ] + }, + "/index/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "ReplayFnServiceRoleDefaultPolicy62253CCD", + "Roles": [ + { + "Ref": "ReplayFnServiceRoleE37F6C22" + } + ] + }, + "Type": "AWS::IAM::Policy" + }, + "ReplayFnServiceRoleE37F6C22": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + }, + "Type": "AWS::IAM::Role" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} diff --git a/cdk/test/snapshots/http-ingestion-endpoint.json b/cdk/test/snapshots/http-ingestion-endpoint.json new file mode 100644 index 00000000..468147b8 --- /dev/null +++ b/cdk/test/snapshots/http-ingestion-endpoint.json @@ -0,0 +1,332 @@ +{ + "Parameters": { + "BootstrapVersion": { + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", + "Type": "AWS::SSM::Parameter::Value" + } + }, + "Resources": { + "AuthorizerFn97B9AA7C": { + "DependsOn": [ + "AuthorizerFnServiceRole91AE9242" + ], + "Properties": { + "Code": { + "ZipFile": "exports.handler = async () => ({ isAuthorized: true });" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "AuthorizerFnServiceRole91AE9242", + "Arn" + ] + }, + "Runtime": "nodejs24.x" + }, + "Type": "AWS::Lambda::Function" + }, + "AuthorizerFnServiceRole91AE9242": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "EndpointAccessLogs0AEE2901": { + "DeletionPolicy": "Retain", + "Properties": { + "RetentionInDays": 30 + }, + "Type": "AWS::Logs::LogGroup", + "UpdateReplacePolicy": "Retain" + }, + "EndpointApiAuthorizer8704F79D": { + "Properties": { + "ApiId": { + "Ref": "EndpointApiB7AE4D04" + }, + "AuthorizerPayloadFormatVersion": "2.0", + "AuthorizerResultTtlInSeconds": 0, + "AuthorizerType": "REQUEST", + "AuthorizerUri": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":apigateway:", + { + "Ref": "AWS::Region" + }, + ":lambda:path/2015-03-31/functions/", + { + "Fn::GetAtt": [ + "AuthorizerFn97B9AA7C", + "Arn" + ] + }, + "/invocations" + ] + ] + }, + "EnableSimpleResponses": true, + "IdentitySource": [ + "$request.header.Authorization" + ], + "Name": "Authorizer" + }, + "Type": "AWS::ApiGatewayV2::Authorizer" + }, + "EndpointApiB7AE4D04": { + "Properties": { + "Name": "apptheory-ingestion", + "ProtocolType": "HTTP" + }, + "Type": "AWS::ApiGatewayV2::Api" + }, + "EndpointApiPOSTevidence37F5A8CF": { + "Properties": { + "ApiId": { + "Ref": "EndpointApiB7AE4D04" + }, + "AuthorizationType": "CUSTOM", + "AuthorizerId": { + "Ref": "EndpointApiAuthorizer8704F79D" + }, + "RouteKey": "POST /evidence", + "Target": { + "Fn::Join": [ + "", + [ + "integrations/", + { + "Ref": "EndpointApiPOSTevidenceIngestionHandlerE5FAC3ED" + } + ] + ] + } + }, + "Type": "AWS::ApiGatewayV2::Route" + }, + "EndpointApiPOSTevidenceIngestionHandlerE5FAC3ED": { + "Properties": { + "ApiId": { + "Ref": "EndpointApiB7AE4D04" + }, + "IntegrationType": "AWS_PROXY", + "IntegrationUri": { + "Fn::GetAtt": [ + "Handler886CB40B", + "Arn" + ] + }, + "PayloadFormatVersion": "2.0" + }, + "Type": "AWS::ApiGatewayV2::Integration" + }, + "EndpointApiPOSTevidenceIngestionHandlerPermissionEC213A56": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "Handler886CB40B", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":execute-api:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":", + { + "Ref": "EndpointApiB7AE4D04" + }, + "/*/*/evidence" + ] + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "EndpointApiTestStackEndpointApiAuthorizerB594F8C6Permission5651FF44": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "AuthorizerFn97B9AA7C", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":execute-api:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":", + { + "Ref": "EndpointApiB7AE4D04" + }, + "/authorizers/", + { + "Ref": "EndpointApiAuthorizer8704F79D" + } + ] + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "EndpointStage78C1013F": { + "Properties": { + "AccessLogSettings": { + "DestinationArn": { + "Fn::GetAtt": [ + "EndpointAccessLogs0AEE2901", + "Arn" + ] + }, + "Format": "{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"routeKey\":\"$context.routeKey\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\",\"integrationLatency\":\"$context.integrationLatency\"}" + }, + "ApiId": { + "Ref": "EndpointApiB7AE4D04" + }, + "AutoDeploy": true, + "DefaultRouteSettings": { + "ThrottlingBurstLimit": 100, + "ThrottlingRateLimit": 50 + }, + "StageName": "prod" + }, + "Type": "AWS::ApiGatewayV2::Stage" + }, + "Handler886CB40B": { + "DependsOn": [ + "HandlerServiceRoleFCDC14AE" + ], + "Properties": { + "Code": { + "ZipFile": "exports.handler = async () => ({ statusCode: 202, body: 'accepted' });" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "HandlerServiceRoleFCDC14AE", + "Arn" + ] + }, + "Runtime": "nodejs24.x" + }, + "Type": "AWS::Lambda::Function" + }, + "HandlerServiceRoleFCDC14AE": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + }, + "Type": "AWS::IAM::Role" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} diff --git a/cdk/test/snapshots/mcp-server-session-table.json b/cdk/test/snapshots/mcp-server-session-table.json index 49d7b5e0..3e536c67 100644 --- a/cdk/test/snapshots/mcp-server-session-table.json +++ b/cdk/test/snapshots/mcp-server-session-table.json @@ -98,12 +98,14 @@ "dynamodb:DescribeTable" ], "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "McpServerSessionTable469EA0FB", - "Arn" - ] - } + "Resource": [ + { + "Fn::GetAtt": [ + "McpServerSessionTable469EA0FB", + "Arn" + ] + } + ] }, { "Action": [ @@ -111,12 +113,14 @@ "dynamodb:GetShardIterator" ], "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "McpServerSessionTable469EA0FB", - "Arn" - ] - } + "Resource": [ + { + "Fn::GetAtt": [ + "McpServerSessionTable469EA0FB", + "Arn" + ] + } + ] } ], "Version": "2012-10-17" diff --git a/cdk/test/snapshots/remote-mcp-server-tables.json b/cdk/test/snapshots/remote-mcp-server-tables.json index 64de2960..ad3f2be5 100644 --- a/cdk/test/snapshots/remote-mcp-server-tables.json +++ b/cdk/test/snapshots/remote-mcp-server-tables.json @@ -136,12 +136,14 @@ "dynamodb:DescribeTable" ], "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "RemoteMcpSessionTable949CA67A", - "Arn" - ] - } + "Resource": [ + { + "Fn::GetAtt": [ + "RemoteMcpSessionTable949CA67A", + "Arn" + ] + } + ] }, { "Action": [ @@ -149,12 +151,14 @@ "dynamodb:GetShardIterator" ], "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "RemoteMcpSessionTable949CA67A", - "Arn" - ] - } + "Resource": [ + { + "Fn::GetAtt": [ + "RemoteMcpSessionTable949CA67A", + "Arn" + ] + } + ] }, { "Action": [ @@ -170,12 +174,14 @@ "dynamodb:DescribeTable" ], "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "RemoteMcpStreamTable14FCF20C", - "Arn" - ] - } + "Resource": [ + { + "Fn::GetAtt": [ + "RemoteMcpStreamTable14FCF20C", + "Arn" + ] + } + ] }, { "Action": [ @@ -183,12 +189,14 @@ "dynamodb:GetShardIterator" ], "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "RemoteMcpStreamTable14FCF20C", - "Arn" - ] - } + "Resource": [ + { + "Fn::GetAtt": [ + "RemoteMcpStreamTable14FCF20C", + "Arn" + ] + } + ] } ], "Version": "2012-10-17" diff --git a/cdk/test/snapshots/websocket-api-parity.json b/cdk/test/snapshots/websocket-api-parity.json index c46dcc84..5e075a22 100644 --- a/cdk/test/snapshots/websocket-api-parity.json +++ b/cdk/test/snapshots/websocket-api-parity.json @@ -76,12 +76,14 @@ "dynamodb:DescribeTable" ], "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "WebSocketApiConnectionTable25CA1A9B", - "Arn" - ] - } + "Resource": [ + { + "Fn::GetAtt": [ + "WebSocketApiConnectionTable25CA1A9B", + "Arn" + ] + } + ] }, { "Action": [ @@ -89,12 +91,14 @@ "dynamodb:GetShardIterator" ], "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "WebSocketApiConnectionTable25CA1A9B", - "Arn" - ] - } + "Resource": [ + { + "Fn::GetAtt": [ + "WebSocketApiConnectionTable25CA1A9B", + "Arn" + ] + } + ] }, { "Action": "execute-api:ManageConnections", diff --git a/docs/cdk/README.md b/docs/cdk/README.md index cfdb76ba..4fa27308 100644 --- a/docs/cdk/README.md +++ b/docs/cdk/README.md @@ -23,5 +23,6 @@ These pages cover the canonical user-facing CDK patterns for: - response streaming and SSE - MCP and OAuth discovery endpoints - import-pipeline infrastructure primitives +- EventBridge bus and rule-target transport primitives Package-local authoring docs may still exist outside `docs/cdk/`, but canonical external guidance lives here. diff --git a/docs/cdk/api-reference.md b/docs/cdk/api-reference.md index e5c74c43..64fd81ff 100644 --- a/docs/cdk/api-reference.md +++ b/docs/cdk/api-reference.md @@ -14,7 +14,9 @@ constructs, read `cdk/.jsii`, `cdk/lib/index.ts`, and `cdk/lib/*.d.ts`. - `AppTheoryJobsTable`: opinionated DynamoDB jobs ledger table - `AppTheoryS3Ingest`: secure S3 ingest front door with optional notifications - `AppTheoryCodeBuildJobRunner`: batch-step runner for import pipelines +- `AppTheoryEventBridgeBus`: custom EventBridge bus with explicit cross-account publish allowlist - `AppTheoryEventBridgeRuleTarget`: EventBridge rule or schedule to Lambda target +- `AppTheoryHttpIngestionEndpoint`: authenticated HTTP API v2 ingestion endpoint with Lambda request authorizer - `AppTheoryQueue`, `AppTheoryQueueConsumer`, `AppTheoryQueueProcessor`: SQS queue and consumer patterns ## Supporting constructs exported from `cdk/lib/index.ts` @@ -23,7 +25,7 @@ constructs, read `cdk/.jsii`, `cdk/lib/index.ts`, and `cdk/lib/*.d.ts`. - `AppTheoryFunctionAlarms` - `AppTheoryDynamoDBStreamMapping` - `AppTheoryDynamoTable` -- `AppTheoryEventBusTable` +- `AppTheoryEventBusTable`: durable EventBus DynamoDB table plus Lambda binding helper for publish/query/replay flows - `AppTheoryLambdaRole` - `AppTheoryPathRoutedFrontend` - `AppTheoryMediaCdn` diff --git a/docs/planning/app-integration/M0.md b/docs/planning/app-integration/M0.md index d7345105..c31ff666 100644 --- a/docs/planning/app-integration/M0.md +++ b/docs/planning/app-integration/M0.md @@ -12,7 +12,7 @@ pack pinning (“pin to the most recent release”). GovTheory packs will be pinned to explicit versions: - AppTheory stable pin (expected): `v0.15.0` -- TableTheory stable pin (expected): `v1.4.2` +- TableTheory stable pin (expected): `v1.5.0` AppTheory must not depend on an ambiguous / unreleased TableTheory version if we expect other repos to `go get` the pinned tag successfully. diff --git a/examples/cdk/codebuild-job-runner/package-lock.json b/examples/cdk/codebuild-job-runner/package-lock.json new file mode 100644 index 00000000..a331d2a4 --- /dev/null +++ b/examples/cdk/codebuild-job-runner/package-lock.json @@ -0,0 +1,769 @@ +{ + "name": "@theory-cloud/apptheory-cdk-codebuild-job-runner-example", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@theory-cloud/apptheory-cdk-codebuild-job-runner-example", + "license": "UNLICENSED", + "devDependencies": { + "@theory-cloud/apptheory-cdk": "file:../../../cdk", + "@types/node": "25.5.0", + "aws-cdk": "2.1113.0", + "aws-cdk-lib": "2.244.0", + "constructs": "10.6.0", + "ts-node": "10.9.2", + "typescript": "5.9.3" + }, + "engines": { + "node": ">=24" + } + }, + "../../../cdk": { + "name": "@theory-cloud/apptheory-cdk", + "version": "0.18.2", + "dev": true, + "license": "Apache-2.0", + "devDependencies": { + "@types/node": "25.5.0", + "aws-cdk-lib": "file:../third_party/aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz", + "constructs": "10.6.0", + "jsii": "5.9.34", + "jsii-pacmak": "1.127.0", + "typescript": "5.9.3" + }, + "engines": { + "node": ">=24" + }, + "peerDependencies": { + "aws-cdk-lib": "2.244.0", + "constructs": "10.6.0" + } + }, + "node_modules/@aws-cdk/asset-awscli-v1": { + "version": "2.2.263", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.263.tgz", + "integrity": "sha512-X9JvcJhYcb7PHs8R7m4zMablO5C9PGb/hYfLnxds9h/rKJu6l7MiXE/SabCibuehxPnuO/vk+sVVJiUWrccarQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@aws-cdk/asset-node-proxy-agent-v6": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.1.1.tgz", + "integrity": "sha512-We4bmHaowOPHr+IQR4/FyTGjRfjgBj4ICMjtqmJeBDWad3Q/6St12NT07leNtyuukv2qMhtSZJQorD8KpKTwRA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@aws-cdk/cloud-assembly-schema": { + "version": "52.2.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-52.2.0.tgz", + "integrity": "sha512-ourZjixQ/UfsZc7gdk3vt1eHBODMUjQTYYYCY3ZX8fiXyHtWNDAYZPrXUK96jpCC2fLP+tfHTJrBjZ563pmcEw==", + "bundleDependencies": [ + "jsonschema", + "semver" + ], + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jsonschema": "~1.4.1", + "semver": "^7.7.3" + }, + "engines": { + "node": ">= 18.0.0" + } + }, + "node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema": { + "version": "1.4.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver": { + "version": "7.7.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@theory-cloud/apptheory-cdk": { + "resolved": "../../../cdk", + "link": true + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz", + "integrity": "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", + "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.18.0" + } + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", + "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "license": "MIT" + }, + "node_modules/aws-cdk": { + "version": "2.1113.0", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.1113.0.tgz", + "integrity": "sha512-7D2cVJ66tRZ7KbdTfQLgwPu/XvAeb3r42MMVG605kaxWdIUczdJcuk9x5JVahDCFKRcjepLLYu5N+ovnHFYxBQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "cdk": "bin/cdk" + }, + "engines": { + "node": ">= 18.0.0" + } + }, + "node_modules/aws-cdk-lib": { + "version": "2.244.0", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.244.0.tgz", + "integrity": "sha512-j5FVeZv5W+v6j6OnW8RjoN04T+8pYvDJJV7yXhhj4IiGDKPgMH3fflQLQXJousd2QQk+nSAjghDVJcrZ4GFyGA==", + "bundleDependencies": [ + "@balena/dockerignore", + "@aws-cdk/cloud-assembly-api", + "case", + "fs-extra", + "ignore", + "jsonschema", + "minimatch", + "punycode", + "semver", + "table", + "yaml", + "mime-types" + ], + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-cdk/asset-awscli-v1": "2.2.263", + "@aws-cdk/asset-node-proxy-agent-v6": "^2.1.1", + "@aws-cdk/cloud-assembly-api": "^2.1.1", + "@aws-cdk/cloud-assembly-schema": "^52.1.0", + "@balena/dockerignore": "^1.0.2", + "case": "1.6.3", + "fs-extra": "^11.3.3", + "ignore": "^5.3.2", + "jsonschema": "^1.5.0", + "mime-types": "^2.1.35", + "minimatch": "^10.2.3", + "punycode": "^2.3.1", + "semver": "^7.7.4", + "table": "^6.9.0", + "yaml": "1.10.2" + }, + "engines": { + "node": ">= 20.0.0" + }, + "peerDependencies": { + "constructs": "^10.5.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/@aws-cdk/cloud-assembly-api": { + "version": "2.1.1", + "bundleDependencies": [ + "jsonschema", + "semver" + ], + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "jsonschema": "~1.4.1", + "semver": "^7.7.3" + }, + "engines": { + "node": ">= 18.0.0" + }, + "peerDependencies": { + "@aws-cdk/cloud-assembly-schema": ">=52.1.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/@aws-cdk/cloud-assembly-api/node_modules/jsonschema": { + "version": "1.4.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/aws-cdk-lib/node_modules/@aws-cdk/cloud-assembly-api/node_modules/semver": { + "version": "7.7.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aws-cdk-lib/node_modules/@balena/dockerignore": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/aws-cdk-lib/node_modules/ajv": { + "version": "8.18.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/aws-cdk-lib/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aws-cdk-lib/node_modules/astral-regex": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/balanced-match": { + "version": "4.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/aws-cdk-lib/node_modules/brace-expansion": { + "version": "5.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/aws-cdk-lib/node_modules/case": { + "version": "1.6.3", + "dev": true, + "inBundle": true, + "license": "(MIT OR GPL-3.0-or-later)", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/fast-uri": { + "version": "3.1.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/aws-cdk-lib/node_modules/fs-extra": { + "version": "11.3.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/aws-cdk-lib/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/aws-cdk-lib/node_modules/ignore": { + "version": "5.3.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/aws-cdk-lib/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/jsonfile": { + "version": "6.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/jsonschema": { + "version": "1.5.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/aws-cdk-lib/node_modules/lodash.truncate": { + "version": "4.4.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/mime-db": { + "version": "1.52.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/mime-types": { + "version": "2.1.35", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/minimatch": { + "version": "10.2.4", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/aws-cdk-lib/node_modules/punycode": { + "version": "2.3.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/aws-cdk-lib/node_modules/require-from-string": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/semver": { + "version": "7.7.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aws-cdk-lib/node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/aws-cdk-lib/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/table": { + "version": "6.9.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/universalify": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/yaml": { + "version": "1.10.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/constructs": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.6.0.tgz", + "integrity": "sha512-TxHOnBO5zMo/G76ykzGF/wMpEHu257TbWiIxP9K0Yv/+t70UzgBQiTqjkAsWOPC6jW91DzJI0+ehQV6xDRNBuQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/diff": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz", + "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "license": "MIT" + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + } + } +} diff --git a/examples/cdk/codebuild-job-runner/package.json b/examples/cdk/codebuild-job-runner/package.json index dea22206..fc203be3 100644 --- a/examples/cdk/codebuild-job-runner/package.json +++ b/examples/cdk/codebuild-job-runner/package.json @@ -9,10 +9,10 @@ }, "devDependencies": { "@theory-cloud/apptheory-cdk": "file:../../../cdk", - "@types/node": "25.2.3", - "aws-cdk": "2.1101.0", - "aws-cdk-lib": "2.240.0", - "constructs": "10.5.1", + "@types/node": "25.5.0", + "aws-cdk": "2.1113.0", + "aws-cdk-lib": "2.244.0", + "constructs": "10.6.0", "ts-node": "10.9.2", "typescript": "5.9.3" }, @@ -20,4 +20,3 @@ "node": ">=24" } } - diff --git a/examples/cdk/import-pipeline/package-lock.json b/examples/cdk/import-pipeline/package-lock.json index eb0b53ac..a0326a54 100644 --- a/examples/cdk/import-pipeline/package-lock.json +++ b/examples/cdk/import-pipeline/package-lock.json @@ -8,10 +8,10 @@ "license": "UNLICENSED", "devDependencies": { "@theory-cloud/apptheory-cdk": "file:../../../cdk", - "@types/node": "25.0.9", - "aws-cdk": "2.1101.0", - "aws-cdk-lib": "2.240.0", - "constructs": "10.5.1", + "@types/node": "25.5.0", + "aws-cdk": "2.1113.0", + "aws-cdk-lib": "2.244.0", + "constructs": "10.6.0", "ts-node": "10.9.2", "typescript": "5.9.3" }, @@ -21,23 +21,23 @@ }, "../../../cdk": { "name": "@theory-cloud/apptheory-cdk", - "version": "0.11.1", + "version": "0.18.2", "dev": true, "license": "Apache-2.0", "devDependencies": { - "@types/node": "25.2.3", - "aws-cdk-lib": "2.240.0", - "constructs": "10.5.1", - "jsii": "5.9.23", - "jsii-pacmak": "1.125.0", + "@types/node": "25.5.0", + "aws-cdk-lib": "file:../third_party/aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz", + "constructs": "10.6.0", + "jsii": "5.9.34", + "jsii-pacmak": "1.127.0", "typescript": "5.9.3" }, "engines": { "node": ">=24" }, "peerDependencies": { - "aws-cdk-lib": "2.240.0", - "constructs": "10.5.1" + "aws-cdk-lib": "2.244.0", + "constructs": "10.6.0" } }, "node_modules/@aws-cdk/asset-awscli-v1": { @@ -48,16 +48,16 @@ "license": "Apache-2.0" }, "node_modules/@aws-cdk/asset-node-proxy-agent-v6": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.1.0.tgz", - "integrity": "sha512-7bY3J8GCVxLupn/kNmpPc5VJz8grx+4RKfnnJiO1LG+uxkZfANZG3RMHhE+qQxxwkyQ9/MfPtTpf748UhR425A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.1.1.tgz", + "integrity": "sha512-We4bmHaowOPHr+IQR4/FyTGjRfjgBj4ICMjtqmJeBDWad3Q/6St12NT07leNtyuukv2qMhtSZJQorD8KpKTwRA==", "dev": true, "license": "Apache-2.0" }, "node_modules/@aws-cdk/cloud-assembly-schema": { - "version": "50.4.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-50.4.0.tgz", - "integrity": "sha512-9Cplwc5C+SNe3hMfqZET7gXeM68tiH2ytQytCi+zz31Bn7O3GAgAnC2dYe+HWnZAgVH788ZkkBwnYXkeqx7v4g==", + "version": "52.2.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-52.2.0.tgz", + "integrity": "sha512-ourZjixQ/UfsZc7gdk3vt1eHBODMUjQTYYYCY3ZX8fiXyHtWNDAYZPrXUK96jpCC2fLP+tfHTJrBjZ563pmcEw==", "bundleDependencies": [ "jsonschema", "semver" @@ -167,13 +167,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.0.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.9.tgz", - "integrity": "sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", + "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.16.0" + "undici-types": "~7.18.0" } }, "node_modules/acorn": { @@ -210,9 +210,9 @@ "license": "MIT" }, "node_modules/aws-cdk": { - "version": "2.1101.0", - "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.1101.0.tgz", - "integrity": "sha512-5EP+t13OFzE0SaK+KY/di9ZcXQYwnhDtM8kqEMjEvqhj+K3eqtV0DDI1YjthOoVMBAHgZK9juKPqxfwwRprBPQ==", + "version": "2.1113.0", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.1113.0.tgz", + "integrity": "sha512-7D2cVJ66tRZ7KbdTfQLgwPu/XvAeb3r42MMVG605kaxWdIUczdJcuk9x5JVahDCFKRcjepLLYu5N+ovnHFYxBQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -220,15 +220,12 @@ }, "engines": { "node": ">= 18.0.0" - }, - "optionalDependencies": { - "fsevents": "2.3.2" } }, "node_modules/aws-cdk-lib": { - "version": "2.240.0", - "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.240.0.tgz", - "integrity": "sha512-3dXmUnPB5kK0VgrNHOlV3jiQM4Dungukk/CV91nclO2lgNcrGyigauJdzmz9sOmI1gbKJJ2SRAotaXityzZMRw==", + "version": "2.244.0", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.244.0.tgz", + "integrity": "sha512-j5FVeZv5W+v6j6OnW8RjoN04T+8pYvDJJV7yXhhj4IiGDKPgMH3fflQLQXJousd2QQk+nSAjghDVJcrZ4GFyGA==", "bundleDependencies": [ "@balena/dockerignore", "@aws-cdk/cloud-assembly-api", @@ -247,30 +244,30 @@ "license": "Apache-2.0", "dependencies": { "@aws-cdk/asset-awscli-v1": "2.2.263", - "@aws-cdk/asset-node-proxy-agent-v6": "^2.1.0", - "@aws-cdk/cloud-assembly-api": "^2.0.1", - "@aws-cdk/cloud-assembly-schema": "^50.3.0", + "@aws-cdk/asset-node-proxy-agent-v6": "^2.1.1", + "@aws-cdk/cloud-assembly-api": "^2.1.1", + "@aws-cdk/cloud-assembly-schema": "^52.1.0", "@balena/dockerignore": "^1.0.2", "case": "1.6.3", "fs-extra": "^11.3.3", "ignore": "^5.3.2", "jsonschema": "^1.5.0", "mime-types": "^2.1.35", - "minimatch": "^10.2.1", + "minimatch": "^10.2.3", "punycode": "^2.3.1", "semver": "^7.7.4", "table": "^6.9.0", "yaml": "1.10.2" }, "engines": { - "node": ">= 18.0.0" + "node": ">= 20.0.0" }, "peerDependencies": { "constructs": "^10.5.0" } }, "node_modules/aws-cdk-lib/node_modules/@aws-cdk/cloud-assembly-api": { - "version": "2.0.1", + "version": "2.1.1", "bundleDependencies": [ "jsonschema", "semver" @@ -286,7 +283,7 @@ "node": ">= 18.0.0" }, "peerDependencies": { - "@aws-cdk/cloud-assembly-schema": ">=50.3.0" + "@aws-cdk/cloud-assembly-schema": ">=52.1.0" } }, "node_modules/aws-cdk-lib/node_modules/@aws-cdk/cloud-assembly-api/node_modules/jsonschema": { @@ -534,7 +531,7 @@ } }, "node_modules/aws-cdk-lib/node_modules/minimatch": { - "version": "10.2.2", + "version": "10.2.4", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", @@ -656,9 +653,9 @@ } }, "node_modules/constructs": { - "version": "10.5.1", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.5.1.tgz", - "integrity": "sha512-f/TfFXiS3G/yVIXDjOQn9oTlyu9Wo7Fxyjj7lb8r92iO81jR2uST+9MstxZTmDGx/CgIbxCXkFXgupnLTNxQZg==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.6.0.tgz", + "integrity": "sha512-TxHOnBO5zMo/G76ykzGF/wMpEHu257TbWiIxP9K0Yv/+t70UzgBQiTqjkAsWOPC6jW91DzJI0+ehQV6xDRNBuQ==", "dev": true, "license": "Apache-2.0" }, @@ -679,21 +676,6 @@ "node": ">=0.3.1" } }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -760,9 +742,9 @@ } }, "node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", "dev": true, "license": "MIT" }, diff --git a/examples/cdk/import-pipeline/package.json b/examples/cdk/import-pipeline/package.json index 6bfbdff7..cdb4dea0 100644 --- a/examples/cdk/import-pipeline/package.json +++ b/examples/cdk/import-pipeline/package.json @@ -8,10 +8,10 @@ }, "devDependencies": { "@theory-cloud/apptheory-cdk": "file:../../../cdk", - "@types/node": "25.0.9", - "aws-cdk": "2.1101.0", - "aws-cdk-lib": "2.240.0", - "constructs": "10.5.1", + "@types/node": "25.5.0", + "aws-cdk": "2.1113.0", + "aws-cdk-lib": "2.244.0", + "constructs": "10.6.0", "ts-node": "10.9.2", "typescript": "5.9.3" }, diff --git a/examples/cdk/lesser-parity/package-lock.json b/examples/cdk/lesser-parity/package-lock.json index 471aed8d..f9d729cc 100644 --- a/examples/cdk/lesser-parity/package-lock.json +++ b/examples/cdk/lesser-parity/package-lock.json @@ -8,10 +8,10 @@ "license": "UNLICENSED", "devDependencies": { "@theory-cloud/apptheory-cdk": "file:../../../cdk", - "@types/node": "25.0.9", - "aws-cdk": "2.1101.0", - "aws-cdk-lib": "2.240.0", - "constructs": "10.5.1", + "@types/node": "25.5.0", + "aws-cdk": "2.1113.0", + "aws-cdk-lib": "2.244.0", + "constructs": "10.6.0", "ts-node": "10.9.2", "typescript": "5.9.3" }, @@ -25,19 +25,19 @@ "dev": true, "license": "Apache-2.0", "devDependencies": { - "@types/node": "25.2.3", - "aws-cdk-lib": "2.240.0", - "constructs": "10.5.1", - "jsii": "5.9.23", - "jsii-pacmak": "1.125.0", + "@types/node": "25.5.0", + "aws-cdk-lib": "file:../third_party/aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz", + "constructs": "10.6.0", + "jsii": "5.9.34", + "jsii-pacmak": "1.127.0", "typescript": "5.9.3" }, "engines": { "node": ">=24" }, "peerDependencies": { - "aws-cdk-lib": "2.240.0", - "constructs": "10.5.1" + "aws-cdk-lib": "2.244.0", + "constructs": "10.6.0" } }, "node_modules/@aws-cdk/asset-awscli-v1": { @@ -48,16 +48,16 @@ "license": "Apache-2.0" }, "node_modules/@aws-cdk/asset-node-proxy-agent-v6": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.1.0.tgz", - "integrity": "sha512-7bY3J8GCVxLupn/kNmpPc5VJz8grx+4RKfnnJiO1LG+uxkZfANZG3RMHhE+qQxxwkyQ9/MfPtTpf748UhR425A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.1.1.tgz", + "integrity": "sha512-We4bmHaowOPHr+IQR4/FyTGjRfjgBj4ICMjtqmJeBDWad3Q/6St12NT07leNtyuukv2qMhtSZJQorD8KpKTwRA==", "dev": true, "license": "Apache-2.0" }, "node_modules/@aws-cdk/cloud-assembly-schema": { - "version": "50.4.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-50.4.0.tgz", - "integrity": "sha512-9Cplwc5C+SNe3hMfqZET7gXeM68tiH2ytQytCi+zz31Bn7O3GAgAnC2dYe+HWnZAgVH788ZkkBwnYXkeqx7v4g==", + "version": "52.2.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-52.2.0.tgz", + "integrity": "sha512-ourZjixQ/UfsZc7gdk3vt1eHBODMUjQTYYYCY3ZX8fiXyHtWNDAYZPrXUK96jpCC2fLP+tfHTJrBjZ563pmcEw==", "bundleDependencies": [ "jsonschema", "semver" @@ -167,13 +167,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.0.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.9.tgz", - "integrity": "sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", + "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.16.0" + "undici-types": "~7.18.0" } }, "node_modules/acorn": { @@ -210,9 +210,9 @@ "license": "MIT" }, "node_modules/aws-cdk": { - "version": "2.1101.0", - "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.1101.0.tgz", - "integrity": "sha512-5EP+t13OFzE0SaK+KY/di9ZcXQYwnhDtM8kqEMjEvqhj+K3eqtV0DDI1YjthOoVMBAHgZK9juKPqxfwwRprBPQ==", + "version": "2.1113.0", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.1113.0.tgz", + "integrity": "sha512-7D2cVJ66tRZ7KbdTfQLgwPu/XvAeb3r42MMVG605kaxWdIUczdJcuk9x5JVahDCFKRcjepLLYu5N+ovnHFYxBQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -220,15 +220,12 @@ }, "engines": { "node": ">= 18.0.0" - }, - "optionalDependencies": { - "fsevents": "2.3.2" } }, "node_modules/aws-cdk-lib": { - "version": "2.240.0", - "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.240.0.tgz", - "integrity": "sha512-3dXmUnPB5kK0VgrNHOlV3jiQM4Dungukk/CV91nclO2lgNcrGyigauJdzmz9sOmI1gbKJJ2SRAotaXityzZMRw==", + "version": "2.244.0", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.244.0.tgz", + "integrity": "sha512-j5FVeZv5W+v6j6OnW8RjoN04T+8pYvDJJV7yXhhj4IiGDKPgMH3fflQLQXJousd2QQk+nSAjghDVJcrZ4GFyGA==", "bundleDependencies": [ "@balena/dockerignore", "@aws-cdk/cloud-assembly-api", @@ -247,30 +244,30 @@ "license": "Apache-2.0", "dependencies": { "@aws-cdk/asset-awscli-v1": "2.2.263", - "@aws-cdk/asset-node-proxy-agent-v6": "^2.1.0", - "@aws-cdk/cloud-assembly-api": "^2.0.1", - "@aws-cdk/cloud-assembly-schema": "^50.3.0", + "@aws-cdk/asset-node-proxy-agent-v6": "^2.1.1", + "@aws-cdk/cloud-assembly-api": "^2.1.1", + "@aws-cdk/cloud-assembly-schema": "^52.1.0", "@balena/dockerignore": "^1.0.2", "case": "1.6.3", "fs-extra": "^11.3.3", "ignore": "^5.3.2", "jsonschema": "^1.5.0", "mime-types": "^2.1.35", - "minimatch": "^10.2.1", + "minimatch": "^10.2.3", "punycode": "^2.3.1", "semver": "^7.7.4", "table": "^6.9.0", "yaml": "1.10.2" }, "engines": { - "node": ">= 18.0.0" + "node": ">= 20.0.0" }, "peerDependencies": { "constructs": "^10.5.0" } }, "node_modules/aws-cdk-lib/node_modules/@aws-cdk/cloud-assembly-api": { - "version": "2.0.1", + "version": "2.1.1", "bundleDependencies": [ "jsonschema", "semver" @@ -286,7 +283,7 @@ "node": ">= 18.0.0" }, "peerDependencies": { - "@aws-cdk/cloud-assembly-schema": ">=50.3.0" + "@aws-cdk/cloud-assembly-schema": ">=52.1.0" } }, "node_modules/aws-cdk-lib/node_modules/@aws-cdk/cloud-assembly-api/node_modules/jsonschema": { @@ -534,7 +531,7 @@ } }, "node_modules/aws-cdk-lib/node_modules/minimatch": { - "version": "10.2.2", + "version": "10.2.4", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", @@ -656,9 +653,9 @@ } }, "node_modules/constructs": { - "version": "10.5.1", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.5.1.tgz", - "integrity": "sha512-f/TfFXiS3G/yVIXDjOQn9oTlyu9Wo7Fxyjj7lb8r92iO81jR2uST+9MstxZTmDGx/CgIbxCXkFXgupnLTNxQZg==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.6.0.tgz", + "integrity": "sha512-TxHOnBO5zMo/G76ykzGF/wMpEHu257TbWiIxP9K0Yv/+t70UzgBQiTqjkAsWOPC6jW91DzJI0+ehQV6xDRNBuQ==", "dev": true, "license": "Apache-2.0" }, @@ -679,21 +676,6 @@ "node": ">=0.3.1" } }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -760,9 +742,9 @@ } }, "node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", "dev": true, "license": "MIT" }, diff --git a/examples/cdk/lesser-parity/package.json b/examples/cdk/lesser-parity/package.json index 48abc807..125b1b9f 100644 --- a/examples/cdk/lesser-parity/package.json +++ b/examples/cdk/lesser-parity/package.json @@ -8,10 +8,10 @@ }, "devDependencies": { "@theory-cloud/apptheory-cdk": "file:../../../cdk", - "@types/node": "25.0.9", - "aws-cdk": "2.1101.0", - "aws-cdk-lib": "2.240.0", - "constructs": "10.5.1", + "@types/node": "25.5.0", + "aws-cdk": "2.1113.0", + "aws-cdk-lib": "2.244.0", + "constructs": "10.6.0", "ts-node": "10.9.2", "typescript": "5.9.3" }, diff --git a/examples/cdk/multilang/package-lock.json b/examples/cdk/multilang/package-lock.json index 9375d8ad..7ac647eb 100644 --- a/examples/cdk/multilang/package-lock.json +++ b/examples/cdk/multilang/package-lock.json @@ -8,10 +8,10 @@ "license": "UNLICENSED", "devDependencies": { "@theory-cloud/apptheory-cdk": "file:../../../cdk", - "@types/node": "25.0.9", - "aws-cdk": "2.1101.0", - "aws-cdk-lib": "file:../../../third_party/aws-cdk-lib-2.240.0+minimatch-10.2.4.tgz", - "constructs": "10.5.1", + "@types/node": "25.5.0", + "aws-cdk": "2.1113.0", + "aws-cdk-lib": "file:../../../third_party/aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz", + "constructs": "10.6.0", "ts-node": "10.9.2", "typescript": "5.9.3" }, @@ -25,19 +25,19 @@ "dev": true, "license": "Apache-2.0", "devDependencies": { - "@types/node": "25.2.3", - "aws-cdk-lib": "file:../third_party/aws-cdk-lib-2.240.0+minimatch-10.2.4.tgz", - "constructs": "10.5.1", - "jsii": "5.9.23", - "jsii-pacmak": "1.125.0", + "@types/node": "25.5.0", + "aws-cdk-lib": "file:../third_party/aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz", + "constructs": "10.6.0", + "jsii": "5.9.34", + "jsii-pacmak": "1.127.0", "typescript": "5.9.3" }, "engines": { "node": ">=24" }, "peerDependencies": { - "aws-cdk-lib": "2.240.0", - "constructs": "10.5.1" + "aws-cdk-lib": "2.244.0", + "constructs": "10.6.0" } }, "node_modules/@aws-cdk/asset-awscli-v1": { @@ -48,23 +48,22 @@ "license": "Apache-2.0" }, "node_modules/@aws-cdk/asset-node-proxy-agent-v6": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.1.0.tgz", - "integrity": "sha512-7bY3J8GCVxLupn/kNmpPc5VJz8grx+4RKfnnJiO1LG+uxkZfANZG3RMHhE+qQxxwkyQ9/MfPtTpf748UhR425A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.1.1.tgz", + "integrity": "sha512-We4bmHaowOPHr+IQR4/FyTGjRfjgBj4ICMjtqmJeBDWad3Q/6St12NT07leNtyuukv2qMhtSZJQorD8KpKTwRA==", "dev": true, "license": "Apache-2.0" }, "node_modules/@aws-cdk/cloud-assembly-schema": { - "version": "50.4.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-50.4.0.tgz", - "integrity": "sha512-9Cplwc5C+SNe3hMfqZET7gXeM68tiH2ytQytCi+zz31Bn7O3GAgAnC2dYe+HWnZAgVH788ZkkBwnYXkeqx7v4g==", + "version": "52.2.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-52.2.0.tgz", + "integrity": "sha512-ourZjixQ/UfsZc7gdk3vt1eHBODMUjQTYYYCY3ZX8fiXyHtWNDAYZPrXUK96jpCC2fLP+tfHTJrBjZ563pmcEw==", "bundleDependencies": [ "jsonschema", "semver" ], "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "jsonschema": "~1.4.1", "semver": "^7.7.3" @@ -168,14 +167,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.0.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.9.tgz", - "integrity": "sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", + "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "undici-types": "~7.16.0" + "undici-types": "~7.18.0" } }, "node_modules/acorn": { @@ -212,9 +210,9 @@ "license": "MIT" }, "node_modules/aws-cdk": { - "version": "2.1101.0", - "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.1101.0.tgz", - "integrity": "sha512-5EP+t13OFzE0SaK+KY/di9ZcXQYwnhDtM8kqEMjEvqhj+K3eqtV0DDI1YjthOoVMBAHgZK9juKPqxfwwRprBPQ==", + "version": "2.1113.0", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.1113.0.tgz", + "integrity": "sha512-7D2cVJ66tRZ7KbdTfQLgwPu/XvAeb3r42MMVG605kaxWdIUczdJcuk9x5JVahDCFKRcjepLLYu5N+ovnHFYxBQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -222,15 +220,12 @@ }, "engines": { "node": ">= 18.0.0" - }, - "optionalDependencies": { - "fsevents": "2.3.2" } }, "node_modules/aws-cdk-lib": { - "version": "2.240.0", - "resolved": "file:../../../third_party/aws-cdk-lib-2.240.0+minimatch-10.2.4.tgz", - "integrity": "sha512-7rhcf4AIun6HcF/uDzMZ8gECEBVwbbrhI9HF+xLylwl/LZ/hxpE32l5NUB1HSYMMRVTnh0DlJY2JMs4I1OBDpw==", + "version": "2.244.0", + "resolved": "file:../../../third_party/aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz", + "integrity": "sha512-v/sIShiiSsN6GcBB3ucxMG7xupiedFkHuG1j/Tbj60+WBTZ5o+XFBTX5qjSbaDmkFEGImtE6WpjMq73Mo+mGnw==", "bundleDependencies": [ "@balena/dockerignore", "@aws-cdk/cloud-assembly-api", @@ -249,30 +244,30 @@ "license": "Apache-2.0", "dependencies": { "@aws-cdk/asset-awscli-v1": "2.2.263", - "@aws-cdk/asset-node-proxy-agent-v6": "^2.1.0", - "@aws-cdk/cloud-assembly-api": "^2.0.1", - "@aws-cdk/cloud-assembly-schema": "^50.3.0", + "@aws-cdk/asset-node-proxy-agent-v6": "^2.1.1", + "@aws-cdk/cloud-assembly-api": "^2.1.1", + "@aws-cdk/cloud-assembly-schema": "^52.1.0", "@balena/dockerignore": "^1.0.2", "case": "1.6.3", "fs-extra": "^11.3.3", "ignore": "^5.3.2", "jsonschema": "^1.5.0", "mime-types": "^2.1.35", - "minimatch": "^10.2.1", + "minimatch": "^10.2.3", "punycode": "^2.3.1", "semver": "^7.7.4", "table": "^6.9.0", "yaml": "1.10.2" }, "engines": { - "node": ">= 18.0.0" + "node": ">= 20.0.0" }, "peerDependencies": { "constructs": "^10.5.0" } }, "node_modules/aws-cdk-lib/node_modules/@aws-cdk/cloud-assembly-api": { - "version": "2.0.1", + "version": "2.1.1", "bundleDependencies": [ "jsonschema", "semver" @@ -288,7 +283,7 @@ "node": ">= 18.0.0" }, "peerDependencies": { - "@aws-cdk/cloud-assembly-schema": ">=50.3.0" + "@aws-cdk/cloud-assembly-schema": ">=52.1.0" } }, "node_modules/aws-cdk-lib/node_modules/@aws-cdk/cloud-assembly-api/node_modules/jsonschema": { @@ -658,12 +653,11 @@ } }, "node_modules/constructs": { - "version": "10.5.1", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.5.1.tgz", - "integrity": "sha512-f/TfFXiS3G/yVIXDjOQn9oTlyu9Wo7Fxyjj7lb8r92iO81jR2uST+9MstxZTmDGx/CgIbxCXkFXgupnLTNxQZg==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.6.0.tgz", + "integrity": "sha512-TxHOnBO5zMo/G76ykzGF/wMpEHu257TbWiIxP9K0Yv/+t70UzgBQiTqjkAsWOPC6jW91DzJI0+ehQV6xDRNBuQ==", "dev": true, - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/create-require": { "version": "1.1.1", @@ -682,21 +676,6 @@ "node": ">=0.3.1" } }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -754,7 +733,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -764,9 +742,9 @@ } }, "node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", "dev": true, "license": "MIT" }, diff --git a/examples/cdk/multilang/package.json b/examples/cdk/multilang/package.json index 0f2b7b28..b9ceb022 100644 --- a/examples/cdk/multilang/package.json +++ b/examples/cdk/multilang/package.json @@ -8,10 +8,10 @@ }, "devDependencies": { "@theory-cloud/apptheory-cdk": "file:../../../cdk", - "@types/node": "25.0.9", - "aws-cdk": "2.1101.0", - "aws-cdk-lib": "file:../../../third_party/aws-cdk-lib-2.240.0+minimatch-10.2.4.tgz", - "constructs": "10.5.1", + "@types/node": "25.5.0", + "aws-cdk": "2.1113.0", + "aws-cdk-lib": "file:../../../third_party/aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz", + "constructs": "10.6.0", "ts-node": "10.9.2", "typescript": "5.9.3" }, diff --git a/examples/cdk/ssr-site/package-lock.json b/examples/cdk/ssr-site/package-lock.json index 5b6b7e6c..369c9cd5 100644 --- a/examples/cdk/ssr-site/package-lock.json +++ b/examples/cdk/ssr-site/package-lock.json @@ -8,10 +8,10 @@ "license": "UNLICENSED", "devDependencies": { "@theory-cloud/apptheory-cdk": "file:../../../cdk", - "@types/node": "25.0.9", - "aws-cdk": "2.1101.0", - "aws-cdk-lib": "file:../../../third_party/aws-cdk-lib-2.240.0+minimatch-10.2.4.tgz", - "constructs": "10.5.1", + "@types/node": "25.5.0", + "aws-cdk": "2.1113.0", + "aws-cdk-lib": "file:../../../third_party/aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz", + "constructs": "10.6.0", "ts-node": "10.9.2", "typescript": "5.9.3" }, @@ -25,19 +25,19 @@ "dev": true, "license": "Apache-2.0", "devDependencies": { - "@types/node": "25.2.3", - "aws-cdk-lib": "file:../third_party/aws-cdk-lib-2.240.0+minimatch-10.2.4.tgz", - "constructs": "10.5.1", - "jsii": "5.9.23", - "jsii-pacmak": "1.125.0", + "@types/node": "25.5.0", + "aws-cdk-lib": "file:../third_party/aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz", + "constructs": "10.6.0", + "jsii": "5.9.34", + "jsii-pacmak": "1.127.0", "typescript": "5.9.3" }, "engines": { "node": ">=24" }, "peerDependencies": { - "aws-cdk-lib": "2.240.0", - "constructs": "10.5.1" + "aws-cdk-lib": "2.244.0", + "constructs": "10.6.0" } }, "node_modules/@aws-cdk/asset-awscli-v1": { @@ -48,23 +48,22 @@ "license": "Apache-2.0" }, "node_modules/@aws-cdk/asset-node-proxy-agent-v6": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.1.0.tgz", - "integrity": "sha512-7bY3J8GCVxLupn/kNmpPc5VJz8grx+4RKfnnJiO1LG+uxkZfANZG3RMHhE+qQxxwkyQ9/MfPtTpf748UhR425A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.1.1.tgz", + "integrity": "sha512-We4bmHaowOPHr+IQR4/FyTGjRfjgBj4ICMjtqmJeBDWad3Q/6St12NT07leNtyuukv2qMhtSZJQorD8KpKTwRA==", "dev": true, "license": "Apache-2.0" }, "node_modules/@aws-cdk/cloud-assembly-schema": { - "version": "50.4.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-50.4.0.tgz", - "integrity": "sha512-9Cplwc5C+SNe3hMfqZET7gXeM68tiH2ytQytCi+zz31Bn7O3GAgAnC2dYe+HWnZAgVH788ZkkBwnYXkeqx7v4g==", + "version": "52.2.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-52.2.0.tgz", + "integrity": "sha512-ourZjixQ/UfsZc7gdk3vt1eHBODMUjQTYYYCY3ZX8fiXyHtWNDAYZPrXUK96jpCC2fLP+tfHTJrBjZ563pmcEw==", "bundleDependencies": [ "jsonschema", "semver" ], "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "jsonschema": "~1.4.1", "semver": "^7.7.3" @@ -168,14 +167,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.0.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.9.tgz", - "integrity": "sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", + "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "undici-types": "~7.16.0" + "undici-types": "~7.18.0" } }, "node_modules/acorn": { @@ -212,9 +210,9 @@ "license": "MIT" }, "node_modules/aws-cdk": { - "version": "2.1101.0", - "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.1101.0.tgz", - "integrity": "sha512-5EP+t13OFzE0SaK+KY/di9ZcXQYwnhDtM8kqEMjEvqhj+K3eqtV0DDI1YjthOoVMBAHgZK9juKPqxfwwRprBPQ==", + "version": "2.1113.0", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.1113.0.tgz", + "integrity": "sha512-7D2cVJ66tRZ7KbdTfQLgwPu/XvAeb3r42MMVG605kaxWdIUczdJcuk9x5JVahDCFKRcjepLLYu5N+ovnHFYxBQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -222,15 +220,12 @@ }, "engines": { "node": ">= 18.0.0" - }, - "optionalDependencies": { - "fsevents": "2.3.2" } }, "node_modules/aws-cdk-lib": { - "version": "2.240.0", - "resolved": "file:../../../third_party/aws-cdk-lib-2.240.0+minimatch-10.2.4.tgz", - "integrity": "sha512-7rhcf4AIun6HcF/uDzMZ8gECEBVwbbrhI9HF+xLylwl/LZ/hxpE32l5NUB1HSYMMRVTnh0DlJY2JMs4I1OBDpw==", + "version": "2.244.0", + "resolved": "file:../../../third_party/aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz", + "integrity": "sha512-v/sIShiiSsN6GcBB3ucxMG7xupiedFkHuG1j/Tbj60+WBTZ5o+XFBTX5qjSbaDmkFEGImtE6WpjMq73Mo+mGnw==", "bundleDependencies": [ "@balena/dockerignore", "@aws-cdk/cloud-assembly-api", @@ -249,30 +244,30 @@ "license": "Apache-2.0", "dependencies": { "@aws-cdk/asset-awscli-v1": "2.2.263", - "@aws-cdk/asset-node-proxy-agent-v6": "^2.1.0", - "@aws-cdk/cloud-assembly-api": "^2.0.1", - "@aws-cdk/cloud-assembly-schema": "^50.3.0", + "@aws-cdk/asset-node-proxy-agent-v6": "^2.1.1", + "@aws-cdk/cloud-assembly-api": "^2.1.1", + "@aws-cdk/cloud-assembly-schema": "^52.1.0", "@balena/dockerignore": "^1.0.2", "case": "1.6.3", "fs-extra": "^11.3.3", "ignore": "^5.3.2", "jsonschema": "^1.5.0", "mime-types": "^2.1.35", - "minimatch": "^10.2.1", + "minimatch": "^10.2.3", "punycode": "^2.3.1", "semver": "^7.7.4", "table": "^6.9.0", "yaml": "1.10.2" }, "engines": { - "node": ">= 18.0.0" + "node": ">= 20.0.0" }, "peerDependencies": { "constructs": "^10.5.0" } }, "node_modules/aws-cdk-lib/node_modules/@aws-cdk/cloud-assembly-api": { - "version": "2.0.1", + "version": "2.1.1", "bundleDependencies": [ "jsonschema", "semver" @@ -288,7 +283,7 @@ "node": ">= 18.0.0" }, "peerDependencies": { - "@aws-cdk/cloud-assembly-schema": ">=50.3.0" + "@aws-cdk/cloud-assembly-schema": ">=52.1.0" } }, "node_modules/aws-cdk-lib/node_modules/@aws-cdk/cloud-assembly-api/node_modules/jsonschema": { @@ -658,12 +653,11 @@ } }, "node_modules/constructs": { - "version": "10.5.1", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.5.1.tgz", - "integrity": "sha512-f/TfFXiS3G/yVIXDjOQn9oTlyu9Wo7Fxyjj7lb8r92iO81jR2uST+9MstxZTmDGx/CgIbxCXkFXgupnLTNxQZg==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.6.0.tgz", + "integrity": "sha512-TxHOnBO5zMo/G76ykzGF/wMpEHu257TbWiIxP9K0Yv/+t70UzgBQiTqjkAsWOPC6jW91DzJI0+ehQV6xDRNBuQ==", "dev": true, - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/create-require": { "version": "1.1.1", @@ -682,21 +676,6 @@ "node": ">=0.3.1" } }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -754,7 +733,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -764,9 +742,9 @@ } }, "node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", "dev": true, "license": "MIT" }, diff --git a/examples/cdk/ssr-site/package.json b/examples/cdk/ssr-site/package.json index 40533f8a..eae42747 100644 --- a/examples/cdk/ssr-site/package.json +++ b/examples/cdk/ssr-site/package.json @@ -8,10 +8,10 @@ }, "devDependencies": { "@theory-cloud/apptheory-cdk": "file:../../../cdk", - "@types/node": "25.0.9", - "aws-cdk": "2.1101.0", - "aws-cdk-lib": "file:../../../third_party/aws-cdk-lib-2.240.0+minimatch-10.2.4.tgz", - "constructs": "10.5.1", + "@types/node": "25.5.0", + "aws-cdk": "2.1113.0", + "aws-cdk-lib": "file:../../../third_party/aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz", + "constructs": "10.6.0", "ts-node": "10.9.2", "typescript": "5.9.3" }, diff --git a/go.mod b/go.mod index 508204d4..f7b2e707 100644 --- a/go.mod +++ b/go.mod @@ -5,19 +5,19 @@ go 1.26 toolchain go1.26.1 require ( - github.com/aws/aws-cdk-go/awscdk/v2 v2.240.0 - github.com/aws/aws-lambda-go v1.53.0 - github.com/aws/aws-sdk-go-v2 v1.41.3 - github.com/aws/aws-sdk-go-v2/config v1.32.11 - github.com/aws/aws-sdk-go-v2/credentials v1.19.11 - github.com/aws/aws-sdk-go-v2/service/apigatewaymanagementapi v1.29.10 - github.com/aws/aws-sdk-go-v2/service/sns v1.39.11 - github.com/aws/aws-sdk-go-v2/service/sqs v1.41.1 - github.com/aws/constructs-go/constructs/v10 v10.5.1 - github.com/aws/jsii-runtime-go v1.126.0 + github.com/aws/aws-cdk-go/awscdk/v2 v2.244.0 + github.com/aws/aws-lambda-go v1.54.0 + github.com/aws/aws-sdk-go-v2 v1.41.4 + github.com/aws/aws-sdk-go-v2/config v1.32.12 + github.com/aws/aws-sdk-go-v2/credentials v1.19.12 + github.com/aws/aws-sdk-go-v2/service/apigatewaymanagementapi v1.29.13 + github.com/aws/aws-sdk-go-v2/service/sns v1.39.14 + github.com/aws/aws-sdk-go-v2/service/sqs v1.42.24 + github.com/aws/constructs-go/constructs/v10 v10.6.0 + github.com/aws/jsii-runtime-go v1.127.0 github.com/oklog/ulid/v2 v2.1.1 github.com/stretchr/testify v1.11.1 - github.com/theory-cloud/tabletheory v1.4.2 + github.com/theory-cloud/tabletheory v1.5.0 go.uber.org/zap v1.27.1 gopkg.in/yaml.v3 v3.0.1 pgregory.net/rapid v1.2.0 @@ -25,23 +25,23 @@ require ( require ( github.com/Masterminds/semver/v3 v3.4.0 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.19 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.19 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.19 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.8.5 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.20 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.20 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.20 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6 // indirect github.com/aws/aws-sdk-go-v2/service/dynamodb v1.56.1 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.6 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 // indirect github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.11.19 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.19 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20 // indirect github.com/aws/aws-sdk-go-v2/service/kms v1.50.2 // indirect - github.com/aws/aws-sdk-go-v2/service/signin v1.0.7 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.30.12 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.16 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.41.8 // indirect + github.com/aws/aws-sdk-go-v2/service/signin v1.0.8 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.30.13 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.17 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.41.9 // indirect github.com/aws/smithy-go v1.24.2 // indirect github.com/cdklabs/awscdk-asset-awscli-go/awscliv1/v2 v2.2.263 // indirect - github.com/cdklabs/awscdk-asset-node-proxy-agent-go/nodeproxyagentv6/v2 v2.1.0 // indirect - github.com/cdklabs/cloud-assembly-schema-go/awscdkcloudassemblyschema/v50 v50.4.0 // indirect + github.com/cdklabs/awscdk-asset-node-proxy-agent-go/nodeproxyagentv6/v2 v2.1.1 // indirect + github.com/cdklabs/cloud-assembly-schema-go/awscdkcloudassemblyschema/v52 v52.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/google/uuid v1.6.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect diff --git a/go.sum b/go.sum index 5b20ea25..b33c3548 100644 --- a/go.sum +++ b/go.sum @@ -1,59 +1,59 @@ github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0= github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= -github.com/aws/aws-cdk-go/awscdk/v2 v2.240.0 h1:nILxl6wEdXWnshxx8EcfUtEtR17UBSmTkK5jQ6zOtW0= -github.com/aws/aws-cdk-go/awscdk/v2 v2.240.0/go.mod h1:FBrSV7OjUy86d1J77UCSebD2aubtYV87GkvSuWIlR1w= -github.com/aws/aws-lambda-go v1.53.0 h1:uAMv6W/vCP/L494BAUSxe+8KVBIPK+SGPyapFt3FuMk= -github.com/aws/aws-lambda-go v1.53.0/go.mod h1:dpMpZgvWx5vuQJfBt0zqBha60q7Dd7RfgJv23DymV8A= -github.com/aws/aws-sdk-go-v2 v1.41.3 h1:4kQ/fa22KjDt13QCy1+bYADvdgcxpfH18f0zP542kZA= -github.com/aws/aws-sdk-go-v2 v1.41.3/go.mod h1:mwsPRE8ceUUpiTgF7QmQIJ7lgsKUPQOUl3o72QBrE1o= -github.com/aws/aws-sdk-go-v2/config v1.32.11 h1:ftxI5sgz8jZkckuUHXfC/wMUc8u3fG1vQS0plr2F2Zs= -github.com/aws/aws-sdk-go-v2/config v1.32.11/go.mod h1:twF11+6ps9aNRKEDimksp923o44w/Thk9+8YIlzWMmo= -github.com/aws/aws-sdk-go-v2/credentials v1.19.11 h1:NdV8cwCcAXrCWyxArt58BrvZJ9pZ9Fhf9w6Uh5W3Uyc= -github.com/aws/aws-sdk-go-v2/credentials v1.19.11/go.mod h1:30yY2zqkMPdrvxBqzI9xQCM+WrlrZKSOpSJEsylVU+8= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.19 h1:INUvJxmhdEbVulJYHI061k4TVuS3jzzthNvjqvVvTKM= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.19/go.mod h1:FpZN2QISLdEBWkayloda+sZjVJL+e9Gl0k1SyTgcswU= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.19 h1:/sECfyq2JTifMI2JPyZ4bdRN77zJmr6SrS1eL3augIA= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.19/go.mod h1:dMf8A5oAqr9/oxOfLkC/c2LU/uMcALP0Rgn2BD5LWn0= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.19 h1:AWeJMk33GTBf6J20XJe6qZoRSJo0WfUhsMdUKhoODXE= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.19/go.mod h1:+GWrYoaAsV7/4pNHpwh1kiNLXkKaSoppxQq9lbH8Ejw= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.5 h1:clHU5fm//kWS1C2HgtgWxfQbFbx4b6rx+5jzhgX9HrI= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.5/go.mod h1:O3h0IK87yXci+kg6flUKzJnWeziQUKciKrLjcatSNcY= -github.com/aws/aws-sdk-go-v2/service/apigatewaymanagementapi v1.29.10 h1:2kw0xNqhIdrtLVvUfCqpvj/4Pa+XHAqTTPGk6AZjNB4= -github.com/aws/aws-sdk-go-v2/service/apigatewaymanagementapi v1.29.10/go.mod h1:rj15EWI0r5cmVDHEIXpS2FDUjo5uQk1I51o7eFNGOXw= +github.com/aws/aws-cdk-go/awscdk/v2 v2.244.0 h1:jU27VeHXhLOS3EMRGTm+uTt608PfM3Y7D2lNrw938lg= +github.com/aws/aws-cdk-go/awscdk/v2 v2.244.0/go.mod h1:qJcmHuhQKpOvGAH8Qd1awPbfcZK/wFrV6uNmmyM49Vc= +github.com/aws/aws-lambda-go v1.54.0 h1:EGYpdyRGF88xszqlGcBewz811mJeRS+maNlLZXFheII= +github.com/aws/aws-lambda-go v1.54.0/go.mod h1:dpMpZgvWx5vuQJfBt0zqBha60q7Dd7RfgJv23DymV8A= +github.com/aws/aws-sdk-go-v2 v1.41.4 h1:10f50G7WyU02T56ox1wWXq+zTX9I1zxG46HYuG1hH/k= +github.com/aws/aws-sdk-go-v2 v1.41.4/go.mod h1:mwsPRE8ceUUpiTgF7QmQIJ7lgsKUPQOUl3o72QBrE1o= +github.com/aws/aws-sdk-go-v2/config v1.32.12 h1:O3csC7HUGn2895eNrLytOJQdoL2xyJy0iYXhoZ1OmP0= +github.com/aws/aws-sdk-go-v2/config v1.32.12/go.mod h1:96zTvoOFR4FURjI+/5wY1vc1ABceROO4lWgWJuxgy0g= +github.com/aws/aws-sdk-go-v2/credentials v1.19.12 h1:oqtA6v+y5fZg//tcTWahyN9PEn5eDU/Wpvc2+kJ4aY8= +github.com/aws/aws-sdk-go-v2/credentials v1.19.12/go.mod h1:U3R1RtSHx6NB0DvEQFGyf/0sbrpJrluENHdPy1j/3TE= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.20 h1:zOgq3uezl5nznfoK3ODuqbhVg1JzAGDUhXOsU0IDCAo= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.20/go.mod h1:z/MVwUARehy6GAg/yQ1GO2IMl0k++cu1ohP9zo887wE= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.20 h1:CNXO7mvgThFGqOFgbNAP2nol2qAWBOGfqR/7tQlvLmc= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.20/go.mod h1:oydPDJKcfMhgfcgBUZaG+toBbwy8yPWubJXBVERtI4o= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.20 h1:tN6W/hg+pkM+tf9XDkWUbDEjGLb+raoBMFsTodcoYKw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.20/go.mod h1:YJ898MhD067hSHA6xYCx5ts/jEd8BSOLtQDL3iZsvbc= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6 h1:qYQ4pzQ2Oz6WpQ8T3HvGHnZydA72MnLuFK9tJwmrbHw= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6/go.mod h1:O3h0IK87yXci+kg6flUKzJnWeziQUKciKrLjcatSNcY= +github.com/aws/aws-sdk-go-v2/service/apigatewaymanagementapi v1.29.13 h1:357Yo8n9E3WKIpei+mWQYVsIXMUM+c81J0LMYWjIGVc= +github.com/aws/aws-sdk-go-v2/service/apigatewaymanagementapi v1.29.13/go.mod h1:u566wm1nu9AsBqipqf9R1Cseeoouj1t2LVwn5/cEJ+4= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.56.1 h1:EkW4NqA2mwCkL7YCDYh6OpA/bCMhKYbZgpRHt2FD2Ow= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.56.1/go.mod h1:OQp5333OH1IjmJmJpTU4IwoaOoCMnDrThg0zIx169rE= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.6 h1:XAq62tBTJP/85lFD5oqOOe7YYgWxY9LvWq8plyDvDVg= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.6/go.mod h1:x0nZssQ3qZSnIcePWLvcoFisRXJzcTVvYpAAdYX8+GI= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 h1:5EniKhLZe4xzL7a+fU3C2tfUN4nWIqlLesfrjkuPFTY= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7/go.mod h1:x0nZssQ3qZSnIcePWLvcoFisRXJzcTVvYpAAdYX8+GI= github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.11.19 h1:jdCj9vbCXwzTcIJX+MVd2UdssFhRJFTrWlPZwZB8Hpk= github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.11.19/go.mod h1:Dgg2d5WGRr7YB8JJsELskBxLUhgwWppXPwlvmuQKhbc= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.19 h1:X1Tow7suZk9UCJHE1Iw9GMZJJl0dAnKXXP1NaSDHwmw= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.19/go.mod h1:/rARO8psX+4sfjUQXp5LLifjUt8DuATZ31WptNJTyQA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20 h1:2HvVAIq+YqgGotK6EkMf+KIEqTISmTYh5zLpYyeTo1Y= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20/go.mod h1:V4X406Y666khGa8ghKmphma/7C0DAtEQYhkq9z4vpbk= github.com/aws/aws-sdk-go-v2/service/kms v1.50.2 h1:UOHOXigIzDRaEU03CBQcZ5uW7FNC7E+vwfhsQWXl5RQ= github.com/aws/aws-sdk-go-v2/service/kms v1.50.2/go.mod h1:nAa5gmcmAmjXN3tGuhPSHLXFeWv+7nzKhjZzh8F7MH0= -github.com/aws/aws-sdk-go-v2/service/signin v1.0.7 h1:Y2cAXlClHsXkkOvWZFXATr34b0hxxloeQu/pAZz2row= -github.com/aws/aws-sdk-go-v2/service/signin v1.0.7/go.mod h1:idzZ7gmDeqeNrSPkdbtMp9qWMgcBwykA7P7Rzh5DXVU= -github.com/aws/aws-sdk-go-v2/service/sns v1.39.11 h1:Ke7RS0NuP9Xwk31prXYcFGA1Qfn8QmNWcxyjKPcXZdc= -github.com/aws/aws-sdk-go-v2/service/sns v1.39.11/go.mod h1:hdZDKzao0PBfJJygT7T92x2uVcWc/htqlhrjFIjnHDM= -github.com/aws/aws-sdk-go-v2/service/sqs v1.41.1 h1:Naqa0rqaFjNBUk3ggpg4B6aoz2ZvTopJJhjiar/8EEo= -github.com/aws/aws-sdk-go-v2/service/sqs v1.41.1/go.mod h1:RExz4LhRKY5iogQ1dz7KVa3JyBY0PBotXovrDj850Sc= -github.com/aws/aws-sdk-go-v2/service/sso v1.30.12 h1:iSsvB9EtQ09YrsmIc44Heqlx5ByGErqhPK1ZQLppias= -github.com/aws/aws-sdk-go-v2/service/sso v1.30.12/go.mod h1:fEWYKTRGoZNl8tZ77i61/ccwOMJdGxwOhWCkp6TXAr0= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.16 h1:EnUdUqRP1CNzt2DkV67tJx6XDN4xlfBFm+bzeNOQVb0= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.16/go.mod h1:Jic/xv0Rq/pFNCh3WwpH4BEqdbSAl+IyHro8LbibHD8= -github.com/aws/aws-sdk-go-v2/service/sts v1.41.8 h1:XQTQTF75vnug2TXS8m7CVJfC2nniYPZnO1D4Np761Oo= -github.com/aws/aws-sdk-go-v2/service/sts v1.41.8/go.mod h1:Xgx+PR1NUOjNmQY+tRMnouRp83JRM8pRMw/vCaVhPkI= -github.com/aws/constructs-go/constructs/v10 v10.5.1 h1:GYyCMb2QmJl/o4EMbS3LVqh/kRlLLBVsxzmV40jxOKY= -github.com/aws/constructs-go/constructs/v10 v10.5.1/go.mod h1:ZvLfkgiTKlbQhPYkZhWk+hPkevdX55ZeXQ2XqfC3xTw= -github.com/aws/jsii-runtime-go v1.126.0 h1:cT+yo8OMyWjgzXm7Pvy5Hq36irSIZ7bL/ds33YVDrEk= -github.com/aws/jsii-runtime-go v1.126.0/go.mod h1:67f+oydH0cMr//tkmNNj9QpKk02hNEEVu4CByxkpGB0= +github.com/aws/aws-sdk-go-v2/service/signin v1.0.8 h1:0GFOLzEbOyZABS3PhYfBIx2rNBACYcKty+XGkTgw1ow= +github.com/aws/aws-sdk-go-v2/service/signin v1.0.8/go.mod h1:LXypKvk85AROkKhOG6/YEcHFPoX+prKTowKnVdcaIxE= +github.com/aws/aws-sdk-go-v2/service/sns v1.39.14 h1:p8WdWDh5AwSZdp19Haa3XMyPCICi9Z375a/Nu3IIEZY= +github.com/aws/aws-sdk-go-v2/service/sns v1.39.14/go.mod h1:NKVY7DER6VXHkt2I/ycmHakALNboi3Rqwt4eEf/1Cnk= +github.com/aws/aws-sdk-go-v2/service/sqs v1.42.24 h1:JP2wjWGmUp8lTCZb13Dv0Eciyc1jbO8pd0HZVMHFlrc= +github.com/aws/aws-sdk-go-v2/service/sqs v1.42.24/go.mod h1:Ql9ziDutk8ERAN9HMaYANCW3lop451ppebkxEJMLCTM= +github.com/aws/aws-sdk-go-v2/service/sso v1.30.13 h1:kiIDLZ005EcKomYYITtfsjn7dtOwHDOFy7IbPXKek2o= +github.com/aws/aws-sdk-go-v2/service/sso v1.30.13/go.mod h1:2h/xGEowcW/g38g06g3KpRWDlT+OTfxxI0o1KqayAB8= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.17 h1:jzKAXIlhZhJbnYwHbvUQZEB8KfgAEuG0dc08Bkda7NU= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.17/go.mod h1:Al9fFsXjv4KfbzQHGe6V4NZSZQXecFcvaIF4e70FoRA= +github.com/aws/aws-sdk-go-v2/service/sts v1.41.9 h1:Cng+OOwCHmFljXIxpEVXAGMnBia8MSU6Ch5i9PgBkcU= +github.com/aws/aws-sdk-go-v2/service/sts v1.41.9/go.mod h1:LrlIndBDdjA/EeXeyNBle+gyCwTlizzW5ycgWnvIxkk= +github.com/aws/constructs-go/constructs/v10 v10.6.0 h1:fYUtscoB7dhGXBFuO1o6qvgYzkKUV2rMQna/n3O7Y/4= +github.com/aws/constructs-go/constructs/v10 v10.6.0/go.mod h1:/OFJ5HMGSjXyjQ4mNz32+XGA7S0S3ZWDXYtBSAuurEE= +github.com/aws/jsii-runtime-go v1.127.0 h1:eWnSOt0oR70WD0MA4nIBdBCykJpnfsYhVxA9hIhfv+U= +github.com/aws/jsii-runtime-go v1.127.0/go.mod h1:gun/1AY7mrOnd/oVbAGxETnU8iXoPzr8AO2eyGvnCx8= github.com/aws/smithy-go v1.24.2 h1:FzA3bu/nt/vDvmnkg+R8Xl46gmzEDam6mZ1hzmwXFng= github.com/aws/smithy-go v1.24.2/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/cdklabs/awscdk-asset-awscli-go/awscliv1/v2 v2.2.263 h1:lklcDiqF0Pn1gmmv3+1nK/k40U/mAjlvcfWHYLGtFFQ= github.com/cdklabs/awscdk-asset-awscli-go/awscliv1/v2 v2.2.263/go.mod h1:pQx6AJJlqdc7mbkWASwwlYobLIu3TiiLV24MPDl2q4w= -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/v50 v50.4.0 h1:BJFtfgG1q+prpcWHjRBrBnFVkbANVPt50+IyzGmDjm0= -github.com/cdklabs/cloud-assembly-schema-go/awscdkcloudassemblyschema/v50 v50.4.0/go.mod h1:BaMpV0CHovDzzwqpZbhtcl+E5wS02ZTWnoO6C/kElhw= +github.com/cdklabs/awscdk-asset-node-proxy-agent-go/nodeproxyagentv6/v2 v2.1.1 h1:qYRuYGUp/84mhbCl52EbURK01Z+AkAMIF3NZo4pQ+bI= +github.com/cdklabs/awscdk-asset-node-proxy-agent-go/nodeproxyagentv6/v2 v2.1.1/go.mod h1:UubJt6Phh7eY5PsJxCJaLMuaI6Itdu1aSWrh/XdIj6Q= +github.com/cdklabs/cloud-assembly-schema-go/awscdkcloudassemblyschema/v52 v52.2.0 h1:5qg8IX00JQaZn/G6+tVJYud5PFT6R0vcBlpwfT2TmLY= +github.com/cdklabs/cloud-assembly-schema-go/awscdkcloudassemblyschema/v52 v52.2.0/go.mod h1:lGh1yVFzv7Hvz+L/NnKvvT9ZRtLEYN6YrZxCuNLiy9o= 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/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -73,8 +73,8 @@ github.com/stretchr/objx v0.5.3 h1:jmXUvGomnU1o3W/V5h2VEradbpJDwGrzugQQvL0POH4= github.com/stretchr/objx v0.5.3/go.mod h1:rDQraq+vQZU7Fde9LOZLr8Tax6zZvy4kuNKF+QYS+U0= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/theory-cloud/tabletheory v1.4.2 h1:ytFmtGEZwbt9QAmQdtUgsRCug2DvWZoPFufqg96NABU= -github.com/theory-cloud/tabletheory v1.4.2/go.mod h1:L/ofefJDQQRU6ZMv57KfCoIlmB0Q5uZYUXLXrtYs+BE= +github.com/theory-cloud/tabletheory v1.5.0 h1:BrUpbkzr0os20c8g5DowX84qOF9w0a76sVkypaAPYrk= +github.com/theory-cloud/tabletheory v1.5.0/go.mod h1:SvW/SkYjgmUFp051IrtKmp5T9KTyHfKJIYCtSgzSLEo= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= diff --git a/py/pyproject.toml b/py/pyproject.toml index 1e80261f..b297d61a 100644 --- a/py/pyproject.toml +++ b/py/pyproject.toml @@ -11,7 +11,7 @@ readme = "README.md" license = "Apache-2.0" license-files = ["LICENSE"] dependencies = [ - "tabletheory-py @ https://github.com/theory-cloud/TableTheory/releases/download/v1.4.2/tabletheory_py-1.4.2-py3-none-any.whl", + "tabletheory-py @ https://github.com/theory-cloud/TableTheory/releases/download/v1.5.0/tabletheory_py-1.5.0-py3-none-any.whl", ] [tool.setuptools] diff --git a/third_party/README.md b/third_party/README.md index b0cbf1a7..60618cb9 100644 --- a/third_party/README.md +++ b/third_party/README.md @@ -5,12 +5,12 @@ upstream release is not yet available. ## `aws-cdk-lib` -`aws-cdk-lib-2.240.0+minimatch-10.2.4.tgz` is based on the upstream `aws-cdk-lib@2.240.0` npm tarball, with the +`aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz` is based on the upstream `aws-cdk-lib@2.244.0` npm tarball, with the bundled `minimatch` dependency updated to `10.2.4` to address OSV findings (SEC-2). Regeneration (example): -1) `npm pack aws-cdk-lib@2.240.0` +1) `npm pack aws-cdk-lib@2.244.0` 2) `npm pack minimatch@10.2.4` 3) Replace `package/node_modules/minimatch` in the `aws-cdk-lib` tarball with the contents of the `minimatch` tarball. -4) Repack as `aws-cdk-lib-2.240.0+minimatch-10.2.4.tgz` +4) Repack as `aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz` diff --git a/third_party/aws-cdk-lib-2.240.0+minimatch-10.2.4.tgz b/third_party/aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz similarity index 73% rename from third_party/aws-cdk-lib-2.240.0+minimatch-10.2.4.tgz rename to third_party/aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz index 47d5ae49..687d7ec0 100644 Binary files a/third_party/aws-cdk-lib-2.240.0+minimatch-10.2.4.tgz and b/third_party/aws-cdk-lib-2.244.0+minimatch-10.2.4.tgz differ diff --git a/ts/package-lock.json b/ts/package-lock.json index 5ea1d7ed..c9da7b60 100644 --- a/ts/package-lock.json +++ b/ts/package-lock.json @@ -9,20 +9,20 @@ "version": "0.18.2", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-apigatewaymanagementapi": "^3.971.0", - "@theory-cloud/tabletheory-ts": "https://github.com/theory-cloud/TableTheory/releases/download/v1.4.2/theory-cloud-tabletheory-ts-1.4.2.tgz" + "@aws-sdk/client-apigatewaymanagementapi": "^3.1015.0", + "@theory-cloud/tabletheory-ts": "https://github.com/theory-cloud/TableTheory/releases/download/v1.5.0/theory-cloud-tabletheory-ts-1.5.0.tgz" }, "devDependencies": { "@eslint/js": "9.39.2", - "@types/node": "25.2.3", - "@typescript-eslint/eslint-plugin": "8.53.1", - "@typescript-eslint/parser": "8.53.1", + "@types/node": "^25.5.0", + "@typescript-eslint/eslint-plugin": "^8.57.2", + "@typescript-eslint/parser": "^8.57.2", "eslint": "9.39.2", "eslint-config-prettier": "10.1.8", "eslint-plugin-import": "2.32.0", "eslint-plugin-promise": "7.2.1", - "eslint-plugin-unicorn": "62.0.0", - "globals": "17.0.0", + "eslint-plugin-unicorn": "^63.0.0", + "globals": "^17.4.0", "prettier": "3.8.1", "typescript": "5.9.3" }, @@ -156,49 +156,49 @@ } }, "node_modules/@aws-sdk/client-apigatewaymanagementapi": { - "version": "3.974.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-apigatewaymanagementapi/-/client-apigatewaymanagementapi-3.974.0.tgz", - "integrity": "sha512-KArIyw15XCBFp4avqfoWOdySYb/fpsHfIBI6wf8FQKzI2pHbj3Bk/3HCJmSpK0I47wSym73EMC2+KVlY0Q8L6Q==", + "version": "3.1015.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-apigatewaymanagementapi/-/client-apigatewaymanagementapi-3.1015.0.tgz", + "integrity": "sha512-HqsaRlSZoKHfyd6Bo+Enm/6eQpd0aTqaemvMCPlIO8D5q1WvKwukHhXejBIWreFkd0auSsYln9XzoBNHUUXLqg==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.0", - "@aws-sdk/credential-provider-node": "^3.972.1", - "@aws-sdk/middleware-host-header": "^3.972.1", - "@aws-sdk/middleware-logger": "^3.972.1", - "@aws-sdk/middleware-recursion-detection": "^3.972.1", - "@aws-sdk/middleware-user-agent": "^3.972.1", - "@aws-sdk/region-config-resolver": "^3.972.1", - "@aws-sdk/types": "^3.973.0", - "@aws-sdk/util-endpoints": "3.972.0", - "@aws-sdk/util-user-agent-browser": "^3.972.1", - "@aws-sdk/util-user-agent-node": "^3.972.1", - "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.21.0", - "@smithy/fetch-http-handler": "^5.3.9", - "@smithy/hash-node": "^4.2.8", - "@smithy/invalid-dependency": "^4.2.8", - "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.10", - "@smithy/middleware-retry": "^4.4.26", - "@smithy/middleware-serde": "^4.2.9", - "@smithy/middleware-stack": "^4.2.8", - "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.8", - "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.10.11", - "@smithy/types": "^4.12.0", - "@smithy/url-parser": "^4.2.8", - "@smithy/util-base64": "^4.3.0", - "@smithy/util-body-length-browser": "^4.2.0", - "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.25", - "@smithy/util-defaults-mode-node": "^4.2.28", - "@smithy/util-endpoints": "^3.2.8", - "@smithy/util-middleware": "^4.2.8", - "@smithy/util-retry": "^4.2.8", - "@smithy/util-utf8": "^4.2.0", + "@aws-sdk/core": "^3.973.24", + "@aws-sdk/credential-provider-node": "^3.972.25", + "@aws-sdk/middleware-host-header": "^3.972.8", + "@aws-sdk/middleware-logger": "^3.972.8", + "@aws-sdk/middleware-recursion-detection": "^3.972.8", + "@aws-sdk/middleware-user-agent": "^3.972.25", + "@aws-sdk/region-config-resolver": "^3.972.9", + "@aws-sdk/types": "^3.973.6", + "@aws-sdk/util-endpoints": "^3.996.5", + "@aws-sdk/util-user-agent-browser": "^3.972.8", + "@aws-sdk/util-user-agent-node": "^3.973.11", + "@smithy/config-resolver": "^4.4.13", + "@smithy/core": "^3.23.12", + "@smithy/fetch-http-handler": "^5.3.15", + "@smithy/hash-node": "^4.2.12", + "@smithy/invalid-dependency": "^4.2.12", + "@smithy/middleware-content-length": "^4.2.12", + "@smithy/middleware-endpoint": "^4.4.27", + "@smithy/middleware-retry": "^4.4.44", + "@smithy/middleware-serde": "^4.2.15", + "@smithy/middleware-stack": "^4.2.12", + "@smithy/node-config-provider": "^4.3.12", + "@smithy/node-http-handler": "^4.5.0", + "@smithy/protocol-http": "^5.3.12", + "@smithy/smithy-client": "^4.12.7", + "@smithy/types": "^4.13.1", + "@smithy/url-parser": "^4.2.12", + "@smithy/util-base64": "^4.3.2", + "@smithy/util-body-length-browser": "^4.2.2", + "@smithy/util-body-length-node": "^4.2.3", + "@smithy/util-defaults-mode-browser": "^4.3.43", + "@smithy/util-defaults-mode-node": "^4.2.47", + "@smithy/util-endpoints": "^3.3.3", + "@smithy/util-middleware": "^4.2.12", + "@smithy/util-retry": "^4.2.12", + "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -258,22 +258,6 @@ "node": ">=20.0.0" } }, - "node_modules/@aws-sdk/client-dynamodb/node_modules/@aws-sdk/util-endpoints": { - "version": "3.996.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.996.3.tgz", - "integrity": "sha512-yWIQSNiCjykLL+ezN5A+DfBb1gfXTytBxm57e64lYmwxDHNmInYHRJYYRAGWG1o77vKEiWaw4ui28e3yb1k5aQ==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "^3.973.4", - "@smithy/types": "^4.13.0", - "@smithy/url-parser": "^4.2.10", - "@smithy/util-endpoints": "^3.3.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, "node_modules/@aws-sdk/client-kms": { "version": "3.1002.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-kms/-/client-kms-3.1002.0.tgz", @@ -324,22 +308,6 @@ "node": ">=20.0.0" } }, - "node_modules/@aws-sdk/client-kms/node_modules/@aws-sdk/util-endpoints": { - "version": "3.996.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.996.3.tgz", - "integrity": "sha512-yWIQSNiCjykLL+ezN5A+DfBb1gfXTytBxm57e64lYmwxDHNmInYHRJYYRAGWG1o77vKEiWaw4ui28e3yb1k5aQ==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "^3.973.4", - "@smithy/types": "^4.13.0", - "@smithy/url-parser": "^4.2.10", - "@smithy/util-endpoints": "^3.3.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, "node_modules/@aws-sdk/client-sts": { "version": "3.1002.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.1002.0.tgz", @@ -390,40 +358,24 @@ "node": ">=20.0.0" } }, - "node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/util-endpoints": { - "version": "3.996.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.996.3.tgz", - "integrity": "sha512-yWIQSNiCjykLL+ezN5A+DfBb1gfXTytBxm57e64lYmwxDHNmInYHRJYYRAGWG1o77vKEiWaw4ui28e3yb1k5aQ==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "^3.973.4", - "@smithy/types": "^4.13.0", - "@smithy/url-parser": "^4.2.10", - "@smithy/util-endpoints": "^3.3.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, "node_modules/@aws-sdk/core": { - "version": "3.973.17", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.973.17.tgz", - "integrity": "sha512-VtgGP0TjbCeyp6DQpiBqJKbemTSIaN2bZc3UbeTDCani3lBCyxn75ouJYD6koSSp0bh7rKLEbUpiFsNCI7tr0w==", + "version": "3.973.24", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.973.24.tgz", + "integrity": "sha512-vvf82RYQu2GidWAuQq+uIzaPz9V0gSCXVqdVzRosgl5rXcspXOpSD3wFreGGW6AYymPr97Z69kjVnLePBxloDw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.4", - "@aws-sdk/xml-builder": "^3.972.9", - "@smithy/core": "^3.23.7", - "@smithy/node-config-provider": "^4.3.10", - "@smithy/property-provider": "^4.2.10", - "@smithy/protocol-http": "^5.3.10", - "@smithy/signature-v4": "^5.3.10", - "@smithy/smithy-client": "^4.12.1", - "@smithy/types": "^4.13.0", - "@smithy/util-base64": "^4.3.1", - "@smithy/util-middleware": "^4.2.10", - "@smithy/util-utf8": "^4.2.1", + "@aws-sdk/types": "^3.973.6", + "@aws-sdk/xml-builder": "^3.972.15", + "@smithy/core": "^3.23.12", + "@smithy/node-config-provider": "^4.3.12", + "@smithy/property-provider": "^4.2.12", + "@smithy/protocol-http": "^5.3.12", + "@smithy/signature-v4": "^5.3.12", + "@smithy/smithy-client": "^4.12.7", + "@smithy/types": "^4.13.1", + "@smithy/util-base64": "^4.3.2", + "@smithy/util-middleware": "^4.2.12", + "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -431,15 +383,15 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.972.15", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.15.tgz", - "integrity": "sha512-RhHQG1lhkWHL4tK1C/KDjaOeis+9U0tAMnWDiwiSVQZMC7CsST9Xin+sK89XywJ5g/tyABtb7TvFePJ4Te5XSQ==", + "version": "3.972.22", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.22.tgz", + "integrity": "sha512-cXp0VTDWT76p3hyK5D51yIKEfpf6/zsUvMfaB8CkyqadJxMQ8SbEeVroregmDlZbtG31wkj9ei0WnftmieggLg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.17", - "@aws-sdk/types": "^3.973.4", - "@smithy/property-provider": "^4.2.10", - "@smithy/types": "^4.13.0", + "@aws-sdk/core": "^3.973.24", + "@aws-sdk/types": "^3.973.6", + "@smithy/property-provider": "^4.2.12", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -447,20 +399,20 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.972.17", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.17.tgz", - "integrity": "sha512-b/bDL76p51+yQ+0O9ZDH5nw/ioE0sRYkjwjOwFWAWZXo6it2kQZUOXhVpjohx3ldKyUxt/SwAivjUu1Nr/PWlQ==", + "version": "3.972.24", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.24.tgz", + "integrity": "sha512-h694K7+tRuepSRJr09wTvQfaEnjzsKZ5s7fbESrVds02GT/QzViJ94/HCNwM7bUfFxqpPXHxulZfL6Cou0dwPg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.17", - "@aws-sdk/types": "^3.973.4", - "@smithy/fetch-http-handler": "^5.3.12", - "@smithy/node-http-handler": "^4.4.13", - "@smithy/property-provider": "^4.2.10", - "@smithy/protocol-http": "^5.3.10", - "@smithy/smithy-client": "^4.12.1", - "@smithy/types": "^4.13.0", - "@smithy/util-stream": "^4.5.16", + "@aws-sdk/core": "^3.973.24", + "@aws-sdk/types": "^3.973.6", + "@smithy/fetch-http-handler": "^5.3.15", + "@smithy/node-http-handler": "^4.5.0", + "@smithy/property-provider": "^4.2.12", + "@smithy/protocol-http": "^5.3.12", + "@smithy/smithy-client": "^4.12.7", + "@smithy/types": "^4.13.1", + "@smithy/util-stream": "^4.5.20", "tslib": "^2.6.2" }, "engines": { @@ -468,24 +420,24 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.972.15", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.15.tgz", - "integrity": "sha512-qWnM+wB8MmU2kKY7f4KowKjOjkwRosaFxrtseEEIefwoXn1SjN+CbHzXBVdTAQxxkbBiqhPgJ/WHiPtES4grRQ==", + "version": "3.972.24", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.24.tgz", + "integrity": "sha512-O46fFmv0RDFWiWEA9/e6oW92BnsyAXuEgTTasxHligjn2RCr9L/DK773m/NoFaL3ZdNAUz8WxgxunleMnHAkeQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.17", - "@aws-sdk/credential-provider-env": "^3.972.15", - "@aws-sdk/credential-provider-http": "^3.972.17", - "@aws-sdk/credential-provider-login": "^3.972.15", - "@aws-sdk/credential-provider-process": "^3.972.15", - "@aws-sdk/credential-provider-sso": "^3.972.15", - "@aws-sdk/credential-provider-web-identity": "^3.972.15", - "@aws-sdk/nested-clients": "^3.996.5", - "@aws-sdk/types": "^3.973.4", - "@smithy/credential-provider-imds": "^4.2.10", - "@smithy/property-provider": "^4.2.10", - "@smithy/shared-ini-file-loader": "^4.4.5", - "@smithy/types": "^4.13.0", + "@aws-sdk/core": "^3.973.24", + "@aws-sdk/credential-provider-env": "^3.972.22", + "@aws-sdk/credential-provider-http": "^3.972.24", + "@aws-sdk/credential-provider-login": "^3.972.24", + "@aws-sdk/credential-provider-process": "^3.972.22", + "@aws-sdk/credential-provider-sso": "^3.972.24", + "@aws-sdk/credential-provider-web-identity": "^3.972.24", + "@aws-sdk/nested-clients": "^3.996.14", + "@aws-sdk/types": "^3.973.6", + "@smithy/credential-provider-imds": "^4.2.12", + "@smithy/property-provider": "^4.2.12", + "@smithy/shared-ini-file-loader": "^4.4.7", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -493,18 +445,18 @@ } }, "node_modules/@aws-sdk/credential-provider-login": { - "version": "3.972.15", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.15.tgz", - "integrity": "sha512-x92FJy34/95wgu+qOGD8SHcgh1hZ9Qx2uFtQEGn4m9Ljou8ICIv3Ybq5yxdB7A60S8ZGCQB0mIopmjJwiLbh5g==", + "version": "3.972.24", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.24.tgz", + "integrity": "sha512-sIk8oa6AzDoUhxsR11svZESqvzGuXesw62Rl2oW6wguZx8i9cdGCvkFg+h5K7iucUZP8wyWibUbJMc+J66cu5g==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.17", - "@aws-sdk/nested-clients": "^3.996.5", - "@aws-sdk/types": "^3.973.4", - "@smithy/property-provider": "^4.2.10", - "@smithy/protocol-http": "^5.3.10", - "@smithy/shared-ini-file-loader": "^4.4.5", - "@smithy/types": "^4.13.0", + "@aws-sdk/core": "^3.973.24", + "@aws-sdk/nested-clients": "^3.996.14", + "@aws-sdk/types": "^3.973.6", + "@smithy/property-provider": "^4.2.12", + "@smithy/protocol-http": "^5.3.12", + "@smithy/shared-ini-file-loader": "^4.4.7", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -512,22 +464,22 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.972.16", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.16.tgz", - "integrity": "sha512-7mlt14Ee4rPFAFUVgpWE7+0CBhetJJyzVFqfIsMp7sgyOSm9Y/+qHZOWAuK5I4JNc+Y5PltvJ9kssTzRo92iXQ==", + "version": "3.972.25", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.25.tgz", + "integrity": "sha512-m7dR0Dsva2P+VUpL+VkC0WwiDby5pgmWXkRVDB5rlwv0jXJrQJf7YMtCoM8Wjk0H9jPeCYOxOXXcIgp/qp5Alg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "^3.972.15", - "@aws-sdk/credential-provider-http": "^3.972.17", - "@aws-sdk/credential-provider-ini": "^3.972.15", - "@aws-sdk/credential-provider-process": "^3.972.15", - "@aws-sdk/credential-provider-sso": "^3.972.15", - "@aws-sdk/credential-provider-web-identity": "^3.972.15", - "@aws-sdk/types": "^3.973.4", - "@smithy/credential-provider-imds": "^4.2.10", - "@smithy/property-provider": "^4.2.10", - "@smithy/shared-ini-file-loader": "^4.4.5", - "@smithy/types": "^4.13.0", + "@aws-sdk/credential-provider-env": "^3.972.22", + "@aws-sdk/credential-provider-http": "^3.972.24", + "@aws-sdk/credential-provider-ini": "^3.972.24", + "@aws-sdk/credential-provider-process": "^3.972.22", + "@aws-sdk/credential-provider-sso": "^3.972.24", + "@aws-sdk/credential-provider-web-identity": "^3.972.24", + "@aws-sdk/types": "^3.973.6", + "@smithy/credential-provider-imds": "^4.2.12", + "@smithy/property-provider": "^4.2.12", + "@smithy/shared-ini-file-loader": "^4.4.7", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -535,16 +487,16 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.972.15", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.15.tgz", - "integrity": "sha512-PrH3iTeD18y/8uJvQD2s/T87BTGhsdS/1KZU7ReWHXsplBwvCqi7AbnnNbML1pFlQwRWCE2RdSZFWDVId3CvkA==", + "version": "3.972.22", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.22.tgz", + "integrity": "sha512-Os32s8/4gTZjBk5BtoS/cuTILaj+K72d0dVG7TCJX/fC4598cxwLDmf1AEHEpER5oL3K//yETjvFaz0V8oO5Xw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.17", - "@aws-sdk/types": "^3.973.4", - "@smithy/property-provider": "^4.2.10", - "@smithy/shared-ini-file-loader": "^4.4.5", - "@smithy/types": "^4.13.0", + "@aws-sdk/core": "^3.973.24", + "@aws-sdk/types": "^3.973.6", + "@smithy/property-provider": "^4.2.12", + "@smithy/shared-ini-file-loader": "^4.4.7", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -552,18 +504,18 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.972.15", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.15.tgz", - "integrity": "sha512-M/+LBHTPKZxxXckM6m4dnJeR+jlm9NynH9b2YDswN4Zj2St05SK/crdL3Wy3WfJTZootnnhm3oTh87Usl7PS7w==", + "version": "3.972.24", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.24.tgz", + "integrity": "sha512-PaFv7snEfypU2yXkpvfyWgddEbDLtgVe51wdZlinhc2doubBjUzJZZpgwuF2Jenl1FBydMhNpMjD6SBUM3qdSA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.17", - "@aws-sdk/nested-clients": "^3.996.5", - "@aws-sdk/token-providers": "3.1002.0", - "@aws-sdk/types": "^3.973.4", - "@smithy/property-provider": "^4.2.10", - "@smithy/shared-ini-file-loader": "^4.4.5", - "@smithy/types": "^4.13.0", + "@aws-sdk/core": "^3.973.24", + "@aws-sdk/nested-clients": "^3.996.14", + "@aws-sdk/token-providers": "3.1015.0", + "@aws-sdk/types": "^3.973.6", + "@smithy/property-provider": "^4.2.12", + "@smithy/shared-ini-file-loader": "^4.4.7", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -571,17 +523,17 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.972.15", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.15.tgz", - "integrity": "sha512-QTH6k93v+UOfFam/ado8zc71tH+enTVyuvLy9uEWXX1x894dN5ovtf/MdBDgFwq3g6c9mbtgVJ4B+yBqDtXvdA==", + "version": "3.972.24", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.24.tgz", + "integrity": "sha512-J6H4R1nvr3uBTqD/EeIPAskrBtET4WFfNhpFySr2xW7bVZOXpQfPjrLSIx65jcNjBmLXzWq8QFLdVoGxiGG/SA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.17", - "@aws-sdk/nested-clients": "^3.996.5", - "@aws-sdk/types": "^3.973.4", - "@smithy/property-provider": "^4.2.10", - "@smithy/shared-ini-file-loader": "^4.4.5", - "@smithy/types": "^4.13.0", + "@aws-sdk/core": "^3.973.24", + "@aws-sdk/nested-clients": "^3.996.14", + "@aws-sdk/types": "^3.973.6", + "@smithy/property-provider": "^4.2.12", + "@smithy/shared-ini-file-loader": "^4.4.7", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -636,14 +588,14 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.6.tgz", - "integrity": "sha512-5XHwjPH1lHB+1q4bfC7T8Z5zZrZXfaLcjSMwTd1HPSPrCmPFMbg3UQ5vgNWcVj0xoX4HWqTGkSf2byrjlnRg5w==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.8.tgz", + "integrity": "sha512-wAr2REfKsqoKQ+OkNqvOShnBoh+nkPurDKW7uAeVSu6kUECnWlSJiPvnoqxGlfousEY/v9LfS9sNc46hjSYDIQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.4", - "@smithy/protocol-http": "^5.3.10", - "@smithy/types": "^4.13.0", + "@aws-sdk/types": "^3.973.6", + "@smithy/protocol-http": "^5.3.12", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -651,13 +603,13 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.972.6.tgz", - "integrity": "sha512-iFnaMFMQdljAPrvsCVKYltPt2j40LQqukAbXvW7v0aL5I+1GO7bZ/W8m12WxW3gwyK5p5u1WlHg8TSAizC5cZw==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.972.8.tgz", + "integrity": "sha512-CWl5UCM57WUFaFi5kB7IBY1UmOeLvNZAZ2/OZ5l20ldiJ3TiIz1pC65gYj8X0BCPWkeR1E32mpsCk1L1I4n+lA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.4", - "@smithy/types": "^4.13.0", + "@aws-sdk/types": "^3.973.6", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -665,15 +617,15 @@ } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.6.tgz", - "integrity": "sha512-dY4v3of5EEMvik6+UDwQ96KfUFDk8m1oZDdkSc5lwi4o7rFrjnv0A+yTV+gu230iybQZnKgDLg/rt2P3H+Vscw==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.8.tgz", + "integrity": "sha512-BnnvYs2ZEpdlmZ2PNlV2ZyQ8j8AEkMTjN79y/YA475ER1ByFYrkVR85qmhni8oeTaJcDqbx364wDpitDAA/wCA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.4", + "@aws-sdk/types": "^3.973.6", "@aws/lambda-invoke-store": "^0.2.2", - "@smithy/protocol-http": "^5.3.10", - "@smithy/types": "^4.13.0", + "@smithy/protocol-http": "^5.3.12", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -681,33 +633,18 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.972.17", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.17.tgz", - "integrity": "sha512-HHArkgWzomuwufXwheQqkddu763PWCpoNTq1dGjqXzJT/lojX3VlOqjNSR2Xvb6/T9ISfwYcMOcbFgUp4EWxXA==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "^3.973.17", - "@aws-sdk/types": "^3.973.4", - "@aws-sdk/util-endpoints": "^3.996.3", - "@smithy/core": "^3.23.7", - "@smithy/protocol-http": "^5.3.10", - "@smithy/types": "^4.13.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/middleware-user-agent/node_modules/@aws-sdk/util-endpoints": { - "version": "3.996.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.996.3.tgz", - "integrity": "sha512-yWIQSNiCjykLL+ezN5A+DfBb1gfXTytBxm57e64lYmwxDHNmInYHRJYYRAGWG1o77vKEiWaw4ui28e3yb1k5aQ==", + "version": "3.972.25", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.25.tgz", + "integrity": "sha512-QxiMPofvOt8SwSynTOmuZfvvPM1S9QfkESBxB22NMHTRXCJhR5BygLl8IXfC4jELiisQgwsgUby21GtXfX3f/g==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.4", - "@smithy/types": "^4.13.0", - "@smithy/url-parser": "^4.2.10", - "@smithy/util-endpoints": "^3.3.1", + "@aws-sdk/core": "^3.973.24", + "@aws-sdk/types": "^3.973.6", + "@aws-sdk/util-endpoints": "^3.996.5", + "@smithy/core": "^3.23.12", + "@smithy/protocol-http": "^5.3.12", + "@smithy/types": "^4.13.1", + "@smithy/util-retry": "^4.2.12", "tslib": "^2.6.2" }, "engines": { @@ -715,64 +652,48 @@ } }, "node_modules/@aws-sdk/nested-clients": { - "version": "3.996.5", - "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.996.5.tgz", - "integrity": "sha512-zn0WApcULn7Rtl6T+KP2CQTZo/7wOa2YV1yHQnbijTQoi4YXQHM8s21JcJzt33/mqPh8AdvWX1f+83KvKuxlZw==", + "version": "3.996.14", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.996.14.tgz", + "integrity": "sha512-fSESKvh1VbfjtV3QMnRkCPZWkUbQof6T/DOpiLp33yP2wA+rbwwnZeG3XT3Ekljgw2I8X4XaQPnw+zSR8yxJ5Q==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.17", - "@aws-sdk/middleware-host-header": "^3.972.6", - "@aws-sdk/middleware-logger": "^3.972.6", - "@aws-sdk/middleware-recursion-detection": "^3.972.6", - "@aws-sdk/middleware-user-agent": "^3.972.17", - "@aws-sdk/region-config-resolver": "^3.972.6", - "@aws-sdk/types": "^3.973.4", - "@aws-sdk/util-endpoints": "^3.996.3", - "@aws-sdk/util-user-agent-browser": "^3.972.6", - "@aws-sdk/util-user-agent-node": "^3.973.2", - "@smithy/config-resolver": "^4.4.9", - "@smithy/core": "^3.23.7", - "@smithy/fetch-http-handler": "^5.3.12", - "@smithy/hash-node": "^4.2.10", - "@smithy/invalid-dependency": "^4.2.10", - "@smithy/middleware-content-length": "^4.2.10", - "@smithy/middleware-endpoint": "^4.4.21", - "@smithy/middleware-retry": "^4.4.38", - "@smithy/middleware-serde": "^4.2.11", - "@smithy/middleware-stack": "^4.2.10", - "@smithy/node-config-provider": "^4.3.10", - "@smithy/node-http-handler": "^4.4.13", - "@smithy/protocol-http": "^5.3.10", - "@smithy/smithy-client": "^4.12.1", - "@smithy/types": "^4.13.0", - "@smithy/url-parser": "^4.2.10", - "@smithy/util-base64": "^4.3.1", - "@smithy/util-body-length-browser": "^4.2.1", - "@smithy/util-body-length-node": "^4.2.2", - "@smithy/util-defaults-mode-browser": "^4.3.37", - "@smithy/util-defaults-mode-node": "^4.2.40", - "@smithy/util-endpoints": "^3.3.1", - "@smithy/util-middleware": "^4.2.10", - "@smithy/util-retry": "^4.2.10", - "@smithy/util-utf8": "^4.2.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/nested-clients/node_modules/@aws-sdk/util-endpoints": { - "version": "3.996.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.996.3.tgz", - "integrity": "sha512-yWIQSNiCjykLL+ezN5A+DfBb1gfXTytBxm57e64lYmwxDHNmInYHRJYYRAGWG1o77vKEiWaw4ui28e3yb1k5aQ==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "^3.973.4", - "@smithy/types": "^4.13.0", - "@smithy/url-parser": "^4.2.10", - "@smithy/util-endpoints": "^3.3.1", + "@aws-sdk/core": "^3.973.24", + "@aws-sdk/middleware-host-header": "^3.972.8", + "@aws-sdk/middleware-logger": "^3.972.8", + "@aws-sdk/middleware-recursion-detection": "^3.972.8", + "@aws-sdk/middleware-user-agent": "^3.972.25", + "@aws-sdk/region-config-resolver": "^3.972.9", + "@aws-sdk/types": "^3.973.6", + "@aws-sdk/util-endpoints": "^3.996.5", + "@aws-sdk/util-user-agent-browser": "^3.972.8", + "@aws-sdk/util-user-agent-node": "^3.973.11", + "@smithy/config-resolver": "^4.4.13", + "@smithy/core": "^3.23.12", + "@smithy/fetch-http-handler": "^5.3.15", + "@smithy/hash-node": "^4.2.12", + "@smithy/invalid-dependency": "^4.2.12", + "@smithy/middleware-content-length": "^4.2.12", + "@smithy/middleware-endpoint": "^4.4.27", + "@smithy/middleware-retry": "^4.4.44", + "@smithy/middleware-serde": "^4.2.15", + "@smithy/middleware-stack": "^4.2.12", + "@smithy/node-config-provider": "^4.3.12", + "@smithy/node-http-handler": "^4.5.0", + "@smithy/protocol-http": "^5.3.12", + "@smithy/smithy-client": "^4.12.7", + "@smithy/types": "^4.13.1", + "@smithy/url-parser": "^4.2.12", + "@smithy/util-base64": "^4.3.2", + "@smithy/util-body-length-browser": "^4.2.2", + "@smithy/util-body-length-node": "^4.2.3", + "@smithy/util-defaults-mode-browser": "^4.3.43", + "@smithy/util-defaults-mode-node": "^4.2.47", + "@smithy/util-endpoints": "^3.3.3", + "@smithy/util-middleware": "^4.2.12", + "@smithy/util-retry": "^4.2.12", + "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -780,15 +701,15 @@ } }, "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.6.tgz", - "integrity": "sha512-Aa5PusHLXAqLTX1UKDvI3pHQJtIsF7Q+3turCHqfz/1F61/zDMWfbTC8evjhrrYVAtz9Vsv3SJ/waSUeu7B6gw==", + "version": "3.972.9", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.9.tgz", + "integrity": "sha512-eQ+dFU05ZRC/lC2XpYlYSPlXtX3VT8sn5toxN2Fv7EXlMoA2p9V7vUBKqHunfD4TRLpxUq8Y8Ol/nCqiv327Ng==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.4", - "@smithy/config-resolver": "^4.4.9", - "@smithy/node-config-provider": "^4.3.10", - "@smithy/types": "^4.13.0", + "@aws-sdk/types": "^3.973.6", + "@smithy/config-resolver": "^4.4.13", + "@smithy/node-config-provider": "^4.3.12", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -796,17 +717,17 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.1002.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1002.0.tgz", - "integrity": "sha512-x972uKOydFn4Rb0PZJzLdNW59rH0KWC78Q2JbQzZpGlGt0DxjYdDRwBG6F42B1MyaEwHGqO/tkGc4r3/PRFfMw==", + "version": "3.1015.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1015.0.tgz", + "integrity": "sha512-3OSD4y110nisRhHzFOjoEeHU4GQL4KpzkX9PxzWaiZe0Yg2+thZKM0Pn9DjYwezH5JYfh/K++xK/SE0IHGrmCQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.17", - "@aws-sdk/nested-clients": "^3.996.5", - "@aws-sdk/types": "^3.973.4", - "@smithy/property-provider": "^4.2.10", - "@smithy/shared-ini-file-loader": "^4.4.5", - "@smithy/types": "^4.13.0", + "@aws-sdk/core": "^3.973.24", + "@aws-sdk/nested-clients": "^3.996.14", + "@aws-sdk/types": "^3.973.6", + "@smithy/property-provider": "^4.2.12", + "@smithy/shared-ini-file-loader": "^4.4.7", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -814,12 +735,12 @@ } }, "node_modules/@aws-sdk/types": { - "version": "3.973.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.4.tgz", - "integrity": "sha512-RW60aH26Bsc016Y9B98hC0Plx6fK5P2v/iQYwMzrSjiDh1qRMUCP6KrXHYEHe3uFvKiOC93Z9zk4BJsUi6Tj1Q==", + "version": "3.973.6", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.6.tgz", + "integrity": "sha512-Atfcy4E++beKtwJHiDln2Nby8W/mam64opFPTiHEqgsthqeydFS1pY+OUlN1ouNOmf8ArPU/6cDS65anOP3KQw==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.13.0", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -827,28 +748,15 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.972.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.972.0.tgz", - "integrity": "sha512-6JHsl1V/a1ZW8D8AFfd4R52fwZPnZ5H4U6DS8m/bWT8qad72NvbOFAC7U2cDtFs2TShqUO3TEiX/EJibtY3ijg==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "3.972.0", - "@smithy/types": "^4.12.0", - "@smithy/url-parser": "^4.2.8", - "@smithy/util-endpoints": "^3.2.8", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types": { - "version": "3.972.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.972.0.tgz", - "integrity": "sha512-U7xBIbLSetONxb2bNzHyDgND3oKGoIfmknrEVnoEU4GUSs+0augUOIn9DIWGUO2ETcRFdsRUnmx9KhPT9Ojbug==", + "version": "3.996.5", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.996.5.tgz", + "integrity": "sha512-Uh93L5sXFNbyR5sEPMzUU8tJ++Ku97EY4udmC01nB8Zu+xfBPwpIwJ6F7snqQeq8h2pf+8SGN5/NoytfKgYPIw==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.12.0", + "@aws-sdk/types": "^3.973.6", + "@smithy/types": "^4.13.1", + "@smithy/url-parser": "^4.2.12", + "@smithy/util-endpoints": "^3.3.3", "tslib": "^2.6.2" }, "engines": { @@ -868,27 +776,28 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.6.tgz", - "integrity": "sha512-Fwr/llD6GOrFgQnKaI2glhohdGuBDfHfora6iG9qsBBBR8xv1SdCSwbtf5CWlUdCw5X7g76G/9Hf0Inh0EmoxA==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.8.tgz", + "integrity": "sha512-B3KGXJviV2u6Cdw2SDY2aDhoJkVfY/Q/Trwk2CMSkikE1Oi6gRzxhvhIfiRpHfmIsAhV4EA54TVEX8K6CbHbkA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.4", - "@smithy/types": "^4.13.0", + "@aws-sdk/types": "^3.973.6", + "@smithy/types": "^4.13.1", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.973.2", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.973.2.tgz", - "integrity": "sha512-lpaIuekdkpw7VRiik0IZmd6TyvEUcuLgKZ5fKRGpCA3I4PjrD/XH15sSwW+OptxQjNU4DEzSxag70spC9SluvA==", + "version": "3.973.11", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.973.11.tgz", + "integrity": "sha512-1qdXbXo2s5MMLpUvw00284LsbhtlQ4ul7Zzdn5n+7p4WVgCMLqhxImpHIrjSoc72E/fyc4Wq8dLtUld2Gsh+lA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-user-agent": "^3.972.17", - "@aws-sdk/types": "^3.973.4", - "@smithy/node-config-provider": "^4.3.10", - "@smithy/types": "^4.13.0", + "@aws-sdk/middleware-user-agent": "^3.972.25", + "@aws-sdk/types": "^3.973.6", + "@smithy/node-config-provider": "^4.3.12", + "@smithy/types": "^4.13.1", + "@smithy/util-config-provider": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -904,13 +813,13 @@ } }, "node_modules/@aws-sdk/xml-builder": { - "version": "3.972.9", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.9.tgz", - "integrity": "sha512-ItnlMgSqkPrUfJs7EsvU/01zw5UeIb2tNPhD09LBLHbg+g+HDiKibSLwpkuz/ZIlz4F2IMn+5XgE4AK/pfPuog==", + "version": "3.972.15", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.15.tgz", + "integrity": "sha512-PxMRlCFNiQnke9YR29vjFQwz4jq+6Q04rOVFeTDR2K7Qpv9h9FOWOxG+zJjageimYbWqE3bTuLjmryWHAWbvaA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.13.0", - "fast-xml-parser": "5.4.1", + "@smithy/types": "^4.13.1", + "fast-xml-parser": "5.5.8", "tslib": "^2.6.2" }, "engines": { @@ -1140,12 +1049,12 @@ "license": "MIT" }, "node_modules/@smithy/abort-controller": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.2.11.tgz", - "integrity": "sha512-Hj4WoYWMJnSpM6/kchsm4bUNTL9XiSyhvoMb2KIq4VJzyDt7JpGHUZHkVNPZVC7YE1tf8tPeVauxpFBKGW4/KQ==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.2.12.tgz", + "integrity": "sha512-xolrFw6b+2iYGl6EcOL7IJY71vvyZ0DJ3mcKtpykqPe2uscwtzDZJa1uVQXyP7w9Dd+kGwYnPbMsJrGISKiY/Q==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.13.0", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -1153,16 +1062,16 @@ } }, "node_modules/@smithy/config-resolver": { - "version": "4.4.10", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.10.tgz", - "integrity": "sha512-IRTkd6ps0ru+lTWnfnsbXzW80A8Od8p3pYiZnW98K2Hb20rqfsX7VTlfUwhrcOeSSy68Gn9WBofwPuw3e5CCsg==", + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.13.tgz", + "integrity": "sha512-iIzMC5NmOUP6WL6o8iPBjFhUhBZ9pPjpUpQYWMUFQqKyXXzOftbfK8zcQCz/jFV1Psmf05BK5ypx4K2r4Tnwdg==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.3.11", - "@smithy/types": "^4.13.0", + "@smithy/node-config-provider": "^4.3.12", + "@smithy/types": "^4.13.1", "@smithy/util-config-provider": "^4.2.2", - "@smithy/util-endpoints": "^3.3.2", - "@smithy/util-middleware": "^4.2.11", + "@smithy/util-endpoints": "^3.3.3", + "@smithy/util-middleware": "^4.2.12", "tslib": "^2.6.2" }, "engines": { @@ -1170,18 +1079,18 @@ } }, "node_modules/@smithy/core": { - "version": "3.23.8", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.23.8.tgz", - "integrity": "sha512-f7uPeBi7ehmLT4YF2u9j3qx6lSnurG1DLXOsTtJrIRNDF7VXio4BGHQ+SQteN/BrUVudbkuL4v7oOsRCzq4BqA==", + "version": "3.23.12", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.23.12.tgz", + "integrity": "sha512-o9VycsYNtgC+Dy3I0yrwCqv9CWicDnke0L7EVOrZtJpjb2t0EjaEofmMrYc0T1Kn3yk32zm6cspxF9u9Bj7e5w==", "license": "Apache-2.0", "dependencies": { - "@smithy/middleware-serde": "^4.2.12", - "@smithy/protocol-http": "^5.3.11", - "@smithy/types": "^4.13.0", + "@smithy/protocol-http": "^5.3.12", + "@smithy/types": "^4.13.1", + "@smithy/url-parser": "^4.2.12", "@smithy/util-base64": "^4.3.2", "@smithy/util-body-length-browser": "^4.2.2", - "@smithy/util-middleware": "^4.2.11", - "@smithy/util-stream": "^4.5.17", + "@smithy/util-middleware": "^4.2.12", + "@smithy/util-stream": "^4.5.20", "@smithy/util-utf8": "^4.2.2", "@smithy/uuid": "^1.1.2", "tslib": "^2.6.2" @@ -1191,15 +1100,15 @@ } }, "node_modules/@smithy/credential-provider-imds": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.11.tgz", - "integrity": "sha512-lBXrS6ku0kTj3xLmsJW0WwqWbGQ6ueooYyp/1L9lkyT0M02C+DWwYwc5aTyXFbRaK38ojALxNixg+LxKSHZc0g==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.12.tgz", + "integrity": "sha512-cr2lR792vNZcYMriSIj+Um3x9KWrjcu98kn234xA6reOAFMmbRpQMOv8KPgEmLLtx3eldU6c5wALKFqNOhugmg==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.3.11", - "@smithy/property-provider": "^4.2.11", - "@smithy/types": "^4.13.0", - "@smithy/url-parser": "^4.2.11", + "@smithy/node-config-provider": "^4.3.12", + "@smithy/property-provider": "^4.2.12", + "@smithy/types": "^4.13.1", + "@smithy/url-parser": "^4.2.12", "tslib": "^2.6.2" }, "engines": { @@ -1207,14 +1116,14 @@ } }, "node_modules/@smithy/fetch-http-handler": { - "version": "5.3.13", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.13.tgz", - "integrity": "sha512-U2Hcfl2s3XaYjikN9cT4mPu8ybDbImV3baXR0PkVlC0TTx808bRP3FaPGAzPtB8OByI+JqJ1kyS+7GEgae7+qQ==", + "version": "5.3.15", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.15.tgz", + "integrity": "sha512-T4jFU5N/yiIfrtrsb9uOQn7RdELdM/7HbyLNr6uO/mpkj1ctiVs7CihVr51w4LyQlXWDpXFn4BElf1WmQvZu/A==", "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^5.3.11", - "@smithy/querystring-builder": "^4.2.11", - "@smithy/types": "^4.13.0", + "@smithy/protocol-http": "^5.3.12", + "@smithy/querystring-builder": "^4.2.12", + "@smithy/types": "^4.13.1", "@smithy/util-base64": "^4.3.2", "tslib": "^2.6.2" }, @@ -1223,14 +1132,14 @@ } }, "node_modules/@smithy/hash-node": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.10.tgz", - "integrity": "sha512-1VzIOI5CcsvMDvP3iv1vG/RfLJVVVc67dCRyLSB2Hn9SWCZrDO3zvcIzj3BfEtqRW5kcMg5KAeVf1K3dR6nD3w==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.12.tgz", + "integrity": "sha512-QhBYbGrbxTkZ43QoTPrK72DoYviDeg6YKDrHTMJbbC+A0sml3kSjzFtXP7BtbyJnXojLfTQldGdUR0RGD8dA3w==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.13.0", - "@smithy/util-buffer-from": "^4.2.1", - "@smithy/util-utf8": "^4.2.1", + "@smithy/types": "^4.13.1", + "@smithy/util-buffer-from": "^4.2.2", + "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -1238,12 +1147,12 @@ } }, "node_modules/@smithy/invalid-dependency": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.10.tgz", - "integrity": "sha512-vy9KPNSFUU0ajFYk0sDZIYiUlAWGEAhRfehIr5ZkdFrRFTAuXEPUd41USuqHU6vvLX4r6Q9X7MKBco5+Il0Org==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.12.tgz", + "integrity": "sha512-/4F1zb7Z8LOu1PalTdESFHR0RbPwHd3FcaG1sI3UEIriQTWakysgJr65lc1jj6QY5ye7aFsisajotH6UhWfm/g==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.13.0", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -1263,13 +1172,13 @@ } }, "node_modules/@smithy/middleware-content-length": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.10.tgz", - "integrity": "sha512-TQZ9kX5c6XbjhaEBpvhSvMEZ0klBs1CFtOdPFwATZSbC9UeQfKHPLPN9Y+I6wZGMOavlYTOlHEPDrt42PMSH9w==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.12.tgz", + "integrity": "sha512-YE58Yz+cvFInWI/wOTrB+DbvUVz/pLn5mC5MvOV4fdRUc6qGwygyngcucRQjAhiCEbmfLOXX0gntSIcgMvAjmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^5.3.10", - "@smithy/types": "^4.13.0", + "@smithy/protocol-http": "^5.3.12", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -1277,18 +1186,18 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "4.4.22", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.22.tgz", - "integrity": "sha512-sc81w1o4Jy+/MAQlY3sQ8C7CmSpcvIi3TAzXblUv2hjG11BBSJi/Cw8vDx5BxMxapuH2I+Gc+45vWsgU07WZRQ==", + "version": "4.4.27", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.27.tgz", + "integrity": "sha512-T3TFfUgXQlpcg+UdzcAISdZpj4Z+XECZ/cefgA6wLBd6V4lRi0svN2hBouN/be9dXQ31X4sLWz3fAQDf+nt6BA==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.23.8", - "@smithy/middleware-serde": "^4.2.12", - "@smithy/node-config-provider": "^4.3.11", - "@smithy/shared-ini-file-loader": "^4.4.6", - "@smithy/types": "^4.13.0", - "@smithy/url-parser": "^4.2.11", - "@smithy/util-middleware": "^4.2.11", + "@smithy/core": "^3.23.12", + "@smithy/middleware-serde": "^4.2.15", + "@smithy/node-config-provider": "^4.3.12", + "@smithy/shared-ini-file-loader": "^4.4.7", + "@smithy/types": "^4.13.1", + "@smithy/url-parser": "^4.2.12", + "@smithy/util-middleware": "^4.2.12", "tslib": "^2.6.2" }, "engines": { @@ -1296,18 +1205,18 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "4.4.39", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.39.tgz", - "integrity": "sha512-MCVCxaCzuZgiHtHGV2Ke44nh6t4+8/tO+rTYOzrr2+G4nMLU/qbzNCWKBX54lyEaVcGQrfOJiG2f8imtiw+nIQ==", + "version": "4.4.44", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.44.tgz", + "integrity": "sha512-Y1Rav7m5CFRPQyM4CI0koD/bXjyjJu3EQxZZhtLGD88WIrBrQ7kqXM96ncd6rYnojwOo/u9MXu57JrEvu/nLrA==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.3.11", - "@smithy/protocol-http": "^5.3.11", - "@smithy/service-error-classification": "^4.2.11", - "@smithy/smithy-client": "^4.12.2", - "@smithy/types": "^4.13.0", - "@smithy/util-middleware": "^4.2.11", - "@smithy/util-retry": "^4.2.11", + "@smithy/node-config-provider": "^4.3.12", + "@smithy/protocol-http": "^5.3.12", + "@smithy/service-error-classification": "^4.2.12", + "@smithy/smithy-client": "^4.12.7", + "@smithy/types": "^4.13.1", + "@smithy/util-middleware": "^4.2.12", + "@smithy/util-retry": "^4.2.12", "@smithy/uuid": "^1.1.2", "tslib": "^2.6.2" }, @@ -1316,13 +1225,14 @@ } }, "node_modules/@smithy/middleware-serde": { - "version": "4.2.12", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.12.tgz", - "integrity": "sha512-W9g1bOLui7Xn5FABRVS0o3rXL0gfN37d/8I/W7i0N7oxjx9QecUmXEMSUMADTODwdtka9cN43t5BI2CodLJpng==", + "version": "4.2.15", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.15.tgz", + "integrity": "sha512-ExYhcltZSli0pgAKOpQQe1DLFBLryeZ22605y/YS+mQpdNWekum9Ujb/jMKfJKgjtz1AZldtwA/wCYuKJgjjlg==", "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^5.3.11", - "@smithy/types": "^4.13.0", + "@smithy/core": "^3.23.12", + "@smithy/protocol-http": "^5.3.12", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -1330,12 +1240,12 @@ } }, "node_modules/@smithy/middleware-stack": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.11.tgz", - "integrity": "sha512-s+eenEPW6RgliDk2IhjD2hWOxIx1NKrOHxEwNUaUXxYBxIyCcDfNULZ2Mu15E3kwcJWBedTET/kEASPV1A1Akg==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.12.tgz", + "integrity": "sha512-kruC5gRHwsCOuyCd4ouQxYjgRAym2uDlCvQ5acuMtRrcdfg7mFBg6blaxcJ09STpt3ziEkis6bhg1uwrWU7txw==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.13.0", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -1343,14 +1253,14 @@ } }, "node_modules/@smithy/node-config-provider": { - "version": "4.3.11", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.11.tgz", - "integrity": "sha512-xD17eE7kaLgBBGf5CZQ58hh2YmwK1Z0O8YhffwB/De2jsL0U3JklmhVYJ9Uf37OtUDLF2gsW40Xwwag9U869Gg==", + "version": "4.3.12", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.12.tgz", + "integrity": "sha512-tr2oKX2xMcO+rBOjobSwVAkV05SIfUKz8iI53rzxEmgW3GOOPOv0UioSDk+J8OpRQnpnhsO3Af6IEBabQBVmiw==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^4.2.11", - "@smithy/shared-ini-file-loader": "^4.4.6", - "@smithy/types": "^4.13.0", + "@smithy/property-provider": "^4.2.12", + "@smithy/shared-ini-file-loader": "^4.4.7", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -1358,15 +1268,15 @@ } }, "node_modules/@smithy/node-http-handler": { - "version": "4.4.14", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.4.14.tgz", - "integrity": "sha512-DamSqaU8nuk0xTJDrYnRzZndHwwRnyj/n/+RqGGCcBKB4qrQem0mSDiWdupaNWdwxzyMU91qxDmHOCazfhtO3A==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.5.0.tgz", + "integrity": "sha512-Rnq9vQWiR1+/I6NZZMNzJHV6pZYyEHt2ZnuV3MG8z2NNenC4i/8Kzttz7CjZiHSmsN5frhXhg17z3Zqjjhmz1A==", "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^4.2.11", - "@smithy/protocol-http": "^5.3.11", - "@smithy/querystring-builder": "^4.2.11", - "@smithy/types": "^4.13.0", + "@smithy/abort-controller": "^4.2.12", + "@smithy/protocol-http": "^5.3.12", + "@smithy/querystring-builder": "^4.2.12", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -1374,12 +1284,12 @@ } }, "node_modules/@smithy/property-provider": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.11.tgz", - "integrity": "sha512-14T1V64o6/ndyrnl1ze1ZhyLzIeYNN47oF/QU6P5m82AEtyOkMJTb0gO1dPubYjyyKuPD6OSVMPDKe+zioOnCg==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.12.tgz", + "integrity": "sha512-jqve46eYU1v7pZ5BM+fmkbq3DerkSluPr5EhvOcHxygxzD05ByDRppRwRPPpFrsFo5yDtCYLKu+kreHKVrvc7A==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.13.0", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -1387,12 +1297,12 @@ } }, "node_modules/@smithy/protocol-http": { - "version": "5.3.11", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.11.tgz", - "integrity": "sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ==", + "version": "5.3.12", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.12.tgz", + "integrity": "sha512-fit0GZK9I1xoRlR4jXmbLhoN0OdEpa96ul8M65XdmXnxXkuMxM0Y8HDT0Fh0Xb4I85MBvBClOzgSrV1X2s1Hxw==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.13.0", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -1400,12 +1310,12 @@ } }, "node_modules/@smithy/querystring-builder": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.11.tgz", - "integrity": "sha512-7spdikrYiljpket6u0up2Ck2mxhy7dZ0+TDd+S53Dg2DHd6wg+YNJrTCHiLdgZmEXZKI7LJZcwL3721ZRDFiqA==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.12.tgz", + "integrity": "sha512-6wTZjGABQufekycfDGMEB84BgtdOE/rCVTov+EDXQ8NHKTUNIp/j27IliwP7tjIU9LR+sSzyGBOXjeEtVgzCHg==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.13.0", + "@smithy/types": "^4.13.1", "@smithy/util-uri-escape": "^4.2.2", "tslib": "^2.6.2" }, @@ -1414,12 +1324,12 @@ } }, "node_modules/@smithy/querystring-parser": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.11.tgz", - "integrity": "sha512-nE3IRNjDltvGcoThD2abTozI1dkSy8aX+a2N1Rs55en5UsdyyIXgGEmevUL3okZFoJC77JgRGe99xYohhsjivQ==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.12.tgz", + "integrity": "sha512-P2OdvrgiAKpkPNKlKUtWbNZKB1XjPxM086NeVhK+W+wI46pIKdWBe5QyXvhUm3MEcyS/rkLvY8rZzyUdmyDZBw==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.13.0", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -1427,24 +1337,24 @@ } }, "node_modules/@smithy/service-error-classification": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.2.11.tgz", - "integrity": "sha512-HkMFJZJUhzU3HvND1+Yw/kYWXp4RPDLBWLcK1n+Vqw8xn4y2YiBhdww8IxhkQjP/QlZun5bwm3vcHc8AqIU3zw==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.2.12.tgz", + "integrity": "sha512-LlP29oSQN0Tw0b6D0Xo6BIikBswuIiGYbRACy5ujw/JgWSzTdYj46U83ssf6Ux0GyNJVivs2uReU8pt7Eu9okQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.13.0" + "@smithy/types": "^4.13.1" }, "engines": { "node": ">=18.0.0" } }, "node_modules/@smithy/shared-ini-file-loader": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.6.tgz", - "integrity": "sha512-IB/M5I8G0EeXZTHsAxpx51tMQ5R719F3aq+fjEB6VtNcCHDc0ajFDIGDZw+FW9GxtEkgTduiPpjveJdA/CX7sw==", + "version": "4.4.7", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.7.tgz", + "integrity": "sha512-HrOKWsUb+otTeo1HxVWeEb99t5ER1XrBi/xka2Wv6NVmTbuCUC1dvlrksdvxFtODLBjsC+PHK+fuy2x/7Ynyiw==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.13.0", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -1452,18 +1362,18 @@ } }, "node_modules/@smithy/signature-v4": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.10.tgz", - "integrity": "sha512-Wab3wW8468WqTKIxI+aZe3JYO52/RYT/8sDOdzkUhjnLakLe9qoQqIcfih/qxcF4qWEFoWBszY0mj5uxffaVXA==", + "version": "5.3.12", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.12.tgz", + "integrity": "sha512-B/FBwO3MVOL00DaRSXfXfa/TRXRheagt/q5A2NM13u7q+sHS59EOVGQNfG7DkmVtdQm5m3vOosoKAXSqn/OEgw==", "license": "Apache-2.0", "dependencies": { - "@smithy/is-array-buffer": "^4.2.1", - "@smithy/protocol-http": "^5.3.10", - "@smithy/types": "^4.13.0", - "@smithy/util-hex-encoding": "^4.2.1", - "@smithy/util-middleware": "^4.2.10", - "@smithy/util-uri-escape": "^4.2.1", - "@smithy/util-utf8": "^4.2.1", + "@smithy/is-array-buffer": "^4.2.2", + "@smithy/protocol-http": "^5.3.12", + "@smithy/types": "^4.13.1", + "@smithy/util-hex-encoding": "^4.2.2", + "@smithy/util-middleware": "^4.2.12", + "@smithy/util-uri-escape": "^4.2.2", + "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -1471,17 +1381,17 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.12.2.tgz", - "integrity": "sha512-HezY3UuG0k4T+4xhFKctLXCA5N2oN+Rtv+mmL8Gt7YmsUY2yhmcLyW75qrSzldfj75IsCW/4UhY3s20KcFnZqA==", + "version": "4.12.7", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.12.7.tgz", + "integrity": "sha512-q3gqnwml60G44FECaEEsdQMplYhDMZYCtYhMCzadCnRnnHIobZJjegmdoUo6ieLQlPUzvrMdIJUpx6DoPmzANQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.23.8", - "@smithy/middleware-endpoint": "^4.4.22", - "@smithy/middleware-stack": "^4.2.11", - "@smithy/protocol-http": "^5.3.11", - "@smithy/types": "^4.13.0", - "@smithy/util-stream": "^4.5.17", + "@smithy/core": "^3.23.12", + "@smithy/middleware-endpoint": "^4.4.27", + "@smithy/middleware-stack": "^4.2.12", + "@smithy/protocol-http": "^5.3.12", + "@smithy/types": "^4.13.1", + "@smithy/util-stream": "^4.5.20", "tslib": "^2.6.2" }, "engines": { @@ -1489,9 +1399,9 @@ } }, "node_modules/@smithy/types": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.13.0.tgz", - "integrity": "sha512-COuLsZILbbQsdrwKQpkkpyep7lCsByxwj7m0Mg5v66/ZTyenlfBc40/QFQ5chO0YN/PNEH1Bi3fGtfXPnYNeDw==", + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.13.1.tgz", + "integrity": "sha512-787F3yzE2UiJIQ+wYW1CVg2odHjmaWLGksnKQHUrK/lYZSEcy1msuLVvxaR/sI2/aDe9U+TBuLsXnr3vod1g0g==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -1501,13 +1411,13 @@ } }, "node_modules/@smithy/url-parser": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.11.tgz", - "integrity": "sha512-oTAGGHo8ZYc5VZsBREzuf5lf2pAurJQsccMusVZ85wDkX66ojEc/XauiGjzCj50A61ObFTPe6d7Pyt6UBYaing==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.12.tgz", + "integrity": "sha512-wOPKPEpso+doCZGIlr+e1lVI6+9VAKfL4kZWFgzVgGWY2hZxshNKod4l2LXS3PRC9otH/JRSjtEHqQ/7eLciRA==", "license": "Apache-2.0", "dependencies": { - "@smithy/querystring-parser": "^4.2.11", - "@smithy/types": "^4.13.0", + "@smithy/querystring-parser": "^4.2.12", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -1541,9 +1451,9 @@ } }, "node_modules/@smithy/util-body-length-node": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.2.2.tgz", - "integrity": "sha512-4rHqBvxtJEBvsZcFQSPQqXP2b/yy/YlB66KlcEgcH2WNoOKCKB03DSLzXmOsXjbl8dJ4OEYTn31knhdznwk7zw==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.2.3.tgz", + "integrity": "sha512-ZkJGvqBzMHVHE7r/hcuCxlTY8pQr1kMtdsVPs7ex4mMU+EAbcXppfo5NmyxMYi2XU49eqaz56j2gsk4dHHPG/g==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -1578,14 +1488,14 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "4.3.38", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.38.tgz", - "integrity": "sha512-c8P1mFLNxcsdAMabB8/VUQUbWzFmgujWi4bAXSggcqLYPc8V4U5abqFqOyn+dK4YT+q8UyCVkTO8807t4t2syA==", + "version": "4.3.43", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.43.tgz", + "integrity": "sha512-Qd/0wCKMaXxev/z00TvNzGCH2jlKKKxXP1aDxB6oKwSQthe3Og2dMhSayGCnsma1bK/kQX1+X7SMP99t6FgiiQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^4.2.11", - "@smithy/smithy-client": "^4.12.2", - "@smithy/types": "^4.13.0", + "@smithy/property-provider": "^4.2.12", + "@smithy/smithy-client": "^4.12.7", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -1593,17 +1503,17 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "4.2.41", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.41.tgz", - "integrity": "sha512-/UG+9MT3UZAR0fLzOtMJMfWGcjjHvgggq924x/CRy8vRbL+yFf3Z6vETlvq8vDH92+31P/1gSOFoo7303wN8WQ==", + "version": "4.2.47", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.47.tgz", + "integrity": "sha512-qSRbYp1EQ7th+sPFuVcVO05AE0QH635hycdEXlpzIahqHHf2Fyd/Zl+8v0XYMJ3cgDVPa0lkMefU7oNUjAP+DQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/config-resolver": "^4.4.10", - "@smithy/credential-provider-imds": "^4.2.11", - "@smithy/node-config-provider": "^4.3.11", - "@smithy/property-provider": "^4.2.11", - "@smithy/smithy-client": "^4.12.2", - "@smithy/types": "^4.13.0", + "@smithy/config-resolver": "^4.4.13", + "@smithy/credential-provider-imds": "^4.2.12", + "@smithy/node-config-provider": "^4.3.12", + "@smithy/property-provider": "^4.2.12", + "@smithy/smithy-client": "^4.12.7", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -1611,13 +1521,13 @@ } }, "node_modules/@smithy/util-endpoints": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.3.2.tgz", - "integrity": "sha512-+4HFLpE5u29AbFlTdlKIT7jfOzZ8PDYZKTb3e+AgLz986OYwqTourQ5H+jg79/66DB69Un1+qKecLnkZdAsYcA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.3.3.tgz", + "integrity": "sha512-VACQVe50j0HZPjpwWcjyT51KUQ4AnsvEaQ2lKHOSL4mNLD0G9BjEniQ+yCt1qqfKfiAHRAts26ud7hBjamrwig==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.3.11", - "@smithy/types": "^4.13.0", + "@smithy/node-config-provider": "^4.3.12", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -1637,12 +1547,12 @@ } }, "node_modules/@smithy/util-middleware": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.11.tgz", - "integrity": "sha512-r3dtF9F+TpSZUxpOVVtPfk09Rlo4lT6ORBqEvX3IBT6SkQAdDSVKR5GcfmZbtl7WKhKnmb3wbDTQ6ibR2XHClw==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.12.tgz", + "integrity": "sha512-Er805uFUOvgc0l8nv0e0su0VFISoxhJ/AwOn3gL2NWNY2LUEldP5WtVcRYSQBcjg0y9NfG8JYrCJaYDpupBHJQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.13.0", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -1650,13 +1560,13 @@ } }, "node_modules/@smithy/util-retry": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.2.11.tgz", - "integrity": "sha512-XSZULmL5x6aCTTii59wJqKsY1l3eMIAomRAccW7Tzh9r8s7T/7rdo03oektuH5jeYRlJMPcNP92EuRDvk9aXbw==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.2.12.tgz", + "integrity": "sha512-1zopLDUEOwumjcHdJ1mwBHddubYF8GMQvstVCLC54Y46rqoHwlIU+8ZzUeaBcD+WCJHyDGSeZ2ml9YSe9aqcoQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/service-error-classification": "^4.2.11", - "@smithy/types": "^4.13.0", + "@smithy/service-error-classification": "^4.2.12", + "@smithy/types": "^4.13.1", "tslib": "^2.6.2" }, "engines": { @@ -1664,14 +1574,14 @@ } }, "node_modules/@smithy/util-stream": { - "version": "4.5.17", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.17.tgz", - "integrity": "sha512-793BYZ4h2JAQkNHcEnyFxDTcZbm9bVybD0UV/LEWmZ5bkTms7JqjfrLMi2Qy0E5WFcCzLwCAPgcvcvxoeALbAQ==", + "version": "4.5.20", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.20.tgz", + "integrity": "sha512-4yXLm5n/B5SRBR2p8cZ90Sbv4zL4NKsgxdzCzp/83cXw2KxLEumt5p+GAVyRNZgQOSrzXn9ARpO0lUe8XSlSDw==", "license": "Apache-2.0", "dependencies": { - "@smithy/fetch-http-handler": "^5.3.13", - "@smithy/node-http-handler": "^4.4.14", - "@smithy/types": "^4.13.0", + "@smithy/fetch-http-handler": "^5.3.15", + "@smithy/node-http-handler": "^4.5.0", + "@smithy/types": "^4.13.1", "@smithy/util-base64": "^4.3.2", "@smithy/util-buffer-from": "^4.2.2", "@smithy/util-hex-encoding": "^4.2.2", @@ -1734,9 +1644,9 @@ } }, "node_modules/@theory-cloud/tabletheory-ts": { - "version": "1.4.2", - "resolved": "https://github.com/theory-cloud/TableTheory/releases/download/v1.4.2/theory-cloud-tabletheory-ts-1.4.2.tgz", - "integrity": "sha512-SwmVVFlRktZUBnDPzYHCU0kUKBnCE0r8rC2yPraxbY8oMYbqIRoyainaShRuO4h2HBVGSXfdb9LHHTXYpt13ww==", + "version": "1.5.0", + "resolved": "https://github.com/theory-cloud/TableTheory/releases/download/v1.5.0/theory-cloud-tabletheory-ts-1.5.0.tgz", + "integrity": "sha512-EtzpNYFPqlEjL8l4vfV7jef3QnsVBwa1tsr+DJSFILFyotquQGBLzz6G22vLI80+79YRRWMZMqQxlyrbvSzufA==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/client-dynamodb": "^3.1002.0", @@ -1770,27 +1680,27 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.2.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.2.3.tgz", - "integrity": "sha512-m0jEgYlYz+mDJZ2+F4v8D1AyQb+QzsNqRuI7xg1VQX/KlKS0qT9r1Mo16yo5F/MtifXFgaofIFsdFMox2SxIbQ==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", + "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.16.0" + "undici-types": "~7.18.0" } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.1.tgz", - "integrity": "sha512-cFYYFZ+oQFi6hUnBTbLRXfTJiaQtYE3t4O692agbBl+2Zy+eqSKWtPjhPXJu1G7j4RLjKgeJPDdq3EqOwmX5Ag==", + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.2.tgz", + "integrity": "sha512-NZZgp0Fm2IkD+La5PR81sd+g+8oS6JwJje+aRWsDocxHkjyRw0J5L5ZTlN3LI1LlOcGL7ph3eaIUmTXMIjLk0w==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.53.1", - "@typescript-eslint/type-utils": "8.53.1", - "@typescript-eslint/utils": "8.53.1", - "@typescript-eslint/visitor-keys": "8.53.1", + "@typescript-eslint/scope-manager": "8.57.2", + "@typescript-eslint/type-utils": "8.57.2", + "@typescript-eslint/utils": "8.57.2", + "@typescript-eslint/visitor-keys": "8.57.2", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.4.0" @@ -1803,8 +1713,8 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.53.1", - "eslint": "^8.57.0 || ^9.0.0", + "@typescript-eslint/parser": "^8.57.2", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, @@ -1819,16 +1729,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.53.1.tgz", - "integrity": "sha512-nm3cvFN9SqZGXjmw5bZ6cGmvJSyJPn0wU9gHAZZHDnZl2wF9PhHv78Xf06E0MaNk4zLVHL8hb2/c32XvyJOLQg==", + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.57.2.tgz", + "integrity": "sha512-30ScMRHIAD33JJQkgfGW1t8CURZtjc2JpTrq5n2HFhOefbAhb7ucc7xJwdWcrEtqUIYJ73Nybpsggii6GtAHjA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.53.1", - "@typescript-eslint/types": "8.53.1", - "@typescript-eslint/typescript-estree": "8.53.1", - "@typescript-eslint/visitor-keys": "8.53.1", + "@typescript-eslint/scope-manager": "8.57.2", + "@typescript-eslint/types": "8.57.2", + "@typescript-eslint/typescript-estree": "8.57.2", + "@typescript-eslint/visitor-keys": "8.57.2", "debug": "^4.4.3" }, "engines": { @@ -1839,19 +1749,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.1.tgz", - "integrity": "sha512-WYC4FB5Ra0xidsmlPb+1SsnaSKPmS3gsjIARwbEkHkoWloQmuzcfypljaJcR78uyLA1h8sHdWWPHSLDI+MtNog==", + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.57.2.tgz", + "integrity": "sha512-FuH0wipFywXRTHf+bTTjNyuNQQsQC3qh/dYzaM4I4W0jrCqjCVuUh99+xd9KamUfmCGPvbO8NDngo/vsnNVqgw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.53.1", - "@typescript-eslint/types": "^8.53.1", + "@typescript-eslint/tsconfig-utils": "^8.57.2", + "@typescript-eslint/types": "^8.57.2", "debug": "^4.4.3" }, "engines": { @@ -1866,14 +1776,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.1.tgz", - "integrity": "sha512-Lu23yw1uJMFY8cUeq7JlrizAgeQvWugNQzJp8C3x8Eo5Jw5Q2ykMdiiTB9vBVOOUBysMzmRRmUfwFrZuI2C4SQ==", + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.57.2.tgz", + "integrity": "sha512-snZKH+W4WbWkrBqj4gUNRIGb/jipDW3qMqVJ4C9rzdFc+wLwruxk+2a5D+uoFcKPAqyqEnSb4l2ULuZf95eSkw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.53.1", - "@typescript-eslint/visitor-keys": "8.53.1" + "@typescript-eslint/types": "8.57.2", + "@typescript-eslint/visitor-keys": "8.57.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1884,9 +1794,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.1.tgz", - "integrity": "sha512-qfvLXS6F6b1y43pnf0pPbXJ+YoXIC7HKg0UGZ27uMIemKMKA6XH2DTxsEDdpdN29D+vHV07x/pnlPNVLhdhWiA==", + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.2.tgz", + "integrity": "sha512-3Lm5DSM+DCowsUOJC+YqHHnKEfFh5CoGkj5Z31NQSNF4l5wdOwqGn99wmwN/LImhfY3KJnmordBq/4+VDe2eKw==", "dev": true, "license": "MIT", "engines": { @@ -1901,15 +1811,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.53.1.tgz", - "integrity": "sha512-MOrdtNvyhy0rHyv0ENzub1d4wQYKb2NmIqG7qEqPWFW7Mpy2jzFC3pQ2yKDvirZB7jypm5uGjF2Qqs6OIqu47w==", + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.57.2.tgz", + "integrity": "sha512-Co6ZCShm6kIbAM/s+oYVpKFfW7LBc6FXoPXjTRQ449PPNBY8U0KZXuevz5IFuuUj2H9ss40atTaf9dlGLzbWZg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.53.1", - "@typescript-eslint/typescript-estree": "8.53.1", - "@typescript-eslint/utils": "8.53.1", + "@typescript-eslint/types": "8.57.2", + "@typescript-eslint/typescript-estree": "8.57.2", + "@typescript-eslint/utils": "8.57.2", "debug": "^4.4.3", "ts-api-utils": "^2.4.0" }, @@ -1921,14 +1831,14 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.1.tgz", - "integrity": "sha512-jr/swrr2aRmUAUjW5/zQHbMaui//vQlsZcJKijZf3M26bnmLj8LyZUpj8/Rd6uzaek06OWsqdofN/Thenm5O8A==", + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.57.2.tgz", + "integrity": "sha512-/iZM6FnM4tnx9csuTxspMW4BOSegshwX5oBDznJ7S4WggL7Vczz5d2W11ecc4vRrQMQHXRSxzrCsyG5EsPPTbA==", "dev": true, "license": "MIT", "engines": { @@ -1940,18 +1850,18 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.1.tgz", - "integrity": "sha512-RGlVipGhQAG4GxV1s34O91cxQ/vWiHJTDHbXRr0li2q/BGg3RR/7NM8QDWgkEgrwQYCvmJV9ichIwyoKCQ+DTg==", + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.2.tgz", + "integrity": "sha512-2MKM+I6g8tJxfSmFKOnHv2t8Sk3T6rF20A1Puk0svLK+uVapDZB/4pfAeB7nE83uAZrU6OxW+HmOd5wHVdXwXA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.53.1", - "@typescript-eslint/tsconfig-utils": "8.53.1", - "@typescript-eslint/types": "8.53.1", - "@typescript-eslint/visitor-keys": "8.53.1", + "@typescript-eslint/project-service": "8.57.2", + "@typescript-eslint/tsconfig-utils": "8.57.2", + "@typescript-eslint/types": "8.57.2", + "@typescript-eslint/visitor-keys": "8.57.2", "debug": "^4.4.3", - "minimatch": "^9.0.5", + "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.4.0" @@ -1978,9 +1888,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", - "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", "dev": true, "license": "MIT", "dependencies": { @@ -2007,9 +1917,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -2020,16 +1930,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.1.tgz", - "integrity": "sha512-c4bMvGVWW4hv6JmDUEG7fSYlWOl3II2I4ylt0NM+seinYQlZMQIaKaXIIVJWt9Ofh6whrpM+EdDQXKXjNovvrg==", + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.57.2.tgz", + "integrity": "sha512-krRIbvPK1ju1WBKIefiX+bngPs+odIQUtR7kymzPfo1POVw3jlF+nLkmexdSSd4UCbDcQn+wMBATOOmpBbqgKg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.53.1", - "@typescript-eslint/types": "8.53.1", - "@typescript-eslint/typescript-estree": "8.53.1" + "@typescript-eslint/scope-manager": "8.57.2", + "@typescript-eslint/types": "8.57.2", + "@typescript-eslint/typescript-estree": "8.57.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2039,19 +1949,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.1.tgz", - "integrity": "sha512-oy+wV7xDKFPRyNggmXuZQSBzvoLnpmJs+GhzRhPjrxl2b/jIlyjVokzm47CZCDUdXKr2zd7ZLodPfOBpOPyPlg==", + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.2.tgz", + "integrity": "sha512-zhahknjobV2FiD6Ee9iLbS7OV9zi10rG26odsQdfBO/hjSzUQbkIYgda+iNKK1zNiW2ey+Lf8MU5btN17V3dUw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.53.1", - "eslint-visitor-keys": "^4.2.1" + "@typescript-eslint/types": "8.57.2", + "eslint-visitor-keys": "^5.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2062,13 +1972,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", "dev": true, "license": "Apache-2.0", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" @@ -3078,20 +2988,18 @@ } }, "node_modules/eslint-plugin-unicorn": { - "version": "62.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-62.0.0.tgz", - "integrity": "sha512-HIlIkGLkvf29YEiS/ImuDZQbP12gWyx5i3C6XrRxMvVdqMroCI9qoVYCoIl17ChN+U89pn9sVwLxhIWj5nEc7g==", + "version": "63.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-63.0.0.tgz", + "integrity": "sha512-Iqecl9118uQEXYh7adylgEmGfkn5es3/mlQTLLkd4pXkIk9CTGrAbeUux+YljSa2ohXCBmQQ0+Ej1kZaFgcfkA==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", "@eslint-community/eslint-utils": "^4.9.0", - "@eslint/plugin-kit": "^0.4.0", "change-case": "^5.4.4", "ci-info": "^4.3.1", "clean-regexp": "^1.0.0", "core-js-compat": "^3.46.0", - "esquery": "^1.6.0", "find-up-simple": "^1.0.1", "globals": "^16.4.0", "indent-string": "^5.0.0", @@ -3518,9 +3426,9 @@ } }, "node_modules/globals": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.0.0.tgz", - "integrity": "sha512-gv5BeD2EssA793rlFWVPMMCqefTlpusw6/2TbAVMy0FzcG8wKJn4O+NqJ4+XWmmwrayJgw5TzrmWjFgmz1XPqw==", + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.4.0.tgz", + "integrity": "sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==", "dev": true, "license": "MIT", "engines": { @@ -4520,9 +4428,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { @@ -5009,9 +4917,9 @@ } }, "node_modules/strnum": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.2.0.tgz", - "integrity": "sha512-Y7Bj8XyJxnPAORMZj/xltsfo55uOiyHcU2tnAVzHUnSJR/KsEX+9RoDeXEnsXtl/CX4fAcrt64gZ13aGaWPeBg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.2.2.tgz", + "integrity": "sha512-DnR90I+jtXNSTXWdwrEy9FakW7UX+qUZg28gj5fk2vxxl7uS/3bpI4fjFYVmdK9etptYBPNkpahuQnEwhwECqA==", "funding": [ { "type": "github", @@ -5064,9 +4972,9 @@ } }, "node_modules/ts-api-utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", - "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", "dev": true, "license": "MIT", "engines": { @@ -5220,9 +5128,9 @@ } }, "node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", "dev": true, "license": "MIT" }, diff --git a/ts/package.json b/ts/package.json index 80e33104..f201ef92 100644 --- a/ts/package.json +++ b/ts/package.json @@ -20,8 +20,8 @@ } }, "dependencies": { - "@aws-sdk/client-apigatewaymanagementapi": "^3.971.0", - "@theory-cloud/tabletheory-ts": "https://github.com/theory-cloud/TableTheory/releases/download/v1.4.2/theory-cloud-tabletheory-ts-1.4.2.tgz" + "@aws-sdk/client-apigatewaymanagementapi": "^3.1015.0", + "@theory-cloud/tabletheory-ts": "https://github.com/theory-cloud/TableTheory/releases/download/v1.5.0/theory-cloud-tabletheory-ts-1.5.0.tgz" }, "overrides": { "@typescript-eslint/typescript-estree": { @@ -48,15 +48,15 @@ ], "devDependencies": { "@eslint/js": "9.39.2", - "@types/node": "25.2.3", - "@typescript-eslint/eslint-plugin": "8.53.1", - "@typescript-eslint/parser": "8.53.1", + "@types/node": "^25.5.0", + "@typescript-eslint/eslint-plugin": "^8.57.2", + "@typescript-eslint/parser": "^8.57.2", "eslint": "9.39.2", "eslint-config-prettier": "10.1.8", "eslint-plugin-import": "2.32.0", "eslint-plugin-promise": "7.2.1", - "eslint-plugin-unicorn": "62.0.0", - "globals": "17.0.0", + "eslint-plugin-unicorn": "^63.0.0", + "globals": "^17.4.0", "prettier": "3.8.1", "typescript": "5.9.3" },