terraconstructs 0.0.25 → 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.
Files changed (420) hide show
  1. package/.jsii +83665 -54911
  2. package/.mise.toml +1 -1
  3. package/.nvmrc +1 -1
  4. package/LICENSE +202 -674
  5. package/lib/asset-manager.d.ts +23 -0
  6. package/lib/asset-manager.js +3 -0
  7. package/lib/asset-staging.d.ts +178 -0
  8. package/lib/asset-staging.js +589 -0
  9. package/lib/assets.d.ts +359 -0
  10. package/lib/assets.js +55 -0
  11. package/lib/aws/arn.js +16 -15
  12. package/lib/aws/aws-asset-manager.d.ts +91 -0
  13. package/lib/aws/aws-asset-manager.js +244 -0
  14. package/lib/aws/aws-construct.js +1 -1
  15. package/lib/aws/aws-stack.d.ts +37 -0
  16. package/lib/aws/aws-stack.js +30 -9
  17. package/lib/aws/aws-tags.js +2 -2
  18. package/lib/aws/cloudwatch/actions/appscaling.d.ts +15 -0
  19. package/lib/aws/cloudwatch/actions/appscaling.js +24 -0
  20. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  21. package/lib/aws/cloudwatch/actions/index.d.ts +3 -0
  22. package/lib/aws/cloudwatch/actions/index.js +4 -4
  23. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  24. package/lib/aws/cloudwatch/actions/sns.d.ts +14 -0
  25. package/lib/aws/cloudwatch/actions/sns.js +23 -0
  26. package/lib/aws/cloudwatch/actions/ssm.d.ts +72 -0
  27. package/lib/aws/cloudwatch/actions/ssm.js +104 -0
  28. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  29. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  30. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  31. package/lib/aws/cloudwatch/alarm.js +1 -1
  32. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  33. package/lib/aws/cloudwatch/dashboard.js +1 -1
  34. package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
  35. package/lib/aws/cloudwatch/graph.js +8 -8
  36. package/lib/aws/cloudwatch/layout.js +3 -3
  37. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  38. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  39. package/lib/aws/cloudwatch/log-group.js +1 -1
  40. package/lib/aws/cloudwatch/log-query.js +1 -1
  41. package/lib/aws/cloudwatch/log-stream.js +1 -1
  42. package/lib/aws/cloudwatch/metric-filter.js +1 -1
  43. package/lib/aws/cloudwatch/metric.js +2 -2
  44. package/lib/aws/cloudwatch/pattern.js +3 -3
  45. package/lib/aws/cloudwatch/policy.js +1 -1
  46. package/lib/aws/cloudwatch/query-definition.js +2 -2
  47. package/lib/aws/cloudwatch/stats.js +1 -1
  48. package/lib/aws/cloudwatch/subscription-filter.js +1 -1
  49. package/lib/aws/cloudwatch/text.js +1 -1
  50. package/lib/aws/cloudwatch/variable.js +3 -3
  51. package/lib/aws/cloudwatch/widget.js +1 -1
  52. package/lib/aws/compute/access-log.d.ts +478 -0
  53. package/lib/aws/compute/access-log.js +649 -0
  54. package/lib/aws/compute/activity.js +1 -1
  55. package/lib/aws/compute/alb/application-listener-action.js +1 -1
  56. package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
  57. package/lib/aws/compute/alb/application-listener-rule.js +1 -1
  58. package/lib/aws/compute/alb/application-listener.js +1 -1
  59. package/lib/aws/compute/alb/application-load-balancer.js +1 -1
  60. package/lib/aws/compute/alb/application-target-group.js +1 -1
  61. package/lib/aws/compute/alb/conditions.js +1 -1
  62. package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
  63. package/lib/aws/compute/alb/trust-store.js +1 -1
  64. package/lib/aws/compute/api-definition.d.ts +106 -0
  65. package/lib/aws/compute/api-definition.js +200 -0
  66. package/lib/aws/compute/api-key.d.ts +184 -0
  67. package/lib/aws/compute/api-key.js +197 -0
  68. package/lib/aws/compute/apigateway-canned-metrics.generated.d.ts +169 -0
  69. package/lib/aws/compute/apigateway-canned-metrics.generated.js +63 -0
  70. package/lib/aws/compute/apigateway-util.d.ts +31 -0
  71. package/lib/aws/compute/apigateway-util.js +152 -0
  72. package/lib/aws/compute/architecture.js +1 -1
  73. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
  74. package/lib/aws/compute/authorizer.d.ts +35 -0
  75. package/lib/aws/compute/authorizer.js +28 -0
  76. package/lib/aws/compute/authorizers/identity-source.d.ts +37 -0
  77. package/lib/aws/compute/authorizers/identity-source.js +61 -0
  78. package/lib/aws/compute/authorizers/index.d.ts +2 -0
  79. package/lib/aws/compute/authorizers/index.js +20 -0
  80. package/lib/aws/compute/authorizers/lambda.d.ts +140 -0
  81. package/lib/aws/compute/authorizers/lambda.js +208 -0
  82. package/lib/aws/compute/base-path-mapping.d.ts +49 -0
  83. package/lib/aws/compute/base-path-mapping.js +52 -0
  84. package/lib/aws/compute/base-scalable-attribute.js +3 -3
  85. package/lib/aws/compute/bastion-host.js +1 -1
  86. package/lib/aws/compute/chain.js +1 -1
  87. package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
  88. package/lib/aws/compute/client-vpn-endpoint.js +2 -2
  89. package/lib/aws/compute/client-vpn-route.js +2 -2
  90. package/lib/aws/compute/code.d.ts +415 -0
  91. package/lib/aws/compute/code.js +424 -0
  92. package/lib/aws/compute/condition.js +1 -1
  93. package/lib/aws/compute/connections.js +1 -1
  94. package/lib/aws/compute/cors.d.ts +102 -0
  95. package/lib/aws/compute/cors.js +33 -0
  96. package/lib/aws/compute/deployment.d.ts +83 -0
  97. package/lib/aws/compute/deployment.js +158 -0
  98. package/lib/aws/compute/domain-name.d.ts +153 -0
  99. package/lib/aws/compute/domain-name.js +158 -0
  100. package/lib/aws/compute/event-invoke-config.d.ts +2 -2
  101. package/lib/aws/compute/event-invoke-config.js +4 -4
  102. package/lib/aws/compute/event-source-filter.js +2 -2
  103. package/lib/aws/compute/event-source-mapping.d.ts +2 -2
  104. package/lib/aws/compute/event-source-mapping.js +9 -7
  105. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  106. package/lib/aws/compute/event-sources/s3.js +1 -1
  107. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  108. package/lib/aws/compute/event-sources/sqs.js +3 -2
  109. package/lib/aws/compute/fields.js +4 -4
  110. package/lib/aws/compute/function-alias.d.ts +1 -0
  111. package/lib/aws/compute/function-alias.js +8 -2
  112. package/lib/aws/compute/function-base.d.ts +15 -0
  113. package/lib/aws/compute/function-base.js +4 -4
  114. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  115. package/lib/aws/compute/function-destinations/function.js +1 -1
  116. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  117. package/lib/aws/compute/function-nodejs/bundling.d.ts +75 -0
  118. package/lib/aws/compute/function-nodejs/bundling.js +405 -0
  119. package/lib/aws/compute/function-nodejs/function.d.ts +99 -0
  120. package/lib/aws/compute/function-nodejs/function.js +175 -0
  121. package/lib/aws/compute/function-nodejs/index.d.ts +2 -0
  122. package/lib/aws/compute/function-nodejs/index.js +19 -0
  123. package/lib/aws/compute/function-nodejs/package-installation.d.ts +8 -0
  124. package/lib/aws/compute/function-nodejs/package-installation.js +36 -0
  125. package/lib/aws/compute/function-nodejs/package-manager.d.ts +33 -0
  126. package/lib/aws/compute/function-nodejs/package-manager.js +99 -0
  127. package/lib/aws/compute/function-nodejs/types.d.ts +410 -0
  128. package/lib/aws/compute/function-nodejs/types.js +81 -0
  129. package/lib/aws/compute/function-nodejs/util.d.ts +60 -0
  130. package/lib/aws/compute/function-nodejs/util.js +202 -0
  131. package/lib/aws/compute/function-url.d.ts +2 -2
  132. package/lib/aws/compute/function-url.js +4 -4
  133. package/lib/aws/compute/function.d.ts +34 -4
  134. package/lib/aws/compute/function.js +91 -17
  135. package/lib/aws/compute/gateway-response.d.ts +157 -0
  136. package/lib/aws/compute/gateway-response.js +156 -0
  137. package/lib/aws/compute/handler.d.ts +10 -0
  138. package/lib/aws/compute/handler.js +20 -0
  139. package/lib/aws/compute/index.d.ts +27 -0
  140. package/lib/aws/compute/index.js +29 -1
  141. package/lib/aws/compute/instance-types.js +1 -1
  142. package/lib/aws/compute/instance.js +1 -1
  143. package/lib/aws/compute/integration.d.ts +311 -0
  144. package/lib/aws/compute/integration.js +165 -0
  145. package/lib/aws/compute/integrations/aws.d.ts +72 -0
  146. package/lib/aws/compute/integrations/aws.js +55 -0
  147. package/lib/aws/compute/integrations/http.d.ts +37 -0
  148. package/lib/aws/compute/integrations/http.js +35 -0
  149. package/lib/aws/compute/integrations/index.d.ts +6 -0
  150. package/lib/aws/compute/integrations/index.js +24 -0
  151. package/lib/aws/compute/integrations/lambda.d.ts +40 -0
  152. package/lib/aws/compute/integrations/lambda.js +73 -0
  153. package/lib/aws/compute/integrations/mock.d.ts +16 -0
  154. package/lib/aws/compute/integrations/mock.js +30 -0
  155. package/lib/aws/compute/integrations/request-context.d.ts +144 -0
  156. package/lib/aws/compute/integrations/request-context.js +3 -0
  157. package/lib/aws/compute/integrations/stepfunctions.d.ts +102 -0
  158. package/lib/aws/compute/integrations/stepfunctions.js +268 -0
  159. package/lib/aws/compute/ip-addresses.js +2 -2
  160. package/lib/aws/compute/ipam.js +1 -1
  161. package/lib/aws/compute/json-schema.d.ts +75 -0
  162. package/lib/aws/compute/json-schema.js +23 -0
  163. package/lib/aws/compute/key-pair.js +1 -1
  164. package/lib/aws/compute/lambda-api.d.ts +46 -0
  165. package/lib/aws/compute/lambda-api.js +64 -0
  166. package/lib/aws/compute/launch-template.js +2 -2
  167. package/lib/aws/compute/lb-shared/base-listener.js +1 -1
  168. package/lib/aws/compute/lb-shared/base-load-balancer.js +2 -2
  169. package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
  170. package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
  171. package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
  172. package/lib/aws/compute/lb-targets/alb-target.js +3 -3
  173. package/lib/aws/compute/lb-targets/instance-target.js +2 -2
  174. package/lib/aws/compute/lb-targets/ip-target.js +1 -1
  175. package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
  176. package/lib/aws/compute/load-balancer.js +3 -3
  177. package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
  178. package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
  179. package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
  180. package/lib/aws/compute/machine-image/common.js +1 -1
  181. package/lib/aws/compute/machine-image/machine-image.js +8 -8
  182. package/lib/aws/compute/method.d.ts +219 -0
  183. package/lib/aws/compute/method.js +396 -0
  184. package/lib/aws/compute/methodresponse.d.ts +28 -0
  185. package/lib/aws/compute/methodresponse.js +3 -0
  186. package/lib/aws/compute/model.d.ts +143 -0
  187. package/lib/aws/compute/model.js +141 -0
  188. package/lib/aws/compute/nat.js +5 -5
  189. package/lib/aws/compute/network-acl-types.js +2 -2
  190. package/lib/aws/compute/network-acl.js +3 -3
  191. package/lib/aws/compute/nlb/network-listener-action.js +1 -1
  192. package/lib/aws/compute/nlb/network-listener.js +1 -1
  193. package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
  194. package/lib/aws/compute/nlb/network-target-group.js +1 -1
  195. package/lib/aws/compute/peer.js +1 -1
  196. package/lib/aws/compute/placement-group.js +1 -1
  197. package/lib/aws/compute/port.js +1 -1
  198. package/lib/aws/compute/prefix-list.js +1 -1
  199. package/lib/aws/compute/requestvalidator.d.ts +50 -0
  200. package/lib/aws/compute/requestvalidator.js +59 -0
  201. package/lib/aws/compute/resource.d.ts +223 -0
  202. package/lib/aws/compute/resource.js +316 -0
  203. package/lib/aws/compute/restapi.d.ts +510 -0
  204. package/lib/aws/compute/restapi.js +626 -0
  205. package/lib/aws/compute/route.js +8 -8
  206. package/lib/aws/compute/runtime.d.ts +282 -0
  207. package/lib/aws/compute/runtime.js +337 -0
  208. package/lib/aws/compute/scalable-target.js +3 -3
  209. package/lib/aws/compute/schedule.js +3 -3
  210. package/lib/aws/compute/security-group.js +1 -1
  211. package/lib/aws/compute/stage.d.ts +350 -0
  212. package/lib/aws/compute/stage.js +304 -0
  213. package/lib/aws/compute/state-graph.js +1 -1
  214. package/lib/aws/compute/state-machine-fragment.js +1 -1
  215. package/lib/aws/compute/state-machine.js +4 -4
  216. package/lib/aws/compute/states/choice.js +1 -1
  217. package/lib/aws/compute/states/custom-state.js +1 -1
  218. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  219. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  220. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  221. package/lib/aws/compute/states/distributed-map.js +1 -1
  222. package/lib/aws/compute/states/fail.js +1 -1
  223. package/lib/aws/compute/states/map-base.js +1 -1
  224. package/lib/aws/compute/states/map.js +1 -1
  225. package/lib/aws/compute/states/parallel.js +1 -1
  226. package/lib/aws/compute/states/pass.js +2 -2
  227. package/lib/aws/compute/states/state.js +1 -1
  228. package/lib/aws/compute/states/succeed.js +1 -1
  229. package/lib/aws/compute/states/task-base.js +2 -2
  230. package/lib/aws/compute/states/task.js +1 -1
  231. package/lib/aws/compute/states/wait.js +2 -2
  232. package/lib/aws/compute/step-scaling-action.js +3 -3
  233. package/lib/aws/compute/step-scaling-policy.js +1 -1
  234. package/lib/aws/compute/stepfunctions-api.d.ts +103 -0
  235. package/lib/aws/compute/stepfunctions-api.js +39 -0
  236. package/lib/aws/compute/subnet-v2.js +2 -2
  237. package/lib/aws/compute/subnet.js +1 -1
  238. package/lib/aws/compute/target-tracking-scaling-policy.js +3 -3
  239. package/lib/aws/compute/task-credentials.js +1 -1
  240. package/lib/aws/compute/task-input.js +1 -1
  241. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  242. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  243. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  244. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  245. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  246. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  247. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  248. package/lib/aws/compute/types.js +1 -1
  249. package/lib/aws/compute/usage-plan.d.ts +194 -0
  250. package/lib/aws/compute/usage-plan.js +174 -0
  251. package/lib/aws/compute/user-data.js +3 -3
  252. package/lib/aws/compute/volume.js +2 -2
  253. package/lib/aws/compute/vpc-endpoint-service.js +1 -1
  254. package/lib/aws/compute/vpc-endpoint.js +6 -6
  255. package/lib/aws/compute/vpc-flow-logs.js +4 -4
  256. package/lib/aws/compute/vpc-link.d.ts +104 -0
  257. package/lib/aws/compute/vpc-link.js +137 -0
  258. package/lib/aws/compute/vpc-v2-base.js +1 -1
  259. package/lib/aws/compute/vpc-v2.js +2 -2
  260. package/lib/aws/compute/vpc.js +4 -4
  261. package/lib/aws/compute/vpn.js +3 -3
  262. package/lib/aws/edge/certificate.js +1 -1
  263. package/lib/aws/edge/distribution.js +3 -3
  264. package/lib/aws/edge/dns-alias-record-targets.js +3 -3
  265. package/lib/aws/edge/dns-record.js +13 -13
  266. package/lib/aws/edge/dns-zone.js +1 -1
  267. package/lib/aws/edge/function.js +2 -2
  268. package/lib/aws/edge/key-value-store.js +4 -4
  269. package/lib/aws/edge/origin.js +3 -3
  270. package/lib/aws/edge/response-headers-policy.js +1 -1
  271. package/lib/aws/encryption/alias.js +1 -1
  272. package/lib/aws/encryption/key.js +1 -1
  273. package/lib/aws/encryption/via-service-principal.js +1 -1
  274. package/lib/aws/iam/grant.js +2 -2
  275. package/lib/aws/iam/group.js +1 -1
  276. package/lib/aws/iam/instance-profile.js +1 -1
  277. package/lib/aws/iam/managed-policy.js +1 -1
  278. package/lib/aws/iam/oidc-provider.js +1 -1
  279. package/lib/aws/iam/policy-document.js +1 -1
  280. package/lib/aws/iam/policy-statement.js +1 -1
  281. package/lib/aws/iam/policy.js +1 -1
  282. package/lib/aws/iam/principals.js +20 -20
  283. package/lib/aws/iam/role.js +1 -1
  284. package/lib/aws/iam/saml-provider.js +2 -2
  285. package/lib/aws/iam/unknown-principal.js +1 -1
  286. package/lib/aws/iam/user.js +5 -5
  287. package/lib/aws/index.d.ts +1 -0
  288. package/lib/aws/index.js +4 -1
  289. package/lib/aws/network/simple-ipv4-vpc.js +1 -1
  290. package/lib/aws/network/subnet-group.js +3 -3
  291. package/lib/aws/network/subnet.js +4 -4
  292. package/lib/aws/notify/archive.js +1 -1
  293. package/lib/aws/notify/connection.js +3 -3
  294. package/lib/aws/notify/event-bus.js +3 -3
  295. package/lib/aws/notify/event-pattern.js +1 -1
  296. package/lib/aws/notify/input.js +2 -2
  297. package/lib/aws/notify/kinesis-stream.js +1 -1
  298. package/lib/aws/notify/notification-rule.d.ts +1 -1
  299. package/lib/aws/notify/notification-rule.js +5 -5
  300. package/lib/aws/notify/policy.js +1 -1
  301. package/lib/aws/notify/queue-policy.js +1 -1
  302. package/lib/aws/notify/queue.js +1 -1
  303. package/lib/aws/notify/resource-policy.js +1 -1
  304. package/lib/aws/notify/rule.js +1 -1
  305. package/lib/aws/notify/schedule.js +1 -1
  306. package/lib/aws/notify/subscription-filter.js +1 -1
  307. package/lib/aws/notify/subscription.js +4 -4
  308. package/lib/aws/notify/subscriptions/email.js +1 -1
  309. package/lib/aws/notify/subscriptions/lambda.js +1 -1
  310. package/lib/aws/notify/subscriptions/sms.js +1 -1
  311. package/lib/aws/notify/subscriptions/sqs.js +1 -1
  312. package/lib/aws/notify/subscriptions/url.js +1 -1
  313. package/lib/aws/notify/targets/event-bus.js +1 -1
  314. package/lib/aws/notify/targets/function.js +1 -1
  315. package/lib/aws/notify/targets/log-group.js +2 -2
  316. package/lib/aws/notify/targets/sqs.js +1 -1
  317. package/lib/aws/notify/targets/state-machine.js +1 -1
  318. package/lib/aws/notify/topic-base.js +1 -1
  319. package/lib/aws/notify/topic.js +6 -5
  320. package/lib/aws/partition.d.ts +21 -0
  321. package/lib/aws/partition.js +42 -0
  322. package/lib/aws/storage/assets/image-asset.d.ts +379 -0
  323. package/lib/aws/storage/assets/image-asset.js +247 -0
  324. package/lib/aws/storage/assets/index.d.ts +2 -0
  325. package/lib/aws/storage/assets/index.js +21 -0
  326. package/lib/aws/storage/assets/s3.d.ts +125 -0
  327. package/lib/aws/storage/assets/s3.js +80 -0
  328. package/lib/aws/storage/auth-token.d.ts +25 -0
  329. package/lib/aws/storage/auth-token.js +54 -0
  330. package/lib/aws/storage/billing.js +1 -1
  331. package/lib/aws/storage/bucket-notifications.js +1 -1
  332. package/lib/aws/storage/bucket-policy.js +1 -1
  333. package/lib/aws/storage/bucket-source.d.ts +1 -1
  334. package/lib/aws/storage/bucket-source.js +4 -4
  335. package/lib/aws/storage/bucket.d.ts +14 -6
  336. package/lib/aws/storage/bucket.js +48 -40
  337. package/lib/aws/storage/capacity.js +1 -1
  338. package/lib/aws/storage/ecr-lifecycle.d.ts +88 -0
  339. package/lib/aws/storage/ecr-lifecycle.js +23 -0
  340. package/lib/aws/storage/ecr-repository.d.ts +446 -0
  341. package/lib/aws/storage/ecr-repository.js +685 -0
  342. package/lib/aws/storage/encryption.js +1 -1
  343. package/lib/aws/storage/index.d.ts +5 -0
  344. package/lib/aws/storage/index.js +10 -3
  345. package/lib/aws/storage/location.d.ts +17 -0
  346. package/lib/aws/storage/location.js +4 -0
  347. package/lib/aws/storage/notification-targets/function.js +1 -1
  348. package/lib/aws/storage/notification-targets/queue.js +1 -1
  349. package/lib/aws/storage/origin-access-identity.js +1 -1
  350. package/lib/aws/storage/parameter.js +2 -2
  351. package/lib/aws/storage/table.js +3 -3
  352. package/lib/aws/storage/util.d.ts +8 -20
  353. package/lib/aws/storage/util.js +56 -34
  354. package/lib/aws/util.d.ts +1 -0
  355. package/lib/aws/util.js +6 -1
  356. package/lib/bundling.d.ts +434 -0
  357. package/lib/bundling.js +368 -0
  358. package/lib/construct-base.js +2 -2
  359. package/lib/duration.js +1 -1
  360. package/lib/expiration.js +1 -1
  361. package/lib/fs/copy.d.ts +2 -0
  362. package/lib/fs/copy.js +57 -0
  363. package/lib/fs/fingerprint.d.ts +21 -0
  364. package/lib/fs/fingerprint.js +165 -0
  365. package/lib/fs/ignore.d.ts +107 -0
  366. package/lib/fs/ignore.js +190 -0
  367. package/lib/fs/index.d.ts +47 -0
  368. package/lib/fs/index.js +88 -0
  369. package/lib/fs/options.d.ts +110 -0
  370. package/lib/fs/options.js +60 -0
  371. package/lib/fs/utils.d.ts +11 -0
  372. package/lib/fs/utils.js +34 -0
  373. package/lib/index.d.ts +5 -0
  374. package/lib/index.js +7 -1
  375. package/lib/private/asset-staging.d.ts +83 -0
  376. package/lib/private/asset-staging.js +205 -0
  377. package/lib/private/cache.d.ts +17 -0
  378. package/lib/private/cache.js +35 -0
  379. package/lib/private/jsii-deprecated.d.ts +2 -0
  380. package/lib/private/jsii-deprecated.js +19 -0
  381. package/lib/private/unique-resource-name.js +3 -2
  382. package/lib/size.js +1 -1
  383. package/lib/stack-base.js +1 -1
  384. package/lib/terra-func.js +2 -2
  385. package/lib/time-zone.js +1 -1
  386. package/node_modules/@balena/dockerignore/CHANGELOG.md +31 -0
  387. package/node_modules/@balena/dockerignore/LICENSE.md +206 -0
  388. package/node_modules/@balena/dockerignore/README.md +261 -0
  389. package/node_modules/@balena/dockerignore/ignore.js +363 -0
  390. package/node_modules/@balena/dockerignore/index.d.ts +45 -0
  391. package/node_modules/@balena/dockerignore/package.json +49 -0
  392. package/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  393. package/node_modules/balanced-match/LICENSE.md +21 -0
  394. package/node_modules/balanced-match/README.md +97 -0
  395. package/node_modules/balanced-match/index.js +62 -0
  396. package/node_modules/balanced-match/package.json +48 -0
  397. package/node_modules/concat-map/.travis.yml +4 -0
  398. package/node_modules/concat-map/LICENSE +18 -0
  399. package/node_modules/concat-map/README.markdown +62 -0
  400. package/node_modules/concat-map/example/map.js +6 -0
  401. package/node_modules/concat-map/index.js +13 -0
  402. package/node_modules/concat-map/package.json +43 -0
  403. package/node_modules/concat-map/test/map.js +39 -0
  404. package/node_modules/ignore/LICENSE-MIT +21 -0
  405. package/node_modules/ignore/README.md +412 -0
  406. package/node_modules/ignore/index.d.ts +61 -0
  407. package/node_modules/ignore/index.js +636 -0
  408. package/node_modules/ignore/legacy.js +559 -0
  409. package/node_modules/ignore/package.json +74 -0
  410. package/node_modules/minimatch/LICENSE +15 -0
  411. package/node_modules/minimatch/README.md +230 -0
  412. package/node_modules/minimatch/minimatch.js +947 -0
  413. package/node_modules/minimatch/node_modules/brace-expansion/LICENSE +21 -0
  414. package/node_modules/minimatch/node_modules/brace-expansion/README.md +129 -0
  415. package/node_modules/minimatch/node_modules/brace-expansion/index.js +201 -0
  416. package/node_modules/minimatch/node_modules/brace-expansion/package.json +47 -0
  417. package/node_modules/minimatch/package.json +33 -0
  418. package/package.json +14 -5
  419. package/lib/aws/compute/function-nodejs.d.ts +0 -55
  420. package/lib/aws/compute/function-nodejs.js +0 -70
