terraconstructs 0.2.4 → 0.2.6
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 +3099 -2917
- package/CLAUDE.md +6 -6
- package/README.md +1 -1
- package/lib/asset-staging.js +3 -3
- package/lib/aws/arn.js +5 -5
- package/lib/aws/aws-asset-manager.js +9 -9
- package/lib/aws/aws-construct.js +1 -1
- package/lib/aws/aws-stack.d.ts +19 -4
- package/lib/aws/aws-stack.js +43 -18
- package/lib/aws/aws-tags.d.ts +1 -1
- package/lib/aws/aws-tags.js +5 -5
- package/lib/aws/cloudwatch/actions/appscaling.js +1 -1
- package/lib/aws/cloudwatch/actions/ec2.js +1 -1
- package/lib/aws/cloudwatch/actions/lambda.js +2 -2
- package/lib/aws/cloudwatch/actions/sns.js +1 -1
- package/lib/aws/cloudwatch/actions/ssm.js +2 -2
- 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.d.ts +1 -1
- package/lib/aws/cloudwatch/alarm.js +10 -10
- package/lib/aws/cloudwatch/composite-alarm.d.ts +1 -1
- package/lib/aws/cloudwatch/composite-alarm.js +7 -7
- package/lib/aws/cloudwatch/dashboard.d.ts +1 -1
- package/lib/aws/cloudwatch/dashboard.js +7 -7
- package/lib/aws/cloudwatch/data-protection-policy.d.ts +1 -1
- package/lib/aws/cloudwatch/data-protection-policy.js +5 -5
- 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.d.ts +1 -1
- package/lib/aws/cloudwatch/log-group.js +7 -7
- package/lib/aws/cloudwatch/log-query.js +1 -1
- package/lib/aws/cloudwatch/log-stream.d.ts +1 -1
- package/lib/aws/cloudwatch/log-stream.js +3 -3
- package/lib/aws/cloudwatch/metric-filter.d.ts +1 -1
- package/lib/aws/cloudwatch/metric-filter.js +3 -3
- package/lib/aws/cloudwatch/metric.js +6 -6
- package/lib/aws/cloudwatch/pattern.js +3 -3
- package/lib/aws/cloudwatch/policy.d.ts +1 -1
- package/lib/aws/cloudwatch/policy.js +3 -3
- package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.d.ts +1 -1
- package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.js +1 -1
- package/lib/aws/cloudwatch/private/env-tokens.js +6 -6
- package/lib/aws/cloudwatch/query-definition.d.ts +1 -1
- package/lib/aws/cloudwatch/query-definition.js +4 -4
- 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 +6 -6
- package/lib/aws/cloudwatch/text.js +1 -1
- package/lib/aws/cloudwatch/variable.js +3 -3
- package/lib/aws/cloudwatch/widget.js +1 -1
- package/lib/aws/compute/access-log.d.ts +1 -1
- package/lib/aws/compute/access-log.js +5 -5
- package/lib/aws/compute/activity.d.ts +1 -1
- package/lib/aws/compute/activity.js +5 -5
- package/lib/aws/compute/alb/application-listener-action.d.ts +1 -1
- package/lib/aws/compute/alb/application-listener-action.js +5 -5
- package/lib/aws/compute/alb/application-listener-certificate.js +3 -3
- package/lib/aws/compute/alb/application-listener-rule.js +9 -9
- package/lib/aws/compute/alb/application-listener.js +5 -5
- package/lib/aws/compute/alb/application-load-balancer.js +8 -8
- package/lib/aws/compute/alb/application-target-group.js +7 -7
- package/lib/aws/compute/alb/conditions.js +3 -3
- package/lib/aws/compute/alb/trust-store-revocation.js +3 -3
- package/lib/aws/compute/alb/trust-store.js +7 -7
- package/lib/aws/compute/api-definition.js +9 -9
- package/lib/aws/compute/api-key.js +6 -6
- package/lib/aws/compute/architecture.js +1 -1
- package/lib/aws/compute/aspects/require-imdsv2-aspect.d.ts +1 -1
- package/lib/aws/compute/aspects/require-imdsv2-aspect.js +6 -6
- package/lib/aws/compute/authorizer.js +1 -1
- package/lib/aws/compute/authorizers/identity-source.js +1 -1
- package/lib/aws/compute/authorizers/lambda.d.ts +1 -1
- package/lib/aws/compute/authorizers/lambda.js +6 -6
- package/lib/aws/compute/base-path-mapping.js +5 -5
- package/lib/aws/compute/base-scalable-attribute.js +1 -1
- package/lib/aws/compute/bastion-host.js +4 -4
- package/lib/aws/compute/chain.js +1 -1
- package/lib/aws/compute/client-vpn-authorization-rule.js +3 -3
- package/lib/aws/compute/client-vpn-endpoint.d.ts +1 -1
- package/lib/aws/compute/client-vpn-endpoint.js +9 -9
- package/lib/aws/compute/client-vpn-route.d.ts +1 -1
- package/lib/aws/compute/client-vpn-route.js +4 -4
- package/lib/aws/compute/code.d.ts +3 -3
- package/lib/aws/compute/code.js +15 -15
- package/lib/aws/compute/condition.js +1 -1
- package/lib/aws/compute/connections.js +1 -1
- package/lib/aws/compute/cors.js +1 -1
- package/lib/aws/compute/deployment.js +5 -5
- package/lib/aws/compute/domain-name.js +5 -5
- package/lib/aws/compute/event-invoke-config.d.ts +1 -1
- package/lib/aws/compute/event-invoke-config.js +3 -3
- package/lib/aws/compute/event-source-filter.js +2 -2
- package/lib/aws/compute/event-source-mapping.js +7 -7
- 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 +5 -5
- package/lib/aws/compute/fields.d.ts +1 -1
- package/lib/aws/compute/fields.js +12 -12
- package/lib/aws/compute/function-alias.d.ts +1 -1
- package/lib/aws/compute/function-alias.js +3 -3
- package/lib/aws/compute/function-base.d.ts +1 -1
- package/lib/aws/compute/function-base.js +10 -9
- 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/bundling.js +6 -6
- package/lib/aws/compute/function-nodejs/function.js +4 -4
- package/lib/aws/compute/function-url.d.ts +1 -1
- package/lib/aws/compute/function-url.js +3 -3
- package/lib/aws/compute/function-vpc-config.generated.d.ts +5 -5
- package/lib/aws/compute/function-vpc-config.generated.js +1 -1
- package/lib/aws/compute/function.d.ts +2 -2
- package/lib/aws/compute/function.js +9 -9
- package/lib/aws/compute/gateway-response.d.ts +1 -1
- package/lib/aws/compute/gateway-response.js +4 -4
- package/lib/aws/compute/handler.js +1 -1
- package/lib/aws/compute/instance-types.js +1 -1
- package/lib/aws/compute/instance.d.ts +1 -1
- package/lib/aws/compute/instance.js +9 -9
- package/lib/aws/compute/integration.js +4 -4
- package/lib/aws/compute/integrations/aws.js +3 -3
- package/lib/aws/compute/integrations/http.js +1 -1
- package/lib/aws/compute/integrations/lambda.js +5 -5
- package/lib/aws/compute/integrations/mock.js +1 -1
- package/lib/aws/compute/integrations/stepfunctions.js +4 -4
- package/lib/aws/compute/ip-addresses.d.ts +1 -1
- package/lib/aws/compute/ip-addresses.js +10 -10
- package/lib/aws/compute/ipam.d.ts +1 -1
- package/lib/aws/compute/ipam.js +5 -5
- package/lib/aws/compute/key-pair.d.ts +1 -1
- package/lib/aws/compute/key-pair.js +6 -6
- package/lib/aws/compute/lambda-api.js +1 -1
- package/lib/aws/compute/launch-template.d.ts +1 -1
- package/lib/aws/compute/launch-template.js +12 -12
- package/lib/aws/compute/lb-shared/base-listener.js +9 -9
- package/lib/aws/compute/lb-shared/base-load-balancer.d.ts +2 -2
- package/lib/aws/compute/lb-shared/base-load-balancer.js +12 -12
- package/lib/aws/compute/lb-shared/base-target-group.d.ts +1 -1
- package/lib/aws/compute/lb-shared/base-target-group.js +15 -15
- package/lib/aws/compute/lb-shared/lb-listener-config.generated.d.ts +34 -34
- package/lib/aws/compute/lb-shared/lb-listener-config.generated.js +1 -1
- package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.d.ts +11 -6
- package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.js +1 -1
- package/lib/aws/compute/lb-shared/listener-action.d.ts +1 -1
- package/lib/aws/compute/lb-shared/listener-action.js +1 -1
- package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
- package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
- package/lib/aws/compute/lb-shared/util.js +5 -5
- package/lib/aws/compute/lb-targets/alb-target.js +3 -3
- package/lib/aws/compute/lb-targets/instance-target.js +2 -2
- package/lib/aws/compute/lb-targets/ip-target.js +1 -1
- package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
- package/lib/aws/compute/load-balancer.d.ts +1 -1
- package/lib/aws/compute/load-balancer.js +8 -8
- package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
- package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
- package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
- package/lib/aws/compute/machine-image/common.js +1 -1
- package/lib/aws/compute/machine-image/machine-image.js +10 -10
- package/lib/aws/compute/method.js +6 -6
- package/lib/aws/compute/model.js +5 -5
- package/lib/aws/compute/nat.js +10 -10
- package/lib/aws/compute/network-acl-types.js +2 -2
- package/lib/aws/compute/network-acl.d.ts +1 -1
- package/lib/aws/compute/network-acl.js +5 -5
- package/lib/aws/compute/nlb/network-listener-action.d.ts +1 -1
- package/lib/aws/compute/nlb/network-listener-action.js +2 -2
- package/lib/aws/compute/nlb/network-listener-certificate.js +2 -2
- package/lib/aws/compute/nlb/network-listener.js +5 -5
- package/lib/aws/compute/nlb/network-load-balancer.js +6 -6
- package/lib/aws/compute/nlb/network-target-group.js +4 -4
- package/lib/aws/compute/peer.js +7 -7
- package/lib/aws/compute/placement-group.d.ts +1 -1
- package/lib/aws/compute/placement-group.js +3 -3
- package/lib/aws/compute/port.js +5 -5
- package/lib/aws/compute/prefix-list.d.ts +1 -1
- package/lib/aws/compute/prefix-list.js +5 -5
- package/lib/aws/compute/private/context-stub.js +7 -7
- package/lib/aws/compute/private/ebs-util.d.ts +1 -1
- package/lib/aws/compute/private/ebs-util.js +3 -3
- package/lib/aws/compute/private/json-path.d.ts +1 -1
- package/lib/aws/compute/private/json-path.js +8 -8
- package/lib/aws/compute/requestvalidator.js +3 -3
- package/lib/aws/compute/resource.js +5 -5
- package/lib/aws/compute/restapi.d.ts +1 -1
- package/lib/aws/compute/restapi.js +11 -11
- package/lib/aws/compute/route.d.ts +1 -1
- package/lib/aws/compute/route.js +12 -12
- package/lib/aws/compute/runtime.js +3 -3
- package/lib/aws/compute/scalable-target.d.ts +1 -1
- package/lib/aws/compute/scalable-target.js +3 -3
- package/lib/aws/compute/schedule.js +4 -4
- package/lib/aws/compute/security-group.js +12 -12
- package/lib/aws/compute/stage.d.ts +1 -1
- package/lib/aws/compute/stage.js +6 -6
- 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 +8 -8
- package/lib/aws/compute/states/choice.js +1 -1
- package/lib/aws/compute/states/custom-state.js +5 -5
- 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 +4 -4
- package/lib/aws/compute/states/fail.js +4 -4
- package/lib/aws/compute/states/map-base.js +4 -4
- 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 +4 -4
- 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/step-scaling-action.js +5 -5
- package/lib/aws/compute/step-scaling-policy.js +7 -7
- package/lib/aws/compute/stepfunctions-api.js +2 -2
- package/lib/aws/compute/subnet-v2.d.ts +1 -1
- package/lib/aws/compute/subnet-v2.js +5 -5
- package/lib/aws/compute/subnet.js +4 -4
- package/lib/aws/compute/target-tracking-scaling-policy.js +3 -3
- 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 +5 -5
- 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/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 +1 -1
- package/lib/aws/compute/usage-plan.js +5 -5
- package/lib/aws/compute/user-data.d.ts +2 -2
- package/lib/aws/compute/user-data.js +10 -10
- package/lib/aws/compute/volume.d.ts +1 -1
- package/lib/aws/compute/volume.js +7 -7
- package/lib/aws/compute/vpc-endpoint-service.js +3 -3
- package/lib/aws/compute/vpc-endpoint.d.ts +1 -1
- package/lib/aws/compute/vpc-endpoint.js +13 -13
- package/lib/aws/compute/vpc-flow-logs.d.ts +1 -1
- package/lib/aws/compute/vpc-flow-logs.js +8 -8
- package/lib/aws/compute/vpc-link.js +5 -5
- package/lib/aws/compute/vpc-v2-base.js +6 -6
- package/lib/aws/compute/vpc-v2.d.ts +2 -2
- package/lib/aws/compute/vpc-v2.js +4 -4
- package/lib/aws/compute/vpc.d.ts +1 -1
- package/lib/aws/compute/vpc.js +24 -22
- package/lib/aws/compute/vpn.js +8 -8
- package/lib/aws/context-provider.js +4 -4
- package/lib/aws/edge/certificate.d.ts +1 -1
- package/lib/aws/edge/certificate.js +6 -6
- package/lib/aws/edge/distribution.d.ts +1 -1
- package/lib/aws/edge/distribution.js +9 -9
- package/lib/aws/edge/dns-alias-record-targets.d.ts +1 -1
- package/lib/aws/edge/dns-alias-record-targets.js +7 -7
- package/lib/aws/edge/dns-record.d.ts +1 -1
- package/lib/aws/edge/dns-record.js +19 -19
- package/lib/aws/edge/dns-zone.d.ts +2 -2
- package/lib/aws/edge/dns-zone.js +5 -5
- package/lib/aws/edge/function.d.ts +1 -1
- package/lib/aws/edge/function.js +4 -4
- package/lib/aws/edge/key-value-store.d.ts +1 -1
- package/lib/aws/edge/key-value-store.js +6 -6
- package/lib/aws/edge/origin.d.ts +1 -1
- package/lib/aws/edge/origin.js +6 -6
- package/lib/aws/edge/response-headers-policy.d.ts +1 -1
- package/lib/aws/edge/response-headers-policy.js +6 -6
- package/lib/aws/encryption/alias.d.ts +1 -1
- package/lib/aws/encryption/alias.js +8 -8
- package/lib/aws/encryption/key.d.ts +1 -1
- package/lib/aws/encryption/key.js +6 -6
- package/lib/aws/encryption/via-service-principal.js +1 -1
- package/lib/aws/iam/grant.js +3 -3
- package/lib/aws/iam/group.js +5 -5
- package/lib/aws/iam/instance-profile.d.ts +1 -1
- package/lib/aws/iam/instance-profile.js +3 -3
- package/lib/aws/iam/managed-policy.d.ts +1 -1
- package/lib/aws/iam/managed-policy.js +3 -3
- package/lib/aws/iam/oidc-provider.d.ts +1 -1
- package/lib/aws/iam/oidc-provider.js +3 -3
- package/lib/aws/iam/policy-document-config.generated.d.ts +9 -9
- package/lib/aws/iam/policy-document-config.generated.js +1 -1
- package/lib/aws/iam/policy-document.d.ts +1 -1
- package/lib/aws/iam/policy-document.js +5 -5
- 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.d.ts +1 -1
- package/lib/aws/iam/policy-statement.js +8 -8
- package/lib/aws/iam/policy.js +3 -3
- package/lib/aws/iam/principals.js +25 -25
- package/lib/aws/iam/private/imported-role.js +3 -3
- package/lib/aws/iam/private/postprocess-policy-document.d.ts +1 -1
- package/lib/aws/iam/private/postprocess-policy-document.js +1 -1
- package/lib/aws/iam/private/util.d.ts +1 -1
- package/lib/aws/iam/private/util.js +5 -5
- package/lib/aws/iam/role.d.ts +1 -1
- package/lib/aws/iam/role.js +6 -6
- 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 +4 -4
- package/lib/aws/iam/user.js +3 -3
- package/lib/aws/network/network.d.ts +1 -1
- package/lib/aws/network/network.js +1 -1
- package/lib/aws/network/simple-ipv4-vpc.js +12 -12
- package/lib/aws/network/subnet-group.d.ts +1 -1
- package/lib/aws/network/subnet-group.js +5 -5
- package/lib/aws/network/subnet.d.ts +1 -1
- package/lib/aws/network/subnet.js +6 -6
- package/lib/aws/notify/archive.d.ts +1 -1
- package/lib/aws/notify/archive.js +3 -3
- package/lib/aws/notify/connection.d.ts +1 -1
- package/lib/aws/notify/connection.js +5 -5
- package/lib/aws/notify/event-bus.d.ts +1 -1
- package/lib/aws/notify/event-bus.js +10 -10
- package/lib/aws/notify/event-pattern.d.ts +1 -1
- package/lib/aws/notify/event-pattern.js +5 -5
- package/lib/aws/notify/input.d.ts +1 -1
- package/lib/aws/notify/input.js +12 -12
- package/lib/aws/notify/kinesis-stream.d.ts +1 -1
- package/lib/aws/notify/kinesis-stream.js +7 -7
- package/lib/aws/notify/notification-rule.js +8 -8
- package/lib/aws/notify/policy.js +3 -3
- package/lib/aws/notify/queue-base.js +1 -1
- package/lib/aws/notify/queue-policy.js +3 -3
- package/lib/aws/notify/queue.d.ts +1 -1
- package/lib/aws/notify/queue.js +8 -8
- package/lib/aws/notify/resource-policy.js +3 -3
- package/lib/aws/notify/rule.d.ts +1 -1
- package/lib/aws/notify/rule.js +6 -6
- package/lib/aws/notify/schedule.js +4 -4
- package/lib/aws/notify/sns-grants.generated.js +1 -1
- package/lib/aws/notify/sqs-grants.generated.js +1 -1
- package/lib/aws/notify/subscription-filter.js +1 -1
- package/lib/aws/notify/subscription.js +6 -6
- package/lib/aws/notify/subscriptions/email.js +1 -1
- package/lib/aws/notify/subscriptions/lambda.js +4 -4
- package/lib/aws/notify/subscriptions/sms.js +1 -1
- package/lib/aws/notify/subscriptions/sqs.js +4 -4
- package/lib/aws/notify/subscriptions/url.js +4 -4
- package/lib/aws/notify/target.d.ts +1 -1
- package/lib/aws/notify/target.js +1 -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.js +3 -3
- package/lib/aws/notify/topic-base.js +4 -4
- package/lib/aws/notify/topic.js +7 -7
- package/lib/aws/provider-config.generated.d.ts +42 -36
- package/lib/aws/provider-config.generated.js +1 -1
- package/lib/aws/region-lookup.js +4 -4
- package/lib/aws/storage/assets/image-asset.js +8 -8
- package/lib/aws/storage/assets/s3.js +1 -1
- package/lib/aws/storage/auth-token.js +2 -2
- package/lib/aws/storage/billing.js +1 -1
- package/lib/aws/storage/bucket-notifications.d.ts +1 -1
- package/lib/aws/storage/bucket-notifications.js +8 -8
- package/lib/aws/storage/bucket-policy.d.ts +1 -1
- package/lib/aws/storage/bucket-policy.js +3 -3
- package/lib/aws/storage/bucket-source.d.ts +1 -1
- package/lib/aws/storage/bucket-source.js +7 -7
- package/lib/aws/storage/bucket.d.ts +1 -1
- package/lib/aws/storage/bucket.js +8 -8
- package/lib/aws/storage/capacity.js +1 -1
- package/lib/aws/storage/cors-config.generated.d.ts +5 -5
- 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/ecr-repository.js +11 -11
- package/lib/aws/storage/encryption.d.ts +1 -1
- package/lib/aws/storage/encryption.js +5 -5
- package/lib/aws/storage/lifecycle-config.generated.d.ts +9 -9
- package/lib/aws/storage/lifecycle-config.generated.js +1 -1
- package/lib/aws/storage/notification-targets/function.js +2 -2
- package/lib/aws/storage/notification-targets/queue.js +4 -4
- package/lib/aws/storage/origin-access-identity.d.ts +2 -2
- package/lib/aws/storage/origin-access-identity.js +3 -3
- package/lib/aws/storage/parameter-util.js +5 -5
- package/lib/aws/storage/parameter.d.ts +2 -2
- package/lib/aws/storage/parameter.js +16 -16
- package/lib/aws/storage/stream-grants.js +1 -1
- package/lib/aws/storage/table-grants.js +1 -1
- package/lib/aws/storage/table.d.ts +1 -1
- package/lib/aws/storage/table.js +10 -10
- package/lib/aws/storage/website-config.generated.d.ts +8 -8
- package/lib/aws/storage/website-config.generated.js +1 -1
- package/lib/bundling.js +5 -5
- package/lib/construct-base.d.ts +1 -1
- package/lib/construct-base.js +10 -10
- package/lib/duration.js +9 -9
- package/lib/errors.js +1 -1
- package/lib/expiration.js +1 -1
- package/lib/fs/ignore.js +4 -4
- package/lib/fs/index.js +1 -1
- package/lib/private/terraform-dependables-aspect.d.ts +1 -1
- package/lib/private/terraform-dependables-aspect.js +6 -6
- package/lib/private/unique-resource-name.js +3 -3
- package/lib/size.js +6 -6
- package/lib/stack-base.d.ts +2 -2
- package/lib/stack-base.js +16 -16
- package/lib/terra-func.d.ts +1 -1
- package/lib/terra-func.js +18 -18
- package/lib/time-zone.js +1 -1
- package/lib/token.js +5 -5
- package/package.json +17 -17
- package/setup.js +2 -2
package/lib/stack-base.js
CHANGED
|
@@ -4,12 +4,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.StackBase = void 0;
|
|
5
5
|
exports.rootPathTo = rootPathTo;
|
|
6
6
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
7
|
-
const provider_archive_1 = require("@
|
|
8
|
-
const
|
|
7
|
+
const provider_archive_1 = require("@cdktn/provider-archive");
|
|
8
|
+
const cdktn_1 = require("cdktn");
|
|
9
9
|
const constructs_1 = require("constructs");
|
|
10
10
|
const errors_1 = require("./errors");
|
|
11
11
|
const private_1 = require("./private");
|
|
12
|
-
const TOKEN_RESOLVER = new
|
|
12
|
+
const TOKEN_RESOLVER = new cdktn_1.DefaultTokenResolver(new cdktn_1.StringConcat());
|
|
13
13
|
const TERRASTACK_SYMBOL = Symbol.for("terraconstructs/lib.Stack");
|
|
14
14
|
const VALID_GRID_UUID_REGEX = /^[A-Za-z0-9-]*$/;
|
|
15
15
|
/**
|
|
@@ -17,7 +17,7 @@ const VALID_GRID_UUID_REGEX = /^[A-Za-z0-9-]*$/;
|
|
|
17
17
|
*
|
|
18
18
|
* Provides a reference to the grid UUID and environment name
|
|
19
19
|
*/
|
|
20
|
-
class StackBase extends
|
|
20
|
+
class StackBase extends cdktn_1.TerraformStack {
|
|
21
21
|
/**
|
|
22
22
|
* Return whether the given object is a Stack.
|
|
23
23
|
*
|
|
@@ -31,7 +31,7 @@ class StackBase extends cdktf_1.TerraformStack {
|
|
|
31
31
|
* @param construct The construct to start the search from.
|
|
32
32
|
*/
|
|
33
33
|
static ofTerraConstruct(construct) {
|
|
34
|
-
const s =
|
|
34
|
+
const s = cdktn_1.TerraformStack.of(construct);
|
|
35
35
|
if (StackBase.isTerraStack(s)) {
|
|
36
36
|
return s;
|
|
37
37
|
}
|
|
@@ -49,7 +49,7 @@ class StackBase extends cdktf_1.TerraformStack {
|
|
|
49
49
|
const node = constructs_1.Construct.isConstruct(construct) ? construct.node : construct;
|
|
50
50
|
const stack = node.scopes
|
|
51
51
|
.reverse()
|
|
52
|
-
.find((component) =>
|
|
52
|
+
.find((component) => cdktn_1.TerraformStack.isStack(component));
|
|
53
53
|
if (!stack) {
|
|
54
54
|
throw new Error("Unable to calculate a unique id without a stack in the construct path");
|
|
55
55
|
}
|
|
@@ -72,7 +72,7 @@ class StackBase extends cdktf_1.TerraformStack {
|
|
|
72
72
|
constructor(scope, id, props = {}) {
|
|
73
73
|
// For unit test scope and id are optional for stacks, but we still want an App
|
|
74
74
|
// as the parent because apps implement much of the synthesis logic.
|
|
75
|
-
scope = scope ?? new
|
|
75
|
+
scope = scope ?? new cdktn_1.App();
|
|
76
76
|
// "Default" is a "hidden id" from a `node.uniqueId` perspective
|
|
77
77
|
id = id ?? "Default";
|
|
78
78
|
super(scope, id);
|
|
@@ -83,14 +83,14 @@ class StackBase extends cdktf_1.TerraformStack {
|
|
|
83
83
|
}
|
|
84
84
|
Object.defineProperty(this, TERRASTACK_SYMBOL, { value: true });
|
|
85
85
|
if (props.gridBackendConfig) {
|
|
86
|
-
this.gridBackend = new
|
|
86
|
+
this.gridBackend = new cdktn_1.HttpBackend(this, props.gridBackendConfig);
|
|
87
87
|
}
|
|
88
88
|
if (!VALID_GRID_UUID_REGEX.test(this.gridUUID)) {
|
|
89
89
|
throw new errors_1.ValidationError(`GridUUID must match the regular expression: ${VALID_GRID_UUID_REGEX.toString()}, got '${this.gridUUID}'`, this);
|
|
90
90
|
}
|
|
91
91
|
// Map construct tree dependencies to ITerraformDependables
|
|
92
92
|
// ref: https://github.com/hashicorp/terraform-cdk/issues/2727#issuecomment-1473321075
|
|
93
|
-
|
|
93
|
+
cdktn_1.Aspects.of(this).add(new private_1.TerraformDependencyAspect());
|
|
94
94
|
// Aspects are invoked in synth after stack has been prepared
|
|
95
95
|
// this should ensure any resources added during `prepareStack()` are included in the dependency tree
|
|
96
96
|
// ref: https://github.com/hashicorp/terraform-cdk/blob/v0.20.9/packages/cdktf/lib/synthesize/synthesizer.ts#L121
|
|
@@ -117,7 +117,7 @@ class StackBase extends cdktf_1.TerraformStack {
|
|
|
117
117
|
*/
|
|
118
118
|
uniqueResourceName(tfElement, options = {}) {
|
|
119
119
|
const node = constructs_1.Construct.isConstruct(tfElement) ? tfElement.node : tfElement;
|
|
120
|
-
const stack =
|
|
120
|
+
const stack = cdktn_1.TerraformElement.isTerraformElement(tfElement)
|
|
121
121
|
? tfElement.cdktfStack
|
|
122
122
|
: this;
|
|
123
123
|
const stackIndex = node.scopes.indexOf(stack);
|
|
@@ -144,7 +144,7 @@ class StackBase extends cdktf_1.TerraformStack {
|
|
|
144
144
|
*/
|
|
145
145
|
uniqueResourceNamePrefix(tfElement, options = {}) {
|
|
146
146
|
const node = constructs_1.Construct.isConstruct(tfElement) ? tfElement.node : tfElement;
|
|
147
|
-
const stack =
|
|
147
|
+
const stack = cdktn_1.TerraformElement.isTerraformElement(tfElement)
|
|
148
148
|
? tfElement.cdktfStack
|
|
149
149
|
: this;
|
|
150
150
|
const stackIndex = node.scopes.indexOf(stack);
|
|
@@ -155,7 +155,7 @@ class StackBase extends cdktf_1.TerraformStack {
|
|
|
155
155
|
}
|
|
156
156
|
/** Resolve IResolvable in scope of this AwsStack */
|
|
157
157
|
resolve(obj, preparing = false) {
|
|
158
|
-
return
|
|
158
|
+
return cdktn_1.Tokenization.resolve(obj, {
|
|
159
159
|
scope: this,
|
|
160
160
|
preparing,
|
|
161
161
|
resolver: TOKEN_RESOLVER,
|
|
@@ -165,7 +165,7 @@ class StackBase extends cdktf_1.TerraformStack {
|
|
|
165
165
|
* Convert an object, potentially containing tokens, to a JSON string
|
|
166
166
|
*/
|
|
167
167
|
toJsonString(obj, space) {
|
|
168
|
-
return
|
|
168
|
+
return cdktn_1.Lazy.stringValue({
|
|
169
169
|
produce: (ctx) => {
|
|
170
170
|
// First resolve Token objects with string concat... then JSON.stringify the resulting object
|
|
171
171
|
//
|
|
@@ -173,7 +173,7 @@ class StackBase extends cdktf_1.TerraformStack {
|
|
|
173
173
|
// https://github.com/aws/aws-cdk/blob/8dca5079e1893122057f9e2c54c0da0ba644926e/packages/%40aws-cdk/core/lib/private/cloudformation-lang.ts#L73
|
|
174
174
|
// intrinsic wrapper without cross stack ref
|
|
175
175
|
// https://github.com/aws/aws-cdk/blob/14e4bc91ed5f0f8cb7c8ac9ee8a6de4da54e6585/packages/%40aws-cdk/core/lib/private/cloudformation-lang.ts#L50
|
|
176
|
-
const resolved =
|
|
176
|
+
const resolved = cdktn_1.Tokenization.resolve(obj, {
|
|
177
177
|
preparing: ctx.preparing,
|
|
178
178
|
scope: ctx.scope,
|
|
179
179
|
resolver: TOKEN_RESOLVER,
|
|
@@ -198,7 +198,7 @@ class StackBase extends cdktf_1.TerraformStack {
|
|
|
198
198
|
}
|
|
199
199
|
exports.StackBase = StackBase;
|
|
200
200
|
_a = JSII_RTTI_SYMBOL_1;
|
|
201
|
-
StackBase[_a] = { fqn: "terraconstructs.StackBase", version: "0.2.
|
|
201
|
+
StackBase[_a] = { fqn: "terraconstructs.StackBase", version: "0.2.6" };
|
|
202
202
|
/**
|
|
203
203
|
* Return the construct root path of the given construct relative to the given ancestor
|
|
204
204
|
*
|
|
@@ -229,4 +229,4 @@ function makeGridUuid(components, prefix = "") {
|
|
|
229
229
|
}
|
|
230
230
|
return (0, private_1.makeUniqueResourceName)(components, { maxLength: 36, prefix: prefix });
|
|
231
231
|
}
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGFjay1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFrWkEsZ0NBV0M7O0FBN1pELDhEQUFzRTtBQUN0RSxpQ0FZZTtBQUNmLDJDQUF5RDtBQUN6RCxxQ0FBMkM7QUFDM0MsdUNBSW1CO0FBRW5CLE1BQU0sY0FBYyxHQUFHLElBQUksNEJBQW9CLENBQUMsSUFBSSxvQkFBWSxFQUFFLENBQUMsQ0FBQztBQUVwRSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztBQUVsRSxNQUFNLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDO0FBMkhoRDs7OztHQUlHO0FBQ0gsTUFBc0IsU0FBVSxTQUFRLHNCQUFjO0lBQ3BEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQU07UUFDL0IsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxpQkFBaUIsSUFBSSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFxQjtRQUNsRCxNQUFNLENBQUMsR0FBRyxzQkFBYyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QyxJQUFJLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM5QixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLGFBQWEsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJLFNBQVMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLGdGQUFnRixDQUNySixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQTRCO1FBQ2pELE1BQU0sSUFBSSxHQUFHLHNCQUFTLENBQUMs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Ozs7O0dBTUc7QUFDSCxTQUFTLFlBQVksQ0FBQyxVQUFvQixFQUFFLFNBQWlCLEVBQUU7SUFDN0QsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzVCLE1BQU0sUUFBUSxHQUFHLE1BQU0sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzFCLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxJQUFBLGdDQUFzQixFQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDL0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb3ZpZGVyIGFzIGFyY2hpdmVQcm92aWRlciB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXJjaGl2ZVwiO1xuaW1wb3J0IHtcbiAgVGVycmFmb3JtU3RhY2ssXG4gIFRlcnJhZm9ybUVsZW1lbnQsXG4gIEh0dHBCYWNrZW5kQ29uZmlnLFxuICBIdHRwQmFja2VuZCxcbiAgVG9rZW5pemF0aW9uLFxuICBEZWZhdWx0VG9rZW5SZXNvbHZlciwgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrL2Jsb2IvdjAuMjAuOS9wYWNrYWdlcy9jZGt0Zi9saWIvdG9rZW5zL3Jlc29sdmFibGUudHMjTDE3NlxuICBTdHJpbmdDb25jYXQsIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLWNkay9ibG9iL3YwLjIwLjkvcGFja2FnZXMvY2RrdGYvbGliL3Rva2Vucy9yZXNvbHZhYmxlLnRzI0wxNTZcbiAgQXNwZWN0cyxcbiAgSVJlc29sdmVDb250ZXh0LFxuICBMYXp5LFxuICBBcHAsXG59IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBJQ29uc3RydWN0LCBOb2RlIH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gXCIuL2Vycm9yc1wiO1xuaW1wb3J0IHtcbiAgbWFrZVVuaXF1ZVJlc291cmNlTmFtZSxcbiAgbWFrZVVuaXF1ZVJlc291cmNlTmFtZVByZWZpeCxcbiAgVGVycmFmb3JtRGVwZW5kZW5jeUFzcGVjdCxcbn0gZnJvbSBcIi4vcHJpdmF0ZVwiO1xuXG5jb25zdCBUT0tFTl9SRVNPTFZFUiA9IG5ldyBEZWZhdWx0VG9rZW5SZXNvbHZlcihuZXcgU3RyaW5nQ29uY2F0KCkpO1xuXG5jb25zdCBURVJSQVNUQUNLX1NZTUJPTCA9IFN5bWJvbC5mb3IoXCJ0ZXJyYWNvbnN0cnVjdHMvbGliLlN0YWNrXCIpO1xuXG5jb25zdCBWQUxJRF9HUklEX1VVSURfUkVHRVggPSAvXltBLVphLXowLTktXSokLztcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTU2LjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvbmFtZXMudHNcblxuLyoqXG4gKiBPcHRpb25zIGZvciBjcmVhdGluZyBhIHVuaXF1ZSByZXNvdXJjZSBuYW1lX3ByZWZpeC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbmlxdWVSZXNvdXJjZU5hbWVQcmVmaXhPcHRpb25zXG4gIGV4dGVuZHMgVW5pcXVlUmVzb3VyY2VOYW1lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBMZW5ndGggb2YgdGhlIHJhbmRvbSBnZW5lcmF0ZWQgc3VmZml4IGFkZGVkIGJ5IHNvbWUgVGVycmFmb3JtIHByb3ZpZGVycy5cbiAgICpcbiAgICogTk9URTogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItYXdzL2lzc3Vlcy82MjVcbiAgICogQGRlZmF1bHQgLSAyNlxuICAgKi9cbiAgcmVhZG9ubHkgc3VmZml4TGVuZ3RoPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNyZWF0aW5nIGEgdW5pcXVlIHJlc291cmNlIG5hbWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVW5pcXVlUmVzb3VyY2VOYW1lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBsZW5ndGggb2YgdGhlIHVuaXF1ZSByZXNvdXJjZSBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDI1NlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4TGVuZ3RoPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VwYXJhdG9yIHVzZWQgYmV0d2VlbiB0aGUgcGF0aCBjb21wb25lbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHNlcGFyYXRvcj86IHN0cmluZztcblxuICAvKipcbiAgICogTm9uLWFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFsbG93ZWQgaW4gdGhlIHVuaXF1ZSByZXNvdXJjZSBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVycz86IHN0cmluZztcblxuICAvKipcbiAgICogUHJlZml4IHRvIGJlIGFkZGVkIGludG8gdGhlIHN0YWNrIG5hbWVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBub25lXG4gICAqL1xuICByZWFkb25seSBwcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY29udmVydCB0aGUgcmVzb3VyY2UgbmFtZSB0byBsb3dlcmNhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvd2VyQ2FzZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tCYXNlUHJvcHMge1xuICAvKipcbiAgICogVGVycmFDb25zdHJ1Y3QgVVVJRCB3aXRoaW4gdGhlIGdyaWQuXG4gICAqXG4gICAqIFVVSUQgaXMgZ2VuZXJhdGVkIGJ5IHRoZSBDTEkgYW5kIGVuc3VyZXMgcmVzb3VyY2UgSWRlbnRpdHlcbiAgICogaXMgZGVjb3VwbGVkIGZyb20gcmVzb3VyY2UgdGFnZ2luZyBmb3IgY29uc2lzdGVuY3kuXG4gICAqXG4gICAqIFVVSUQgbWF5IGJlIHVzZXIgcHJvdmlkZWQgZm9yIGltcG9ydGVkIHJlc291cmNlc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBncmlkVVVJRD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IG5hbWUgcGFzc2VkIGluIGZyb20gdGhlIENMSVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogU3RvcmVzIHRoZSBzdGF0ZSB1c2luZyBhIHNpbXBsZSBSRVNUIGNsaWVudC5cbiAgICpcbiAgICogU3RhdGUgd2lsbCBiZSBmZXRjaGVkIHZpYSBHRVQsIHVwZGF0ZWQgdmlhIFBPU1QsIGFuZCBwdXJnZWQgd2l0aCBERUxFVEUuXG4gICAqIFRoZSBtZXRob2QgdXNlZCBmb3IgdXBkYXRpbmcgaXMgY29uZmlndXJhYmxlLlxuICAgKlxuICAgKiBUaGlzIGJhY2tlbmQgb3B0aW9uYWxseSBzdXBwb3J0cyBzdGF0ZSBsb2NraW5nLlxuICAgKiBXaGVuIGxvY2tpbmcgc3VwcG9ydCBpcyBlbmFibGVkIGl0IHdpbGwgdXNlIExPQ0sgYW5kIFVOTE9DSyByZXF1ZXN0cyBwcm92aWRpbmcgdGhlIGxvY2sgaW5mbyBpbiB0aGUgYm9keS5cbiAgICogVGhlIGVuZHBvaW50IHNob3VsZCByZXR1cm4gYSA0MjM6IExvY2tlZCBvciA0MDk6IENvbmZsaWN0IHdpdGggdGhlIGhvbGRpbmcgbG9jayBpbmZvIHdoZW5cbiAgICogaXQncyBhbHJlYWR5IHRha2VuLCAyMDA6IE9LIGZvciBzdWNjZXNzLiBBbnkgb3RoZXIgc3RhdHVzIHdpbGwgYmUgY29uc2lkZXJlZCBhbiBlcnJvci5cbiAgICogVGhlIElEIG9mIHRoZSBob2xkaW5nIGxvY2sgaW5mbyB3aWxsIGJlIGFkZGVkIGFzIGEgcXVlcnkgcGFyYW1ldGVyIHRvIHN0YXRlIHVwZGF0ZXMgcmVxdWVzdHMuXG4gICAqXG4gICAqIFJlYWQgbW9yZSBhYm91dCB0aGlzIGJhY2tlbmQgaW4gdGhlIFRlcnJhZm9ybSBkb2NzOlxuICAgKiBodHRwczovL2RldmVsb3Blci5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9sYW5ndWFnZS9zZXR0aW5ncy9iYWNrZW5kcy9odHRwXG4gICAqL1xuICByZWFkb25seSBncmlkQmFja2VuZENvbmZpZz86IEh0dHBCYWNrZW5kQ29uZmlnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdGFjayBleHRlbmRzIElDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogRW52aXJvbm1lbnQgTmFtZSBwYXNzZWQgaW4gZnJvbSB0aGUgQ0xJXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZ3JpZFVVSUQ6IHN0cmluZztcbiAgcmVhZG9ubHkgZ3JpZEJhY2tlbmQ/OiBIdHRwQmFja2VuZDtcblxuICAvKipcbiAgICogQSBzaW5nbGV0b24gQXJjaGl2ZSBQcm92aWRlciB1c2VkIHRvIGFyY2hpdmUgYXNzZXRzLlxuICAgKiBUaGlzIGlzIHVzZWQgZm9yIGV4YW1wbGUgZm9yIGlubGluZSBDb2RlIGNvbnRlbnQgaW4gYXdzIExhbWJkYSBGdW5jdGlvbnMuXG4gICAqXG4gICAqIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItYXdzL2lzc3Vlcy85Nzc0I2lzc3VlY29tbWVudC02NjkzNTY3ODZcbiAgICovXG4gIHJlYWRvbmx5IGFyY2hpdmVQcm92aWRlcjogYXJjaGl2ZVByb3ZpZGVyLkFyY2hpdmVQcm92aWRlcjtcbiAgcmVzb2x2ZShvYmo6IGFueSwgcHJlcGFyaW5nPzogYm9vbGVhbik6IGFueTtcbiAgdW5pcXVlUmVzb3VyY2VOYW1lKFxuICAgIHRmRWxlbWVudDogVGVycmFmb3JtRWxlbWVudCB8IE5vZGUsXG4gICAgb3B0aW9ucz86IFVuaXF1ZVJlc291cmNlTmFtZU9wdGlvbnMsXG4gICk6IHN0cmluZztcbiAgdW5pcXVlUmVzb3VyY2VOYW1lUHJlZml4KFxuICAgIHRmRWxlbWVudDogVGVycmFmb3JtRWxlbWVudCB8IE5vZGUsXG4gICAgb3B0aW9ucz86IFVuaXF1ZVJlc291cmNlTmFtZVByZWZpeE9wdGlvbnMsXG4gICk6IHN0cmluZztcbiAgLy8gdG9Kc29uU3RyaW5nKG9iajogYW55LCBzcGFjZT86IG51bWJlcik6IHN0cmluZztcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbGwgVGVycmFDb25zdHJ1Y3RzIHN0YWNrc1xuICpcbiAqIFByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvIHRoZSBncmlkIFVVSUQgYW5kIGVudmlyb25tZW50IG5hbWVcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN0YWNrQmFzZSBleHRlbmRzIFRlcnJhZm9ybVN0YWNrIGltcGxlbWVudHMgSVN0YWNrIHtcbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBTdGFjay5cbiAgICpcbiAgICogYXR0cmlidXRlIGRldGVjdGlvbiBzaW5jZSBhcyAnaW5zdGFuY2VvZicgcG90ZW50aWFsbHkgZmFpbHMgYWNyb3NzIExpYnJhcnkgcmVsZWFzZXMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzVGVycmFTdGFjayh4OiBhbnkpOiB4IGlzIElTdGFjayB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mIHggPT09IFwib2JqZWN0XCIgJiYgVEVSUkFTVEFDS19TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb29rcyB1cCB0aGUgZmlyc3Qgc3RhY2sgc2NvcGUgaW4gd2hpY2ggYGNvbnN0cnVjdGAgaXMgZGVmaW5lZC4gRmFpbHMgaWYgdGhlcmUgaXMgbm8gc3RhY2sgdXAgdGhlIHRyZWUgb3IgdGhlIHN0YWNrIGlzIG5vdCBhbiBJU3RhY2suXG4gICAqIEBwYXJhbSBjb25zdHJ1Y3QgVGhlIGNvbnN0cnVjdCB0byBzdGFydCB0aGUgc2VhcmNoIGZyb20uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mVGVycmFDb25zdHJ1Y3QoY29uc3RydWN0OiBJQ29uc3RydWN0KTogSVN0YWNrIHtcbiAgICBjb25zdCBzID0gVGVycmFmb3JtU3RhY2sub2YoY29uc3RydWN0KTtcbiAgICBpZiAoU3RhY2tCYXNlLmlzVGVycmFTdGFjayhzKSkge1xuICAgICAgcmV0dXJuIHM7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBSZXNvdXJjZSAnJHtjb25zdHJ1Y3QuY29uc3RydWN0b3I/Lm5hbWV9JyBhdCAnJHtjb25zdHJ1Y3Qubm9kZS5wYXRofScgc2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhlIHNjb3BlIG9mIFRlcnJhQ29uc3RydWN0IElTdGFjaywgYnV0IG5vIElTdGFjayBmb3VuZGAsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIGEgY29uc3RydWN0IGJhc2VkIG9uIGl0cyBwYXRoIHdpdGhpblxuICAgKiBhIFRlcnJhZm9ybVN0YWNrLiBzZWUgdW5pcXVlUmVzb3VyY2VOYW1lLCBidXQgd2l0aCBubyBzZXBhcmF0b3IsIG1heGltdW0gbGVuZ3RoIDI1NSBhbmQgYWxsb3dzXG4gICAqICBcIl9cIiBhbmQgXCItXCIgb24gdG9wIG9mIGFscGhhbnVtZXJpY2FsIGNoYXJhY3RlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBjb25zdHJ1Y3QgVGhlIGNvbnN0cnVjdFxuICAgKiBAcmV0dXJucyBhIHVuaXF1ZSByZXNvdXJjZSBuYW1lIGJhc2VkIG9uIHRoZSBjb25zdHJ1Y3QgcGF0aFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1bmlxdWVJZChjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QgfCBOb2RlKSB7XG4gICAgY29uc3Qgbm9kZSA9IENvbnN0cnVjdC5pc0NvbnN0cnVjdChjb25zdHJ1Y3QpID8gY29uc3RydWN0Lm5vZGUgOiBjb25zdHJ1Y3Q7XG4gICAgY29uc3Qgc3RhY2sgPSBub2RlLnNjb3Blc1xuICAgICAgLnJldmVyc2UoKVxuICAgICAgLmZpbmQoKGNvbXBvbmVudCkgPT4gVGVycmFmb3JtU3RhY2suaXNTdGFjayhjb21wb25lbnQpKTtcblxuICAgIGlmICghc3RhY2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJVbmFibGUgdG8gY2FsY3VsYXRlIGEgdW5pcXVlIGlkIHdpdGhvdXQgYSBzdGFjayBpbiB0aGUgY29uc3RydWN0IHBhdGhcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3BlY0luZGV4ID0gbm9kZS5zY29wZXMuaW5kZXhPZihzdGFjayk7XG4gICAgY29uc3QgY29tcG9uZW50c1BhdGggPSBub2RlLnNjb3Blc1xuICAgICAgLnNsaWNlKHNwZWNJbmRleClcbiAgICAgIC5tYXAoKGNvbXBvbmVudCkgPT4gY29tcG9uZW50Lm5vZGUuaWQpO1xuXG4gICAgcmV0dXJuIG1ha2VVbmlxdWVSZXNvdXJjZU5hbWUoY29tcG9uZW50c1BhdGgsIHtcbiAgICAgIG1heExlbmd0aDogMjU1LFxuICAgICAgLy8gYXZvaWQgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy82NDIxXG4gICAgICBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnM6IFwiXy1cIixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFjayB1bmlxdWUgZ3JpZCBpZGVudGlmaWVyXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9ncmlkVVVJRDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbnZpcm9ubWVudCBOYW1lIHBhc3NlZCBpbiBmcm9tIHRoZSBDTElcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Vudmlyb25tZW50TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZ3JpZCBwcm92aWRlZCBiYWNrZW5kIGZvciBzdGF0ZSBzdG9yYWdlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JpZEJhY2tlbmQ/OiBIdHRwQmFja2VuZDtcblxuICBwcml2YXRlIGFyY2hpdmVQcm92aWRlclNpbmdsZXRvbj86IGFyY2hpdmVQcm92aWRlci5BcmNoaXZlUHJvdmlkZXI7XG4gIHB1YmxpYyBnZXQgYXJjaGl2ZVByb3ZpZGVyKCk6IGFyY2hpdmVQcm92aWRlci5BcmNoaXZlUHJvdmlkZXIge1xuICAgIGlmICghdGhpcy5hcmNoaXZlUHJvdmlkZXJTaW5nbGV0b24pIHtcbiAgICAgIHRoaXMuYXJjaGl2ZVByb3ZpZGVyU2luZ2xldG9uID0gbmV3IGFyY2hpdmVQcm92aWRlci5BcmNoaXZlUHJvdmlkZXIoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiQXJjaGl2ZVByb3ZpZGVyXCIsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hcmNoaXZlUHJvdmlkZXJTaW5nbGV0b247XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZT86IENvbnN0cnVjdCwgaWQ/OiBzdHJpbmcsIHByb3BzOiBTdGFja0Jhc2VQcm9wcyA9IHt9KSB7XG4gICAgLy8gRm9yIHVuaXQgdGVzdCBzY29wZSBhbmQgaWQgYXJlIG9wdGlvbmFsIGZvciBzdGFja3MsIGJ1dCB3ZSBzdGlsbCB3YW50IGFuIEFwcFxuICAgIC8vIGFzIHRoZSBwYXJlbnQgYmVjYXVzZSBhcHBzIGltcGxlbWVudCBtdWNoIG9mIHRoZSBzeW50aGVzaXMgbG9naWMuXG4gICAgc2NvcGUgPSBzY29wZSA/PyBuZXcgQXBwKCk7XG5cbiAgICAvLyBcIkRlZmF1bHRcIiBpcyBhIFwiaGlkZGVuIGlkXCIgZnJvbSBhIGBub2RlLnVuaXF1ZUlkYCBwZXJzcGVjdGl2ZVxuICAgIGlkID0gaWQgPz8gXCJEZWZhdWx0XCI7XG5cbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMuX2Vudmlyb25tZW50TmFtZSA9IHByb3BzLmVudmlyb25tZW50TmFtZSA/PyBcIkRlZmF1bHRcIjtcbiAgICB0aGlzLl9ncmlkVVVJRCA9IHByb3BzLmdyaWRVVUlEID8/IHRoaXMuZ2VuZXJhdGVHcmlkVXVpZCh0aGlzLCBcImdcIik7XG4gICAgaWYgKHRoaXMuZ3JpZFVVSUQubGVuZ3RoID4gMzYpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGBHcmlkVVVJRCBtdXN0IGJlIDw9IDM2IGNoYXJhY3RlcnMuIEdyaWRVVUlEOiAnJHt0aGlzLmdyaWRVVUlEfSdgLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFRFUlJBU1RBQ0tfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIGlmIChwcm9wcy5ncmlkQmFja2VuZENvbmZpZykge1xuICAgICAgdGhpcy5ncmlkQmFja2VuZCA9IG5ldyBIdHRwQmFja2VuZCh0aGlzLCBwcm9wcy5ncmlkQmFja2VuZENvbmZpZyk7XG4gICAgfVxuXG4gICAgaWYgKCFWQUxJRF9HUklEX1VVSURfUkVHRVgudGVzdCh0aGlzLmdyaWRVVUlEKSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgYEdyaWRVVUlEIG11c3QgbWF0Y2ggdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbjogJHtWQUxJRF9HUklEX1VVSURfUkVHRVgudG9TdHJpbmcoKX0sIGdvdCAnJHt0aGlzLmdyaWRVVUlEfSdgLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBNYXAgY29uc3RydWN0IHRyZWUgZGVwZW5kZW5jaWVzIHRvIElUZXJyYWZvcm1EZXBlbmRhYmxlc1xuICAgIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrL2lzc3Vlcy8yNzI3I2lzc3VlY29tbWVudC0xNDczMzIxMDc1XG4gICAgQXNwZWN0cy5vZih0aGlzKS5hZGQobmV3IFRlcnJhZm9ybURlcGVuZGVuY3lBc3BlY3QoKSk7XG4gICAgLy8gQXNwZWN0cyBhcmUgaW52b2tlZCBpbiBzeW50aCBhZnRlciBzdGFjayBoYXMgYmVlbiBwcmVwYXJlZFxuICAgIC8vIHRoaXMgc2hvdWxkIGVuc3VyZSBhbnkgcmVzb3VyY2VzIGFkZGVkIGR1cmluZyBgcHJlcGFyZVN0YWNrKClgIGFyZSBpbmNsdWRlZCBpbiB0aGUgZGVwZW5kZW5jeSB0cmVlXG4gICAgLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1jZGsvYmxvYi92MC4yMC45L3BhY2thZ2VzL2Nka3RmL2xpYi9zeW50aGVzaXplL3N5bnRoZXNpemVyLnRzI0wxMjFcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ3JpZFVVSUQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZ3JpZFVVSUQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVudmlyb25tZW50TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9lbnZpcm9ubWVudE5hbWU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIFRlcnJhZm9ybS1jb21wYXRpYmxlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhIFRlcnJhZm9ybSBFbGVtZW50IGJhc2VkXG4gICAqIG9uIGl0cyBwYXRoLiBUaGlzIGZ1bmN0aW9uIGZpbmRzIHRoZSBzdGFja05hbWUgb2YgdGhlIHBhcmVudCBzdGFjayAobm9uLW5lc3RlZClcbiAgICogdG8gdGhlIGNvbnN0cnVjdCwgYW5kIHRoZSBpZHMgb2YgdGhlIGNvbXBvbmVudHMgaW4gdGhlIGNvbnN0cnVjdCBwYXRoLlxuICAgKlxuICAgKiBUaGUgdXNlciBjYW4gZGVmaW5lIGFsbG93ZWQgc3BlY2lhbCBjaGFyYWN0ZXJzLCBhIHNlcGFyYXRvciBiZXR3ZWVuIHRoZSBlbGVtZW50cyxcbiAgICogYW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiB0aGUgcmVzb3VyY2UgbmFtZS4gVGhlIG5hbWUgaW5jbHVkZXMgYSBodW1hbiByZWFkYWJsZSBwb3J0aW9uIHJlbmRlcmVkXG4gICAqIGZyb20gdGhlIHBhdGggY29tcG9uZW50cywgd2l0aCBvciB3aXRob3V0IHVzZXIgZGVmaW5lZCBzZXBhcmF0b3JzLCBhbmQgYSBoYXNoIHN1ZmZpeC5cbiAgICogSWYgdGhlIHJlc291cmNlIG5hbWUgaXMgbG9uZ2VyIHRoYW4gdGhlIG1heGltdW0gbGVuZ3RoLCBpdCBpcyB0cmltbWVkIGluIHRoZSBtaWRkbGUuXG4gICAqXG4gICAqIEBwYXJhbSB0ZkVsZW1lbnQgVGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGZvciBkZWZpbmluZyB0aGUgdW5pcXVlIHJlc291cmNlIG5hbWVcbiAgICogQHJldHVybnMgYSB1bmlxdWUgcmVzb3VyY2UgbmFtZSBiYXNlZCBvbiB0aGUgY29uc3RydWN0IHBhdGhcbiAgICovXG4gIHB1YmxpYyB1bmlxdWVSZXNvdXJjZU5hbWUoXG4gICAgdGZFbGVtZW50OiBUZXJyYWZvcm1FbGVtZW50IHwgTm9kZSxcbiAgICBvcHRpb25zOiBVbmlxdWVSZXNvdXJjZU5hbWVPcHRpb25zID0ge30sXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3Qgbm9kZSA9IENvbnN0cnVjdC5pc0NvbnN0cnVjdCh0ZkVsZW1lbnQpID8gdGZFbGVtZW50Lm5vZGUgOiB0ZkVsZW1lbnQ7XG4gICAgY29uc3Qgc3RhY2sgPSBUZXJyYWZvcm1FbGVtZW50LmlzVGVycmFmb3JtRWxlbWVudCh0ZkVsZW1lbnQpXG4gICAgICA/IHRmRWxlbWVudC5jZGt0ZlN0YWNrXG4gICAgICA6IHRoaXM7XG4gICAgY29uc3Qgc3RhY2tJbmRleCA9IG5vZGUuc2NvcGVzLmluZGV4T2Yoc3RhY2spO1xuICAgIGNvbnN0IGNvbXBvbmVudHNQYXRoID0gbm9kZS5zY29wZXNcbiAgICAgIC5zbGljZShzdGFja0luZGV4KVxuICAgICAgLm1hcCgoY29tcG9uZW50KSA9PiBjb21wb25lbnQubm9kZS5pZCk7XG5cbiAgICByZXR1cm4gbWFrZVVuaXF1ZVJlc291cmNlTmFtZShjb21wb25lbnRzUGF0aCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIFRlcnJhZm9ybS1jb21wYXRpYmxlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhIFRlcnJhZm9ybSBFbGVtZW50IGJhc2VkXG4gICAqIG9uIGl0cyBwYXRoLiBUaGlzIGZ1bmN0aW9uIGZpbmRzIHRoZSBzdGFja05hbWUgb2YgdGhlIHBhcmVudCBzdGFjayAobm9uLW5lc3RlZClcbiAgICogdG8gdGhlIGNvbnN0cnVjdCwgYW5kIHRoZSBpZHMgb2YgdGhlIGNvbXBvbmVudHMgaW4gdGhlIGNvbnN0cnVjdCBwYXRoLlxuICAgKlxuICAgKiBUaGUgdXNlciBjYW4gZGVmaW5lIGFsbG93ZWQgc3BlY2lhbCBjaGFyYWN0ZXJzLCBhIHNlcGFyYXRvciBiZXR3ZWVuIHRoZSBlbGVtZW50cyxcbiAgICogYW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiB0aGUgcmVzb3VyY2UgbmFtZS4gVGhlIG5hbWUgaW5jbHVkZXMgYSBodW1hbiByZWFkYWJsZSBwb3J0aW9uIHJlbmRlcmVkXG4gICAqIGZyb20gdGhlIHBhdGggY29tcG9uZW50cywgd2l0aCBvciB3aXRob3V0IHVzZXIgZGVmaW5lZCBzZXBhcmF0b3JzLCBhbmQgZGVwZW5kcyBvbiB0aGVcbiAgICogcmVzb3VyY2UgcHJvdmlkZXIgdG8gZ2VuZXJhdGUgdGhlIHJhbmRvbSBzdWZmaXguXG4gICAqXG4gICAqIElmIHRoZSByZXNvdXJjZSBuYW1lIGlzIGxvbmdlciB0aGFuIHRoZSBtYXhpbXVtIGxlbmd0aCAtIHN1ZmZpeExlbmd0aCwgaXQgaXMgdHJpbW1lZCBpbiB0aGUgbWlkZGxlLlxuICAgKlxuICAgKiBAcGFyYW0gdGZFbGVtZW50IFRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgZGVmaW5pbmcgdGhlIHVuaXF1ZSByZXNvdXJjZSBuYW1lXG4gICAqIEByZXR1cm5zIGEgdW5pcXVlIHJlc291cmNlIG5hbWUgYmFzZWQgb24gdGhlIGNvbnN0cnVjdCBwYXRoXG4gICAqL1xuICBwdWJsaWMgdW5pcXVlUmVzb3VyY2VOYW1lUHJlZml4KFxuICAgIHRmRWxlbWVudDogVGVycmFmb3JtRWxlbWVudCB8IE5vZGUsXG4gICAgb3B0aW9uczogVW5pcXVlUmVzb3VyY2VOYW1lUHJlZml4T3B0aW9ucyA9IHt9LFxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IG5vZGUgPSBDb25zdHJ1Y3QuaXNDb25zdHJ1Y3QodGZFbGVtZW50KSA/IHRmRWxlbWVudC5ub2RlIDogdGZFbGVtZW50O1xuICAgIGNvbnN0IHN0YWNrID0gVGVycmFmb3JtRWxlbWVudC5pc1RlcnJhZm9ybUVsZW1lbnQodGZFbGVtZW50KVxuICAgICAgPyB0ZkVsZW1lbnQuY2RrdGZTdGFja1xuICAgICAgOiB0aGlzO1xuICAgIGNvbnN0IHN0YWNrSW5kZXggPSBub2RlLnNjb3Blcy5pbmRleE9mKHN0YWNrKTtcbiAgICBjb25zdCBjb21wb25lbnRzUGF0aCA9IG5vZGUuc2NvcGVzXG4gICAgICAuc2xpY2Uoc3RhY2tJbmRleClcbiAgICAgIC5tYXAoKGNvbXBvbmVudCkgPT4gY29tcG9uZW50Lm5vZGUuaWQpO1xuXG4gICAgcmV0dXJuIG1ha2VVbmlxdWVSZXNvdXJjZU5hbWVQcmVmaXgoY29tcG9uZW50c1BhdGgsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqIFJlc29sdmUgSVJlc29sdmFibGUgaW4gc2NvcGUgb2YgdGhpcyBBd3NTdGFjayAqL1xuICBwdWJsaWMgcmVzb2x2ZShvYmo6IGFueSwgcHJlcGFyaW5nID0gZmFsc2UpOiBhbnkge1xuICAgIHJldHVybiBUb2tlbml6YXRpb24ucmVzb2x2ZShvYmosIHtcbiAgICAgIHNjb3BlOiB0aGlzLFxuICAgICAgcHJlcGFyaW5nLFxuICAgICAgcmVzb2x2ZXI6IFRPS0VOX1JFU09MVkVSLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgYW4gb2JqZWN0LCBwb3RlbnRpYWxseSBjb250YWluaW5nIHRva2VucywgdG8gYSBKU09OIHN0cmluZ1xuICAgKi9cbiAgcHVibGljIHRvSnNvblN0cmluZyhvYmo6IGFueSwgc3BhY2U/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBMYXp5LnN0cmluZ1ZhbHVlKHtcbiAgICAgIHByb2R1Y2U6IChjdHg6IElSZXNvbHZlQ29udGV4dCkgPT4ge1xuICAgICAgICAvLyBGaXJzdCByZXNvbHZlIFRva2VuIG9iamVjdHMgd2l0aCBzdHJpbmcgY29uY2F0Li4uIHRoZW4gSlNPTi5zdHJpbmdpZnkgdGhlIHJlc3VsdGluZyBvYmplY3RcbiAgICAgICAgLy9cbiAgICAgICAgLy8gdW5saWtlIGNsb3VkZm9ybWF0aW9uLCBUZXJyYWZvcm0gZG9lcyBub3QgbmVlZCBhbiBpbnRyaW5zaWMgd3JhcHBlcj9cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvOGRjYTUwNzllMTg5MzEyMjA1N2Y5ZTJjNTRjMGRhMGJhNjQ0OTI2ZS9wYWNrYWdlcy8lNDBhd3MtY2RrL2NvcmUvbGliL3ByaXZhdGUvY2xvdWRmb3JtYXRpb24tbGFuZy50cyNMNzNcbiAgICAgICAgLy8gaW50cmluc2ljIHdyYXBwZXIgd2l0aG91dCBjcm9zcyBzdGFjayByZWZcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvMTRlNGJjOTFlZDVmMGY4Y2I3YzhhYzllZThhNmRlNGRhNTRlNjU4NS9wYWNrYWdlcy8lNDBhd3MtY2RrL2NvcmUvbGliL3ByaXZhdGUvY2xvdWRmb3JtYXRpb24tbGFuZy50cyNMNTBcbiAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSBUb2tlbml6YXRpb24ucmVzb2x2ZShvYmosIHtcbiAgICAgICAgICBwcmVwYXJpbmc6IGN0eC5wcmVwYXJpbmcsXG4gICAgICAgICAgc2NvcGU6IGN0eC5zY29wZSxcbiAgICAgICAgICByZXNvbHZlcjogVE9LRU5fUkVTT0xWRVIsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocmVzb2x2ZWQsIHVuZGVmaW5lZCwgc3BhY2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBhbiBJRCB3aXRoIHJlc3BlY3QgdG8gdGhlIGdpdmVuIGNvbnRhaW5lciBjb25zdHJ1Y3QuXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlR3JpZFV1aWQoXG4gICAgY29udGFpbmVyOiBJQ29uc3RydWN0IHwgdW5kZWZpbmVkLFxuICAgIHByZWZpeDogc3RyaW5nID0gXCJcIixcbiAgKSB7XG4gICAgY29uc3Qgcm9vdFBhdGggPSByb290UGF0aFRvKHRoaXMsIGNvbnRhaW5lcik7XG4gICAgY29uc3QgaWRzID0gcm9vdFBhdGgubWFwKChjKSA9PiBjLm5vZGUuaWQpO1xuXG4gICAgLy8gSW4gdW5pdCB0ZXN0cyBvdXIgU3RhY2sgKHdoaWNoIGlzIHRoZSBvbmx5IGNvbXBvbmVudCkgbWF5IG5vdCBoYXZlIGFuXG4gICAgLy8gaWQsIHNvIGluIHRoYXQgY2FzZSBqdXN0IHByZXRlbmQgaXQncyBcIlN0YWNrXCIuXG4gICAgaWYgKGlkcy5sZW5ndGggPT09IDEgJiYgIWlkc1swXSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgXCJ1bmV4cGVjdGVkOiBzdGFjayBpZCBtdXN0IGFsd2F5cyBiZSBkZWZpbmVkXCIsXG4gICAgICAgIHRoaXMsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBtYWtlR3JpZFV1aWQoaWRzLCBwcmVmaXgpO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBjb25zdHJ1Y3Qgcm9vdCBwYXRoIG9mIHRoZSBnaXZlbiBjb25zdHJ1Y3QgcmVsYXRpdmUgdG8gdGhlIGdpdmVuIGFuY2VzdG9yXG4gKlxuICogSWYgbm8gYW5jZXN0b3IgaXMgZ2l2ZW4gb3IgdGhlIGFuY2VzdG9yIGlzIG5vdCBmb3VuZCwgcmV0dXJuIHRoZSBlbnRpcmUgcm9vdCBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcm9vdFBhdGhUbyhcbiAgY29uc3RydWN0OiBJQ29uc3RydWN0LFxuICBhbmNlc3Rvcj86IElDb25zdHJ1Y3QsXG4pOiBJQ29uc3RydWN0W10ge1xuICBjb25zdCBzY29wZXMgPSBjb25zdHJ1Y3Qubm9kZS5zY29wZXM7XG4gIGZvciAobGV0IGkgPSBzY29wZXMubGVuZ3RoIC0gMjsgaSA+PSAwOyBpLS0pIHtcbiAgICBpZiAoc2NvcGVzW2ldID09PSBhbmNlc3Rvcikge1xuICAgICAgcmV0dXJuIHNjb3Blcy5zbGljZShpICsgMSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBzY29wZXM7XG59XG5cbi8qKlxuICogbWFrZVVuaXF1ZUlkLCBzcGVjaWFsaXplZCBmb3IgR3JpZCBVVUlEXG4gKlxuICogR3JpZCBVVUlEIG1heSBjb250YWluICctJywgc28gd2UgYWxsb3cgdGhhdCBjaGFyYWN0ZXIgaWYgdGhlIHN0YWNrIG5hbWVcbiAqIGhhcyBvbmx5IG9uZSBjb21wb25lbnQuIE90aGVyd2lzZSB3ZSBmYWxsIGJhY2sgdG8gdGhlIHJlZ3VsYXIgXCJtYWtlVW5pcXVlSWRcIlxuICogYmVoYXZpb3IuXG4gKi9cbmZ1bmN0aW9uIG1ha2VHcmlkVXVpZChjb21wb25lbnRzOiBzdHJpbmdbXSwgcHJlZml4OiBzdHJpbmcgPSBcIlwiKSB7XG4gIGlmIChjb21wb25lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgIGNvbnN0IGdyaWRVdWlkID0gcHJlZml4ICsgY29tcG9uZW50c1swXTtcbiAgICBpZiAoZ3JpZFV1aWQubGVuZ3RoIDw9IDM2KSB7XG4gICAgICByZXR1cm4gZ3JpZFV1aWQ7XG4gICAgfVxuICB9XG4gIHJldHVybiBtYWtlVW5pcXVlUmVzb3VyY2VOYW1lKGNvbXBvbmVudHMsIHsgbWF4TGVuZ3RoOiAzNiwgcHJlZml4OiBwcmVmaXggfSk7XG59XG4iXX0=
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGFjay1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFrWkEsZ0NBV0M7O0FBN1pELDhEQUFzRTtBQUN0RSxpQ0FZZTtBQUNmLDJDQUF5RDtBQUN6RCxxQ0FBMkM7QUFDM0MsdUNBSW1CO0FBRW5CLE1BQU0sY0FBYyxHQUFHLElBQUksNEJBQW9CLENBQUMsSUFBSSxvQkFBWSxFQUFFLENBQUMsQ0FBQztBQUVwRSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztBQUVsRSxNQUFNLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDO0FBMkhoRDs7OztHQUlHO0FBQ0gsTUFBc0IsU0FBVSxTQUFRLHNCQUFjO0lBQ3BEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQU07UUFDL0IsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxpQkFBaUIsSUFBSSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFxQjtRQUNsRCxNQUFNLENBQUMsR0FBRyxzQkFBYyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QyxJQUFJLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM5QixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLGFBQWEsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJLFNBQVMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLGdGQUFnRixDQUNySixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQTRCO1FBQ2pELE1BQU0sSUFBSSxHQUFHLHNCQUFTLENBQUMs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Ozs7O0dBTUc7QUFDSCxTQUFTLFlBQVksQ0FBQyxVQUFvQixFQUFFLFNBQWlCLEVBQUU7SUFDN0QsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzVCLE1BQU0sUUFBUSxHQUFHLE1BQU0sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzFCLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxJQUFBLGdDQUFzQixFQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDL0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb3ZpZGVyIGFzIGFyY2hpdmVQcm92aWRlciB9IGZyb20gXCJAY2RrdG4vcHJvdmlkZXItYXJjaGl2ZVwiO1xuaW1wb3J0IHtcbiAgVGVycmFmb3JtU3RhY2ssXG4gIFRlcnJhZm9ybUVsZW1lbnQsXG4gIEh0dHBCYWNrZW5kQ29uZmlnLFxuICBIdHRwQmFja2VuZCxcbiAgVG9rZW5pemF0aW9uLFxuICBEZWZhdWx0VG9rZW5SZXNvbHZlciwgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrL2Jsb2IvdjAuMjAuOS9wYWNrYWdlcy9jZGt0Zi9saWIvdG9rZW5zL3Jlc29sdmFibGUudHMjTDE3NlxuICBTdHJpbmdDb25jYXQsIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLWNkay9ibG9iL3YwLjIwLjkvcGFja2FnZXMvY2RrdGYvbGliL3Rva2Vucy9yZXNvbHZhYmxlLnRzI0wxNTZcbiAgQXNwZWN0cyxcbiAgSVJlc29sdmVDb250ZXh0LFxuICBMYXp5LFxuICBBcHAsXG59IGZyb20gXCJjZGt0blwiO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBJQ29uc3RydWN0LCBOb2RlIH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gXCIuL2Vycm9yc1wiO1xuaW1wb3J0IHtcbiAgbWFrZVVuaXF1ZVJlc291cmNlTmFtZSxcbiAgbWFrZVVuaXF1ZVJlc291cmNlTmFtZVByZWZpeCxcbiAgVGVycmFmb3JtRGVwZW5kZW5jeUFzcGVjdCxcbn0gZnJvbSBcIi4vcHJpdmF0ZVwiO1xuXG5jb25zdCBUT0tFTl9SRVNPTFZFUiA9IG5ldyBEZWZhdWx0VG9rZW5SZXNvbHZlcihuZXcgU3RyaW5nQ29uY2F0KCkpO1xuXG5jb25zdCBURVJSQVNUQUNLX1NZTUJPTCA9IFN5bWJvbC5mb3IoXCJ0ZXJyYWNvbnN0cnVjdHMvbGliLlN0YWNrXCIpO1xuXG5jb25zdCBWQUxJRF9HUklEX1VVSURfUkVHRVggPSAvXltBLVphLXowLTktXSokLztcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTU2LjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvbmFtZXMudHNcblxuLyoqXG4gKiBPcHRpb25zIGZvciBjcmVhdGluZyBhIHVuaXF1ZSByZXNvdXJjZSBuYW1lX3ByZWZpeC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbmlxdWVSZXNvdXJjZU5hbWVQcmVmaXhPcHRpb25zXG4gIGV4dGVuZHMgVW5pcXVlUmVzb3VyY2VOYW1lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBMZW5ndGggb2YgdGhlIHJhbmRvbSBnZW5lcmF0ZWQgc3VmZml4IGFkZGVkIGJ5IHNvbWUgVGVycmFmb3JtIHByb3ZpZGVycy5cbiAgICpcbiAgICogTk9URTogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItYXdzL2lzc3Vlcy82MjVcbiAgICogQGRlZmF1bHQgLSAyNlxuICAgKi9cbiAgcmVhZG9ubHkgc3VmZml4TGVuZ3RoPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNyZWF0aW5nIGEgdW5pcXVlIHJlc291cmNlIG5hbWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVW5pcXVlUmVzb3VyY2VOYW1lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBsZW5ndGggb2YgdGhlIHVuaXF1ZSByZXNvdXJjZSBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDI1NlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4TGVuZ3RoPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VwYXJhdG9yIHVzZWQgYmV0d2VlbiB0aGUgcGF0aCBjb21wb25lbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHNlcGFyYXRvcj86IHN0cmluZztcblxuICAvKipcbiAgICogTm9uLWFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFsbG93ZWQgaW4gdGhlIHVuaXF1ZSByZXNvdXJjZSBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVycz86IHN0cmluZztcblxuICAvKipcbiAgICogUHJlZml4IHRvIGJlIGFkZGVkIGludG8gdGhlIHN0YWNrIG5hbWVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBub25lXG4gICAqL1xuICByZWFkb25seSBwcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY29udmVydCB0aGUgcmVzb3VyY2UgbmFtZSB0byBsb3dlcmNhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvd2VyQ2FzZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tCYXNlUHJvcHMge1xuICAvKipcbiAgICogVGVycmFDb25zdHJ1Y3QgVVVJRCB3aXRoaW4gdGhlIGdyaWQuXG4gICAqXG4gICAqIFVVSUQgaXMgZ2VuZXJhdGVkIGJ5IHRoZSBDTEkgYW5kIGVuc3VyZXMgcmVzb3VyY2UgSWRlbnRpdHlcbiAgICogaXMgZGVjb3VwbGVkIGZyb20gcmVzb3VyY2UgdGFnZ2luZyBmb3IgY29uc2lzdGVuY3kuXG4gICAqXG4gICAqIFVVSUQgbWF5IGJlIHVzZXIgcHJvdmlkZWQgZm9yIGltcG9ydGVkIHJlc291cmNlc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBncmlkVVVJRD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IG5hbWUgcGFzc2VkIGluIGZyb20gdGhlIENMSVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogU3RvcmVzIHRoZSBzdGF0ZSB1c2luZyBhIHNpbXBsZSBSRVNUIGNsaWVudC5cbiAgICpcbiAgICogU3RhdGUgd2lsbCBiZSBmZXRjaGVkIHZpYSBHRVQsIHVwZGF0ZWQgdmlhIFBPU1QsIGFuZCBwdXJnZWQgd2l0aCBERUxFVEUuXG4gICAqIFRoZSBtZXRob2QgdXNlZCBmb3IgdXBkYXRpbmcgaXMgY29uZmlndXJhYmxlLlxuICAgKlxuICAgKiBUaGlzIGJhY2tlbmQgb3B0aW9uYWxseSBzdXBwb3J0cyBzdGF0ZSBsb2NraW5nLlxuICAgKiBXaGVuIGxvY2tpbmcgc3VwcG9ydCBpcyBlbmFibGVkIGl0IHdpbGwgdXNlIExPQ0sgYW5kIFVOTE9DSyByZXF1ZXN0cyBwcm92aWRpbmcgdGhlIGxvY2sgaW5mbyBpbiB0aGUgYm9keS5cbiAgICogVGhlIGVuZHBvaW50IHNob3VsZCByZXR1cm4gYSA0MjM6IExvY2tlZCBvciA0MDk6IENvbmZsaWN0IHdpdGggdGhlIGhvbGRpbmcgbG9jayBpbmZvIHdoZW5cbiAgICogaXQncyBhbHJlYWR5IHRha2VuLCAyMDA6IE9LIGZvciBzdWNjZXNzLiBBbnkgb3RoZXIgc3RhdHVzIHdpbGwgYmUgY29uc2lkZXJlZCBhbiBlcnJvci5cbiAgICogVGhlIElEIG9mIHRoZSBob2xkaW5nIGxvY2sgaW5mbyB3aWxsIGJlIGFkZGVkIGFzIGEgcXVlcnkgcGFyYW1ldGVyIHRvIHN0YXRlIHVwZGF0ZXMgcmVxdWVzdHMuXG4gICAqXG4gICAqIFJlYWQgbW9yZSBhYm91dCB0aGlzIGJhY2tlbmQgaW4gdGhlIFRlcnJhZm9ybSBkb2NzOlxuICAgKiBodHRwczovL2RldmVsb3Blci5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9sYW5ndWFnZS9zZXR0aW5ncy9iYWNrZW5kcy9odHRwXG4gICAqL1xuICByZWFkb25seSBncmlkQmFja2VuZENvbmZpZz86IEh0dHBCYWNrZW5kQ29uZmlnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdGFjayBleHRlbmRzIElDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogRW52aXJvbm1lbnQgTmFtZSBwYXNzZWQgaW4gZnJvbSB0aGUgQ0xJXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZ3JpZFVVSUQ6IHN0cmluZztcbiAgcmVhZG9ubHkgZ3JpZEJhY2tlbmQ/OiBIdHRwQmFja2VuZDtcblxuICAvKipcbiAgICogQSBzaW5nbGV0b24gQXJjaGl2ZSBQcm92aWRlciB1c2VkIHRvIGFyY2hpdmUgYXNzZXRzLlxuICAgKiBUaGlzIGlzIHVzZWQgZm9yIGV4YW1wbGUgZm9yIGlubGluZSBDb2RlIGNvbnRlbnQgaW4gYXdzIExhbWJkYSBGdW5jdGlvbnMuXG4gICAqXG4gICAqIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItYXdzL2lzc3Vlcy85Nzc0I2lzc3VlY29tbWVudC02NjkzNTY3ODZcbiAgICovXG4gIHJlYWRvbmx5IGFyY2hpdmVQcm92aWRlcjogYXJjaGl2ZVByb3ZpZGVyLkFyY2hpdmVQcm92aWRlcjtcbiAgcmVzb2x2ZShvYmo6IGFueSwgcHJlcGFyaW5nPzogYm9vbGVhbik6IGFueTtcbiAgdW5pcXVlUmVzb3VyY2VOYW1lKFxuICAgIHRmRWxlbWVudDogVGVycmFmb3JtRWxlbWVudCB8IE5vZGUsXG4gICAgb3B0aW9ucz86IFVuaXF1ZVJlc291cmNlTmFtZU9wdGlvbnMsXG4gICk6IHN0cmluZztcbiAgdW5pcXVlUmVzb3VyY2VOYW1lUHJlZml4KFxuICAgIHRmRWxlbWVudDogVGVycmFmb3JtRWxlbWVudCB8IE5vZGUsXG4gICAgb3B0aW9ucz86IFVuaXF1ZVJlc291cmNlTmFtZVByZWZpeE9wdGlvbnMsXG4gICk6IHN0cmluZztcbiAgLy8gdG9Kc29uU3RyaW5nKG9iajogYW55LCBzcGFjZT86IG51bWJlcik6IHN0cmluZztcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbGwgVGVycmFDb25zdHJ1Y3RzIHN0YWNrc1xuICpcbiAqIFByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvIHRoZSBncmlkIFVVSUQgYW5kIGVudmlyb25tZW50IG5hbWVcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN0YWNrQmFzZSBleHRlbmRzIFRlcnJhZm9ybVN0YWNrIGltcGxlbWVudHMgSVN0YWNrIHtcbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBTdGFjay5cbiAgICpcbiAgICogYXR0cmlidXRlIGRldGVjdGlvbiBzaW5jZSBhcyAnaW5zdGFuY2VvZicgcG90ZW50aWFsbHkgZmFpbHMgYWNyb3NzIExpYnJhcnkgcmVsZWFzZXMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzVGVycmFTdGFjayh4OiBhbnkpOiB4IGlzIElTdGFjayB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mIHggPT09IFwib2JqZWN0XCIgJiYgVEVSUkFTVEFDS19TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb29rcyB1cCB0aGUgZmlyc3Qgc3RhY2sgc2NvcGUgaW4gd2hpY2ggYGNvbnN0cnVjdGAgaXMgZGVmaW5lZC4gRmFpbHMgaWYgdGhlcmUgaXMgbm8gc3RhY2sgdXAgdGhlIHRyZWUgb3IgdGhlIHN0YWNrIGlzIG5vdCBhbiBJU3RhY2suXG4gICAqIEBwYXJhbSBjb25zdHJ1Y3QgVGhlIGNvbnN0cnVjdCB0byBzdGFydCB0aGUgc2VhcmNoIGZyb20uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mVGVycmFDb25zdHJ1Y3QoY29uc3RydWN0OiBJQ29uc3RydWN0KTogSVN0YWNrIHtcbiAgICBjb25zdCBzID0gVGVycmFmb3JtU3RhY2sub2YoY29uc3RydWN0KTtcbiAgICBpZiAoU3RhY2tCYXNlLmlzVGVycmFTdGFjayhzKSkge1xuICAgICAgcmV0dXJuIHM7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBSZXNvdXJjZSAnJHtjb25zdHJ1Y3QuY29uc3RydWN0b3I/Lm5hbWV9JyBhdCAnJHtjb25zdHJ1Y3Qubm9kZS5wYXRofScgc2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhlIHNjb3BlIG9mIFRlcnJhQ29uc3RydWN0IElTdGFjaywgYnV0IG5vIElTdGFjayBmb3VuZGAsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIGEgY29uc3RydWN0IGJhc2VkIG9uIGl0cyBwYXRoIHdpdGhpblxuICAgKiBhIFRlcnJhZm9ybVN0YWNrLiBzZWUgdW5pcXVlUmVzb3VyY2VOYW1lLCBidXQgd2l0aCBubyBzZXBhcmF0b3IsIG1heGltdW0gbGVuZ3RoIDI1NSBhbmQgYWxsb3dzXG4gICAqICBcIl9cIiBhbmQgXCItXCIgb24gdG9wIG9mIGFscGhhbnVtZXJpY2FsIGNoYXJhY3RlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBjb25zdHJ1Y3QgVGhlIGNvbnN0cnVjdFxuICAgKiBAcmV0dXJucyBhIHVuaXF1ZSByZXNvdXJjZSBuYW1lIGJhc2VkIG9uIHRoZSBjb25zdHJ1Y3QgcGF0aFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1bmlxdWVJZChjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QgfCBOb2RlKSB7XG4gICAgY29uc3Qgbm9kZSA9IENvbnN0cnVjdC5pc0NvbnN0cnVjdChjb25zdHJ1Y3QpID8gY29uc3RydWN0Lm5vZGUgOiBjb25zdHJ1Y3Q7XG4gICAgY29uc3Qgc3RhY2sgPSBub2RlLnNjb3Blc1xuICAgICAgLnJldmVyc2UoKVxuICAgICAgLmZpbmQoKGNvbXBvbmVudCkgPT4gVGVycmFmb3JtU3RhY2suaXNTdGFjayhjb21wb25lbnQpKTtcblxuICAgIGlmICghc3RhY2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJVbmFibGUgdG8gY2FsY3VsYXRlIGEgdW5pcXVlIGlkIHdpdGhvdXQgYSBzdGFjayBpbiB0aGUgY29uc3RydWN0IHBhdGhcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3BlY0luZGV4ID0gbm9kZS5zY29wZXMuaW5kZXhPZihzdGFjayk7XG4gICAgY29uc3QgY29tcG9uZW50c1BhdGggPSBub2RlLnNjb3Blc1xuICAgICAgLnNsaWNlKHNwZWNJbmRleClcbiAgICAgIC5tYXAoKGNvbXBvbmVudCkgPT4gY29tcG9uZW50Lm5vZGUuaWQpO1xuXG4gICAgcmV0dXJuIG1ha2VVbmlxdWVSZXNvdXJjZU5hbWUoY29tcG9uZW50c1BhdGgsIHtcbiAgICAgIG1heExlbmd0aDogMjU1LFxuICAgICAgLy8gYXZvaWQgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy82NDIxXG4gICAgICBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnM6IFwiXy1cIixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFjayB1bmlxdWUgZ3JpZCBpZGVudGlmaWVyXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9ncmlkVVVJRDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbnZpcm9ubWVudCBOYW1lIHBhc3NlZCBpbiBmcm9tIHRoZSBDTElcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Vudmlyb25tZW50TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZ3JpZCBwcm92aWRlZCBiYWNrZW5kIGZvciBzdGF0ZSBzdG9yYWdlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JpZEJhY2tlbmQ/OiBIdHRwQmFja2VuZDtcblxuICBwcml2YXRlIGFyY2hpdmVQcm92aWRlclNpbmdsZXRvbj86IGFyY2hpdmVQcm92aWRlci5BcmNoaXZlUHJvdmlkZXI7XG4gIHB1YmxpYyBnZXQgYXJjaGl2ZVByb3ZpZGVyKCk6IGFyY2hpdmVQcm92aWRlci5BcmNoaXZlUHJvdmlkZXIge1xuICAgIGlmICghdGhpcy5hcmNoaXZlUHJvdmlkZXJTaW5nbGV0b24pIHtcbiAgICAgIHRoaXMuYXJjaGl2ZVByb3ZpZGVyU2luZ2xldG9uID0gbmV3IGFyY2hpdmVQcm92aWRlci5BcmNoaXZlUHJvdmlkZXIoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiQXJjaGl2ZVByb3ZpZGVyXCIsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hcmNoaXZlUHJvdmlkZXJTaW5nbGV0b247XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZT86IENvbnN0cnVjdCwgaWQ/OiBzdHJpbmcsIHByb3BzOiBTdGFja0Jhc2VQcm9wcyA9IHt9KSB7XG4gICAgLy8gRm9yIHVuaXQgdGVzdCBzY29wZSBhbmQgaWQgYXJlIG9wdGlvbmFsIGZvciBzdGFja3MsIGJ1dCB3ZSBzdGlsbCB3YW50IGFuIEFwcFxuICAgIC8vIGFzIHRoZSBwYXJlbnQgYmVjYXVzZSBhcHBzIGltcGxlbWVudCBtdWNoIG9mIHRoZSBzeW50aGVzaXMgbG9naWMuXG4gICAgc2NvcGUgPSBzY29wZSA/PyBuZXcgQXBwKCk7XG5cbiAgICAvLyBcIkRlZmF1bHRcIiBpcyBhIFwiaGlkZGVuIGlkXCIgZnJvbSBhIGBub2RlLnVuaXF1ZUlkYCBwZXJzcGVjdGl2ZVxuICAgIGlkID0gaWQgPz8gXCJEZWZhdWx0XCI7XG5cbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMuX2Vudmlyb25tZW50TmFtZSA9IHByb3BzLmVudmlyb25tZW50TmFtZSA/PyBcIkRlZmF1bHRcIjtcbiAgICB0aGlzLl9ncmlkVVVJRCA9IHByb3BzLmdyaWRVVUlEID8/IHRoaXMuZ2VuZXJhdGVHcmlkVXVpZCh0aGlzLCBcImdcIik7XG4gICAgaWYgKHRoaXMuZ3JpZFVVSUQubGVuZ3RoID4gMzYpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGBHcmlkVVVJRCBtdXN0IGJlIDw9IDM2IGNoYXJhY3RlcnMuIEdyaWRVVUlEOiAnJHt0aGlzLmdyaWRVVUlEfSdgLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFRFUlJBU1RBQ0tfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIGlmIChwcm9wcy5ncmlkQmFja2VuZENvbmZpZykge1xuICAgICAgdGhpcy5ncmlkQmFja2VuZCA9IG5ldyBIdHRwQmFja2VuZCh0aGlzLCBwcm9wcy5ncmlkQmFja2VuZENvbmZpZyk7XG4gICAgfVxuXG4gICAgaWYgKCFWQUxJRF9HUklEX1VVSURfUkVHRVgudGVzdCh0aGlzLmdyaWRVVUlEKSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgYEdyaWRVVUlEIG11c3QgbWF0Y2ggdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbjogJHtWQUxJRF9HUklEX1VVSURfUkVHRVgudG9TdHJpbmcoKX0sIGdvdCAnJHt0aGlzLmdyaWRVVUlEfSdgLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBNYXAgY29uc3RydWN0IHRyZWUgZGVwZW5kZW5jaWVzIHRvIElUZXJyYWZvcm1EZXBlbmRhYmxlc1xuICAgIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrL2lzc3Vlcy8yNzI3I2lzc3VlY29tbWVudC0xNDczMzIxMDc1XG4gICAgQXNwZWN0cy5vZih0aGlzKS5hZGQobmV3IFRlcnJhZm9ybURlcGVuZGVuY3lBc3BlY3QoKSk7XG4gICAgLy8gQXNwZWN0cyBhcmUgaW52b2tlZCBpbiBzeW50aCBhZnRlciBzdGFjayBoYXMgYmVlbiBwcmVwYXJlZFxuICAgIC8vIHRoaXMgc2hvdWxkIGVuc3VyZSBhbnkgcmVzb3VyY2VzIGFkZGVkIGR1cmluZyBgcHJlcGFyZVN0YWNrKClgIGFyZSBpbmNsdWRlZCBpbiB0aGUgZGVwZW5kZW5jeSB0cmVlXG4gICAgLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1jZGsvYmxvYi92MC4yMC45L3BhY2thZ2VzL2Nka3RmL2xpYi9zeW50aGVzaXplL3N5bnRoZXNpemVyLnRzI0wxMjFcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ3JpZFVVSUQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZ3JpZFVVSUQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVudmlyb25tZW50TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9lbnZpcm9ubWVudE5hbWU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIFRlcnJhZm9ybS1jb21wYXRpYmxlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhIFRlcnJhZm9ybSBFbGVtZW50IGJhc2VkXG4gICAqIG9uIGl0cyBwYXRoLiBUaGlzIGZ1bmN0aW9uIGZpbmRzIHRoZSBzdGFja05hbWUgb2YgdGhlIHBhcmVudCBzdGFjayAobm9uLW5lc3RlZClcbiAgICogdG8gdGhlIGNvbnN0cnVjdCwgYW5kIHRoZSBpZHMgb2YgdGhlIGNvbXBvbmVudHMgaW4gdGhlIGNvbnN0cnVjdCBwYXRoLlxuICAgKlxuICAgKiBUaGUgdXNlciBjYW4gZGVmaW5lIGFsbG93ZWQgc3BlY2lhbCBjaGFyYWN0ZXJzLCBhIHNlcGFyYXRvciBiZXR3ZWVuIHRoZSBlbGVtZW50cyxcbiAgICogYW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiB0aGUgcmVzb3VyY2UgbmFtZS4gVGhlIG5hbWUgaW5jbHVkZXMgYSBodW1hbiByZWFkYWJsZSBwb3J0aW9uIHJlbmRlcmVkXG4gICAqIGZyb20gdGhlIHBhdGggY29tcG9uZW50cywgd2l0aCBvciB3aXRob3V0IHVzZXIgZGVmaW5lZCBzZXBhcmF0b3JzLCBhbmQgYSBoYXNoIHN1ZmZpeC5cbiAgICogSWYgdGhlIHJlc291cmNlIG5hbWUgaXMgbG9uZ2VyIHRoYW4gdGhlIG1heGltdW0gbGVuZ3RoLCBpdCBpcyB0cmltbWVkIGluIHRoZSBtaWRkbGUuXG4gICAqXG4gICAqIEBwYXJhbSB0ZkVsZW1lbnQgVGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGZvciBkZWZpbmluZyB0aGUgdW5pcXVlIHJlc291cmNlIG5hbWVcbiAgICogQHJldHVybnMgYSB1bmlxdWUgcmVzb3VyY2UgbmFtZSBiYXNlZCBvbiB0aGUgY29uc3RydWN0IHBhdGhcbiAgICovXG4gIHB1YmxpYyB1bmlxdWVSZXNvdXJjZU5hbWUoXG4gICAgdGZFbGVtZW50OiBUZXJyYWZvcm1FbGVtZW50IHwgTm9kZSxcbiAgICBvcHRpb25zOiBVbmlxdWVSZXNvdXJjZU5hbWVPcHRpb25zID0ge30sXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3Qgbm9kZSA9IENvbnN0cnVjdC5pc0NvbnN0cnVjdCh0ZkVsZW1lbnQpID8gdGZFbGVtZW50Lm5vZGUgOiB0ZkVsZW1lbnQ7XG4gICAgY29uc3Qgc3RhY2sgPSBUZXJyYWZvcm1FbGVtZW50LmlzVGVycmFmb3JtRWxlbWVudCh0ZkVsZW1lbnQpXG4gICAgICA/IHRmRWxlbWVudC5jZGt0ZlN0YWNrXG4gICAgICA6IHRoaXM7XG4gICAgY29uc3Qgc3RhY2tJbmRleCA9IG5vZGUuc2NvcGVzLmluZGV4T2Yoc3RhY2spO1xuICAgIGNvbnN0IGNvbXBvbmVudHNQYXRoID0gbm9kZS5zY29wZXNcbiAgICAgIC5zbGljZShzdGFja0luZGV4KVxuICAgICAgLm1hcCgoY29tcG9uZW50KSA9PiBjb21wb25lbnQubm9kZS5pZCk7XG5cbiAgICByZXR1cm4gbWFrZVVuaXF1ZVJlc291cmNlTmFtZShjb21wb25lbnRzUGF0aCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIFRlcnJhZm9ybS1jb21wYXRpYmxlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhIFRlcnJhZm9ybSBFbGVtZW50IGJhc2VkXG4gICAqIG9uIGl0cyBwYXRoLiBUaGlzIGZ1bmN0aW9uIGZpbmRzIHRoZSBzdGFja05hbWUgb2YgdGhlIHBhcmVudCBzdGFjayAobm9uLW5lc3RlZClcbiAgICogdG8gdGhlIGNvbnN0cnVjdCwgYW5kIHRoZSBpZHMgb2YgdGhlIGNvbXBvbmVudHMgaW4gdGhlIGNvbnN0cnVjdCBwYXRoLlxuICAgKlxuICAgKiBUaGUgdXNlciBjYW4gZGVmaW5lIGFsbG93ZWQgc3BlY2lhbCBjaGFyYWN0ZXJzLCBhIHNlcGFyYXRvciBiZXR3ZWVuIHRoZSBlbGVtZW50cyxcbiAgICogYW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiB0aGUgcmVzb3VyY2UgbmFtZS4gVGhlIG5hbWUgaW5jbHVkZXMgYSBodW1hbiByZWFkYWJsZSBwb3J0aW9uIHJlbmRlcmVkXG4gICAqIGZyb20gdGhlIHBhdGggY29tcG9uZW50cywgd2l0aCBvciB3aXRob3V0IHVzZXIgZGVmaW5lZCBzZXBhcmF0b3JzLCBhbmQgZGVwZW5kcyBvbiB0aGVcbiAgICogcmVzb3VyY2UgcHJvdmlkZXIgdG8gZ2VuZXJhdGUgdGhlIHJhbmRvbSBzdWZmaXguXG4gICAqXG4gICAqIElmIHRoZSByZXNvdXJjZSBuYW1lIGlzIGxvbmdlciB0aGFuIHRoZSBtYXhpbXVtIGxlbmd0aCAtIHN1ZmZpeExlbmd0aCwgaXQgaXMgdHJpbW1lZCBpbiB0aGUgbWlkZGxlLlxuICAgKlxuICAgKiBAcGFyYW0gdGZFbGVtZW50IFRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgZGVmaW5pbmcgdGhlIHVuaXF1ZSByZXNvdXJjZSBuYW1lXG4gICAqIEByZXR1cm5zIGEgdW5pcXVlIHJlc291cmNlIG5hbWUgYmFzZWQgb24gdGhlIGNvbnN0cnVjdCBwYXRoXG4gICAqL1xuICBwdWJsaWMgdW5pcXVlUmVzb3VyY2VOYW1lUHJlZml4KFxuICAgIHRmRWxlbWVudDogVGVycmFmb3JtRWxlbWVudCB8IE5vZGUsXG4gICAgb3B0aW9uczogVW5pcXVlUmVzb3VyY2VOYW1lUHJlZml4T3B0aW9ucyA9IHt9LFxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IG5vZGUgPSBDb25zdHJ1Y3QuaXNDb25zdHJ1Y3QodGZFbGVtZW50KSA/IHRmRWxlbWVudC5ub2RlIDogdGZFbGVtZW50O1xuICAgIGNvbnN0IHN0YWNrID0gVGVycmFmb3JtRWxlbWVudC5pc1RlcnJhZm9ybUVsZW1lbnQodGZFbGVtZW50KVxuICAgICAgPyB0ZkVsZW1lbnQuY2RrdGZTdGFja1xuICAgICAgOiB0aGlzO1xuICAgIGNvbnN0IHN0YWNrSW5kZXggPSBub2RlLnNjb3Blcy5pbmRleE9mKHN0YWNrKTtcbiAgICBjb25zdCBjb21wb25lbnRzUGF0aCA9IG5vZGUuc2NvcGVzXG4gICAgICAuc2xpY2Uoc3RhY2tJbmRleClcbiAgICAgIC5tYXAoKGNvbXBvbmVudCkgPT4gY29tcG9uZW50Lm5vZGUuaWQpO1xuXG4gICAgcmV0dXJuIG1ha2VVbmlxdWVSZXNvdXJjZU5hbWVQcmVmaXgoY29tcG9uZW50c1BhdGgsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqIFJlc29sdmUgSVJlc29sdmFibGUgaW4gc2NvcGUgb2YgdGhpcyBBd3NTdGFjayAqL1xuICBwdWJsaWMgcmVzb2x2ZShvYmo6IGFueSwgcHJlcGFyaW5nID0gZmFsc2UpOiBhbnkge1xuICAgIHJldHVybiBUb2tlbml6YXRpb24ucmVzb2x2ZShvYmosIHtcbiAgICAgIHNjb3BlOiB0aGlzLFxuICAgICAgcHJlcGFyaW5nLFxuICAgICAgcmVzb2x2ZXI6IFRPS0VOX1JFU09MVkVSLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgYW4gb2JqZWN0LCBwb3RlbnRpYWxseSBjb250YWluaW5nIHRva2VucywgdG8gYSBKU09OIHN0cmluZ1xuICAgKi9cbiAgcHVibGljIHRvSnNvblN0cmluZyhvYmo6IGFueSwgc3BhY2U/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBMYXp5LnN0cmluZ1ZhbHVlKHtcbiAgICAgIHByb2R1Y2U6IChjdHg6IElSZXNvbHZlQ29udGV4dCkgPT4ge1xuICAgICAgICAvLyBGaXJzdCByZXNvbHZlIFRva2VuIG9iamVjdHMgd2l0aCBzdHJpbmcgY29uY2F0Li4uIHRoZW4gSlNPTi5zdHJpbmdpZnkgdGhlIHJlc3VsdGluZyBvYmplY3RcbiAgICAgICAgLy9cbiAgICAgICAgLy8gdW5saWtlIGNsb3VkZm9ybWF0aW9uLCBUZXJyYWZvcm0gZG9lcyBub3QgbmVlZCBhbiBpbnRyaW5zaWMgd3JhcHBlcj9cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvOGRjYTUwNzllMTg5MzEyMjA1N2Y5ZTJjNTRjMGRhMGJhNjQ0OTI2ZS9wYWNrYWdlcy8lNDBhd3MtY2RrL2NvcmUvbGliL3ByaXZhdGUvY2xvdWRmb3JtYXRpb24tbGFuZy50cyNMNzNcbiAgICAgICAgLy8gaW50cmluc2ljIHdyYXBwZXIgd2l0aG91dCBjcm9zcyBzdGFjayByZWZcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvMTRlNGJjOTFlZDVmMGY4Y2I3YzhhYzllZThhNmRlNGRhNTRlNjU4NS9wYWNrYWdlcy8lNDBhd3MtY2RrL2NvcmUvbGliL3ByaXZhdGUvY2xvdWRmb3JtYXRpb24tbGFuZy50cyNMNTBcbiAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSBUb2tlbml6YXRpb24ucmVzb2x2ZShvYmosIHtcbiAgICAgICAgICBwcmVwYXJpbmc6IGN0eC5wcmVwYXJpbmcsXG4gICAgICAgICAgc2NvcGU6IGN0eC5zY29wZSxcbiAgICAgICAgICByZXNvbHZlcjogVE9LRU5fUkVTT0xWRVIsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocmVzb2x2ZWQsIHVuZGVmaW5lZCwgc3BhY2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBhbiBJRCB3aXRoIHJlc3BlY3QgdG8gdGhlIGdpdmVuIGNvbnRhaW5lciBjb25zdHJ1Y3QuXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlR3JpZFV1aWQoXG4gICAgY29udGFpbmVyOiBJQ29uc3RydWN0IHwgdW5kZWZpbmVkLFxuICAgIHByZWZpeDogc3RyaW5nID0gXCJcIixcbiAgKSB7XG4gICAgY29uc3Qgcm9vdFBhdGggPSByb290UGF0aFRvKHRoaXMsIGNvbnRhaW5lcik7XG4gICAgY29uc3QgaWRzID0gcm9vdFBhdGgubWFwKChjKSA9PiBjLm5vZGUuaWQpO1xuXG4gICAgLy8gSW4gdW5pdCB0ZXN0cyBvdXIgU3RhY2sgKHdoaWNoIGlzIHRoZSBvbmx5IGNvbXBvbmVudCkgbWF5IG5vdCBoYXZlIGFuXG4gICAgLy8gaWQsIHNvIGluIHRoYXQgY2FzZSBqdXN0IHByZXRlbmQgaXQncyBcIlN0YWNrXCIuXG4gICAgaWYgKGlkcy5sZW5ndGggPT09IDEgJiYgIWlkc1swXSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgXCJ1bmV4cGVjdGVkOiBzdGFjayBpZCBtdXN0IGFsd2F5cyBiZSBkZWZpbmVkXCIsXG4gICAgICAgIHRoaXMsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBtYWtlR3JpZFV1aWQoaWRzLCBwcmVmaXgpO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBjb25zdHJ1Y3Qgcm9vdCBwYXRoIG9mIHRoZSBnaXZlbiBjb25zdHJ1Y3QgcmVsYXRpdmUgdG8gdGhlIGdpdmVuIGFuY2VzdG9yXG4gKlxuICogSWYgbm8gYW5jZXN0b3IgaXMgZ2l2ZW4gb3IgdGhlIGFuY2VzdG9yIGlzIG5vdCBmb3VuZCwgcmV0dXJuIHRoZSBlbnRpcmUgcm9vdCBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcm9vdFBhdGhUbyhcbiAgY29uc3RydWN0OiBJQ29uc3RydWN0LFxuICBhbmNlc3Rvcj86IElDb25zdHJ1Y3QsXG4pOiBJQ29uc3RydWN0W10ge1xuICBjb25zdCBzY29wZXMgPSBjb25zdHJ1Y3Qubm9kZS5zY29wZXM7XG4gIGZvciAobGV0IGkgPSBzY29wZXMubGVuZ3RoIC0gMjsgaSA+PSAwOyBpLS0pIHtcbiAgICBpZiAoc2NvcGVzW2ldID09PSBhbmNlc3Rvcikge1xuICAgICAgcmV0dXJuIHNjb3Blcy5zbGljZShpICsgMSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBzY29wZXM7XG59XG5cbi8qKlxuICogbWFrZVVuaXF1ZUlkLCBzcGVjaWFsaXplZCBmb3IgR3JpZCBVVUlEXG4gKlxuICogR3JpZCBVVUlEIG1heSBjb250YWluICctJywgc28gd2UgYWxsb3cgdGhhdCBjaGFyYWN0ZXIgaWYgdGhlIHN0YWNrIG5hbWVcbiAqIGhhcyBvbmx5IG9uZSBjb21wb25lbnQuIE90aGVyd2lzZSB3ZSBmYWxsIGJhY2sgdG8gdGhlIHJlZ3VsYXIgXCJtYWtlVW5pcXVlSWRcIlxuICogYmVoYXZpb3IuXG4gKi9cbmZ1bmN0aW9uIG1ha2VHcmlkVXVpZChjb21wb25lbnRzOiBzdHJpbmdbXSwgcHJlZml4OiBzdHJpbmcgPSBcIlwiKSB7XG4gIGlmIChjb21wb25lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgIGNvbnN0IGdyaWRVdWlkID0gcHJlZml4ICsgY29tcG9uZW50c1swXTtcbiAgICBpZiAoZ3JpZFV1aWQubGVuZ3RoIDw9IDM2KSB7XG4gICAgICByZXR1cm4gZ3JpZFV1aWQ7XG4gICAgfVxuICB9XG4gIHJldHVybiBtYWtlVW5pcXVlUmVzb3VyY2VOYW1lKGNvbXBvbmVudHMsIHsgbWF4TGVuZ3RoOiAzNiwgcHJlZml4OiBwcmVmaXggfSk7XG59XG4iXX0=
|
package/lib/terra-func.d.ts
CHANGED
package/lib/terra-func.js
CHANGED
|
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.Fn = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
// https://github.com/aws/aws-cdk/blob/v/packages/aws-cdk-lib/core/lib/cfn-fn.ts
|
|
7
|
-
const
|
|
7
|
+
const cdktn_1 = require("cdktn");
|
|
8
8
|
/**
|
|
9
9
|
* TerraConstructs helper functions.
|
|
10
10
|
*/
|
|
11
|
-
class Fn extends
|
|
11
|
+
class Fn extends cdktn_1.Fn {
|
|
12
12
|
/**
|
|
13
13
|
* Split a string token into a token list of string values.
|
|
14
14
|
*
|
|
@@ -54,20 +54,20 @@ class Fn extends cdktf_1.Fn {
|
|
|
54
54
|
*/
|
|
55
55
|
static splitv2(delimiter, source, assumedLength) {
|
|
56
56
|
// short-circuit if source is not a token
|
|
57
|
-
if (!
|
|
57
|
+
if (!cdktn_1.Token.isUnresolved(source)) {
|
|
58
58
|
return source.split(delimiter);
|
|
59
59
|
}
|
|
60
|
-
if (
|
|
60
|
+
if (cdktn_1.Token.isUnresolved(delimiter)) {
|
|
61
61
|
throw new Error("Fn.splitv2: 'delimiter' may not be a token value");
|
|
62
62
|
}
|
|
63
|
-
const split =
|
|
63
|
+
const split = cdktn_1.Token.asList(cdktn_1.Fn.split(delimiter, source));
|
|
64
64
|
if (assumedLength === undefined) {
|
|
65
65
|
return split;
|
|
66
66
|
}
|
|
67
|
-
if (
|
|
67
|
+
if (cdktn_1.Token.isUnresolved(assumedLength)) {
|
|
68
68
|
throw new Error("Fn.split: 'assumedLength' may not be a token value");
|
|
69
69
|
}
|
|
70
|
-
return range(assumedLength).map((i) =>
|
|
70
|
+
return range(assumedLength).map((i) => cdktn_1.Fn.element(split, i));
|
|
71
71
|
}
|
|
72
72
|
/**
|
|
73
73
|
* Similar to Fn.element, but with a shortcut if list is not unresolved
|
|
@@ -79,12 +79,12 @@ class Fn extends cdktf_1.Fn {
|
|
|
79
79
|
*/
|
|
80
80
|
static select(index, array) {
|
|
81
81
|
// short-circuit if source is not a token
|
|
82
|
-
if (!
|
|
83
|
-
!
|
|
84
|
-
!array.some(
|
|
82
|
+
if (!cdktn_1.Token.isUnresolved(index) &&
|
|
83
|
+
!cdktn_1.Token.isUnresolved(array) &&
|
|
84
|
+
!array.some(cdktn_1.Token.isUnresolved)) {
|
|
85
85
|
return array[index];
|
|
86
86
|
}
|
|
87
|
-
return
|
|
87
|
+
return cdktn_1.Fn.element(array, index);
|
|
88
88
|
}
|
|
89
89
|
/**
|
|
90
90
|
* Given an url, parse the domain name
|
|
@@ -104,7 +104,7 @@ class Fn extends cdktf_1.Fn {
|
|
|
104
104
|
*/
|
|
105
105
|
static importValue(scope, id, options = {}) {
|
|
106
106
|
// TODO: This should be a terraform remote state data source instead
|
|
107
|
-
const importVariable = new
|
|
107
|
+
const importVariable = new cdktn_1.TerraformVariable(scope, id, options);
|
|
108
108
|
return importVariable.stringValue;
|
|
109
109
|
}
|
|
110
110
|
/**
|
|
@@ -129,13 +129,13 @@ class Fn extends cdktf_1.Fn {
|
|
|
129
129
|
*/
|
|
130
130
|
static len(array) {
|
|
131
131
|
// short-circuit if array is not a token
|
|
132
|
-
if (!
|
|
132
|
+
if (!cdktn_1.Token.isUnresolved(array)) {
|
|
133
133
|
if (!Array.isArray(array)) {
|
|
134
134
|
throw new Error("Fn.length() needs an array");
|
|
135
135
|
}
|
|
136
136
|
return array.length;
|
|
137
137
|
}
|
|
138
|
-
return
|
|
138
|
+
return cdktn_1.Fn.lengthOf(array);
|
|
139
139
|
}
|
|
140
140
|
/**
|
|
141
141
|
* {@link https://developer.hashicorp.com/terraform/language/functions/join join} produces a string by concatenating together all elements of a given list of strings with the given delimiter.
|
|
@@ -147,9 +147,9 @@ class Fn extends cdktf_1.Fn {
|
|
|
147
147
|
* @param {Array<string>} values
|
|
148
148
|
*/
|
|
149
149
|
static join(delimiter, values) {
|
|
150
|
-
if (
|
|
150
|
+
if (cdktn_1.Token.isUnresolved(values)) {
|
|
151
151
|
// This is a list token, don't try to do smart things with it.
|
|
152
|
-
return
|
|
152
|
+
return cdktn_1.Fn.join(delimiter, values);
|
|
153
153
|
}
|
|
154
154
|
if (values.length === 1) {
|
|
155
155
|
return values[0];
|
|
@@ -159,7 +159,7 @@ class Fn extends cdktf_1.Fn {
|
|
|
159
159
|
}
|
|
160
160
|
exports.Fn = Fn;
|
|
161
161
|
_a = JSII_RTTI_SYMBOL_1;
|
|
162
|
-
Fn[_a] = { fqn: "terraconstructs.Fn", version: "0.2.
|
|
162
|
+
Fn[_a] = { fqn: "terraconstructs.Fn", version: "0.2.6" };
|
|
163
163
|
function range(n) {
|
|
164
164
|
const ret = [];
|
|
165
165
|
for (let i = 0; i < n; i++) {
|
|
@@ -167,4 +167,4 @@ function range(n) {
|
|
|
167
167
|
}
|
|
168
168
|
return ret;
|
|
169
169
|
}
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmEtZnVuYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYS1mdW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0ZBQWdGO0FBRWhGLGlDQUtlO0FBR2Y7O0dBRUc7QUFDSCxNQUFhLEVBQUcsU0FBUSxVQUFJO0lBQzFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0EwQ0c7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUNuQixTQUFpQixFQUNqQixNQUFjLEVBQ2QsYUFBc0I7UUFFdEIseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxhQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLGFBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLGFBQUssQ0FBQyxNQUFNLENBQUMsVUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMxRCxJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLGFBQUssQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRSxD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QUMzQixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvY2ZuLWZuLnRzXG5cbmltcG9ydCB7XG4gIFRlcnJhZm9ybVZhcmlhYmxlLFxuICBUZXJyYWZvcm1WYXJpYWJsZUNvbmZpZyxcbiAgVG9rZW4sXG4gIEZuIGFzIHRmRm4sXG59IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuLyoqXG4gKiBUZXJyYUNvbnN0cnVjdHMgaGVscGVyIGZ1bmN0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIEZuIGV4dGVuZHMgdGZGbiB7XG4gIC8qKlxuICAgKiBTcGxpdCBhIHN0cmluZyB0b2tlbiBpbnRvIGEgdG9rZW4gbGlzdCBvZiBzdHJpbmcgdmFsdWVzLlxuICAgKlxuICAgKiBTcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBzcGxpdHMgd2l0aCBhIGRlbGltaXRlciBzdWNoIGFzICcsJyAoYSBjb21tYSkuXG4gICAqIFJlbmRlcnMgdG8gdGhlIGBzcGxpdGAgaW50cmluc2ljIHRlcnJhZm9ybSBmdW5jdGlvbi5cbiAgICpcbiAgICogTGlzdHMgd2l0aCB1bmtub3duIGxlbmd0aHMgKGRlZmF1bHQpXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICpcbiAgICogU2luY2UgdGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHdvcmsgd2l0aCBkZXBsb3ktdGltZSB2YWx1ZXMsIGlmIGBhc3N1bWVkTGVuZ3RoYFxuICAgKiBpcyBub3QgZ2l2ZW4gdGhlIENESyBjYW5ub3Qga25vdyB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHRpbmcgbGlzdCBhdCBzeW50aGVzaXMgdGltZS5cbiAgICogVGhpcyBicmluZ3MgdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnM6XG4gICAqXG4gICAqIC0gWW91IG11c3QgdXNlIGBGbi5lbGVtZW50KGxpc3QsIGkpYCB0byBwaWNrIGVsZW1lbnRzIG91dCBvZiB0aGUgbGlzdCAoeW91IG11c3Qgbm90IHVzZVxuICAgKiAgIGBsaXN0W2ldYCkuXG4gICAqIC0gWW91IGNhbm5vdCBhZGQgZWxlbWVudHMgdG8gdGhlIGxpc3QsIHJlbW92ZSBlbGVtZW50cyBmcm9tIHRoZSBsaXN0LFxuICAgKiAgIGNvbWJpbmUgdHdvIHN1Y2ggbGlzdHMgdG9nZXRoZXIsIG9yIHRha2UgYSBzbGljZSBvZiB0aGUgbGlzdC5cbiAgICogLSBZb3UgY2Fubm90IHBhc3MgdGhlIGxpc3QgdG8gY29uc3RydWN0cyB0aGF0IGRvIGFueSBvZiB0aGUgYWJvdmUuXG4gICAqXG4gICAqIFRoZSBvbmx5IHZhbGlkIG9wZXJhdGlvbiB3aXRoIHN1Y2ggYSB0b2tlbml6ZWQgbGlzdCBpcyB0byBwYXNzIGl0IHVubW9kaWZpZWQgdG8gYVxuICAgKiBUZXJyYWZvcm0gUmVzb3VyY2UgY29uc3RydWN0LlxuICAgKlxuICAgKiBMaXN0cyB3aXRoIGFzc3VtZWQgbGVuZ3Roc1xuICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKlxuICAgKiBQYXNzIGBhc3N1bWVkTGVuZ3RoYCBpZiB5b3Uga25vdyB0aGUgbGVuZ3RoIG9mIHRoZSBsaXN0IHRoYXQgd2lsbCBiZVxuICAgKiBwcm9kdWNlZCBieSBzcGxpdHRpbmcuIFRoZSBhY3R1YWwgbGlzdCBsZW5ndGggYXQgZGVwbG95IHRpbWUgbWF5IGJlXG4gICAqICpsb25nZXIqIHRoYW4gdGhlIG51bWJlciB5b3UgcGFzcywgYnV0IG5vdCAqc2hvcnRlciouXG4gICAqXG4gICAqIFRoZSByZXR1cm5lZCBsaXN0IHdpbGwgbG9vayBsaWtlOlxuICAgKlxuICAgKiBgYGBcbiAgICogW0ZuLmVsZW1lbnQoc3BsaXQsIDApLCBGbi5lbGVtZW50KHNwbGl0LCAxKSwgRm4uZWxlbWVudChzcGxpdCwgMiksIC4uLl1cbiAgICogYGBgXG4gICAqXG4gICAqIFRoZSByZXN0cmljdGlvbnMgZnJvbSB0aGUgc2VjdGlvbiBcIkxpc3RzIHdpdGggdW5rbm93biBsZW5ndGhzXCIgd2lsbCBub3cgYmUgbGlmdGVkLFxuICAgKiBhdCB0aGUgZXhwZW5zZSBvZiBoYXZpbmcgdG8ga25vdyBhbmQgZml4IHRoZSBsZW5ndGggb2YgdGhlIGxpc3QuXG4gICAqXG4gICAqIEBwYXJhbSBkZWxpbWl0ZXIgQSBzdHJpbmcgdmFsdWUgdGhhdCBkZXRlcm1pbmVzIHdoZXJlIHRoZSBzb3VyY2Ugc3RyaW5nIGlzIGRpdmlkZWQuXG4gICAqIEBwYXJhbSBzb3VyY2UgVGhlIHN0cmluZyB2YWx1ZSB0aGF0IHlvdSB3YW50IHRvIHNwbGl0LlxuICAgKiBAcGFyYW0gYXNzdW1lZExlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBsaXN0IHRoYXQgd2lsbCBiZSBwcm9kdWNlZCBieSBzcGxpdHRpbmdcbiAgICogQHJldHVybnMgYSB0b2tlbiByZXByZXNlbnRlZCBhcyBhIHN0cmluZyBhcnJheVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzcGxpdHYyKFxuICAgIGRlbGltaXRlcjogc3RyaW5nLFxuICAgIHNvdXJjZTogc3RyaW5nLFxuICAgIGFzc3VtZWRMZW5ndGg/OiBudW1iZXIsXG4gICk6IHN0cmluZ1tdIHtcbiAgICAvLyBzaG9ydC1jaXJjdWl0IGlmIHNvdXJjZSBpcyBub3QgYSB0b2tlblxuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKHNvdXJjZSkpIHtcbiAgICAgIHJldHVybiBzb3VyY2Uuc3BsaXQoZGVsaW1pdGVyKTtcbiAgICB9XG5cbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKGRlbGltaXRlcikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkZuLnNwbGl0djI6ICdkZWxpbWl0ZXInIG1heSBub3QgYmUgYSB0b2tlbiB2YWx1ZVwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBzcGxpdCA9IFRva2VuLmFzTGlzdCh0ZkZuLnNwbGl0KGRlbGltaXRlciwgc291cmNlKSk7XG4gICAgaWYgKGFzc3VtZWRMZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHNwbGl0O1xuICAgIH1cblxuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoYXNzdW1lZExlbmd0aCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkZuLnNwbGl0OiAnYXNzdW1lZExlbmd0aCcgbWF5IG5vdCBiZSBhIHRva2VuIHZhbHVlXCIpO1xuICAgIH1cblxuICAgIHJldHVybiByYW5nZShhc3N1bWVkTGVuZ3RoKS5tYXAoKGkpID0+IHRmRm4uZWxlbWVudChzcGxpdCwgaSkpO1xuICB9XG4gIC8qKlxuICAgKiBTaW1pbGFyIHRvIEZuLmVsZW1lbnQsIGJ1dCB3aXRoIGEgc2hvcnRjdXQgaWYgbGlzdCBpcyBub3QgdW5yZXNvbHZlZFxuICAgKlxuICAgKiBUaGUgaW50cmluc2ljIGZ1bmN0aW9uIGBgZWxlbWVudGBgIHJldHVybnMgYSBzaW5nbGUgb2JqZWN0IGZyb20gYSBsaXN0IG9mIG9iamVjdHMgYnkgaW5kZXguXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIG9iamVjdCB0byByZXRyaWV2ZS4gVGhpcyBtdXN0IGJlIGEgdmFsdWUgZnJvbSB6ZXJvIHRvIE4tMSwgd2hlcmUgTiByZXByZXNlbnRzIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGFycmF5LlxuICAgKiBAcGFyYW0gYXJyYXkgVGhlIGxpc3Qgb2Ygb2JqZWN0cyB0byBzZWxlY3QgZnJvbS4gVGhpcyBsaXN0IG11c3Qgbm90IGJlIG51bGwsIG5vciBjYW4gaXQgaGF2ZSBudWxsIGVudHJpZXMuXG4gICAqIEByZXR1cm5zIGEgdG9rZW4gcmVwcmVzZW50ZWQgYXMgYSBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0KGluZGV4OiBudW1iZXIsIGFycmF5OiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgLy8gc2hvcnQtY2lyY3VpdCBpZiBzb3VyY2UgaXMgbm90IGEgdG9rZW5cbiAgICBpZiAoXG4gICAgICAhVG9rZW4uaXNVbnJlc29sdmVkKGluZGV4KSAmJlxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChhcnJheSkgJiZcbiAgICAgICFhcnJheS5zb21lKFRva2VuLmlzVW5yZXNvbHZlZClcbiAgICApIHtcbiAgICAgIHJldHVybiBhcnJheVtpbmRleF07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRmRm4uZWxlbWVudChhcnJheSwgaW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdpdmVuIGFuIHVybCwgcGFyc2UgdGhlIGRvbWFpbiBuYW1lXG4gICAqIEBwYXJhbSB1cmwgdGhlIHVybCB0byBwYXJzZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXJzZURvbWFpbk5hbWUodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5vSHR0cHMgPSBGbi5zZWxlY3QoMSwgRm4uc3BsaXQoXCIvL1wiLCB1cmwpKTtcbiAgICByZXR1cm4gRm4uc2VsZWN0KDAsIEZuLnNwbGl0KFwiL1wiLCBub0h0dHBzKSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGludHJpbnNpYyBmdW5jdGlvbiBgYEZuOjpJbXBvcnRWYWx1ZWBgIHJldHVybnMgdGhlIHZhbHVlIG9mIGFuIG91dHB1dFxuICAgKiBleHBvcnRlZCBieSBhbm90aGVyIHN0YWNrLiBZb3UgdHlwaWNhbGx5IHVzZSB0aGlzIGZ1bmN0aW9uIHRvIGNyZWF0ZVxuICAgKiBjcm9zcy1zdGFjayByZWZlcmVuY2VzLiBJbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUgdGVtcGxhdGUgc25pcHBldHMsIFN0YWNrIEFcbiAgICogZXhwb3J0cyBWUEMgc2VjdXJpdHkgZ3JvdXAgdmFsdWVzIGFuZCBTdGFjayBCIGltcG9ydHMgdGhlbS5cbiAgICogQHBhcmFtIGlkIFRoZSBzdGFjayBvdXRwdXQgdmFsdWUgdGhhdCB5b3Ugd2FudCB0byBpbXBvcnQuXG4gICAqIEByZXR1cm5zIGEgdG9rZW4gcmVwcmVzZW50ZWQgYXMgYSBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW1wb3J0VmFsdWUoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IFRlcnJhZm9ybVZhcmlhYmxlQ29uZmlnID0ge30sXG4gICk6IHN0cmluZyB7XG4gICAgLy8gVE9ETzogVGhpcyBzaG91bGQgYmUgYSB0ZXJyYWZvcm0gcmVtb3RlIHN0YXRlIGRhdGEgc291cmNlIGluc3RlYWRcbiAgICBjb25zdCBpbXBvcnRWYXJpYWJsZSA9IG5ldyBUZXJyYWZvcm1WYXJpYWJsZShzY29wZSwgaWQsIG9wdGlvbnMpO1xuICAgIHJldHVybiBpbXBvcnRWYXJpYWJsZS5zdHJpbmdWYWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaWtlIGBGbi5pbXBvcnRWYWx1ZWAsIGJ1dCBpbXBvcnQgYSBsaXN0IHdpdGggYSBrbm93biBsZW5ndGhcbiAgICpcbiAgICogSWYgeW91IGV4cGxpY2l0bHkgd2FudCBhIGxpc3Qgd2l0aCBhbiB1bmtub3duIGxlbmd0aCwgY2FsbCBgRm4uc3BsaXR2MignLCcsXG4gICAqIEZuLmltcG9ydFZhbHVlKHNjb3BlLCBleHBvcnROYW1lKSlgLiBTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgYEZuLnNwbGl0djJgIHRvIHJlYWRcbiAgICogbW9yZSBhYm91dCB0aGUgbGltaXRhdGlvbnMgb2YgdXNpbmcgbGlzdHMgb2YgdW5rbm93biBsZW5ndGguXG4gICAqXG4gICAqIGBGbi5pbXBvcnRMaXN0VmFsdWUoc2NvcGUsIGV4cG9ydE5hbWUsIGFzc3VtZWRMZW5ndGgpYCBpcyB0aGUgc2FtZSBhc1xuICAgKiBgRm4uc3BsaXQoJywnLCBGbi5pbXBvcnRWYWx1ZShzY29wZSwgZXhwb3J0TmFtZSksIGFzc3VtZWRMZW5ndGgpYCxcbiAgICogYnV0IGVhc2llciB0byByZWFkIGFuZCBpbXBvc3NpYmxlIHRvIGZvcmdldCB0byBwYXNzIGBhc3N1bWVkTGVuZ3RoYC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW1wb3J0TGlzdFZhbHVlKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgc2hhcmVkVmFsdWVUb0ltcG9ydDogc3RyaW5nLFxuICAgIGFzc3VtZWRMZW5ndGg6IG51bWJlcixcbiAgICBkZWxpbWl0ZXIgPSBcIixcIixcbiAgKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBGbi5zcGxpdHYyKFxuICAgICAgZGVsaW1pdGVyLFxuICAgICAgRm4uaW1wb3J0VmFsdWUoc2NvcGUsIHNoYXJlZFZhbHVlVG9JbXBvcnQpLFxuICAgICAgYXNzdW1lZExlbmd0aCxcbiAgICApO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgaW50cmluc2ljIGZ1bmN0aW9uIGBGbjo6TGVuZ3RoYCByZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgd2l0aGluIGFuIGFycmF5XG4gICAqIG9yIGFuIGludHJpbnNpYyBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gYXJyYXkuXG4gICAqXG4gICAqIEBwYXJhbSBhcnJheSBUaGUgYXJyYXkgeW91IHdhbnQgdG8gcmV0dXJuIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgZnJvbVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBsZW4oYXJyYXk6IGFueSk6IG51bWJlciB7XG4gICAgLy8gc2hvcnQtY2lyY3VpdCBpZiBhcnJheSBpcyBub3QgYSB0b2tlblxuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGFycmF5KSkge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGFycmF5KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJGbi5sZW5ndGgoKSBuZWVkcyBhbiBhcnJheVwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheS5sZW5ndGg7XG4gICAgfVxuICAgIHJldHVybiB0ZkZuLmxlbmd0aE9mKGFycmF5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vbGFuZ3VhZ2UvZnVuY3Rpb25zL2pvaW4gam9pbn0gcHJvZHVjZXMgYSBzdHJpbmcgYnkgY29uY2F0ZW5hdGluZyB0b2dldGhlciBhbGwgZWxlbWVudHMgb2YgYSBnaXZlbiBsaXN0IG9mIHN0cmluZ3Mgd2l0aCB0aGUgZ2l2ZW4gZGVsaW1pdGVyLlxuICAgKlxuICAgKiBJZiBhbnkgb2YgdGhlIHZhbHVlcyBhcmUgdW5yZXNvbHZlZCwgdGhlIGludHJpbnNpYyBmdW5jdGlvbiB3aWxsIGJlIHVzZWQuXG4gICAqIGlmIHRoZSBsaXN0IGhhcyBvbmx5IG9uZSBlbGVtZW50LCB0aGUgZWxlbWVudCB3aWxsIGJlIHJldHVybmVkLlxuICAgKiBpZiB0aGUgbGlzdCBoYXMgbW9yZSB0aGFuIG9uZSBlbGVtZW50LCB0aGUgZWxlbWVudHMgd2lsbCBiZSBqb2luZWQgd2l0aCB0aGUgZGVsaW1pdGVyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZGVsaW1pdGVyXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gdmFsdWVzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGpvaW4oZGVsaW1pdGVyOiBzdHJpbmcsIHZhbHVlczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQodmFsdWVzKSkge1xuICAgICAgLy8gVGhpcyBpcyBhIGxpc3QgdG9rZW4sIGRvbid0IHRyeSB0byBkbyBzbWFydCB0aGluZ3Mgd2l0aCBpdC5cbiAgICAgIHJldHVybiB0ZkZuLmpvaW4oZGVsaW1pdGVyLCB2YWx1ZXMpO1xuICAgIH1cbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHZhbHVlc1swXTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlcy5qb2luKGRlbGltaXRlcik7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmFuZ2UobjogbnVtYmVyKTogbnVtYmVyW10ge1xuICBjb25zdCByZXQ6IG51bWJlcltdID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgcmV0LnB1c2goaSk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmEtZnVuYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYS1mdW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0ZBQWdGO0FBRWhGLGlDQUtlO0FBR2Y7O0dBRUc7QUFDSCxNQUFhLEVBQUcsU0FBUSxVQUFJO0lBQzFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0EwQ0c7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUNuQixTQUFpQixFQUNqQixNQUFjLEVBQ2QsYUFBc0I7UUFFdEIseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxhQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLGFBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLGFBQUssQ0FBQyxNQUFNLENBQUMsVUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMxRCxJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLGFBQUssQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBQ0Q7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBYSxFQUFFLEtBQWU7UUFDakQseUNBQXlDO1FBQ3pDLElBQ0UsQ0FBQyxhQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUMxQixDQUFDLGFBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1lBQzFCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFLLENBQUMsWUFBWSxDQUFDLEVBQy9CLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBRUQsT0FBTyxVQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFXO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEQsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FDdkIsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLFVBQW1DLEVBQUU7UUFFckMsb0VBQW9FO1FBQ3BFLE1BQU0sY0FBYyxHQUFHLElBQUkseUJBQWlCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRSxPQUFPLGNBQWMsQ0FBQyxXQUFXLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxNQUFNLENBQUMsZUFBZSxDQUMzQixLQUFnQixFQUNoQixtQkFBMkIsRUFDM0IsYUFBcUIsRUFDckIsU0FBUyxHQUFHLEdBQUc7UUFFZixPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQ2YsU0FBUyxFQUNULEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLG1CQUFtQixDQUFDLEVBQzFDLGFBQWEsQ0FDZCxDQUFDO0lBQ0osQ0FBQztJQUNEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFVO1FBQzFCLHdDQUF3QztRQUN4QyxJQUFJLENBQUMsYUFBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUNoRCxDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3RCLENBQUM7UUFDRCxPQUFPLFVBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFpQixFQUFFLE1BQWdCO1FBQ3BELElBQUksYUFBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQy9CLDhEQUE4RDtZQUM5RCxPQUFPLFVBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoQyxDQUFDOztBQS9LSCxnQkFnTEM7OztBQUVELFNBQVMsS0FBSyxDQUFDLENBQVM7SUFDdEIsTUFBTSxHQUFHLEdBQWEsRUFBRSxDQUFDO0lBQ3pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUMzQixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvY2ZuLWZuLnRzXG5cbmltcG9ydCB7XG4gIFRlcnJhZm9ybVZhcmlhYmxlLFxuICBUZXJyYWZvcm1WYXJpYWJsZUNvbmZpZyxcbiAgVG9rZW4sXG4gIEZuIGFzIHRmRm4sXG59IGZyb20gXCJjZGt0blwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuLyoqXG4gKiBUZXJyYUNvbnN0cnVjdHMgaGVscGVyIGZ1bmN0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIEZuIGV4dGVuZHMgdGZGbiB7XG4gIC8qKlxuICAgKiBTcGxpdCBhIHN0cmluZyB0b2tlbiBpbnRvIGEgdG9rZW4gbGlzdCBvZiBzdHJpbmcgdmFsdWVzLlxuICAgKlxuICAgKiBTcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBzcGxpdHMgd2l0aCBhIGRlbGltaXRlciBzdWNoIGFzICcsJyAoYSBjb21tYSkuXG4gICAqIFJlbmRlcnMgdG8gdGhlIGBzcGxpdGAgaW50cmluc2ljIHRlcnJhZm9ybSBmdW5jdGlvbi5cbiAgICpcbiAgICogTGlzdHMgd2l0aCB1bmtub3duIGxlbmd0aHMgKGRlZmF1bHQpXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICpcbiAgICogU2luY2UgdGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHdvcmsgd2l0aCBkZXBsb3ktdGltZSB2YWx1ZXMsIGlmIGBhc3N1bWVkTGVuZ3RoYFxuICAgKiBpcyBub3QgZ2l2ZW4gdGhlIENESyBjYW5ub3Qga25vdyB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHRpbmcgbGlzdCBhdCBzeW50aGVzaXMgdGltZS5cbiAgICogVGhpcyBicmluZ3MgdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnM6XG4gICAqXG4gICAqIC0gWW91IG11c3QgdXNlIGBGbi5lbGVtZW50KGxpc3QsIGkpYCB0byBwaWNrIGVsZW1lbnRzIG91dCBvZiB0aGUgbGlzdCAoeW91IG11c3Qgbm90IHVzZVxuICAgKiAgIGBsaXN0W2ldYCkuXG4gICAqIC0gWW91IGNhbm5vdCBhZGQgZWxlbWVudHMgdG8gdGhlIGxpc3QsIHJlbW92ZSBlbGVtZW50cyBmcm9tIHRoZSBsaXN0LFxuICAgKiAgIGNvbWJpbmUgdHdvIHN1Y2ggbGlzdHMgdG9nZXRoZXIsIG9yIHRha2UgYSBzbGljZSBvZiB0aGUgbGlzdC5cbiAgICogLSBZb3UgY2Fubm90IHBhc3MgdGhlIGxpc3QgdG8gY29uc3RydWN0cyB0aGF0IGRvIGFueSBvZiB0aGUgYWJvdmUuXG4gICAqXG4gICAqIFRoZSBvbmx5IHZhbGlkIG9wZXJhdGlvbiB3aXRoIHN1Y2ggYSB0b2tlbml6ZWQgbGlzdCBpcyB0byBwYXNzIGl0IHVubW9kaWZpZWQgdG8gYVxuICAgKiBUZXJyYWZvcm0gUmVzb3VyY2UgY29uc3RydWN0LlxuICAgKlxuICAgKiBMaXN0cyB3aXRoIGFzc3VtZWQgbGVuZ3Roc1xuICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKlxuICAgKiBQYXNzIGBhc3N1bWVkTGVuZ3RoYCBpZiB5b3Uga25vdyB0aGUgbGVuZ3RoIG9mIHRoZSBsaXN0IHRoYXQgd2lsbCBiZVxuICAgKiBwcm9kdWNlZCBieSBzcGxpdHRpbmcuIFRoZSBhY3R1YWwgbGlzdCBsZW5ndGggYXQgZGVwbG95IHRpbWUgbWF5IGJlXG4gICAqICpsb25nZXIqIHRoYW4gdGhlIG51bWJlciB5b3UgcGFzcywgYnV0IG5vdCAqc2hvcnRlciouXG4gICAqXG4gICAqIFRoZSByZXR1cm5lZCBsaXN0IHdpbGwgbG9vayBsaWtlOlxuICAgKlxuICAgKiBgYGBcbiAgICogW0ZuLmVsZW1lbnQoc3BsaXQsIDApLCBGbi5lbGVtZW50KHNwbGl0LCAxKSwgRm4uZWxlbWVudChzcGxpdCwgMiksIC4uLl1cbiAgICogYGBgXG4gICAqXG4gICAqIFRoZSByZXN0cmljdGlvbnMgZnJvbSB0aGUgc2VjdGlvbiBcIkxpc3RzIHdpdGggdW5rbm93biBsZW5ndGhzXCIgd2lsbCBub3cgYmUgbGlmdGVkLFxuICAgKiBhdCB0aGUgZXhwZW5zZSBvZiBoYXZpbmcgdG8ga25vdyBhbmQgZml4IHRoZSBsZW5ndGggb2YgdGhlIGxpc3QuXG4gICAqXG4gICAqIEBwYXJhbSBkZWxpbWl0ZXIgQSBzdHJpbmcgdmFsdWUgdGhhdCBkZXRlcm1pbmVzIHdoZXJlIHRoZSBzb3VyY2Ugc3RyaW5nIGlzIGRpdmlkZWQuXG4gICAqIEBwYXJhbSBzb3VyY2UgVGhlIHN0cmluZyB2YWx1ZSB0aGF0IHlvdSB3YW50IHRvIHNwbGl0LlxuICAgKiBAcGFyYW0gYXNzdW1lZExlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBsaXN0IHRoYXQgd2lsbCBiZSBwcm9kdWNlZCBieSBzcGxpdHRpbmdcbiAgICogQHJldHVybnMgYSB0b2tlbiByZXByZXNlbnRlZCBhcyBhIHN0cmluZyBhcnJheVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzcGxpdHYyKFxuICAgIGRlbGltaXRlcjogc3RyaW5nLFxuICAgIHNvdXJjZTogc3RyaW5nLFxuICAgIGFzc3VtZWRMZW5ndGg/OiBudW1iZXIsXG4gICk6IHN0cmluZ1tdIHtcbiAgICAvLyBzaG9ydC1jaXJjdWl0IGlmIHNvdXJjZSBpcyBub3QgYSB0b2tlblxuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKHNvdXJjZSkpIHtcbiAgICAgIHJldHVybiBzb3VyY2Uuc3BsaXQoZGVsaW1pdGVyKTtcbiAgICB9XG5cbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKGRlbGltaXRlcikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkZuLnNwbGl0djI6ICdkZWxpbWl0ZXInIG1heSBub3QgYmUgYSB0b2tlbiB2YWx1ZVwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBzcGxpdCA9IFRva2VuLmFzTGlzdCh0ZkZuLnNwbGl0KGRlbGltaXRlciwgc291cmNlKSk7XG4gICAgaWYgKGFzc3VtZWRMZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHNwbGl0O1xuICAgIH1cblxuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoYXNzdW1lZExlbmd0aCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkZuLnNwbGl0OiAnYXNzdW1lZExlbmd0aCcgbWF5IG5vdCBiZSBhIHRva2VuIHZhbHVlXCIpO1xuICAgIH1cblxuICAgIHJldHVybiByYW5nZShhc3N1bWVkTGVuZ3RoKS5tYXAoKGkpID0+IHRmRm4uZWxlbWVudChzcGxpdCwgaSkpO1xuICB9XG4gIC8qKlxuICAgKiBTaW1pbGFyIHRvIEZuLmVsZW1lbnQsIGJ1dCB3aXRoIGEgc2hvcnRjdXQgaWYgbGlzdCBpcyBub3QgdW5yZXNvbHZlZFxuICAgKlxuICAgKiBUaGUgaW50cmluc2ljIGZ1bmN0aW9uIGBgZWxlbWVudGBgIHJldHVybnMgYSBzaW5nbGUgb2JqZWN0IGZyb20gYSBsaXN0IG9mIG9iamVjdHMgYnkgaW5kZXguXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIG9iamVjdCB0byByZXRyaWV2ZS4gVGhpcyBtdXN0IGJlIGEgdmFsdWUgZnJvbSB6ZXJvIHRvIE4tMSwgd2hlcmUgTiByZXByZXNlbnRzIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGFycmF5LlxuICAgKiBAcGFyYW0gYXJyYXkgVGhlIGxpc3Qgb2Ygb2JqZWN0cyB0byBzZWxlY3QgZnJvbS4gVGhpcyBsaXN0IG11c3Qgbm90IGJlIG51bGwsIG5vciBjYW4gaXQgaGF2ZSBudWxsIGVudHJpZXMuXG4gICAqIEByZXR1cm5zIGEgdG9rZW4gcmVwcmVzZW50ZWQgYXMgYSBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0KGluZGV4OiBudW1iZXIsIGFycmF5OiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgLy8gc2hvcnQtY2lyY3VpdCBpZiBzb3VyY2UgaXMgbm90IGEgdG9rZW5cbiAgICBpZiAoXG4gICAgICAhVG9rZW4uaXNVbnJlc29sdmVkKGluZGV4KSAmJlxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChhcnJheSkgJiZcbiAgICAgICFhcnJheS5zb21lKFRva2VuLmlzVW5yZXNvbHZlZClcbiAgICApIHtcbiAgICAgIHJldHVybiBhcnJheVtpbmRleF07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRmRm4uZWxlbWVudChhcnJheSwgaW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdpdmVuIGFuIHVybCwgcGFyc2UgdGhlIGRvbWFpbiBuYW1lXG4gICAqIEBwYXJhbSB1cmwgdGhlIHVybCB0byBwYXJzZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXJzZURvbWFpbk5hbWUodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5vSHR0cHMgPSBGbi5zZWxlY3QoMSwgRm4uc3BsaXQoXCIvL1wiLCB1cmwpKTtcbiAgICByZXR1cm4gRm4uc2VsZWN0KDAsIEZuLnNwbGl0KFwiL1wiLCBub0h0dHBzKSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGludHJpbnNpYyBmdW5jdGlvbiBgYEZuOjpJbXBvcnRWYWx1ZWBgIHJldHVybnMgdGhlIHZhbHVlIG9mIGFuIG91dHB1dFxuICAgKiBleHBvcnRlZCBieSBhbm90aGVyIHN0YWNrLiBZb3UgdHlwaWNhbGx5IHVzZSB0aGlzIGZ1bmN0aW9uIHRvIGNyZWF0ZVxuICAgKiBjcm9zcy1zdGFjayByZWZlcmVuY2VzLiBJbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUgdGVtcGxhdGUgc25pcHBldHMsIFN0YWNrIEFcbiAgICogZXhwb3J0cyBWUEMgc2VjdXJpdHkgZ3JvdXAgdmFsdWVzIGFuZCBTdGFjayBCIGltcG9ydHMgdGhlbS5cbiAgICogQHBhcmFtIGlkIFRoZSBzdGFjayBvdXRwdXQgdmFsdWUgdGhhdCB5b3Ugd2FudCB0byBpbXBvcnQuXG4gICAqIEByZXR1cm5zIGEgdG9rZW4gcmVwcmVzZW50ZWQgYXMgYSBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW1wb3J0VmFsdWUoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IFRlcnJhZm9ybVZhcmlhYmxlQ29uZmlnID0ge30sXG4gICk6IHN0cmluZyB7XG4gICAgLy8gVE9ETzogVGhpcyBzaG91bGQgYmUgYSB0ZXJyYWZvcm0gcmVtb3RlIHN0YXRlIGRhdGEgc291cmNlIGluc3RlYWRcbiAgICBjb25zdCBpbXBvcnRWYXJpYWJsZSA9IG5ldyBUZXJyYWZvcm1WYXJpYWJsZShzY29wZSwgaWQsIG9wdGlvbnMpO1xuICAgIHJldHVybiBpbXBvcnRWYXJpYWJsZS5zdHJpbmdWYWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaWtlIGBGbi5pbXBvcnRWYWx1ZWAsIGJ1dCBpbXBvcnQgYSBsaXN0IHdpdGggYSBrbm93biBsZW5ndGhcbiAgICpcbiAgICogSWYgeW91IGV4cGxpY2l0bHkgd2FudCBhIGxpc3Qgd2l0aCBhbiB1bmtub3duIGxlbmd0aCwgY2FsbCBgRm4uc3BsaXR2MignLCcsXG4gICAqIEZuLmltcG9ydFZhbHVlKHNjb3BlLCBleHBvcnROYW1lKSlgLiBTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgYEZuLnNwbGl0djJgIHRvIHJlYWRcbiAgICogbW9yZSBhYm91dCB0aGUgbGltaXRhdGlvbnMgb2YgdXNpbmcgbGlzdHMgb2YgdW5rbm93biBsZW5ndGguXG4gICAqXG4gICAqIGBGbi5pbXBvcnRMaXN0VmFsdWUoc2NvcGUsIGV4cG9ydE5hbWUsIGFzc3VtZWRMZW5ndGgpYCBpcyB0aGUgc2FtZSBhc1xuICAgKiBgRm4uc3BsaXQoJywnLCBGbi5pbXBvcnRWYWx1ZShzY29wZSwgZXhwb3J0TmFtZSksIGFzc3VtZWRMZW5ndGgpYCxcbiAgICogYnV0IGVhc2llciB0byByZWFkIGFuZCBpbXBvc3NpYmxlIHRvIGZvcmdldCB0byBwYXNzIGBhc3N1bWVkTGVuZ3RoYC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW1wb3J0TGlzdFZhbHVlKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgc2hhcmVkVmFsdWVUb0ltcG9ydDogc3RyaW5nLFxuICAgIGFzc3VtZWRMZW5ndGg6IG51bWJlcixcbiAgICBkZWxpbWl0ZXIgPSBcIixcIixcbiAgKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBGbi5zcGxpdHYyKFxuICAgICAgZGVsaW1pdGVyLFxuICAgICAgRm4uaW1wb3J0VmFsdWUoc2NvcGUsIHNoYXJlZFZhbHVlVG9JbXBvcnQpLFxuICAgICAgYXNzdW1lZExlbmd0aCxcbiAgICApO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgaW50cmluc2ljIGZ1bmN0aW9uIGBGbjo6TGVuZ3RoYCByZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgd2l0aGluIGFuIGFycmF5XG4gICAqIG9yIGFuIGludHJpbnNpYyBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gYXJyYXkuXG4gICAqXG4gICAqIEBwYXJhbSBhcnJheSBUaGUgYXJyYXkgeW91IHdhbnQgdG8gcmV0dXJuIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgZnJvbVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBsZW4oYXJyYXk6IGFueSk6IG51bWJlciB7XG4gICAgLy8gc2hvcnQtY2lyY3VpdCBpZiBhcnJheSBpcyBub3QgYSB0b2tlblxuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGFycmF5KSkge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGFycmF5KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJGbi5sZW5ndGgoKSBuZWVkcyBhbiBhcnJheVwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheS5sZW5ndGg7XG4gICAgfVxuICAgIHJldHVybiB0ZkZuLmxlbmd0aE9mKGFycmF5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vbGFuZ3VhZ2UvZnVuY3Rpb25zL2pvaW4gam9pbn0gcHJvZHVjZXMgYSBzdHJpbmcgYnkgY29uY2F0ZW5hdGluZyB0b2dldGhlciBhbGwgZWxlbWVudHMgb2YgYSBnaXZlbiBsaXN0IG9mIHN0cmluZ3Mgd2l0aCB0aGUgZ2l2ZW4gZGVsaW1pdGVyLlxuICAgKlxuICAgKiBJZiBhbnkgb2YgdGhlIHZhbHVlcyBhcmUgdW5yZXNvbHZlZCwgdGhlIGludHJpbnNpYyBmdW5jdGlvbiB3aWxsIGJlIHVzZWQuXG4gICAqIGlmIHRoZSBsaXN0IGhhcyBvbmx5IG9uZSBlbGVtZW50LCB0aGUgZWxlbWVudCB3aWxsIGJlIHJldHVybmVkLlxuICAgKiBpZiB0aGUgbGlzdCBoYXMgbW9yZSB0aGFuIG9uZSBlbGVtZW50LCB0aGUgZWxlbWVudHMgd2lsbCBiZSBqb2luZWQgd2l0aCB0aGUgZGVsaW1pdGVyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZGVsaW1pdGVyXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gdmFsdWVzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGpvaW4oZGVsaW1pdGVyOiBzdHJpbmcsIHZhbHVlczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQodmFsdWVzKSkge1xuICAgICAgLy8gVGhpcyBpcyBhIGxpc3QgdG9rZW4sIGRvbid0IHRyeSB0byBkbyBzbWFydCB0aGluZ3Mgd2l0aCBpdC5cbiAgICAgIHJldHVybiB0ZkZuLmpvaW4oZGVsaW1pdGVyLCB2YWx1ZXMpO1xuICAgIH1cbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHZhbHVlc1swXTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlcy5qb2luKGRlbGltaXRlcik7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmFuZ2UobjogbnVtYmVyKTogbnVtYmVyW10ge1xuICBjb25zdCByZXQ6IG51bWJlcltdID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgcmV0LnB1c2goaSk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==
|
package/lib/time-zone.js
CHANGED
|
@@ -29,7 +29,7 @@ class TimeZone {
|
|
|
29
29
|
}
|
|
30
30
|
exports.TimeZone = TimeZone;
|
|
31
31
|
_a = JSII_RTTI_SYMBOL_1;
|
|
32
|
-
TimeZone[_a] = { fqn: "terraconstructs.TimeZone", version: "0.2.
|
|
32
|
+
TimeZone[_a] = { fqn: "terraconstructs.TimeZone", version: "0.2.6" };
|
|
33
33
|
/** IANA Time Zone database entry for Africa/Abidjan. UTC offset +00:00/+00:00. */
|
|
34
34
|
TimeZone.AFRICA_ABIDJAN = new TimeZone("Africa/Abidjan");
|
|
35
35
|
/** IANA Time Zone database entry for Africa/Algiers. UTC offset +01:00/+01:00. */
|
package/lib/token.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.TokenComparison = void 0;
|
|
5
5
|
exports.tokenCompareStrings = tokenCompareStrings;
|
|
6
6
|
exports.withResolved = withResolved;
|
|
7
|
-
const
|
|
7
|
+
const cdktn_1 = require("cdktn");
|
|
8
8
|
/**
|
|
9
9
|
* An enum-like class that represents the result of comparing two Tokens.
|
|
10
10
|
* The return type of `Token.compareStrings`.
|
|
@@ -29,8 +29,8 @@ TokenComparison.ONE_UNRESOLVED = new TokenComparison();
|
|
|
29
29
|
TokenComparison.BOTH_UNRESOLVED = new TokenComparison();
|
|
30
30
|
/** Compare two strings that might contain Tokens with each other. */
|
|
31
31
|
function tokenCompareStrings(possibleToken1, possibleToken2) {
|
|
32
|
-
const firstIsUnresolved =
|
|
33
|
-
const secondIsUnresolved =
|
|
32
|
+
const firstIsUnresolved = cdktn_1.Token.isUnresolved(possibleToken1);
|
|
33
|
+
const secondIsUnresolved = cdktn_1.Token.isUnresolved(possibleToken2);
|
|
34
34
|
if (firstIsUnresolved && secondIsUnresolved) {
|
|
35
35
|
return TokenComparison.BOTH_UNRESOLVED;
|
|
36
36
|
}
|
|
@@ -46,9 +46,9 @@ function withResolved(...args) {
|
|
|
46
46
|
return;
|
|
47
47
|
}
|
|
48
48
|
const argArray = args.slice(0, args.length - 1);
|
|
49
|
-
if (argArray.some(
|
|
49
|
+
if (argArray.some(cdktn_1.Token.isUnresolved)) {
|
|
50
50
|
return;
|
|
51
51
|
}
|
|
52
52
|
args[args.length - 1].apply(arguments, argArray);
|
|
53
53
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHNGQUFzRjs7O0FBK0J0RixrREFpQkM7QUFnQkQsb0NBU0M7QUF2RUQsaUNBQThCO0FBRTlCOzs7R0FHRztBQUNILE1BQWEsZUFBZTtJQW1CMUIsZ0JBQXVCLENBQUM7O0FBbkIxQiwwQ0FvQkM7QUFuQkM7OztHQUdHO0FBQ29CLG9CQUFJLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztBQUVwRDs7O0dBR0c7QUFDb0IseUJBQVMsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0FBRXpELDJEQUEyRDtBQUNwQyw4QkFBYyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7QUFFOUQsNkNBQTZDO0FBQ3RCLCtCQUFlLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztBQUtqRSxxRUFBcUU7QUFDckUsU0FBZ0IsbUJBQW1CLENBQ2pDLGNBQXNCLEVBQ3RCLGNBQXNCO0lBRXRCLE1BQU0saUJBQWlCLEdBQUcsYUFBSyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM3RCxNQUFNLGtCQUFrQixHQUFHLGFBQUssQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFOUQsSUFBSSxpQkFBaUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQzVDLE9BQU8sZUFBZSxDQUFDLGVBQWUsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsSUFBSSxpQkFBaUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQzVDLE9BQU8sZUFBZSxDQUFDLGNBQWMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsT0FBTyxjQUFjLEtBQUssY0FBYztRQUN0QyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUk7UUFDdEIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUM7QUFDaEMsQ0FBQztBQWdCRCxTQUFnQixZQUFZLENBQUMsR0FBRyxJQUFXO0lBQ3pDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNwQixPQUFPO0lBQ1QsQ0FBQztJQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEQsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE9BQU87SUFDVCxDQUFDO0lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTUwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvdG9rZW4udHNcblxuaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiY2RrdG5cIjtcblxuLyoqXG4gKiBBbiBlbnVtLWxpa2UgY2xhc3MgdGhhdCByZXByZXNlbnRzIHRoZSByZXN1bHQgb2YgY29tcGFyaW5nIHR3byBUb2tlbnMuXG4gKiBUaGUgcmV0dXJuIHR5cGUgb2YgYFRva2VuLmNvbXBhcmVTdHJpbmdzYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFRva2VuQ29tcGFyaXNvbiB7XG4gIC8qKlxuICAgKiBUaGlzIG1lYW5zIHdlJ3JlIGNlcnRhaW4gdGhlIHR3byBjb21wb25lbnRzIGFyZSBOT1RcbiAgICogVG9rZW5zLCBhbmQgaWRlbnRpY2FsLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTQU1FID0gbmV3IFRva2VuQ29tcGFyaXNvbigpO1xuXG4gIC8qKlxuICAgKiBUaGlzIG1lYW5zIHdlJ3JlIGNlcnRhaW4gdGhlIHR3byBjb21wb25lbnRzIGFyZSBOT1RcbiAgICogVG9rZW5zLCBhbmQgZGlmZmVyZW50LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBESUZGRVJFTlQgPSBuZXcgVG9rZW5Db21wYXJpc29uKCk7XG5cbiAgLyoqIFRoaXMgbWVhbnMgZXhhY3RseSBvbmUgb2YgdGhlIGNvbXBvbmVudHMgaXMgYSBUb2tlbi4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPTkVfVU5SRVNPTFZFRCA9IG5ldyBUb2tlbkNvbXBhcmlzb24oKTtcblxuICAvKiogVGhpcyBtZWFucyBib3RoIGNvbXBvbmVudHMgYXJlIFRva2Vucy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCT1RIX1VOUkVTT0xWRUQgPSBuZXcgVG9rZW5Db21wYXJpc29uKCk7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG59XG5cbi8qKiBDb21wYXJlIHR3byBzdHJpbmdzIHRoYXQgbWlnaHQgY29udGFpbiBUb2tlbnMgd2l0aCBlYWNoIG90aGVyLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRva2VuQ29tcGFyZVN0cmluZ3MoXG4gIHBvc3NpYmxlVG9rZW4xOiBzdHJpbmcsXG4gIHBvc3NpYmxlVG9rZW4yOiBzdHJpbmcsXG4pOiBUb2tlbkNvbXBhcmlzb24ge1xuICBjb25zdCBmaXJzdElzVW5yZXNvbHZlZCA9IFRva2VuLmlzVW5yZXNvbHZlZChwb3NzaWJsZVRva2VuMSk7XG4gIGNvbnN0IHNlY29uZElzVW5yZXNvbHZlZCA9IFRva2VuLmlzVW5yZXNvbHZlZChwb3NzaWJsZVRva2VuMik7XG5cbiAgaWYgKGZpcnN0SXNVbnJlc29sdmVkICYmIHNlY29uZElzVW5yZXNvbHZlZCkge1xuICAgIHJldHVybiBUb2tlbkNvbXBhcmlzb24uQk9USF9VTlJFU09MVkVEO1xuICB9XG4gIGlmIChmaXJzdElzVW5yZXNvbHZlZCB8fCBzZWNvbmRJc1VucmVzb2x2ZWQpIHtcbiAgICByZXR1cm4gVG9rZW5Db21wYXJpc29uLk9ORV9VTlJFU09MVkVEO1xuICB9XG5cbiAgcmV0dXJuIHBvc3NpYmxlVG9rZW4xID09PSBwb3NzaWJsZVRva2VuMlxuICAgID8gVG9rZW5Db21wYXJpc29uLlNBTUVcbiAgICA6IFRva2VuQ29tcGFyaXNvbi5ESUZGRVJFTlQ7XG59XG5cbi8qKlxuICogQ2FsbCB0aGUgZ2l2ZW4gZnVuY3Rpb24gb25seSBpZiBhbGwgZ2l2ZW4gdmFsdWVzIGFyZSByZXNvbHZlZFxuICpcbiAqIEV4cG9ydGVkIGFzIGEgZnVuY3Rpb24gc2luY2UgaXQgd2lsbCBiZSB1c2VkIGJ5IFR5cGVTY3JpcHQgbW9kdWxlcywgYnV0XG4gKiBjYW4ndCBiZSBleHBvc2VkIHZpYSBKU0lJIGJlY2F1c2Ugb2YgdGhlIGdlbmVyaWNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aFJlc29sdmVkPEE+KGE6IEEsIGZuOiAoYTogQSkgPT4gdm9pZCk6IHZvaWQ7XG5leHBvcnQgZnVuY3Rpb24gd2l0aFJlc29sdmVkPEEsIEI+KGE6IEEsIGI6IEIsIGZuOiAoYTogQSwgYjogQikgPT4gdm9pZCk6IHZvaWQ7XG5leHBvcnQgZnVuY3Rpb24gd2l0aFJlc29sdmVkPEEsIEIsIEM+KFxuICBhOiBBLFxuICBiOiBCLFxuICBjOiBDLFxuICBmbjogKGE6IEEsIGI6IEIsIGM6IEMpID0+IHZvaWQsXG4pOiB2b2lkO1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhSZXNvbHZlZCguLi5hcmdzOiBhbnlbXSkge1xuICBpZiAoYXJncy5sZW5ndGggPCAyKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGFyZ0FycmF5ID0gYXJncy5zbGljZSgwLCBhcmdzLmxlbmd0aCAtIDEpO1xuICBpZiAoYXJnQXJyYXkuc29tZShUb2tlbi5pc1VucmVzb2x2ZWQpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGFyZ3NbYXJncy5sZW5ndGggLSAxXS5hcHBseShhcmd1bWVudHMsIGFyZ0FycmF5KTtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -12,12 +12,12 @@
|
|
|
12
12
|
"devDependencies": {
|
|
13
13
|
"@aws-cdk/cloud-assembly-schema": "49.4.0",
|
|
14
14
|
"@aws-cdk/region-info": "2.233.0",
|
|
15
|
-
"@
|
|
16
|
-
"@
|
|
17
|
-
"@
|
|
18
|
-
"@
|
|
19
|
-
"@
|
|
20
|
-
"@
|
|
15
|
+
"@cdktn/provider-archive": "13.1.0",
|
|
16
|
+
"@cdktn/provider-aws": "24.8.0",
|
|
17
|
+
"@cdktn/provider-cloudinit": "13.1.0",
|
|
18
|
+
"@cdktn/provider-docker": "15.3.0",
|
|
19
|
+
"@cdktn/provider-time": "13.1.0",
|
|
20
|
+
"@cdktn/provider-tls": "13.1.0",
|
|
21
21
|
"@jsii/spec": "^1.102.0",
|
|
22
22
|
"@mrgrain/jsii-struct-builder": "^0.7.64",
|
|
23
23
|
"@types/jest": "^29.5.14",
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
"@types/node": "ts5.9",
|
|
26
26
|
"@typescript-eslint/eslint-plugin": "^8",
|
|
27
27
|
"@typescript-eslint/parser": "^8",
|
|
28
|
-
"
|
|
28
|
+
"cdktn": "0.23.0",
|
|
29
29
|
"commit-and-tag-version": "^12",
|
|
30
|
-
"constructs": "10.
|
|
30
|
+
"constructs": "10.6.0",
|
|
31
31
|
"delay": "^5.0.0",
|
|
32
32
|
"eslint": "^9",
|
|
33
33
|
"eslint-config-prettier": "^9.1.2",
|
|
@@ -50,14 +50,14 @@
|
|
|
50
50
|
"peerDependencies": {
|
|
51
51
|
"@aws-cdk/cloud-assembly-schema": "^49.4.0",
|
|
52
52
|
"@aws-cdk/region-info": "^2.233.0",
|
|
53
|
-
"@
|
|
54
|
-
"@
|
|
55
|
-
"@
|
|
56
|
-
"@
|
|
57
|
-
"@
|
|
58
|
-
"@
|
|
59
|
-
"
|
|
60
|
-
"constructs": "^10.
|
|
53
|
+
"@cdktn/provider-archive": "^13.1.0",
|
|
54
|
+
"@cdktn/provider-aws": "^24.8.0",
|
|
55
|
+
"@cdktn/provider-cloudinit": "^13.1.0",
|
|
56
|
+
"@cdktn/provider-docker": "^15.3.0",
|
|
57
|
+
"@cdktn/provider-time": "^13.1.0",
|
|
58
|
+
"@cdktn/provider-tls": "^13.1.0",
|
|
59
|
+
"cdktn": "^0.23.0",
|
|
60
|
+
"constructs": "^10.6.0"
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
63
|
"@balena/dockerignore": "^1.0.2",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"publishConfig": {
|
|
87
87
|
"access": "public"
|
|
88
88
|
},
|
|
89
|
-
"version": "0.2.
|
|
89
|
+
"version": "0.2.6",
|
|
90
90
|
"jest": {
|
|
91
91
|
"coverageProvider": "v8",
|
|
92
92
|
"setupFilesAfterEnv": [
|
package/setup.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
1
|
+
const cdktn = require("cdktn");
|
|
2
|
+
cdktn.Testing.setupJest();
|