terraconstructs 0.0.8
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/.envrc +5 -0
- package/.jsii +79780 -0
- package/.mise.toml +8 -0
- package/.nvmrc +1 -0
- package/.terraform-version +1 -0
- package/.terraform.d/plugin-cache/.gitignore +5 -0
- package/LICENSE +674 -0
- package/NOTICE.txt +12 -0
- package/README.md +42 -0
- package/bun.lockb +0 -0
- package/go.mod +158 -0
- package/go.sum +1206 -0
- package/lib/aws/arn.d.ts +187 -0
- package/lib/aws/arn.js +383 -0
- package/lib/aws/aws-construct.d.ts +76 -0
- package/lib/aws/aws-construct.js +38 -0
- package/lib/aws/aws-stack.d.ts +201 -0
- package/lib/aws/aws-stack.js +303 -0
- package/lib/aws/cloudwatch/actions/ec2.d.ts +35 -0
- package/lib/aws/cloudwatch/actions/ec2.js +48 -0
- package/lib/aws/cloudwatch/actions/index.d.ts +2 -0
- package/lib/aws/cloudwatch/actions/index.js +24 -0
- package/lib/aws/cloudwatch/actions/lambda.d.ts +16 -0
- package/lib/aws/cloudwatch/actions/lambda.js +48 -0
- package/lib/aws/cloudwatch/alarm-action.d.ts +23 -0
- package/lib/aws/cloudwatch/alarm-action.js +4 -0
- package/lib/aws/cloudwatch/alarm-base.d.ts +84 -0
- package/lib/aws/cloudwatch/alarm-base.js +64 -0
- package/lib/aws/cloudwatch/alarm-rule.d.ts +61 -0
- package/lib/aws/cloudwatch/alarm-rule.js +116 -0
- package/lib/aws/cloudwatch/alarm-status-widget.d.ts +77 -0
- package/lib/aws/cloudwatch/alarm-status-widget.js +62 -0
- package/lib/aws/cloudwatch/alarm.d.ts +158 -0
- package/lib/aws/cloudwatch/alarm.js +410 -0
- package/lib/aws/cloudwatch/composite-alarm.d.ts +88 -0
- package/lib/aws/cloudwatch/composite-alarm.js +98 -0
- package/lib/aws/cloudwatch/dashboard.d.ts +137 -0
- package/lib/aws/cloudwatch/dashboard.js +141 -0
- package/lib/aws/cloudwatch/data-protection-policy.d.ts +184 -0
- package/lib/aws/cloudwatch/data-protection-policy.js +246 -0
- package/lib/aws/cloudwatch/graph.d.ts +792 -0
- package/lib/aws/cloudwatch/graph.js +537 -0
- package/lib/aws/cloudwatch/index.d.ts +26 -0
- package/lib/aws/cloudwatch/index.js +49 -0
- package/lib/aws/cloudwatch/layout.d.ts +89 -0
- package/lib/aws/cloudwatch/layout.js +147 -0
- package/lib/aws/cloudwatch/log-destinations/index.d.ts +2 -0
- package/lib/aws/cloudwatch/log-destinations/index.js +20 -0
- package/lib/aws/cloudwatch/log-destinations/kinesis.d.ts +29 -0
- package/lib/aws/cloudwatch/log-destinations/kinesis.js +52 -0
- package/lib/aws/cloudwatch/log-destinations/lambda.d.ts +22 -0
- package/lib/aws/cloudwatch/log-destinations/lambda.js +46 -0
- package/lib/aws/cloudwatch/log-group.d.ts +453 -0
- package/lib/aws/cloudwatch/log-group.js +350 -0
- package/lib/aws/cloudwatch/log-query.d.ts +91 -0
- package/lib/aws/cloudwatch/log-query.js +85 -0
- package/lib/aws/cloudwatch/log-stream.d.ts +57 -0
- package/lib/aws/cloudwatch/log-stream.js +57 -0
- package/lib/aws/cloudwatch/metric-filter.d.ts +30 -0
- package/lib/aws/cloudwatch/metric-filter.js +69 -0
- package/lib/aws/cloudwatch/metric-types.d.ts +407 -0
- package/lib/aws/cloudwatch/metric-types.js +151 -0
- package/lib/aws/cloudwatch/metric.d.ts +492 -0
- package/lib/aws/cloudwatch/metric.js +493 -0
- package/lib/aws/cloudwatch/pattern.d.ts +195 -0
- package/lib/aws/cloudwatch/pattern.js +412 -0
- package/lib/aws/cloudwatch/policy.d.ts +43 -0
- package/lib/aws/cloudwatch/policy.js +50 -0
- package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.d.ts +14 -0
- package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.js +37 -0
- package/lib/aws/cloudwatch/private/env-tokens.d.ts +8 -0
- package/lib/aws/cloudwatch/private/env-tokens.js +48 -0
- package/lib/aws/cloudwatch/private/metric-util.d.ts +60 -0
- package/lib/aws/cloudwatch/private/metric-util.js +132 -0
- package/lib/aws/cloudwatch/private/object.d.ts +1 -0
- package/lib/aws/cloudwatch/private/object.js +18 -0
- package/lib/aws/cloudwatch/private/rendering.d.ts +60 -0
- package/lib/aws/cloudwatch/private/rendering.js +181 -0
- package/lib/aws/cloudwatch/private/statistic.d.ts +51 -0
- package/lib/aws/cloudwatch/private/statistic.js +176 -0
- package/lib/aws/cloudwatch/query-definition.d.ts +150 -0
- package/lib/aws/cloudwatch/query-definition.js +114 -0
- package/lib/aws/cloudwatch/stats.d.ts +150 -0
- package/lib/aws/cloudwatch/stats.js +207 -0
- package/lib/aws/cloudwatch/subscription-filter.d.ts +75 -0
- package/lib/aws/cloudwatch/subscription-filter.js +51 -0
- package/lib/aws/cloudwatch/text.d.ts +52 -0
- package/lib/aws/cloudwatch/text.js +53 -0
- package/lib/aws/cloudwatch/variable.d.ts +156 -0
- package/lib/aws/cloudwatch/variable.js +156 -0
- package/lib/aws/cloudwatch/widget.d.ts +62 -0
- package/lib/aws/cloudwatch/widget.js +45 -0
- package/lib/aws/compute/activity.d.ts +81 -0
- package/lib/aws/compute/activity.js +132 -0
- package/lib/aws/compute/architecture.d.ts +33 -0
- package/lib/aws/compute/architecture.js +42 -0
- package/lib/aws/compute/chain.d.ts +52 -0
- package/lib/aws/compute/chain.js +68 -0
- package/lib/aws/compute/condition.d.ts +202 -0
- package/lib/aws/compute/condition.js +409 -0
- package/lib/aws/compute/event-invoke-config.d.ts +74 -0
- package/lib/aws/compute/event-invoke-config.js +63 -0
- package/lib/aws/compute/event-source-filter.d.ts +64 -0
- package/lib/aws/compute/event-source-filter.js +86 -0
- package/lib/aws/compute/event-source-mapping.d.ts +310 -0
- package/lib/aws/compute/event-source-mapping.js +267 -0
- package/lib/aws/compute/event-sources/index.d.ts +4 -0
- package/lib/aws/compute/event-sources/index.js +28 -0
- package/lib/aws/compute/event-sources/s3-onfailure-destination.d.ts +13 -0
- package/lib/aws/compute/event-sources/s3-onfailure-destination.js +26 -0
- package/lib/aws/compute/event-sources/s3.d.ts +24 -0
- package/lib/aws/compute/event-sources/s3.js +25 -0
- package/lib/aws/compute/event-sources/sqs-dlq.d.ts +13 -0
- package/lib/aws/compute/event-sources/sqs-dlq.js +26 -0
- package/lib/aws/compute/event-sources/sqs.d.ts +75 -0
- package/lib/aws/compute/event-sources/sqs.js +84 -0
- package/lib/aws/compute/fields.d.ts +367 -0
- package/lib/aws/compute/fields.js +546 -0
- package/lib/aws/compute/function-alias.d.ts +148 -0
- package/lib/aws/compute/function-alias.js +176 -0
- package/lib/aws/compute/function-base.d.ts +314 -0
- package/lib/aws/compute/function-base.js +421 -0
- package/lib/aws/compute/function-destination.d.ts +42 -0
- package/lib/aws/compute/function-destination.js +18 -0
- package/lib/aws/compute/function-destinations/event-bridge.d.ts +19 -0
- package/lib/aws/compute/function-destinations/event-bridge.js +46 -0
- package/lib/aws/compute/function-destinations/function.d.ts +34 -0
- package/lib/aws/compute/function-destinations/function.js +55 -0
- package/lib/aws/compute/function-destinations/index.d.ts +3 -0
- package/lib/aws/compute/function-destinations/index.js +22 -0
- package/lib/aws/compute/function-destinations/sqs.d.ts +14 -0
- package/lib/aws/compute/function-destinations/sqs.js +27 -0
- package/lib/aws/compute/function-nodejs.d.ts +55 -0
- package/lib/aws/compute/function-nodejs.js +70 -0
- package/lib/aws/compute/function-permission.d.ts +83 -0
- package/lib/aws/compute/function-permission.js +3 -0
- package/lib/aws/compute/function-url.d.ts +210 -0
- package/lib/aws/compute/function-url.js +148 -0
- package/lib/aws/compute/function-vpc-config.generated.d.ts +36 -0
- package/lib/aws/compute/function-vpc-config.generated.js +3 -0
- package/lib/aws/compute/function.d.ts +492 -0
- package/lib/aws/compute/function.js +692 -0
- package/lib/aws/compute/index.d.ts +42 -0
- package/lib/aws/compute/index.js +64 -0
- package/lib/aws/compute/private/intrinstics.d.ts +86 -0
- package/lib/aws/compute/private/intrinstics.js +220 -0
- package/lib/aws/compute/private/json-path.d.ts +57 -0
- package/lib/aws/compute/private/json-path.js +351 -0
- package/lib/aws/compute/private/util.d.ts +1 -0
- package/lib/aws/compute/private/util.js +38 -0
- package/lib/aws/compute/state-graph.d.ts +100 -0
- package/lib/aws/compute/state-graph.js +177 -0
- package/lib/aws/compute/state-machine-fragment.d.ts +61 -0
- package/lib/aws/compute/state-machine-fragment.js +56 -0
- package/lib/aws/compute/state-machine.d.ts +323 -0
- package/lib/aws/compute/state-machine.js +392 -0
- package/lib/aws/compute/states/choice.d.ts +94 -0
- package/lib/aws/compute/states/choice.js +81 -0
- package/lib/aws/compute/states/custom-state.d.ts +55 -0
- package/lib/aws/compute/states/custom-state.js +114 -0
- package/lib/aws/compute/states/distributed-map/item-batcher.d.ts +64 -0
- package/lib/aws/compute/states/distributed-map/item-batcher.js +58 -0
- package/lib/aws/compute/states/distributed-map/item-reader.d.ts +256 -0
- package/lib/aws/compute/states/distributed-map/item-reader.js +253 -0
- package/lib/aws/compute/states/distributed-map/result-writer.d.ts +41 -0
- package/lib/aws/compute/states/distributed-map/result-writer.js +66 -0
- package/lib/aws/compute/states/distributed-map.d.ts +153 -0
- package/lib/aws/compute/states/distributed-map.js +207 -0
- package/lib/aws/compute/states/fail.d.ts +74 -0
- package/lib/aws/compute/states/fail.js +83 -0
- package/lib/aws/compute/states/map-base.d.ts +145 -0
- package/lib/aws/compute/states/map-base.js +109 -0
- package/lib/aws/compute/states/map.d.ts +76 -0
- package/lib/aws/compute/states/map.js +110 -0
- package/lib/aws/compute/states/parallel.d.ts +113 -0
- package/lib/aws/compute/states/parallel.js +100 -0
- package/lib/aws/compute/states/pass.d.ts +122 -0
- package/lib/aws/compute/states/pass.js +99 -0
- package/lib/aws/compute/states/private/state-type.d.ts +13 -0
- package/lib/aws/compute/states/private/state-type.js +19 -0
- package/lib/aws/compute/states/state.d.ts +276 -0
- package/lib/aws/compute/states/state.js +482 -0
- package/lib/aws/compute/states/succeed.d.ts +51 -0
- package/lib/aws/compute/states/succeed.js +32 -0
- package/lib/aws/compute/states/task-base.d.ts +225 -0
- package/lib/aws/compute/states/task-base.js +160 -0
- package/lib/aws/compute/states/task.d.ts +127 -0
- package/lib/aws/compute/states/task.js +92 -0
- package/lib/aws/compute/states/wait.d.ts +78 -0
- package/lib/aws/compute/states/wait.js +90 -0
- package/lib/aws/compute/step-functions-task.d.ts +78 -0
- package/lib/aws/compute/step-functions-task.js +27 -0
- package/lib/aws/compute/task-credentials.d.ts +45 -0
- package/lib/aws/compute/task-credentials.js +52 -0
- package/lib/aws/compute/task-input.d.ts +86 -0
- package/lib/aws/compute/task-input.js +107 -0
- package/lib/aws/compute/tasks/aws-sdk/call-aws-service.d.ts +73 -0
- package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +69 -0
- package/lib/aws/compute/tasks/eventbridge/put-events.d.ts +74 -0
- package/lib/aws/compute/tasks/eventbridge/put-events.js +94 -0
- package/lib/aws/compute/tasks/http/invoke.d.ts +104 -0
- package/lib/aws/compute/tasks/http/invoke.js +117 -0
- package/lib/aws/compute/tasks/index.d.ts +7 -0
- package/lib/aws/compute/tasks/index.js +42 -0
- package/lib/aws/compute/tasks/lambda/invoke.d.ts +106 -0
- package/lib/aws/compute/tasks/lambda/invoke.js +125 -0
- package/lib/aws/compute/tasks/private/task-utils.d.ts +8 -0
- package/lib/aws/compute/tasks/private/task-utils.js +36 -0
- package/lib/aws/compute/tasks/resource-arn-suffix.d.ts +3 -0
- package/lib/aws/compute/tasks/resource-arn-suffix.js +25 -0
- package/lib/aws/compute/tasks/sqs/send-message.d.ts +62 -0
- package/lib/aws/compute/tasks/sqs/send-message.js +70 -0
- package/lib/aws/compute/tasks/stepfunctions/invoke-activity.d.ts +36 -0
- package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +45 -0
- package/lib/aws/compute/tasks/stepfunctions/start-execution.d.ts +63 -0
- package/lib/aws/compute/tasks/stepfunctions/start-execution.js +123 -0
- package/lib/aws/compute/types.d.ts +214 -0
- package/lib/aws/compute/types.js +103 -0
- package/lib/aws/compute/util.d.ts +12 -0
- package/lib/aws/compute/util.js +29 -0
- package/lib/aws/edge/certificate.d.ts +144 -0
- package/lib/aws/edge/certificate.js +191 -0
- package/lib/aws/edge/distribution.d.ts +505 -0
- package/lib/aws/edge/distribution.js +444 -0
- package/lib/aws/edge/dns-alias-record-targets.d.ts +29 -0
- package/lib/aws/edge/dns-alias-record-targets.js +46 -0
- package/lib/aws/edge/dns-record.d.ts +536 -0
- package/lib/aws/edge/dns-record.js +532 -0
- package/lib/aws/edge/dns-zone.d.ts +169 -0
- package/lib/aws/edge/dns-zone.js +149 -0
- package/lib/aws/edge/function.d.ts +185 -0
- package/lib/aws/edge/function.js +141 -0
- package/lib/aws/edge/index.d.ts +8 -0
- package/lib/aws/edge/index.js +25 -0
- package/lib/aws/edge/key-value-store.d.ts +162 -0
- package/lib/aws/edge/key-value-store.js +163 -0
- package/lib/aws/edge/origin.d.ts +160 -0
- package/lib/aws/edge/origin.js +245 -0
- package/lib/aws/encryption/alias.d.ts +137 -0
- package/lib/aws/encryption/alias.js +216 -0
- package/lib/aws/encryption/index.d.ts +4 -0
- package/lib/aws/encryption/index.js +21 -0
- package/lib/aws/encryption/key-lookup.d.ts +11 -0
- package/lib/aws/encryption/key-lookup.js +4 -0
- package/lib/aws/encryption/key.d.ts +461 -0
- package/lib/aws/encryption/key.js +586 -0
- package/lib/aws/encryption/private/perms.d.ts +5 -0
- package/lib/aws/encryption/private/perms.js +30 -0
- package/lib/aws/encryption/via-service-principal.d.ts +11 -0
- package/lib/aws/encryption/via-service-principal.js +39 -0
- package/lib/aws/iam/grant.d.ts +221 -0
- package/lib/aws/iam/grant.js +239 -0
- package/lib/aws/iam/identity-base.d.ts +20 -0
- package/lib/aws/iam/identity-base.js +3 -0
- package/lib/aws/iam/index.d.ts +16 -0
- package/lib/aws/iam/index.js +34 -0
- package/lib/aws/iam/managed-policy.d.ts +227 -0
- package/lib/aws/iam/managed-policy.js +237 -0
- package/lib/aws/iam/oidc-provider.d.ts +120 -0
- package/lib/aws/iam/oidc-provider.js +82 -0
- package/lib/aws/iam/policy-document-config.generated.d.ts +78 -0
- package/lib/aws/iam/policy-document-config.generated.js +3 -0
- package/lib/aws/iam/policy-document.d.ts +150 -0
- package/lib/aws/iam/policy-document.js +172 -0
- package/lib/aws/iam/policy-statement-props.generated.d.ts +55 -0
- package/lib/aws/iam/policy-statement-props.generated.js +3 -0
- package/lib/aws/iam/policy-statement.d.ts +451 -0
- package/lib/aws/iam/policy-statement.js +947 -0
- package/lib/aws/iam/policy.d.ts +122 -0
- package/lib/aws/iam/policy.js +192 -0
- package/lib/aws/iam/principals.d.ts +668 -0
- package/lib/aws/iam/principals.js +1032 -0
- package/lib/aws/iam/private/adapter.d.ts +21 -0
- package/lib/aws/iam/private/adapter.js +51 -0
- package/lib/aws/iam/private/assume-role-policy.d.ts +8 -0
- package/lib/aws/iam/private/assume-role-policy.js +27 -0
- package/lib/aws/iam/private/comparable-principal.d.ts +6 -0
- package/lib/aws/iam/private/comparable-principal.js +20 -0
- package/lib/aws/iam/private/immutable-role.d.ts +43 -0
- package/lib/aws/iam/private/immutable-role.js +76 -0
- package/lib/aws/iam/private/imported-role.d.ts +49 -0
- package/lib/aws/iam/private/imported-role.js +103 -0
- package/lib/aws/iam/private/merge-statements.d.ts +44 -0
- package/lib/aws/iam/private/merge-statements.js +214 -0
- package/lib/aws/iam/private/postprocess-policy-document.d.ts +15 -0
- package/lib/aws/iam/private/postprocess-policy-document.js +102 -0
- package/lib/aws/iam/private/util.d.ts +37 -0
- package/lib/aws/iam/private/util.js +87 -0
- package/lib/aws/iam/role.d.ts +425 -0
- package/lib/aws/iam/role.js +407 -0
- package/lib/aws/iam/saml-provider.d.ts +79 -0
- package/lib/aws/iam/saml-provider.js +79 -0
- package/lib/aws/iam/unknown-principal.d.ts +32 -0
- package/lib/aws/iam/unknown-principal.js +45 -0
- package/lib/aws/iam/utils.d.ts +12 -0
- package/lib/aws/iam/utils.js +41 -0
- package/lib/aws/index.d.ts +13 -0
- package/lib/aws/index.js +34 -0
- package/lib/aws/log-retention.d.ts +97 -0
- package/lib/aws/log-retention.js +103 -0
- package/lib/aws/network/index.d.ts +4 -0
- package/lib/aws/network/index.js +21 -0
- package/lib/aws/network/network.d.ts +77 -0
- package/lib/aws/network/network.js +3 -0
- package/lib/aws/network/simple-ipv4-vpc.d.ts +84 -0
- package/lib/aws/network/simple-ipv4-vpc.js +236 -0
- package/lib/aws/network/subnet-group.d.ts +42 -0
- package/lib/aws/network/subnet-group.js +72 -0
- package/lib/aws/network/subnet.d.ts +95 -0
- package/lib/aws/network/subnet.js +123 -0
- package/lib/aws/notify/archive.d.ts +77 -0
- package/lib/aws/notify/archive.js +62 -0
- package/lib/aws/notify/connection.d.ts +276 -0
- package/lib/aws/notify/connection.js +261 -0
- package/lib/aws/notify/event-bus.d.ts +298 -0
- package/lib/aws/notify/event-bus.js +326 -0
- package/lib/aws/notify/event-pattern.d.ts +220 -0
- package/lib/aws/notify/event-pattern.js +197 -0
- package/lib/aws/notify/index.d.ts +15 -0
- package/lib/aws/notify/index.js +35 -0
- package/lib/aws/notify/input.d.ts +126 -0
- package/lib/aws/notify/input.js +282 -0
- package/lib/aws/notify/kinesis-canned-metrics.generated.d.ts +68 -0
- package/lib/aws/notify/kinesis-canned-metrics.generated.js +103 -0
- package/lib/aws/notify/kinesis-fixed-canned-metrics.d.ts +195 -0
- package/lib/aws/notify/kinesis-fixed-canned-metrics.js +155 -0
- package/lib/aws/notify/kinesis-stream.d.ts +705 -0
- package/lib/aws/notify/kinesis-stream.js +541 -0
- package/lib/aws/notify/on-event-options.d.ts +54 -0
- package/lib/aws/notify/on-event-options.js +3 -0
- package/lib/aws/notify/queue-config.generated.d.ts +85 -0
- package/lib/aws/notify/queue-config.generated.js +3 -0
- package/lib/aws/notify/queue-policy.d.ts +35 -0
- package/lib/aws/notify/queue-policy.js +39 -0
- package/lib/aws/notify/queue.d.ts +355 -0
- package/lib/aws/notify/queue.js +305 -0
- package/lib/aws/notify/resource-policy.d.ts +41 -0
- package/lib/aws/notify/resource-policy.js +43 -0
- package/lib/aws/notify/rule.d.ts +153 -0
- package/lib/aws/notify/rule.js +227 -0
- package/lib/aws/notify/schedule.d.ts +83 -0
- package/lib/aws/notify/schedule.js +116 -0
- package/lib/aws/notify/target.d.ts +102 -0
- package/lib/aws/notify/target.js +3 -0
- package/lib/aws/notify/targets/event-bus.d.ts +39 -0
- package/lib/aws/notify/targets/event-bus.js +40 -0
- package/lib/aws/notify/targets/function.d.ts +31 -0
- package/lib/aws/notify/targets/function.js +36 -0
- package/lib/aws/notify/targets/index.d.ts +6 -0
- package/lib/aws/notify/targets/index.js +37 -0
- package/lib/aws/notify/targets/log-group.d.ts +89 -0
- package/lib/aws/notify/targets/log-group.js +110 -0
- package/lib/aws/notify/targets/sqs.d.ts +45 -0
- package/lib/aws/notify/targets/sqs.js +73 -0
- package/lib/aws/notify/targets/state-machine.d.ts +36 -0
- package/lib/aws/notify/targets/state-machine.js +39 -0
- package/lib/aws/notify/targets/util.d.ts +71 -0
- package/lib/aws/notify/targets/util.js +130 -0
- package/lib/aws/notify/util.d.ts +13 -0
- package/lib/aws/notify/util.js +69 -0
- package/lib/aws/provider-config.generated.d.ts +220 -0
- package/lib/aws/provider-config.generated.js +3 -0
- package/lib/aws/storage/bucket-destination.d.ts +41 -0
- package/lib/aws/storage/bucket-destination.js +13 -0
- package/lib/aws/storage/bucket-notifications.d.ts +58 -0
- package/lib/aws/storage/bucket-notifications.js +169 -0
- package/lib/aws/storage/bucket-perms.d.ts +9 -0
- package/lib/aws/storage/bucket-perms.js +33 -0
- package/lib/aws/storage/bucket-policy.d.ts +51 -0
- package/lib/aws/storage/bucket-policy.js +53 -0
- package/lib/aws/storage/bucket-source.d.ts +41 -0
- package/lib/aws/storage/bucket-source.js +79 -0
- package/lib/aws/storage/bucket.d.ts +941 -0
- package/lib/aws/storage/bucket.js +869 -0
- package/lib/aws/storage/cors-config.generated.d.ts +57 -0
- package/lib/aws/storage/cors-config.generated.js +3 -0
- package/lib/aws/storage/cors-rule-config.generated.d.ts +38 -0
- package/lib/aws/storage/cors-rule-config.generated.js +3 -0
- package/lib/aws/storage/index.d.ts +12 -0
- package/lib/aws/storage/index.js +31 -0
- package/lib/aws/storage/lifecycle-config.generated.d.ts +55 -0
- package/lib/aws/storage/lifecycle-config.generated.js +3 -0
- package/lib/aws/storage/notification-targets/function.d.ts +11 -0
- package/lib/aws/storage/notification-targets/function.js +48 -0
- package/lib/aws/storage/notification-targets/index.d.ts +2 -0
- package/lib/aws/storage/notification-targets/index.js +21 -0
- package/lib/aws/storage/notification-targets/queue.d.ts +15 -0
- package/lib/aws/storage/notification-targets/queue.js +58 -0
- package/lib/aws/storage/origin-access-identity.d.ts +91 -0
- package/lib/aws/storage/origin-access-identity.js +76 -0
- package/lib/aws/storage/util.d.ts +40 -0
- package/lib/aws/storage/util.js +85 -0
- package/lib/aws/storage/website-config.generated.d.ts +73 -0
- package/lib/aws/storage/website-config.generated.js +3 -0
- package/lib/aws/util.d.ts +4 -0
- package/lib/aws/util.js +25 -0
- package/lib/construct-base.d.ts +69 -0
- package/lib/construct-base.js +89 -0
- package/lib/duration.d.ts +160 -0
- package/lib/duration.js +327 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.js +24 -0
- package/lib/private/index.d.ts +2 -0
- package/lib/private/index.js +19 -0
- package/lib/private/terraform-dependables-aspect.d.ts +20 -0
- package/lib/private/terraform-dependables-aspect.js +95 -0
- package/lib/private/unique-resource-name.d.ts +9 -0
- package/lib/private/unique-resource-name.js +145 -0
- package/lib/size.d.ts +146 -0
- package/lib/size.js +220 -0
- package/lib/stack-base.d.ts +188 -0
- package/lib/stack-base.js +183 -0
- package/lib/token.d.ts +32 -0
- package/lib/token.js +54 -0
- package/node_modules/camel-case/LICENSE +21 -0
- package/node_modules/camel-case/README.md +47 -0
- package/node_modules/camel-case/dist/index.d.ts +5 -0
- package/node_modules/camel-case/dist/index.js +23 -0
- package/node_modules/camel-case/dist/index.js.map +1 -0
- package/node_modules/camel-case/dist/index.spec.d.ts +1 -0
- package/node_modules/camel-case/dist/index.spec.js +26 -0
- package/node_modules/camel-case/dist/index.spec.js.map +1 -0
- package/node_modules/camel-case/dist.es2015/index.d.ts +5 -0
- package/node_modules/camel-case/dist.es2015/index.js +17 -0
- package/node_modules/camel-case/dist.es2015/index.js.map +1 -0
- package/node_modules/camel-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/camel-case/dist.es2015/index.spec.js +24 -0
- package/node_modules/camel-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/camel-case/package.json +89 -0
- package/node_modules/capital-case/LICENSE +21 -0
- package/node_modules/capital-case/README.md +37 -0
- package/node_modules/capital-case/dist/index.d.ts +4 -0
- package/node_modules/capital-case/dist/index.js +16 -0
- package/node_modules/capital-case/dist/index.js.map +1 -0
- package/node_modules/capital-case/dist/index.spec.d.ts +1 -0
- package/node_modules/capital-case/dist/index.spec.js +24 -0
- package/node_modules/capital-case/dist/index.spec.js.map +1 -0
- package/node_modules/capital-case/dist.es2015/index.d.ts +4 -0
- package/node_modules/capital-case/dist.es2015/index.js +11 -0
- package/node_modules/capital-case/dist.es2015/index.js.map +1 -0
- package/node_modules/capital-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/capital-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/capital-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/capital-case/package.json +90 -0
- package/node_modules/change-case/LICENSE +21 -0
- package/node_modules/change-case/README.md +44 -0
- package/node_modules/change-case/dist/index.d.ts +11 -0
- package/node_modules/change-case/dist/index.js +15 -0
- package/node_modules/change-case/dist/index.js.map +1 -0
- package/node_modules/change-case/dist/index.spec.d.ts +1 -0
- package/node_modules/change-case/dist/index.spec.js +9 -0
- package/node_modules/change-case/dist/index.spec.js.map +1 -0
- package/node_modules/change-case/dist.es2015/index.d.ts +11 -0
- package/node_modules/change-case/dist.es2015/index.js +12 -0
- package/node_modules/change-case/dist.es2015/index.js.map +1 -0
- package/node_modules/change-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/change-case/dist.es2015/index.spec.js +7 -0
- package/node_modules/change-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/change-case/package.json +101 -0
- package/node_modules/constant-case/LICENSE +21 -0
- package/node_modules/constant-case/README.md +37 -0
- package/node_modules/constant-case/dist/index.d.ts +3 -0
- package/node_modules/constant-case/dist/index.js +12 -0
- package/node_modules/constant-case/dist/index.js.map +1 -0
- package/node_modules/constant-case/dist/index.spec.d.ts +1 -0
- package/node_modules/constant-case/dist/index.spec.js +26 -0
- package/node_modules/constant-case/dist/index.spec.js.map +1 -0
- package/node_modules/constant-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/constant-case/dist.es2015/index.js +8 -0
- package/node_modules/constant-case/dist.es2015/index.js.map +1 -0
- package/node_modules/constant-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/constant-case/dist.es2015/index.spec.js +24 -0
- package/node_modules/constant-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/constant-case/package.json +90 -0
- package/node_modules/dot-case/LICENSE +21 -0
- package/node_modules/dot-case/README.md +37 -0
- package/node_modules/dot-case/dist/index.d.ts +3 -0
- package/node_modules/dot-case/dist/index.js +11 -0
- package/node_modules/dot-case/dist/index.js.map +1 -0
- package/node_modules/dot-case/dist/index.spec.d.ts +1 -0
- package/node_modules/dot-case/dist/index.spec.js +26 -0
- package/node_modules/dot-case/dist/index.spec.js.map +1 -0
- package/node_modules/dot-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/dot-case/dist.es2015/index.js +7 -0
- package/node_modules/dot-case/dist.es2015/index.js.map +1 -0
- package/node_modules/dot-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/dot-case/dist.es2015/index.spec.js +24 -0
- package/node_modules/dot-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/dot-case/package.json +89 -0
- package/node_modules/esbuild-wasm/LICENSE.md +21 -0
- package/node_modules/esbuild-wasm/README.md +3 -0
- package/node_modules/esbuild-wasm/bin/esbuild +91 -0
- package/node_modules/esbuild-wasm/esbuild.wasm +0 -0
- package/node_modules/esbuild-wasm/esm/browser.d.ts +705 -0
- package/node_modules/esbuild-wasm/esm/browser.js +2370 -0
- package/node_modules/esbuild-wasm/esm/browser.min.js +20 -0
- package/node_modules/esbuild-wasm/lib/browser.d.ts +705 -0
- package/node_modules/esbuild-wasm/lib/browser.js +2415 -0
- package/node_modules/esbuild-wasm/lib/browser.min.js +22 -0
- package/node_modules/esbuild-wasm/lib/main.d.ts +705 -0
- package/node_modules/esbuild-wasm/lib/main.js +2051 -0
- package/node_modules/esbuild-wasm/package.json +19 -0
- package/node_modules/esbuild-wasm/wasm_exec.js +561 -0
- package/node_modules/esbuild-wasm/wasm_exec_node.js +39 -0
- package/node_modules/header-case/LICENSE +21 -0
- package/node_modules/header-case/README.md +37 -0
- package/node_modules/header-case/dist/index.d.ts +3 -0
- package/node_modules/header-case/dist/index.js +11 -0
- package/node_modules/header-case/dist/index.js.map +1 -0
- package/node_modules/header-case/dist/index.spec.d.ts +1 -0
- package/node_modules/header-case/dist/index.spec.js +24 -0
- package/node_modules/header-case/dist/index.spec.js.map +1 -0
- package/node_modules/header-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/header-case/dist.es2015/index.js +7 -0
- package/node_modules/header-case/dist.es2015/index.js.map +1 -0
- package/node_modules/header-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/header-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/header-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/header-case/package.json +89 -0
- package/node_modules/lower-case/LICENSE +21 -0
- package/node_modules/lower-case/README.md +35 -0
- package/node_modules/lower-case/dist/index.d.ts +8 -0
- package/node_modules/lower-case/dist/index.js +53 -0
- package/node_modules/lower-case/dist/index.js.map +1 -0
- package/node_modules/lower-case/dist/index.spec.d.ts +1 -0
- package/node_modules/lower-case/dist/index.spec.js +36 -0
- package/node_modules/lower-case/dist/index.spec.js.map +1 -0
- package/node_modules/lower-case/dist.es2015/index.d.ts +8 -0
- package/node_modules/lower-case/dist.es2015/index.js +48 -0
- package/node_modules/lower-case/dist.es2015/index.js.map +1 -0
- package/node_modules/lower-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/lower-case/dist.es2015/index.spec.js +34 -0
- package/node_modules/lower-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/lower-case/package.json +87 -0
- package/node_modules/mime-db/HISTORY.md +507 -0
- package/node_modules/mime-db/LICENSE +23 -0
- package/node_modules/mime-db/README.md +100 -0
- package/node_modules/mime-db/db.json +8519 -0
- package/node_modules/mime-db/index.js +12 -0
- package/node_modules/mime-db/package.json +60 -0
- package/node_modules/mime-types/HISTORY.md +397 -0
- package/node_modules/mime-types/LICENSE +23 -0
- package/node_modules/mime-types/README.md +113 -0
- package/node_modules/mime-types/index.js +188 -0
- package/node_modules/mime-types/package.json +44 -0
- package/node_modules/no-case/LICENSE +21 -0
- package/node_modules/no-case/README.md +37 -0
- package/node_modules/no-case/dist/index.d.ts +10 -0
- package/node_modules/no-case/dist/index.js +35 -0
- package/node_modules/no-case/dist/index.js.map +1 -0
- package/node_modules/no-case/dist/index.spec.d.ts +1 -0
- package/node_modules/no-case/dist/index.spec.js +59 -0
- package/node_modules/no-case/dist/index.spec.js.map +1 -0
- package/node_modules/no-case/dist.es2015/index.d.ts +10 -0
- package/node_modules/no-case/dist.es2015/index.js +31 -0
- package/node_modules/no-case/dist.es2015/index.js.map +1 -0
- package/node_modules/no-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/no-case/dist.es2015/index.spec.js +57 -0
- package/node_modules/no-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/no-case/package.json +85 -0
- package/node_modules/param-case/LICENSE +21 -0
- package/node_modules/param-case/README.md +37 -0
- package/node_modules/param-case/dist/index.d.ts +3 -0
- package/node_modules/param-case/dist/index.js +11 -0
- package/node_modules/param-case/dist/index.js.map +1 -0
- package/node_modules/param-case/dist/index.spec.d.ts +1 -0
- package/node_modules/param-case/dist/index.spec.js +24 -0
- package/node_modules/param-case/dist/index.spec.js.map +1 -0
- package/node_modules/param-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/param-case/dist.es2015/index.js +7 -0
- package/node_modules/param-case/dist.es2015/index.js.map +1 -0
- package/node_modules/param-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/param-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/param-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/param-case/package.json +91 -0
- package/node_modules/pascal-case/LICENSE +21 -0
- package/node_modules/pascal-case/README.md +47 -0
- package/node_modules/pascal-case/dist/index.d.ts +5 -0
- package/node_modules/pascal-case/dist/index.js +24 -0
- package/node_modules/pascal-case/dist/index.js.map +1 -0
- package/node_modules/pascal-case/dist/index.spec.d.ts +1 -0
- package/node_modules/pascal-case/dist/index.spec.js +25 -0
- package/node_modules/pascal-case/dist/index.spec.js.map +1 -0
- package/node_modules/pascal-case/dist.es2015/index.d.ts +5 -0
- package/node_modules/pascal-case/dist.es2015/index.js +18 -0
- package/node_modules/pascal-case/dist.es2015/index.js.map +1 -0
- package/node_modules/pascal-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/pascal-case/dist.es2015/index.spec.js +23 -0
- package/node_modules/pascal-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/pascal-case/package.json +90 -0
- package/node_modules/path-case/LICENSE +21 -0
- package/node_modules/path-case/README.md +37 -0
- package/node_modules/path-case/dist/index.d.ts +3 -0
- package/node_modules/path-case/dist/index.js +11 -0
- package/node_modules/path-case/dist/index.js.map +1 -0
- package/node_modules/path-case/dist/index.spec.d.ts +1 -0
- package/node_modules/path-case/dist/index.spec.js +24 -0
- package/node_modules/path-case/dist/index.spec.js.map +1 -0
- package/node_modules/path-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/path-case/dist.es2015/index.js +7 -0
- package/node_modules/path-case/dist.es2015/index.js.map +1 -0
- package/node_modules/path-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/path-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/path-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/path-case/package.json +88 -0
- package/node_modules/sentence-case/LICENSE +21 -0
- package/node_modules/sentence-case/README.md +37 -0
- package/node_modules/sentence-case/dist/index.d.ts +4 -0
- package/node_modules/sentence-case/dist/index.js +19 -0
- package/node_modules/sentence-case/dist/index.js.map +1 -0
- package/node_modules/sentence-case/dist/index.spec.d.ts +1 -0
- package/node_modules/sentence-case/dist/index.spec.js +24 -0
- package/node_modules/sentence-case/dist/index.spec.js.map +1 -0
- package/node_modules/sentence-case/dist.es2015/index.d.ts +4 -0
- package/node_modules/sentence-case/dist.es2015/index.js +14 -0
- package/node_modules/sentence-case/dist.es2015/index.js.map +1 -0
- package/node_modules/sentence-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/sentence-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/sentence-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/sentence-case/package.json +89 -0
- package/node_modules/snake-case/LICENSE +21 -0
- package/node_modules/snake-case/README.md +37 -0
- package/node_modules/snake-case/dist/index.d.ts +3 -0
- package/node_modules/snake-case/dist/index.js +11 -0
- package/node_modules/snake-case/dist/index.js.map +1 -0
- package/node_modules/snake-case/dist/index.spec.d.ts +1 -0
- package/node_modules/snake-case/dist/index.spec.js +25 -0
- package/node_modules/snake-case/dist/index.spec.js.map +1 -0
- package/node_modules/snake-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/snake-case/dist.es2015/index.js +7 -0
- package/node_modules/snake-case/dist.es2015/index.js.map +1 -0
- package/node_modules/snake-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/snake-case/dist.es2015/index.spec.js +23 -0
- package/node_modules/snake-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/snake-case/package.json +90 -0
- package/node_modules/tslib/CopyrightNotice.txt +15 -0
- package/node_modules/tslib/LICENSE.txt +12 -0
- package/node_modules/tslib/README.md +164 -0
- package/node_modules/tslib/SECURITY.md +41 -0
- package/node_modules/tslib/modules/index.d.ts +37 -0
- package/node_modules/tslib/modules/index.js +68 -0
- package/node_modules/tslib/modules/package.json +3 -0
- package/node_modules/tslib/package.json +47 -0
- package/node_modules/tslib/tslib.d.ts +453 -0
- package/node_modules/tslib/tslib.es6.html +1 -0
- package/node_modules/tslib/tslib.es6.js +374 -0
- package/node_modules/tslib/tslib.es6.mjs +373 -0
- package/node_modules/tslib/tslib.html +1 -0
- package/node_modules/tslib/tslib.js +424 -0
- package/node_modules/upper-case/README.md +34 -0
- package/node_modules/upper-case/dist/index.d.ts +8 -0
- package/node_modules/upper-case/dist/index.js +49 -0
- package/node_modules/upper-case/dist/index.js.map +1 -0
- package/node_modules/upper-case/dist/index.spec.d.ts +1 -0
- package/node_modules/upper-case/dist/index.spec.js +34 -0
- package/node_modules/upper-case/dist/index.spec.js.map +1 -0
- package/node_modules/upper-case/dist.es2015/index.d.ts +8 -0
- package/node_modules/upper-case/dist.es2015/index.js +44 -0
- package/node_modules/upper-case/dist.es2015/index.js.map +1 -0
- package/node_modules/upper-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/upper-case/dist.es2015/index.spec.js +32 -0
- package/node_modules/upper-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/upper-case/package.json +86 -0
- package/node_modules/upper-case-first/LICENSE +21 -0
- package/node_modules/upper-case-first/README.md +32 -0
- package/node_modules/upper-case-first/dist/index.d.ts +4 -0
- package/node_modules/upper-case-first/dist/index.js +11 -0
- package/node_modules/upper-case-first/dist/index.js.map +1 -0
- package/node_modules/upper-case-first/dist/index.spec.d.ts +1 -0
- package/node_modules/upper-case-first/dist/index.spec.js +20 -0
- package/node_modules/upper-case-first/dist/index.spec.js.map +1 -0
- package/node_modules/upper-case-first/dist.es2015/index.d.ts +4 -0
- package/node_modules/upper-case-first/dist.es2015/index.js +7 -0
- package/node_modules/upper-case-first/dist.es2015/index.js.map +1 -0
- package/node_modules/upper-case-first/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/upper-case-first/dist.es2015/index.spec.js +18 -0
- package/node_modules/upper-case-first/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/upper-case-first/package.json +87 -0
- package/package.json +152 -0
- package/setup.js +2 -0
|
@@ -0,0 +1,546 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a, _b, _c, _d;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.FieldUtils = exports.Context = exports.Data = exports.JsonPath = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
// https://github.com/aws/aws-cdk/blob/v2.160.0/packages/aws-cdk-lib/aws-stepfunctions/lib/fields.ts
|
|
7
|
+
const cdktf_1 = require("cdktf");
|
|
8
|
+
const json_path_1 = require("./private/json-path");
|
|
9
|
+
/**
|
|
10
|
+
* Extract a field from the State Machine data or context
|
|
11
|
+
* that gets passed around between states
|
|
12
|
+
*
|
|
13
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-paths.html
|
|
14
|
+
*/
|
|
15
|
+
class JsonPath {
|
|
16
|
+
/**
|
|
17
|
+
* Instead of using a literal string, get the value from a JSON path
|
|
18
|
+
*/
|
|
19
|
+
static stringAt(path) {
|
|
20
|
+
validateJsonPath(path);
|
|
21
|
+
return new json_path_1.JsonPathToken(path).toString();
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Instead of using a literal string list, get the value from a JSON path
|
|
25
|
+
*/
|
|
26
|
+
static listAt(path) {
|
|
27
|
+
// does not apply to task context
|
|
28
|
+
validateDataPath(path);
|
|
29
|
+
return cdktf_1.Token.asList(new json_path_1.JsonPathToken(path));
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Instead of using a literal number, get the value from a JSON path
|
|
33
|
+
*/
|
|
34
|
+
static numberAt(path) {
|
|
35
|
+
validateJsonPath(path);
|
|
36
|
+
return cdktf_1.Token.asNumber(new json_path_1.JsonPathToken(path));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Reference a complete (complex) object in a JSON path location
|
|
40
|
+
*/
|
|
41
|
+
static objectAt(path) {
|
|
42
|
+
validateJsonPath(path);
|
|
43
|
+
return new json_path_1.JsonPathToken(path);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Use the entire data structure
|
|
47
|
+
*
|
|
48
|
+
* Will be an object at invocation time, but is represented in the CDK
|
|
49
|
+
* application as a string.
|
|
50
|
+
*/
|
|
51
|
+
static get entirePayload() {
|
|
52
|
+
return new json_path_1.JsonPathToken("$").toString();
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Determines if the indicated string is an encoded JSON path
|
|
56
|
+
*
|
|
57
|
+
* @param value string to be evaluated
|
|
58
|
+
*/
|
|
59
|
+
static isEncodedJsonPath(value) {
|
|
60
|
+
return !!(0, json_path_1.jsonPathString)(value);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Return the Execution Id field from the context object
|
|
64
|
+
*/
|
|
65
|
+
static get executionId() {
|
|
66
|
+
return new json_path_1.JsonPathToken("$$.Execution.Id").toString();
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Return the Execution Input field from the context object
|
|
70
|
+
*
|
|
71
|
+
* * Will be an object at invocation time, but is represented in the CDK
|
|
72
|
+
* application as a string.
|
|
73
|
+
*/
|
|
74
|
+
static get executionInput() {
|
|
75
|
+
return new json_path_1.JsonPathToken("$$.Execution.Input").toString();
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Return the Execution Name field from the context object
|
|
79
|
+
*/
|
|
80
|
+
static get executionName() {
|
|
81
|
+
return new json_path_1.JsonPathToken("$$.Execution.Name").toString();
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Return the Execution RoleArn field from the context object
|
|
85
|
+
*/
|
|
86
|
+
static get executionRoleArn() {
|
|
87
|
+
return new json_path_1.JsonPathToken("$$.Execution.RoleArn").toString();
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Return the Execution StartTime field from the context object
|
|
91
|
+
*/
|
|
92
|
+
static get executionStartTime() {
|
|
93
|
+
return new json_path_1.JsonPathToken("$$.Execution.StartTime").toString();
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Return the State EnteredTime field from the context object
|
|
97
|
+
*/
|
|
98
|
+
static get stateEnteredTime() {
|
|
99
|
+
return new json_path_1.JsonPathToken("$$.State.EnteredTime").toString();
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Return the State Name field from the context object
|
|
103
|
+
*/
|
|
104
|
+
static get stateName() {
|
|
105
|
+
return new json_path_1.JsonPathToken("$$.State.Name").toString();
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Return the State RetryCount field from the context object
|
|
109
|
+
*/
|
|
110
|
+
static get stateRetryCount() {
|
|
111
|
+
return new json_path_1.JsonPathToken("$$.State.RetryCount").toString();
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Return the StateMachine Id field from the context object
|
|
115
|
+
*/
|
|
116
|
+
static get stateMachineId() {
|
|
117
|
+
return new json_path_1.JsonPathToken("$$.StateMachine.Id").toString();
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Return the StateMachine Name field from the context object
|
|
121
|
+
*/
|
|
122
|
+
static get stateMachineName() {
|
|
123
|
+
return new json_path_1.JsonPathToken("$$.StateMachine.Name").toString();
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Return the Task Token field from the context object
|
|
127
|
+
*
|
|
128
|
+
* External actions will need this token to report step completion
|
|
129
|
+
* back to StepFunctions using the `SendTaskSuccess` or `SendTaskFailure`
|
|
130
|
+
* calls.
|
|
131
|
+
*/
|
|
132
|
+
static get taskToken() {
|
|
133
|
+
return new json_path_1.JsonPathToken("$$.Task.Token").toString();
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Use the entire context data structure
|
|
137
|
+
*
|
|
138
|
+
* Will be an object at invocation time, but is represented in the CDK
|
|
139
|
+
* application as a string.
|
|
140
|
+
*/
|
|
141
|
+
static get entireContext() {
|
|
142
|
+
return new json_path_1.JsonPathToken("$$").toString();
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Make an intrinsic States.Array expression
|
|
146
|
+
*
|
|
147
|
+
* Combine any number of string literals or JsonPath expressions into an array.
|
|
148
|
+
*
|
|
149
|
+
* Use this function if the value of an array element directly has to come
|
|
150
|
+
* from a JSON Path expression (either the State object or the Context object).
|
|
151
|
+
*
|
|
152
|
+
* If the array contains object literals whose values come from a JSON path
|
|
153
|
+
* expression, you do not need to use this function.
|
|
154
|
+
*
|
|
155
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
|
|
156
|
+
*/
|
|
157
|
+
static array(...values) {
|
|
158
|
+
return new json_path_1.JsonPathToken(`States.Array(${values.map(json_path_1.renderInExpression).join(", ")})`).toString();
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Make an intrinsic States.ArrayPartition expression
|
|
162
|
+
*
|
|
163
|
+
* Use this function to partition a large array. You can also use this intrinsic to slice the data and then send the payload in smaller chunks.
|
|
164
|
+
*
|
|
165
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
|
|
166
|
+
*/
|
|
167
|
+
static arrayPartition(array, chunkSize) {
|
|
168
|
+
return new json_path_1.JsonPathToken(`States.ArrayPartition(${[array, chunkSize].map(json_path_1.renderInExpression).join(", ")})`).toString();
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Make an intrinsic States.ArrayContains expression
|
|
172
|
+
*
|
|
173
|
+
* Use this function to determine if a specific value is present in an array. For example, you can use this function to detect if there was an error in a Map state iteration.
|
|
174
|
+
*
|
|
175
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
|
|
176
|
+
*/
|
|
177
|
+
static arrayContains(array, value) {
|
|
178
|
+
return new json_path_1.JsonPathToken(`States.ArrayContains(${[array, value].map(json_path_1.renderInExpression).join(", ")})`).toString();
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Make an intrinsic States.ArrayRange expression
|
|
182
|
+
*
|
|
183
|
+
* Use this function to create a new array containing a specific range of elements. The new array can contain up to 1000 elements.
|
|
184
|
+
*
|
|
185
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
|
|
186
|
+
*/
|
|
187
|
+
static arrayRange(start, end, step) {
|
|
188
|
+
return new json_path_1.JsonPathToken(`States.ArrayRange(${[start, end, step].map(json_path_1.renderInExpression).join(", ")})`).toString();
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Make an intrinsic States.ArrayGetItem expression
|
|
192
|
+
*
|
|
193
|
+
* Use this function to get a specified index's value in an array.
|
|
194
|
+
*
|
|
195
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
|
|
196
|
+
*/
|
|
197
|
+
static arrayGetItem(array, index) {
|
|
198
|
+
return new json_path_1.JsonPathToken(`States.ArrayGetItem(${[array, index].map(json_path_1.renderInExpression).join(", ")})`).toString();
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Make an intrinsic States.ArrayLength expression
|
|
202
|
+
*
|
|
203
|
+
* Use this function to get the length of an array.
|
|
204
|
+
*
|
|
205
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
|
|
206
|
+
*/
|
|
207
|
+
static arrayLength(array) {
|
|
208
|
+
return new json_path_1.JsonPathToken(`States.ArrayLength(${(0, json_path_1.renderInExpression)(array)})`).toString();
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Make an intrinsic States.ArrayUnique expression
|
|
212
|
+
*
|
|
213
|
+
* Use this function to get the length of an array.
|
|
214
|
+
* Use this function to remove duplicate values from an array and returns an array containing only unique elements. This function takes an array, which can be unsorted, as its sole argument.
|
|
215
|
+
*
|
|
216
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
|
|
217
|
+
*/
|
|
218
|
+
static arrayUnique(array) {
|
|
219
|
+
return new json_path_1.JsonPathToken(`States.ArrayUnique(${(0, json_path_1.renderInExpression)(array)})`).toString();
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Make an intrinsic States.Base64Encode expression
|
|
223
|
+
*
|
|
224
|
+
* Use this function to encode data based on MIME Base64 encoding scheme. You can use this function to pass data to other AWS services without using an AWS Lambda function.
|
|
225
|
+
*
|
|
226
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
|
|
227
|
+
*/
|
|
228
|
+
static base64Encode(input) {
|
|
229
|
+
return new json_path_1.JsonPathToken(`States.Base64Encode(${(0, json_path_1.renderInExpression)(input)})`).toString();
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Make an intrinsic States.Base64Decode expression
|
|
233
|
+
*
|
|
234
|
+
* Use this function to decode data based on MIME Base64 decoding scheme. You can use this function to pass data to other AWS services without using a Lambda function.
|
|
235
|
+
*
|
|
236
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
|
|
237
|
+
*/
|
|
238
|
+
static base64Decode(base64) {
|
|
239
|
+
return new json_path_1.JsonPathToken(`States.Base64Decode(${(0, json_path_1.renderInExpression)(base64)})`).toString();
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Make an intrinsic States.Hash expression
|
|
243
|
+
*
|
|
244
|
+
* Use this function to calculate the hash value of a given input. You can use this function to pass data to other AWS services without using a Lambda function.
|
|
245
|
+
*
|
|
246
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
|
|
247
|
+
*/
|
|
248
|
+
static hash(data, algorithm) {
|
|
249
|
+
return new json_path_1.JsonPathToken(`States.Hash(${[data, algorithm].map(json_path_1.renderInExpression).join(", ")})`).toString();
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Make an intrinsic States.JsonMerge expression
|
|
253
|
+
*
|
|
254
|
+
* Use this function to merge two JSON objects into a single object.
|
|
255
|
+
*
|
|
256
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
|
|
257
|
+
*/
|
|
258
|
+
static jsonMerge(value1, value2) {
|
|
259
|
+
return new json_path_1.JsonPathToken(`States.JsonMerge(${[value1, value2].map(json_path_1.renderInExpression).join(", ")}, false)`).toString();
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Make an intrinsic States.MathRandom expression
|
|
263
|
+
*
|
|
264
|
+
* Use this function to return a random number between the specified start and end number. For example, you can use this function to distribute a specific task between two or more resources.
|
|
265
|
+
*
|
|
266
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
|
|
267
|
+
*/
|
|
268
|
+
static mathRandom(start, end) {
|
|
269
|
+
return new json_path_1.JsonPathToken(`States.MathRandom(${[start, end].map(json_path_1.renderInExpression).join(", ")})`).toString();
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Make an intrinsic States.MathAdd expression
|
|
273
|
+
*
|
|
274
|
+
* Use this function to return the sum of two numbers. For example, you can use this function to increment values inside a loop without invoking a Lambda function.
|
|
275
|
+
*
|
|
276
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
|
|
277
|
+
*/
|
|
278
|
+
static mathAdd(num1, num2) {
|
|
279
|
+
return new json_path_1.JsonPathToken(`States.MathAdd(${[num1, num2].map(json_path_1.renderInExpression).join(", ")})`).toString();
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Make an intrinsic States.StringSplit expression
|
|
283
|
+
*
|
|
284
|
+
* Use this function to split a string into an array of values. This function takes two arguments.The first argument is a string and the second argument is the delimiting character that the function will use to divide the string.
|
|
285
|
+
*
|
|
286
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
|
|
287
|
+
*/
|
|
288
|
+
static stringSplit(inputString, splitter) {
|
|
289
|
+
return new json_path_1.JsonPathToken(`States.StringSplit(${[inputString, splitter].map(json_path_1.renderInExpression).join(", ")})`).toString();
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Make an intrinsic States.UUID expression
|
|
293
|
+
*
|
|
294
|
+
* Use this function to return a version 4 universally unique identifier (v4 UUID) generated using random numbers. For example, you can use this function to call other AWS services or resources that need a UUID parameter or insert items in a DynamoDB table.
|
|
295
|
+
*
|
|
296
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
|
|
297
|
+
*/
|
|
298
|
+
static uuid() {
|
|
299
|
+
return new json_path_1.JsonPathToken("States.UUID()").toString();
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Make an intrinsic States.Format expression
|
|
303
|
+
*
|
|
304
|
+
* This can be used to embed JSON Path variables inside a format string.
|
|
305
|
+
*
|
|
306
|
+
* For example:
|
|
307
|
+
*
|
|
308
|
+
* ```ts
|
|
309
|
+
* sfn.JsonPath.format('Hello, my name is {}.', sfn.JsonPath.stringAt('$.name'))
|
|
310
|
+
* ```
|
|
311
|
+
*
|
|
312
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
|
|
313
|
+
*/
|
|
314
|
+
static format(formatString, ...values) {
|
|
315
|
+
const allArgs = [formatString, ...values];
|
|
316
|
+
return new json_path_1.JsonPathToken(`States.Format(${allArgs.map(json_path_1.renderInExpression).join(", ")})`).toString();
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Make an intrinsic States.StringToJson expression
|
|
320
|
+
*
|
|
321
|
+
* During the execution of the Step Functions state machine, parse the given
|
|
322
|
+
* argument as JSON into its object form.
|
|
323
|
+
*
|
|
324
|
+
* For example:
|
|
325
|
+
*
|
|
326
|
+
* ```ts
|
|
327
|
+
* sfn.JsonPath.stringToJson(sfn.JsonPath.stringAt('$.someJsonBody'))
|
|
328
|
+
* ```
|
|
329
|
+
*
|
|
330
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
|
|
331
|
+
*/
|
|
332
|
+
static stringToJson(jsonString) {
|
|
333
|
+
return new json_path_1.JsonPathToken(`States.StringToJson(${(0, json_path_1.renderInExpression)(jsonString)})`);
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Make an intrinsic States.JsonToString expression
|
|
337
|
+
*
|
|
338
|
+
* During the execution of the Step Functions state machine, encode the
|
|
339
|
+
* given object into a JSON string.
|
|
340
|
+
*
|
|
341
|
+
* For example:
|
|
342
|
+
*
|
|
343
|
+
* ```ts
|
|
344
|
+
* sfn.JsonPath.jsonToString(sfn.JsonPath.objectAt('$.someObject'))
|
|
345
|
+
* ```
|
|
346
|
+
*
|
|
347
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
|
|
348
|
+
*/
|
|
349
|
+
static jsonToString(value) {
|
|
350
|
+
const path = (0, json_path_1.jsonPathFromAny)(value);
|
|
351
|
+
if (!path) {
|
|
352
|
+
throw new Error("Argument to JsonPath.jsonToString() must be a JsonPath object");
|
|
353
|
+
}
|
|
354
|
+
return new json_path_1.JsonPathToken(`States.JsonToString(${path})`).toString();
|
|
355
|
+
}
|
|
356
|
+
constructor() { }
|
|
357
|
+
}
|
|
358
|
+
exports.JsonPath = JsonPath;
|
|
359
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
360
|
+
JsonPath[_a] = { fqn: "terraconstructs.aws.compute.JsonPath", version: "0.0.8" };
|
|
361
|
+
/**
|
|
362
|
+
* Special string value to discard state input, output or result.
|
|
363
|
+
*/
|
|
364
|
+
JsonPath.DISCARD = cdktf_1.Token.asString(cdktf_1.Token.nullValue(), {
|
|
365
|
+
// ref https://github.com/hashicorp/terraform-cdk/blob/v0.20.9/packages/cdktf/lib/tokens/token.ts#L184
|
|
366
|
+
// https://github.com/aws/aws-cdk/blob/v2.170.0/packages/aws-cdk-lib/core/lib/token.ts#L239
|
|
367
|
+
displayHint: "DISCARD (JSON `null`)",
|
|
368
|
+
});
|
|
369
|
+
/**
|
|
370
|
+
* Extract a field from the State Machine data that gets passed around between states
|
|
371
|
+
*
|
|
372
|
+
* @deprecated replaced by `JsonPath`
|
|
373
|
+
*/
|
|
374
|
+
class Data {
|
|
375
|
+
/**
|
|
376
|
+
* Instead of using a literal string, get the value from a JSON path
|
|
377
|
+
*/
|
|
378
|
+
static stringAt(path) {
|
|
379
|
+
validateDataPath(path);
|
|
380
|
+
return new json_path_1.JsonPathToken(path).toString();
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Instead of using a literal string list, get the value from a JSON path
|
|
384
|
+
*/
|
|
385
|
+
static listAt(path) {
|
|
386
|
+
validateDataPath(path);
|
|
387
|
+
return cdktf_1.Token.asList(new json_path_1.JsonPathToken(path));
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Instead of using a literal number, get the value from a JSON path
|
|
391
|
+
*/
|
|
392
|
+
static numberAt(path) {
|
|
393
|
+
validateDataPath(path);
|
|
394
|
+
return cdktf_1.Token.asNumber(new json_path_1.JsonPathToken(path));
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Use the entire data structure
|
|
398
|
+
*
|
|
399
|
+
* Will be an object at invocation time, but is represented in the CDK
|
|
400
|
+
* application as a string.
|
|
401
|
+
*/
|
|
402
|
+
static get entirePayload() {
|
|
403
|
+
return new json_path_1.JsonPathToken("$").toString();
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Determines if the indicated string is an encoded JSON path
|
|
407
|
+
*
|
|
408
|
+
* @param value string to be evaluated
|
|
409
|
+
*/
|
|
410
|
+
static isJsonPathString(value) {
|
|
411
|
+
return !!(0, json_path_1.jsonPathString)(value);
|
|
412
|
+
}
|
|
413
|
+
constructor() { }
|
|
414
|
+
}
|
|
415
|
+
exports.Data = Data;
|
|
416
|
+
_b = JSII_RTTI_SYMBOL_1;
|
|
417
|
+
Data[_b] = { fqn: "terraconstructs.aws.compute.Data", version: "0.0.8" };
|
|
418
|
+
/**
|
|
419
|
+
* Extract a field from the State Machine Context data
|
|
420
|
+
*
|
|
421
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-resource.html#wait-token-contextobject
|
|
422
|
+
*
|
|
423
|
+
* @deprecated replaced by `JsonPath`
|
|
424
|
+
*/
|
|
425
|
+
class Context {
|
|
426
|
+
/**
|
|
427
|
+
* Instead of using a literal string, get the value from a JSON path
|
|
428
|
+
*/
|
|
429
|
+
static stringAt(path) {
|
|
430
|
+
validateContextPath(path);
|
|
431
|
+
return new json_path_1.JsonPathToken(path).toString();
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* Instead of using a literal number, get the value from a JSON path
|
|
435
|
+
*/
|
|
436
|
+
static numberAt(path) {
|
|
437
|
+
validateContextPath(path);
|
|
438
|
+
return cdktf_1.Token.asNumber(new json_path_1.JsonPathToken(path));
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* Return the Task Token field
|
|
442
|
+
*
|
|
443
|
+
* External actions will need this token to report step completion
|
|
444
|
+
* back to StepFunctions using the `SendTaskSuccess` or `SendTaskFailure`
|
|
445
|
+
* calls.
|
|
446
|
+
*/
|
|
447
|
+
static get taskToken() {
|
|
448
|
+
return new json_path_1.JsonPathToken("$$.Task.Token").toString();
|
|
449
|
+
}
|
|
450
|
+
/**
|
|
451
|
+
* Use the entire context data structure
|
|
452
|
+
*
|
|
453
|
+
* Will be an object at invocation time, but is represented in the CDK
|
|
454
|
+
* application as a string.
|
|
455
|
+
*/
|
|
456
|
+
static get entireContext() {
|
|
457
|
+
return new json_path_1.JsonPathToken("$$").toString();
|
|
458
|
+
}
|
|
459
|
+
constructor() { }
|
|
460
|
+
}
|
|
461
|
+
exports.Context = Context;
|
|
462
|
+
_c = JSII_RTTI_SYMBOL_1;
|
|
463
|
+
Context[_c] = { fqn: "terraconstructs.aws.compute.Context", version: "0.0.8" };
|
|
464
|
+
/**
|
|
465
|
+
* Helper functions to work with structures containing fields
|
|
466
|
+
*/
|
|
467
|
+
class FieldUtils {
|
|
468
|
+
/**
|
|
469
|
+
* Render a JSON structure containing fields to the right StepFunctions structure
|
|
470
|
+
*/
|
|
471
|
+
static renderObject(obj) {
|
|
472
|
+
return (0, json_path_1.renderObject)(obj);
|
|
473
|
+
}
|
|
474
|
+
/**
|
|
475
|
+
* Return all JSON paths used in the given structure
|
|
476
|
+
*/
|
|
477
|
+
static findReferencedPaths(obj) {
|
|
478
|
+
return Array.from((0, json_path_1.findReferencedPaths)(obj)).sort();
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* Returns whether the given task structure contains the TaskToken field anywhere
|
|
482
|
+
*
|
|
483
|
+
* The field is considered included if the field itself or one of its containing
|
|
484
|
+
* fields occurs anywhere in the payload.
|
|
485
|
+
*/
|
|
486
|
+
static containsTaskToken(obj) {
|
|
487
|
+
const paths = (0, json_path_1.findReferencedPaths)(obj);
|
|
488
|
+
return (paths.has("$$.Task.Token") || paths.has("$$.Task") || paths.has("$$"));
|
|
489
|
+
}
|
|
490
|
+
constructor() { }
|
|
491
|
+
}
|
|
492
|
+
exports.FieldUtils = FieldUtils;
|
|
493
|
+
_d = JSII_RTTI_SYMBOL_1;
|
|
494
|
+
FieldUtils[_d] = { fqn: "terraconstructs.aws.compute.FieldUtils", version: "0.0.8" };
|
|
495
|
+
function validateJsonPath(path) {
|
|
496
|
+
const intrinsicFunctionNames = [
|
|
497
|
+
// Intrinsics for arrays
|
|
498
|
+
"Array",
|
|
499
|
+
"ArrayPartition",
|
|
500
|
+
"ArrayContains",
|
|
501
|
+
"ArrayRange",
|
|
502
|
+
"ArrayGetItem",
|
|
503
|
+
"ArrayLength",
|
|
504
|
+
"ArrayUnique",
|
|
505
|
+
// Intrinsics for data encoding and decoding
|
|
506
|
+
"Base64Encode",
|
|
507
|
+
"Base64Decode",
|
|
508
|
+
// Intrinsic for hash calculation
|
|
509
|
+
"Hash",
|
|
510
|
+
// Intrinsics for JSON data manipulation
|
|
511
|
+
"JsonMerge",
|
|
512
|
+
"StringToJson",
|
|
513
|
+
"JsonToString",
|
|
514
|
+
// Intrinsics for Math operations
|
|
515
|
+
"MathRandom",
|
|
516
|
+
"MathAdd",
|
|
517
|
+
// Intrinsic for String operation
|
|
518
|
+
"StringSplit",
|
|
519
|
+
// Intrinsic for unique identifier generation
|
|
520
|
+
"UUID",
|
|
521
|
+
// Intrinsic for generic operation
|
|
522
|
+
"Format",
|
|
523
|
+
];
|
|
524
|
+
const intrinsicFunctionFullNames = intrinsicFunctionNames.map((fn) => `States.${fn}`);
|
|
525
|
+
if (path !== "$" &&
|
|
526
|
+
!path.startsWith("$.") &&
|
|
527
|
+
path !== "$$" &&
|
|
528
|
+
!path.startsWith("$$.") &&
|
|
529
|
+
!path.startsWith("$[") &&
|
|
530
|
+
intrinsicFunctionFullNames.every((fn) => !path.startsWith(fn))) {
|
|
531
|
+
const lastItem = intrinsicFunctionFullNames.pop();
|
|
532
|
+
const intrinsicFunctionsStr = intrinsicFunctionFullNames.join(", ") + ", or " + lastItem;
|
|
533
|
+
throw new Error(`JSON path values must be exactly '$', '$$', start with '$.', start with '$$.', start with '$[', or start with an intrinsic function: ${intrinsicFunctionsStr}. Received: ${path}`);
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
function validateDataPath(path) {
|
|
537
|
+
if (path !== "$" && !path.startsWith("$[") && !path.startsWith("$.")) {
|
|
538
|
+
throw new Error("Data JSON path values must either be exactly equal to '$', start with '$[' or start with '$.'");
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
function validateContextPath(path) {
|
|
542
|
+
if (path !== "$$" && !path.startsWith("$$.")) {
|
|
543
|
+
throw new Error("Context JSON path values must either be exactly equal to '$$' or start with '$$.'");
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2ZpZWxkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9HQUFvRztBQUVwRyxpQ0FBMkM7QUFDM0MsbURBTzZCO0FBRTdCOzs7OztHQUtHO0FBQ0gsTUFBYSxRQUFRO0lBVW5COztPQUVHO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFZO1FBQ2pDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sSUFBSSx5QkFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBWTtRQUMvQixpQ0FBaUM7UUFDakMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsT0FBTyxhQUFLLENBQUMsTUFBTSxDQUFDLElBQUkseUJBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBWTtRQUNqQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixPQUFPLGFBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSx5QkFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFZO1FBQ2pDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sSUFBSSx5QkFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sS0FBSyxhQUFhO1FBQzdCLE9BQU8sSUFBSSx5QkFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ks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ay9ibG9iL3YyLjE2MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zL2xpYi9maWVsZHMudHNcblxuaW1wb3J0IHsgVG9rZW4sIElSZXNvbHZhYmxlIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQge1xuICBmaW5kUmVmZXJlbmNlZFBhdGhzLFxuICBqc29uUGF0aFN0cmluZyxcbiAgSnNvblBhdGhUb2tlbixcbiAgcmVuZGVyT2JqZWN0LFxuICByZW5kZXJJbkV4cHJlc3Npb24sXG4gIGpzb25QYXRoRnJvbUFueSxcbn0gZnJvbSBcIi4vcHJpdmF0ZS9qc29uLXBhdGhcIjtcblxuLyoqXG4gKiBFeHRyYWN0IGEgZmllbGQgZnJvbSB0aGUgU3RhdGUgTWFjaGluZSBkYXRhIG9yIGNvbnRleHRcbiAqIHRoYXQgZ2V0cyBwYXNzZWQgYXJvdW5kIGJldHdlZW4gc3RhdGVzXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2RnL2FtYXpvbi1zdGF0ZXMtbGFuZ3VhZ2UtcGF0aHMuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgSnNvblBhdGgge1xuICAvKipcbiAgICogU3BlY2lhbCBzdHJpbmcgdmFsdWUgdG8gZGlzY2FyZCBzdGF0ZSBpbnB1dCwgb3V0cHV0IG9yIHJlc3VsdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRElTQ0FSRCA9IFRva2VuLmFzU3RyaW5nKFRva2VuLm51bGxWYWx1ZSgpLCB7XG4gICAgLy8gcmVmIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLWNkay9ibG9iL3YwLjIwLjkvcGFja2FnZXMvY2RrdGYvbGliL3Rva2Vucy90b2tlbi50cyNMMTg0XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTcwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvdG9rZW4udHMjTDIzOVxuICAgIGRpc3BsYXlIaW50OiBcIkRJU0NBUkQgKEpTT04gYG51bGxgKVwiLFxuICB9KTtcblxuICAvKipcbiAgICogSW5zdGVhZCBvZiB1c2luZyBhIGxpdGVyYWwgc3RyaW5nLCBnZXQgdGhlIHZhbHVlIGZyb20gYSBKU09OIHBhdGhcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc3RyaW5nQXQocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB2YWxpZGF0ZUpzb25QYXRoKHBhdGgpO1xuICAgIHJldHVybiBuZXcgSnNvblBhdGhUb2tlbihwYXRoKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc3RlYWQgb2YgdXNpbmcgYSBsaXRlcmFsIHN0cmluZyBsaXN0LCBnZXQgdGhlIHZhbHVlIGZyb20gYSBKU09OIHBhdGhcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbGlzdEF0KHBhdGg6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICAvLyBkb2VzIG5vdCBhcHBseSB0byB0YXNrIGNvbnRleHRcbiAgICB2YWxpZGF0ZURhdGFQYXRoKHBhdGgpO1xuICAgIHJldHVybiBUb2tlbi5hc0xpc3QobmV3IEpzb25QYXRoVG9rZW4ocGF0aCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc3RlYWQgb2YgdXNpbmcgYSBsaXRlcmFsIG51bWJlciwgZ2V0IHRoZSB2YWx1ZSBmcm9tIGEgSlNPTiBwYXRoXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG51bWJlckF0KHBhdGg6IHN0cmluZyk6IG51bWJlciB7XG4gICAgdmFsaWRhdGVKc29uUGF0aChwYXRoKTtcbiAgICByZXR1cm4gVG9rZW4uYXNOdW1iZXIobmV3IEpzb25QYXRoVG9rZW4ocGF0aCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSBhIGNvbXBsZXRlIChjb21wbGV4KSBvYmplY3QgaW4gYSBKU09OIHBhdGggbG9jYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2JqZWN0QXQocGF0aDogc3RyaW5nKTogSVJlc29sdmFibGUge1xuICAgIHZhbGlkYXRlSnNvblBhdGgocGF0aCk7XG4gICAgcmV0dXJuIG5ldyBKc29uUGF0aFRva2VuKHBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGUgZW50aXJlIGRhdGEgc3RydWN0dXJlXG4gICAqXG4gICAqIFdpbGwgYmUgYW4gb2JqZWN0IGF0IGludm9jYXRpb24gdGltZSwgYnV0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBDREtcbiAgICogYXBwbGljYXRpb24gYXMgYSBzdHJpbmcuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldCBlbnRpcmVQYXlsb2FkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBKc29uUGF0aFRva2VuKFwiJFwiKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIGluZGljYXRlZCBzdHJpbmcgaXMgYW4gZW5jb2RlZCBKU09OIHBhdGhcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIHN0cmluZyB0byBiZSBldmFsdWF0ZWRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNFbmNvZGVkSnNvblBhdGgodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIWpzb25QYXRoU3RyaW5nKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIEV4ZWN1dGlvbiBJZCBmaWVsZCBmcm9tIHRoZSBjb250ZXh0IG9iamVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXQgZXhlY3V0aW9uSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IEpzb25QYXRoVG9rZW4oXCIkJC5FeGVjdXRpb24uSWRcIikudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIEV4ZWN1dGlvbiBJbnB1dCBmaWVsZCBmcm9tIHRoZSBjb250ZXh0IG9iamVjdFxuICAgKlxuICAgKiAqIFdpbGwgYmUgYW4gb2JqZWN0IGF0IGludm9jYXRpb24gdGltZSwgYnV0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBDREtcbiAgICogYXBwbGljYXRpb24gYXMgYSBzdHJpbmcuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldCBleGVjdXRpb25JbnB1dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBuZXcgSnNvblBhdGhUb2tlbihcIiQkLkV4ZWN1dGlvbi5JbnB1dFwiKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgRXhlY3V0aW9uIE5hbWUgZmllbGQgZnJvbSB0aGUgY29udGV4dCBvYmplY3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGV4ZWN1dGlvbk5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IEpzb25QYXRoVG9rZW4oXCIkJC5FeGVjdXRpb24uTmFtZVwiKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgRXhlY3V0aW9uIFJvbGVBcm4gZmllbGQgZnJvbSB0aGUgY29udGV4dCBvYmplY3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGV4ZWN1dGlvblJvbGVBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IEpzb25QYXRoVG9rZW4oXCIkJC5FeGVjdXRpb24uUm9sZUFyblwiKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgRXhlY3V0aW9uIFN0YXJ0VGltZSBmaWVsZCBmcm9tIHRoZSBjb250ZXh0IG9iamVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXQgZXhlY3V0aW9uU3RhcnRUaW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBKc29uUGF0aFRva2VuKFwiJCQuRXhlY3V0aW9uLlN0YXJ0VGltZVwiKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgU3RhdGUgRW50ZXJlZFRpbWUgZmllbGQgZnJvbSB0aGUgY29udGV4dCBvYmplY3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IHN0YXRlRW50ZXJlZFRpbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IEpzb25QYXRoVG9rZW4oXCIkJC5TdGF0ZS5FbnRlcmVkVGltZVwiKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgU3RhdGUgTmFtZSBmaWVsZCBmcm9tIHRoZSBjb250ZXh0IG9iamVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXQgc3RhdGVOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBKc29uUGF0aFRva2VuKFwiJCQuU3RhdGUuTmFtZVwiKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgU3RhdGUgUmV0cnlDb3VudCBmaWVsZCBmcm9tIHRoZSBjb250ZXh0IG9iamVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXQgc3RhdGVSZXRyeUNvdW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBKc29uUGF0aFRva2VuKFwiJCQuU3RhdGUuUmV0cnlDb3VudFwiKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgU3RhdGVNYWNoaW5lIElkIGZpZWxkIGZyb20gdGhlIGNvbnRleHQgb2JqZWN0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldCBzdGF0ZU1hY2hpbmVJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBuZXcgSnNvblBhdGhUb2tlbihcIiQkLlN0YXRlTWFjaGluZS5JZFwiKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgU3RhdGVNYWNoaW5lIE5hbWUgZmllbGQgZnJvbSB0aGUgY29udGV4dCBvYmplY3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IHN0YXRlTWFjaGluZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IEpzb25QYXRoVG9rZW4oXCIkJC5TdGF0ZU1hY2hpbmUuTmFtZVwiKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgVGFzayBUb2tlbiBmaWVsZCBmcm9tIHRoZSBjb250ZXh0IG9iamVjdFxuICAgKlxuICAgKiBFeHRlcm5hbCBhY3Rpb25zIHdpbGwgbmVlZCB0aGlzIHRva2VuIHRvIHJlcG9ydCBzdGVwIGNvbXBsZXRpb25cbiAgICogYmFjayB0byBTdGVwRnVuY3Rpb25zIHVzaW5nIHRoZSBgU2VuZFRhc2tTdWNjZXNzYCBvciBgU2VuZFRhc2tGYWlsdXJlYFxuICAgKiBjYWxscy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IHRhc2tUb2tlbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBuZXcgSnNvblBhdGhUb2tlbihcIiQkLlRhc2suVG9rZW5cIikudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhlIGVudGlyZSBjb250ZXh0IGRhdGEgc3RydWN0dXJlXG4gICAqXG4gICAqIFdpbGwgYmUgYW4gb2JqZWN0IGF0IGludm9jYXRpb24gdGltZSwgYnV0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBDREtcbiAgICogYXBwbGljYXRpb24gYXMgYSBzdHJpbmcuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldCBlbnRpcmVDb250ZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBKc29uUGF0aFRva2VuKFwiJCRcIikudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIGFuIGludHJpbnNpYyBTdGF0ZXMuQXJyYXkgZXhwcmVzc2lvblxuICAgKlxuICAgKiBDb21iaW5lIGFueSBudW1iZXIgb2Ygc3RyaW5nIGxpdGVyYWxzIG9yIEpzb25QYXRoIGV4cHJlc3Npb25zIGludG8gYW4gYXJyYXkuXG4gICAqXG4gICAqIFVzZSB0aGlzIGZ1bmN0aW9uIGlmIHRoZSB2YWx1ZSBvZiBhbiBhcnJheSBlbGVtZW50IGRpcmVjdGx5IGhhcyB0byBjb21lXG4gICAqIGZyb20gYSBKU09OIFBhdGggZXhwcmVzc2lvbiAoZWl0aGVyIHRoZSBTdGF0ZSBvYmplY3Qgb3IgdGhlIENvbnRleHQgb2JqZWN0KS5cbiAgICpcbiAgICogSWYgdGhlIGFycmF5IGNvbnRhaW5zIG9iamVjdCBsaXRlcmFscyB3aG9zZSB2YWx1ZXMgY29tZSBmcm9tIGEgSlNPTiBwYXRoXG4gICAqIGV4cHJlc3Npb24sIHlvdSBkbyBub3QgbmVlZCB0byB1c2UgdGhpcyBmdW5jdGlvbi5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2RnL2FtYXpvbi1zdGF0ZXMtbGFuZ3VhZ2UtaW50cmluc2ljLWZ1bmN0aW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFycmF5KC4uLnZhbHVlczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIHJldHVybiBuZXcgSnNvblBhdGhUb2tlbihcbiAgICAgIGBTdGF0ZXMuQXJyYXkoJHt2YWx1ZXMubWFwKHJlbmRlckluRXhwcmVzc2lvbikuam9pbihcIiwgXCIpfSlgLFxuICAgICkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIGFuIGludHJpbnNpYyBTdGF0ZXMuQXJyYXlQYXJ0aXRpb24gZXhwcmVzc2lvblxuICAgKlxuICAgKiBVc2UgdGhpcyBmdW5jdGlvbiB0byBwYXJ0aXRpb24gYSBsYXJnZSBhcnJheS4gWW91IGNhbiBhbHNvIHVzZSB0aGlzIGludHJpbnNpYyB0byBzbGljZSB0aGUgZGF0YSBhbmQgdGhlbiBzZW5kIHRoZSBwYXlsb2FkIGluIHNtYWxsZXIgY2h1bmtzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zdGVwLWZ1bmN0aW9ucy9sYXRlc3QvZGcvYW1hem9uLXN0YXRlcy1sYW5ndWFnZS1pbnRyaW5zaWMtZnVuY3Rpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXJyYXlQYXJ0aXRpb24oYXJyYXk6IGFueSwgY2h1bmtTaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBuZXcgSnNvblBhdGhUb2tlbihcbiAgICAgIGBTdGF0ZXMuQXJyYXlQYXJ0aXRpb24oJHtbYXJyYXksIGNodW5rU2l6ZV0ubWFwKHJlbmRlckluRXhwcmVzc2lvbikuam9pbihcIiwgXCIpfSlgLFxuICAgICkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIGFuIGludHJpbnNpYyBTdGF0ZXMuQXJyYXlDb250YWlucyBleHByZXNzaW9uXG4gICAqXG4gICAqIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIGRldGVybWluZSBpZiBhIHNwZWNpZmljIHZhbHVlIGlzIHByZXNlbnQgaW4gYW4gYXJyYXkuIEZvciBleGFtcGxlLCB5b3UgY2FuIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIGRldGVjdCBpZiB0aGVyZSB3YXMgYW4gZXJyb3IgaW4gYSBNYXAgc3RhdGUgaXRlcmF0aW9uLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zdGVwLWZ1bmN0aW9ucy9sYXRlc3QvZGcvYW1hem9uLXN0YXRlcy1sYW5ndWFnZS1pbnRyaW5zaWMtZnVuY3Rpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXJyYXlDb250YWlucyhhcnJheTogYW55LCB2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IEpzb25QYXRoVG9rZW4oXG4gICAgICBgU3RhdGVzLkFycmF5Q29udGFpbnMoJHtbYXJyYXksIHZhbHVlXS5tYXAocmVuZGVySW5FeHByZXNzaW9uKS5qb2luKFwiLCBcIil9KWAsXG4gICAgKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgYW4gaW50cmluc2ljIFN0YXRlcy5BcnJheVJhbmdlIGV4cHJlc3Npb25cbiAgICpcbiAgICogVXNlIHRoaXMgZnVuY3Rpb24gdG8gY3JlYXRlIGEgbmV3IGFycmF5IGNvbnRhaW5pbmcgYSBzcGVjaWZpYyByYW5nZSBvZiBlbGVtZW50cy4gVGhlIG5ldyBhcnJheSBjYW4gY29udGFpbiB1cCB0byAxMDAwIGVsZW1lbnRzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zdGVwLWZ1bmN0aW9ucy9sYXRlc3QvZGcvYW1hem9uLXN0YXRlcy1sYW5ndWFnZS1pbnRyaW5zaWMtZnVuY3Rpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXJyYXlSYW5nZShzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlciwgc3RlcDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IEpzb25QYXRoVG9rZW4oXG4gICAgICBgU3RhdGVzLkFycmF5UmFuZ2UoJHtbc3RhcnQsIGVuZCwgc3RlcF0ubWFwKHJlbmRlckluRXhwcmVzc2lvbikuam9pbihcIiwgXCIpfSlgLFxuICAgICkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIGFuIGludHJpbnNpYyBTdGF0ZXMuQXJyYXlHZXRJdGVtIGV4cHJlc3Npb25cbiAgICpcbiAgICogVXNlIHRoaXMgZnVuY3Rpb24gdG8gZ2V0IGEgc3BlY2lmaWVkIGluZGV4J3MgdmFsdWUgaW4gYW4gYXJyYXkuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N0ZXAtZnVuY3Rpb25zL2xhdGVzdC9kZy9hbWF6b24tc3RhdGVzLWxhbmd1YWdlLWludHJpbnNpYy1mdW5jdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhcnJheUdldEl0ZW0oYXJyYXk6IGFueSwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBKc29uUGF0aFRva2VuKFxuICAgICAgYFN0YXRlcy5BcnJheUdldEl0ZW0oJHtbYXJyYXksIGluZGV4XS5tYXAocmVuZGVySW5FeHByZXNzaW9uKS5qb2luKFwiLCBcIil9KWAsXG4gICAgKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgYW4gaW50cmluc2ljIFN0YXRlcy5BcnJheUxlbmd0aCBleHByZXNzaW9uXG4gICAqXG4gICAqIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIGdldCB0aGUgbGVuZ3RoIG9mIGFuIGFycmF5LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zdGVwLWZ1bmN0aW9ucy9sYXRlc3QvZGcvYW1hem9uLXN0YXRlcy1sYW5ndWFnZS1pbnRyaW5zaWMtZnVuY3Rpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXJyYXlMZW5ndGgoYXJyYXk6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBKc29uUGF0aFRva2VuKFxuICAgICAgYFN0YXRlcy5BcnJheUxlbmd0aCgke3JlbmRlckluRXhwcmVzc2lvbihhcnJheSl9KWAsXG4gICAgKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgYW4gaW50cmluc2ljIFN0YXRlcy5BcnJheVVuaXF1ZSBleHByZXNzaW9uXG4gICAqXG4gICAqIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIGdldCB0aGUgbGVuZ3RoIG9mIGFuIGFycmF5LlxuICAgKiBVc2UgdGhpcyBmdW5jdGlvbiB0byByZW1vdmUgZHVwbGljYXRlIHZhbHVlcyBmcm9tIGFuIGFycmF5IGFuZCByZXR1cm5zIGFuIGFycmF5IGNvbnRhaW5pbmcgb25seSB1bmlxdWUgZWxlbWVudHMuIFRoaXMgZnVuY3Rpb24gdGFrZXMgYW4gYXJyYXksIHdoaWNoIGNhbiBiZSB1bnNvcnRlZCwgYXMgaXRzIHNvbGUgYXJndW1lbnQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N0ZXAtZnVuY3Rpb25zL2xhdGVzdC9kZy9hbWF6b24tc3RhdGVzLWxhbmd1YWdlLWludHJpbnNpYy1mdW5jdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhcnJheVVuaXF1ZShhcnJheTogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IEpzb25QYXRoVG9rZW4oXG4gICAgICBgU3RhdGVzLkFycmF5VW5pcXVlKCR7cmVuZGVySW5FeHByZXNzaW9uKGFycmF5KX0pYCxcbiAgICApLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBhbiBpbnRyaW5zaWMgU3RhdGVzLkJhc2U2NEVuY29kZSBleHByZXNzaW9uXG4gICAqXG4gICAqIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIGVuY29kZSBkYXRhIGJhc2VkIG9uIE1JTUUgQmFzZTY0IGVuY29kaW5nIHNjaGVtZS4gWW91IGNhbiB1c2UgdGhpcyBmdW5jdGlvbiB0byBwYXNzIGRhdGEgdG8gb3RoZXIgQVdTIHNlcnZpY2VzIHdpdGhvdXQgdXNpbmcgYW4gQVdTIExhbWJkYSBmdW5jdGlvbi5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2RnL2FtYXpvbi1zdGF0ZXMtbGFuZ3VhZ2UtaW50cmluc2ljLWZ1bmN0aW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJhc2U2NEVuY29kZShpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IEpzb25QYXRoVG9rZW4oXG4gICAgICBgU3RhdGVzLkJhc2U2NEVuY29kZSgke3JlbmRlckluRXhwcmVzc2lvbihpbnB1dCl9KWAsXG4gICAgKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgYW4gaW50cmluc2ljIFN0YXRlcy5CYXNlNjREZWNvZGUgZXhwcmVzc2lvblxuICAgKlxuICAgKiBVc2UgdGhpcyBmdW5jdGlvbiB0byBkZWNvZGUgZGF0YSBiYXNlZCBvbiBNSU1FIEJhc2U2NCBkZWNvZGluZyBzY2hlbWUuIFlvdSBjYW4gdXNlIHRoaXMgZnVuY3Rpb24gdG8gcGFzcyBkYXRhIHRvIG90aGVyIEFXUyBzZXJ2aWNlcyB3aXRob3V0IHVzaW5nIGEgTGFtYmRhIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zdGVwLWZ1bmN0aW9ucy9sYXRlc3QvZGcvYW1hem9uLXN0YXRlcy1sYW5ndWFnZS1pbnRyaW5zaWMtZnVuY3Rpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYmFzZTY0RGVjb2RlKGJhc2U2NDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IEpzb25QYXRoVG9rZW4oXG4gICAgICBgU3RhdGVzLkJhc2U2NERlY29kZSgke3JlbmRlckluRXhwcmVzc2lvbihiYXNlNjQpfSlgLFxuICAgICkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIGFuIGludHJpbnNpYyBTdGF0ZXMuSGFzaCBleHByZXNzaW9uXG4gICAqXG4gICAqIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIGNhbGN1bGF0ZSB0aGUgaGFzaCB2YWx1ZSBvZiBhIGdpdmVuIGlucHV0LiBZb3UgY2FuIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIHBhc3MgZGF0YSB0byBvdGhlciBBV1Mgc2VydmljZXMgd2l0aG91dCB1c2luZyBhIExhbWJkYSBmdW5jdGlvbi5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2RnL2FtYXpvbi1zdGF0ZXMtbGFuZ3VhZ2UtaW50cmluc2ljLWZ1bmN0aW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhhc2goZGF0YTogYW55LCBhbGdvcml0aG06IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBKc29uUGF0aFRva2VuKFxuICAgICAgYFN0YXRlcy5IYXNoKCR7W2RhdGEsIGFsZ29yaXRobV0ubWFwKHJlbmRlckluRXhwcmVzc2lvbikuam9pbihcIiwgXCIpfSlgLFxuICAgICkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIGFuIGludHJpbnNpYyBTdGF0ZXMuSnNvbk1lcmdlIGV4cHJlc3Npb25cbiAgICpcbiAgICogVXNlIHRoaXMgZnVuY3Rpb24gdG8gbWVyZ2UgdHdvIEpTT04gb2JqZWN0cyBpbnRvIGEgc2luZ2xlIG9iamVjdC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2RnL2FtYXpvbi1zdGF0ZXMtbGFuZ3VhZ2UtaW50cmluc2ljLWZ1bmN0aW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGpzb25NZXJnZSh2YWx1ZTE6IGFueSwgdmFsdWUyOiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBuZXcgSnNvblBhdGhUb2tlbihcbiAgICAgIGBTdGF0ZXMuSnNvbk1lcmdlKCR7W3ZhbHVlMSwgdmFsdWUyXS5tYXAocmVuZGVySW5FeHByZXNzaW9uKS5qb2luKFwiLCBcIil9LCBmYWxzZSlgLFxuICAgICkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIGFuIGludHJpbnNpYyBTdGF0ZXMuTWF0aFJhbmRvbSBleHByZXNzaW9uXG4gICAqXG4gICAqIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHJldHVybiBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiB0aGUgc3BlY2lmaWVkIHN0YXJ0IGFuZCBlbmQgbnVtYmVyLiBGb3IgZXhhbXBsZSwgeW91IGNhbiB1c2UgdGhpcyBmdW5jdGlvbiB0byBkaXN0cmlidXRlIGEgc3BlY2lmaWMgdGFzayBiZXR3ZWVuIHR3byBvciBtb3JlIHJlc291cmNlcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2RnL2FtYXpvbi1zdGF0ZXMtbGFuZ3VhZ2UtaW50cmluc2ljLWZ1bmN0aW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG1hdGhSYW5kb20oc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBuZXcgSnNvblBhdGhUb2tlbihcbiAgICAgIGBTdGF0ZXMuTWF0aFJhbmRvbSgke1tzdGFydCwgZW5kXS5tYXAocmVuZGVySW5FeHByZXNzaW9uKS5qb2luKFwiLCBcIil9KWAsXG4gICAgKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgYW4gaW50cmluc2ljIFN0YXRlcy5NYXRoQWRkIGV4cHJlc3Npb25cbiAgICpcbiAgICogVXNlIHRoaXMgZnVuY3Rpb24gdG8gcmV0dXJuIHRoZSBzdW0gb2YgdHdvIG51bWJlcnMuIEZvciBleGFtcGxlLCB5b3UgY2FuIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIGluY3JlbWVudCB2YWx1ZXMgaW5zaWRlIGEgbG9vcCB3aXRob3V0IGludm9raW5nIGEgTGFtYmRhIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zdGVwLWZ1bmN0aW9ucy9sYXRlc3QvZGcvYW1hem9uLXN0YXRlcy1sYW5ndWFnZS1pbnRyaW5zaWMtZnVuY3Rpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWF0aEFkZChudW0xOiBudW1iZXIsIG51bTI6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBKc29uUGF0aFRva2VuKFxuICAgICAgYFN0YXRlcy5NYXRoQWRkKCR7W251bTEsIG51bTJdLm1hcChyZW5kZXJJbkV4cHJlc3Npb24pLmpvaW4oXCIsIFwiKX0pYCxcbiAgICApLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBhbiBpbnRyaW5zaWMgU3RhdGVzLlN0cmluZ1NwbGl0IGV4cHJlc3Npb25cbiAgICpcbiAgICogVXNlIHRoaXMgZnVuY3Rpb24gdG8gc3BsaXQgYSBzdHJpbmcgaW50byBhbiBhcnJheSBvZiB2YWx1ZXMuIFRoaXMgZnVuY3Rpb24gdGFrZXMgdHdvIGFyZ3VtZW50cy5UaGUgZmlyc3QgYXJndW1lbnQgaXMgYSBzdHJpbmcgYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgaXMgdGhlIGRlbGltaXRpbmcgY2hhcmFjdGVyIHRoYXQgdGhlIGZ1bmN0aW9uIHdpbGwgdXNlIHRvIGRpdmlkZSB0aGUgc3RyaW5nLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zdGVwLWZ1bmN0aW9ucy9sYXRlc3QvZGcvYW1hem9uLXN0YXRlcy1sYW5ndWFnZS1pbnRyaW5zaWMtZnVuY3Rpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc3RyaW5nU3BsaXQoaW5wdXRTdHJpbmc6IHN0cmluZywgc3BsaXR0ZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBKc29uUGF0aFRva2VuKFxuICAgICAgYFN0YXRlcy5TdHJpbmdTcGxpdCgke1tpbnB1dFN0cmluZywgc3BsaXR0ZXJdLm1hcChyZW5kZXJJbkV4cHJlc3Npb24pLmpvaW4oXCIsIFwiKX0pYCxcbiAgICApLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBhbiBpbnRyaW5zaWMgU3RhdGVzLlVVSUQgZXhwcmVzc2lvblxuICAgKlxuICAgKiBVc2UgdGhpcyBmdW5jdGlvbiB0byByZXR1cm4gYSB2ZXJzaW9uIDQgdW5pdmVyc2FsbHkgdW5pcXVlIGlkZW50aWZpZXIgKHY0IFVVSUQpIGdlbmVyYXRlZCB1c2luZyByYW5kb20gbnVtYmVycy4gRm9yIGV4YW1wbGUsIHlvdSBjYW4gdXNlIHRoaXMgZnVuY3Rpb24gdG8gY2FsbCBvdGhlciBBV1Mgc2VydmljZXMgb3IgcmVzb3VyY2VzIHRoYXQgbmVlZCBhIFVVSUQgcGFyYW1ldGVyIG9yIGluc2VydCBpdGVtcyBpbiBhIER5bmFtb0RCIHRhYmxlLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zdGVwLWZ1bmN0aW9ucy9sYXRlc3QvZGcvYW1hem9uLXN0YXRlcy1sYW5ndWFnZS1pbnRyaW5zaWMtZnVuY3Rpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXVpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBuZXcgSnNvblBhdGhUb2tlbihcIlN0YXRlcy5VVUlEKClcIikudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIGFuIGludHJpbnNpYyBTdGF0ZXMuRm9ybWF0IGV4cHJlc3Npb25cbiAgICpcbiAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBlbWJlZCBKU09OIFBhdGggdmFyaWFibGVzIGluc2lkZSBhIGZvcm1hdCBzdHJpbmcuXG4gICAqXG4gICAqIEZvciBleGFtcGxlOlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBzZm4uSnNvblBhdGguZm9ybWF0KCdIZWxsbywgbXkgbmFtZSBpcyB7fS4nLCBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQubmFtZScpKVxuICAgKiBgYGBcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2RnL2FtYXpvbi1zdGF0ZXMtbGFuZ3VhZ2UtaW50cmluc2ljLWZ1bmN0aW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZvcm1hdChmb3JtYXRTdHJpbmc6IHN0cmluZywgLi4udmFsdWVzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgYWxsQXJncyA9IFtmb3JtYXRTdHJpbmcsIC4uLnZhbHVlc107XG4gICAgcmV0dXJuIG5ldyBKc29uUGF0aFRva2VuKFxuICAgICAgYFN0YXRlcy5Gb3JtYXQoJHthbGxBcmdzLm1hcChyZW5kZXJJbkV4cHJlc3Npb24pLmpvaW4oXCIsIFwiKX0pYCxcbiAgICApLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBhbiBpbnRyaW5zaWMgU3RhdGVzLlN0cmluZ1RvSnNvbiBleHByZXNzaW9uXG4gICAqXG4gICAqIER1cmluZyB0aGUgZXhlY3V0aW9uIG9mIHRoZSBTdGVwIEZ1bmN0aW9ucyBzdGF0ZSBtYWNoaW5lLCBwYXJzZSB0aGUgZ2l2ZW5cbiAgICogYXJndW1lbnQgYXMgSlNPTiBpbnRvIGl0cyBvYmplY3QgZm9ybS5cbiAgICpcbiAgICogRm9yIGV4YW1wbGU6XG4gICAqXG4gICAqIGBgYHRzXG4gICAqIHNmbi5Kc29uUGF0aC5zdHJpbmdUb0pzb24oc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLnNvbWVKc29uQm9keScpKVxuICAgKiBgYGBcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2RnL2FtYXpvbi1zdGF0ZXMtbGFuZ3VhZ2UtaW50cmluc2ljLWZ1bmN0aW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN0cmluZ1RvSnNvbihqc29uU3RyaW5nOiBzdHJpbmcpOiBJUmVzb2x2YWJsZSB7XG4gICAgcmV0dXJuIG5ldyBKc29uUGF0aFRva2VuKFxuICAgICAgYFN0YXRlcy5TdHJpbmdUb0pzb24oJHtyZW5kZXJJbkV4cHJlc3Npb24oanNvblN0cmluZyl9KWAsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIGFuIGludHJpbnNpYyBTdGF0ZXMuSnNvblRvU3RyaW5nIGV4cHJlc3Npb25cbiAgICpcbiAgICogRHVyaW5nIHRoZSBleGVjdXRpb24gb2YgdGhlIFN0ZXAgRnVuY3Rpb25zIHN0YXRlIG1hY2hpbmUsIGVuY29kZSB0aGVcbiAgICogZ2l2ZW4gb2JqZWN0IGludG8gYSBKU09OIHN0cmluZy5cbiAgICpcbiAgICogRm9yIGV4YW1wbGU6XG4gICAqXG4gICAqIGBgYHRzXG4gICAqIHNmbi5Kc29uUGF0aC5qc29uVG9TdHJpbmcoc2ZuLkpzb25QYXRoLm9iamVjdEF0KCckLnNvbWVPYmplY3QnKSlcbiAgICogYGBgXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N0ZXAtZnVuY3Rpb25zL2xhdGVzdC9kZy9hbWF6b24tc3RhdGVzLWxhbmd1YWdlLWludHJpbnNpYy1mdW5jdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBqc29uVG9TdHJpbmcodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3QgcGF0aCA9IGpzb25QYXRoRnJvbUFueSh2YWx1ZSk7XG4gICAgaWYgKCFwYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQXJndW1lbnQgdG8gSnNvblBhdGguanNvblRvU3RyaW5nKCkgbXVzdCBiZSBhIEpzb25QYXRoIG9iamVjdFwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEpzb25QYXRoVG9rZW4oYFN0YXRlcy5Kc29uVG9TdHJpbmcoJHtwYXRofSlgKS50b1N0cmluZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG59XG5cbi8qKlxuICogRXh0cmFjdCBhIGZpZWxkIGZyb20gdGhlIFN0YXRlIE1hY2hpbmUgZGF0YSB0aGF0IGdldHMgcGFzc2VkIGFyb3VuZCBiZXR3ZWVuIHN0YXRlc1xuICpcbiAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IGBKc29uUGF0aGBcbiAqL1xuZXhwb3J0IGNsYXNzIERhdGEge1xuICAvKipcbiAgICogSW5zdGVhZCBvZiB1c2luZyBhIGxpdGVyYWwgc3RyaW5nLCBnZXQgdGhlIHZhbHVlIGZyb20gYSBKU09OIHBhdGhcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc3RyaW5nQXQocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB2YWxpZGF0ZURhdGFQYXRoKHBhdGgpO1xuICAgIHJldHVybiBuZXcgSnNvblBhdGhUb2tlbihwYXRoKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc3RlYWQgb2YgdXNpbmcgYSBsaXRlcmFsIHN0cmluZyBsaXN0LCBnZXQgdGhlIHZhbHVlIGZyb20gYSBKU09OIHBhdGhcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbGlzdEF0KHBhdGg6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICB2YWxpZGF0ZURhdGFQYXRoKHBhdGgpO1xuICAgIHJldHVybiBUb2tlbi5hc0xpc3QobmV3IEpzb25QYXRoVG9rZW4ocGF0aCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc3RlYWQgb2YgdXNpbmcgYSBsaXRlcmFsIG51bWJlciwgZ2V0IHRoZSB2YWx1ZSBmcm9tIGEgSlNPTiBwYXRoXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG51bWJlckF0KHBhdGg6IHN0cmluZyk6IG51bWJlciB7XG4gICAgdmFsaWRhdGVEYXRhUGF0aChwYXRoKTtcbiAgICByZXR1cm4gVG9rZW4uYXNOdW1iZXIobmV3IEpzb25QYXRoVG9rZW4ocGF0aCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGUgZW50aXJlIGRhdGEgc3RydWN0dXJlXG4gICAqXG4gICAqIFdpbGwgYmUgYW4gb2JqZWN0IGF0IGludm9jYXRpb24gdGltZSwgYnV0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBDREtcbiAgICogYXBwbGljYXRpb24gYXMgYSBzdHJpbmcuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldCBlbnRpcmVQYXlsb2FkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBKc29uUGF0aFRva2VuKFwiJFwiKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIGluZGljYXRlZCBzdHJpbmcgaXMgYW4gZW5jb2RlZCBKU09OIHBhdGhcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIHN0cmluZyB0byBiZSBldmFsdWF0ZWRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNKc29uUGF0aFN0cmluZyh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhanNvblBhdGhTdHJpbmcodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG59XG5cbi8qKlxuICogRXh0cmFjdCBhIGZpZWxkIGZyb20gdGhlIFN0YXRlIE1hY2hpbmUgQ29udGV4dCBkYXRhXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2RnL2Nvbm5lY3QtdG8tcmVzb3VyY2UuaHRtbCN3YWl0LXRva2VuLWNvbnRleHRvYmplY3RcbiAqXG4gKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBgSnNvblBhdGhgXG4gKi9cbmV4cG9ydCBjbGFzcyBDb250ZXh0IHtcbiAgLyoqXG4gICAqIEluc3RlYWQgb2YgdXNpbmcgYSBsaXRlcmFsIHN0cmluZywgZ2V0IHRoZSB2YWx1ZSBmcm9tIGEgSlNPTiBwYXRoXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN0cmluZ0F0KHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdmFsaWRhdGVDb250ZXh0UGF0aChwYXRoKTtcbiAgICByZXR1cm4gbmV3IEpzb25QYXRoVG9rZW4ocGF0aCkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnN0ZWFkIG9mIHVzaW5nIGEgbGl0ZXJhbCBudW1iZXIsIGdldCB0aGUgdmFsdWUgZnJvbSBhIEpTT04gcGF0aFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBudW1iZXJBdChwYXRoOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHZhbGlkYXRlQ29udGV4dFBhdGgocGF0aCk7XG4gICAgcmV0dXJuIFRva2VuLmFzTnVtYmVyKG5ldyBKc29uUGF0aFRva2VuKHBhdGgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIFRhc2sgVG9rZW4gZmllbGRcbiAgICpcbiAgICogRXh0ZXJuYWwgYWN0aW9ucyB3aWxsIG5lZWQgdGhpcyB0b2tlbiB0byByZXBvcnQgc3RlcCBjb21wbGV0aW9uXG4gICAqIGJhY2sgdG8gU3RlcEZ1bmN0aW9ucyB1c2luZyB0aGUgYFNlbmRUYXNrU3VjY2Vzc2Agb3IgYFNlbmRUYXNrRmFpbHVyZWBcbiAgICogY2FsbHMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldCB0YXNrVG9rZW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IEpzb25QYXRoVG9rZW4oXCIkJC5UYXNrLlRva2VuXCIpLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoZSBlbnRpcmUgY29udGV4dCBkYXRhIHN0cnVjdHVyZVxuICAgKlxuICAgKiBXaWxsIGJlIGFuIG9iamVjdCBhdCBpbnZvY2F0aW9uIHRpbWUsIGJ1dCBpcyByZXByZXNlbnRlZCBpbiB0aGUgQ0RLXG4gICAqIGFwcGxpY2F0aW9uIGFzIGEgc3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXQgZW50aXJlQ29udGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBuZXcgSnNvblBhdGhUb2tlbihcIiQkXCIpLnRvU3RyaW5nKCk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge31cbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aCBzdHJ1Y3R1cmVzIGNvbnRhaW5pbmcgZmllbGRzXG4gKi9cbmV4cG9ydCBjbGFzcyBGaWVsZFV0aWxzIHtcbiAgLyoqXG4gICAqIFJlbmRlciBhIEpTT04gc3RydWN0dXJlIGNvbnRhaW5pbmcgZmllbGRzIHRvIHRoZSByaWdodCBTdGVwRnVuY3Rpb25zIHN0cnVjdHVyZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZW5kZXJPYmplY3Qob2JqPzoge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgfSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiByZW5kZXJPYmplY3Qob2JqKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIEpTT04gcGF0aHMgdXNlZCBpbiB0aGUgZ2l2ZW4gc3RydWN0dXJlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZpbmRSZWZlcmVuY2VkUGF0aHMob2JqPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShmaW5kUmVmZXJlbmNlZFBhdGhzKG9iaikpLnNvcnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGdpdmVuIHRhc2sgc3RydWN0dXJlIGNvbnRhaW5zIHRoZSBUYXNrVG9rZW4gZmllbGQgYW55d2hlcmVcbiAgICpcbiAgICogVGhlIGZpZWxkIGlzIGNvbnNpZGVyZWQgaW5jbHVkZWQgaWYgdGhlIGZpZWxkIGl0c2VsZiBvciBvbmUgb2YgaXRzIGNvbnRhaW5pbmdcbiAgICogZmllbGRzIG9jY3VycyBhbnl3aGVyZSBpbiB0aGUgcGF5bG9hZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY29udGFpbnNUYXNrVG9rZW4ob2JqPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHBhdGhzID0gZmluZFJlZmVyZW5jZWRQYXRocyhvYmopO1xuICAgIHJldHVybiAoXG4gICAgICBwYXRocy5oYXMoXCIkJC5UYXNrLlRva2VuXCIpIHx8IHBhdGhzLmhhcyhcIiQkLlRhc2tcIikgfHwgcGF0aHMuaGFzKFwiJCRcIilcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlSnNvblBhdGgocGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IGludHJpbnNpY0Z1bmN0aW9uTmFtZXMgPSBbXG4gICAgLy8gSW50cmluc2ljcyBmb3IgYXJyYXlzXG4gICAgXCJBcnJheVwiLFxuICAgIFwiQXJyYXlQYXJ0aXRpb25cIixcbiAgICBcIkFycmF5Q29udGFpbnNcIixcbiAgICBcIkFycmF5UmFuZ2VcIixcbiAgICBcIkFycmF5R2V0SXRlbVwiLFxuICAgIFwiQXJyYXlMZW5ndGhcIixcbiAgICBcIkFycmF5VW5pcXVlXCIsXG4gICAgLy8gSW50cmluc2ljcyBmb3IgZGF0YSBlbmNvZGluZyBhbmQgZGVjb2RpbmdcbiAgICBcIkJhc2U2NEVuY29kZVwiLFxuICAgIFwiQmFzZTY0RGVjb2RlXCIsXG4gICAgLy8gSW50cmluc2ljIGZvciBoYXNoIGNhbGN1bGF0aW9uXG4gICAgXCJIYXNoXCIsXG4gICAgLy8gSW50cmluc2ljcyBmb3IgSlNPTiBkYXRhIG1hbmlwdWxhdGlvblxuICAgIFwiSnNvbk1lcmdlXCIsXG4gICAgXCJTdHJpbmdUb0pzb25cIixcbiAgICBcIkpzb25Ub1N0cmluZ1wiLFxuICAgIC8vIEludHJpbnNpY3MgZm9yIE1hdGggb3BlcmF0aW9uc1xuICAgIFwiTWF0aFJhbmRvbVwiLFxuICAgIFwiTWF0aEFkZFwiLFxuICAgIC8vIEludHJpbnNpYyBmb3IgU3RyaW5nIG9wZXJhdGlvblxuICAgIFwiU3RyaW5nU3BsaXRcIixcbiAgICAvLyBJbnRyaW5zaWMgZm9yIHVuaXF1ZSBpZGVudGlmaWVyIGdlbmVyYXRpb25cbiAgICBcIlVVSURcIixcbiAgICAvLyBJbnRyaW5zaWMgZm9yIGdlbmVyaWMgb3BlcmF0aW9uXG4gICAgXCJGb3JtYXRcIixcbiAgXTtcbiAgY29uc3QgaW50cmluc2ljRnVuY3Rpb25GdWxsTmFtZXMgPSBpbnRyaW5zaWNGdW5jdGlvbk5hbWVzLm1hcChcbiAgICAoZm4pID0+IGBTdGF0ZXMuJHtmbn1gLFxuICApO1xuICBpZiAoXG4gICAgcGF0aCAhPT0gXCIkXCIgJiZcbiAgICAhcGF0aC5zdGFydHNXaXRoKFwiJC5cIikgJiZcbiAgICBwYXRoICE9PSBcIiQkXCIgJiZcbiAgICAhcGF0aC5zdGFydHNXaXRoKFwiJCQuXCIpICYmXG4gICAgIXBhdGguc3RhcnRzV2l0aChcIiRbXCIpICYmXG4gICAgaW50cmluc2ljRnVuY3Rpb25GdWxsTmFtZXMuZXZlcnkoKGZuKSA9PiAhcGF0aC5zdGFydHNXaXRoKGZuKSlcbiAgKSB7XG4gICAgY29uc3QgbGFzdEl0ZW0gPSBpbnRyaW5zaWNGdW5jdGlvbkZ1bGxOYW1lcy5wb3AoKTtcbiAgICBjb25zdCBpbnRyaW5zaWNGdW5jdGlvbnNTdHIgPVxuICAgICAgaW50cmluc2ljRnVuY3Rpb25GdWxsTmFtZXMuam9pbihcIiwgXCIpICsgXCIsIG9yIFwiICsgbGFzdEl0ZW07XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEpTT04gcGF0aCB2YWx1ZXMgbXVzdCBiZSBleGFjdGx5ICckJywgJyQkJywgc3RhcnQgd2l0aCAnJC4nLCBzdGFydCB3aXRoICckJC4nLCBzdGFydCB3aXRoICckWycsIG9yIHN0YXJ0IHdpdGggYW4gaW50cmluc2ljIGZ1bmN0aW9uOiAke2ludHJpbnNpY0Z1bmN0aW9uc1N0cn0uIFJlY2VpdmVkOiAke3BhdGh9YCxcbiAgICApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlRGF0YVBhdGgocGF0aDogc3RyaW5nKSB7XG4gIGlmIChwYXRoICE9PSBcIiRcIiAmJiAhcGF0aC5zdGFydHNXaXRoKFwiJFtcIikgJiYgIXBhdGguc3RhcnRzV2l0aChcIiQuXCIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJEYXRhIEpTT04gcGF0aCB2YWx1ZXMgbXVzdCBlaXRoZXIgYmUgZXhhY3RseSBlcXVhbCB0byAnJCcsIHN0YXJ0IHdpdGggJyRbJyBvciBzdGFydCB3aXRoICckLidcIixcbiAgICApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlQ29udGV4dFBhdGgocGF0aDogc3RyaW5nKSB7XG4gIGlmIChwYXRoICE9PSBcIiQkXCIgJiYgIXBhdGguc3RhcnRzV2l0aChcIiQkLlwiKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFwiQ29udGV4dCBKU09OIHBhdGggdmFsdWVzIG11c3QgZWl0aGVyIGJlIGV4YWN0bHkgZXF1YWwgdG8gJyQkJyBvciBzdGFydCB3aXRoICckJC4nXCIsXG4gICAgKTtcbiAgfVxufVxuIl19
|