@@ -1,14 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PARTITION_MAP = exports.RedirectProtocol = exports.HttpMethods = void 0;
3
+ exports.ROUTE_53_BUCKET_WEBSITE_ZONE_IDS = exports.RedirectProtocol = exports.HttpMethods = void 0;
4
4
  exports.parseBucketArn = parseBucketArn;
5
5
  exports.parseBucketName = parseBucketName;
6
6
  exports.normalPath = normalPath;
7
7
  exports.s3StaticWebsiteEndpoint = s3StaticWebsiteEndpoint;
8
- exports.partitionLookup = partitionLookup;
8
+ exports.s3StaticWebsiteHostedZoneId = s3StaticWebsiteHostedZoneId;
9
9
  const cdktf_1 = require("cdktf");
10
10
  const arn_1 = require("../arn");
11
11
  const aws_stack_1 = require("../aws-stack");
12
+ const partition_1 = require("../partition");
12
13
  function parseBucketArn(construct, props) {
13
14
  // if we have an explicit bucket ARN, use it.
14
15
  if (props.bucketArn) {
@@ -87,6 +88,7 @@ function normalPath(path) {
87
88
  }
88
89
  }
89
90
  // https://github.com/aws/aws-cdk/blob/v2.181.1/packages/aws-cdk-lib/region-info/lib/aws-entities.ts#L27
91
+ // ref: AWS_REGIONS_AND_RULES > RULE_S3_WEBSITE_REGIONAL_SUBDOMAIN
90
92
  /**
91
93
  * regions introduced before s3 website started using a regional subdomain
92
94
  * After this point, S3 website domains look like `s3-website.REGION.s3.amazonaws.com`
@@ -106,47 +108,67 @@ const BEFORE_S3_WEBSITE_REGIONAL_SUBDOMAIN = [
106
108
  ];
107
109
  // https://github.com/aws/aws-cdk/blob/v2.181.1/packages/aws-cdk-lib/region-info/build-tools/generate-static-data.ts#L73
108
110
  function s3StaticWebsiteEndpoint(region) {
109
- // NOTE: This function is not used instead we use the s3 bucket datasource
110
111
  if (cdktf_1.Token.isUnresolved(region)) {
111
112
  throw new Error("Cannot determine S3 website endpoint for unresolved region");
112
113
  }
113
- const { domainSuffix } = partitionLookup(region);
114
+ const { domainSuffix } = (0, partition_1.partitionLookup)(region);
114
115
  if (BEFORE_S3_WEBSITE_REGIONAL_SUBDOMAIN.includes(region)) {
115
116
  return `s3-website-${region}.${domainSuffix}`;
116
117
  }
117
118
  return `s3-website.${region}.${domainSuffix}`;
118
119
  }
119
- function partitionLookup(region) {
120
+ // Replicated to avoid CDKTF Tokens
121
+ // https://github.com/hashicorp/terraform-provider-aws/blob/v6.0.0/internal/service/s3/hosted_zones.go#L55
122
+ // https://github.com/aws/aws-cdk/blob/v2.186.0/packages/aws-cdk-lib/region-info/build-tools/fact-tables.ts#L7
123
+ /**
124
+ * The hosted zone Id if using an alias record in Route53.
125
+ *
126
+ * @see https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_region
127
+ */
128
+ exports.ROUTE_53_BUCKET_WEBSITE_ZONE_IDS = {
129
+ "af-south-1": "Z11KHD8FBVPUYU",
130
+ "ap-east-1": "ZNB98KWMFR0R6",
131
+ "ap-northeast-1": "Z2M4EHUR26P7ZW",
132
+ "ap-northeast-2": "Z3W03O7B5YMIYP",
133
+ "ap-northeast-3": "Z2YQB5RD63NC85",
134
+ "ap-south-1": "Z11RGJOFQNVJUP",
135
+ "ap-south-2": "Z02976202B4EZMXIPMXF7",
136
+ "ap-southeast-1": "Z3O0J2DXBE1FTB",
137
+ "ap-southeast-2": "Z1WCIGYICN2BYD",
138
+ "ap-southeast-3": "Z01846753K324LI26A3VV",
139
+ "ap-southeast-4": "Z0312387243XT5FE14WFO",
140
+ "ap-southeast-5": "Z08660063OXLMA7F1FJHU",
141
+ "ca-central-1": "Z1QDHH18159H29",
142
+ "cn-north-1": "Z5CN8UMXT92WN",
143
+ "cn-northwest-1": "Z282HJ1KT0DH03",
144
+ "eu-central-1": "Z21DNDUVLTQW6Q",
145
+ "eu-central-2": "Z030506016YDQGETNASS",
146
+ "eu-north-1": "Z3BAZG2TWCNX0D",
147
+ "eu-south-1": "Z3IXVV8C73GIO3",
148
+ "eu-south-2": "Z0081959F7139GRJC19J",
149
+ "eu-west-1": "Z1BKCTXD74EZPE",
150
+ "eu-west-2": "Z3GKZC51ZF0DB4",
151
+ "eu-west-3": "Z3R1K369G5AVDG",
152
+ "il-central-1": "Z09640613K4A3MN55U7GU",
153
+ "me-central-1": "Z06143092I8HRXZRUZROF",
154
+ "me-south-1": "Z1MPMWCPA7YB62",
155
+ "sa-east-1": "Z7KQH4QJS55SO",
156
+ "us-east-1": "Z3AQBSTGFYJSTF",
157
+ "us-east-2": "Z2O1EMRO9K5GLX",
158
+ "us-gov-east-1": "Z2NIFVYYW2VKV1",
159
+ "us-gov-west-1": "Z31GFT0UA1I2HV",
160
+ "us-west-1": "Z2F56UZL2M1ACD",
161
+ "us-west-2": "Z3BJ6K6RIION7M",
162
+ };
163
+ // https://github.com/aws/aws-cdk/blob/v2.181.1/packages/aws-cdk-lib/region-info/build-tools/generate-static-data.ts#L77
164
+ function s3StaticWebsiteHostedZoneId(region) {
120
165
  if (cdktf_1.Token.isUnresolved(region)) {
121
- throw new Error("Cannot determine region partition for unresolved region");
166
+ throw new Error("Cannot determine S3 hosted ZoneId for unresolved region");
122
167
  }
123
- let partition = exports.PARTITION_MAP.default.partition;
124
- let domainSuffix = exports.PARTITION_MAP.default.domainSuffix;
125
- for (const key in exports.PARTITION_MAP) {
126
- if (region.startsWith(key)) {
127
- partition = exports.PARTITION_MAP[key].partition;
128
- domainSuffix = exports.PARTITION_MAP[key].domainSuffix;
129
- }
168
+ const hostedZoneId = exports.ROUTE_53_BUCKET_WEBSITE_ZONE_IDS[region];
169
+ if (!hostedZoneId) {
170
+ throw new Error(`No hosted zone ID found for S3 static website in region: ${region}`);
130
171
  }
131
- return { partition, domainSuffix };
172
+ return hostedZoneId;
132
173
  }
133
- var Partition;
134
- (function (Partition) {
135
- Partition["Default"] = "aws";
136
- Partition["Cn"] = "aws-cn";
137
- Partition["UsGov"] = "aws-us-gov";
138
- Partition["UsIso"] = "aws-iso";
139
- Partition["UsIsoB"] = "aws-iso-b";
140
- Partition["UsIsoF"] = "aws-iso-f";
141
- Partition["EuIsoE"] = "aws-iso-e";
142
- })(Partition || (Partition = {}));
143
- exports.PARTITION_MAP = {
144
- default: { partition: Partition.Default, domainSuffix: "amazonaws.com" },
145
- "cn-": { partition: Partition.Cn, domainSuffix: "amazonaws.com.cn" },
146
- "us-gov-": { partition: Partition.UsGov, domainSuffix: "amazonaws.com" },
147
- "us-iso-": { partition: Partition.UsIso, domainSuffix: "c2s.ic.gov" },
148
- "us-isob-": { partition: Partition.UsIsoB, domainSuffix: "sc2s.sgov.gov" },
149
- "us-isof-": { partition: Partition.UsIsoF, domainSuffix: "csp.hci.ic.gov" },
150
- "eu-isoe-": { partition: Partition.EuIsoE, domainSuffix: "cloud.adc-e.uk" },
151
- };
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvc3RvcmFnZS91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1BLHdDQXVCQztBQUVELDBDQW1CQztBQXVDRCxnQ0FXQztBQXVCRCwwREFZQztBQUVELDBDQWlCQztBQTFKRCxpQ0FBOEI7QUFFOUIsZ0NBQW1DO0FBQ25DLDRDQUF3QztBQUd4QyxTQUFnQixjQUFjLENBQzVCLFNBQXFCLEVBQ3JCLEtBQXVCO0lBRXZCLDZDQUE2QztJQUM3QyxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sb0JBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2xELHNEQUFzRDtZQUN0RCw2REFBNkQ7WUFDN0QsTUFBTSxFQUFFLEVBQUU7WUFDVixPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU8sRUFBRSxJQUFJO1lBQ2IsUUFBUSxFQUFFLEtBQUssQ0FBQyxVQUFVO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLElBQUksS0FBSyxDQUNiLDZFQUE2RSxDQUM5RSxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGVBQWUsQ0FDN0IsU0FBcUIsRUFDckIsS0FBdUI7SUFFdkIsOENBQThDO0lBQzlDLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQztJQUMxQixDQUFDO0lBRUQsc0NBQXNDO0lBQ3RDLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sb0JBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUNoRCxLQUFLLENBQUMsU0FBUyxFQUNmLGVBQVMs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Q3JDLENBQUM7QUFFRCxJQUFLLFNBUUo7QUFSRCxXQUFLLFNBQVM7SUFDWiw0QkFBZSxDQUFBO0lBQ2YsMEJBQWEsQ0FBQTtJQUNiLGlDQUFvQixDQUFBO0lBQ3BCLDhCQUFpQixDQUFBO0lBQ2pCLGlDQUFvQixDQUFBO0lBQ3BCLGlDQUFvQixDQUFBO0lBQ3BCLGlDQUFvQixDQUFBO0FBQ3RCLENBQUMsRUFSSSxTQUFTLEtBQVQsU0FBUyxRQVFiO0FBTVksUUFBQSxhQUFhLEdBQWlDO0lBQ3pELE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUU7SUFDeEUsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFO0lBQ3BFLFNBQVMsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUU7SUFDeEUsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRTtJQUNyRSxVQUFVLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFO0lBQzFFLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRTtJQUMzRSxVQUFVLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUU7Q0FDNUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEFybkZvcm1hdCB9IGZyb20gXCIuLi9hcm5cIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uL2F3cy1zdGFja1wiO1xuaW1wb3J0IHsgQnVja2V0QXR0cmlidXRlcyB9IGZyb20gXCIuL2J1Y2tldFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VCdWNrZXRBcm4oXG4gIGNvbnN0cnVjdDogSUNvbnN0cnVjdCxcbiAgcHJvcHM6IEJ1Y2tldEF0dHJpYnV0ZXMsXG4pOiBzdHJpbmcge1xuICAvLyBpZiB3ZSBoYXZlIGFuIGV4cGxpY2l0IGJ1Y2tldCBBUk4sIHVzZSBpdC5cbiAgaWYgKHByb3BzLmJ1Y2tldEFybikge1xuICAgIHJldHVybiBwcm9wcy5idWNrZXRBcm47XG4gIH1cblxuICBpZiAocHJvcHMuYnVja2V0TmFtZSkge1xuICAgIHJldHVybiBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChjb25zdHJ1Y3QpLmZvcm1hdEFybih7XG4gICAgICAvLyBTMyBCdWNrZXQgbmFtZXMgYXJlIGdsb2JhbGx5IHVuaXF1ZSBpbiBhIHBhcnRpdGlvbixcbiAgICAgIC8vIGFuZCBzbyB0aGVpciBBUk5zIGhhdmUgZW1wdHkgcmVnaW9uIGFuZCBhY2NvdW50IGNvbXBvbmVudHNcbiAgICAgIHJlZ2lvbjogXCJcIixcbiAgICAgIGFjY291bnQ6IFwiXCIsXG4gICAgICBzZXJ2aWNlOiBcInMzXCIsXG4gICAgICByZXNvdXJjZTogcHJvcHMuYnVja2V0TmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihcbiAgICBcIkNhbm5vdCBkZXRlcm1pbmUgYnVja2V0IEFSTi4gQXQgbGVhc3QgYGJ1Y2tldEFybmAgb3IgYGJ1Y2tldE5hbWVgIGlzIG5lZWRlZFwiLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VCdWNrZXROYW1lKFxuICBjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QsXG4gIHByb3BzOiBCdWNrZXRBdHRyaWJ1dGVzLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgLy8gaWYgd2UgaGF2ZSBhbiBleHBsaWNpdCBidWNrZXQgbmFtZSwgdXNlIGl0LlxuICBpZiAocHJvcHMuYnVja2V0TmFtZSkge1xuICAgIHJldHVybiBwcm9wcy5idWNrZXROYW1lO1xuICB9XG5cbiAgLy8gZXh0cmFjdCBidWNrZXQgbmFtZSBmcm9tIGJ1Y2tldCBhcm5cbiAgaWYgKHByb3BzLmJ1Y2tldEFybikge1xuICAgIHJldHVybiBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChjb25zdHJ1Y3QpLnNwbGl0QXJuKFxuICAgICAgcHJvcHMuYnVja2V0QXJuLFxuICAgICAgQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgKS5yZXNvdXJjZTtcbiAgfVxuXG4gIC8vIG5vIGJ1Y2tldCBuYW1lIGlzIG9rYXkgc2luY2UgaXQncyBvcHRpb25hbC5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBBbGwgaHR0cCByZXF1ZXN0IG1ldGhvZHNcbiAqL1xuZXhwb3J0IGVudW0gSHR0cE1ldGhvZHMge1xuICAvKipcbiAgICogVGhlIEdFVCBtZXRob2QgcmVxdWVzdHMgYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3BlY2lmaWVkIHJlc291cmNlLlxuICAgKi9cbiAgR0VUID0gXCJHRVRcIixcbiAgLyoqXG4gICAqIFRoZSBQVVQgbWV0aG9kIHJlcGxhY2VzIGFsbCBjdXJyZW50IHJlcHJlc2VudGF0aW9ucyBvZiB0aGUgdGFyZ2V0IHJlc291cmNlIHdpdGggdGhlIHJlcXVlc3QgcGF5bG9hZC5cbiAgICovXG4gIFBVVCA9IFwiUFVUXCIsXG4gIC8qKlxuICAgKiBUaGUgSEVBRCBtZXRob2QgYXNrcyBmb3IgYSByZXNwb25zZSBpZGVudGljYWwgdG8gdGhhdCBvZiBhIEdFVCByZXF1ZXN0LCBidXQgd2l0aG91dCB0aGUgcmVzcG9uc2UgYm9keS5cbiAgICovXG4gIEhFQUQgPSBcIkhFQURcIixcbiAgLyoqXG4gICAqIFRoZSBQT1NUIG1ldGhvZCBpcyB1c2VkIHRvIHN1Ym1pdCBhbiBlbnRpdHkgdG8gdGhlIHNwZWNpZmllZCByZXNvdXJjZSwgb2Z0ZW4gY2F1c2luZyBhIGNoYW5nZSBpbiBzdGF0ZSBvciBzaWRlIGVmZmVjdHMgb24gdGhlIHNlcnZlci5cbiAgICovXG4gIFBPU1QgPSBcIlBPU1RcIixcbiAgLyoqXG4gICAqIFRoZSBERUxFVEUgbWV0aG9kIGRlbGV0ZXMgdGhlIHNwZWNpZmllZCByZXNvdXJjZS5cbiAgICovXG4gIERFTEVURSA9IFwiREVMRVRFXCIsXG59XG5cbi8qKlxuICogQWxsIGh0dHAgcmVxdWVzdCBtZXRob2RzXG4gKi9cbmV4cG9ydCBlbnVtIFJlZGlyZWN0UHJvdG9jb2wge1xuICBIVFRQID0gXCJodHRwXCIsXG4gIEhUVFBTID0gXCJodHRwc1wiLFxufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSB3aW5kb3dzIHBhdGhzIHRvIGJlIHBvc2l4LWxpa2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxQYXRoKHBhdGg6IHN0cmluZykge1xuICAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS93aW5nbGFuZy93aW5nL2Jsb2IvdjAuODMuOC9saWJzL3dpbmdzZGsvc3JjL3NoYXJlZC9taXNjLnRzI0wxNVxuICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHBhdGhcbiAgICAgICAgLy8gZm9yY2UgcG9zaXggcGF0aCBzZXBhcmF0b3JcbiAgICAgICAgLnJlcGxhY2UoL1xcXFwrL2csIFwiL1wiKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHBhdGg7XG4gIH1cbn1cblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTgxLjEvcGFja2FnZXMvYXdzLWNkay1saWIvcmVnaW9uLWluZm8vbGliL2F3cy1lbnRpdGllcy50cyNMMjdcblxuLyoqXG4gKiByZWdpb25zIGludHJvZHVjZWQgYmVmb3JlIHMzIHdlYnNpdGUgc3RhcnRlZCB1c2luZyBhIHJlZ2lvbmFsIHN1YmRvbWFpblxuICogQWZ0ZXIgdGhpcyBwb2ludCwgUzMgd2Vic2l0ZSBkb21haW5zIGxvb2sgbGlrZSBgczMtd2Vic2l0ZS5SRUdJT04uczMuYW1hem9uYXdzLmNvbWBcbiAqXG4gKiBCZWZvcmUgdGhpcyBwb2ludCwgUzMgd2Vic2l0ZSBkb21haW5zIGxvb2sgbGlrZSBgczMtd2Vic2l0ZS1SRUdJT04uczMuYW1hem9uYXdzLmNvbWAuXG4gKi9cbmNvbnN0IEJFRk9SRV9TM19XRUJTSVRFX1JFR0lPTkFMX1NVQkRPTUFJTjogc3RyaW5nW10gPSBbXG4gIFwidXMtZWFzdC0xXCIsIC8vIFVTIEVhc3QgKE4uIFZpcmdpbmlhKVxuICBcImV1LXdlc3QtMVwiLCAvLyBFdXJvcGUgKElyZWxhbmQpXG4gIFwidXMtd2VzdC0xXCIsIC8vIFVTIFdlc3QgKE4uIENhbGlmb3JuaWEpXG4gIFwiYXAtc291dGhlYXN0LTFcIiwgLy8gQXNpYSBQYWNpZmljIChTaW5nYXBvcmUpXG4gIFwiYXAtbm9ydGhlYXN0LTFcIiwgLy8gQXNpYSBQYWNpZmljIChUb2t5bylcbiAgXCJ1cy1nb3Ytd2VzdC0xXCIsIC8vIEFXUyBHb3ZDbG91ZCAoVVMtV2VzdClcbiAgXCJ1cy13ZXN0LTJcIiwgLy8gVVMgV2VzdCAoT3JlZ29uKVxuICBcInNhLWVhc3QtMVwiLCAvLyBTb3V0aCBBbWVyaWNhIChTw6NvIFBhdWxvKVxuICBcImFwLXNvdXRoZWFzdC0yXCIsIC8vIEFzaWEgUGFjaWZpYyAoU3lkbmV5KVxuXTtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTgxLjEvcGFja2FnZXMvYXdzLWNkay1saWIvcmVnaW9uLWluZm8vYnVpbGQtdG9vbHMvZ2VuZXJhdGUtc3RhdGljLWRhdGEudHMjTDczXG5leHBvcnQgZnVuY3Rpb24gczNTdGF0aWNXZWJzaXRlRW5kcG9pbnQocmVnaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBOT1RFOiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCB1c2VkIGluc3RlYWQgd2UgdXNlIHRoZSBzMyBidWNrZXQgZGF0YXNvdXJjZVxuICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKHJlZ2lvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIkNhbm5vdCBkZXRlcm1pbmUgUzMgd2Vic2l0ZSBlbmRwb2ludCBmb3IgdW5yZXNvbHZlZCByZWdpb25cIixcbiAgICApO1xuICB9XG4gIGNvbnN0IHsgZG9tYWluU3VmZml4IH0gPSBwYXJ0aXRpb25Mb29rdXAocmVnaW9uKTtcbiAgaWYgKEJFRk9SRV9TM19XRUJTSVRFX1JFR0lPTkFMX1NVQkRPTUFJTi5pbmNsdWRlcyhyZWdpb24pKSB7XG4gICAgcmV0dXJuIGBzMy13ZWJzaXRlLSR7cmVnaW9ufS4ke2RvbWFpblN1ZmZpeH1gO1xuICB9XG4gIHJldHVybiBgczMtd2Vic2l0ZS4ke3JlZ2lvbn0uJHtkb21haW5TdWZmaXh9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnRpdGlvbkxvb2t1cChyZWdpb246IHN0cmluZyk6IHtcbiAgcGFydGl0aW9uOiBQYXJ0aXRpb247XG4gIGRvbWFpblN1ZmZpeDogc3RyaW5nO1xufSB7XG4gIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQocmVnaW9uKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBkZXRlcm1pbmUgcmVnaW9uIHBhcnRpdGlvbiBmb3IgdW5yZXNvbHZlZCByZWdpb25cIik7XG4gIH1cbiAgbGV0IHBhcnRpdGlvbiA9IFBBUlRJVElPTl9NQVAuZGVmYXVsdC5wYXJ0aXRpb247XG4gIGxldCBkb21haW5TdWZmaXggPSBQQVJUSVRJT05fTUFQLmRlZmF1bHQuZG9tYWluU3VmZml4O1xuXG4gIGZvciAoY29uc3Qga2V5IGluIFBBUlRJVElPTl9NQVApIHtcbiAgICBpZiAocmVnaW9uLnN0YXJ0c1dpdGgoa2V5KSkge1xuICAgICAgcGFydGl0aW9uID0gUEFSVElUSU9OX01BUFtrZXldLnBhcnRpdGlvbjtcbiAgICAgIGRvbWFpblN1ZmZpeCA9IFBBUlRJVElPTl9NQVBba2V5XS5kb21haW5TdWZmaXg7XG4gICAgfVxuICB9XG4gIHJldHVybiB7IHBhcnRpdGlvbiwgZG9tYWluU3VmZml4IH07XG59XG5cbmVudW0gUGFydGl0aW9uIHtcbiAgRGVmYXVsdCA9IFwiYXdzXCIsXG4gIENuID0gXCJhd3MtY25cIixcbiAgVXNHb3YgPSBcImF3cy11cy1nb3ZcIixcbiAgVXNJc28gPSBcImF3cy1pc29cIixcbiAgVXNJc29CID0gXCJhd3MtaXNvLWJcIixcbiAgVXNJc29GID0gXCJhd3MtaXNvLWZcIixcbiAgRXVJc29FID0gXCJhd3MtaXNvLWVcIixcbn1cblxuaW50ZXJmYWNlIFJlZ2lvbiB7XG4gIHBhcnRpdGlvbjogUGFydGl0aW9uO1xuICBkb21haW5TdWZmaXg6IHN0cmluZztcbn1cbmV4cG9ydCBjb25zdCBQQVJUSVRJT05fTUFQOiB7IFtyZWdpb246IHN0cmluZ106IFJlZ2lvbiB9ID0ge1xuICBkZWZhdWx0OiB7IHBhcnRpdGlvbjogUGFydGl0aW9uLkRlZmF1bHQsIGRvbWFpblN1ZmZpeDogXCJhbWF6b25hd3MuY29tXCIgfSxcbiAgXCJjbi1cIjogeyBwYXJ0aXRpb246IFBhcnRpdGlvbi5DbiwgZG9tYWluU3VmZml4OiBcImFtYXpvbmF3cy5jb20uY25cIiB9LFxuICBcInVzLWdvdi1cIjogeyBwYXJ0aXRpb246IFBhcnRpdGlvbi5Vc0dvdiwgZG9tYWluU3VmZml4OiBcImFtYXpvbmF3cy5jb21cIiB9LFxuICBcInVzLWlzby1cIjogeyBwYXJ0aXRpb246IFBhcnRpdGlvbi5Vc0lzbywgZG9tYWluU3VmZml4OiBcImMycy5pYy5nb3ZcIiB9LFxuICBcInVzLWlzb2ItXCI6IHsgcGFydGl0aW9uOiBQYXJ0aXRpb24uVXNJc29CLCBkb21haW5TdWZmaXg6IFwic2Mycy5zZ292LmdvdlwiIH0sXG4gIFwidXMtaXNvZi1cIjogeyBwYXJ0aXRpb246IFBhcnRpdGlvbi5Vc0lzb0YsIGRvbWFpblN1ZmZpeDogXCJjc3AuaGNpLmljLmdvdlwiIH0sXG4gIFwiZXUtaXNvZS1cIjogeyBwYXJ0aXRpb246IFBhcnRpdGlvbi5FdUlzb0UsIGRvbWFpblN1ZmZpeDogXCJjbG91ZC5hZGMtZS51a1wiIH0sXG59O1xuIl19
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvc3RvcmFnZS91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU9BLHdDQXVCQztBQUVELDBDQW1CQztBQXVDRCxnQ0FXQztBQXVCRCwwREFXQztBQWdERCxrRUFXQztBQWxNRCxpQ0FBOEI7QUFFOUIsZ0NBQW1DO0FBQ25DLDRDQUF3QztBQUV4Qyw0Q0FBK0M7QUFFL0MsU0FBZ0IsY0FBYyxDQUM1QixTQUFxQixFQUNyQixLQUF1QjtJQUV2Qiw2Q0FBNkM7SUFDN0MsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNyQixPQUFPLG9CQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNsRCxzREFBc0Q7WUFDdEQsNkRBQTZEO1lBQzdELE1BQU0sRUFBRSxFQUFFO1lBQ1YsT0FBTyxFQUFFLEVBQUU7WUFDWCxPQUFPLEVBQUUsSUFBSTtZQUNiLFFBQVEsRUFBRSxLQUFLLENBQUMsVUFBVTtTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FDYiw2RUFBNkUsQ0FDOUUsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixlQUFlLENBQzdCLFNBQXFCLEVBQ3JCLEtBQXVCO0lBRXZCLDhDQUE4QztJQUM5QyxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNyQixPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDMUIsQ0FBQztJQUVELHNDQUFzQztJQUN0QyxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNwQixPQUFPLG9CQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FDaEQsS0FBSyxDQUFDLFNB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QUFzQjtJQUN0QyxZQUFZLEVBQUUsZ0JBQWdCO0lBQzlCLFlBQVksRUFBRSxnQkFBZ0I7SUFDOUIsWUFBWSxFQUFFLHNCQUFzQjtJQUNwQyxXQUFXLEVBQUUsZ0JBQWdCO0lBQzdCLFdBQVcsRUFBRSxnQkFBZ0I7SUFDN0IsV0FBVyxFQUFFLGdCQUFnQjtJQUM3QixjQUFjLEVBQUUsdUJBQXVCO0lBQ3ZDLGNBQWMsRUFBRSx1QkFBdUI7SUFDdkMsWUFBWSxFQUFFLGdCQUFnQjtJQUM5QixXQUFXLEVBQUUsZUFBZTtJQUM1QixXQUFXLEVBQUUsZ0JBQWdCO0lBQzdCLFdBQVcsRUFBRSxnQkFBZ0I7SUFDN0IsZUFBZSxFQUFFLGdCQUFnQjtJQUNqQyxlQUFlLEVBQUUsZ0JBQWdCO0lBQ2pDLFdBQVcsRUFBRSxnQkFBZ0I7SUFDN0IsV0FBVyxFQUFFLGdCQUFnQjtDQUM5QixDQUFDO0FBRUYsd0hBQXdIO0FBQ3hILFNBQWdCLDJCQUEyQixDQUFDLE1BQWM7SUFDeEQsSUFBSSxhQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFDRCxNQUFNLFlBQVksR0FBRyx3Q0FBZ0MsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FDYiw0REFBNEQsTUFBTSxFQUFFLENBQ3JFLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEFybkZvcm1hdCB9IGZyb20gXCIuLi9hcm5cIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uL2F3cy1zdGFja1wiO1xuaW1wb3J0IHsgQnVja2V0QXR0cmlidXRlcyB9IGZyb20gXCIuL2J1Y2tldFwiO1xuaW1wb3J0IHsgcGFydGl0aW9uTG9va3VwIH0gZnJvbSBcIi4uL3BhcnRpdGlvblwiO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VCdWNrZXRBcm4oXG4gIGNvbnN0cnVjdDogSUNvbnN0cnVjdCxcbiAgcHJvcHM6IEJ1Y2tldEF0dHJpYnV0ZXMsXG4pOiBzdHJpbmcge1xuICAvLyBpZiB3ZSBoYXZlIGFuIGV4cGxpY2l0IGJ1Y2tldCBBUk4sIHVzZSBpdC5cbiAgaWYgKHByb3BzLmJ1Y2tldEFybikge1xuICAgIHJldHVybiBwcm9wcy5idWNrZXRBcm47XG4gIH1cblxuICBpZiAocHJvcHMuYnVja2V0TmFtZSkge1xuICAgIHJldHVybiBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChjb25zdHJ1Y3QpLmZvcm1hdEFybih7XG4gICAgICAvLyBTMyBCdWNrZXQgbmFtZXMgYXJlIGdsb2JhbGx5IHVuaXF1ZSBpbiBhIHBhcnRpdGlvbixcbiAgICAgIC8vIGFuZCBzbyB0aGVpciBBUk5zIGhhdmUgZW1wdHkgcmVnaW9uIGFuZCBhY2NvdW50IGNvbXBvbmVudHNcbiAgICAgIHJlZ2lvbjogXCJcIixcbiAgICAgIGFjY291bnQ6IFwiXCIsXG4gICAgICBzZXJ2aWNlOiBcInMzXCIsXG4gICAgICByZXNvdXJjZTogcHJvcHMuYnVja2V0TmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihcbiAgICBcIkNhbm5vdCBkZXRlcm1pbmUgYnVja2V0IEFSTi4gQXQgbGVhc3QgYGJ1Y2tldEFybmAgb3IgYGJ1Y2tldE5hbWVgIGlzIG5lZWRlZFwiLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VCdWNrZXROYW1lKFxuICBjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QsXG4gIHByb3BzOiBCdWNrZXRBdHRyaWJ1dGVzLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgLy8gaWYgd2UgaGF2ZSBhbiBleHBsaWNpdCBidWNrZXQgbmFtZSwgdXNlIGl0LlxuICBpZiAocHJvcHMuYnVja2V0TmFtZSkge1xuICAgIHJldHVybiBwcm9wcy5idWNrZXROYW1lO1xuICB9XG5cbiAgLy8gZXh0cmFjdCBidWNrZXQgbmFtZSBmcm9tIGJ1Y2tldCBhcm5cbiAgaWYgKHByb3BzLmJ1Y2tldEFybikge1xuICAgIHJldHVybiBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChjb25zdHJ1Y3QpLnNwbGl0QXJuKFxuICAgICAgcHJvcHMuYnVja2V0QXJuLFxuICAgICAgQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgKS5yZXNvdXJjZTtcbiAgfVxuXG4gIC8vIG5vIGJ1Y2tldCBuYW1lIGlzIG9rYXkgc2luY2UgaXQncyBvcHRpb25hbC5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBBbGwgaHR0cCByZXF1ZXN0IG1ldGhvZHNcbiAqL1xuZXhwb3J0IGVudW0gSHR0cE1ldGhvZHMge1xuICAvKipcbiAgICogVGhlIEdFVCBtZXRob2QgcmVxdWVzdHMgYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3BlY2lmaWVkIHJlc291cmNlLlxuICAgKi9cbiAgR0VUID0gXCJHRVRcIixcbiAgLyoqXG4gICAqIFRoZSBQVVQgbWV0aG9kIHJlcGxhY2VzIGFsbCBjdXJyZW50IHJlcHJlc2VudGF0aW9ucyBvZiB0aGUgdGFyZ2V0IHJlc291cmNlIHdpdGggdGhlIHJlcXVlc3QgcGF5bG9hZC5cbiAgICovXG4gIFBVVCA9IFwiUFVUXCIsXG4gIC8qKlxuICAgKiBUaGUgSEVBRCBtZXRob2QgYXNrcyBmb3IgYSByZXNwb25zZSBpZGVudGljYWwgdG8gdGhhdCBvZiBhIEdFVCByZXF1ZXN0LCBidXQgd2l0aG91dCB0aGUgcmVzcG9uc2UgYm9keS5cbiAgICovXG4gIEhFQUQgPSBcIkhFQURcIixcbiAgLyoqXG4gICAqIFRoZSBQT1NUIG1ldGhvZCBpcyB1c2VkIHRvIHN1Ym1pdCBhbiBlbnRpdHkgdG8gdGhlIHNwZWNpZmllZCByZXNvdXJjZSwgb2Z0ZW4gY2F1c2luZyBhIGNoYW5nZSBpbiBzdGF0ZSBvciBzaWRlIGVmZmVjdHMgb24gdGhlIHNlcnZlci5cbiAgICovXG4gIFBPU1QgPSBcIlBPU1RcIixcbiAgLyoqXG4gICAqIFRoZSBERUxFVEUgbWV0aG9kIGRlbGV0ZXMgdGhlIHNwZWNpZmllZCByZXNvdXJjZS5cbiAgICovXG4gIERFTEVURSA9IFwiREVMRVRFXCIsXG59XG5cbi8qKlxuICogQWxsIGh0dHAgcmVxdWVzdCBtZXRob2RzXG4gKi9cbmV4cG9ydCBlbnVtIFJlZGlyZWN0UHJvdG9jb2wge1xuICBIVFRQID0gXCJodHRwXCIsXG4gIEhUVFBTID0gXCJodHRwc1wiLFxufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSB3aW5kb3dzIHBhdGhzIHRvIGJlIHBvc2l4LWxpa2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxQYXRoKHBhdGg6IHN0cmluZykge1xuICAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS93aW5nbGFuZy93aW5nL2Jsb2IvdjAuODMuOC9saWJzL3dpbmdzZGsvc3JjL3NoYXJlZC9taXNjLnRzI0wxNVxuICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHBhdGhcbiAgICAgICAgLy8gZm9yY2UgcG9zaXggcGF0aCBzZXBhcmF0b3JcbiAgICAgICAgLnJlcGxhY2UoL1xcXFwrL2csIFwiL1wiKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHBhdGg7XG4gIH1cbn1cblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTgxLjEvcGFja2FnZXMvYXdzLWNkay1saWIvcmVnaW9uLWluZm8vbGliL2F3cy1lbnRpdGllcy50cyNMMjdcbi8vIHJlZjogQVdTX1JFR0lPTlNfQU5EX1JVTEVTID4gUlVMRV9TM19XRUJTSVRFX1JFR0lPTkFMX1NVQkRPTUFJTlxuLyoqXG4gKiByZWdpb25zIGludHJvZHVjZWQgYmVmb3JlIHMzIHdlYnNpdGUgc3RhcnRlZCB1c2luZyBhIHJlZ2lvbmFsIHN1YmRvbWFpblxuICogQWZ0ZXIgdGhpcyBwb2ludCwgUzMgd2Vic2l0ZSBkb21haW5zIGxvb2sgbGlrZSBgczMtd2Vic2l0ZS5SRUdJT04uczMuYW1hem9uYXdzLmNvbWBcbiAqXG4gKiBCZWZvcmUgdGhpcyBwb2ludCwgUzMgd2Vic2l0ZSBkb21haW5zIGxvb2sgbGlrZSBgczMtd2Vic2l0ZS1SRUdJT04uczMuYW1hem9uYXdzLmNvbWAuXG4gKi9cbmNvbnN0IEJFRk9SRV9TM19XRUJTSVRFX1JFR0lPTkFMX1NVQkRPTUFJTjogc3RyaW5nW10gPSBbXG4gIFwidXMtZWFzdC0xXCIsIC8vIFVTIEVhc3QgKE4uIFZpcmdpbmlhKVxuICBcImV1LXdlc3QtMVwiLCAvLyBFdXJvcGUgKElyZWxhbmQpXG4gIFwidXMtd2VzdC0xXCIsIC8vIFVTIFdlc3QgKE4uIENhbGlmb3JuaWEpXG4gIFwiYXAtc291dGhlYXN0LTFcIiwgLy8gQXNpYSBQYWNpZmljIChTaW5nYXBvcmUpXG4gIFwiYXAtbm9ydGhlYXN0LTFcIiwgLy8gQXNpYSBQYWNpZmljIChUb2t5bylcbiAgXCJ1cy1nb3Ytd2VzdC0xXCIsIC8vIEFXUyBHb3ZDbG91ZCAoVVMtV2VzdClcbiAgXCJ1cy13ZXN0LTJcIiwgLy8gVVMgV2VzdCAoT3JlZ29uKVxuICBcInNhLWVhc3QtMVwiLCAvLyBTb3V0aCBBbWVyaWNhIChTw6NvIFBhdWxvKVxuICBcImFwLXNvdXRoZWFzdC0yXCIsIC8vIEFzaWEgUGFjaWZpYyAoU3lkbmV5KVxuXTtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTgxLjEvcGFja2FnZXMvYXdzLWNkay1saWIvcmVnaW9uLWluZm8vYnVpbGQtdG9vbHMvZ2VuZXJhdGUtc3RhdGljLWRhdGEudHMjTDczXG5leHBvcnQgZnVuY3Rpb24gczNTdGF0aWNXZWJzaXRlRW5kcG9pbnQocmVnaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKHJlZ2lvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIkNhbm5vdCBkZXRlcm1pbmUgUzMgd2Vic2l0ZSBlbmRwb2ludCBmb3IgdW5yZXNvbHZlZCByZWdpb25cIixcbiAgICApO1xuICB9XG4gIGNvbnN0IHsgZG9tYWluU3VmZml4IH0gPSBwYXJ0aXRpb25Mb29rdXAocmVnaW9uKTtcbiAgaWYgKEJFRk9SRV9TM19XRUJTSVRFX1JFR0lPTkFMX1NVQkRPTUFJTi5pbmNsdWRlcyhyZWdpb24pKSB7XG4gICAgcmV0dXJuIGBzMy13ZWJzaXRlLSR7cmVnaW9ufS4ke2RvbWFpblN1ZmZpeH1gO1xuICB9XG4gIHJldHVybiBgczMtd2Vic2l0ZS4ke3JlZ2lvbn0uJHtkb21haW5TdWZmaXh9YDtcbn1cblxuLy8gUmVwbGljYXRlZCB0byBhdm9pZCBDREtURiBUb2tlbnNcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLXByb3ZpZGVyLWF3cy9ibG9iL3Y2LjAuMC9pbnRlcm5hbC9zZXJ2aWNlL3MzL2hvc3RlZF96b25lcy5nbyNMNTVcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE4Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL3JlZ2lvbi1pbmZvL2J1aWxkLXRvb2xzL2ZhY3QtdGFibGVzLnRzI0w3XG5cbi8qKlxuICogVGhlIGhvc3RlZCB6b25lIElkIGlmIHVzaW5nIGFuIGFsaWFzIHJlY29yZCBpbiBSb3V0ZTUzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dlbmVyYWwvbGF0ZXN0L2dyL3MzLmh0bWwjczNfcmVnaW9uXG4gKi9cbmV4cG9ydCBjb25zdCBST1VURV81M19CVUNLRVRfV0VCU0lURV9aT05FX0lEUzogeyBbcmVnaW9uOiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgXCJhZi1zb3V0aC0xXCI6IFwiWjExS0hEOEZCVlBVWVVcIixcbiAgXCJhcC1lYXN0LTFcIjogXCJaTkI5OEtXTUZSMFI2XCIsXG4gIFwiYXAtbm9ydGhlYXN0LTFcIjogXCJaMk00RUhVUjI2UDdaV1wiLFxuICBcImFwLW5vcnRoZWFzdC0yXCI6IFwiWjNXMDNPN0I1WU1JWVBcIixcbiAgXCJhcC1ub3J0aGVhc3QtM1wiOiBcIloyWVFCNVJENjNOQzg1XCIsXG4gIFwiYXAtc291dGgtMVwiOiBcIloxMVJHSk9GUU5WSlVQXCIsXG4gIFwiYXAtc291dGgtMlwiOiBcIlowMjk3NjIwMkI0RVpNWElQTVhGN1wiLFxuICBcImFwLXNvdXRoZWFzdC0xXCI6IFwiWjNPMEoyRFhCRTFGVEJcIixcbiAgXCJhcC1zb3V0aGVhc3QtMlwiOiBcIloxV0NJR1lJQ04yQllEXCIsXG4gIFwiYXAtc291dGhlYXN0LTNcIjogXCJaMDE4NDY3NTNLMzI0TEkyNkEzVlZcIixcbiAgXCJhcC1zb3V0aGVhc3QtNFwiOiBcIlowMzEyMzg3MjQzWFQ1RkUxNFdGT1wiLFxuICBcImFwLXNvdXRoZWFzdC01XCI6IFwiWjA4NjYwMDYzT1hMTUE3RjFGSkhVXCIsXG4gIFwiY2EtY2VudHJhbC0xXCI6IFwiWjFRREhIMTgxNTlIMjlcIixcbiAgXCJjbi1ub3J0aC0xXCI6IFwiWjVDTjhVTVhUOTJXTlwiLFxuICBcImNuLW5vcnRod2VzdC0xXCI6IFwiWjI4MkhKMUtUMERIMDNcIixcbiAgXCJldS1jZW50cmFsLTFcIjogXCJaMjFETkRVVkxUUVc2UVwiLFxuICBcImV1LWNlbnRyYWwtMlwiOiBcIlowMzA1MDYwMTZZRFFHRVROQVNTXCIsXG4gIFwiZXUtbm9ydGgtMVwiOiBcIlozQkFaRzJUV0NOWDBEXCIsXG4gIFwiZXUtc291dGgtMVwiOiBcIlozSVhWVjhDNzNHSU8zXCIsXG4gIFwiZXUtc291dGgtMlwiOiBcIlowMDgxOTU5RjcxMzlHUkpDMTlKXCIsXG4gIFwiZXUtd2VzdC0xXCI6IFwiWjFCS0NUWEQ3NEVaUEVcIixcbiAgXCJldS13ZXN0LTJcIjogXCJaM0dLWkM1MVpGMERCNFwiLFxuICBcImV1LXdlc3QtM1wiOiBcIlozUjFLMzY5RzVBVkRHXCIsXG4gIFwiaWwtY2VudHJhbC0xXCI6IFwiWjA5NjQwNjEzSzRBM01ONTVVN0dVXCIsXG4gIFwibWUtY2VudHJhbC0xXCI6IFwiWjA2MTQzMDkySThIUlhaUlVaUk9GXCIsXG4gIFwibWUtc291dGgtMVwiOiBcIloxTVBNV0NQQTdZQjYyXCIsXG4gIFwic2EtZWFzdC0xXCI6IFwiWjdLUUg0UUpTNTVTT1wiLFxuICBcInVzLWVhc3QtMVwiOiBcIlozQVFCU1RHRllKU1RGXCIsXG4gIFwidXMtZWFzdC0yXCI6IFwiWjJPMUVNUk85SzVHTFhcIixcbiAgXCJ1cy1nb3YtZWFzdC0xXCI6IFwiWjJOSUZWWVlXMlZLVjFcIixcbiAgXCJ1cy1nb3Ytd2VzdC0xXCI6IFwiWjMxR0ZUMFVBMUkySFZcIixcbiAgXCJ1cy13ZXN0LTFcIjogXCJaMkY1NlVaTDJNMUFDRFwiLFxuICBcInVzLXdlc3QtMlwiOiBcIlozQko2SzZSSUlPTjdNXCIsXG59O1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xODEuMS9wYWNrYWdlcy9hd3MtY2RrLWxpYi9yZWdpb24taW5mby9idWlsZC10b29scy9nZW5lcmF0ZS1zdGF0aWMtZGF0YS50cyNMNzdcbmV4cG9ydCBmdW5jdGlvbiBzM1N0YXRpY1dlYnNpdGVIb3N0ZWRab25lSWQocmVnaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKHJlZ2lvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgZGV0ZXJtaW5lIFMzIGhvc3RlZCBab25lSWQgZm9yIHVucmVzb2x2ZWQgcmVnaW9uXCIpO1xuICB9XG4gIGNvbnN0IGhvc3RlZFpvbmVJZCA9IFJPVVRFXzUzX0JVQ0tFVF9XRUJTSVRFX1pPTkVfSURTW3JlZ2lvbl07XG4gIGlmICghaG9zdGVkWm9uZUlkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYE5vIGhvc3RlZCB6b25lIElEIGZvdW5kIGZvciBTMyBzdGF0aWMgd2Vic2l0ZSBpbiByZWdpb246ICR7cmVnaW9ufWAsXG4gICAgKTtcbiAgfVxuICByZXR1cm4gaG9zdGVkWm9uZUlkO1xufVxuIl19
package/lib/aws/util.d.ts CHANGED
@@ -2,3 +2,4 @@
2
2
  * Returns a copy of `obj` without `undefined` (or `null`) values in maps or arrays.
3
3
  */
4
4
  export declare function filterUndefined(obj: any): any;
5
+ export declare function toTerraformIdentifier(identifier: string): string;
package/lib/aws/util.js CHANGED
@@ -2,6 +2,8 @@
2
2
  // ref: https://github.com/aws/aws-cdk/blob/v2.150.0/packages/aws-cdk-lib/core/lib/util.ts
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.filterUndefined = filterUndefined;
5
+ exports.toTerraformIdentifier = toTerraformIdentifier;
6
+ const change_case_1 = require("change-case");
5
7
  /**
6
8
  * Returns a copy of `obj` without `undefined` (or `null`) values in maps or arrays.
7
9
  */
@@ -21,4 +23,7 @@ function filterUndefined(obj) {
21
23
  }
22
24
  return obj;
23
25
  }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3MvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEZBQTBGOztBQUsxRiwwQ0FpQkM7QUFwQkQ7O0dBRUc7QUFDSCxTQUFnQixlQUFlLENBQUMsR0FBUTtJQUN0QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzVCLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9DLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNsQixTQUFTO1lBQ1gsQ0FBQztZQUNELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTUwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvdXRpbC50c1xuXG4vKipcbiAqIFJldHVybnMgYSBjb3B5IG9mIGBvYmpgIHdpdGhvdXQgYHVuZGVmaW5lZGAgKG9yIGBudWxsYCkgdmFsdWVzIGluIG1hcHMgb3IgYXJyYXlzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyVW5kZWZpbmVkKG9iajogYW55KTogYW55IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIHJldHVybiBvYmouZmlsdGVyKCh4KSA9PiB4ICE9IG51bGwpLm1hcCgoeCkgPT4gZmlsdGVyVW5kZWZpbmVkKHgpKTtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgcmV0OiBhbnkgPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvYmopKSB7XG4gICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHJldFtrZXldID0gZmlsdGVyVW5kZWZpbmVkKHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG4iXX0=
26
+ function toTerraformIdentifier(identifier) {
27
+ return (0, change_case_1.snakeCase)(identifier).replace(/-/g, "_");
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3MvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEZBQTBGOztBQU8xRiwwQ0FpQkM7QUFFRCxzREFFQztBQTFCRCw2Q0FBd0M7QUFFeEM7O0dBRUc7QUFDSCxTQUFnQixlQUFlLENBQUMsR0FBUTtJQUN0QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzVCLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9DLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNsQixTQUFTO1lBQ1gsQ0FBQztZQUNELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELFNBQWdCLHFCQUFxQixDQUFDLFVBQWtCO0lBQ3RELE9BQU8sSUFBQSx1QkFBUyxFQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTUwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvdXRpbC50c1xuXG5pbXBvcnQgeyBzbmFrZUNhc2UgfSBmcm9tIFwiY2hhbmdlLWNhc2VcIjtcblxuLyoqXG4gKiBSZXR1cm5zIGEgY29weSBvZiBgb2JqYCB3aXRob3V0IGB1bmRlZmluZWRgIChvciBgbnVsbGApIHZhbHVlcyBpbiBtYXBzIG9yIGFycmF5cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlclVuZGVmaW5lZChvYmo6IGFueSk6IGFueSB7XG4gIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICByZXR1cm4gb2JqLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKS5tYXAoKHgpID0+IGZpbHRlclVuZGVmaW5lZCh4KSk7XG4gIH1cblxuICBpZiAodHlwZW9mIG9iaiA9PT0gXCJvYmplY3RcIikge1xuICAgIGNvbnN0IHJldDogYW55ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob2JqKSkge1xuICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICByZXRba2V5XSA9IGZpbHRlclVuZGVmaW5lZCh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9UZXJyYWZvcm1JZGVudGlmaWVyKGlkZW50aWZpZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzbmFrZUNhc2UoaWRlbnRpZmllcikucmVwbGFjZSgvLS9nLCBcIl9cIik7XG59XG4iXX0=
@@ -0,0 +1,434 @@
1
+ import { DockerCacheOption } from "./assets";
2
+ /**
3
+ * Methods to build Docker CLI arguments for builds using secrets.
4
+ *
5
+ * Docker BuildKit must be enabled to use build secrets.
6
+ *
7
+ * @see https://docs.docker.com/build/buildkit/
8
+ */
9
+ export declare class DockerBuildSecret {
10
+ /**
11
+ * A Docker build secret from a file source
12
+ * @param src The path to the source file, relative to the build directory.
13
+ * @returns The latter half required for `--secret`
14
+ */
15
+ static fromSrc(src: string): string;
16
+ }
17
+ /**
18
+ * Bundling options
19
+ *
20
+ */
21
+ export interface BundlingOptions {
22
+ /**
23
+ * The Docker image where the command will run.
24
+ */
25
+ readonly image: DockerImage;
26
+ /**
27
+ * The entrypoint to run in the Docker container.
28
+ *
29
+ * Example value: `['/bin/sh', '-c']`
30
+ *
31
+ * @see https://docs.docker.com/engine/reference/builder/#entrypoint
32
+ *
33
+ * @default - run the entrypoint defined in the image
34
+ */
35
+ readonly entrypoint?: string[];
36
+ /**
37
+ * The command to run in the Docker container.
38
+ *
39
+ * Example value: `['npm', 'install']`
40
+ *
41
+ * @see https://docs.docker.com/engine/reference/run/
42
+ *
43
+ * @default - run the command defined in the image
44
+ */
45
+ readonly command?: string[];
46
+ /**
47
+ * Additional Docker volumes to mount.
48
+ *
49
+ * @default - no additional volumes are mounted
50
+ */
51
+ readonly volumes?: DockerVolume[];
52
+ /**
53
+ * Where to mount the specified volumes from
54
+ * @see https://docs.docker.com/engine/reference/commandline/run/#mount-volumes-from-container---volumes-from
55
+ * @default - no containers are specified to mount volumes from
56
+ */
57
+ readonly volumesFrom?: string[];
58
+ /**
59
+ * The environment variables to pass to the Docker container.
60
+ *
61
+ * @default - no environment variables.
62
+ */
63
+ readonly environment?: {
64
+ [key: string]: string;
65
+ };
66
+ /**
67
+ * Working directory inside the Docker container.
68
+ *
69
+ * @default /asset-input
70
+ */
71
+ readonly workingDirectory?: string;
72
+ /**
73
+ * The user to use when running the Docker container.
74
+ *
75
+ * user | user:group | uid | uid:gid | user:gid | uid:group
76
+ *
77
+ * @see https://docs.docker.com/engine/reference/run/#user
78
+ *
79
+ * @default - uid:gid of the current user or 1000:1000 on Windows
80
+ */
81
+ readonly user?: string;
82
+ /**
83
+ * Local bundling provider.
84
+ *
85
+ * The provider implements a method `tryBundle()` which should return `true`
86
+ * if local bundling was performed. If `false` is returned, docker bundling
87
+ * will be done.
88
+ *
89
+ * @default - bundling will only be performed in a Docker container
90
+ *
91
+ */
92
+ readonly local?: ILocalBundling;
93
+ /**
94
+ * The type of output that this bundling operation is producing.
95
+ *
96
+ * @default BundlingOutput.AUTO_DISCOVER
97
+ *
98
+ */
99
+ readonly outputType?: BundlingOutput;
100
+ /**
101
+ * [Security configuration](https://docs.docker.com/engine/reference/run/#security-configuration)
102
+ * when running the docker container.
103
+ *
104
+ * @default - no security options
105
+ */
106
+ readonly securityOpt?: string;
107
+ /**
108
+ * Docker [Networking options](https://docs.docker.com/engine/reference/commandline/run/#connect-a-container-to-a-network---network)
109
+ *
110
+ * @default - no networking options
111
+ */
112
+ readonly network?: string;
113
+ /**
114
+ * The access mechanism used to make source files available to the bundling container and to return the bundling output back to the host.
115
+ * @default - BundlingFileAccess.BIND_MOUNT
116
+ */
117
+ readonly bundlingFileAccess?: BundlingFileAccess;
118
+ /**
119
+ * Platform to build for. _Requires Docker Buildx_.
120
+ *
121
+ * Specify this property to build images on a specific platform.
122
+ *
123
+ * @default - no platform specified (the current machine architecture will be used)
124
+ */
125
+ readonly platform?: string;
126
+ }
127
+ /**
128
+ * The type of output that a bundling operation is producing.
129
+ *
130
+ */
131
+ export declare enum BundlingOutput {
132
+ /**
133
+ * The bundling output directory includes a single .zip or .jar file which
134
+ * will be used as the final bundle. If the output directory does not
135
+ * include exactly a single archive, bundling will fail.
136
+ */
137
+ ARCHIVED = "archived",
138
+ /**
139
+ * The bundling output directory contains one or more files which will be
140
+ * archived and uploaded as a .zip file to S3.
141
+ */
142
+ NOT_ARCHIVED = "not-archived",
143
+ /**
144
+ * If the bundling output directory contains a single archive file (zip or jar)
145
+ * it will be used as the bundle output as-is. Otherwise, all the files in the bundling output directory will be zipped.
146
+ */
147
+ AUTO_DISCOVER = "auto-discover",
148
+ /**
149
+ * The bundling output directory includes a single file which
150
+ * will be used as the final bundle. If the output directory does not
151
+ * include exactly a single file, bundling will fail.
152
+ *
153
+ * Similar to ARCHIVED but for non-archive files
154
+ */
155
+ SINGLE_FILE = "single-file"
156
+ }
157
+ /**
158
+ * Local bundling
159
+ *
160
+ */
161
+ export interface ILocalBundling {
162
+ /**
163
+ * This method is called before attempting docker bundling to allow the
164
+ * bundler to be executed locally. If the local bundler exists, and bundling
165
+ * was performed locally, return `true`. Otherwise, return `false`.
166
+ *
167
+ * @param outputDir the directory where the bundled asset should be output
168
+ * @param options bundling options for this asset
169
+ */
170
+ tryBundle(outputDir: string, options: BundlingOptions): boolean;
171
+ }
172
+ /**
173
+ * The access mechanism used to make source files available to the bundling container and to return the bundling output back to the host
174
+ */
175
+ export declare enum BundlingFileAccess {
176
+ /**
177
+ * Creates temporary volumes and containers to copy files from the host to the bundling container and back.
178
+ * This is slower, but works also in more complex situations with remote or shared docker sockets.
179
+ */
180
+ VOLUME_COPY = "VOLUME_COPY",
181
+ /**
182
+ * The source and output folders will be mounted as bind mount from the host system
183
+ * This is faster and simpler, but less portable than `VOLUME_COPY`.
184
+ */
185
+ BIND_MOUNT = "BIND_MOUNT"
186
+ }
187
+ /**
188
+ * A Docker image used for asset bundling
189
+ *
190
+ * @deprecated use DockerImage
191
+ */
192
+ export declare class BundlingDockerImage {
193
+ readonly image: string;
194
+ private readonly _imageHash?;
195
+ /**
196
+ * Reference an image on DockerHub or another online registry.
197
+ *
198
+ * @param image the image name
199
+ */
200
+ static fromRegistry(image: string): DockerImage;
201
+ /**
202
+ * Reference an image that's built directly from sources on disk.
203
+ *
204
+ * @param path The path to the directory containing the Docker file
205
+ * @param options Docker build options
206
+ *
207
+ * @deprecated use DockerImage.fromBuild()
208
+ */
209
+ static fromAsset(path: string, options?: DockerBuildOptions): BundlingDockerImage;
210
+ /** @param image The Docker image */
211
+ protected constructor(image: string, _imageHash?: string | undefined);
212
+ /**
213
+ * Provides a stable representation of this image for JSON serialization.
214
+ *
215
+ * @return The overridden image name if set or image hash name in that order
216
+ */
217
+ toJSON(): string;
218
+ /**
219
+ * Runs a Docker image
220
+ */
221
+ run(options?: DockerRunOptions): void;
222
+ /**
223
+ * Copies a file or directory out of the Docker image to the local filesystem.
224
+ *
225
+ * If `outputPath` is omitted the destination path is a temporary directory.
226
+ *
227
+ * @param imagePath the path in the Docker image
228
+ * @param outputPath the destination path for the copy operation
229
+ * @returns the destination path
230
+ */
231
+ cp(imagePath: string, outputPath?: string): string;
232
+ }
233
+ /**
234
+ * A Docker image
235
+ */
236
+ export declare class DockerImage extends BundlingDockerImage {
237
+ /**
238
+ * Builds a Docker image
239
+ *
240
+ * @param path The path to the directory containing the Docker file
241
+ * @param options Docker build options
242
+ */
243
+ static fromBuild(path: string, options?: DockerBuildOptions): DockerImage;
244
+ /**
245
+ * Reference an image on DockerHub or another online registry.
246
+ *
247
+ * @param image the image name
248
+ */
249
+ static fromRegistry(image: string): DockerImage;
250
+ private static cacheOptionToFlag;
251
+ /** The Docker image */
252
+ readonly image: string;
253
+ constructor(image: string, _imageHash?: string);
254
+ /**
255
+ * Provides a stable representation of this image for JSON serialization.
256
+ *
257
+ * @return The overridden image name if set or image hash name in that order
258
+ */
259
+ toJSON(): string;
260
+ /**
261
+ * Runs a Docker image
262
+ */
263
+ run(options?: DockerRunOptions): void;
264
+ /**
265
+ * Copies a file or directory out of the Docker image to the local filesystem.
266
+ *
267
+ * If `outputPath` is omitted the destination path is a temporary directory.
268
+ *
269
+ * @param imagePath the path in the Docker image
270
+ * @param outputPath the destination path for the copy operation
271
+ * @returns the destination path
272
+ */
273
+ cp(imagePath: string, outputPath?: string): string;
274
+ }
275
+ /**
276
+ * A Docker volume
277
+ */
278
+ export interface DockerVolume {
279
+ /**
280
+ * The path to the file or directory on the host machine
281
+ */
282
+ readonly hostPath: string;
283
+ /**
284
+ * The path where the file or directory is mounted in the container
285
+ */
286
+ readonly containerPath: string;
287
+ /**
288
+ * Mount consistency. Only applicable for macOS
289
+ *
290
+ * @default DockerConsistency.DELEGATED
291
+ * @see https://docs.docker.com/storage/bind-mounts/#configure-mount-consistency-for-macos
292
+ */
293
+ readonly consistency?: DockerVolumeConsistency;
294
+ }
295
+ /**
296
+ * Supported Docker volume consistency types. Only valid on macOS due to the way file storage works on Mac
297
+ */
298
+ export declare enum DockerVolumeConsistency {
299
+ /**
300
+ * Read/write operations inside the Docker container are applied immediately on the mounted host machine volumes
301
+ */
302
+ CONSISTENT = "consistent",
303
+ /**
304
+ * Read/write operations on mounted Docker volumes are first written inside the container and then synchronized to the host machine
305
+ */
306
+ DELEGATED = "delegated",
307
+ /**
308
+ * Read/write operations on mounted Docker volumes are first applied on the host machine and then synchronized to the container
309
+ */
310
+ CACHED = "cached"
311
+ }
312
+ /**
313
+ * Docker run options
314
+ */
315
+ export interface DockerRunOptions {
316
+ /**
317
+ * The entrypoint to run in the container.
318
+ *
319
+ * @default - run the entrypoint defined in the image
320
+ */
321
+ readonly entrypoint?: string[];
322
+ /**
323
+ * The command to run in the container.
324
+ *
325
+ * @default - run the command defined in the image
326
+ */
327
+ readonly command?: string[];
328
+ /**
329
+ * Docker volumes to mount.
330
+ *
331
+ * @default - no volumes are mounted
332
+ */
333
+ readonly volumes?: DockerVolume[];
334
+ /**
335
+ * Where to mount the specified volumes from
336
+ * @see https://docs.docker.com/engine/reference/commandline/run/#mount-volumes-from-container---volumes-from
337
+ * @default - no containers are specified to mount volumes from
338
+ */
339
+ readonly volumesFrom?: string[];
340
+ /**
341
+ * The environment variables to pass to the container.
342
+ *
343
+ * @default - no environment variables.
344
+ */
345
+ readonly environment?: {
346
+ [key: string]: string;
347
+ };
348
+ /**
349
+ * Working directory inside the container.
350
+ *
351
+ * @default - image default
352
+ */
353
+ readonly workingDirectory?: string;
354
+ /**
355
+ * The user to use when running the container.
356
+ *
357
+ * @default - root or image default
358
+ */
359
+ readonly user?: string;
360
+ /**
361
+ * [Security configuration](https://docs.docker.com/engine/reference/run/#security-configuration)
362
+ * when running the docker container.
363
+ *
364
+ * @default - no security options
365
+ */
366
+ readonly securityOpt?: string;
367
+ /**
368
+ * Docker [Networking options](https://docs.docker.com/engine/reference/commandline/run/#connect-a-container-to-a-network---network)
369
+ *
370
+ * @default - no networking options
371
+ */
372
+ readonly network?: string;
373
+ /**
374
+ * Set platform if server is multi-platform capable. _Requires Docker Engine API v1.38+_.
375
+ *
376
+ * Example value: `linux/amd64`
377
+ *
378
+ * @default - no platform specified
379
+ */
380
+ readonly platform?: string;
381
+ }
382
+ /**
383
+ * Docker build options
384
+ */
385
+ export interface DockerBuildOptions {
386
+ /**
387
+ * Build args
388
+ *
389
+ * @default - no build args
390
+ */
391
+ readonly buildArgs?: {
392
+ [key: string]: string;
393
+ };
394
+ /**
395
+ * Name of the Dockerfile, must relative to the docker build path.
396
+ *
397
+ * @default `Dockerfile`
398
+ */
399
+ readonly file?: string;
400
+ /**
401
+ * Set platform if server is multi-platform capable. _Requires Docker Engine API v1.38+_.
402
+ *
403
+ * Example value: `linux/amd64`
404
+ *
405
+ * @default - no platform specified
406
+ */
407
+ readonly platform?: string;
408
+ /**
409
+ * Set build target for multi-stage container builds. Any stage defined afterwards will be ignored.
410
+ *
411
+ * Example value: `build-env`
412
+ *
413
+ * @default - Build all stages defined in the Dockerfile
414
+ */
415
+ readonly targetStage?: string;
416
+ /**
417
+ * Cache from options to pass to the `docker build` command.
418
+ *
419
+ * @default - no cache from args are passed
420
+ */
421
+ readonly cacheFrom?: DockerCacheOption[];
422
+ /**
423
+ * Cache to options to pass to the `docker build` command.
424
+ *
425
+ * @default - no cache to args are passed
426
+ */
427
+ readonly cacheTo?: DockerCacheOption;
428
+ /**
429
+ * Disable the cache and pass `--no-cache` to the `docker build` command.
430
+ *
431
+ * @default - cache is used
432
+ */
433
+ readonly cacheDisabled?: boolean;
434
+ }