terraconstructs 0.0.24 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +83665 -54911
- package/.mise.toml +1 -1
- package/.nvmrc +1 -1
- package/LICENSE +202 -674
- package/go.mod +9 -7
- package/go.sum +18 -14
- package/lib/asset-manager.d.ts +23 -0
- package/lib/asset-manager.js +3 -0
- package/lib/asset-staging.d.ts +178 -0
- package/lib/asset-staging.js +589 -0
- package/lib/assets.d.ts +359 -0
- package/lib/assets.js +55 -0
- package/lib/aws/arn.js +16 -15
- package/lib/aws/aws-asset-manager.d.ts +91 -0
- package/lib/aws/aws-asset-manager.js +244 -0
- package/lib/aws/aws-construct.js +1 -1
- package/lib/aws/aws-stack.d.ts +37 -0
- package/lib/aws/aws-stack.js +30 -9
- package/lib/aws/aws-tags.js +2 -2
- package/lib/aws/cloudwatch/actions/appscaling.d.ts +15 -0
- package/lib/aws/cloudwatch/actions/appscaling.js +24 -0
- package/lib/aws/cloudwatch/actions/ec2.js +1 -1
- package/lib/aws/cloudwatch/actions/index.d.ts +3 -0
- package/lib/aws/cloudwatch/actions/index.js +4 -4
- package/lib/aws/cloudwatch/actions/lambda.js +1 -1
- package/lib/aws/cloudwatch/actions/sns.d.ts +14 -0
- package/lib/aws/cloudwatch/actions/sns.js +23 -0
- package/lib/aws/cloudwatch/actions/ssm.d.ts +72 -0
- package/lib/aws/cloudwatch/actions/ssm.js +104 -0
- package/lib/aws/cloudwatch/alarm-base.js +1 -1
- package/lib/aws/cloudwatch/alarm-rule.js +1 -1
- package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
- package/lib/aws/cloudwatch/alarm.js +1 -1
- package/lib/aws/cloudwatch/composite-alarm.js +1 -1
- package/lib/aws/cloudwatch/dashboard.js +1 -1
- package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
- package/lib/aws/cloudwatch/graph.js +8 -8
- package/lib/aws/cloudwatch/layout.js +3 -3
- package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
- package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
- package/lib/aws/cloudwatch/log-group.js +1 -1
- package/lib/aws/cloudwatch/log-query.js +1 -1
- package/lib/aws/cloudwatch/log-stream.js +1 -1
- package/lib/aws/cloudwatch/metric-filter.js +1 -1
- package/lib/aws/cloudwatch/metric.js +2 -2
- package/lib/aws/cloudwatch/pattern.js +3 -3
- package/lib/aws/cloudwatch/policy.js +1 -1
- package/lib/aws/cloudwatch/query-definition.js +2 -2
- package/lib/aws/cloudwatch/stats.js +1 -1
- package/lib/aws/cloudwatch/subscription-filter.js +1 -1
- package/lib/aws/cloudwatch/text.js +1 -1
- package/lib/aws/cloudwatch/variable.js +3 -3
- package/lib/aws/cloudwatch/widget.js +1 -1
- package/lib/aws/compute/access-log.d.ts +478 -0
- package/lib/aws/compute/access-log.js +649 -0
- package/lib/aws/compute/activity.js +1 -1
- package/lib/aws/compute/alb/application-listener-action.js +1 -1
- package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
- package/lib/aws/compute/alb/application-listener-rule.js +1 -1
- package/lib/aws/compute/alb/application-listener.js +1 -1
- package/lib/aws/compute/alb/application-load-balancer.js +1 -1
- package/lib/aws/compute/alb/application-target-group.js +1 -1
- package/lib/aws/compute/alb/conditions.js +1 -1
- package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
- package/lib/aws/compute/alb/trust-store.js +1 -1
- package/lib/aws/compute/api-definition.d.ts +106 -0
- package/lib/aws/compute/api-definition.js +200 -0
- package/lib/aws/compute/api-key.d.ts +184 -0
- package/lib/aws/compute/api-key.js +197 -0
- package/lib/aws/compute/apigateway-canned-metrics.generated.d.ts +169 -0
- package/lib/aws/compute/apigateway-canned-metrics.generated.js +63 -0
- package/lib/aws/compute/apigateway-util.d.ts +31 -0
- package/lib/aws/compute/apigateway-util.js +152 -0
- package/lib/aws/compute/architecture.js +1 -1
- package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
- package/lib/aws/compute/authorizer.d.ts +35 -0
- package/lib/aws/compute/authorizer.js +28 -0
- package/lib/aws/compute/authorizers/identity-source.d.ts +37 -0
- package/lib/aws/compute/authorizers/identity-source.js +61 -0
- package/lib/aws/compute/authorizers/index.d.ts +2 -0
- package/lib/aws/compute/authorizers/index.js +20 -0
- package/lib/aws/compute/authorizers/lambda.d.ts +140 -0
- package/lib/aws/compute/authorizers/lambda.js +208 -0
- package/lib/aws/compute/base-path-mapping.d.ts +49 -0
- package/lib/aws/compute/base-path-mapping.js +52 -0
- package/lib/aws/compute/base-scalable-attribute.js +3 -3
- package/lib/aws/compute/bastion-host.js +1 -1
- package/lib/aws/compute/chain.js +1 -1
- package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
- package/lib/aws/compute/client-vpn-endpoint.js +2 -2
- package/lib/aws/compute/client-vpn-route.js +2 -2
- package/lib/aws/compute/code.d.ts +415 -0
- package/lib/aws/compute/code.js +424 -0
- package/lib/aws/compute/condition.js +1 -1
- package/lib/aws/compute/connections.js +1 -1
- package/lib/aws/compute/cors.d.ts +102 -0
- package/lib/aws/compute/cors.js +33 -0
- package/lib/aws/compute/deployment.d.ts +83 -0
- package/lib/aws/compute/deployment.js +158 -0
- package/lib/aws/compute/domain-name.d.ts +153 -0
- package/lib/aws/compute/domain-name.js +158 -0
- package/lib/aws/compute/event-invoke-config.d.ts +2 -2
- package/lib/aws/compute/event-invoke-config.js +4 -4
- package/lib/aws/compute/event-source-filter.js +2 -2
- package/lib/aws/compute/event-source-mapping.d.ts +2 -2
- package/lib/aws/compute/event-source-mapping.js +9 -7
- package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
- package/lib/aws/compute/event-sources/s3.js +1 -1
- package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
- package/lib/aws/compute/event-sources/sqs.js +3 -2
- package/lib/aws/compute/fields.js +4 -4
- package/lib/aws/compute/function-alias.d.ts +1 -0
- package/lib/aws/compute/function-alias.js +8 -2
- package/lib/aws/compute/function-base.d.ts +15 -0
- package/lib/aws/compute/function-base.js +4 -4
- package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
- package/lib/aws/compute/function-destinations/function.js +1 -1
- package/lib/aws/compute/function-destinations/sqs.js +1 -1
- package/lib/aws/compute/function-nodejs/bundling.d.ts +75 -0
- package/lib/aws/compute/function-nodejs/bundling.js +405 -0
- package/lib/aws/compute/function-nodejs/function.d.ts +99 -0
- package/lib/aws/compute/function-nodejs/function.js +175 -0
- package/lib/aws/compute/function-nodejs/index.d.ts +2 -0
- package/lib/aws/compute/function-nodejs/index.js +19 -0
- package/lib/aws/compute/function-nodejs/package-installation.d.ts +8 -0
- package/lib/aws/compute/function-nodejs/package-installation.js +36 -0
- package/lib/aws/compute/function-nodejs/package-manager.d.ts +33 -0
- package/lib/aws/compute/function-nodejs/package-manager.js +99 -0
- package/lib/aws/compute/function-nodejs/types.d.ts +410 -0
- package/lib/aws/compute/function-nodejs/types.js +81 -0
- package/lib/aws/compute/function-nodejs/util.d.ts +60 -0
- package/lib/aws/compute/function-nodejs/util.js +202 -0
- package/lib/aws/compute/function-url.d.ts +2 -2
- package/lib/aws/compute/function-url.js +4 -4
- package/lib/aws/compute/function.d.ts +34 -4
- package/lib/aws/compute/function.js +91 -17
- package/lib/aws/compute/gateway-response.d.ts +157 -0
- package/lib/aws/compute/gateway-response.js +156 -0
- package/lib/aws/compute/handler.d.ts +10 -0
- package/lib/aws/compute/handler.js +20 -0
- package/lib/aws/compute/index.d.ts +27 -0
- package/lib/aws/compute/index.js +29 -1
- package/lib/aws/compute/instance-types.js +1 -1
- package/lib/aws/compute/instance.js +1 -1
- package/lib/aws/compute/integration.d.ts +311 -0
- package/lib/aws/compute/integration.js +165 -0
- package/lib/aws/compute/integrations/aws.d.ts +72 -0
- package/lib/aws/compute/integrations/aws.js +55 -0
- package/lib/aws/compute/integrations/http.d.ts +37 -0
- package/lib/aws/compute/integrations/http.js +35 -0
- package/lib/aws/compute/integrations/index.d.ts +6 -0
- package/lib/aws/compute/integrations/index.js +24 -0
- package/lib/aws/compute/integrations/lambda.d.ts +40 -0
- package/lib/aws/compute/integrations/lambda.js +73 -0
- package/lib/aws/compute/integrations/mock.d.ts +16 -0
- package/lib/aws/compute/integrations/mock.js +30 -0
- package/lib/aws/compute/integrations/request-context.d.ts +144 -0
- package/lib/aws/compute/integrations/request-context.js +3 -0
- package/lib/aws/compute/integrations/stepfunctions.d.ts +102 -0
- package/lib/aws/compute/integrations/stepfunctions.js +268 -0
- package/lib/aws/compute/ip-addresses.js +2 -2
- package/lib/aws/compute/ipam.js +1 -1
- package/lib/aws/compute/json-schema.d.ts +75 -0
- package/lib/aws/compute/json-schema.js +23 -0
- package/lib/aws/compute/key-pair.js +1 -1
- package/lib/aws/compute/lambda-api.d.ts +46 -0
- package/lib/aws/compute/lambda-api.js +64 -0
- package/lib/aws/compute/launch-template.js +2 -2
- package/lib/aws/compute/lb-shared/base-listener.js +1 -1
- package/lib/aws/compute/lb-shared/base-load-balancer.js +2 -2
- package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
- package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
- package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
- package/lib/aws/compute/lb-targets/alb-target.js +3 -3
- package/lib/aws/compute/lb-targets/instance-target.js +2 -2
- package/lib/aws/compute/lb-targets/ip-target.js +1 -1
- package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
- package/lib/aws/compute/load-balancer.js +3 -3
- package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
- package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
- package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
- package/lib/aws/compute/machine-image/common.js +1 -1
- package/lib/aws/compute/machine-image/machine-image.js +8 -8
- package/lib/aws/compute/method.d.ts +219 -0
- package/lib/aws/compute/method.js +396 -0
- package/lib/aws/compute/methodresponse.d.ts +28 -0
- package/lib/aws/compute/methodresponse.js +3 -0
- package/lib/aws/compute/model.d.ts +143 -0
- package/lib/aws/compute/model.js +141 -0
- package/lib/aws/compute/nat.js +5 -5
- package/lib/aws/compute/network-acl-types.js +2 -2
- package/lib/aws/compute/network-acl.js +3 -3
- package/lib/aws/compute/nlb/network-listener-action.js +1 -1
- package/lib/aws/compute/nlb/network-listener.js +1 -1
- package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
- package/lib/aws/compute/nlb/network-target-group.js +1 -1
- package/lib/aws/compute/peer.js +1 -1
- package/lib/aws/compute/placement-group.js +1 -1
- package/lib/aws/compute/port.js +1 -1
- package/lib/aws/compute/prefix-list.js +1 -1
- package/lib/aws/compute/requestvalidator.d.ts +50 -0
- package/lib/aws/compute/requestvalidator.js +59 -0
- package/lib/aws/compute/resource.d.ts +223 -0
- package/lib/aws/compute/resource.js +316 -0
- package/lib/aws/compute/restapi.d.ts +510 -0
- package/lib/aws/compute/restapi.js +626 -0
- package/lib/aws/compute/route.js +8 -8
- package/lib/aws/compute/runtime.d.ts +282 -0
- package/lib/aws/compute/runtime.js +337 -0
- package/lib/aws/compute/scalable-target.js +3 -3
- package/lib/aws/compute/schedule.js +3 -3
- package/lib/aws/compute/security-group.js +1 -1
- package/lib/aws/compute/stage.d.ts +350 -0
- package/lib/aws/compute/stage.js +304 -0
- package/lib/aws/compute/state-graph.js +1 -1
- package/lib/aws/compute/state-machine-fragment.js +1 -1
- package/lib/aws/compute/state-machine.js +4 -4
- package/lib/aws/compute/states/choice.js +1 -1
- package/lib/aws/compute/states/custom-state.js +1 -1
- package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
- package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
- package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
- package/lib/aws/compute/states/distributed-map.js +1 -1
- package/lib/aws/compute/states/fail.js +1 -1
- package/lib/aws/compute/states/map-base.js +1 -1
- package/lib/aws/compute/states/map.js +1 -1
- package/lib/aws/compute/states/parallel.js +1 -1
- package/lib/aws/compute/states/pass.js +2 -2
- package/lib/aws/compute/states/state.js +1 -1
- package/lib/aws/compute/states/succeed.js +1 -1
- package/lib/aws/compute/states/task-base.js +2 -2
- package/lib/aws/compute/states/task.js +1 -1
- package/lib/aws/compute/states/wait.js +2 -2
- package/lib/aws/compute/step-scaling-action.js +3 -3
- package/lib/aws/compute/step-scaling-policy.js +1 -1
- package/lib/aws/compute/stepfunctions-api.d.ts +103 -0
- package/lib/aws/compute/stepfunctions-api.js +39 -0
- package/lib/aws/compute/subnet-v2.js +2 -2
- package/lib/aws/compute/subnet.js +1 -1
- package/lib/aws/compute/target-tracking-scaling-policy.js +3 -3
- package/lib/aws/compute/task-credentials.js +1 -1
- package/lib/aws/compute/task-input.js +1 -1
- package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
- package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
- package/lib/aws/compute/tasks/http/invoke.js +1 -1
- package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
- package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
- package/lib/aws/compute/types.js +1 -1
- package/lib/aws/compute/usage-plan.d.ts +194 -0
- package/lib/aws/compute/usage-plan.js +174 -0
- package/lib/aws/compute/user-data.js +3 -3
- package/lib/aws/compute/volume.js +2 -2
- package/lib/aws/compute/vpc-endpoint-service.js +1 -1
- package/lib/aws/compute/vpc-endpoint.js +6 -6
- package/lib/aws/compute/vpc-flow-logs.js +4 -4
- package/lib/aws/compute/vpc-link.d.ts +104 -0
- package/lib/aws/compute/vpc-link.js +137 -0
- package/lib/aws/compute/vpc-v2-base.js +1 -1
- package/lib/aws/compute/vpc-v2.js +2 -2
- package/lib/aws/compute/vpc.js +4 -4
- package/lib/aws/compute/vpn.js +3 -3
- package/lib/aws/edge/certificate.js +1 -1
- package/lib/aws/edge/distribution.js +3 -3
- package/lib/aws/edge/dns-alias-record-targets.js +3 -3
- package/lib/aws/edge/dns-record.js +13 -13
- package/lib/aws/edge/dns-zone.js +1 -1
- package/lib/aws/edge/function.js +2 -2
- package/lib/aws/edge/key-value-store.js +4 -4
- package/lib/aws/edge/origin.js +3 -3
- package/lib/aws/edge/response-headers-policy.js +1 -1
- package/lib/aws/encryption/alias.js +1 -1
- package/lib/aws/encryption/key.js +1 -1
- package/lib/aws/encryption/via-service-principal.js +1 -1
- package/lib/aws/iam/grant.js +2 -2
- package/lib/aws/iam/group.js +1 -1
- package/lib/aws/iam/instance-profile.js +1 -1
- package/lib/aws/iam/managed-policy.js +1 -1
- package/lib/aws/iam/oidc-provider.js +1 -1
- package/lib/aws/iam/policy-document.js +1 -1
- package/lib/aws/iam/policy-statement.js +1 -1
- package/lib/aws/iam/policy.js +1 -1
- package/lib/aws/iam/principals.js +20 -20
- package/lib/aws/iam/role.js +1 -1
- package/lib/aws/iam/saml-provider.js +2 -2
- package/lib/aws/iam/unknown-principal.js +1 -1
- package/lib/aws/iam/user.js +5 -5
- package/lib/aws/index.d.ts +1 -0
- package/lib/aws/index.js +4 -1
- package/lib/aws/network/simple-ipv4-vpc.js +1 -1
- package/lib/aws/network/subnet-group.js +3 -3
- package/lib/aws/network/subnet.js +4 -4
- package/lib/aws/notify/archive.js +1 -1
- package/lib/aws/notify/connection.js +3 -3
- package/lib/aws/notify/event-bus.js +3 -3
- package/lib/aws/notify/event-pattern.js +1 -1
- package/lib/aws/notify/input.js +2 -2
- package/lib/aws/notify/kinesis-stream.js +1 -1
- package/lib/aws/notify/notification-rule.d.ts +1 -1
- package/lib/aws/notify/notification-rule.js +5 -5
- package/lib/aws/notify/policy.js +1 -1
- package/lib/aws/notify/queue-policy.js +1 -1
- package/lib/aws/notify/queue.js +1 -1
- package/lib/aws/notify/resource-policy.js +1 -1
- package/lib/aws/notify/rule.js +1 -1
- package/lib/aws/notify/schedule.js +1 -1
- package/lib/aws/notify/subscription-filter.js +1 -1
- package/lib/aws/notify/subscription.js +4 -4
- package/lib/aws/notify/subscriptions/email.js +1 -1
- package/lib/aws/notify/subscriptions/lambda.js +1 -1
- package/lib/aws/notify/subscriptions/sms.js +1 -1
- package/lib/aws/notify/subscriptions/sqs.js +1 -1
- package/lib/aws/notify/subscriptions/url.js +1 -1
- package/lib/aws/notify/targets/event-bus.js +1 -1
- package/lib/aws/notify/targets/function.js +1 -1
- package/lib/aws/notify/targets/log-group.js +2 -2
- package/lib/aws/notify/targets/sqs.js +1 -1
- package/lib/aws/notify/targets/state-machine.js +1 -1
- package/lib/aws/notify/topic-base.js +1 -1
- package/lib/aws/notify/topic.js +6 -5
- package/lib/aws/partition.d.ts +21 -0
- package/lib/aws/partition.js +42 -0
- package/lib/aws/storage/assets/image-asset.d.ts +379 -0
- package/lib/aws/storage/assets/image-asset.js +247 -0
- package/lib/aws/storage/assets/index.d.ts +2 -0
- package/lib/aws/storage/assets/index.js +21 -0
- package/lib/aws/storage/assets/s3.d.ts +125 -0
- package/lib/aws/storage/assets/s3.js +80 -0
- package/lib/aws/storage/auth-token.d.ts +25 -0
- package/lib/aws/storage/auth-token.js +54 -0
- package/lib/aws/storage/billing.js +1 -1
- package/lib/aws/storage/bucket-notifications.js +1 -1
- package/lib/aws/storage/bucket-policy.js +1 -1
- package/lib/aws/storage/bucket-source.d.ts +1 -1
- package/lib/aws/storage/bucket-source.js +4 -4
- package/lib/aws/storage/bucket.d.ts +14 -6
- package/lib/aws/storage/bucket.js +48 -40
- package/lib/aws/storage/capacity.js +1 -1
- package/lib/aws/storage/ecr-lifecycle.d.ts +88 -0
- package/lib/aws/storage/ecr-lifecycle.js +23 -0
- package/lib/aws/storage/ecr-repository.d.ts +446 -0
- package/lib/aws/storage/ecr-repository.js +685 -0
- package/lib/aws/storage/encryption.js +1 -1
- package/lib/aws/storage/index.d.ts +5 -0
- package/lib/aws/storage/index.js +10 -3
- package/lib/aws/storage/location.d.ts +17 -0
- package/lib/aws/storage/location.js +4 -0
- package/lib/aws/storage/notification-targets/function.js +1 -1
- package/lib/aws/storage/notification-targets/queue.js +1 -1
- package/lib/aws/storage/origin-access-identity.js +1 -1
- package/lib/aws/storage/parameter.js +2 -2
- package/lib/aws/storage/table.js +3 -3
- package/lib/aws/storage/util.d.ts +8 -20
- package/lib/aws/storage/util.js +56 -34
- package/lib/aws/util.d.ts +1 -0
- package/lib/aws/util.js +6 -1
- package/lib/bundling.d.ts +434 -0
- package/lib/bundling.js +368 -0
- package/lib/construct-base.js +2 -2
- package/lib/duration.js +1 -1
- package/lib/expiration.js +1 -1
- package/lib/fs/copy.d.ts +2 -0
- package/lib/fs/copy.js +57 -0
- package/lib/fs/fingerprint.d.ts +21 -0
- package/lib/fs/fingerprint.js +165 -0
- package/lib/fs/ignore.d.ts +107 -0
- package/lib/fs/ignore.js +190 -0
- package/lib/fs/index.d.ts +47 -0
- package/lib/fs/index.js +88 -0
- package/lib/fs/options.d.ts +110 -0
- package/lib/fs/options.js +60 -0
- package/lib/fs/utils.d.ts +11 -0
- package/lib/fs/utils.js +34 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.js +7 -1
- package/lib/private/asset-staging.d.ts +83 -0
- package/lib/private/asset-staging.js +205 -0
- package/lib/private/cache.d.ts +17 -0
- package/lib/private/cache.js +35 -0
- package/lib/private/jsii-deprecated.d.ts +2 -0
- package/lib/private/jsii-deprecated.js +19 -0
- package/lib/private/unique-resource-name.js +3 -2
- package/lib/size.js +1 -1
- package/lib/stack-base.js +1 -1
- package/lib/terra-func.js +2 -2
- package/lib/time-zone.js +1 -1
- package/node_modules/@balena/dockerignore/CHANGELOG.md +31 -0
- package/node_modules/@balena/dockerignore/LICENSE.md +206 -0
- package/node_modules/@balena/dockerignore/README.md +261 -0
- package/node_modules/@balena/dockerignore/ignore.js +363 -0
- package/node_modules/@balena/dockerignore/index.d.ts +45 -0
- package/node_modules/@balena/dockerignore/package.json +49 -0
- package/node_modules/balanced-match/.github/FUNDING.yml +2 -0
- package/node_modules/balanced-match/LICENSE.md +21 -0
- package/node_modules/balanced-match/README.md +97 -0
- package/node_modules/balanced-match/index.js +62 -0
- package/node_modules/balanced-match/package.json +48 -0
- package/node_modules/concat-map/.travis.yml +4 -0
- package/node_modules/concat-map/LICENSE +18 -0
- package/node_modules/concat-map/README.markdown +62 -0
- package/node_modules/concat-map/example/map.js +6 -0
- package/node_modules/concat-map/index.js +13 -0
- package/node_modules/concat-map/package.json +43 -0
- package/node_modules/concat-map/test/map.js +39 -0
- package/node_modules/ignore/LICENSE-MIT +21 -0
- package/node_modules/ignore/README.md +412 -0
- package/node_modules/ignore/index.d.ts +61 -0
- package/node_modules/ignore/index.js +636 -0
- package/node_modules/ignore/legacy.js +559 -0
- package/node_modules/ignore/package.json +74 -0
- package/node_modules/minimatch/LICENSE +15 -0
- package/node_modules/minimatch/README.md +230 -0
- package/node_modules/minimatch/minimatch.js +947 -0
- package/node_modules/minimatch/node_modules/brace-expansion/LICENSE +21 -0
- package/node_modules/minimatch/node_modules/brace-expansion/README.md +129 -0
- package/node_modules/minimatch/node_modules/brace-expansion/index.js +201 -0
- package/node_modules/minimatch/node_modules/brace-expansion/package.json +47 -0
- package/node_modules/minimatch/package.json +33 -0
- package/package.json +14 -5
- package/lib/aws/compute/function-nodejs.d.ts +0 -55
- package/lib/aws/compute/function-nodejs.js +0 -70
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Determines how symlinks are followed.
|
|
3
|
+
*/
|
|
4
|
+
export declare enum SymlinkFollowMode {
|
|
5
|
+
/**
|
|
6
|
+
* Never follow symlinks.
|
|
7
|
+
*/
|
|
8
|
+
NEVER = "never",
|
|
9
|
+
/**
|
|
10
|
+
* Materialize all symlinks, whether they are internal or external to the source directory.
|
|
11
|
+
*/
|
|
12
|
+
ALWAYS = "always",
|
|
13
|
+
/**
|
|
14
|
+
* Only follows symlinks that are external to the source directory.
|
|
15
|
+
*/
|
|
16
|
+
EXTERNAL = "external",
|
|
17
|
+
/**
|
|
18
|
+
* Forbids source from having any symlinks pointing outside of the source
|
|
19
|
+
* tree.
|
|
20
|
+
*
|
|
21
|
+
* This is the safest mode of operation as it ensures that copy operations
|
|
22
|
+
* won't materialize files from the user's file system. Internal symlinks are
|
|
23
|
+
* not followed.
|
|
24
|
+
*
|
|
25
|
+
* If the copy operation runs into an external symlink, it will fail.
|
|
26
|
+
*/
|
|
27
|
+
BLOCK_EXTERNAL = "internal-only"
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Determines the ignore behavior to use.
|
|
31
|
+
*/
|
|
32
|
+
export declare enum IgnoreMode {
|
|
33
|
+
/**
|
|
34
|
+
* Ignores file paths based on simple glob patterns.
|
|
35
|
+
*
|
|
36
|
+
* This is the default for file assets.
|
|
37
|
+
*
|
|
38
|
+
* It is also the default for Docker image assets, unless the '@aws-cdk/aws-ecr-assets:dockerIgnoreSupport'
|
|
39
|
+
* context flag is set.
|
|
40
|
+
*/
|
|
41
|
+
GLOB = "glob",
|
|
42
|
+
/**
|
|
43
|
+
* Ignores file paths based on the [`.gitignore specification`](https://git-scm.com/docs/gitignore).
|
|
44
|
+
*/
|
|
45
|
+
GIT = "git",
|
|
46
|
+
/**
|
|
47
|
+
* Ignores file paths based on the [`.dockerignore specification`](https://docs.docker.com/engine/reference/builder/#dockerignore-file).
|
|
48
|
+
*
|
|
49
|
+
* This is the default for Docker image assets if the '@aws-cdk/aws-ecr-assets:dockerIgnoreSupport'
|
|
50
|
+
* context flag is set.
|
|
51
|
+
*/
|
|
52
|
+
DOCKER = "docker"
|
|
53
|
+
}
|
|
54
|
+
interface FileOptions {
|
|
55
|
+
/**
|
|
56
|
+
* File paths matching the patterns will be excluded. See `ignoreMode` to set the matching behavior.
|
|
57
|
+
* Has no effect on Assets bundled using the `bundling` property.
|
|
58
|
+
*
|
|
59
|
+
* @default - nothing is excluded
|
|
60
|
+
*/
|
|
61
|
+
readonly exclude?: string[];
|
|
62
|
+
/**
|
|
63
|
+
* The ignore behavior to use for `exclude` patterns.
|
|
64
|
+
*
|
|
65
|
+
* @default IgnoreMode.GLOB
|
|
66
|
+
*/
|
|
67
|
+
readonly ignoreMode?: IgnoreMode;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Options applied when copying directories
|
|
71
|
+
*/
|
|
72
|
+
export interface CopyOptions extends FileOptions {
|
|
73
|
+
/**
|
|
74
|
+
* A strategy for how to handle symlinks.
|
|
75
|
+
*
|
|
76
|
+
* @default SymlinkFollowMode.NEVER
|
|
77
|
+
*/
|
|
78
|
+
readonly follow?: SymlinkFollowMode;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Options applied when copying directories into the staging location.
|
|
82
|
+
*/
|
|
83
|
+
export interface FileCopyOptions extends FileOptions {
|
|
84
|
+
/**
|
|
85
|
+
* A strategy for how to handle symlinks.
|
|
86
|
+
*
|
|
87
|
+
* @default SymlinkFollowMode.NEVER
|
|
88
|
+
*/
|
|
89
|
+
readonly followSymlinks?: SymlinkFollowMode;
|
|
90
|
+
}
|
|
91
|
+
interface ExtraHashOptions {
|
|
92
|
+
/**
|
|
93
|
+
* Extra information to encode into the fingerprint (e.g. build instructions
|
|
94
|
+
* and other inputs)
|
|
95
|
+
*
|
|
96
|
+
* @default - hash is only based on source content
|
|
97
|
+
*/
|
|
98
|
+
readonly extraHash?: string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Options related to calculating source hash.
|
|
102
|
+
*/
|
|
103
|
+
export interface FingerprintOptions extends CopyOptions, ExtraHashOptions {
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Options related to calculating source hash.
|
|
107
|
+
*/
|
|
108
|
+
export interface FileFingerprintOptions extends FileCopyOptions, ExtraHashOptions {
|
|
109
|
+
}
|
|
110
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// https://github.com/aws/aws-cdk/blob/v2.186.0/packages/aws-cdk-lib/core/lib/fs/options.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.IgnoreMode = exports.SymlinkFollowMode = void 0;
|
|
5
|
+
/**
|
|
6
|
+
* Determines how symlinks are followed.
|
|
7
|
+
*/
|
|
8
|
+
var SymlinkFollowMode;
|
|
9
|
+
(function (SymlinkFollowMode) {
|
|
10
|
+
/**
|
|
11
|
+
* Never follow symlinks.
|
|
12
|
+
*/
|
|
13
|
+
SymlinkFollowMode["NEVER"] = "never";
|
|
14
|
+
/**
|
|
15
|
+
* Materialize all symlinks, whether they are internal or external to the source directory.
|
|
16
|
+
*/
|
|
17
|
+
SymlinkFollowMode["ALWAYS"] = "always";
|
|
18
|
+
/**
|
|
19
|
+
* Only follows symlinks that are external to the source directory.
|
|
20
|
+
*/
|
|
21
|
+
SymlinkFollowMode["EXTERNAL"] = "external";
|
|
22
|
+
/**
|
|
23
|
+
* Forbids source from having any symlinks pointing outside of the source
|
|
24
|
+
* tree.
|
|
25
|
+
*
|
|
26
|
+
* This is the safest mode of operation as it ensures that copy operations
|
|
27
|
+
* won't materialize files from the user's file system. Internal symlinks are
|
|
28
|
+
* not followed.
|
|
29
|
+
*
|
|
30
|
+
* If the copy operation runs into an external symlink, it will fail.
|
|
31
|
+
*/
|
|
32
|
+
SymlinkFollowMode["BLOCK_EXTERNAL"] = "internal-only";
|
|
33
|
+
})(SymlinkFollowMode || (exports.SymlinkFollowMode = SymlinkFollowMode = {}));
|
|
34
|
+
/**
|
|
35
|
+
* Determines the ignore behavior to use.
|
|
36
|
+
*/
|
|
37
|
+
var IgnoreMode;
|
|
38
|
+
(function (IgnoreMode) {
|
|
39
|
+
/**
|
|
40
|
+
* Ignores file paths based on simple glob patterns.
|
|
41
|
+
*
|
|
42
|
+
* This is the default for file assets.
|
|
43
|
+
*
|
|
44
|
+
* It is also the default for Docker image assets, unless the '@aws-cdk/aws-ecr-assets:dockerIgnoreSupport'
|
|
45
|
+
* context flag is set.
|
|
46
|
+
*/
|
|
47
|
+
IgnoreMode["GLOB"] = "glob";
|
|
48
|
+
/**
|
|
49
|
+
* Ignores file paths based on the [`.gitignore specification`](https://git-scm.com/docs/gitignore).
|
|
50
|
+
*/
|
|
51
|
+
IgnoreMode["GIT"] = "git";
|
|
52
|
+
/**
|
|
53
|
+
* Ignores file paths based on the [`.dockerignore specification`](https://docs.docker.com/engine/reference/builder/#dockerignore-file).
|
|
54
|
+
*
|
|
55
|
+
* This is the default for Docker image assets if the '@aws-cdk/aws-ecr-assets:dockerIgnoreSupport'
|
|
56
|
+
* context flag is set.
|
|
57
|
+
*/
|
|
58
|
+
IgnoreMode["DOCKER"] = "docker";
|
|
59
|
+
})(IgnoreMode || (exports.IgnoreMode = IgnoreMode = {}));
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mcy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwyRkFBMkY7OztBQUUzRjs7R0FFRztBQUNILElBQVksaUJBMkJYO0FBM0JELFdBQVksaUJBQWlCO0lBQzNCOztPQUVHO0lBQ0gsb0NBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsc0NBQWlCLENBQUE7SUFFakI7O09BRUc7SUFDSCwwQ0FBcUIsQ0FBQTtJQUVyQjs7Ozs7Ozs7O09BU0c7SUFDSCxxREFBZ0MsQ0FBQTtBQUNsQyxDQUFDLEVBM0JXLGlCQUFpQixpQ0FBakIsaUJBQWlCLFFBMkI1QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxVQXVCWDtBQXZCRCxXQUFZLFVBQVU7SUFDcEI7Ozs7Ozs7T0FPRztJQUNILDJCQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILHlCQUFXLENBQUE7SUFFWDs7Ozs7T0FLRztJQUNILCtCQUFpQixDQUFBO0FBQ25CLENBQUMsRUF2QlcsVUFBVSwwQkFBVixVQUFVLFFBdUJyQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE4Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2NvcmUvbGliL2ZzL29wdGlvbnMudHNcblxuLyoqXG4gKiBEZXRlcm1pbmVzIGhvdyBzeW1saW5rcyBhcmUgZm9sbG93ZWQuXG4gKi9cbmV4cG9ydCBlbnVtIFN5bWxpbmtGb2xsb3dNb2RlIHtcbiAgLyoqXG4gICAqIE5ldmVyIGZvbGxvdyBzeW1saW5rcy5cbiAgICovXG4gIE5FVkVSID0gXCJuZXZlclwiLFxuXG4gIC8qKlxuICAgKiBNYXRlcmlhbGl6ZSBhbGwgc3ltbGlua3MsIHdoZXRoZXIgdGhleSBhcmUgaW50ZXJuYWwgb3IgZXh0ZXJuYWwgdG8gdGhlIHNvdXJjZSBkaXJlY3RvcnkuXG4gICAqL1xuICBBTFdBWVMgPSBcImFsd2F5c1wiLFxuXG4gIC8qKlxuICAgKiBPbmx5IGZvbGxvd3Mgc3ltbGlua3MgdGhhdCBhcmUgZXh0ZXJuYWwgdG8gdGhlIHNvdXJjZSBkaXJlY3RvcnkuXG4gICAqL1xuICBFWFRFUk5BTCA9IFwiZXh0ZXJuYWxcIixcblxuICAvKipcbiAgICogRm9yYmlkcyBzb3VyY2UgZnJvbSBoYXZpbmcgYW55IHN5bWxpbmtzIHBvaW50aW5nIG91dHNpZGUgb2YgdGhlIHNvdXJjZVxuICAgKiB0cmVlLlxuICAgKlxuICAgKiBUaGlzIGlzIHRoZSBzYWZlc3QgbW9kZSBvZiBvcGVyYXRpb24gYXMgaXQgZW5zdXJlcyB0aGF0IGNvcHkgb3BlcmF0aW9uc1xuICAgKiB3b24ndCBtYXRlcmlhbGl6ZSBmaWxlcyBmcm9tIHRoZSB1c2VyJ3MgZmlsZSBzeXN0ZW0uIEludGVybmFsIHN5bWxpbmtzIGFyZVxuICAgKiBub3QgZm9sbG93ZWQuXG4gICAqXG4gICAqIElmIHRoZSBjb3B5IG9wZXJhdGlvbiBydW5zIGludG8gYW4gZXh0ZXJuYWwgc3ltbGluaywgaXQgd2lsbCBmYWlsLlxuICAgKi9cbiAgQkxPQ0tfRVhURVJOQUwgPSBcImludGVybmFsLW9ubHlcIixcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHRoZSBpZ25vcmUgYmVoYXZpb3IgdG8gdXNlLlxuICovXG5leHBvcnQgZW51bSBJZ25vcmVNb2RlIHtcbiAgLyoqXG4gICAqIElnbm9yZXMgZmlsZSBwYXRocyBiYXNlZCBvbiBzaW1wbGUgZ2xvYiBwYXR0ZXJucy5cbiAgICpcbiAgICogVGhpcyBpcyB0aGUgZGVmYXVsdCBmb3IgZmlsZSBhc3NldHMuXG4gICAqXG4gICAqIEl0IGlzIGFsc28gdGhlIGRlZmF1bHQgZm9yIERvY2tlciBpbWFnZSBhc3NldHMsIHVubGVzcyB0aGUgJ0Bhd3MtY2RrL2F3cy1lY3ItYXNzZXRzOmRvY2tlcklnbm9yZVN1cHBvcnQnXG4gICAqIGNvbnRleHQgZmxhZyBpcyBzZXQuXG4gICAqL1xuICBHTE9CID0gXCJnbG9iXCIsXG5cbiAgLyoqXG4gICAqIElnbm9yZXMgZmlsZSBwYXRocyBiYXNlZCBvbiB0aGUgW2AuZ2l0aWdub3JlIHNwZWNpZmljYXRpb25gXShodHRwczovL2dpdC1zY20uY29tL2RvY3MvZ2l0aWdub3JlKS5cbiAgICovXG4gIEdJVCA9IFwiZ2l0XCIsXG5cbiAgLyoqXG4gICAqIElnbm9yZXMgZmlsZSBwYXRocyBiYXNlZCBvbiB0aGUgW2AuZG9ja2VyaWdub3JlIHNwZWNpZmljYXRpb25gXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvI2RvY2tlcmlnbm9yZS1maWxlKS5cbiAgICpcbiAgICogVGhpcyBpcyB0aGUgZGVmYXVsdCBmb3IgRG9ja2VyIGltYWdlIGFzc2V0cyBpZiB0aGUgJ0Bhd3MtY2RrL2F3cy1lY3ItYXNzZXRzOmRvY2tlcklnbm9yZVN1cHBvcnQnXG4gICAqIGNvbnRleHQgZmxhZyBpcyBzZXQuXG4gICAqL1xuICBET0NLRVIgPSBcImRvY2tlclwiLFxufVxuXG5pbnRlcmZhY2UgRmlsZU9wdGlvbnMge1xuICAvKipcbiAgICogRmlsZSBwYXRocyBtYXRjaGluZyB0aGUgcGF0dGVybnMgd2lsbCBiZSBleGNsdWRlZC4gU2VlIGBpZ25vcmVNb2RlYCB0byBzZXQgdGhlIG1hdGNoaW5nIGJlaGF2aW9yLlxuICAgKiBIYXMgbm8gZWZmZWN0IG9uIEFzc2V0cyBidW5kbGVkIHVzaW5nIHRoZSBgYnVuZGxpbmdgIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vdGhpbmcgaXMgZXhjbHVkZWRcbiAgICovXG4gIHJlYWRvbmx5IGV4Y2x1ZGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGlnbm9yZSBiZWhhdmlvciB0byB1c2UgZm9yIGBleGNsdWRlYCBwYXR0ZXJucy5cbiAgICpcbiAgICogQGRlZmF1bHQgSWdub3JlTW9kZS5HTE9CXG4gICAqL1xuICByZWFkb25seSBpZ25vcmVNb2RlPzogSWdub3JlTW9kZTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGFwcGxpZWQgd2hlbiBjb3B5aW5nIGRpcmVjdG9yaWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29weU9wdGlvbnMgZXh0ZW5kcyBGaWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBIHN0cmF0ZWd5IGZvciBob3cgdG8gaGFuZGxlIHN5bWxpbmtzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBTeW1saW5rRm9sbG93TW9kZS5ORVZFUlxuICAgKi9cbiAgcmVhZG9ubHkgZm9sbG93PzogU3ltbGlua0ZvbGxvd01vZGU7XG59XG5cbi8qKlxuICogT3B0aW9ucyBhcHBsaWVkIHdoZW4gY29weWluZyBkaXJlY3RvcmllcyBpbnRvIHRoZSBzdGFnaW5nIGxvY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVDb3B5T3B0aW9ucyBleHRlbmRzIEZpbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEEgc3RyYXRlZ3kgZm9yIGhvdyB0byBoYW5kbGUgc3ltbGlua3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IFN5bWxpbmtGb2xsb3dNb2RlLk5FVkVSXG4gICAqL1xuICByZWFkb25seSBmb2xsb3dTeW1saW5rcz86IFN5bWxpbmtGb2xsb3dNb2RlO1xufVxuXG5pbnRlcmZhY2UgRXh0cmFIYXNoT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBFeHRyYSBpbmZvcm1hdGlvbiB0byBlbmNvZGUgaW50byB0aGUgZmluZ2VycHJpbnQgKGUuZy4gYnVpbGQgaW5zdHJ1Y3Rpb25zXG4gICAqIGFuZCBvdGhlciBpbnB1dHMpXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gaGFzaCBpcyBvbmx5IGJhc2VkIG9uIHNvdXJjZSBjb250ZW50XG4gICAqL1xuICByZWFkb25seSBleHRyYUhhc2g/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyByZWxhdGVkIHRvIGNhbGN1bGF0aW5nIHNvdXJjZSBoYXNoLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbmdlcnByaW50T3B0aW9ucyBleHRlbmRzIENvcHlPcHRpb25zLCBFeHRyYUhhc2hPcHRpb25zIHt9XG5cbi8qKlxuICogT3B0aW9ucyByZWxhdGVkIHRvIGNhbGN1bGF0aW5nIHNvdXJjZSBoYXNoLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVGaW5nZXJwcmludE9wdGlvbnNcbiAgZXh0ZW5kcyBGaWxlQ29weU9wdGlvbnMsXG4gICAgRXh0cmFIYXNoT3B0aW9ucyB7fVxuIl19
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SymlinkFollowMode } from "./options";
|
|
2
|
+
/**
|
|
3
|
+
* Determines whether a symlink should be followed or not, based on a FollowMode.
|
|
4
|
+
*
|
|
5
|
+
* @param mode the FollowMode.
|
|
6
|
+
* @param sourceRoot the root of the source tree.
|
|
7
|
+
* @param realPath the real path of the target of the symlink.
|
|
8
|
+
*
|
|
9
|
+
* @returns true if the link should be followed.
|
|
10
|
+
*/
|
|
11
|
+
export declare function shouldFollow(mode: SymlinkFollowMode, sourceRoot: string, realPath: string): boolean;
|
package/lib/fs/utils.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// https://github.com/aws/aws-cdk/blob/v2.186.0/packages/aws-cdk-lib/core/lib/fs/utils.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.shouldFollow = shouldFollow;
|
|
5
|
+
const fs = require("fs");
|
|
6
|
+
const path = require("path");
|
|
7
|
+
const options_1 = require("./options");
|
|
8
|
+
/**
|
|
9
|
+
* Determines whether a symlink should be followed or not, based on a FollowMode.
|
|
10
|
+
*
|
|
11
|
+
* @param mode the FollowMode.
|
|
12
|
+
* @param sourceRoot the root of the source tree.
|
|
13
|
+
* @param realPath the real path of the target of the symlink.
|
|
14
|
+
*
|
|
15
|
+
* @returns true if the link should be followed.
|
|
16
|
+
*/
|
|
17
|
+
function shouldFollow(mode, sourceRoot, realPath) {
|
|
18
|
+
switch (mode) {
|
|
19
|
+
case options_1.SymlinkFollowMode.ALWAYS:
|
|
20
|
+
return fs.existsSync(realPath);
|
|
21
|
+
case options_1.SymlinkFollowMode.EXTERNAL:
|
|
22
|
+
return !_isInternal() && fs.existsSync(realPath);
|
|
23
|
+
case options_1.SymlinkFollowMode.BLOCK_EXTERNAL:
|
|
24
|
+
return _isInternal() && fs.existsSync(realPath);
|
|
25
|
+
case options_1.SymlinkFollowMode.NEVER:
|
|
26
|
+
return false;
|
|
27
|
+
default:
|
|
28
|
+
throw new Error(`Unsupported FollowMode: ${mode}`);
|
|
29
|
+
}
|
|
30
|
+
function _isInternal() {
|
|
31
|
+
return path.resolve(realPath).startsWith(path.resolve(sourceRoot));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZnMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHlGQUF5Rjs7QUFlekYsb0NBcUJDO0FBbENELHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsdUNBQThDO0FBRTlDOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsWUFBWSxDQUMxQixJQUF1QixFQUN2QixVQUFrQixFQUNsQixRQUFnQjtJQUVoQixRQUFRLElBQUksRUFBRSxDQUFDO1FBQ2IsS0FBSywyQkFBaUIsQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqQyxLQUFLLDJCQUFpQixDQUFDLFFBQVE7WUFDN0IsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkQsS0FBSywyQkFBaUIsQ0FBQyxjQUFjO1lBQ25DLE9BQU8sV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsRCxLQUFLLDJCQUFpQixDQUFDLEtBQUs7WUFDMUIsT0FBTyxLQUFLLENBQUM7UUFDZjtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELFNBQVMsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE4Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2NvcmUvbGliL2ZzL3V0aWxzLnRzXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgU3ltbGlua0ZvbGxvd01vZGUgfSBmcm9tIFwiLi9vcHRpb25zXCI7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgc3ltbGluayBzaG91bGQgYmUgZm9sbG93ZWQgb3Igbm90LCBiYXNlZCBvbiBhIEZvbGxvd01vZGUuXG4gKlxuICogQHBhcmFtIG1vZGUgICAgICAgdGhlIEZvbGxvd01vZGUuXG4gKiBAcGFyYW0gc291cmNlUm9vdCB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuXG4gKiBAcGFyYW0gcmVhbFBhdGggICB0aGUgcmVhbCBwYXRoIG9mIHRoZSB0YXJnZXQgb2YgdGhlIHN5bWxpbmsuXG4gKlxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgbGluayBzaG91bGQgYmUgZm9sbG93ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaG91bGRGb2xsb3coXG4gIG1vZGU6IFN5bWxpbmtGb2xsb3dNb2RlLFxuICBzb3VyY2VSb290OiBzdHJpbmcsXG4gIHJlYWxQYXRoOiBzdHJpbmcsXG4pOiBib29sZWFuIHtcbiAgc3dpdGNoIChtb2RlKSB7XG4gICAgY2FzZSBTeW1saW5rRm9sbG93TW9kZS5BTFdBWVM6XG4gICAgICByZXR1cm4gZnMuZXhpc3RzU3luYyhyZWFsUGF0aCk7XG4gICAgY2FzZSBTeW1saW5rRm9sbG93TW9kZS5FWFRFUk5BTDpcbiAgICAgIHJldHVybiAhX2lzSW50ZXJuYWwoKSAmJiBmcy5leGlzdHNTeW5jKHJlYWxQYXRoKTtcbiAgICBjYXNlIFN5bWxpbmtGb2xsb3dNb2RlLkJMT0NLX0VYVEVSTkFMOlxuICAgICAgcmV0dXJuIF9pc0ludGVybmFsKCkgJiYgZnMuZXhpc3RzU3luYyhyZWFsUGF0aCk7XG4gICAgY2FzZSBTeW1saW5rRm9sbG93TW9kZS5ORVZFUjpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBGb2xsb3dNb2RlOiAke21vZGV9YCk7XG4gIH1cblxuICBmdW5jdGlvbiBfaXNJbnRlcm5hbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcGF0aC5yZXNvbHZlKHJlYWxQYXRoKS5zdGFydHNXaXRoKHBhdGgucmVzb2x2ZShzb3VyY2VSb290KSk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/index.d.ts
CHANGED
|
@@ -5,4 +5,9 @@ export * from "./time-zone";
|
|
|
5
5
|
export * from "./expiration";
|
|
6
6
|
export * from "./size";
|
|
7
7
|
export * from "./terra-func";
|
|
8
|
+
export * from "./assets";
|
|
9
|
+
export * from "./asset-staging";
|
|
10
|
+
export * from "./asset-manager";
|
|
11
|
+
export * from "./bundling";
|
|
12
|
+
export * from "./fs";
|
|
8
13
|
export * as aws from "./aws";
|
package/lib/index.js
CHANGED
|
@@ -22,6 +22,12 @@ __exportStar(require("./time-zone"), exports);
|
|
|
22
22
|
__exportStar(require("./expiration"), exports);
|
|
23
23
|
__exportStar(require("./size"), exports);
|
|
24
24
|
__exportStar(require("./terra-func"), exports);
|
|
25
|
+
// AWS CDK Bundling
|
|
26
|
+
__exportStar(require("./assets"), exports);
|
|
27
|
+
__exportStar(require("./asset-staging"), exports);
|
|
28
|
+
__exportStar(require("./asset-manager"), exports);
|
|
29
|
+
__exportStar(require("./bundling"), exports);
|
|
30
|
+
__exportStar(require("./fs"), exports);
|
|
25
31
|
// cloud specific exports
|
|
26
32
|
exports.aws = require("./aws");
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFBaUM7QUFDakMsK0NBQTZCO0FBQzdCLDZDQUEyQjtBQUMzQiw4Q0FBNEI7QUFDNUIsK0NBQTZCO0FBQzdCLHlDQUF1QjtBQUN2QiwrQ0FBNkI7QUFFN0IsbUJBQW1CO0FBQ25CLDJDQUF5QjtBQUN6QixrREFBZ0M7QUFDaEMsa0RBQWdDO0FBQ2hDLDZDQUEyQjtBQUMzQix1Q0FBcUI7QUFFckIseUJBQXlCO0FBQ3pCLCtCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NvbnN0cnVjdC1iYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGFjay1iYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kdXJhdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGltZS16b25lXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9leHBpcmF0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zaXplXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90ZXJyYS1mdW5jXCI7XG5cbi8vIEFXUyBDREsgQnVuZGxpbmdcbmV4cG9ydCAqIGZyb20gXCIuL2Fzc2V0c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vYXNzZXQtc3RhZ2luZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vYXNzZXQtbWFuYWdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYnVuZGxpbmdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ZzXCI7XG5cbi8vIGNsb3VkIHNwZWNpZmljIGV4cG9ydHNcbmV4cG9ydCAqIGFzIGF3cyBmcm9tIFwiLi9hd3NcIjtcbiJdfQ==
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { SpawnSyncOptions } from "child_process";
|
|
2
|
+
import { BundlingOptions } from "../bundling";
|
|
3
|
+
/**
|
|
4
|
+
* Options for Docker based bundling of assets
|
|
5
|
+
*/
|
|
6
|
+
interface AssetBundlingOptions extends BundlingOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Path where the source files are located
|
|
9
|
+
*/
|
|
10
|
+
readonly sourcePath: string;
|
|
11
|
+
/**
|
|
12
|
+
* Path where the output files should be stored
|
|
13
|
+
*/
|
|
14
|
+
readonly bundleDir: string;
|
|
15
|
+
}
|
|
16
|
+
declare abstract class AssetBundlingBase {
|
|
17
|
+
protected options: AssetBundlingOptions;
|
|
18
|
+
constructor(options: AssetBundlingOptions);
|
|
19
|
+
/**
|
|
20
|
+
* Determines a useful default user if not given otherwise
|
|
21
|
+
*/
|
|
22
|
+
protected determineUser(): string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Bundles files with bind mount as copy method
|
|
26
|
+
*/
|
|
27
|
+
export declare class AssetBundlingBindMount extends AssetBundlingBase {
|
|
28
|
+
/**
|
|
29
|
+
* Bundle files with bind mount as copy method
|
|
30
|
+
*/
|
|
31
|
+
run(): void;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Provides a helper container for copying bundling related files to specific input and output volumes
|
|
35
|
+
*/
|
|
36
|
+
export declare class AssetBundlingVolumeCopy extends AssetBundlingBase {
|
|
37
|
+
/**
|
|
38
|
+
* Name of the Docker volume that is used for the asset input
|
|
39
|
+
*/
|
|
40
|
+
private inputVolumeName;
|
|
41
|
+
/**
|
|
42
|
+
* Name of the Docker volume that is used for the asset output
|
|
43
|
+
*/
|
|
44
|
+
private outputVolumeName;
|
|
45
|
+
/**
|
|
46
|
+
* Name of the Docker helper container to copy files into the volume
|
|
47
|
+
*/
|
|
48
|
+
copyContainerName: string;
|
|
49
|
+
constructor(options: AssetBundlingOptions);
|
|
50
|
+
/**
|
|
51
|
+
* Creates volumes for asset input and output
|
|
52
|
+
*/
|
|
53
|
+
private prepareVolumes;
|
|
54
|
+
/**
|
|
55
|
+
* Removes volumes for asset input and output
|
|
56
|
+
*/
|
|
57
|
+
private cleanVolumes;
|
|
58
|
+
/**
|
|
59
|
+
* runs a helper container that holds volumes and does some preparation tasks
|
|
60
|
+
* @param user The user that will later access these files and needs permissions to do so
|
|
61
|
+
*/
|
|
62
|
+
private startHelperContainer;
|
|
63
|
+
/**
|
|
64
|
+
* removes the Docker helper container
|
|
65
|
+
*/
|
|
66
|
+
private cleanHelperContainer;
|
|
67
|
+
/**
|
|
68
|
+
* copy files from the host where this is executed into the input volume
|
|
69
|
+
* @param sourcePath - path to folder where files should be copied from - without trailing slash
|
|
70
|
+
*/
|
|
71
|
+
private copyInputFrom;
|
|
72
|
+
/**
|
|
73
|
+
* copy files from the the output volume to the host where this is executed
|
|
74
|
+
* @param outputPath - path to folder where files should be copied to - without trailing slash
|
|
75
|
+
*/
|
|
76
|
+
private copyOutputTo;
|
|
77
|
+
/**
|
|
78
|
+
* Bundle files with VOLUME_COPY method
|
|
79
|
+
*/
|
|
80
|
+
run(): void;
|
|
81
|
+
}
|
|
82
|
+
export declare function dockerExec(args: string[], options?: SpawnSyncOptions): import("child_process").SpawnSyncReturns<string | Buffer<ArrayBufferLike>>;
|
|
83
|
+
export {};
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// https://github.com/aws/aws-cdk/blob/v2.186.0/packages/aws-cdk-lib/core/lib/private/asset-staging.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.AssetBundlingVolumeCopy = exports.AssetBundlingBindMount = void 0;
|
|
5
|
+
exports.dockerExec = dockerExec;
|
|
6
|
+
const child_process_1 = require("child_process");
|
|
7
|
+
const crypto = require("crypto");
|
|
8
|
+
const os = require("os");
|
|
9
|
+
// import { AssetStaging } from "../asset-staging";
|
|
10
|
+
const asset_staging_1 = require("../asset-staging");
|
|
11
|
+
class AssetBundlingBase {
|
|
12
|
+
constructor(options) {
|
|
13
|
+
this.options = options;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Determines a useful default user if not given otherwise
|
|
17
|
+
*/
|
|
18
|
+
determineUser() {
|
|
19
|
+
let user;
|
|
20
|
+
if (this.options.user) {
|
|
21
|
+
user = this.options.user;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
// Default to current user
|
|
25
|
+
const userInfo = os.userInfo();
|
|
26
|
+
user =
|
|
27
|
+
userInfo.uid !== -1 // uid is -1 on Windows
|
|
28
|
+
? `${userInfo.uid}:${userInfo.gid}`
|
|
29
|
+
: "1000:1000";
|
|
30
|
+
}
|
|
31
|
+
return user;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Bundles files with bind mount as copy method
|
|
36
|
+
*/
|
|
37
|
+
class AssetBundlingBindMount extends AssetBundlingBase {
|
|
38
|
+
/**
|
|
39
|
+
* Bundle files with bind mount as copy method
|
|
40
|
+
*/
|
|
41
|
+
run() {
|
|
42
|
+
this.options.image.run({
|
|
43
|
+
command: this.options.command,
|
|
44
|
+
user: this.determineUser(),
|
|
45
|
+
environment: this.options.environment,
|
|
46
|
+
entrypoint: this.options.entrypoint,
|
|
47
|
+
workingDirectory: this.options.workingDirectory ?? asset_staging_1.AssetStaging.BUNDLING_INPUT_DIR,
|
|
48
|
+
securityOpt: this.options.securityOpt ?? "",
|
|
49
|
+
volumesFrom: this.options.volumesFrom,
|
|
50
|
+
volumes: [
|
|
51
|
+
{
|
|
52
|
+
hostPath: this.options.sourcePath,
|
|
53
|
+
containerPath: asset_staging_1.AssetStaging.BUNDLING_INPUT_DIR,
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
hostPath: this.options.bundleDir,
|
|
57
|
+
containerPath: asset_staging_1.AssetStaging.BUNDLING_OUTPUT_DIR,
|
|
58
|
+
},
|
|
59
|
+
...(this.options.volumes ?? []),
|
|
60
|
+
],
|
|
61
|
+
network: this.options.network,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.AssetBundlingBindMount = AssetBundlingBindMount;
|
|
66
|
+
/**
|
|
67
|
+
* Provides a helper container for copying bundling related files to specific input and output volumes
|
|
68
|
+
*/
|
|
69
|
+
class AssetBundlingVolumeCopy extends AssetBundlingBase {
|
|
70
|
+
constructor(options) {
|
|
71
|
+
super(options);
|
|
72
|
+
const copySuffix = crypto.randomBytes(12).toString("hex");
|
|
73
|
+
this.inputVolumeName = `assetInput${copySuffix}`;
|
|
74
|
+
this.outputVolumeName = `assetOutput${copySuffix}`;
|
|
75
|
+
this.copyContainerName = `copyContainer${copySuffix}`;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Creates volumes for asset input and output
|
|
79
|
+
*/
|
|
80
|
+
prepareVolumes() {
|
|
81
|
+
dockerExec(["volume", "create", this.inputVolumeName]);
|
|
82
|
+
dockerExec(["volume", "create", this.outputVolumeName]);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Removes volumes for asset input and output
|
|
86
|
+
*/
|
|
87
|
+
cleanVolumes() {
|
|
88
|
+
dockerExec(["volume", "rm", this.inputVolumeName]);
|
|
89
|
+
dockerExec(["volume", "rm", this.outputVolumeName]);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* runs a helper container that holds volumes and does some preparation tasks
|
|
93
|
+
* @param user The user that will later access these files and needs permissions to do so
|
|
94
|
+
*/
|
|
95
|
+
startHelperContainer(user) {
|
|
96
|
+
dockerExec([
|
|
97
|
+
"run",
|
|
98
|
+
"--name",
|
|
99
|
+
this.copyContainerName,
|
|
100
|
+
"-v",
|
|
101
|
+
`${this.inputVolumeName}:${asset_staging_1.AssetStaging.BUNDLING_INPUT_DIR}`,
|
|
102
|
+
"-v",
|
|
103
|
+
`${this.outputVolumeName}:${asset_staging_1.AssetStaging.BUNDLING_OUTPUT_DIR}`,
|
|
104
|
+
"public.ecr.aws/docker/library/alpine",
|
|
105
|
+
"sh",
|
|
106
|
+
"-c",
|
|
107
|
+
`mkdir -p ${asset_staging_1.AssetStaging.BUNDLING_INPUT_DIR} && chown -R ${user} ${asset_staging_1.AssetStaging.BUNDLING_OUTPUT_DIR} && chown -R ${user} ${asset_staging_1.AssetStaging.BUNDLING_INPUT_DIR}`,
|
|
108
|
+
]);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* removes the Docker helper container
|
|
112
|
+
*/
|
|
113
|
+
cleanHelperContainer() {
|
|
114
|
+
dockerExec(["rm", this.copyContainerName]);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* copy files from the host where this is executed into the input volume
|
|
118
|
+
* @param sourcePath - path to folder where files should be copied from - without trailing slash
|
|
119
|
+
*/
|
|
120
|
+
copyInputFrom(sourcePath) {
|
|
121
|
+
dockerExec([
|
|
122
|
+
"cp",
|
|
123
|
+
`${sourcePath}/.`,
|
|
124
|
+
`${this.copyContainerName}:${asset_staging_1.AssetStaging.BUNDLING_INPUT_DIR}`,
|
|
125
|
+
]);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* copy files from the the output volume to the host where this is executed
|
|
129
|
+
* @param outputPath - path to folder where files should be copied to - without trailing slash
|
|
130
|
+
*/
|
|
131
|
+
copyOutputTo(outputPath) {
|
|
132
|
+
dockerExec([
|
|
133
|
+
"cp",
|
|
134
|
+
`${this.copyContainerName}:${asset_staging_1.AssetStaging.BUNDLING_OUTPUT_DIR}/.`,
|
|
135
|
+
outputPath,
|
|
136
|
+
]);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Bundle files with VOLUME_COPY method
|
|
140
|
+
*/
|
|
141
|
+
run() {
|
|
142
|
+
const user = this.determineUser();
|
|
143
|
+
this.prepareVolumes();
|
|
144
|
+
this.startHelperContainer(user); // TODO handle user properly
|
|
145
|
+
this.copyInputFrom(this.options.sourcePath);
|
|
146
|
+
this.options.image.run({
|
|
147
|
+
command: this.options.command,
|
|
148
|
+
user: user,
|
|
149
|
+
environment: this.options.environment,
|
|
150
|
+
entrypoint: this.options.entrypoint,
|
|
151
|
+
workingDirectory: this.options.workingDirectory ?? asset_staging_1.AssetStaging.BUNDLING_INPUT_DIR,
|
|
152
|
+
securityOpt: this.options.securityOpt ?? "",
|
|
153
|
+
volumes: this.options.volumes,
|
|
154
|
+
volumesFrom: [
|
|
155
|
+
this.copyContainerName,
|
|
156
|
+
...(this.options.volumesFrom ?? []),
|
|
157
|
+
],
|
|
158
|
+
});
|
|
159
|
+
this.copyOutputTo(this.options.bundleDir);
|
|
160
|
+
this.cleanHelperContainer();
|
|
161
|
+
this.cleanVolumes();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
exports.AssetBundlingVolumeCopy = AssetBundlingVolumeCopy;
|
|
165
|
+
function dockerExec(args, options) {
|
|
166
|
+
const prog = process.env.CDK_DOCKER ?? "docker";
|
|
167
|
+
const proc = (0, child_process_1.spawnSync)(prog, args, options ?? {
|
|
168
|
+
encoding: "utf-8",
|
|
169
|
+
stdio: [
|
|
170
|
+
// show Docker output
|
|
171
|
+
"ignore", // ignore stdio
|
|
172
|
+
// AWSCDK: process.stderr, // redirect stdout to stderr (causes radix error in bun?)
|
|
173
|
+
"inherit",
|
|
174
|
+
"inherit", // inherit stderr
|
|
175
|
+
],
|
|
176
|
+
});
|
|
177
|
+
if (proc.error) {
|
|
178
|
+
throw proc.error;
|
|
179
|
+
}
|
|
180
|
+
if (proc.status !== 0) {
|
|
181
|
+
const reason = proc.signal != null ? `signal ${proc.signal}` : `status ${proc.status}`;
|
|
182
|
+
const command = [
|
|
183
|
+
prog,
|
|
184
|
+
...args.map((arg) => /[^a-z0-9_-]/i.test(arg) ? JSON.stringify(arg) : arg),
|
|
185
|
+
].join(" ");
|
|
186
|
+
function prependLines(firstLine, text) {
|
|
187
|
+
if (!text || text.length === 0) {
|
|
188
|
+
return [];
|
|
189
|
+
}
|
|
190
|
+
const padding = " ".repeat(firstLine.length);
|
|
191
|
+
return text
|
|
192
|
+
.toString("utf-8")
|
|
193
|
+
.split("\n")
|
|
194
|
+
.map((line, idx) => `${idx === 0 ? firstLine : padding}${line}`);
|
|
195
|
+
}
|
|
196
|
+
throw new Error([
|
|
197
|
+
`${prog} exited with ${reason}`,
|
|
198
|
+
...(prependLines("--> STDOUT: ", proc.stdout) ?? []),
|
|
199
|
+
...(prependLines("--> STDERR: ", proc.stderr) ?? []),
|
|
200
|
+
`--> Command: ${command}`,
|
|
201
|
+
].join("\n"));
|
|
202
|
+
}
|
|
203
|
+
return proc;
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtc3RhZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcml2YXRlL2Fzc2V0LXN0YWdpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHNHQUFzRzs7O0FBME10RyxnQ0F3REM7QUFoUUQsaURBQTREO0FBQzVELGlDQUFpQztBQUNqQyx5QkFBeUI7QUFDekIsbURBQW1EO0FBQ25ELG9EQUFnRDtBQWlCaEQsTUFBZSxpQkFBaUI7SUFFOUIsWUFBWSxPQUE2QjtRQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBQ0Q7O09BRUc7SUFDTyxhQUFhO1FBQ3JCLElBQUksSUFBWSxDQUFDO1FBQ2pCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QixJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDM0IsQ0FBQzthQUFNLENBQUM7WUFDTiwwQkFBMEI7WUFDMUIsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQy9CLElBQUk7Z0JBQ0YsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyx1QkFBdUI7b0JBQ3pDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLElBQUksUUFBUSxDQUFDLEdBQUcsRUFBRTtvQkFDbkMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUNwQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQWEsc0JBQXVCLFNBQVEsaUJBQWlCO0lBQzNEOztPQUVHO0lBQ0ksR0FBRztRQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPO1lBQzdCLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQzFC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QUMsQ0FBQyxHQUFHLENBQ3JEO1NBQ0YsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFWixTQUFTLFlBQVksQ0FDbkIsU0FBaUIsRUFDakIsSUFBaUM7WUFFakMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMvQixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFDRCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QyxPQUFPLElBQUk7aUJBQ1IsUUFBUSxDQUFDLE9BQU8sQ0FBQztpQkFDakIsS0FBSyxDQUFDLElBQUksQ0FBQztpQkFDWCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQ2I7WUFDRSxHQUFHLElBQUksZ0JBQWdCLE1BQU0sRUFBRTtZQUMvQixHQUFHLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JELEdBQUcsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckQsZ0JBQWdCLE9BQU8sRUFBRTtTQUMxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE4Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2NvcmUvbGliL3ByaXZhdGUvYXNzZXQtc3RhZ2luZy50c1xuXG5pbXBvcnQgeyBzcGF3blN5bmMsIFNwYXduU3luY09wdGlvbnMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gXCJjcnlwdG9cIjtcbmltcG9ydCAqIGFzIG9zIGZyb20gXCJvc1wiO1xuLy8gaW1wb3J0IHsgQXNzZXRTdGFnaW5nIH0gZnJvbSBcIi4uL2Fzc2V0LXN0YWdpbmdcIjtcbmltcG9ydCB7IEFzc2V0U3RhZ2luZyB9IGZyb20gXCIuLi9hc3NldC1zdGFnaW5nXCI7XG5pbXBvcnQgeyBCdW5kbGluZ09wdGlvbnMgfSBmcm9tIFwiLi4vYnVuZGxpbmdcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBEb2NrZXIgYmFzZWQgYnVuZGxpbmcgb2YgYXNzZXRzXG4gKi9cbmludGVyZmFjZSBBc3NldEJ1bmRsaW5nT3B0aW9ucyBleHRlbmRzIEJ1bmRsaW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQYXRoIHdoZXJlIHRoZSBzb3VyY2UgZmlsZXMgYXJlIGxvY2F0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZVBhdGg6IHN0cmluZztcbiAgLyoqXG4gICAqIFBhdGggd2hlcmUgdGhlIG91dHB1dCBmaWxlcyBzaG91bGQgYmUgc3RvcmVkXG4gICAqL1xuICByZWFkb25seSBidW5kbGVEaXI6IHN0cmluZztcbn1cblxuYWJzdHJhY3QgY2xhc3MgQXNzZXRCdW5kbGluZ0Jhc2Uge1xuICBwcm90ZWN0ZWQgb3B0aW9uczogQXNzZXRCdW5kbGluZ09wdGlvbnM7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEFzc2V0QnVuZGxpbmdPcHRpb25zKSB7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgfVxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBhIHVzZWZ1bCBkZWZhdWx0IHVzZXIgaWYgbm90IGdpdmVuIG90aGVyd2lzZVxuICAgKi9cbiAgcHJvdGVjdGVkIGRldGVybWluZVVzZXIoKSB7XG4gICAgbGV0IHVzZXI6IHN0cmluZztcbiAgICBpZiAodGhpcy5vcHRpb25zLnVzZXIpIHtcbiAgICAgIHVzZXIgPSB0aGlzLm9wdGlvbnMudXNlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRGVmYXVsdCB0byBjdXJyZW50IHVzZXJcbiAgICAgIGNvbnN0IHVzZXJJbmZvID0gb3MudXNlckluZm8oKTtcbiAgICAgIHVzZXIgPVxuICAgICAgICB1c2VySW5mby51aWQgIT09IC0xIC8vIHVpZCBpcyAtMSBvbiBXaW5kb3dzXG4gICAgICAgICAgPyBgJHt1c2VySW5mby51aWR9OiR7dXNlckluZm8uZ2lkfWBcbiAgICAgICAgICA6IFwiMTAwMDoxMDAwXCI7XG4gICAgfVxuICAgIHJldHVybiB1c2VyO1xuICB9XG59XG5cbi8qKlxuICogQnVuZGxlcyBmaWxlcyB3aXRoIGJpbmQgbW91bnQgYXMgY29weSBtZXRob2RcbiAqL1xuZXhwb3J0IGNsYXNzIEFzc2V0QnVuZGxpbmdCaW5kTW91bnQgZXh0ZW5kcyBBc3NldEJ1bmRsaW5nQmFzZSB7XG4gIC8qKlxuICAgKiBCdW5kbGUgZmlsZXMgd2l0aCBiaW5kIG1vdW50IGFzIGNvcHkgbWV0aG9kXG4gICAqL1xuICBwdWJsaWMgcnVuKCkge1xuICAgIHRoaXMub3B0aW9ucy5pbWFnZS5ydW4oe1xuICAgICAgY29tbWFuZDogdGhpcy5vcHRpb25zLmNvbW1hbmQsXG4gICAgICB1c2VyOiB0aGlzLmRldGVybWluZVVzZXIoKSxcbiAgICAgIGVudmlyb25tZW50OiB0aGlzLm9wdGlvbnMuZW52aXJvbm1lbnQsXG4gICAgICBlbnRyeXBvaW50OiB0aGlzLm9wdGlvbnMuZW50cnlwb2ludCxcbiAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6XG4gICAgICAgIHRoaXMub3B0aW9ucy53b3JraW5nRGlyZWN0b3J5ID8/IEFzc2V0U3RhZ2luZy5CVU5ETElOR19JTlBVVF9ESVIsXG4gICAgICBzZWN1cml0eU9wdDogdGhpcy5vcHRpb25zLnNlY3VyaXR5T3B0ID8/IFwiXCIsXG4gICAgICB2b2x1bWVzRnJvbTogdGhpcy5vcHRpb25zLnZvbHVtZXNGcm9tLFxuICAgICAgdm9sdW1lczogW1xuICAgICAgICB7XG4gICAgICAgICAgaG9zdFBhdGg6IHRoaXMub3B0aW9ucy5zb3VyY2VQYXRoLFxuICAgICAgICAgIGNvbnRhaW5lclBhdGg6IEFzc2V0U3RhZ2luZy5CVU5ETElOR19JTlBVVF9ESVIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBob3N0UGF0aDogdGhpcy5vcHRpb25zLmJ1bmRsZURpcixcbiAgICAgICAgICBjb250YWluZXJQYXRoOiBBc3NldFN0YWdpbmcuQlVORExJTkdfT1VUUFVUX0RJUixcbiAgICAgICAgfSxcbiAgICAgICAgLi4uKHRoaXMub3B0aW9ucy52b2x1bWVzID8/IFtdKSxcbiAgICAgIF0sXG4gICAgICBuZXR3b3JrOiB0aGlzLm9wdGlvbnMubmV0d29yayxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3ZpZGVzIGEgaGVscGVyIGNvbnRhaW5lciBmb3IgY29weWluZyBidW5kbGluZyByZWxhdGVkIGZpbGVzIHRvIHNwZWNpZmljIGlucHV0IGFuZCBvdXRwdXQgdm9sdW1lc1xuICovXG5leHBvcnQgY2xhc3MgQXNzZXRCdW5kbGluZ1ZvbHVtZUNvcHkgZXh0ZW5kcyBBc3NldEJ1bmRsaW5nQmFzZSB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBEb2NrZXIgdm9sdW1lIHRoYXQgaXMgdXNlZCBmb3IgdGhlIGFzc2V0IGlucHV0XG4gICAqL1xuICBwcml2YXRlIGlucHV0Vm9sdW1lTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgRG9ja2VyIHZvbHVtZSB0aGF0IGlzIHVzZWQgZm9yIHRoZSBhc3NldCBvdXRwdXRcbiAgICovXG4gIHByaXZhdGUgb3V0cHV0Vm9sdW1lTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgRG9ja2VyIGhlbHBlciBjb250YWluZXIgdG8gY29weSBmaWxlcyBpbnRvIHRoZSB2b2x1bWVcbiAgICovXG4gIHB1YmxpYyBjb3B5Q29udGFpbmVyTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEFzc2V0QnVuZGxpbmdPcHRpb25zKSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG4gICAgY29uc3QgY29weVN1ZmZpeCA9IGNyeXB0by5yYW5kb21CeXRlcygxMikudG9TdHJpbmcoXCJoZXhcIik7XG4gICAgdGhpcy5pbnB1dFZvbHVtZU5hbWUgPSBgYXNzZXRJbnB1dCR7Y29weVN1ZmZpeH1gO1xuICAgIHRoaXMub3V0cHV0Vm9sdW1lTmFtZSA9IGBhc3NldE91dHB1dCR7Y29weVN1ZmZpeH1gO1xuICAgIHRoaXMuY29weUNvbnRhaW5lck5hbWUgPSBgY29weUNvbnRhaW5lciR7Y29weVN1ZmZpeH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdm9sdW1lcyBmb3IgYXNzZXQgaW5wdXQgYW5kIG91dHB1dFxuICAgKi9cbiAgcHJpdmF0ZSBwcmVwYXJlVm9sdW1lcygpIHtcbiAgICBkb2NrZXJFeGVjKFtcInZvbHVtZVwiLCBcImNyZWF0ZVwiLCB0aGlzLmlucHV0Vm9sdW1lTmFtZV0pO1xuICAgIGRvY2tlckV4ZWMoW1widm9sdW1lXCIsIFwiY3JlYXRlXCIsIHRoaXMub3V0cHV0Vm9sdW1lTmFtZV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgdm9sdW1lcyBmb3IgYXNzZXQgaW5wdXQgYW5kIG91dHB1dFxuICAgKi9cbiAgcHJpdmF0ZSBjbGVhblZvbHVtZXMoKSB7XG4gICAgZG9ja2VyRXhlYyhbXCJ2b2x1bWVcIiwgXCJybVwiLCB0aGlzLmlucHV0Vm9sdW1lTmFtZV0pO1xuICAgIGRvY2tlckV4ZWMoW1widm9sdW1lXCIsIFwicm1cIiwgdGhpcy5vdXRwdXRWb2x1bWVOYW1lXSk7XG4gIH1cblxuICAvKipcbiAgICogcnVucyBhIGhlbHBlciBjb250YWluZXIgdGhhdCBob2xkcyB2b2x1bWVzIGFuZCBkb2VzIHNvbWUgcHJlcGFyYXRpb24gdGFza3NcbiAgICogQHBhcmFtIHVzZXIgVGhlIHVzZXIgdGhhdCB3aWxsIGxhdGVyIGFjY2VzcyB0aGVzZSBmaWxlcyBhbmQgbmVlZHMgcGVybWlzc2lvbnMgdG8gZG8gc29cbiAgICovXG4gIHByaXZhdGUgc3RhcnRIZWxwZXJDb250YWluZXIodXNlcjogc3RyaW5nKSB7XG4gICAgZG9ja2VyRXhlYyhbXG4gICAgICBcInJ1blwiLFxuICAgICAgXCItLW5hbWVcIixcbiAgICAgIHRoaXMuY29weUNvbnRhaW5lck5hbWUsXG4gICAgICBcIi12XCIsXG4gICAgICBgJHt0aGlzLmlucHV0Vm9sdW1lTmFtZX06JHtBc3NldFN0YWdpbmcuQlVORExJTkdfSU5QVVRfRElSfWAsXG4gICAgICBcIi12XCIsXG4gICAgICBgJHt0aGlzLm91dHB1dFZvbHVtZU5hbWV9OiR7QXNzZXRTdGFnaW5nLkJVTkRMSU5HX09VVFBVVF9ESVJ9YCxcbiAgICAgIFwicHVibGljLmVjci5hd3MvZG9ja2VyL2xpYnJhcnkvYWxwaW5lXCIsXG4gICAgICBcInNoXCIsXG4gICAgICBcIi1jXCIsXG4gICAgICBgbWtkaXIgLXAgJHtBc3NldFN0YWdpbmcuQlVORExJTkdfSU5QVVRfRElSfSAmJiBjaG93biAtUiAke3VzZXJ9ICR7QXNzZXRTdGFnaW5nLkJVTkRMSU5HX09VVFBVVF9ESVJ9ICYmIGNob3duIC1SICR7dXNlcn0gJHtBc3NldFN0YWdpbmcuQlVORExJTkdfSU5QVVRfRElSfWAsXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogcmVtb3ZlcyB0aGUgRG9ja2VyIGhlbHBlciBjb250YWluZXJcbiAgICovXG4gIHByaXZhdGUgY2xlYW5IZWxwZXJDb250YWluZXIoKSB7XG4gICAgZG9ja2VyRXhlYyhbXCJybVwiLCB0aGlzLmNvcHlDb250YWluZXJOYW1lXSk7XG4gIH1cblxuICAvKipcbiAgICogY29weSBmaWxlcyBmcm9tIHRoZSBob3N0IHdoZXJlIHRoaXMgaXMgZXhlY3V0ZWQgaW50byB0aGUgaW5wdXQgdm9sdW1lXG4gICAqIEBwYXJhbSBzb3VyY2VQYXRoIC0gcGF0aCB0byBmb2xkZXIgd2hlcmUgZmlsZXMgc2hvdWxkIGJlIGNvcGllZCBmcm9tIC0gd2l0aG91dCB0cmFpbGluZyBzbGFzaFxuICAgKi9cbiAgcHJpdmF0ZSBjb3B5SW5wdXRGcm9tKHNvdXJjZVBhdGg6IHN0cmluZykge1xuICAgIGRvY2tlckV4ZWMoW1xuICAgICAgXCJjcFwiLFxuICAgICAgYCR7c291cmNlUGF0aH0vLmAsXG4gICAgICBgJHt0aGlzLmNvcHlDb250YWluZXJOYW1lfToke0Fzc2V0U3RhZ2luZy5CVU5ETElOR19JTlBVVF9ESVJ9YCxcbiAgICBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjb3B5IGZpbGVzIGZyb20gdGhlIHRoZSBvdXRwdXQgdm9sdW1lIHRvIHRoZSBob3N0IHdoZXJlIHRoaXMgaXMgZXhlY3V0ZWRcbiAgICogQHBhcmFtIG91dHB1dFBhdGggLSBwYXRoIHRvIGZvbGRlciB3aGVyZSBmaWxlcyBzaG91bGQgYmUgY29waWVkIHRvIC0gd2l0aG91dCB0cmFpbGluZyBzbGFzaFxuICAgKi9cbiAgcHJpdmF0ZSBjb3B5T3V0cHV0VG8ob3V0cHV0UGF0aDogc3RyaW5nKSB7XG4gICAgZG9ja2VyRXhlYyhbXG4gICAgICBcImNwXCIsXG4gICAgICBgJHt0aGlzLmNvcHlDb250YWluZXJOYW1lfToke0Fzc2V0U3RhZ2luZy5CVU5ETElOR19PVVRQVVRfRElSfS8uYCxcbiAgICAgIG91dHB1dFBhdGgsXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogQnVuZGxlIGZpbGVzIHdpdGggVk9MVU1FX0NPUFkgbWV0aG9kXG4gICAqL1xuICBwdWJsaWMgcnVuKCkge1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmRldGVybWluZVVzZXIoKTtcbiAgICB0aGlzLnByZXBhcmVWb2x1bWVzKCk7XG4gICAgdGhpcy5zdGFydEhlbHBlckNvbnRhaW5lcih1c2VyKTsgLy8gVE9ETyBoYW5kbGUgdXNlciBwcm9wZXJseVxuICAgIHRoaXMuY29weUlucHV0RnJvbSh0aGlzLm9wdGlvbnMuc291cmNlUGF0aCk7XG5cbiAgICB0aGlzLm9wdGlvbnMuaW1hZ2UucnVuKHtcbiAgICAgIGNvbW1hbmQ6IHRoaXMub3B0aW9ucy5jb21tYW5kLFxuICAgICAgdXNlcjogdXNlcixcbiAgICAgIGVudmlyb25tZW50OiB0aGlzLm9wdGlvbnMuZW52aXJvbm1lbnQsXG4gICAgICBlbnRyeXBvaW50OiB0aGlzLm9wdGlvbnMuZW50cnlwb2ludCxcbiAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6XG4gICAgICAgIHRoaXMub3B0aW9ucy53b3JraW5nRGlyZWN0b3J5ID8/IEFzc2V0U3RhZ2luZy5CVU5ETElOR19JTlBVVF9ESVIsXG4gICAgICBzZWN1cml0eU9wdDogdGhpcy5vcHRpb25zLnNlY3VyaXR5T3B0ID8/IFwiXCIsXG4gICAgICB2b2x1bWVzOiB0aGlzLm9wdGlvbnMudm9sdW1lcyxcbiAgICAgIHZvbHVtZXNGcm9tOiBbXG4gICAgICAgIHRoaXMuY29weUNvbnRhaW5lck5hbWUsXG4gICAgICAgIC4uLih0aGlzLm9wdGlvbnMudm9sdW1lc0Zyb20gPz8gW10pLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRoaXMuY29weU91dHB1dFRvKHRoaXMub3B0aW9ucy5idW5kbGVEaXIpO1xuICAgIHRoaXMuY2xlYW5IZWxwZXJDb250YWluZXIoKTtcbiAgICB0aGlzLmNsZWFuVm9sdW1lcygpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkb2NrZXJFeGVjKGFyZ3M6IHN0cmluZ1tdLCBvcHRpb25zPzogU3Bhd25TeW5jT3B0aW9ucykge1xuICBjb25zdCBwcm9nID0gcHJvY2Vzcy5lbnYuQ0RLX0RPQ0tFUiA/PyBcImRvY2tlclwiO1xuICBjb25zdCBwcm9jID0gc3Bhd25TeW5jKFxuICAgIHByb2csXG4gICAgYXJncyxcbiAgICBvcHRpb25zID8/IHtcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1xuICAgICAgICAvLyBzaG93IERvY2tlciBvdXRwdXRcbiAgICAgICAgXCJpZ25vcmVcIiwgLy8gaWdub3JlIHN0ZGlvXG4gICAgICAgIC8vIEFXU0NESzogcHJvY2Vzcy5zdGRlcnIsIC8vIHJlZGlyZWN0IHN0ZG91dCB0byBzdGRlcnIgKGNhdXNlcyByYWRpeCBlcnJvciBpbiBidW4/KVxuICAgICAgICBcImluaGVyaXRcIixcbiAgICAgICAgXCJpbmhlcml0XCIsIC8vIGluaGVyaXQgc3RkZXJyXG4gICAgICBdLFxuICAgIH0sXG4gICk7XG5cbiAgaWYgKHByb2MuZXJyb3IpIHtcbiAgICB0aHJvdyBwcm9jLmVycm9yO1xuICB9XG5cbiAgaWYgKHByb2Muc3RhdHVzICE9PSAwKSB7XG4gICAgY29uc3QgcmVhc29uID1cbiAgICAgIHByb2Muc2lnbmFsICE9IG51bGwgPyBgc2lnbmFsICR7cHJvYy5zaWduYWx9YCA6IGBzdGF0dXMgJHtwcm9jLnN0YXR1c31gO1xuICAgIGNvbnN0IGNvbW1hbmQgPSBbXG4gICAgICBwcm9nLFxuICAgICAgLi4uYXJncy5tYXAoKGFyZykgPT5cbiAgICAgICAgL1teYS16MC05Xy1dL2kudGVzdChhcmcpID8gSlNPTi5zdHJpbmdpZnkoYXJnKSA6IGFyZyxcbiAgICAgICksXG4gICAgXS5qb2luKFwiIFwiKTtcblxuICAgIGZ1bmN0aW9uIHByZXBlbmRMaW5lcyhcbiAgICAgIGZpcnN0TGluZTogc3RyaW5nLFxuICAgICAgdGV4dDogQnVmZmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICk6IHN0cmluZ1tdIHtcbiAgICAgIGlmICghdGV4dCB8fCB0ZXh0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBjb25zdCBwYWRkaW5nID0gXCIgXCIucmVwZWF0KGZpcnN0TGluZS5sZW5ndGgpO1xuICAgICAgcmV0dXJuIHRleHRcbiAgICAgICAgLnRvU3RyaW5nKFwidXRmLThcIilcbiAgICAgICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgICAgIC5tYXAoKGxpbmUsIGlkeCkgPT4gYCR7aWR4ID09PSAwID8gZmlyc3RMaW5lIDogcGFkZGluZ30ke2xpbmV9YCk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgW1xuICAgICAgICBgJHtwcm9nfSBleGl0ZWQgd2l0aCAke3JlYXNvbn1gLFxuICAgICAgICAuLi4ocHJlcGVuZExpbmVzKFwiLS0+IFNURE9VVDogIFwiLCBwcm9jLnN0ZG91dCkgPz8gW10pLFxuICAgICAgICAuLi4ocHJlcGVuZExpbmVzKFwiLS0+IFNUREVSUjogIFwiLCBwcm9jLnN0ZGVycikgPz8gW10pLFxuICAgICAgICBgLS0+IENvbW1hbmQ6ICR7Y29tbWFuZH1gLFxuICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gcHJvYztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A simple cache class.
|
|
3
|
+
*
|
|
4
|
+
* Must be declared at the top of the file because we're going to use it statically in the
|
|
5
|
+
* AssetStaging class.
|
|
6
|
+
*/
|
|
7
|
+
export declare class Cache<A> {
|
|
8
|
+
private cache;
|
|
9
|
+
/**
|
|
10
|
+
* Clears the cache
|
|
11
|
+
*/
|
|
12
|
+
clear(): void;
|
|
13
|
+
/**
|
|
14
|
+
* Get a value from the cache or calculate it
|
|
15
|
+
*/
|
|
16
|
+
obtain(cacheKey: string, calcFn: () => A): A;
|
|
17
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// https://github.com/aws/aws-cdk/blob/v2.186.0/packages/aws-cdk-lib/core/lib/private/cache.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Cache = void 0;
|
|
5
|
+
/**
|
|
6
|
+
* A simple cache class.
|
|
7
|
+
*
|
|
8
|
+
* Must be declared at the top of the file because we're going to use it statically in the
|
|
9
|
+
* AssetStaging class.
|
|
10
|
+
*/
|
|
11
|
+
class Cache {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.cache = new Map();
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Clears the cache
|
|
17
|
+
*/
|
|
18
|
+
clear() {
|
|
19
|
+
this.cache.clear();
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get a value from the cache or calculate it
|
|
23
|
+
*/
|
|
24
|
+
obtain(cacheKey, calcFn) {
|
|
25
|
+
let value = this.cache.get(cacheKey);
|
|
26
|
+
if (value) {
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
value = calcFn();
|
|
30
|
+
this.cache.set(cacheKey, value);
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.Cache = Cache;
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJpdmF0ZS9jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsOEZBQThGOzs7QUFFOUY7Ozs7O0dBS0c7QUFDSCxNQUFhLEtBQUs7SUFBbEI7UUFDVSxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWEsQ0FBQztJQXNCdkMsQ0FBQztJQXBCQzs7T0FFRztJQUNJLEtBQUs7UUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxRQUFnQixFQUFFLE1BQWU7UUFDN0MsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELEtBQUssR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUF2QkQsc0JBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTg2LjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvcHJpdmF0ZS9jYWNoZS50c1xuXG4vKipcbiAqIEEgc2ltcGxlIGNhY2hlIGNsYXNzLlxuICpcbiAqIE11c3QgYmUgZGVjbGFyZWQgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZSBiZWNhdXNlIHdlJ3JlIGdvaW5nIHRvIHVzZSBpdCBzdGF0aWNhbGx5IGluIHRoZVxuICogQXNzZXRTdGFnaW5nIGNsYXNzLlxuICovXG5leHBvcnQgY2xhc3MgQ2FjaGU8QT4ge1xuICBwcml2YXRlIGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIEE+KCk7XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgY2FjaGVcbiAgICovXG4gIHB1YmxpYyBjbGVhcigpIHtcbiAgICB0aGlzLmNhY2hlLmNsZWFyKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgdmFsdWUgZnJvbSB0aGUgY2FjaGUgb3IgY2FsY3VsYXRlIGl0XG4gICAqL1xuICBwdWJsaWMgb2J0YWluKGNhY2hlS2V5OiBzdHJpbmcsIGNhbGNGbjogKCkgPT4gQSk6IEEge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuY2FjaGUuZ2V0KGNhY2hlS2V5KTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICB2YWx1ZSA9IGNhbGNGbigpO1xuICAgIHRoaXMuY2FjaGUuc2V0KGNhY2hlS2V5LCB2YWx1ZSk7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// https://github.com/aws/aws-cdk/blob/v2.186.0/packages/aws-cdk-lib/core/lib/private/jsii-deprecated.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.quiet = quiet;
|
|
5
|
+
exports.reset = reset;
|
|
6
|
+
function quiet() {
|
|
7
|
+
const deprecated = process.env.JSII_DEPRECATED;
|
|
8
|
+
process.env.JSII_DEPRECATED = "quiet";
|
|
9
|
+
return deprecated;
|
|
10
|
+
}
|
|
11
|
+
function reset(deprecated) {
|
|
12
|
+
if (deprecated === undefined) {
|
|
13
|
+
delete process.env.JSII_DEPRECATED;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
process.env.JSII_DEPRECATED = deprecated;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1kZXByZWNhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGUvanNpaS1kZXByZWNhdGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx3R0FBd0c7O0FBRXhHLHNCQUlDO0FBRUQsc0JBTUM7QUFaRCxTQUFnQixLQUFLO0lBQ25CLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO0lBQy9DLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQztJQUN0QyxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDO0FBRUQsU0FBZ0IsS0FBSyxDQUFDLFVBQThCO0lBQ2xELElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzdCLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7SUFDckMsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUM7SUFDM0MsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xODYuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9jb3JlL2xpYi9wcml2YXRlL2pzaWktZGVwcmVjYXRlZC50c1xuXG5leHBvcnQgZnVuY3Rpb24gcXVpZXQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZGVwcmVjYXRlZCA9IHByb2Nlc3MuZW52LkpTSUlfREVQUkVDQVRFRDtcbiAgcHJvY2Vzcy5lbnYuSlNJSV9ERVBSRUNBVEVEID0gXCJxdWlldFwiO1xuICByZXR1cm4gZGVwcmVjYXRlZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0KGRlcHJlY2F0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICBpZiAoZGVwcmVjYXRlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZGVsZXRlIHByb2Nlc3MuZW52LkpTSUlfREVQUkVDQVRFRDtcbiAgfSBlbHNlIHtcbiAgICBwcm9jZXNzLmVudi5KU0lJX0RFUFJFQ0FURUQgPSBkZXByZWNhdGVkO1xuICB9XG59XG4iXX0=
|