terraconstructs 0.0.11 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +104486 -34582
- package/lib/aws/arn.js +1 -1
- package/lib/aws/aws-construct.d.ts +1 -1
- package/lib/aws/aws-construct.js +28 -2
- package/lib/aws/aws-stack.d.ts +2 -4
- package/lib/aws/aws-stack.js +21 -8
- package/lib/aws/aws-tags.d.ts +58 -0
- package/lib/aws/aws-tags.js +77 -0
- package/lib/aws/cloudwatch/actions/ec2.js +1 -1
- package/lib/aws/cloudwatch/actions/lambda.js +1 -1
- package/lib/aws/cloudwatch/alarm-base.js +1 -1
- package/lib/aws/cloudwatch/alarm-rule.js +1 -1
- package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
- package/lib/aws/cloudwatch/alarm.js +1 -1
- package/lib/aws/cloudwatch/composite-alarm.js +1 -1
- package/lib/aws/cloudwatch/dashboard.js +1 -1
- package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
- package/lib/aws/cloudwatch/graph.js +8 -8
- package/lib/aws/cloudwatch/layout.js +3 -3
- package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
- package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
- package/lib/aws/cloudwatch/log-group.js +1 -1
- package/lib/aws/cloudwatch/log-query.js +1 -1
- package/lib/aws/cloudwatch/log-stream.js +1 -1
- package/lib/aws/cloudwatch/metric-filter.d.ts +1 -1
- package/lib/aws/cloudwatch/metric-filter.js +4 -4
- package/lib/aws/cloudwatch/metric.js +2 -2
- package/lib/aws/cloudwatch/pattern.js +3 -3
- package/lib/aws/cloudwatch/policy.js +1 -1
- package/lib/aws/cloudwatch/private/env-tokens.js +5 -6
- package/lib/aws/cloudwatch/private/metric-util.js +4 -5
- package/lib/aws/cloudwatch/private/object.js +2 -3
- package/lib/aws/cloudwatch/private/rendering.js +3 -3
- package/lib/aws/cloudwatch/private/statistic.js +6 -7
- package/lib/aws/cloudwatch/query-definition.js +2 -2
- package/lib/aws/cloudwatch/stats.js +1 -1
- package/lib/aws/cloudwatch/subscription-filter.d.ts +1 -1
- package/lib/aws/cloudwatch/subscription-filter.js +4 -4
- package/lib/aws/cloudwatch/text.js +1 -1
- package/lib/aws/cloudwatch/variable.js +3 -3
- package/lib/aws/cloudwatch/widget.d.ts +1 -1
- package/lib/aws/cloudwatch/widget.js +4 -4
- package/lib/aws/compute/activity.js +3 -2
- package/lib/aws/compute/alb/application-listener-action.d.ts +334 -0
- package/lib/aws/compute/alb/application-listener-action.js +281 -0
- package/lib/aws/compute/alb/application-listener-certificate.d.ts +35 -0
- package/lib/aws/compute/alb/application-listener-certificate.js +35 -0
- package/lib/aws/compute/alb/application-listener-rule.d.ts +233 -0
- package/lib/aws/compute/alb/application-listener-rule.js +220 -0
- package/lib/aws/compute/alb/application-listener.d.ts +574 -0
- package/lib/aws/compute/alb/application-listener.js +538 -0
- package/lib/aws/compute/alb/application-load-balancer.d.ts +715 -0
- package/lib/aws/compute/alb/application-load-balancer.js +780 -0
- package/lib/aws/compute/alb/application-target-group.d.ts +339 -0
- package/lib/aws/compute/alb/application-target-group.js +427 -0
- package/lib/aws/compute/alb/conditions.d.ts +61 -0
- package/lib/aws/compute/alb/conditions.js +164 -0
- package/lib/aws/compute/alb/trust-store-revocation.d.ts +59 -0
- package/lib/aws/compute/alb/trust-store-revocation.js +46 -0
- package/lib/aws/compute/alb/trust-store.d.ts +86 -0
- package/lib/aws/compute/alb/trust-store.js +79 -0
- package/lib/aws/compute/architecture.js +1 -1
- package/lib/aws/compute/aspects/require-imdsv2-aspect.d.ts +75 -0
- package/lib/aws/compute/aspects/require-imdsv2-aspect.js +106 -0
- package/lib/aws/compute/bastion-host.d.ts +172 -0
- package/lib/aws/compute/bastion-host.js +114 -0
- package/lib/aws/compute/chain.js +1 -1
- package/lib/aws/compute/cidr-splits.d.ts +49 -0
- package/lib/aws/compute/cidr-splits.js +59 -0
- package/lib/aws/compute/client-vpn-authorization-rule.d.ts +43 -0
- package/lib/aws/compute/client-vpn-authorization-rule.js +30 -0
- package/lib/aws/compute/client-vpn-endpoint-types.d.ts +62 -0
- package/lib/aws/compute/client-vpn-endpoint-types.js +25 -0
- package/lib/aws/compute/client-vpn-endpoint.d.ts +239 -0
- package/lib/aws/compute/client-vpn-endpoint.js +259 -0
- package/lib/aws/compute/client-vpn-route.d.ts +67 -0
- package/lib/aws/compute/client-vpn-route.js +57 -0
- package/lib/aws/compute/condition.js +1 -1
- package/lib/aws/compute/connections.d.ts +137 -0
- package/lib/aws/compute/connections.js +208 -0
- package/lib/aws/compute/ec2-augmentations.generated.d.ts +53 -0
- package/lib/aws/compute/ec2-augmentations.generated.js +35 -0
- package/lib/aws/compute/ec2-canned-metrics.generated.d.ts +555 -0
- package/lib/aws/compute/ec2-canned-metrics.generated.js +681 -0
- package/lib/aws/compute/ec2-util-v2.d.ts +141 -0
- package/lib/aws/compute/ec2-util-v2.js +286 -0
- package/lib/aws/compute/ec2-util.d.ts +52 -0
- package/lib/aws/compute/ec2-util.js +138 -0
- package/lib/aws/compute/elasticloadbalancing-canned-metrics.generated.d.ts +176 -0
- package/lib/aws/compute/elasticloadbalancing-canned-metrics.generated.js +119 -0
- package/lib/aws/compute/elasticloadbalancingv2-canned-metrics.generated.d.ts +860 -0
- package/lib/aws/compute/elasticloadbalancingv2-canned-metrics.generated.js +597 -0
- package/lib/aws/compute/event-invoke-config.js +1 -1
- package/lib/aws/compute/event-source-filter.js +2 -2
- package/lib/aws/compute/event-source-mapping.js +1 -1
- package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
- package/lib/aws/compute/event-sources/s3.js +1 -1
- package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
- package/lib/aws/compute/event-sources/sqs.js +1 -1
- package/lib/aws/compute/fields.js +4 -4
- package/lib/aws/compute/function-alias.js +1 -1
- package/lib/aws/compute/function-base.js +2 -2
- package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
- package/lib/aws/compute/function-destinations/function.js +1 -1
- package/lib/aws/compute/function-destinations/sqs.js +1 -1
- package/lib/aws/compute/function-nodejs.js +1 -1
- package/lib/aws/compute/function-url.js +1 -1
- package/lib/aws/compute/function-vpc-config.generated.d.ts +3 -3
- package/lib/aws/compute/function-vpc-config.generated.js +1 -1
- package/lib/aws/compute/function.d.ts +1 -1
- package/lib/aws/compute/function.js +5 -5
- package/lib/aws/compute/index-alpha.d.ts +5 -0
- package/lib/aws/compute/index-alpha.js +22 -0
- package/lib/aws/compute/index.d.ts +60 -0
- package/lib/aws/compute/index.js +70 -2
- package/lib/aws/compute/instance-types.d.ts +1354 -0
- package/lib/aws/compute/instance-types.js +1683 -0
- package/lib/aws/compute/instance.d.ts +436 -0
- package/lib/aws/compute/instance.js +262 -0
- package/lib/aws/compute/ip-addresses.d.ts +249 -0
- package/lib/aws/compute/ip-addresses.js +248 -0
- package/lib/aws/compute/ipam.d.ts +309 -0
- package/lib/aws/compute/ipam.js +306 -0
- package/lib/aws/compute/key-pair.d.ts +178 -0
- package/lib/aws/compute/key-pair.js +194 -0
- package/lib/aws/compute/lambda-augmentations.generated.d.ts +65 -0
- package/lib/aws/compute/lambda-augmentations.generated.js +41 -0
- package/lib/aws/compute/lambda-canned-metrics.generated.d.ts +316 -0
- package/lib/aws/compute/lambda-canned-metrics.generated.js +119 -0
- package/lib/aws/compute/launch-template.d.ts +540 -0
- package/lib/aws/compute/launch-template.js +468 -0
- package/lib/aws/compute/lb-shared/access-logs-accounts.d.ts +7 -0
- package/lib/aws/compute/lb-shared/access-logs-accounts.js +46 -0
- package/lib/aws/compute/lb-shared/base-listener.d.ts +113 -0
- package/lib/aws/compute/lb-shared/base-listener.js +181 -0
- package/lib/aws/compute/lb-shared/base-load-balancer.d.ts +212 -0
- package/lib/aws/compute/lb-shared/base-load-balancer.js +290 -0
- package/lib/aws/compute/lb-shared/base-target-group.d.ts +382 -0
- package/lib/aws/compute/lb-shared/base-target-group.js +364 -0
- package/lib/aws/compute/lb-shared/enums.d.ts +282 -0
- package/lib/aws/compute/lb-shared/enums.js +301 -0
- package/lib/aws/compute/lb-shared/grid-lookup-types.d.ts +42 -0
- package/lib/aws/compute/lb-shared/grid-lookup-types.js +53 -0
- package/lib/aws/compute/lb-shared/imported.d.ts +24 -0
- package/lib/aws/compute/lb-shared/imported.js +27 -0
- package/lib/aws/compute/lb-shared/lb-listener-config.generated.d.ts +194 -0
- package/lib/aws/compute/lb-shared/lb-listener-config.generated.js +3 -0
- package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.d.ts +56 -0
- package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.js +3 -0
- package/lib/aws/compute/lb-shared/listener-action.d.ts +14 -0
- package/lib/aws/compute/lb-shared/listener-action.js +4 -0
- package/lib/aws/compute/lb-shared/listener-certificate.d.ts +28 -0
- package/lib/aws/compute/lb-shared/listener-certificate.js +29 -0
- package/lib/aws/compute/lb-shared/load-balancer-targets.d.ts +93 -0
- package/lib/aws/compute/lb-shared/load-balancer-targets.js +127 -0
- package/lib/aws/compute/lb-shared/util.d.ts +113 -0
- package/lib/aws/compute/lb-shared/util.js +264 -0
- package/lib/aws/compute/lb-targets/alb-target.d.ts +67 -0
- package/lib/aws/compute/lb-targets/alb-target.js +100 -0
- package/lib/aws/compute/lb-targets/index.d.ts +4 -0
- package/lib/aws/compute/lb-targets/index.js +22 -0
- package/lib/aws/compute/lb-targets/instance-target.d.ts +42 -0
- package/lib/aws/compute/lb-targets/instance-target.js +67 -0
- package/lib/aws/compute/lb-targets/ip-target.d.ts +55 -0
- package/lib/aws/compute/lb-targets/ip-target.js +79 -0
- package/lib/aws/compute/lb-targets/lambda-target.d.ts +25 -0
- package/lib/aws/compute/lb-targets/lambda-target.js +50 -0
- package/lib/aws/compute/load-balancer.d.ts +336 -0
- package/lib/aws/compute/load-balancer.js +287 -0
- package/lib/aws/compute/machine-image/amazon-linux-2022.d.ts +63 -0
- package/lib/aws/compute/machine-image/amazon-linux-2022.js +84 -0
- package/lib/aws/compute/machine-image/amazon-linux-2023.d.ts +63 -0
- package/lib/aws/compute/machine-image/amazon-linux-2023.js +84 -0
- package/lib/aws/compute/machine-image/amazon-linux2.d.ts +76 -0
- package/lib/aws/compute/machine-image/amazon-linux2.js +87 -0
- package/lib/aws/compute/machine-image/common.d.ts +181 -0
- package/lib/aws/compute/machine-image/common.js +122 -0
- package/lib/aws/compute/machine-image/index.d.ts +5 -0
- package/lib/aws/compute/machine-image/index.js +22 -0
- package/lib/aws/compute/machine-image/machine-image.d.ts +463 -0
- package/lib/aws/compute/machine-image/machine-image.js +566 -0
- package/lib/aws/compute/machine-image/utils.d.ts +2 -0
- package/lib/aws/compute/machine-image/utils.js +17 -0
- package/lib/aws/compute/nat.d.ts +325 -0
- package/lib/aws/compute/nat.js +455 -0
- package/lib/aws/compute/network-acl-types.d.ts +152 -0
- package/lib/aws/compute/network-acl-types.js +156 -0
- package/lib/aws/compute/network-acl.d.ts +285 -0
- package/lib/aws/compute/network-acl.js +207 -0
- package/lib/aws/compute/network-util.d.ts +116 -0
- package/lib/aws/compute/network-util.js +241 -0
- package/lib/aws/compute/nlb/network-listener-action.d.ts +92 -0
- package/lib/aws/compute/nlb/network-listener-action.js +146 -0
- package/lib/aws/compute/nlb/network-listener-certificate.d.ts +24 -0
- package/lib/aws/compute/nlb/network-listener-certificate.js +25 -0
- package/lib/aws/compute/nlb/network-listener.d.ts +248 -0
- package/lib/aws/compute/nlb/network-listener.js +217 -0
- package/lib/aws/compute/nlb/network-load-balancer.d.ts +315 -0
- package/lib/aws/compute/nlb/network-load-balancer.js +360 -0
- package/lib/aws/compute/nlb/network-target-group.d.ts +153 -0
- package/lib/aws/compute/nlb/network-target-group.js +223 -0
- package/lib/aws/compute/peer.d.ts +64 -0
- package/lib/aws/compute/peer.js +235 -0
- package/lib/aws/compute/placement-group.d.ts +161 -0
- package/lib/aws/compute/placement-group.js +133 -0
- package/lib/aws/compute/port.d.ts +287 -0
- package/lib/aws/compute/port.js +390 -0
- package/lib/aws/compute/prefix-list.d.ts +131 -0
- package/lib/aws/compute/prefix-list.js +114 -0
- package/lib/aws/compute/private/context-stub.d.ts +7 -0
- package/lib/aws/compute/private/context-stub.js +43 -0
- package/lib/aws/compute/private/ebs-util.d.ts +14 -0
- package/lib/aws/compute/private/ebs-util.js +145 -0
- package/lib/aws/compute/private/intrinstics.js +2 -1
- package/lib/aws/compute/private/json-path.js +8 -8
- package/lib/aws/compute/private/util.js +2 -3
- package/lib/aws/compute/route.d.ts +547 -0
- package/lib/aws/compute/route.js +469 -0
- package/lib/aws/compute/security-group.d.ts +414 -0
- package/lib/aws/compute/security-group.js +538 -0
- package/lib/aws/compute/state-graph.js +1 -1
- package/lib/aws/compute/state-machine-fragment.js +1 -1
- package/lib/aws/compute/state-machine.d.ts +2 -2
- package/lib/aws/compute/state-machine.js +14 -12
- package/lib/aws/compute/states/choice.js +1 -1
- package/lib/aws/compute/states/custom-state.js +1 -1
- package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
- package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
- package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
- package/lib/aws/compute/states/distributed-map.js +1 -1
- package/lib/aws/compute/states/fail.js +1 -1
- package/lib/aws/compute/states/map-base.js +1 -1
- package/lib/aws/compute/states/map.js +1 -1
- package/lib/aws/compute/states/parallel.js +1 -1
- package/lib/aws/compute/states/pass.js +2 -2
- package/lib/aws/compute/states/state.js +5 -5
- package/lib/aws/compute/states/succeed.js +1 -1
- package/lib/aws/compute/states/task-base.js +2 -2
- package/lib/aws/compute/states/task.js +1 -1
- package/lib/aws/compute/states/wait.js +2 -2
- package/lib/aws/compute/stepfunctions-canned-metrics.generated.d.ts +83 -0
- package/lib/aws/compute/stepfunctions-canned-metrics.generated.js +127 -0
- package/lib/aws/compute/subnet-v2.d.ts +213 -0
- package/lib/aws/compute/subnet-v2.js +405 -0
- package/lib/aws/compute/subnet.d.ts +37 -0
- package/lib/aws/compute/subnet.js +181 -0
- package/lib/aws/compute/task-credentials.js +1 -1
- package/lib/aws/compute/task-input.js +1 -1
- package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
- package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
- package/lib/aws/compute/tasks/http/invoke.js +1 -1
- package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
- package/lib/aws/compute/tasks/private/task-utils.js +3 -4
- package/lib/aws/compute/tasks/resource-arn-suffix.js +2 -3
- package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
- package/lib/aws/compute/types.js +2 -2
- package/lib/aws/compute/user-data.d.ts +270 -0
- package/lib/aws/compute/user-data.js +487 -0
- package/lib/aws/compute/util.d.ts +1 -1
- package/lib/aws/compute/util.js +4 -5
- package/lib/aws/compute/volume.d.ts +480 -0
- package/lib/aws/compute/volume.js +426 -0
- package/lib/aws/compute/vpc-endpoint-service.d.ts +149 -0
- package/lib/aws/compute/vpc-endpoint-service.js +90 -0
- package/lib/aws/compute/vpc-endpoint.d.ts +742 -0
- package/lib/aws/compute/vpc-endpoint.js +811 -0
- package/lib/aws/compute/vpc-flow-logs.d.ts +551 -0
- package/lib/aws/compute/vpc-flow-logs.js +693 -0
- package/lib/aws/compute/vpc-lookup.d.ts +73 -0
- package/lib/aws/compute/vpc-lookup.js +3 -0
- package/lib/aws/compute/vpc-v2-base.d.ts +353 -0
- package/lib/aws/compute/vpc-v2-base.js +493 -0
- package/lib/aws/compute/vpc-v2.d.ts +385 -0
- package/lib/aws/compute/vpc-v2.js +408 -0
- package/lib/aws/compute/vpc.d.ts +1448 -0
- package/lib/aws/compute/vpc.js +1495 -0
- package/lib/aws/compute/vpn.d.ts +443 -0
- package/lib/aws/compute/vpn.js +397 -0
- package/lib/aws/compute/windows-versions.d.ts +418 -0
- package/lib/aws/compute/windows-versions.js +426 -0
- package/lib/aws/edge/certificate-base.d.ts +20 -0
- package/lib/aws/edge/certificate-base.js +28 -0
- package/lib/aws/edge/certificate.d.ts +23 -2
- package/lib/aws/edge/certificate.js +54 -4
- package/lib/aws/edge/distribution.js +3 -3
- package/lib/aws/edge/dns-alias-record-targets.js +2 -2
- package/lib/aws/edge/dns-record.js +16 -16
- package/lib/aws/edge/dns-zone.d.ts +20 -2
- package/lib/aws/edge/dns-zone.js +25 -10
- package/lib/aws/edge/function.js +2 -2
- package/lib/aws/edge/index.d.ts +1 -0
- package/lib/aws/edge/index.js +2 -1
- package/lib/aws/edge/key-value-store.js +4 -4
- package/lib/aws/edge/origin.js +7 -5
- package/lib/aws/edge/response-headers-policy.js +1 -1
- package/lib/aws/encryption/alias.js +1 -1
- package/lib/aws/encryption/key.js +1 -1
- package/lib/aws/encryption/via-service-principal.js +1 -1
- package/lib/aws/iam/grant.js +2 -2
- package/lib/aws/iam/index.d.ts +1 -0
- package/lib/aws/iam/index.js +2 -1
- package/lib/aws/iam/instance-profile.d.ts +155 -0
- package/lib/aws/iam/instance-profile.js +124 -0
- package/lib/aws/iam/managed-policy.js +1 -1
- package/lib/aws/iam/oidc-provider.js +1 -1
- package/lib/aws/iam/policy-document-config.generated.d.ts +8 -8
- package/lib/aws/iam/policy-document-config.generated.js +1 -1
- package/lib/aws/iam/policy-document.js +1 -1
- package/lib/aws/iam/policy-statement-props.generated.d.ts +8 -8
- package/lib/aws/iam/policy-statement-props.generated.js +1 -1
- package/lib/aws/iam/policy-statement.js +9 -9
- package/lib/aws/iam/policy.js +1 -1
- package/lib/aws/iam/principals.js +26 -26
- package/lib/aws/iam/private/assume-role-policy.js +2 -3
- package/lib/aws/iam/private/comparable-principal.js +2 -3
- package/lib/aws/iam/private/immutable-role.d.ts +2 -1
- package/lib/aws/iam/private/immutable-role.js +3 -3
- package/lib/aws/iam/private/imported-role.d.ts +1 -1
- package/lib/aws/iam/private/imported-role.js +3 -3
- package/lib/aws/iam/private/merge-statements.js +2 -3
- package/lib/aws/iam/private/util.js +4 -4
- package/lib/aws/iam/role.js +1 -1
- package/lib/aws/iam/saml-provider.d.ts +1 -1
- package/lib/aws/iam/saml-provider.js +6 -6
- package/lib/aws/iam/unknown-principal.js +1 -1
- package/lib/aws/iam/utils.js +2 -3
- package/lib/aws/index.d.ts +1 -0
- package/lib/aws/index.js +4 -1
- package/lib/aws/network/simple-ipv4-vpc.js +5 -5
- package/lib/aws/network/subnet-group.js +3 -3
- package/lib/aws/network/subnet.d.ts +1 -1
- package/lib/aws/network/subnet.js +7 -7
- package/lib/aws/notify/archive.js +3 -2
- package/lib/aws/notify/connection.js +5 -4
- package/lib/aws/notify/event-bus.js +5 -4
- package/lib/aws/notify/event-pattern.js +3 -3
- package/lib/aws/notify/index.js +3 -1
- package/lib/aws/notify/input.js +4 -3
- package/lib/aws/notify/kinesis-stream.js +3 -2
- package/lib/aws/notify/on-event-options.js +2 -1
- package/lib/aws/notify/queue-config.generated.d.ts +18 -11
- package/lib/aws/notify/queue-config.generated.js +1 -1
- package/lib/aws/notify/queue-policy.js +1 -1
- package/lib/aws/notify/queue.js +1 -1
- package/lib/aws/notify/resource-policy.js +1 -1
- package/lib/aws/notify/rule.js +3 -2
- package/lib/aws/notify/schedule.js +2 -2
- package/lib/aws/notify/sqs-augmentations.generated.d.ts +125 -0
- package/lib/aws/notify/sqs-augmentations.generated.js +74 -0
- package/lib/aws/notify/target.js +2 -1
- package/lib/aws/notify/targets/event-bus.js +1 -1
- package/lib/aws/notify/targets/function.js +1 -1
- package/lib/aws/notify/targets/log-group.js +2 -2
- package/lib/aws/notify/targets/sqs.js +1 -1
- package/lib/aws/notify/targets/state-machine.js +1 -1
- package/lib/aws/notify/targets/util.d.ts +1 -1
- package/lib/aws/notify/targets/util.js +10 -11
- package/lib/aws/notify/util.js +4 -4
- package/lib/aws/provider-config.generated.d.ts +33 -33
- package/lib/aws/provider-config.generated.js +1 -1
- package/lib/aws/storage/bucket-notifications.js +1 -1
- package/lib/aws/storage/bucket-policy.js +1 -1
- package/lib/aws/storage/bucket-source.js +1 -1
- package/lib/aws/storage/bucket.d.ts +298 -65
- package/lib/aws/storage/bucket.js +548 -225
- package/lib/aws/storage/cors-config.generated.d.ts +3 -3
- package/lib/aws/storage/cors-config.generated.js +1 -1
- package/lib/aws/storage/cors-rule-config.generated.d.ts +5 -5
- package/lib/aws/storage/cors-rule-config.generated.js +1 -1
- package/lib/aws/storage/index.d.ts +1 -0
- package/lib/aws/storage/index.js +2 -1
- package/lib/aws/storage/lifecycle-config.generated.d.ts +11 -11
- package/lib/aws/storage/lifecycle-config.generated.js +1 -1
- package/lib/aws/storage/notification-targets/function.js +6 -6
- package/lib/aws/storage/notification-targets/queue.js +1 -1
- package/lib/aws/storage/origin-access-identity.d.ts +1 -1
- package/lib/aws/storage/origin-access-identity.js +5 -4
- package/lib/aws/storage/parameter-util.d.ts +12 -0
- package/lib/aws/storage/parameter-util.js +65 -0
- package/lib/aws/storage/parameter.d.ts +526 -0
- package/lib/aws/storage/parameter.js +606 -0
- package/lib/aws/storage/s3-canned-metrics.generated.d.ts +22 -0
- package/lib/aws/storage/s3-canned-metrics.generated.js +23 -0
- package/lib/aws/storage/util.d.ts +25 -3
- package/lib/aws/storage/util.js +84 -17
- package/lib/aws/storage/website-config.generated.d.ts +5 -5
- package/lib/aws/storage/website-config.generated.js +1 -1
- package/lib/aws/util.js +2 -3
- package/lib/construct-base.d.ts +10 -1
- package/lib/construct-base.js +9 -6
- package/lib/duration.js +1 -1
- package/lib/expiration.d.ts +48 -0
- package/lib/expiration.js +68 -0
- package/lib/helpers-internal/index.d.ts +1 -0
- package/lib/helpers-internal/index.js +7 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +3 -1
- package/lib/private/md5.d.ts +4 -0
- package/lib/private/md5.js +14 -0
- package/lib/private/unique-resource-name.js +3 -4
- package/lib/size.js +2 -2
- package/lib/stack-base.d.ts +4 -23
- package/lib/stack-base.js +9 -30
- package/lib/terra-func.d.ts +103 -0
- package/lib/terra-func.js +170 -0
- package/lib/token.js +5 -5
- package/package.json +15 -8
- package/bun.lockb +0 -0
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.JsonPathToken = void 0;
|
|
4
|
+
exports.renderObject = renderObject;
|
|
5
|
+
exports.findReferencedPaths = findReferencedPaths;
|
|
6
|
+
exports.recurseObject = recurseObject;
|
|
7
|
+
exports.jsonPathString = jsonPathString;
|
|
8
|
+
exports.jsonPathFromAny = jsonPathFromAny;
|
|
9
|
+
exports.renderInExpression = renderInExpression;
|
|
4
10
|
// https://github.com/aws/aws-cdk/blob/v2.160.0/packages/aws-cdk-lib/aws-stepfunctions/lib/private/json-path.ts
|
|
5
11
|
const cdktf_1 = require("cdktf");
|
|
6
12
|
const intrinstics_1 = require("./intrinstics");
|
|
@@ -41,7 +47,6 @@ function renderObject(obj) {
|
|
|
41
47
|
handleResolvable: renderResolvable,
|
|
42
48
|
});
|
|
43
49
|
}
|
|
44
|
-
exports.renderObject = renderObject;
|
|
45
50
|
/**
|
|
46
51
|
* Return all JSON paths that are used in the given structure
|
|
47
52
|
*/
|
|
@@ -78,7 +83,6 @@ function findReferencedPaths(obj) {
|
|
|
78
83
|
});
|
|
79
84
|
return found;
|
|
80
85
|
}
|
|
81
|
-
exports.findReferencedPaths = findReferencedPaths;
|
|
82
86
|
/**
|
|
83
87
|
* From an expression, return the list of JSON paths referenced in it
|
|
84
88
|
*/
|
|
@@ -153,7 +157,6 @@ function recurseObject(obj, handlers, visited = []) {
|
|
|
153
157
|
visited.pop();
|
|
154
158
|
return ret;
|
|
155
159
|
}
|
|
156
|
-
exports.recurseObject = recurseObject;
|
|
157
160
|
/**
|
|
158
161
|
* Render an array that may or may not contain a string list token
|
|
159
162
|
*/
|
|
@@ -268,7 +271,6 @@ function jsonPathString(x) {
|
|
|
268
271
|
}
|
|
269
272
|
return undefined;
|
|
270
273
|
}
|
|
271
|
-
exports.jsonPathString = jsonPathString;
|
|
272
274
|
function jsonPathFromAny(x) {
|
|
273
275
|
if (!x) {
|
|
274
276
|
return undefined;
|
|
@@ -286,7 +288,6 @@ function jsonPathFromAny(x) {
|
|
|
286
288
|
}
|
|
287
289
|
return undefined;
|
|
288
290
|
}
|
|
289
|
-
exports.jsonPathFromAny = jsonPathFromAny;
|
|
290
291
|
/**
|
|
291
292
|
* If the indicated string list is an encoded JSON path, return the path
|
|
292
293
|
*
|
|
@@ -327,7 +328,6 @@ function renderInExpression(x) {
|
|
|
327
328
|
return singleQuotestring(x);
|
|
328
329
|
throw new Error("Unxexpected value.");
|
|
329
330
|
}
|
|
330
|
-
exports.renderInExpression = renderInExpression;
|
|
331
331
|
function singleQuotestring(x) {
|
|
332
332
|
const ret = new Array();
|
|
333
333
|
ret.push("'");
|
|
@@ -348,4 +348,4 @@ function singleQuotestring(x) {
|
|
|
348
348
|
ret.push("'");
|
|
349
349
|
return ret.join("");
|
|
350
350
|
}
|
|
351
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3ByaXZhdGUvanNvbi1wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtHQUErRztBQUMvRyxpQ0FBMEU7QUFDMUUsK0NBQXFFO0FBRXJFLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FDdkMsK0NBQStDLENBQ2hELENBQUM7QUFFRixNQUFhLGFBQWE7SUFDakIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFjO1FBQzFDLE9BQVEsQ0FBUyxDQUFDLHNCQUFzQixDQUFDLEtBQUssSUFBSSxDQUFDO0lBQ3JELENBQUM7SUFLRCxZQUE0QixJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtRQUN0QywrQkFBK0I7UUFDL0IsbUhBQW1IO1FBQ25ILHFHQUFxRztRQUNyRyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFxQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLGFBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTyxTQUFTLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQztJQUMvQixDQUFDO0NBQ0Y7QUE1QkQsc0NBNEJDO0FBRUQ7O0dBRUc7QUFD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Q0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUNELEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE2MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zL2xpYi9wcml2YXRlL2pzb24tcGF0aC50c1xuaW1wb3J0IHsgVG9rZW4sIElSZXNvbHZhYmxlLCBJUmVzb2x2ZUNvbnRleHQsIFRva2VuaXphdGlvbiB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgSW50cmluc2ljUGFyc2VyLCBJbnRyaW5zaWNFeHByZXNzaW9uIH0gZnJvbSBcIi4vaW50cmluc3RpY3NcIjtcblxuY29uc3QgSlNPTl9QQVRIX1RPS0VOX1NZTUJPTCA9IFN5bWJvbC5mb3IoXG4gIFwidGVycmFjb25zdHJ1Y3RzL2xpYi9hd3MvY29tcHV0ZS5Kc29uUGF0aFRva2VuXCIsXG4pO1xuXG5leHBvcnQgY2xhc3MgSnNvblBhdGhUb2tlbiBpbXBsZW1lbnRzIElSZXNvbHZhYmxlIHtcbiAgcHVibGljIHN0YXRpYyBpc0pzb25QYXRoVG9rZW4oeDogSVJlc29sdmFibGUpOiB4IGlzIEpzb25QYXRoVG9rZW4ge1xuICAgIHJldHVybiAoeCBhcyBhbnkpW0pTT05fUEFUSF9UT0tFTl9TWU1CT0xdID09PSB0cnVlO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGNyZWF0aW9uU3RhY2s6IHN0cmluZ1tdO1xuICBwdWJsaWMgZGlzcGxheUhpbnQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcGF0aDogc3RyaW5nKSB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IHN0YWNrIHRyYWNlc1xuICAgIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrL2Jsb2IvdjAuMjAuOS9wYWNrYWdlcy9jZGt0Zi9saWIvdG9rZW5zL3ByaXZhdGUvc3RhY2stdHJhY2UudHMjTDlcbiAgICAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE2MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2NvcmUvbGliL3N0YWNrLXRyYWNlLnRzI0wyMlxuICAgIHRoaXMuY3JlYXRpb25TdGFjayA9IFtcInN0YWNrIHRyYWNlcyBkaXNhYmxlZFwiXTtcbiAgICB0aGlzLmRpc3BsYXlIaW50ID0gcGF0aC5yZXBsYWNlKC9eW15hLXpBLVpdKy8sIFwiXCIpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBKU09OX1BBVEhfVE9LRU5fU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuICB9XG5cbiAgcHVibGljIHJlc29sdmUoX2N0eDogSVJlc29sdmVDb250ZXh0KTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5wYXRoO1xuICB9XG5cbiAgcHVibGljIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiBUb2tlbi5hc1N0cmluZyh0aGlzLCB7IGRpc3BsYXlIaW50OiB0aGlzLmRpc3BsYXlIaW50IH0pO1xuICB9XG5cbiAgcHVibGljIHRvSlNPTigpIHtcbiAgICByZXR1cm4gYDxwYXRoOiR7dGhpcy5wYXRofT5gO1xuICB9XG59XG5cbi8qKlxuICogRGVlcCByZW5kZXIgYSBKU09OIG9iamVjdCB0byBleHBhbmQgSlNPTiBwYXRoIGZpZWxkcywgdXBkYXRpbmcgdGhlIGtleSB0byBlbmQgaW4gJy4kJ1xuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyT2JqZWN0KG9iajogb2JqZWN0IHwgdW5kZWZpbmVkKTogb2JqZWN0IHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHJlY3Vyc2VPYmplY3Qob2JqLCB7XG4gICAgaGFuZGxlU3RyaW5nOiByZW5kZXJTdHJpbmcsXG4gICAgaGFuZGxlTGlzdDogcmVuZGVyU3RyaW5nTGlzdCxcbiAgICBoYW5kbGVOdW1iZXI6IHJlbmRlck51bWJlcixcbiAgICBoYW5kbGVCb29sZWFuOiByZW5kZXJCb29sZWFuLFxuICAgIGhhbmRsZVJlc29sdmFibGU6IHJlbmRlclJlc29sdmFibGUsXG4gIH0pO1xufVxuXG4vKipcbiAqIFJldHVybiBhbGwgSlNPTiBwYXRocyB0aGF0IGFyZSB1c2VkIGluIHRoZSBnaXZlbiBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRSZWZlcmVuY2VkUGF0aHMob2JqOiBvYmplY3QgfCB1bmRlZmluZWQpOiBTZXQ8c3RyaW5nPiB7XG4gIGNvbnN0IGZvdW5kID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgcmVjdXJzZU9iamVjdChvYmosIHtcbiAgICBoYW5kbGVTdHJpbmcoX2tleTogc3RyaW5nLCB4OiBzdHJpbmcpIHtcbiAgICAgIGZvciAoY29uc3QgcCBvZiBmaW5kUGF0aHNJbkludHJpbnNpY0Z1bmN0aW9ucyhqc29uUGF0aFN0cmluZyh4KSkpIHtcbiAgICAgICAgZm91bmQuYWRkKHApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH0sXG5cbiAgICBoYW5kbGVMaXN0KF9rZXk6IHN0cmluZywgeDogc3RyaW5nW10pIHtcbiAgICAgIGZvciAoY29uc3QgcCBvZiBmaW5kUGF0aHNJbkludHJpbnNpY0Z1bmN0aW9ucyhqc29uUGF0aFN0cmluZ0xpc3QoeCkpKSB7XG4gICAgICAgIGZvdW5kLmFkZChwKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7fTtcbiAgICB9LFxuXG4gICAgaGFuZGxlTnVtYmVyKF9rZXk6IHN0cmluZywgeDogbnVtYmVyKSB7XG4gICAgICBmb3IgKGNvbnN0IHAgb2YgZmluZFBhdGhzSW5JbnRyaW5zaWNGdW5jdGlvbnMoanNvblBhdGhOdW1iZXIoeCkpKSB7XG4gICAgICAgIGZvdW5kLmFkZChwKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7fTtcbiAgICB9LFxuXG4gICAgaGFuZGxlQm9vbGVhbihfa2V5OiBzdHJpbmcsIF94OiBib29sZWFuKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfSxcblxuICAgIGhhbmRsZVJlc29sdmFibGUoX2tleTogc3RyaW5nLCB4OiBJUmVzb2x2YWJsZSkge1xuICAgICAgZm9yIChjb25zdCBwIG9mIGZpbmRQYXRoc0luSW50cmluc2ljRnVuY3Rpb25zKGpzb25QYXRoRnJvbUFueSh4KSkpIHtcbiAgICAgICAgZm91bmQuYWRkKHApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH0sXG4gIH0pO1xuXG4gIHJldHVybiBmb3VuZDtcbn1cblxuLyoqXG4gKiBGcm9tIGFuIGV4cHJlc3Npb24sIHJldHVybiB0aGUgbGlzdCBvZiBKU09OIHBhdGhzIHJlZmVyZW5jZWQgaW4gaXRcbiAqL1xuZnVuY3Rpb24gZmluZFBhdGhzSW5JbnRyaW5zaWNGdW5jdGlvbnMoZXhwcmVzc2lvbj86IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgaWYgKCFleHByZXNzaW9uKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZCA9IG5ldyBJbnRyaW5zaWNQYXJzZXIoZXhwcmVzc2lvbikucGFyc2VUb3BMZXZlbEludHJpbnNpYygpO1xuICAgIHJlY3Vyc2UocGFyc2VkKTtcbiAgICByZXR1cm4gcmV0O1xuICB9IGNhdGNoIHtcbiAgICAvLyBOb3Qgc3VyZSB0aGF0IG91ciBwYXJzaW5nIGlzIDEwMCUgY29ycmVjdC4gV2UgZG9uJ3Qgd2FudCB0byBicmVhayBhbnlvbmUsIHNvXG4gICAgLy8gZmFsbCBiYWNrIHRvIGxlZ2FjeSBiZWhhdmlvciBpZiB3ZSBjYW4ndCBwYXJzZSB0aGlzIHN0cmluZy5cbiAgICByZXR1cm4gW2V4cHJlc3Npb25dO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVjdXJzZShwOiBJbnRyaW5zaWNFeHByZXNzaW9uKSB7XG4gICAgc3dpdGNoIChwLnR5cGUpIHtcbiAgICAgIGNhc2UgXCJwYXRoXCI6XG4gICAgICAgIHJldC5wdXNoKHAucGF0aCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFwiZm5jYWxsXCI6XG4gICAgICAgIGZvciAoY29uc3QgYXJnIG9mIHAuYXJndW1lbnRzKSB7XG4gICAgICAgICAgcmVjdXJzZShhcmcpO1xuICAgICAgICB9XG4gICAgfVxuICB9XG59XG5cbmludGVyZmFjZSBGaWVsZEhhbmRsZXJzIHtcbiAgaGFuZGxlU3RyaW5nKGtleTogc3RyaW5nLCB4OiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBoYW5kbGVMaXN0KGtleTogc3RyaW5nLCB4OiBzdHJpbmdbXSk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfCBzdHJpbmcgfTtcbiAgaGFuZGxlTnVtYmVyKGtleTogc3RyaW5nLCB4OiBudW1iZXIpOiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB8IHN0cmluZyB9O1xuICBoYW5kbGVCb29sZWFuKGtleTogc3RyaW5nLCB4OiBib29sZWFuKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH07XG4gIGhhbmRsZVJlc29sdmFibGUoa2V5OiBzdHJpbmcsIHg6IElSZXNvbHZhYmxlKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlY3Vyc2VPYmplY3QoXG4gIG9iajogb2JqZWN0IHwgdW5kZWZpbmVkLFxuICBoYW5kbGVyczogRmllbGRIYW5kbGVycyxcbiAgdmlzaXRlZDogb2JqZWN0W10gPSBbXSxcbik6IG9iamVjdCB8IHVuZGVmaW5lZCB7XG4gIC8vIElmIHRoZSBhcmd1bWVudCByZWNlaXZlZCBpcyBub3QgYWN0dWFsbHkgYW4gb2JqZWN0IChzdHJpbmcsIG51bWJlciwgYm9vbGVhbiwgdW5kZWZpbmVkLCAuLi4pIG9yIG51bGxcbiAgLy8ganVzdCByZXR1cm4gaXQgYXMgaXMgYXMgdGhlcmUncyBub3RoaW5nIHRvIGJlIHJlbmRlcmVkLiBUaGlzIHNob3VsZCBvbmx5IGhhcHBlbiBpbiB0aGUgb3JpZ2luYWwgY2FsbCB0b1xuICAvLyByZWN1cnNlT2JqZWN0IGFzIGFueSByZWN1cnNpdmUgY2FsbHMgdG8gaXQgYXJlIGNoZWNraW5nIGZvciB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsXG4gIGlmICh0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiIHx8IG9iaiA9PT0gbnVsbCkge1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICAvLyBBdm9pZGluZyBpbmZpbml0ZSByZWN1cnNpb25cbiAgaWYgKHZpc2l0ZWQuaW5jbHVkZXMob2JqKSkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8vIE1hcmtpbmcgY3VycmVudCBvYmplY3QgYXMgdmlzaXRlZCBmb3IgdGhlIGN1cnJlbnQgcmVjdXJzaW9uIHBhdGhcbiAgdmlzaXRlZC5wdXNoKG9iaik7XG5cbiAgY29uc3QgcmV0OiBhbnkgPSB7fTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob2JqKSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmV0LCBoYW5kbGVycy5oYW5kbGVTdHJpbmcoa2V5LCB2YWx1ZSkpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICBPYmplY3QuYXNzaWduKHJldCwgaGFuZGxlcnMuaGFuZGxlTnVtYmVyKGtleSwgdmFsdWUpKTtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBPYmplY3QuYXNzaWduKHJldCwgcmVjdXJzZUFycmF5KGtleSwgdmFsdWUsIGhhbmRsZXJzLCB2aXNpdGVkKSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICBPYmplY3QuYXNzaWduKHJldCwgaGFuZGxlcnMuaGFuZGxlQm9vbGVhbihrZXksIHZhbHVlKSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBOb3RoaW5nXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGlmIChUb2tlbml6YXRpb24uaXNSZXNvbHZhYmxlKHZhbHVlKSkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHJldCwgaGFuZGxlcnMuaGFuZGxlUmVzb2x2YWJsZShrZXksIHZhbHVlKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXRba2V5XSA9IHJlY3Vyc2VPYmplY3QodmFsdWUsIGhhbmRsZXJzLCB2aXNpdGVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmluZyBmcm9tIHZpc2l0ZWQgYWZ0ZXIgbGVhdmluZyB0aGUgY3VycmVudCByZWN1cnNpb24gcGF0aFxuICAvLyBBbGxvd2luZyBpdCB0byBiZSB2aXNpdGVkIGFnYWluIGlmIGl0J3Mgbm90IGNhdXNpbmcgYSByZWN1cnNpb24gKGNpcmN1bGFyIHJlZmVyZW5jZSlcbiAgdmlzaXRlZC5wb3AoKTtcblxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIFJlbmRlciBhbiBhcnJheSB0aGF0IG1heSBvciBtYXkgbm90IGNvbnRhaW4gYSBzdHJpbmcgbGlzdCB0b2tlblxuICovXG5mdW5jdGlvbiByZWN1cnNlQXJyYXkoXG4gIGtleTogc3RyaW5nLFxuICBhcnI6IGFueVtdLFxuICBoYW5kbGVyczogRmllbGRIYW5kbGVycyxcbiAgdmlzaXRlZDogb2JqZWN0W10gPSBbXSxcbik6IHsgW2tleTogc3RyaW5nXTogYW55W10gfCBzdHJpbmcgfSB7XG4gIGlmIChpc1N0cmluZ0FycmF5KGFycikpIHtcbiAgICBjb25zdCBwYXRoID0ganNvblBhdGhTdHJpbmdMaXN0KGFycik7XG4gICAgaWYgKHBhdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGhhbmRsZXJzLmhhbmRsZUxpc3Qoa2V5LCBhcnIpO1xuICAgIH1cblxuICAgIC8vIEZhbGwgdGhyb3VnaCB0byBjb3JyZWN0bHkgcmVqZWN0IGVuY29kZWQgc3RyaW5ncyBpbnNpZGUgYW4gYXJyYXkuXG4gICAgLy8gVGhleSBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgYmVjYXVzZSB0aGVyZSBpcyBubyBrZXkgdG8gYXBwZW5kIGEgJy4kJyB0by5cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgW2tleV06IHJlc29sdmVBcnJheShhcnIsIGhhbmRsZXJzLCB2aXNpdGVkKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUFycmF5KFxuICBhcnI6IGFueVtdLFxuICBoYW5kbGVyczogRmllbGRIYW5kbGVycyxcbiAgdmlzaXRlZDogb2JqZWN0W10gPSBbXSxcbik6IGFueVtdIHtcbiAgcmV0dXJuIGFyci5tYXAoKHZhbHVlKSA9PiB7XG4gICAgaWYgKFxuICAgICAgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiBqc29uUGF0aFN0cmluZyh2YWx1ZSkgIT09IHVuZGVmaW5lZCkgfHxcbiAgICAgICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgJiYganNvblBhdGhOdW1iZXIodmFsdWUpICE9PSB1bmRlZmluZWQpIHx8XG4gICAgICAoaXNTdHJpbmdBcnJheSh2YWx1ZSkgJiYganNvblBhdGhTdHJpbmdMaXN0KHZhbHVlKSAhPT0gdW5kZWZpbmVkKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkNhbm5vdCB1c2UgSnNvblBhdGggZmllbGRzIGluIGFuIGFycmF5LCB0aGV5IG11c3QgYmUgdXNlZCBpbiBvYmplY3RzXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiByZXNvbHZlQXJyYXkodmFsdWUsIGhhbmRsZXJzLCB2aXNpdGVkKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHJlY3Vyc2VPYmplY3QodmFsdWUsIGhhbmRsZXJzLCB2aXNpdGVkKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaXNTdHJpbmdBcnJheSh4OiBhbnkpOiB4IGlzIHN0cmluZ1tdIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoeCkgJiYgeC5ldmVyeSgoZWwpID0+IHR5cGVvZiBlbCA9PT0gXCJzdHJpbmdcIik7XG59XG5cbi8qKlxuICogUmVuZGVyIGEgcGFyYW1ldGVyIHN0cmluZ1xuICpcbiAqIElmIHRoZSBzdHJpbmcgdmFsdWUgc3RhcnRzIHdpdGggJyQuJywgcmVuZGVyIGl0IGFzIGEgcGF0aCBzdHJpbmcsIG90aGVyd2lzZSBhcyBhIGRpcmVjdCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIHJlbmRlclN0cmluZyhrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICBjb25zdCBwYXRoID0ganNvblBhdGhTdHJpbmcodmFsdWUpO1xuICBpZiAocGF0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHsgW2tleSArIFwiLiRcIl06IHBhdGggfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geyBba2V5XTogdmFsdWUgfTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbmRlciBhIHJlc29sdmFibGVcbiAqXG4gKiBJZiB3ZSBjYW4gZXh0cmFjdCBhIFBhdGggZnJvbSBpdCwgcmVuZGVyIGFzIGEgcGF0aCBzdHJpbmcsIG90aGVyd2lzZSBhcyBpdHNlbGYgKHdpbGxcbiAqIGJlIHJlc29sdmVkIGxhdGVyXG4gKi9cbmZ1bmN0aW9uIHJlbmRlclJlc29sdmFibGUoXG4gIGtleTogc3RyaW5nLFxuICB2YWx1ZTogSVJlc29sdmFibGUsXG4pOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgY29uc3QgcGF0aCA9IGpzb25QYXRoRnJvbUFueSh2YWx1ZSk7XG4gIGlmIChwYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyBba2V5ICsgXCIuJFwiXTogcGF0aCB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9O1xuICB9XG59XG5cbi8qKlxuICogUmVuZGVyIGEgcGFyYW1ldGVyIHN0cmluZyBsaXN0XG4gKlxuICogSWYgdGhlIHN0cmluZyB2YWx1ZSBzdGFydHMgd2l0aCAnJC4nLCByZW5kZXIgaXQgYXMgYSBwYXRoIHN0cmluZywgb3RoZXJ3aXNlIGFzIGEgZGlyZWN0IHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gcmVuZGVyU3RyaW5nTGlzdChcbiAga2V5OiBzdHJpbmcsXG4gIHZhbHVlOiBzdHJpbmdbXSxcbik6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfCBzdHJpbmcgfSB7XG4gIGNvbnN0IHBhdGggPSBqc29uUGF0aFN0cmluZ0xpc3QodmFsdWUpO1xuICBpZiAocGF0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHsgW2tleSArIFwiLiRcIl06IHBhdGggfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geyBba2V5XTogdmFsdWUgfTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbmRlciBhIHBhcmFtZXRlciBudW1iZXJcbiAqXG4gKiBJZiB0aGUgc3RyaW5nIHZhbHVlIHN0YXJ0cyB3aXRoICckLicsIHJlbmRlciBpdCBhcyBhIHBhdGggc3RyaW5nLCBvdGhlcndpc2UgYXMgYSBkaXJlY3Qgc3RyaW5nLlxuICovXG5mdW5jdGlvbiByZW5kZXJOdW1iZXIoXG4gIGtleTogc3RyaW5nLFxuICB2YWx1ZTogbnVtYmVyLFxuKTogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfCBzdHJpbmcgfSB7XG4gIGNvbnN0IHBhdGggPSBqc29uUGF0aE51bWJlcih2YWx1ZSk7XG4gIGlmIChwYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyBba2V5ICsgXCIuJFwiXTogcGF0aCB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9O1xuICB9XG59XG5cbi8qKlxuICogUmVuZGVyIGEgcGFyYW1ldGVyIGJvb2xlYW5cbiAqL1xuZnVuY3Rpb24gcmVuZGVyQm9vbGVhbihcbiAga2V5OiBzdHJpbmcsXG4gIHZhbHVlOiBib29sZWFuLFxuKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0ge1xuICByZXR1cm4geyBba2V5XTogdmFsdWUgfTtcbn1cblxuLyoqXG4gKiBJZiB0aGUgaW5kaWNhdGVkIHN0cmluZyBpcyBhbiBlbmNvZGVkIEpTT04gcGF0aCwgcmV0dXJuIHRoZSBwYXRoXG4gKlxuICogT3RoZXJ3aXNlIHJldHVybiB1bmRlZmluZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBqc29uUGF0aFN0cmluZyh4OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBmcmFnbWVudHMgPSBUb2tlbml6YXRpb24ucmV2ZXJzZVN0cmluZyh4KTtcbiAgY29uc3QganNvblBhdGhUb2tlbnMgPSBmcmFnbWVudHMudG9rZW5zLmZpbHRlcihKc29uUGF0aFRva2VuLmlzSnNvblBhdGhUb2tlbik7XG5cbiAgaWYgKGpzb25QYXRoVG9rZW5zLmxlbmd0aCA+IDAgJiYgZnJhZ21lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgRmllbGQgcmVmZXJlbmNlcyBtdXN0IGJlIHRoZSBlbnRpcmUgc3RyaW5nLCBjYW5ub3QgY29uY2F0ZW5hdGUgdGhlbSAoZm91bmQgJyR7eH0nKWAsXG4gICAgKTtcbiAgfVxuICBpZiAoanNvblBhdGhUb2tlbnMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBqc29uUGF0aFRva2Vuc1swXS5wYXRoO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBqc29uUGF0aEZyb21BbnkoeDogYW55KSB7XG4gIGlmICgheCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIGpzb25QYXRoU3RyaW5nKHgpO1xuICB9XG4gIGNvbnN0IHJlc29sdmFibGVzID0gVG9rZW5pemF0aW9uLnJldmVyc2UoeCk7XG4gIGlmIChyZXNvbHZhYmxlcy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gcGF0aEZyb21Ub2tlbihyZXNvbHZhYmxlc1swXSk7XG4gIH1cbiAgaWYgKHJlc29sdmFibGVzLmxlbmd0aCA+IDEpIHtcbiAgICAvLyBUT0RPOiBTaG91bGQgbmV2ZXIgaGFwcGVuLCBidXQgaWYgaXQgZG9lcywgd2Ugc2hvdWxkIHRocm93IGEgYmV0dGVyIGVycm9yXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFVuZXhwZWN0ZWQgdmFsdWU6ICR7eH0gKGV4cGVjdGVkIGEgc3RyaW5nIG9yIGEgc2luZ2xlIHJlc29sdmFibGUpYCxcbiAgICApO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogSWYgdGhlIGluZGljYXRlZCBzdHJpbmcgbGlzdCBpcyBhbiBlbmNvZGVkIEpTT04gcGF0aCwgcmV0dXJuIHRoZSBwYXRoXG4gKlxuICogT3RoZXJ3aXNlIHJldHVybiB1bmRlZmluZWQuXG4gKi9cbmZ1bmN0aW9uIGpzb25QYXRoU3RyaW5nTGlzdCh4OiBzdHJpbmdbXSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBwYXRoRnJvbVRva2VuKFRva2VuaXphdGlvbi5yZXZlcnNlTGlzdCh4KSk7XG59XG5cbi8qKlxuICogSWYgdGhlIGluZGljYXRlZCBudW1iZXIgaXMgYW4gZW5jb2RlZCBKU09OIHBhdGgsIHJldHVybiB0aGUgcGF0aFxuICpcbiAqIE90aGVyd2lzZSByZXR1cm4gdW5kZWZpbmVkLlxuICovXG5mdW5jdGlvbiBqc29uUGF0aE51bWJlcih4OiBudW1iZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gcGF0aEZyb21Ub2tlbihUb2tlbml6YXRpb24ucmV2ZXJzZU51bWJlcih4KSk7XG59XG5cbmZ1bmN0aW9uIHBhdGhGcm9tVG9rZW4odG9rZW46IElSZXNvbHZhYmxlIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiAoXG4gICAgdG9rZW4gJiYgKEpzb25QYXRoVG9rZW4uaXNKc29uUGF0aFRva2VuKHRva2VuKSA/IHRva2VuLnBhdGggOiB1bmRlZmluZWQpXG4gICk7XG59XG5cbi8qKlxuICogUmVuZGVyIHRoZSBzdHJpbmcgb3IgbnVtYmVyIHZhbHVlIGluIGEgdmFsaWQgSlNPTiBQYXRoIGV4cHJlc3Npb24uXG4gKlxuICogSWYgdGhlIHZhbHVlIGlzIGEgVG9rZW5pemVkIEpTT04gcGF0aCByZWZlcmVuY2UgLS0gcmV0dXJuIHRoZSBKU09OIHBhdGggcmVmZXJlbmNlIGluc2lkZSBpdC5cbiAqIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciAtLSBjb252ZXJ0IGl0IHRvIHN0cmluZy5cbiAqIElmIHRoZSB2YWx1ZSBpcyBhIHN0cmluZyAtLSBzaW5nbGUtcXVvdGUgaXQuXG4gKiBPdGhlcndpc2UsIHRocm93IGVycm9ycy5cbiAqXG4gKiBDYWxsIHRoaXMgZnVuY3Rpb24gd2hlbmV2ZXIgeW91J3JlIGJ1aWxkaW5nIGNvbXBvdW5kIEpTT05QYXRoIGV4cHJlc3Npb25zLCBpblxuICogb3JkZXIgdG8gYXZvaWQgaGF2aW5nIHRva2Vucy1pbi10b2tlbnMtaW4tdG9rZW5zIHdoaWNoIGJlY29tZSB2ZXJ5IGhhcmQgdG8gcGFyc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJJbkV4cHJlc3Npb24oeDogYW55KSB7XG4gIGNvbnN0IHBhdGggPSBqc29uUGF0aEZyb21BbnkoeCk7XG4gIGlmIChwYXRoKSByZXR1cm4gcGF0aDtcbiAgaWYgKHR5cGVvZiB4ID09PSBcIm51bWJlclwiKSByZXR1cm4geC50b1N0cmluZygxMCk7XG4gIGlmICh0eXBlb2YgeCA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIHNpbmdsZVF1b3Rlc3RyaW5nKHgpO1xuICB0aHJvdyBuZXcgRXJyb3IoXCJVbnhleHBlY3RlZCB2YWx1ZS5cIik7XG59XG5cbmZ1bmN0aW9uIHNpbmdsZVF1b3Rlc3RyaW5nKHg6IHN0cmluZykge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICByZXQucHVzaChcIidcIik7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgeC5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGMgPSB4W2ldO1xuICAgIGlmIChjID09PSBcIidcIikge1xuICAgICAgcmV0LnB1c2goXCJcXFxcJ1wiKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgYyA9PT0gXCJcXFxcXCIgJiZcbiAgICAgIChpID09IHgubGVuZ3RoIC0gMSB8fCAoeFtpICsgMV0gIT0gXCJ7XCIgJiYgeFtpICsgMV0gIT0gXCJ9XCIpKVxuICAgICkge1xuICAgICAgLy8gRXNjYXBlIGJhY2tzbGFzaCwgYnV0IG9ubHkgaWYgaXQgZG9lc24ndCBpbW1lZGlhdGVseSBwcmVjZWRlIGEgY3VybHkgYnJhY2VcbiAgICAgIHJldC5wdXNoKFwiXFxcXFxcXFxcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldC5wdXNoKGMpO1xuICAgIH1cbiAgfVxuICByZXQucHVzaChcIidcIik7XG4gIHJldHVybiByZXQuam9pbihcIlwiKTtcbn1cbiJdfQ==
|
|
351
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3ByaXZhdGUvanNvbi1wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXlDQSxvQ0FRQztBQUtELGtEQXNDQztBQTRDRCxzQ0E4Q0M7QUF3SUQsd0NBYUM7QUFFRCwwQ0FrQkM7QUFxQ0QsZ0RBTUM7QUExWUQsK0dBQStHO0FBQy9HLGlDQUEwRTtBQUMxRSwrQ0FBcUU7QUFFckUsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUN2QywrQ0FBK0MsQ0FDaEQsQ0FBQztBQUVGLE1BQWEsYUFBYTtJQUNqQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQWM7UUFDMUMsT0FBUSxDQUFTLENBQUMsc0JBQXNCLENBQUMsS0FBSyxJQUFJLENBQUM7SUFDckQsQ0FBQztJQUtELFlBQTRCLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ3RDLCtCQUErQjtRQUMvQixtSEFBbUg7UUFDbkgscUdBQXFHO1FBQ3JHLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQXFCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRU0sUUFBUTtRQUNiLE9BQU8sYUFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVNLE1BQU07UUFDWCxPQUFP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RyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNkLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTYwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMvbGliL3ByaXZhdGUvanNvbi1wYXRoLnRzXG5pbXBvcnQgeyBUb2tlbiwgSVJlc29sdmFibGUsIElSZXNvbHZlQ29udGV4dCwgVG9rZW5pemF0aW9uIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBJbnRyaW5zaWNQYXJzZXIsIEludHJpbnNpY0V4cHJlc3Npb24gfSBmcm9tIFwiLi9pbnRyaW5zdGljc1wiO1xuXG5jb25zdCBKU09OX1BBVEhfVE9LRU5fU1lNQk9MID0gU3ltYm9sLmZvcihcbiAgXCJ0ZXJyYWNvbnN0cnVjdHMvbGliL2F3cy9jb21wdXRlLkpzb25QYXRoVG9rZW5cIixcbik7XG5cbmV4cG9ydCBjbGFzcyBKc29uUGF0aFRva2VuIGltcGxlbWVudHMgSVJlc29sdmFibGUge1xuICBwdWJsaWMgc3RhdGljIGlzSnNvblBhdGhUb2tlbih4OiBJUmVzb2x2YWJsZSk6IHggaXMgSnNvblBhdGhUb2tlbiB7XG4gICAgcmV0dXJuICh4IGFzIGFueSlbSlNPTl9QQVRIX1RPS0VOX1NZTUJPTF0gPT09IHRydWU7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRpb25TdGFjazogc3RyaW5nW107XG4gIHB1YmxpYyBkaXNwbGF5SGludDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBwYXRoOiBzdHJpbmcpIHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgc3RhY2sgdHJhY2VzXG4gICAgLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1jZGsvYmxvYi92MC4yMC45L3BhY2thZ2VzL2Nka3RmL2xpYi90b2tlbnMvcHJpdmF0ZS9zdGFjay10cmFjZS50cyNMOVxuICAgIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTYwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvc3RhY2stdHJhY2UudHMjTDIyXG4gICAgdGhpcy5jcmVhdGlvblN0YWNrID0gW1wic3RhY2sgdHJhY2VzIGRpc2FibGVkXCJdO1xuICAgIHRoaXMuZGlzcGxheUhpbnQgPSBwYXRoLnJlcGxhY2UoL15bXmEtekEtWl0rLywgXCJcIik7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIEpTT05fUEFUSF9UT0tFTl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVzb2x2ZShfY3R4OiBJUmVzb2x2ZUNvbnRleHQpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnBhdGg7XG4gIH1cblxuICBwdWJsaWMgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzU3RyaW5nKHRoaXMsIHsgZGlzcGxheUhpbnQ6IHRoaXMuZGlzcGxheUhpbnQgfSk7XG4gIH1cblxuICBwdWJsaWMgdG9KU09OKCkge1xuICAgIHJldHVybiBgPHBhdGg6JHt0aGlzLnBhdGh9PmA7XG4gIH1cbn1cblxuLyoqXG4gKiBEZWVwIHJlbmRlciBhIEpTT04gb2JqZWN0IHRvIGV4cGFuZCBKU09OIHBhdGggZmllbGRzLCB1cGRhdGluZyB0aGUga2V5IHRvIGVuZCBpbiAnLiQnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJPYmplY3Qob2JqOiBvYmplY3QgfCB1bmRlZmluZWQpOiBvYmplY3QgfCB1bmRlZmluZWQge1xuICByZXR1cm4gcmVjdXJzZU9iamVjdChvYmosIHtcbiAgICBoYW5kbGVTdHJpbmc6IHJlbmRlclN0cmluZyxcbiAgICBoYW5kbGVMaXN0OiByZW5kZXJTdHJpbmdMaXN0LFxuICAgIGhhbmRsZU51bWJlcjogcmVuZGVyTnVtYmVyLFxuICAgIGhhbmRsZUJvb2xlYW46IHJlbmRlckJvb2xlYW4sXG4gICAgaGFuZGxlUmVzb2x2YWJsZTogcmVuZGVyUmVzb2x2YWJsZSxcbiAgfSk7XG59XG5cbi8qKlxuICogUmV0dXJuIGFsbCBKU09OIHBhdGhzIHRoYXQgYXJlIHVzZWQgaW4gdGhlIGdpdmVuIHN0cnVjdHVyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZFJlZmVyZW5jZWRQYXRocyhvYmo6IG9iamVjdCB8IHVuZGVmaW5lZCk6IFNldDxzdHJpbmc+IHtcbiAgY29uc3QgZm91bmQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICByZWN1cnNlT2JqZWN0KG9iaiwge1xuICAgIGhhbmRsZVN0cmluZyhfa2V5OiBzdHJpbmcsIHg6IHN0cmluZykge1xuICAgICAgZm9yIChjb25zdCBwIG9mIGZpbmRQYXRoc0luSW50cmluc2ljRnVuY3Rpb25zKGpzb25QYXRoU3RyaW5nKHgpKSkge1xuICAgICAgICBmb3VuZC5hZGQocCk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge307XG4gICAgfSxcblxuICAgIGhhbmRsZUxpc3QoX2tleTogc3RyaW5nLCB4OiBzdHJpbmdbXSkge1xuICAgICAgZm9yIChjb25zdCBwIG9mIGZpbmRQYXRoc0luSW50cmluc2ljRnVuY3Rpb25zKGpzb25QYXRoU3RyaW5nTGlzdCh4KSkpIHtcbiAgICAgICAgZm91bmQuYWRkKHApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH0sXG5cbiAgICBoYW5kbGVOdW1iZXIoX2tleTogc3RyaW5nLCB4OiBudW1iZXIpIHtcbiAgICAgIGZvciAoY29uc3QgcCBvZiBmaW5kUGF0aHNJbkludHJpbnNpY0Z1bmN0aW9ucyhqc29uUGF0aE51bWJlcih4KSkpIHtcbiAgICAgICAgZm91bmQuYWRkKHApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH0sXG5cbiAgICBoYW5kbGVCb29sZWFuKF9rZXk6IHN0cmluZywgX3g6IGJvb2xlYW4pIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9LFxuXG4gICAgaGFuZGxlUmVzb2x2YWJsZShfa2V5OiBzdHJpbmcsIHg6IElSZXNvbHZhYmxlKSB7XG4gICAgICBmb3IgKGNvbnN0IHAgb2YgZmluZFBhdGhzSW5JbnRyaW5zaWNGdW5jdGlvbnMoanNvblBhdGhGcm9tQW55KHgpKSkge1xuICAgICAgICBmb3VuZC5hZGQocCk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge307XG4gICAgfSxcbiAgfSk7XG5cbiAgcmV0dXJuIGZvdW5kO1xufVxuXG4vKipcbiAqIEZyb20gYW4gZXhwcmVzc2lvbiwgcmV0dXJuIHRoZSBsaXN0IG9mIEpTT04gcGF0aHMgcmVmZXJlbmNlZCBpbiBpdFxuICovXG5mdW5jdGlvbiBmaW5kUGF0aHNJbkludHJpbnNpY0Z1bmN0aW9ucyhleHByZXNzaW9uPzogc3RyaW5nKTogc3RyaW5nW10ge1xuICBpZiAoIWV4cHJlc3Npb24pIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gbmV3IEludHJpbnNpY1BhcnNlcihleHByZXNzaW9uKS5wYXJzZVRvcExldmVsSW50cmluc2ljKCk7XG4gICAgcmVjdXJzZShwYXJzZWQpO1xuICAgIHJldHVybiByZXQ7XG4gIH0gY2F0Y2gge1xuICAgIC8vIE5vdCBzdXJlIHRoYXQgb3VyIHBhcnNpbmcgaXMgMTAwJSBjb3JyZWN0LiBXZSBkb24ndCB3YW50IHRvIGJyZWFrIGFueW9uZSwgc29cbiAgICAvLyBmYWxsIGJhY2sgdG8gbGVnYWN5IGJlaGF2aW9yIGlmIHdlIGNhbid0IHBhcnNlIHRoaXMgc3RyaW5nLlxuICAgIHJldHVybiBbZXhwcmVzc2lvbl07XG4gIH1cblxuICBmdW5jdGlvbiByZWN1cnNlKHA6IEludHJpbnNpY0V4cHJlc3Npb24pIHtcbiAgICBzd2l0Y2ggKHAudHlwZSkge1xuICAgICAgY2FzZSBcInBhdGhcIjpcbiAgICAgICAgcmV0LnB1c2gocC5wYXRoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgXCJmbmNhbGxcIjpcbiAgICAgICAgZm9yIChjb25zdCBhcmcgb2YgcC5hcmd1bWVudHMpIHtcbiAgICAgICAgICByZWN1cnNlKGFyZyk7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuaW50ZXJmYWNlIEZpZWxkSGFuZGxlcnMge1xuICBoYW5kbGVTdHJpbmcoa2V5OiBzdHJpbmcsIHg6IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIGhhbmRsZUxpc3Qoa2V5OiBzdHJpbmcsIHg6IHN0cmluZ1tdKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB8IHN0cmluZyB9O1xuICBoYW5kbGVOdW1iZXIoa2V5OiBzdHJpbmcsIHg6IG51bWJlcik6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIHwgc3RyaW5nIH07XG4gIGhhbmRsZUJvb2xlYW4oa2V5OiBzdHJpbmcsIHg6IGJvb2xlYW4pOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcbiAgaGFuZGxlUmVzb2x2YWJsZShrZXk6IHN0cmluZywgeDogSVJlc29sdmFibGUpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVjdXJzZU9iamVjdChcbiAgb2JqOiBvYmplY3QgfCB1bmRlZmluZWQsXG4gIGhhbmRsZXJzOiBGaWVsZEhhbmRsZXJzLFxuICB2aXNpdGVkOiBvYmplY3RbXSA9IFtdLFxuKTogb2JqZWN0IHwgdW5kZWZpbmVkIHtcbiAgLy8gSWYgdGhlIGFyZ3VtZW50IHJlY2VpdmVkIGlzIG5vdCBhY3R1YWxseSBhbiBvYmplY3QgKHN0cmluZywgbnVtYmVyLCBib29sZWFuLCB1bmRlZmluZWQsIC4uLikgb3IgbnVsbFxuICAvLyBqdXN0IHJldHVybiBpdCBhcyBpcyBhcyB0aGVyZSdzIG5vdGhpbmcgdG8gYmUgcmVuZGVyZWQuIFRoaXMgc2hvdWxkIG9ubHkgaGFwcGVuIGluIHRoZSBvcmlnaW5hbCBjYWxsIHRvXG4gIC8vIHJlY3Vyc2VPYmplY3QgYXMgYW55IHJlY3Vyc2l2ZSBjYWxscyB0byBpdCBhcmUgY2hlY2tpbmcgZm9yIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGxcbiAgaWYgKHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgfHwgb2JqID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIC8vIEF2b2lkaW5nIGluZmluaXRlIHJlY3Vyc2lvblxuICBpZiAodmlzaXRlZC5pbmNsdWRlcyhvYmopKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLy8gTWFya2luZyBjdXJyZW50IG9iamVjdCBhcyB2aXNpdGVkIGZvciB0aGUgY3VycmVudCByZWN1cnNpb24gcGF0aFxuICB2aXNpdGVkLnB1c2gob2JqKTtcblxuICBjb25zdCByZXQ6IGFueSA9IHt9O1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvYmopKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgT2JqZWN0LmFzc2lnbihyZXQsIGhhbmRsZXJzLmhhbmRsZVN0cmluZyhrZXksIHZhbHVlKSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmV0LCBoYW5kbGVycy5oYW5kbGVOdW1iZXIoa2V5LCB2YWx1ZSkpO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmV0LCByZWN1cnNlQXJyYXkoa2V5LCB2YWx1ZSwgaGFuZGxlcnMsIHZpc2l0ZWQpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmV0LCBoYW5kbGVycy5oYW5kbGVCb29sZWFuKGtleSwgdmFsdWUpKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIE5vdGhpbmdcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgaWYgKFRva2VuaXphdGlvbi5pc1Jlc29sdmFibGUodmFsdWUpKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24ocmV0LCBoYW5kbGVycy5oYW5kbGVSZXNvbHZhYmxlKGtleSwgdmFsdWUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldFtrZXldID0gcmVjdXJzZU9iamVjdCh2YWx1ZSwgaGFuZGxlcnMsIHZpc2l0ZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlbW92aW5nIGZyb20gdmlzaXRlZCBhZnRlciBsZWF2aW5nIHRoZSBjdXJyZW50IHJlY3Vyc2lvbiBwYXRoXG4gIC8vIEFsbG93aW5nIGl0IHRvIGJlIHZpc2l0ZWQgYWdhaW4gaWYgaXQncyBub3QgY2F1c2luZyBhIHJlY3Vyc2lvbiAoY2lyY3VsYXIgcmVmZXJlbmNlKVxuICB2aXNpdGVkLnBvcCgpO1xuXG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogUmVuZGVyIGFuIGFycmF5IHRoYXQgbWF5IG9yIG1heSBub3QgY29udGFpbiBhIHN0cmluZyBsaXN0IHRva2VuXG4gKi9cbmZ1bmN0aW9uIHJlY3Vyc2VBcnJheShcbiAga2V5OiBzdHJpbmcsXG4gIGFycjogYW55W10sXG4gIGhhbmRsZXJzOiBGaWVsZEhhbmRsZXJzLFxuICB2aXNpdGVkOiBvYmplY3RbXSA9IFtdLFxuKTogeyBba2V5OiBzdHJpbmddOiBhbnlbXSB8IHN0cmluZyB9IHtcbiAgaWYgKGlzU3RyaW5nQXJyYXkoYXJyKSkge1xuICAgIGNvbnN0IHBhdGggPSBqc29uUGF0aFN0cmluZ0xpc3QoYXJyKTtcbiAgICBpZiAocGF0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gaGFuZGxlcnMuaGFuZGxlTGlzdChrZXksIGFycik7XG4gICAgfVxuXG4gICAgLy8gRmFsbCB0aHJvdWdoIHRvIGNvcnJlY3RseSByZWplY3QgZW5jb2RlZCBzdHJpbmdzIGluc2lkZSBhbiBhcnJheS5cbiAgICAvLyBUaGV5IGNhbm5vdCBiZSByZXByZXNlbnRlZCBiZWNhdXNlIHRoZXJlIGlzIG5vIGtleSB0byBhcHBlbmQgYSAnLiQnIHRvLlxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBba2V5XTogcmVzb2x2ZUFycmF5KGFyciwgaGFuZGxlcnMsIHZpc2l0ZWQpLFxuICB9O1xufVxuXG5mdW5jdGlvbiByZXNvbHZlQXJyYXkoXG4gIGFycjogYW55W10sXG4gIGhhbmRsZXJzOiBGaWVsZEhhbmRsZXJzLFxuICB2aXNpdGVkOiBvYmplY3RbXSA9IFtdLFxuKTogYW55W10ge1xuICByZXR1cm4gYXJyLm1hcCgodmFsdWUpID0+IHtcbiAgICBpZiAoXG4gICAgICAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIGpzb25QYXRoU3RyaW5nKHZhbHVlKSAhPT0gdW5kZWZpbmVkKSB8fFxuICAgICAgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiAmJiBqc29uUGF0aE51bWJlcih2YWx1ZSkgIT09IHVuZGVmaW5lZCkgfHxcbiAgICAgIChpc1N0cmluZ0FycmF5KHZhbHVlKSAmJiBqc29uUGF0aFN0cmluZ0xpc3QodmFsdWUpICE9PSB1bmRlZmluZWQpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQ2Fubm90IHVzZSBKc29uUGF0aCBmaWVsZHMgaW4gYW4gYXJyYXksIHRoZXkgbXVzdCBiZSB1c2VkIGluIG9iamVjdHNcIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHJlc29sdmVBcnJheSh2YWx1ZSwgaGFuZGxlcnMsIHZpc2l0ZWQpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gcmVjdXJzZU9iamVjdCh2YWx1ZSwgaGFuZGxlcnMsIHZpc2l0ZWQpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpc1N0cmluZ0FycmF5KHg6IGFueSk6IHggaXMgc3RyaW5nW10ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh4KSAmJiB4LmV2ZXJ5KChlbCkgPT4gdHlwZW9mIGVsID09PSBcInN0cmluZ1wiKTtcbn1cblxuLyoqXG4gKiBSZW5kZXIgYSBwYXJhbWV0ZXIgc3RyaW5nXG4gKlxuICogSWYgdGhlIHN0cmluZyB2YWx1ZSBzdGFydHMgd2l0aCAnJC4nLCByZW5kZXIgaXQgYXMgYSBwYXRoIHN0cmluZywgb3RoZXJ3aXNlIGFzIGEgZGlyZWN0IHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gcmVuZGVyU3RyaW5nKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gIGNvbnN0IHBhdGggPSBqc29uUGF0aFN0cmluZyh2YWx1ZSk7XG4gIGlmIChwYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyBba2V5ICsgXCIuJFwiXTogcGF0aCB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9O1xuICB9XG59XG5cbi8qKlxuICogUmVuZGVyIGEgcmVzb2x2YWJsZVxuICpcbiAqIElmIHdlIGNhbiBleHRyYWN0IGEgUGF0aCBmcm9tIGl0LCByZW5kZXIgYXMgYSBwYXRoIHN0cmluZywgb3RoZXJ3aXNlIGFzIGl0c2VsZiAod2lsbFxuICogYmUgcmVzb2x2ZWQgbGF0ZXJcbiAqL1xuZnVuY3Rpb24gcmVuZGVyUmVzb2x2YWJsZShcbiAga2V5OiBzdHJpbmcsXG4gIHZhbHVlOiBJUmVzb2x2YWJsZSxcbik6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICBjb25zdCBwYXRoID0ganNvblBhdGhGcm9tQW55KHZhbHVlKTtcbiAgaWYgKHBhdGggIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB7IFtrZXkgKyBcIi4kXCJdOiBwYXRoIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH07XG4gIH1cbn1cblxuLyoqXG4gKiBSZW5kZXIgYSBwYXJhbWV0ZXIgc3RyaW5nIGxpc3RcbiAqXG4gKiBJZiB0aGUgc3RyaW5nIHZhbHVlIHN0YXJ0cyB3aXRoICckLicsIHJlbmRlciBpdCBhcyBhIHBhdGggc3RyaW5nLCBvdGhlcndpc2UgYXMgYSBkaXJlY3Qgc3RyaW5nLlxuICovXG5mdW5jdGlvbiByZW5kZXJTdHJpbmdMaXN0KFxuICBrZXk6IHN0cmluZyxcbiAgdmFsdWU6IHN0cmluZ1tdLFxuKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB8IHN0cmluZyB9IHtcbiAgY29uc3QgcGF0aCA9IGpzb25QYXRoU3RyaW5nTGlzdCh2YWx1ZSk7XG4gIGlmIChwYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyBba2V5ICsgXCIuJFwiXTogcGF0aCB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9O1xuICB9XG59XG5cbi8qKlxuICogUmVuZGVyIGEgcGFyYW1ldGVyIG51bWJlclxuICpcbiAqIElmIHRoZSBzdHJpbmcgdmFsdWUgc3RhcnRzIHdpdGggJyQuJywgcmVuZGVyIGl0IGFzIGEgcGF0aCBzdHJpbmcsIG90aGVyd2lzZSBhcyBhIGRpcmVjdCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIHJlbmRlck51bWJlcihcbiAga2V5OiBzdHJpbmcsXG4gIHZhbHVlOiBudW1iZXIsXG4pOiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB8IHN0cmluZyB9IHtcbiAgY29uc3QgcGF0aCA9IGpzb25QYXRoTnVtYmVyKHZhbHVlKTtcbiAgaWYgKHBhdGggIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB7IFtrZXkgKyBcIi4kXCJdOiBwYXRoIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH07XG4gIH1cbn1cblxuLyoqXG4gKiBSZW5kZXIgYSBwYXJhbWV0ZXIgYm9vbGVhblxuICovXG5mdW5jdGlvbiByZW5kZXJCb29sZWFuKFxuICBrZXk6IHN0cmluZyxcbiAgdmFsdWU6IGJvb2xlYW4sXG4pOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9O1xufVxuXG4vKipcbiAqIElmIHRoZSBpbmRpY2F0ZWQgc3RyaW5nIGlzIGFuIGVuY29kZWQgSlNPTiBwYXRoLCByZXR1cm4gdGhlIHBhdGhcbiAqXG4gKiBPdGhlcndpc2UgcmV0dXJuIHVuZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25QYXRoU3RyaW5nKHg6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGZyYWdtZW50cyA9IFRva2VuaXphdGlvbi5yZXZlcnNlU3RyaW5nKHgpO1xuICBjb25zdCBqc29uUGF0aFRva2VucyA9IGZyYWdtZW50cy50b2tlbnMuZmlsdGVyKEpzb25QYXRoVG9rZW4uaXNKc29uUGF0aFRva2VuKTtcblxuICBpZiAoanNvblBhdGhUb2tlbnMubGVuZ3RoID4gMCAmJiBmcmFnbWVudHMubGVuZ3RoID4gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBGaWVsZCByZWZlcmVuY2VzIG11c3QgYmUgdGhlIGVudGlyZSBzdHJpbmcsIGNhbm5vdCBjb25jYXRlbmF0ZSB0aGVtIChmb3VuZCAnJHt4fScpYCxcbiAgICApO1xuICB9XG4gIGlmIChqc29uUGF0aFRva2Vucy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIGpzb25QYXRoVG9rZW5zWzBdLnBhdGg7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGpzb25QYXRoRnJvbUFueSh4OiBhbnkpIHtcbiAgaWYgKCF4KSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAodHlwZW9mIHggPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4ganNvblBhdGhTdHJpbmcoeCk7XG4gIH1cbiAgY29uc3QgcmVzb2x2YWJsZXMgPSBUb2tlbml6YXRpb24ucmV2ZXJzZSh4KTtcbiAgaWYgKHJlc29sdmFibGVzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBwYXRoRnJvbVRva2VuKHJlc29sdmFibGVzWzBdKTtcbiAgfVxuICBpZiAocmVzb2x2YWJsZXMubGVuZ3RoID4gMSkge1xuICAgIC8vIFRPRE86IFNob3VsZCBuZXZlciBoYXBwZW4sIGJ1dCBpZiBpdCBkb2VzLCB3ZSBzaG91bGQgdGhyb3cgYSBiZXR0ZXIgZXJyb3JcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVW5leHBlY3RlZCB2YWx1ZTogJHt4fSAoZXhwZWN0ZWQgYSBzdHJpbmcgb3IgYSBzaW5nbGUgcmVzb2x2YWJsZSlgLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBJZiB0aGUgaW5kaWNhdGVkIHN0cmluZyBsaXN0IGlzIGFuIGVuY29kZWQgSlNPTiBwYXRoLCByZXR1cm4gdGhlIHBhdGhcbiAqXG4gKiBPdGhlcndpc2UgcmV0dXJuIHVuZGVmaW5lZC5cbiAqL1xuZnVuY3Rpb24ganNvblBhdGhTdHJpbmdMaXN0KHg6IHN0cmluZ1tdKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHBhdGhGcm9tVG9rZW4oVG9rZW5pemF0aW9uLnJldmVyc2VMaXN0KHgpKTtcbn1cblxuLyoqXG4gKiBJZiB0aGUgaW5kaWNhdGVkIG51bWJlciBpcyBhbiBlbmNvZGVkIEpTT04gcGF0aCwgcmV0dXJuIHRoZSBwYXRoXG4gKlxuICogT3RoZXJ3aXNlIHJldHVybiB1bmRlZmluZWQuXG4gKi9cbmZ1bmN0aW9uIGpzb25QYXRoTnVtYmVyKHg6IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBwYXRoRnJvbVRva2VuKFRva2VuaXphdGlvbi5yZXZlcnNlTnVtYmVyKHgpKTtcbn1cblxuZnVuY3Rpb24gcGF0aEZyb21Ub2tlbih0b2tlbjogSVJlc29sdmFibGUgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIChcbiAgICB0b2tlbiAmJiAoSnNvblBhdGhUb2tlbi5pc0pzb25QYXRoVG9rZW4odG9rZW4pID8gdG9rZW4ucGF0aCA6IHVuZGVmaW5lZClcbiAgKTtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIHN0cmluZyBvciBudW1iZXIgdmFsdWUgaW4gYSB2YWxpZCBKU09OIFBhdGggZXhwcmVzc2lvbi5cbiAqXG4gKiBJZiB0aGUgdmFsdWUgaXMgYSBUb2tlbml6ZWQgSlNPTiBwYXRoIHJlZmVyZW5jZSAtLSByZXR1cm4gdGhlIEpTT04gcGF0aCByZWZlcmVuY2UgaW5zaWRlIGl0LlxuICogSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyIC0tIGNvbnZlcnQgaXQgdG8gc3RyaW5nLlxuICogSWYgdGhlIHZhbHVlIGlzIGEgc3RyaW5nIC0tIHNpbmdsZS1xdW90ZSBpdC5cbiAqIE90aGVyd2lzZSwgdGhyb3cgZXJyb3JzLlxuICpcbiAqIENhbGwgdGhpcyBmdW5jdGlvbiB3aGVuZXZlciB5b3UncmUgYnVpbGRpbmcgY29tcG91bmQgSlNPTlBhdGggZXhwcmVzc2lvbnMsIGluXG4gKiBvcmRlciB0byBhdm9pZCBoYXZpbmcgdG9rZW5zLWluLXRva2Vucy1pbi10b2tlbnMgd2hpY2ggYmVjb21lIHZlcnkgaGFyZCB0byBwYXJzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckluRXhwcmVzc2lvbih4OiBhbnkpIHtcbiAgY29uc3QgcGF0aCA9IGpzb25QYXRoRnJvbUFueSh4KTtcbiAgaWYgKHBhdGgpIHJldHVybiBwYXRoO1xuICBpZiAodHlwZW9mIHggPT09IFwibnVtYmVyXCIpIHJldHVybiB4LnRvU3RyaW5nKDEwKTtcbiAgaWYgKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiKSByZXR1cm4gc2luZ2xlUXVvdGVzdHJpbmcoeCk7XG4gIHRocm93IG5ldyBFcnJvcihcIlVueGV4cGVjdGVkIHZhbHVlLlwiKTtcbn1cblxuZnVuY3Rpb24gc2luZ2xlUXVvdGVzdHJpbmcoeDogc3RyaW5nKSB7XG4gIGNvbnN0IHJldCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIHJldC5wdXNoKFwiJ1wiKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB4Lmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgYyA9IHhbaV07XG4gICAgaWYgKGMgPT09IFwiJ1wiKSB7XG4gICAgICByZXQucHVzaChcIlxcXFwnXCIpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBjID09PSBcIlxcXFxcIiAmJlxuICAgICAgKGkgPT0geC5sZW5ndGggLSAxIHx8ICh4W2kgKyAxXSAhPSBcIntcIiAmJiB4W2kgKyAxXSAhPSBcIn1cIikpXG4gICAgKSB7XG4gICAgICAvLyBFc2NhcGUgYmFja3NsYXNoLCBidXQgb25seSBpZiBpdCBkb2Vzbid0IGltbWVkaWF0ZWx5IHByZWNlZGUgYSBjdXJseSBicmFjZVxuICAgICAgcmV0LnB1c2goXCJcXFxcXFxcXFwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0LnB1c2goYyk7XG4gICAgfVxuICB9XG4gIHJldC5wdXNoKFwiJ1wiKTtcbiAgcmV0dXJuIHJldC5qb2luKFwiXCIpO1xufVxuIl19
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.noEmptyObject =
|
|
3
|
+
exports.noEmptyObject = noEmptyObject;
|
|
4
4
|
function noEmptyObject(o) {
|
|
5
5
|
if (Object.keys(o).length === 0) {
|
|
6
6
|
return undefined;
|
|
7
7
|
}
|
|
8
8
|
return o;
|
|
9
9
|
}
|
|
10
|
-
exports.noEmptyObject = noEmptyObject;
|
|
11
10
|
// import { AwsOwnedEncryptionConfiguration } from "../aws-owned-key-encryption-configuration";
|
|
12
11
|
// import { CustomerManagedEncryptionConfiguration } from "../customer-managed-key-encryption-configuration";
|
|
13
12
|
// import { EncryptionConfiguration } from "../encryption-configuration";
|
|
@@ -35,4 +34,4 @@ exports.noEmptyObject = noEmptyObject;
|
|
|
35
34
|
// }
|
|
36
35
|
// return undefined;
|
|
37
36
|
// }
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9wcml2YXRlL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzQ0FPQztBQVBELFNBQWdCLGFBQWEsQ0FDM0IsQ0FBb0I7SUFFcEIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDO0FBRUQsK0ZBQStGO0FBQy9GLDZHQUE2RztBQUM3Ryx5RUFBeUU7QUFDekUsZ0RBQWdEO0FBQ2hELHVEQUF1RDtBQUN2RCxNQUFNO0FBQ04sOEVBQThFO0FBQzlFLGVBQWU7QUFDZiw0Q0FBNEM7QUFDNUMsU0FBUztBQUNULE1BQU07QUFFTixTQUFTO0FBQ1QsZ0ZBQWdGO0FBQ2hGLFFBQVE7QUFDUix3TEFBd0w7QUFDeEwsNkRBQTZEO0FBQzdELGVBQWU7QUFDZix5REFBeUQ7QUFDekQsc0NBQXNDO0FBQ3RDLCtEQUErRDtBQUMvRCwrRUFBK0U7QUFDL0UseURBQXlEO0FBQ3pELDRDQUE0QztBQUM1QyxTQUFTO0FBQ1QsTUFBTTtBQUVOLHNCQUFzQjtBQUN0QixJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIG5vRW1wdHlPYmplY3Q8QT4oXG4gIG86IFJlY29yZDxzdHJpbmcsIEE+LFxuKTogUmVjb3JkPHN0cmluZywgQT4gfCB1bmRlZmluZWQge1xuICBpZiAoT2JqZWN0LmtleXMobykubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4gbztcbn1cblxuLy8gaW1wb3J0IHsgQXdzT3duZWRFbmNyeXB0aW9uQ29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi9hd3Mtb3duZWQta2V5LWVuY3J5cHRpb24tY29uZmlndXJhdGlvblwiO1xuLy8gaW1wb3J0IHsgQ3VzdG9tZXJNYW5hZ2VkRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24gfSBmcm9tIFwiLi4vY3VzdG9tZXItbWFuYWdlZC1rZXktZW5jcnlwdGlvbi1jb25maWd1cmF0aW9uXCI7XG4vLyBpbXBvcnQgeyBFbmNyeXB0aW9uQ29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi9lbmNyeXB0aW9uLWNvbmZpZ3VyYXRpb25cIjtcbi8vIGV4cG9ydCBmdW5jdGlvbiBidWlsZEVuY3J5cHRpb25Db25maWd1cmF0aW9uKFxuLy8gICBlbmNyeXB0aW9uQ29uZmlndXJhdGlvbj86IEVuY3J5cHRpb25Db25maWd1cmF0aW9uLFxuLy8gKSB7XG4vLyAgIGlmIChlbmNyeXB0aW9uQ29uZmlndXJhdGlvbiBpbnN0YW5jZW9mIEF3c093bmVkRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24pIHtcbi8vICAgICByZXR1cm4ge1xuLy8gICAgICAgdHlwZTogZW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24udHlwZSxcbi8vICAgICB9O1xuLy8gICB9XG5cbi8vICAgaWYgKFxuLy8gICAgIGVuY3J5cHRpb25Db25maWd1cmF0aW9uIGluc3RhbmNlb2YgQ3VzdG9tZXJNYW5hZ2VkRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25cbi8vICAgKSB7XG4vLyAgICAgLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYGttc0RhdGFLZXlSZXVzZVBlcmlvZFNlY29uZHNgLCBzZWU6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zdGVwLWZ1bmN0aW9ucy9sYXRlc3QvZGcvZW5jcnlwdGlvbi1hdC1yZXN0Lmh0bWwjY2ZuLXJlc291cmNlcy1mb3ItZW5jcnlwdGlvbi1jb25maWd1cmF0aW9uXG4vLyAgICAgY29uc3QgREVGQVVMVF9LTVNfREFUQV9LRVlfUkVVU0VfUEVSSU9EX1NFQ09ORFMgPSAzMDA7XG4vLyAgICAgcmV0dXJuIHtcbi8vICAgICAgIGttc0tleUlkOiBlbmNyeXB0aW9uQ29uZmlndXJhdGlvbi5rbXNLZXkua2V5QXJuLFxuLy8gICAgICAga21zRGF0YUtleVJldXNlUGVyaW9kU2Vjb25kczpcbi8vICAgICAgICAgZW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24ua21zRGF0YUtleVJldXNlUGVyaW9kU2Vjb25kc1xuLy8gICAgICAgICAgID8gZW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24ua21zRGF0YUtleVJldXNlUGVyaW9kU2Vjb25kcy50b1NlY29uZHMoKVxuLy8gICAgICAgICAgIDogREVGQVVMVF9LTVNfREFUQV9LRVlfUkVVU0VfUEVSSU9EX1NFQ09ORFMsXG4vLyAgICAgICB0eXBlOiBlbmNyeXB0aW9uQ29uZmlndXJhdGlvbi50eXBlLFxuLy8gICAgIH07XG4vLyAgIH1cblxuLy8gICByZXR1cm4gdW5kZWZpbmVkO1xuLy8gfVxuIl19
|