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
@@ -44,7 +44,7 @@ function makeUniqueResourceName(components, options) {
44
44
  }
45
45
  }
46
46
  // Calculate the hash from the full path, included unresolved tokens so the hash value is always unique
47
- const hash = pathHash(components);
47
+ let hash = pathHash(components);
48
48
  let human = prefix +
49
49
  removeDupes(components)
50
50
  .filter((pathElement) => pathElement !== HIDDEN_FROM_HUMAN_ID)
@@ -54,6 +54,7 @@ function makeUniqueResourceName(components, options) {
54
54
  .concat(separator);
55
55
  if (lowerCase) {
56
56
  human = human.toLowerCase();
57
+ hash = hash.toLowerCase();
57
58
  }
58
59
  const maxhumanLength = maxLength - HASH_LEN;
59
60
  return human.length > maxhumanLength
@@ -141,4 +142,4 @@ function splitInMiddle(s, maxLength = MAX_LEN - HASH_LEN) {
141
142
  const half = maxLength / 2;
142
143
  return s.slice(0, half) + s.slice(-half);
143
144
  }
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pcXVlLXJlc291cmNlLW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJpdmF0ZS91bmlxdWUtcmVzb3VyY2UtbmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWdDQSx3REF3REM7QUFLRCxvRUF3REM7QUFySkQsaUNBQWlDO0FBQ2pDLGlDQUFpQztBQUNqQyw2Q0FBdUU7QUFNdkUsNkdBQTZHO0FBRTdHOzs7OztHQUtHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxVQUFVLENBQUM7QUFFeEM7O0dBRUc7QUFDSCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUM7QUFFNUIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0FBRXJCLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUVwQixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFFbkI7O0dBRUc7QUFDSCxTQUFnQixzQkFBc0IsQ0FDcEMsVUFBb0IsRUFDcEIsT0FBa0M7SUFFbEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUM7SUFDM0MsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7SUFDMUMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDcEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUM7SUFDN0MsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQztJQUV2RCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIsTUFBTSxJQUFBLDRDQUFtQyxHQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELHlGQUF5RjtJQUN6RixJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIs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O0lBQ25CLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2QyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsV0FBVyxDQUFDLElBQWM7SUFDakMsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUVoQyxLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNqRSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsQ0FBUyxFQUFFLFlBQW9CLE9BQU8sR0FBRyxRQUFRO0lBQ3RFLE1BQU0sSUFBSSxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDM0IsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNyeXB0byBmcm9tIFwiY3J5cHRvXCI7XG4vLyBpbXBvcnQgeyBUb2tlbiB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgY2Fubm90Q2FsY0lkRm9yRW1wdHlTZXRPZkNvbXBvbmVudHMgfSBmcm9tIFwiY2RrdGYvbGliL2Vycm9yc1wiO1xuaW1wb3J0IHtcbiAgVW5pcXVlUmVzb3VyY2VOYW1lT3B0aW9ucyxcbiAgVW5pcXVlUmVzb3VyY2VOYW1lUHJlZml4T3B0aW9ucyxcbn0gZnJvbSBcIi4uL3N0YWNrLWJhc2VcIjtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTU2LjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvcHJpdmF0ZS91bmlxdWUtcmVzb3VyY2UtbmFtZS50c1xuXG4vKipcbiAqIFJlc291cmNlcyB3aXRoIHRoaXMgSUQgYXJlIGhpZGRlbiBmcm9tIGh1bWFuc1xuICpcbiAqIFRoZXkgZG8gbm90IGFwcGVhciBpbiB0aGUgaHVtYW4tcmVhZGFibGUgcGFydCBvZiB0aGUgbG9naWNhbCBJRCxcbiAqIGJ1dCB0aGV5IGFyZSBpbmNsdWRlZCBpbiB0aGUgaGFzaCBjYWxjdWxhdGlvbi5cbiAqL1xuY29uc3QgSElEREVOX0ZST01fSFVNQU5fSUQgPSBcIlJlc291cmNlXCI7XG5cbi8qKlxuICogUmVzb3VyY2VzIHdpdGggdGhpcyBJRCBhcmUgY29tcGxldGUgaGlkZGVuIGZyb20gdGhlIGxvZ2ljYWwgSUQgY2FsY3VsYXRpb24uXG4gKi9cbmNvbnN0IEhJRERFTl9JRCA9IFwiRGVmYXVsdFwiO1xuXG5jb25zdCBQQVRIX1NFUCA9IFwiL1wiO1xuXG5jb25zdCBNQVhfTEVOID0gMjU2O1xuXG5jb25zdCBIQVNIX0xFTiA9IDg7XG5cbi8qKlxuICogVXNlIHBhdGggaGFzaCB0byBnZW5lcmF0ZSBhIHVuaXF1ZSBpZCBmcm9tIHRoZSBzZXQgb2YgY29tcG9uZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VVbmlxdWVSZXNvdXJjZU5hbWUoXG4gIGNvbXBvbmVudHM6IHN0cmluZ1tdLFxuICBvcHRpb25zOiBVbmlxdWVSZXNvdXJjZU5hbWVPcHRpb25zLFxuKSB7XG4gIGNvbnN0IG1heExlbmd0aCA9IG9wdGlvbnMubWF4TGVuZ3RoID8/IDI1NjtcbiAgY29uc3Qgc2VwYXJhdG9yID0gb3B0aW9ucy5zZXBhcmF0b3IgPz8gXCJcIjtcbiAgY29uc3QgcHJlZml4ID0gb3B0aW9ucy5wcmVmaXggPz8gXCJcIjtcbiAgY29uc3QgbG93ZXJDYXNlID0gb3B0aW9ucy5sb3dlckNhc2UgPz8gZmFsc2U7XG4gIGNvbXBvbmVudHMgPSBjb21wb25lbnRzLmZpbHRlcigoeCkgPT4geCAhPT0gSElEREVOX0lEKTtcblxuICBpZiAoY29tcG9uZW50cy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBjYW5ub3RDYWxjSWRGb3JFbXB0eVNldE9mQ29tcG9uZW50cygpO1xuICB9XG5cbiAgLy8gdG9wLWxldmVsIHJlc291cmNlcyB3aWxsIHNpbXBseSB1c2UgdGhlIGBuYW1lYCBhcy1pcyBpZiB0aGUgbmFtZSBpcyBhbHNvIHNob3J0IGVub3VnaC5cbiAgaWYgKGNvbXBvbmVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgbGV0IHRvcExldmVsUmVzb3VyY2UgPVxuICAgICAgcHJlZml4ICtcbiAgICAgIHJlbW92ZU5vbkFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVycyhcbiAgICAgICAgY29tcG9uZW50c1swXSxcbiAgICAgICAgb3B0aW9ucy5hbGxvd2VkU3BlY2lhbENoYXJhY3RlcnMsXG4gICAgICApO1xuXG4gICAgaWYgKGxvd2VyQ2FzZSkge1xuICAgICAgdG9wTGV2ZWxSZXNvdXJjZSA9IHRvcExldmVsUmVzb3VyY2UudG9Mb3dlckNhc2UoKTtcbiAgICB9XG5cbiAgICBpZiAodG9wTGV2ZWxSZXNvdXJjZS5sZW5ndGggPD0gbWF4TGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdG9wTGV2ZWxSZXNvdXJjZTtcbiAgICB9XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgdGhlIGhhc2ggZnJvbSB0aGUgZnVsbCBwYXRoLCBpbmNsdWRlZCB1bnJlc29sdmVkIHRva2VucyBzbyB0aGUgaGFzaCB2YWx1ZSBpcyBhbHdheXMgdW5pcXVlXG4gIGNvbnN0IGhhc2ggPSBwYXRoSGFzaChjb21wb25lbnRzKTtcbiAgbGV0IGh1bWFuID1cbiAgICBwcmVmaXggK1xuICAgIHJlbW92ZUR1cGVzKGNvbXBvbmVudHMpXG4gICAgICAuZmlsdGVyKChwYXRoRWxlbWVudCkgPT4gcGF0aEVsZW1lbnQgIT09IEhJRERFTl9GUk9NX0hVTUFOX0lEKVxuICAgICAgLm1hcCgocGF0aEVsZW1lbnQpID0+XG4gICAgICAgIHJlbW92ZU5vbkFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVycyhcbiAgICAgICAgICBwYXRoRWxlbWVudCxcbiAgICAgICAgICBvcHRpb25zLmFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVycyxcbiAgICAgICAgKSxcbiAgICAgIClcbiAgICAgIC5maWx0ZXIoKHBhdGhFbGVtZW50KSA9PiBwYXRoRWxlbWVudClcbiAgICAgIC5qb2luKHNlcGFyYXRvcilcbiAgICAgIC5jb25jYXQoc2VwYXJhdG9yKTtcblxuICBpZiAobG93ZXJDYXNlKSB7XG4gICAgaHVtYW4gPSBodW1hbi50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgY29uc3QgbWF4aHVtYW5MZW5ndGggPSBtYXhMZW5ndGggLSBIQVNIX0xFTjtcbiAgcmV0dXJuIGh1bWFuLmxlbmd0aCA+IG1heGh1bWFuTGVuZ3RoXG4gICAgPyBgJHtzcGxpdEluTWlkZGxlKGh1bWFuLCBtYXhodW1hbkxlbmd0aCl9JHtoYXNofWBcbiAgICA6IGAke2h1bWFufSR7aGFzaH1gO1xufVxuXG4vKipcbiAqIERvZXMgbm90IHVzZSBQYXRoIEhhc2ggYW5kIHJlbGllcyBvbiBwcm92aWRlciBnZW5lcmF0ZWQgc3VmZml4IGluc3RlYWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VVbmlxdWVSZXNvdXJjZU5hbWVQcmVmaXgoXG4gIGNvbXBvbmVudHM6IHN0cmluZ1tdLFxuICBvcHRpb25zOiBVbmlxdWVSZXNvdXJjZU5hbWVQcmVmaXhPcHRpb25zLFxuKSB7XG4gIGNvbnN0IHN1ZmZpeExlbmd0aCA9IG9wdGlvbnMuc3VmZml4TGVuZ3RoID8/IDI2OyAvLyB0ZXJyYWZvcm0gcHJvdmlkZXIgYXdzIGdlbmVyYXRlcyBhIDI2IGNoYXJhY3RlciBzdWZmaXhcbiAgY29uc3QgbWF4TGVuZ3RoID0gKG9wdGlvbnMubWF4TGVuZ3RoID8/IDI1NikgLSBzdWZmaXhMZW5ndGg7XG4gIGNvbnN0IHNlcGFyYXRvciA9IG9wdGlvbnMuc2VwYXJhdG9yID8/IFwiXCI7XG4gIGNvbnN0IHByZWZpeCA9IG9wdGlvbnMucHJlZml4ID8/IFwiXCI7XG4gIGNvbnN0IGxvd2VyQ2FzZSA9IG9wdGlvbnMubG93ZXJDYXNlID8/IGZhbHNlO1xuICBjb21wb25lbnRzID0gY29tcG9uZW50cy5maWx0ZXIoKHgpID0+IHggIT09IEhJRERFTl9JRCk7XG5cbiAgaWYgKGNvbXBvbmVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgY2Fubm90Q2FsY0lkRm9yRW1wdHlTZXRPZkNvbXBvbmVudHMoKTtcbiAgfVxuXG4gIC8vIHRvcC1sZXZlbCByZXNvdXJjZXMgd2lsbCBzaW1wbHkgdXNlIHRoZSBgbmFtZWAgYXMtaXMgaWYgdGhlIG5hbWUgaXMgYWxzbyBzaG9ydCBlbm91Z2guXG4gIGlmIChjb21wb25lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgIGxldCB0b3BMZXZlbFJlc291cmNlID1cbiAgICAgIHByZWZpeCArXG4gICAgICByZW1vdmVOb25BbGxvd2VkU3BlY2lhbENoYXJhY3RlcnMoXG4gICAgICAgIGNvbXBvbmVudHNbMF0sXG4gICAgICAgIG9wdGlvbnMuYWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzLFxuICAgICAgKTtcblxuICAgIGlmIChsb3dlckNhc2UpIHtcbiAgICAgIHRvcExldmVsUmVzb3VyY2UgPSB0b3BMZXZlbFJlc291cmNlLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRvcExldmVsUmVzb3VyY2UubGVuZ3RoIDw9IG1heExlbmd0aCkge1xuICAgICAgcmV0dXJuIHRvcExldmVsUmVzb3VyY2U7XG4gICAgfVxuICB9XG5cbiAgbGV0IGh1bWFuID1cbiAgICBwcmVmaXggK1xuICAgIHJlbW92ZUR1cGVzKGNvbXBvbmVudHMpXG4gICAgICAuZmlsdGVyKChwYXRoRWxlbWVudCkgPT4gcGF0aEVsZW1lbnQgIT09IEhJRERFTl9GUk9NX0hVTUFOX0lEKVxuICAgICAgLm1hcCgocGF0aEVsZW1lbnQpID0+XG4gICAgICAgIHJlbW92ZU5vbkFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVycyhcbiAgICAgICAgICBwYXRoRWxlbWVudCxcbiAgICAgICAgICBvcHRpb25zLmFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVycyxcbiAgICAgICAgKSxcbiAgICAgIClcbiAgICAgIC5maWx0ZXIoKHBhdGhFbGVtZW50KSA9PiBwYXRoRWxlbWVudClcbiAgICAgIC5qb2luKHNlcGFyYXRvcilcbiAgICAgIC5jb25jYXQoc2VwYXJhdG9yKTtcblxuICBpZiAobG93ZXJDYXNlKSB7XG4gICAgaHVtYW4gPSBodW1hbi50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgLy8gVE9ETzogZG9lcyBpdCBtYWtlIHNlbnNlIHRvIHNwbGl0IGluIHRoZSBtaWRkbGUgZm9yIHRoZXNlP1xuICAvLyBPciB0cnkgdG8gcHJlc3NlcnZlIHRoZSBwYXNzZWQgaW4gcHJlZml4IGF0IGFsbCB0aW1lcz9cbiAgcmV0dXJuIGh1bWFuLmxlbmd0aCA+IG1heExlbmd0aFxuICAgID8gYCR7c3BsaXRJbk1pZGRsZShodW1hbiwgbWF4TGVuZ3RoKX1gXG4gICAgOiBgJHtodW1hbn1gO1xufVxuXG4vKipcbiAqIFRha2UgYSBoYXNoIG9mIHRoZSBnaXZlbiBwYXRoLlxuICpcbiAqIFRoZSBoYXNoIGlzIGxpbWl0ZWQgaW4gc2l6ZS5cbiAqL1xuZnVuY3Rpb24gcGF0aEhhc2gocGF0aDogc3RyaW5nW10pOiBzdHJpbmcge1xuICBjb25zdCBtZDUgPSBjcnlwdG9cbiAgICAuY3JlYXRlSGFzaChcIm1kNVwiKVxuICAgIC51cGRhdGUocGF0aC5qb2luKFBBVEhfU0VQKSlcbiAgICAuZGlnZXN0KFwiaGV4XCIpO1xuICByZXR1cm4gbWQ1LnNsaWNlKDAsIEhBU0hfTEVOKS50b1VwcGVyQ2FzZSgpO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgYWxsIG5vbi1hbGxvd2VkIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBhIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gcmVtb3ZlTm9uQWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzKFxuICBzOiBzdHJpbmcsXG4gIGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVycz86IHN0cmluZyxcbikge1xuICBjb25zdCBwYXR0ZXJuID0gYWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzXG4gICAgPyBgW15BLVphLXowLTkke2FsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyc31dYFxuICAgIDogXCJbXkEtWmEtejAtOV1cIjtcbiAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKHBhdHRlcm4sIFwiZ1wiKTtcbiAgcmV0dXJuIHMucmVwbGFjZShyZWdleCwgXCJcIik7XG59XG5cbi8qKlxuICogUmVtb3ZlIGR1cGxpY2F0ZSBcInRlcm1zXCIgZnJvbSB0aGUgcGF0aCBsaXN0XG4gKlxuICogSWYgdGhlIHByZXZpb3VzIHBhdGggY29tcG9uZW50IG5hbWUgZW5kcyB3aXRoIHRoaXMgY29tcG9uZW50IG5hbWUsIHNraXAgdGhlXG4gKiBjdXJyZW50IGNvbXBvbmVudC5cbiAqL1xuZnVuY3Rpb24gcmVtb3ZlRHVwZXMocGF0aDogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHJldCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgcGF0aCkge1xuICAgIGlmIChyZXQubGVuZ3RoID09PSAwIHx8ICFyZXRbcmV0Lmxlbmd0aCAtIDFdLmVuZHNXaXRoKGNvbXBvbmVudCkpIHtcbiAgICAgIHJldC5wdXNoKGNvbXBvbmVudCk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIHNwbGl0SW5NaWRkbGUoczogc3RyaW5nLCBtYXhMZW5ndGg6IG51bWJlciA9IE1BWF9MRU4gLSBIQVNIX0xFTikge1xuICBjb25zdCBoYWxmID0gbWF4TGVuZ3RoIC8gMjtcbiAgcmV0dXJuIHMuc2xpY2UoMCwgaGFsZikgKyBzLnNsaWNlKC1oYWxmKTtcbn1cbiJdfQ==
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pcXVlLXJlc291cmNlLW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJpdmF0ZS91bmlxdWUtcmVzb3VyY2UtbmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWdDQSx3REF5REM7QUFLRCxvRUF3REM7QUF0SkQsaUNBQWlDO0FBQ2pDLGlDQUFpQztBQUNqQyw2Q0FBdUU7QUFNdkUsNkdBQTZHO0FBRTdHOzs7OztHQUtHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxVQUFVLENBQUM7QUFFeEM7O0dBRUc7QUFDSCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUM7QUFFNUIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0FBRXJCLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUVwQixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFFbkI7O0dBRUc7QUFDSCxTQUFnQixzQkFBc0IsQ0FDcEMsVUFBb0IsRUFDcEIsT0FBa0M7SUFFbEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUM7SUFDM0MsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7SUFDMUMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDcEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUM7SUFDN0MsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQztJQUV2RCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIsTUFBTSxJQUFBLDRDQUFtQyxHQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELHlGQUF5RjtJQUN6RixJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIs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QUFjLHdCQUF3QixHQUFHO1FBQzNDLENBQUMsQ0FBQyxjQUFjLENBQUM7SUFDbkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyxXQUFXLENBQUMsSUFBYztJQUNqQyxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBRWhDLEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2pFLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxDQUFTLEVBQUUsWUFBb0IsT0FBTyxHQUFHLFFBQVE7SUFDdEUsTUFBTSxJQUFJLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUMzQixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gXCJjcnlwdG9cIjtcbi8vIGltcG9ydCB7IFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBjYW5ub3RDYWxjSWRGb3JFbXB0eVNldE9mQ29tcG9uZW50cyB9IGZyb20gXCJjZGt0Zi9saWIvZXJyb3JzXCI7XG5pbXBvcnQge1xuICBVbmlxdWVSZXNvdXJjZU5hbWVPcHRpb25zLFxuICBVbmlxdWVSZXNvdXJjZU5hbWVQcmVmaXhPcHRpb25zLFxufSBmcm9tIFwiLi4vc3RhY2stYmFzZVwiO1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNTYuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9jb3JlL2xpYi9wcml2YXRlL3VuaXF1ZS1yZXNvdXJjZS1uYW1lLnRzXG5cbi8qKlxuICogUmVzb3VyY2VzIHdpdGggdGhpcyBJRCBhcmUgaGlkZGVuIGZyb20gaHVtYW5zXG4gKlxuICogVGhleSBkbyBub3QgYXBwZWFyIGluIHRoZSBodW1hbi1yZWFkYWJsZSBwYXJ0IG9mIHRoZSBsb2dpY2FsIElELFxuICogYnV0IHRoZXkgYXJlIGluY2x1ZGVkIGluIHRoZSBoYXNoIGNhbGN1bGF0aW9uLlxuICovXG5jb25zdCBISURERU5fRlJPTV9IVU1BTl9JRCA9IFwiUmVzb3VyY2VcIjtcblxuLyoqXG4gKiBSZXNvdXJjZXMgd2l0aCB0aGlzIElEIGFyZSBjb21wbGV0ZSBoaWRkZW4gZnJvbSB0aGUgbG9naWNhbCBJRCBjYWxjdWxhdGlvbi5cbiAqL1xuY29uc3QgSElEREVOX0lEID0gXCJEZWZhdWx0XCI7XG5cbmNvbnN0IFBBVEhfU0VQID0gXCIvXCI7XG5cbmNvbnN0IE1BWF9MRU4gPSAyNTY7XG5cbmNvbnN0IEhBU0hfTEVOID0gODtcblxuLyoqXG4gKiBVc2UgcGF0aCBoYXNoIHRvIGdlbmVyYXRlIGEgdW5pcXVlIGlkIGZyb20gdGhlIHNldCBvZiBjb21wb25lbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFrZVVuaXF1ZVJlc291cmNlTmFtZShcbiAgY29tcG9uZW50czogc3RyaW5nW10sXG4gIG9wdGlvbnM6IFVuaXF1ZVJlc291cmNlTmFtZU9wdGlvbnMsXG4pIHtcbiAgY29uc3QgbWF4TGVuZ3RoID0gb3B0aW9ucy5tYXhMZW5ndGggPz8gMjU2O1xuICBjb25zdCBzZXBhcmF0b3IgPSBvcHRpb25zLnNlcGFyYXRvciA/PyBcIlwiO1xuICBjb25zdCBwcmVmaXggPSBvcHRpb25zLnByZWZpeCA/PyBcIlwiO1xuICBjb25zdCBsb3dlckNhc2UgPSBvcHRpb25zLmxvd2VyQ2FzZSA/PyBmYWxzZTtcbiAgY29tcG9uZW50cyA9IGNvbXBvbmVudHMuZmlsdGVyKCh4KSA9PiB4ICE9PSBISURERU5fSUQpO1xuXG4gIGlmIChjb21wb25lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IGNhbm5vdENhbGNJZEZvckVtcHR5U2V0T2ZDb21wb25lbnRzKCk7XG4gIH1cblxuICAvLyB0b3AtbGV2ZWwgcmVzb3VyY2VzIHdpbGwgc2ltcGx5IHVzZSB0aGUgYG5hbWVgIGFzLWlzIGlmIHRoZSBuYW1lIGlzIGFsc28gc2hvcnQgZW5vdWdoLlxuICBpZiAoY29tcG9uZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICBsZXQgdG9wTGV2ZWxSZXNvdXJjZSA9XG4gICAgICBwcmVmaXggK1xuICAgICAgcmVtb3ZlTm9uQWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzKFxuICAgICAgICBjb21wb25lbnRzWzBdLFxuICAgICAgICBvcHRpb25zLmFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVycyxcbiAgICAgICk7XG5cbiAgICBpZiAobG93ZXJDYXNlKSB7XG4gICAgICB0b3BMZXZlbFJlc291cmNlID0gdG9wTGV2ZWxSZXNvdXJjZS50b0xvd2VyQ2FzZSgpO1xuICAgIH1cblxuICAgIGlmICh0b3BMZXZlbFJlc291cmNlLmxlbmd0aCA8PSBtYXhMZW5ndGgpIHtcbiAgICAgIHJldHVybiB0b3BMZXZlbFJlc291cmNlO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSB0aGUgaGFzaCBmcm9tIHRoZSBmdWxsIHBhdGgsIGluY2x1ZGVkIHVucmVzb2x2ZWQgdG9rZW5zIHNvIHRoZSBoYXNoIHZhbHVlIGlzIGFsd2F5cyB1bmlxdWVcbiAgbGV0IGhhc2ggPSBwYXRoSGFzaChjb21wb25lbnRzKTtcbiAgbGV0IGh1bWFuID1cbiAgICBwcmVmaXggK1xuICAgIHJlbW92ZUR1cGVzKGNvbXBvbmVudHMpXG4gICAgICAuZmlsdGVyKChwYXRoRWxlbWVudCkgPT4gcGF0aEVsZW1lbnQgIT09IEhJRERFTl9GUk9NX0hVTUFOX0lEKVxuICAgICAgLm1hcCgocGF0aEVsZW1lbnQpID0+XG4gICAgICAgIHJlbW92ZU5vbkFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVycyhcbiAgICAgICAgICBwYXRoRWxlbWVudCxcbiAgICAgICAgICBvcHRpb25zLmFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVycyxcbiAgICAgICAgKSxcbiAgICAgIClcbiAgICAgIC5maWx0ZXIoKHBhdGhFbGVtZW50KSA9PiBwYXRoRWxlbWVudClcbiAgICAgIC5qb2luKHNlcGFyYXRvcilcbiAgICAgIC5jb25jYXQoc2VwYXJhdG9yKTtcblxuICBpZiAobG93ZXJDYXNlKSB7XG4gICAgaHVtYW4gPSBodW1hbi50b0xvd2VyQ2FzZSgpO1xuICAgIGhhc2ggPSBoYXNoLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBjb25zdCBtYXhodW1hbkxlbmd0aCA9IG1heExlbmd0aCAtIEhBU0hfTEVOO1xuICByZXR1cm4gaHVtYW4ubGVuZ3RoID4gbWF4aHVtYW5MZW5ndGhcbiAgICA/IGAke3NwbGl0SW5NaWRkbGUoaHVtYW4sIG1heGh1bWFuTGVuZ3RoKX0ke2hhc2h9YFxuICAgIDogYCR7aHVtYW59JHtoYXNofWA7XG59XG5cbi8qKlxuICogRG9lcyBub3QgdXNlIFBhdGggSGFzaCBhbmQgcmVsaWVzIG9uIHByb3ZpZGVyIGdlbmVyYXRlZCBzdWZmaXggaW5zdGVhZFxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFrZVVuaXF1ZVJlc291cmNlTmFtZVByZWZpeChcbiAgY29tcG9uZW50czogc3RyaW5nW10sXG4gIG9wdGlvbnM6IFVuaXF1ZVJlc291cmNlTmFtZVByZWZpeE9wdGlvbnMsXG4pIHtcbiAgY29uc3Qgc3VmZml4TGVuZ3RoID0gb3B0aW9ucy5zdWZmaXhMZW5ndGggPz8gMjY7IC8vIHRlcnJhZm9ybSBwcm92aWRlciBhd3MgZ2VuZXJhdGVzIGEgMjYgY2hhcmFjdGVyIHN1ZmZpeFxuICBjb25zdCBtYXhMZW5ndGggPSAob3B0aW9ucy5tYXhMZW5ndGggPz8gMjU2KSAtIHN1ZmZpeExlbmd0aDtcbiAgY29uc3Qgc2VwYXJhdG9yID0gb3B0aW9ucy5zZXBhcmF0b3IgPz8gXCJcIjtcbiAgY29uc3QgcHJlZml4ID0gb3B0aW9ucy5wcmVmaXggPz8gXCJcIjtcbiAgY29uc3QgbG93ZXJDYXNlID0gb3B0aW9ucy5sb3dlckNhc2UgPz8gZmFsc2U7XG4gIGNvbXBvbmVudHMgPSBjb21wb25lbnRzLmZpbHRlcigoeCkgPT4geCAhPT0gSElEREVOX0lEKTtcblxuICBpZiAoY29tcG9uZW50cy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBjYW5ub3RDYWxjSWRGb3JFbXB0eVNldE9mQ29tcG9uZW50cygpO1xuICB9XG5cbiAgLy8gdG9wLWxldmVsIHJlc291cmNlcyB3aWxsIHNpbXBseSB1c2UgdGhlIGBuYW1lYCBhcy1pcyBpZiB0aGUgbmFtZSBpcyBhbHNvIHNob3J0IGVub3VnaC5cbiAgaWYgKGNvbXBvbmVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgbGV0IHRvcExldmVsUmVzb3VyY2UgPVxuICAgICAgcHJlZml4ICtcbiAgICAgIHJlbW92ZU5vbkFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVycyhcbiAgICAgICAgY29tcG9uZW50c1swXSxcbiAgICAgICAgb3B0aW9ucy5hbGxvd2VkU3BlY2lhbENoYXJhY3RlcnMsXG4gICAgICApO1xuXG4gICAgaWYgKGxvd2VyQ2FzZSkge1xuICAgICAgdG9wTGV2ZWxSZXNvdXJjZSA9IHRvcExldmVsUmVzb3VyY2UudG9Mb3dlckNhc2UoKTtcbiAgICB9XG5cbiAgICBpZiAodG9wTGV2ZWxSZXNvdXJjZS5sZW5ndGggPD0gbWF4TGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdG9wTGV2ZWxSZXNvdXJjZTtcbiAgICB9XG4gIH1cblxuICBsZXQgaHVtYW4gPVxuICAgIHByZWZpeCArXG4gICAgcmVtb3ZlRHVwZXMoY29tcG9uZW50cylcbiAgICAgIC5maWx0ZXIoKHBhdGhFbGVtZW50KSA9PiBwYXRoRWxlbWVudCAhPT0gSElEREVOX0ZST01fSFVNQU5fSUQpXG4gICAgICAubWFwKChwYXRoRWxlbWVudCkgPT5cbiAgICAgICAgcmVtb3ZlTm9uQWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzKFxuICAgICAgICAgIHBhdGhFbGVtZW50LFxuICAgICAgICAgIG9wdGlvbnMuYWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzLFxuICAgICAgICApLFxuICAgICAgKVxuICAgICAgLmZpbHRlcigocGF0aEVsZW1lbnQpID0+IHBhdGhFbGVtZW50KVxuICAgICAgLmpvaW4oc2VwYXJhdG9yKVxuICAgICAgLmNvbmNhdChzZXBhcmF0b3IpO1xuXG4gIGlmIChsb3dlckNhc2UpIHtcbiAgICBodW1hbiA9IGh1bWFuLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICAvLyBUT0RPOiBkb2VzIGl0IG1ha2Ugc2Vuc2UgdG8gc3BsaXQgaW4gdGhlIG1pZGRsZSBmb3IgdGhlc2U/XG4gIC8vIE9yIHRyeSB0byBwcmVzc2VydmUgdGhlIHBhc3NlZCBpbiBwcmVmaXggYXQgYWxsIHRpbWVzP1xuICByZXR1cm4gaHVtYW4ubGVuZ3RoID4gbWF4TGVuZ3RoXG4gICAgPyBgJHtzcGxpdEluTWlkZGxlKGh1bWFuLCBtYXhMZW5ndGgpfWBcbiAgICA6IGAke2h1bWFufWA7XG59XG5cbi8qKlxuICogVGFrZSBhIGhhc2ggb2YgdGhlIGdpdmVuIHBhdGguXG4gKlxuICogVGhlIGhhc2ggaXMgbGltaXRlZCBpbiBzaXplLlxuICovXG5mdW5jdGlvbiBwYXRoSGFzaChwYXRoOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIGNvbnN0IG1kNSA9IGNyeXB0b1xuICAgIC5jcmVhdGVIYXNoKFwibWQ1XCIpXG4gICAgLnVwZGF0ZShwYXRoLmpvaW4oUEFUSF9TRVApKVxuICAgIC5kaWdlc3QoXCJoZXhcIik7XG4gIHJldHVybiBtZDUuc2xpY2UoMCwgSEFTSF9MRU4pLnRvVXBwZXJDYXNlKCk7XG59XG5cbi8qKlxuICogUmVtb3ZlcyBhbGwgbm9uLWFsbG93ZWQgc3BlY2lhbCBjaGFyYWN0ZXJzIGluIGEgc3RyaW5nLlxuICovXG5mdW5jdGlvbiByZW1vdmVOb25BbGxvd2VkU3BlY2lhbENoYXJhY3RlcnMoXG4gIHM6IHN0cmluZyxcbiAgYWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzPzogc3RyaW5nLFxuKSB7XG4gIGNvbnN0IHBhdHRlcm4gPSBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnNcbiAgICA/IGBbXkEtWmEtejAtOSR7YWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzfV1gXG4gICAgOiBcIlteQS1aYS16MC05XVwiO1xuICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAocGF0dGVybiwgXCJnXCIpO1xuICByZXR1cm4gcy5yZXBsYWNlKHJlZ2V4LCBcIlwiKTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgZHVwbGljYXRlIFwidGVybXNcIiBmcm9tIHRoZSBwYXRoIGxpc3RcbiAqXG4gKiBJZiB0aGUgcHJldmlvdXMgcGF0aCBjb21wb25lbnQgbmFtZSBlbmRzIHdpdGggdGhpcyBjb21wb25lbnQgbmFtZSwgc2tpcCB0aGVcbiAqIGN1cnJlbnQgY29tcG9uZW50LlxuICovXG5mdW5jdGlvbiByZW1vdmVEdXBlcyhwYXRoOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICBmb3IgKGNvbnN0IGNvbXBvbmVudCBvZiBwYXRoKSB7XG4gICAgaWYgKHJldC5sZW5ndGggPT09IDAgfHwgIXJldFtyZXQubGVuZ3RoIC0gMV0uZW5kc1dpdGgoY29tcG9uZW50KSkge1xuICAgICAgcmV0LnB1c2goY29tcG9uZW50KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gc3BsaXRJbk1pZGRsZShzOiBzdHJpbmcsIG1heExlbmd0aDogbnVtYmVyID0gTUFYX0xFTiAtIEhBU0hfTEVOKSB7XG4gIGNvbnN0IGhhbGYgPSBtYXhMZW5ndGggLyAyO1xuICByZXR1cm4gcy5zbGljZSgwLCBoYWxmKSArIHMuc2xpY2UoLWhhbGYpO1xufVxuIl19
package/lib/size.js CHANGED
@@ -164,7 +164,7 @@ class Size {
164
164
  }
165
165
  exports.Size = Size;
166
166
  _a = JSII_RTTI_SYMBOL_1;
167
- Size[_a] = { fqn: "terraconstructs.Size", version: "0.0.25" };
167
+ Size[_a] = { fqn: "terraconstructs.Size", version: "0.1.0" };
168
168
  /**
169
169
  * Rounding behaviour when converting between units of `Size`.
170
170
  */
package/lib/stack-base.js CHANGED
@@ -158,5 +158,5 @@ class StackBase extends cdktf_1.TerraformStack {
158
158
  }
159
159
  exports.StackBase = StackBase;
160
160
  _a = JSII_RTTI_SYMBOL_1;
161
- StackBase[_a] = { fqn: "terraconstructs.StackBase", version: "0.0.25" };
161
+ StackBase[_a] = { fqn: "terraconstructs.StackBase", version: "0.1.0" };
162
162
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGFjay1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaUNBV2U7QUFDZiwyQ0FBeUQ7QUFDekQsdUNBSW1CO0FBRW5CLE1BQU0sY0FBYyxHQUFHLElBQUksNEJBQW9CLENBQUMsSUFBSSxvQkFBWSxFQUFFLENBQUMsQ0FBQztBQUVwRSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztBQStHbEU7Ozs7R0FJRztBQUNILE1BQXNCLFNBQVUsU0FBUSxzQkFBYztJQUNwRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFNO1FBQy9CLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksaUJBQWlCLElBQUksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBcUI7UUFDbEQsTUFBTSxDQUFDLEdBQUcsc0JBQWMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsSUFBSSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYixhQUFhLFNBQVMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxTQUFTLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxnRkFBZ0YsQ0FDckosQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUE0QjtRQUNqRCxNQUFNLElBQUksR0FBRyxzQkFBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFD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T0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDcEQsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBbkxILDhCQW9MQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFRlcnJhZm9ybVN0YWNrLFxuICBUZXJyYWZvcm1FbGVtZW50LFxuICBIdHRwQmFja2VuZENvbmZpZyxcbiAgSHR0cEJhY2tlbmQsXG4gIFRva2VuaXphdGlvbixcbiAgRGVmYXVsdFRva2VuUmVzb2x2ZXIsIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLWNkay9ibG9iL3YwLjIwLjkvcGFja2FnZXMvY2RrdGYvbGliL3Rva2Vucy9yZXNvbHZhYmxlLnRzI0wxNzZcbiAgU3RyaW5nQ29uY2F0LCAvLyBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1jZGsvYmxvYi92MC4yMC45L3BhY2thZ2VzL2Nka3RmL2xpYi90b2tlbnMvcmVzb2x2YWJsZS50cyNMMTU2XG4gIEFzcGVjdHMsXG4gIElSZXNvbHZlQ29udGV4dCxcbiAgTGF6eSxcbn0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIElDb25zdHJ1Y3QsIE5vZGUgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgbWFrZVVuaXF1ZVJlc291cmNlTmFtZSxcbiAgbWFrZVVuaXF1ZVJlc291cmNlTmFtZVByZWZpeCxcbiAgVGVycmFmb3JtRGVwZW5kZW5jeUFzcGVjdCxcbn0gZnJvbSBcIi4vcHJpdmF0ZVwiO1xuXG5jb25zdCBUT0tFTl9SRVNPTFZFUiA9IG5ldyBEZWZhdWx0VG9rZW5SZXNvbHZlcihuZXcgU3RyaW5nQ29uY2F0KCkpO1xuXG5jb25zdCBURVJSQVNUQUNLX1NZTUJPTCA9IFN5bWJvbC5mb3IoXCJ0ZXJyYWNvbnN0cnVjdHMvbGliLlN0YWNrXCIpO1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNTYuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9jb3JlL2xpYi9uYW1lcy50c1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNyZWF0aW5nIGEgdW5pcXVlIHJlc291cmNlIG5hbWVfcHJlZml4LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVuaXF1ZVJlc291cmNlTmFtZVByZWZpeE9wdGlvbnNcbiAgZXh0ZW5kcyBVbmlxdWVSZXNvdXJjZU5hbWVPcHRpb25zIHtcbiAgLyoqXG4gICAqIExlbmd0aCBvZiB0aGUgcmFuZG9tIGdlbmVyYXRlZCBzdWZmaXggYWRkZWQgYnkgc29tZSBUZXJyYWZvcm0gcHJvdmlkZXJzLlxuICAgKlxuICAgKiBOT1RFOiBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1wcm92aWRlci1hd3MvaXNzdWVzLzYyNVxuICAgKiBAZGVmYXVsdCAtIDI2XG4gICAqL1xuICByZWFkb25seSBzdWZmaXhMZW5ndGg/OiBudW1iZXI7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY3JlYXRpbmcgYSB1bmlxdWUgcmVzb3VyY2UgbmFtZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbmlxdWVSZXNvdXJjZU5hbWVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiB0aGUgdW5pcXVlIHJlc291cmNlIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gMjU2XG4gICAqL1xuICByZWFkb25seSBtYXhMZW5ndGg/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXBhcmF0b3IgdXNlZCBiZXR3ZWVuIHRoZSBwYXRoIGNvbXBvbmVudHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VwYXJhdG9yPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOb24tYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYWxsb3dlZCBpbiB0aGUgdW5pcXVlIHJlc291cmNlIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcmVmaXggdG8gYmUgYWRkZWQgaW50byB0aGUgc3RhY2sgbmFtZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBjb252ZXJ0IHRoZSByZXNvdXJjZSBuYW1lIHRvIGxvd2VyY2FzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgbG93ZXJDYXNlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFja0Jhc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUZXJyYUNvbnN0cnVjdCBVVUlEIHdpdGhpbiB0aGUgZ3JpZC5cbiAgICpcbiAgICogVVVJRCBpcyBnZW5lcmF0ZWQgYnkgdGhlIENMSSBhbmQgZW5zdXJlcyByZXNvdXJjZSBJZGVudGl0eVxuICAgKiBpcyBkZWNvdXBsZWQgZnJvbSByZXNvdXJjZSB0YWdnaW5nIGZvciBjb25zaXN0ZW5jeS5cbiAgICpcbiAgICogVVVJRCBtYXkgYmUgdXNlciBwcm92aWRlZCBmb3IgaW1wb3J0ZWQgcmVzb3VyY2VzXG4gICAqL1xuICByZWFkb25seSBncmlkVVVJRDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgbmFtZSBwYXNzZWQgaW4gZnJvbSB0aGUgQ0xJXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogU3RvcmVzIHRoZSBzdGF0ZSB1c2luZyBhIHNpbXBsZSBSRVNUIGNsaWVudC5cbiAgICpcbiAgICogU3RhdGUgd2lsbCBiZSBmZXRjaGVkIHZpYSBHRVQsIHVwZGF0ZWQgdmlhIFBPU1QsIGFuZCBwdXJnZWQgd2l0aCBERUxFVEUuXG4gICAqIFRoZSBtZXRob2QgdXNlZCBmb3IgdXBkYXRpbmcgaXMgY29uZmlndXJhYmxlLlxuICAgKlxuICAgKiBUaGlzIGJhY2tlbmQgb3B0aW9uYWxseSBzdXBwb3J0cyBzdGF0ZSBsb2NraW5nLlxuICAgKiBXaGVuIGxvY2tpbmcgc3VwcG9ydCBpcyBlbmFibGVkIGl0IHdpbGwgdXNlIExPQ0sgYW5kIFVOTE9DSyByZXF1ZXN0cyBwcm92aWRpbmcgdGhlIGxvY2sgaW5mbyBpbiB0aGUgYm9keS5cbiAgICogVGhlIGVuZHBvaW50IHNob3VsZCByZXR1cm4gYSA0MjM6IExvY2tlZCBvciA0MDk6IENvbmZsaWN0IHdpdGggdGhlIGhvbGRpbmcgbG9jayBpbmZvIHdoZW5cbiAgICogaXQncyBhbHJlYWR5IHRha2VuLCAyMDA6IE9LIGZvciBzdWNjZXNzLiBBbnkgb3RoZXIgc3RhdHVzIHdpbGwgYmUgY29uc2lkZXJlZCBhbiBlcnJvci5cbiAgICogVGhlIElEIG9mIHRoZSBob2xkaW5nIGxvY2sgaW5mbyB3aWxsIGJlIGFkZGVkIGFzIGEgcXVlcnkgcGFyYW1ldGVyIHRvIHN0YXRlIHVwZGF0ZXMgcmVxdWVzdHMuXG4gICAqXG4gICAqIFJlYWQgbW9yZSBhYm91dCB0aGlzIGJhY2tlbmQgaW4gdGhlIFRlcnJhZm9ybSBkb2NzOlxuICAgKiBodHRwczovL2RldmVsb3Blci5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9sYW5ndWFnZS9zZXR0aW5ncy9iYWNrZW5kcy9odHRwXG4gICAqL1xuICByZWFkb25seSBncmlkQmFja2VuZENvbmZpZz86IEh0dHBCYWNrZW5kQ29uZmlnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdGFjayBleHRlbmRzIElDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogRW52aXJvbm1lbnQgTmFtZSBwYXNzZWQgaW4gZnJvbSB0aGUgQ0xJXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZ3JpZFVVSUQ6IHN0cmluZztcbiAgcmVhZG9ubHkgZ3JpZEJhY2tlbmQ/OiBIdHRwQmFja2VuZDtcbiAgcmVzb2x2ZShvYmo6IGFueSwgcHJlcGFyaW5nPzogYm9vbGVhbik6IGFueTtcbiAgdW5pcXVlUmVzb3VyY2VOYW1lKFxuICAgIHRmRWxlbWVudDogVGVycmFmb3JtRWxlbWVudCB8IE5vZGUsXG4gICAgb3B0aW9ucz86IFVuaXF1ZVJlc291cmNlTmFtZU9wdGlvbnMsXG4gICk6IHN0cmluZztcbiAgdW5pcXVlUmVzb3VyY2VOYW1lUHJlZml4KFxuICAgIHRmRWxlbWVudDogVGVycmFmb3JtRWxlbWVudCB8IE5vZGUsXG4gICAgb3B0aW9ucz86IFVuaXF1ZVJlc291cmNlTmFtZVByZWZpeE9wdGlvbnMsXG4gICk6IHN0cmluZztcbiAgLy8gdG9Kc29uU3RyaW5nKG9iajogYW55LCBzcGFjZT86IG51bWJlcik6IHN0cmluZztcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbGwgVGVycmFDb25zdHJ1Y3RzIHN0YWNrc1xuICpcbiAqIFByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvIHRoZSBncmlkIFVVSUQgYW5kIGVudmlyb25tZW50IG5hbWVcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN0YWNrQmFzZSBleHRlbmRzIFRlcnJhZm9ybVN0YWNrIGltcGxlbWVudHMgSVN0YWNrIHtcbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBTdGFjay5cbiAgICpcbiAgICogYXR0cmlidXRlIGRldGVjdGlvbiBzaW5jZSBhcyAnaW5zdGFuY2VvZicgcG90ZW50aWFsbHkgZmFpbHMgYWNyb3NzIExpYnJhcnkgcmVsZWFzZXMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzVGVycmFTdGFjayh4OiBhbnkpOiB4IGlzIElTdGFjayB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mIHggPT09IFwib2JqZWN0XCIgJiYgVEVSUkFTVEFDS19TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb29rcyB1cCB0aGUgZmlyc3Qgc3RhY2sgc2NvcGUgaW4gd2hpY2ggYGNvbnN0cnVjdGAgaXMgZGVmaW5lZC4gRmFpbHMgaWYgdGhlcmUgaXMgbm8gc3RhY2sgdXAgdGhlIHRyZWUgb3IgdGhlIHN0YWNrIGlzIG5vdCBhbiBJU3RhY2suXG4gICAqIEBwYXJhbSBjb25zdHJ1Y3QgVGhlIGNvbnN0cnVjdCB0byBzdGFydCB0aGUgc2VhcmNoIGZyb20uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mVGVycmFDb25zdHJ1Y3QoY29uc3RydWN0OiBJQ29uc3RydWN0KTogSVN0YWNrIHtcbiAgICBjb25zdCBzID0gVGVycmFmb3JtU3RhY2sub2YoY29uc3RydWN0KTtcbiAgICBpZiAoU3RhY2tCYXNlLmlzVGVycmFTdGFjayhzKSkge1xuICAgICAgcmV0dXJuIHM7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBSZXNvdXJjZSAnJHtjb25zdHJ1Y3QuY29uc3RydWN0b3I/Lm5hbWV9JyBhdCAnJHtjb25zdHJ1Y3Qubm9kZS5wYXRofScgc2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhlIHNjb3BlIG9mIFRlcnJhQ29uc3RydWN0IElTdGFjaywgYnV0IG5vIElTdGFjayBmb3VuZGAsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIGEgY29uc3RydWN0IGJhc2VkIG9uIGl0cyBwYXRoIHdpdGhpblxuICAgKiBhIFRlcnJhZm9ybVN0YWNrLiBzZWUgdW5pcXVlUmVzb3VyY2VOYW1lLCBidXQgd2l0aCBubyBzZXBhcmF0b3IsIG1heGltdW0gbGVuZ3RoIDI1NSBhbmQgYWxsb3dzXG4gICAqICBcIl9cIiBhbmQgXCItXCIgb24gdG9wIG9mIGFscGhhbnVtZXJpY2FsIGNoYXJhY3RlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBjb25zdHJ1Y3QgVGhlIGNvbnN0cnVjdFxuICAgKiBAcmV0dXJucyBhIHVuaXF1ZSByZXNvdXJjZSBuYW1lIGJhc2VkIG9uIHRoZSBjb25zdHJ1Y3QgcGF0aFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1bmlxdWVJZChjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QgfCBOb2RlKSB7XG4gICAgY29uc3Qgbm9kZSA9IENvbnN0cnVjdC5pc0NvbnN0cnVjdChjb25zdHJ1Y3QpID8gY29uc3RydWN0Lm5vZGUgOiBjb25zdHJ1Y3Q7XG4gICAgY29uc3Qgc3RhY2sgPSBub2RlLnNjb3Blc1xuICAgICAgLnJldmVyc2UoKVxuICAgICAgLmZpbmQoKGNvbXBvbmVudCkgPT4gVGVycmFmb3JtU3RhY2suaXNTdGFjayhjb21wb25lbnQpKTtcblxuICAgIGlmICghc3RhY2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJVbmFibGUgdG8gY2FsY3VsYXRlIGEgdW5pcXVlIGlkIHdpdGhvdXQgYSBzdGFjayBpbiB0aGUgY29uc3RydWN0IHBhdGhcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3BlY0luZGV4ID0gbm9kZS5zY29wZXMuaW5kZXhPZihzdGFjayk7XG4gICAgY29uc3QgY29tcG9uZW50c1BhdGggPSBub2RlLnNjb3Blc1xuICAgICAgLnNsaWNlKHNwZWNJbmRleClcbiAgICAgIC5tYXAoKGNvbXBvbmVudCkgPT4gY29tcG9uZW50Lm5vZGUuaWQpO1xuXG4gICAgcmV0dXJuIG1ha2VVbmlxdWVSZXNvdXJjZU5hbWUoY29tcG9uZW50c1BhdGgsIHtcbiAgICAgIG1heExlbmd0aDogMjU1LFxuICAgICAgLy8gYXZvaWQgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy82NDIxXG4gICAgICBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnM6IFwiXy1cIixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFjayB1bmlxdWUgZ3JpZCBpZGVudGlmaWVyXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JpZFVVSUQ6IHN0cmluZztcblxuICAvKipcbiAgICogRW52aXJvbm1lbnQgTmFtZSBwYXNzZWQgaW4gZnJvbSB0aGUgQ0xJXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZW52aXJvbm1lbnROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBncmlkIHByb3ZpZGVkIGJhY2tlbmQgZm9yIHN0YXRlIHN0b3JhZ2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBncmlkQmFja2VuZD86IEh0dHBCYWNrZW5kO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGFja0Jhc2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5ncmlkVVVJRCA9IHByb3BzLmdyaWRVVUlEO1xuICAgIHRoaXMuZW52aXJvbm1lbnROYW1lID0gcHJvcHMuZW52aXJvbm1lbnROYW1lO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBURVJSQVNUQUNLX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICBpZiAocHJvcHMuZ3JpZEJhY2tlbmRDb25maWcpIHtcbiAgICAgIHRoaXMuZ3JpZEJhY2tlbmQgPSBuZXcgSHR0cEJhY2tlbmQodGhpcywgcHJvcHMuZ3JpZEJhY2tlbmRDb25maWcpO1xuICAgIH1cblxuICAgIC8vIE1hcCBjb25zdHJ1Y3QgdHJlZSBkZXBlbmRlbmNpZXMgdG8gSVRlcnJhZm9ybURlcGVuZGFibGVzXG4gICAgLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1jZGsvaXNzdWVzLzI3MjcjaXNzdWVjb21tZW50LTE0NzMzMjEwNzVcbiAgICBBc3BlY3RzLm9mKHRoaXMpLmFkZChuZXcgVGVycmFmb3JtRGVwZW5kZW5jeUFzcGVjdCgpKTtcbiAgICAvLyBBc3BlY3RzIGFyZSBpbnZva2VkIGluIHN5bnRoIGFmdGVyIHN0YWNrIGhhcyBiZWVuIHByZXBhcmVkXG4gICAgLy8gdGhpcyBzaG91bGQgZW5zdXJlIGFueSByZXNvdXJjZXMgYWRkZWQgZHVyaW5nIGBwcmVwYXJlU3RhY2soKWAgYXJlIGluY2x1ZGVkIGluIHRoZSBkZXBlbmRlbmN5IHRyZWVcbiAgICAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLWNkay9ibG9iL3YwLjIwLjkvcGFja2FnZXMvY2RrdGYvbGliL3N5bnRoZXNpemUvc3ludGhlc2l6ZXIudHMjTDEyMVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBUZXJyYWZvcm0tY29tcGF0aWJsZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgYSBUZXJyYWZvcm0gRWxlbWVudCBiYXNlZFxuICAgKiBvbiBpdHMgcGF0aC4gVGhpcyBmdW5jdGlvbiBmaW5kcyB0aGUgc3RhY2tOYW1lIG9mIHRoZSBwYXJlbnQgc3RhY2sgKG5vbi1uZXN0ZWQpXG4gICAqIHRvIHRoZSBjb25zdHJ1Y3QsIGFuZCB0aGUgaWRzIG9mIHRoZSBjb21wb25lbnRzIGluIHRoZSBjb25zdHJ1Y3QgcGF0aC5cbiAgICpcbiAgICogVGhlIHVzZXIgY2FuIGRlZmluZSBhbGxvd2VkIHNwZWNpYWwgY2hhcmFjdGVycywgYSBzZXBhcmF0b3IgYmV0d2VlbiB0aGUgZWxlbWVudHMsXG4gICAqIGFuZCB0aGUgbWF4aW11bSBsZW5ndGggb2YgdGhlIHJlc291cmNlIG5hbWUuIFRoZSBuYW1lIGluY2x1ZGVzIGEgaHVtYW4gcmVhZGFibGUgcG9ydGlvbiByZW5kZXJlZFxuICAgKiBmcm9tIHRoZSBwYXRoIGNvbXBvbmVudHMsIHdpdGggb3Igd2l0aG91dCB1c2VyIGRlZmluZWQgc2VwYXJhdG9ycywgYW5kIGEgaGFzaCBzdWZmaXguXG4gICAqIElmIHRoZSByZXNvdXJjZSBuYW1lIGlzIGxvbmdlciB0aGFuIHRoZSBtYXhpbXVtIGxlbmd0aCwgaXQgaXMgdHJpbW1lZCBpbiB0aGUgbWlkZGxlLlxuICAgKlxuICAgKiBAcGFyYW0gdGZFbGVtZW50IFRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgZGVmaW5pbmcgdGhlIHVuaXF1ZSByZXNvdXJjZSBuYW1lXG4gICAqIEByZXR1cm5zIGEgdW5pcXVlIHJlc291cmNlIG5hbWUgYmFzZWQgb24gdGhlIGNvbnN0cnVjdCBwYXRoXG4gICAqL1xuICBwdWJsaWMgdW5pcXVlUmVzb3VyY2VOYW1lKFxuICAgIHRmRWxlbWVudDogVGVycmFmb3JtRWxlbWVudCB8IE5vZGUsXG4gICAgb3B0aW9uczogVW5pcXVlUmVzb3VyY2VOYW1lT3B0aW9ucyA9IHt9LFxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IG5vZGUgPSBDb25zdHJ1Y3QuaXNDb25zdHJ1Y3QodGZFbGVtZW50KSA/IHRmRWxlbWVudC5ub2RlIDogdGZFbGVtZW50O1xuICAgIGNvbnN0IHN0YWNrID0gVGVycmFmb3JtRWxlbWVudC5pc1RlcnJhZm9ybUVsZW1lbnQodGZFbGVtZW50KVxuICAgICAgPyB0ZkVsZW1lbnQuY2RrdGZTdGFja1xuICAgICAgOiB0aGlzO1xuICAgIGNvbnN0IHN0YWNrSW5kZXggPSBub2RlLnNjb3Blcy5pbmRleE9mKHN0YWNrKTtcbiAgICBjb25zdCBjb21wb25lbnRzUGF0aCA9IG5vZGUuc2NvcGVzXG4gICAgICAuc2xpY2Uoc3RhY2tJbmRleClcbiAgICAgIC5tYXAoKGNvbXBvbmVudCkgPT4gY29tcG9uZW50Lm5vZGUuaWQpO1xuXG4gICAgcmV0dXJuIG1ha2VVbmlxdWVSZXNvdXJjZU5hbWUoY29tcG9uZW50c1BhdGgsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBUZXJyYWZvcm0tY29tcGF0aWJsZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgYSBUZXJyYWZvcm0gRWxlbWVudCBiYXNlZFxuICAgKiBvbiBpdHMgcGF0aC4gVGhpcyBmdW5jdGlvbiBmaW5kcyB0aGUgc3RhY2tOYW1lIG9mIHRoZSBwYXJlbnQgc3RhY2sgKG5vbi1uZXN0ZWQpXG4gICAqIHRvIHRoZSBjb25zdHJ1Y3QsIGFuZCB0aGUgaWRzIG9mIHRoZSBjb21wb25lbnRzIGluIHRoZSBjb25zdHJ1Y3QgcGF0aC5cbiAgICpcbiAgICogVGhlIHVzZXIgY2FuIGRlZmluZSBhbGxvd2VkIHNwZWNpYWwgY2hhcmFjdGVycywgYSBzZXBhcmF0b3IgYmV0d2VlbiB0aGUgZWxlbWVudHMsXG4gICAqIGFuZCB0aGUgbWF4aW11bSBsZW5ndGggb2YgdGhlIHJlc291cmNlIG5hbWUuIFRoZSBuYW1lIGluY2x1ZGVzIGEgaHVtYW4gcmVhZGFibGUgcG9ydGlvbiByZW5kZXJlZFxuICAgKiBmcm9tIHRoZSBwYXRoIGNvbXBvbmVudHMsIHdpdGggb3Igd2l0aG91dCB1c2VyIGRlZmluZWQgc2VwYXJhdG9ycywgYW5kIGRlcGVuZHMgb24gdGhlXG4gICAqIHJlc291cmNlIHByb3ZpZGVyIHRvIGdlbmVyYXRlIHRoZSByYW5kb20gc3VmZml4LlxuICAgKlxuICAgKiBJZiB0aGUgcmVzb3VyY2UgbmFtZSBpcyBsb25nZXIgdGhhbiB0aGUgbWF4aW11bSBsZW5ndGggLSBzdWZmaXhMZW5ndGgsIGl0IGlzIHRyaW1tZWQgaW4gdGhlIG1pZGRsZS5cbiAgICpcbiAgICogQHBhcmFtIHRmRWxlbWVudCBUaGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIGRlZmluaW5nIHRoZSB1bmlxdWUgcmVzb3VyY2UgbmFtZVxuICAgKiBAcmV0dXJucyBhIHVuaXF1ZSByZXNvdXJjZSBuYW1lIGJhc2VkIG9uIHRoZSBjb25zdHJ1Y3QgcGF0aFxuICAgKi9cbiAgcHVibGljIHVuaXF1ZVJlc291cmNlTmFtZVByZWZpeChcbiAgICB0ZkVsZW1lbnQ6IFRlcnJhZm9ybUVsZW1lbnQgfCBOb2RlLFxuICAgIG9wdGlvbnM6IFVuaXF1ZVJlc291cmNlTmFtZVByZWZpeE9wdGlvbnMgPSB7fSxcbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBub2RlID0gQ29uc3RydWN0LmlzQ29uc3RydWN0KHRmRWxlbWVudCkgPyB0ZkVsZW1lbnQubm9kZSA6IHRmRWxlbWVudDtcbiAgICBjb25zdCBzdGFjayA9IFRlcnJhZm9ybUVsZW1lbnQuaXNUZXJyYWZvcm1FbGVtZW50KHRmRWxlbWVudClcbiAgICAgID8gdGZFbGVtZW50LmNka3RmU3RhY2tcbiAgICAgIDogdGhpcztcbiAgICBjb25zdCBzdGFja0luZGV4ID0gbm9kZS5zY29wZXMuaW5kZXhPZihzdGFjayk7XG4gICAgY29uc3QgY29tcG9uZW50c1BhdGggPSBub2RlLnNjb3Blc1xuICAgICAgLnNsaWNlKHN0YWNrSW5kZXgpXG4gICAgICAubWFwKChjb21wb25lbnQpID0+IGNvbXBvbmVudC5ub2RlLmlkKTtcblxuICAgIHJldHVybiBtYWtlVW5pcXVlUmVzb3VyY2VOYW1lUHJlZml4KGNvbXBvbmVudHNQYXRoLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKiBSZXNvbHZlIElSZXNvbHZhYmxlIGluIHNjb3BlIG9mIHRoaXMgQXdzU3RhY2sgKi9cbiAgcHVibGljIHJlc29sdmUob2JqOiBhbnksIHByZXBhcmluZyA9IGZhbHNlKTogYW55IHtcbiAgICByZXR1cm4gVG9rZW5pemF0aW9uLnJlc29sdmUob2JqLCB7XG4gICAgICBzY29wZTogdGhpcyxcbiAgICAgIHByZXBhcmluZyxcbiAgICAgIHJlc29sdmVyOiBUT0tFTl9SRVNPTFZFUixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGFuIG9iamVjdCwgcG90ZW50aWFsbHkgY29udGFpbmluZyB0b2tlbnMsIHRvIGEgSlNPTiBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyB0b0pzb25TdHJpbmcob2JqOiBhbnksIHNwYWNlPzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gTGF6eS5zdHJpbmdWYWx1ZSh7XG4gICAgICBwcm9kdWNlOiAoY3R4OiBJUmVzb2x2ZUNvbnRleHQpID0+IHtcbiAgICAgICAgLy8gRmlyc3QgcmVzb2x2ZSBUb2tlbiBvYmplY3RzIHdpdGggc3RyaW5nIGNvbmNhdC4uLiB0aGVuIEpTT04uc3RyaW5naWZ5IHRoZSByZXN1bHRpbmcgb2JqZWN0XG4gICAgICAgIC8vXG4gICAgICAgIC8vIHVubGlrZSBjbG91ZGZvcm1hdGlvbiwgVGVycmFmb3JtIGRvZXMgbm90IG5lZWQgYW4gaW50cmluc2ljIHdyYXBwZXI/XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iLzhkY2E1MDc5ZTE4OTMxMjIwNTdmOWUyYzU0YzBkYTBiYTY0NDkyNmUvcGFja2FnZXMvJTQwYXdzLWNkay9jb3JlL2xpYi9wcml2YXRlL2Nsb3VkZm9ybWF0aW9uLWxhbmcudHMjTDczXG4gICAgICAgIC8vIGludHJpbnNpYyB3cmFwcGVyIHdpdGhvdXQgY3Jvc3Mgc3RhY2sgcmVmXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iLzE0ZTRiYzkxZWQ1ZjBmOGNiN2M4YWM5ZWU4YTZkZTRkYTU0ZTY1ODUvcGFja2FnZXMvJTQwYXdzLWNkay9jb3JlL2xpYi9wcml2YXRlL2Nsb3VkZm9ybWF0aW9uLWxhbmcudHMjTDUwXG4gICAgICAgIGNvbnN0IHJlc29sdmVkID0gVG9rZW5pemF0aW9uLnJlc29sdmUob2JqLCB7XG4gICAgICAgICAgcHJlcGFyaW5nOiBjdHgucHJlcGFyaW5nLFxuICAgICAgICAgIHNjb3BlOiBjdHguc2NvcGUsXG4gICAgICAgICAgcmVzb2x2ZXI6IFRPS0VOX1JFU09MVkVSLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHJlc29sdmVkLCB1bmRlZmluZWQsIHNwYWNlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
package/lib/terra-func.js CHANGED
@@ -159,7 +159,7 @@ class Fn extends cdktf_1.Fn {
159
159
  }
160
160
  exports.Fn = Fn;
161
161
  _a = JSII_RTTI_SYMBOL_1;
162
- Fn[_a] = { fqn: "terraconstructs.Fn", version: "0.0.25" };
162
+ Fn[_a] = { fqn: "terraconstructs.Fn", version: "0.1.0" };
163
163
  function range(n) {
164
164
  const ret = [];
165
165
  for (let i = 0; i < n; i++) {
@@ -167,4 +167,4 @@ function range(n) {
167
167
  }
168
168
  return ret;
169
169
  }
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmEtZnVuYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYS1mdW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0ZBQWdGO0FBRWhGLGlDQUtlO0FBR2Y7O0dBRUc7QUFDSCxNQUFhLEVBQUcsU0FBUSxVQUFJO0lBQzFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0EwQ0c7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUNuQixTQUFpQixFQUNqQixNQUFjLEVBQ2QsYUFBc0I7UUFFdEIseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxhQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLGFBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLGFBQUssQ0FBQyxNQUFNLENBQUMsVUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMxRCxJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLGFBQUssQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRSxD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QzNCLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2Ivdi9wYWNrYWdlcy9hd3MtY2RrLWxpYi9jb3JlL2xpYi9jZm4tZm4udHNcblxuaW1wb3J0IHtcbiAgVGVycmFmb3JtVmFyaWFibGUsXG4gIFRlcnJhZm9ybVZhcmlhYmxlQ29uZmlnLFxuICBUb2tlbixcbiAgRm4gYXMgdGZGbixcbn0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG4vKipcbiAqIFRlcnJhQ29uc3RydWN0cyBoZWxwZXIgZnVuY3Rpb25zLlxuICovXG5leHBvcnQgY2xhc3MgRm4gZXh0ZW5kcyB0ZkZuIHtcbiAgLyoqXG4gICAqIFNwbGl0IGEgc3RyaW5nIHRva2VuIGludG8gYSB0b2tlbiBsaXN0IG9mIHN0cmluZyB2YWx1ZXMuXG4gICAqXG4gICAqIFNwZWNpZnkgdGhlIGxvY2F0aW9uIG9mIHNwbGl0cyB3aXRoIGEgZGVsaW1pdGVyIHN1Y2ggYXMgJywnIChhIGNvbW1hKS5cbiAgICogUmVuZGVycyB0byB0aGUgYHNwbGl0YCBpbnRyaW5zaWMgdGVycmFmb3JtIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBMaXN0cyB3aXRoIHVua25vd24gbGVuZ3RocyAoZGVmYXVsdClcbiAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKlxuICAgKiBTaW5jZSB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gd29yayB3aXRoIGRlcGxveS10aW1lIHZhbHVlcywgaWYgYGFzc3VtZWRMZW5ndGhgXG4gICAqIGlzIG5vdCBnaXZlbiB0aGUgQ0RLIGNhbm5vdCBrbm93IHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdGluZyBsaXN0IGF0IHN5bnRoZXNpcyB0aW1lLlxuICAgKiBUaGlzIGJyaW5ncyB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9uczpcbiAgICpcbiAgICogLSBZb3UgbXVzdCB1c2UgYEZuLmVsZW1lbnQobGlzdCwgaSlgIHRvIHBpY2sgZWxlbWVudHMgb3V0IG9mIHRoZSBsaXN0ICh5b3UgbXVzdCBub3QgdXNlXG4gICAqICAgYGxpc3RbaV1gKS5cbiAgICogLSBZb3UgY2Fubm90IGFkZCBlbGVtZW50cyB0byB0aGUgbGlzdCwgcmVtb3ZlIGVsZW1lbnRzIGZyb20gdGhlIGxpc3QsXG4gICAqICAgY29tYmluZSB0d28gc3VjaCBsaXN0cyB0b2dldGhlciwgb3IgdGFrZSBhIHNsaWNlIG9mIHRoZSBsaXN0LlxuICAgKiAtIFlvdSBjYW5ub3QgcGFzcyB0aGUgbGlzdCB0byBjb25zdHJ1Y3RzIHRoYXQgZG8gYW55IG9mIHRoZSBhYm92ZS5cbiAgICpcbiAgICogVGhlIG9ubHkgdmFsaWQgb3BlcmF0aW9uIHdpdGggc3VjaCBhIHRva2VuaXplZCBsaXN0IGlzIHRvIHBhc3MgaXQgdW5tb2RpZmllZCB0byBhXG4gICAqIFRlcnJhZm9ybSBSZXNvdXJjZSBjb25zdHJ1Y3QuXG4gICAqXG4gICAqIExpc3RzIHdpdGggYXNzdW1lZCBsZW5ndGhzXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqXG4gICAqIFBhc3MgYGFzc3VtZWRMZW5ndGhgIGlmIHlvdSBrbm93IHRoZSBsZW5ndGggb2YgdGhlIGxpc3QgdGhhdCB3aWxsIGJlXG4gICAqIHByb2R1Y2VkIGJ5IHNwbGl0dGluZy4gVGhlIGFjdHVhbCBsaXN0IGxlbmd0aCBhdCBkZXBsb3kgdGltZSBtYXkgYmVcbiAgICogKmxvbmdlciogdGhhbiB0aGUgbnVtYmVyIHlvdSBwYXNzLCBidXQgbm90ICpzaG9ydGVyKi5cbiAgICpcbiAgICogVGhlIHJldHVybmVkIGxpc3Qgd2lsbCBsb29rIGxpa2U6XG4gICAqXG4gICAqIGBgYFxuICAgKiBbRm4uZWxlbWVudChzcGxpdCwgMCksIEZuLmVsZW1lbnQoc3BsaXQsIDEpLCBGbi5lbGVtZW50KHNwbGl0LCAyKSwgLi4uXVxuICAgKiBgYGBcbiAgICpcbiAgICogVGhlIHJlc3RyaWN0aW9ucyBmcm9tIHRoZSBzZWN0aW9uIFwiTGlzdHMgd2l0aCB1bmtub3duIGxlbmd0aHNcIiB3aWxsIG5vdyBiZSBsaWZ0ZWQsXG4gICAqIGF0IHRoZSBleHBlbnNlIG9mIGhhdmluZyB0byBrbm93IGFuZCBmaXggdGhlIGxlbmd0aCBvZiB0aGUgbGlzdC5cbiAgICpcbiAgICogQHBhcmFtIGRlbGltaXRlciBBIHN0cmluZyB2YWx1ZSB0aGF0IGRldGVybWluZXMgd2hlcmUgdGhlIHNvdXJjZSBzdHJpbmcgaXMgZGl2aWRlZC5cbiAgICogQHBhcmFtIHNvdXJjZSBUaGUgc3RyaW5nIHZhbHVlIHRoYXQgeW91IHdhbnQgdG8gc3BsaXQuXG4gICAqIEBwYXJhbSBhc3N1bWVkTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIGxpc3QgdGhhdCB3aWxsIGJlIHByb2R1Y2VkIGJ5IHNwbGl0dGluZ1xuICAgKiBAcmV0dXJucyBhIHRva2VuIHJlcHJlc2VudGVkIGFzIGEgc3RyaW5nIGFycmF5XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHNwbGl0djIoXG4gICAgZGVsaW1pdGVyOiBzdHJpbmcsXG4gICAgc291cmNlOiBzdHJpbmcsXG4gICAgYXNzdW1lZExlbmd0aD86IG51bWJlcixcbiAgKTogc3RyaW5nW10ge1xuICAgIC8vIHNob3J0LWNpcmN1aXQgaWYgc291cmNlIGlzIG5vdCBhIHRva2VuXG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQoc291cmNlKSkge1xuICAgICAgcmV0dXJuIHNvdXJjZS5zcGxpdChkZWxpbWl0ZXIpO1xuICAgIH1cblxuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoZGVsaW1pdGVyKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRm4uc3BsaXR2MjogJ2RlbGltaXRlcicgbWF5IG5vdCBiZSBhIHRva2VuIHZhbHVlXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHNwbGl0ID0gVG9rZW4uYXNMaXN0KHRmRm4uc3BsaXQoZGVsaW1pdGVyLCBzb3VyY2UpKTtcbiAgICBpZiAoYXNzdW1lZExlbmd0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gc3BsaXQ7XG4gICAgfVxuXG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChhc3N1bWVkTGVuZ3RoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRm4uc3BsaXQ6ICdhc3N1bWVkTGVuZ3RoJyBtYXkgbm90IGJlIGEgdG9rZW4gdmFsdWVcIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJhbmdlKGFzc3VtZWRMZW5ndGgpLm1hcCgoaSkgPT4gdGZGbi5lbGVtZW50KHNwbGl0LCBpKSk7XG4gIH1cbiAgLyoqXG4gICAqIFNpbWlsYXIgdG8gRm4uZWxlbWVudCwgYnV0IHdpdGggYSBzaG9ydGN1dCBpZiBsaXN0IGlzIG5vdCB1bnJlc29sdmVkXG4gICAqXG4gICAqIFRoZSBpbnRyaW5zaWMgZnVuY3Rpb24gYGBlbGVtZW50YGAgcmV0dXJucyBhIHNpbmdsZSBvYmplY3QgZnJvbSBhIGxpc3Qgb2Ygb2JqZWN0cyBieSBpbmRleC5cbiAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCBvZiB0aGUgb2JqZWN0IHRvIHJldHJpZXZlLiBUaGlzIG11c3QgYmUgYSB2YWx1ZSBmcm9tIHplcm8gdG8gTi0xLCB3aGVyZSBOIHJlcHJlc2VudHMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgYXJyYXkuXG4gICAqIEBwYXJhbSBhcnJheSBUaGUgbGlzdCBvZiBvYmplY3RzIHRvIHNlbGVjdCBmcm9tLiBUaGlzIGxpc3QgbXVzdCBub3QgYmUgbnVsbCwgbm9yIGNhbiBpdCBoYXZlIG51bGwgZW50cmllcy5cbiAgICogQHJldHVybnMgYSB0b2tlbiByZXByZXNlbnRlZCBhcyBhIHN0cmluZ1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzZWxlY3QoaW5kZXg6IG51bWJlciwgYXJyYXk6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICAvLyBzaG9ydC1jaXJjdWl0IGlmIHNvdXJjZSBpcyBub3QgYSB0b2tlblxuICAgIGlmIChcbiAgICAgICFUb2tlbi5pc1VucmVzb2x2ZWQoaW5kZXgpICYmXG4gICAgICAhVG9rZW4uaXNVbnJlc29sdmVkKGFycmF5KSAmJlxuICAgICAgIWFycmF5LnNvbWUoVG9rZW4uaXNVbnJlc29sdmVkKVxuICAgICkge1xuICAgICAgcmV0dXJuIGFycmF5W2luZGV4XTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGZGbi5lbGVtZW50KGFycmF5LCBpbmRleCk7XG4gIH1cblxuICAvKipcbiAgICogR2l2ZW4gYW4gdXJsLCBwYXJzZSB0aGUgZG9tYWluIG5hbWVcbiAgICogQHBhcmFtIHVybCB0aGUgdXJsIHRvIHBhcnNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhcnNlRG9tYWluTmFtZSh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgbm9IdHRwcyA9IEZuLnNlbGVjdCgxLCBGbi5zcGxpdChcIi8vXCIsIHVybCkpO1xuICAgIHJldHVybiBGbi5zZWxlY3QoMCwgRm4uc3BsaXQoXCIvXCIsIG5vSHR0cHMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaW50cmluc2ljIGZ1bmN0aW9uIGBgRm46OkltcG9ydFZhbHVlYGAgcmV0dXJucyB0aGUgdmFsdWUgb2YgYW4gb3V0cHV0XG4gICAqIGV4cG9ydGVkIGJ5IGFub3RoZXIgc3RhY2suIFlvdSB0eXBpY2FsbHkgdXNlIHRoaXMgZnVuY3Rpb24gdG8gY3JlYXRlXG4gICAqIGNyb3NzLXN0YWNrIHJlZmVyZW5jZXMuIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSB0ZW1wbGF0ZSBzbmlwcGV0cywgU3RhY2sgQVxuICAgKiBleHBvcnRzIFZQQyBzZWN1cml0eSBncm91cCB2YWx1ZXMgYW5kIFN0YWNrIEIgaW1wb3J0cyB0aGVtLlxuICAgKiBAcGFyYW0gaWQgVGhlIHN0YWNrIG91dHB1dCB2YWx1ZSB0aGF0IHlvdSB3YW50IHRvIGltcG9ydC5cbiAgICogQHJldHVybnMgYSB0b2tlbiByZXByZXNlbnRlZCBhcyBhIHN0cmluZ1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpbXBvcnRWYWx1ZShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgb3B0aW9uczogVGVycmFmb3JtVmFyaWFibGVDb25maWcgPSB7fSxcbiAgKTogc3RyaW5nIHtcbiAgICAvLyBUT0RPOiBUaGlzIHNob3VsZCBiZSBhIHRlcnJhZm9ybSByZW1vdGUgc3RhdGUgZGF0YSBzb3VyY2UgaW5zdGVhZFxuICAgIGNvbnN0IGltcG9ydFZhcmlhYmxlID0gbmV3IFRlcnJhZm9ybVZhcmlhYmxlKHNjb3BlLCBpZCwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIGltcG9ydFZhcmlhYmxlLnN0cmluZ1ZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIExpa2UgYEZuLmltcG9ydFZhbHVlYCwgYnV0IGltcG9ydCBhIGxpc3Qgd2l0aCBhIGtub3duIGxlbmd0aFxuICAgKlxuICAgKiBJZiB5b3UgZXhwbGljaXRseSB3YW50IGEgbGlzdCB3aXRoIGFuIHVua25vd24gbGVuZ3RoLCBjYWxsIGBGbi5zcGxpdHYyKCcsJyxcbiAgICogRm4uaW1wb3J0VmFsdWUoc2NvcGUsIGV4cG9ydE5hbWUpKWAuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiBgRm4uc3BsaXR2MmAgdG8gcmVhZFxuICAgKiBtb3JlIGFib3V0IHRoZSBsaW1pdGF0aW9ucyBvZiB1c2luZyBsaXN0cyBvZiB1bmtub3duIGxlbmd0aC5cbiAgICpcbiAgICogYEZuLmltcG9ydExpc3RWYWx1ZShzY29wZSwgZXhwb3J0TmFtZSwgYXNzdW1lZExlbmd0aClgIGlzIHRoZSBzYW1lIGFzXG4gICAqIGBGbi5zcGxpdCgnLCcsIEZuLmltcG9ydFZhbHVlKHNjb3BlLCBleHBvcnROYW1lKSwgYXNzdW1lZExlbmd0aClgLFxuICAgKiBidXQgZWFzaWVyIHRvIHJlYWQgYW5kIGltcG9zc2libGUgdG8gZm9yZ2V0IHRvIHBhc3MgYGFzc3VtZWRMZW5ndGhgLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpbXBvcnRMaXN0VmFsdWUoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBzaGFyZWRWYWx1ZVRvSW1wb3J0OiBzdHJpbmcsXG4gICAgYXNzdW1lZExlbmd0aDogbnVtYmVyLFxuICAgIGRlbGltaXRlciA9IFwiLFwiLFxuICApOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIEZuLnNwbGl0djIoXG4gICAgICBkZWxpbWl0ZXIsXG4gICAgICBGbi5pbXBvcnRWYWx1ZShzY29wZSwgc2hhcmVkVmFsdWVUb0ltcG9ydCksXG4gICAgICBhc3N1bWVkTGVuZ3RoLFxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBpbnRyaW5zaWMgZnVuY3Rpb24gYEZuOjpMZW5ndGhgIHJldHVybnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyB3aXRoaW4gYW4gYXJyYXlcbiAgICogb3IgYW4gaW50cmluc2ljIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBhcnJheS5cbiAgICpcbiAgICogQHBhcmFtIGFycmF5IFRoZSBhcnJheSB5b3Ugd2FudCB0byByZXR1cm4gdGhlIG51bWJlciBvZiBlbGVtZW50cyBmcm9tXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGxlbihhcnJheTogYW55KTogbnVtYmVyIHtcbiAgICAvLyBzaG9ydC1jaXJjdWl0IGlmIGFycmF5IGlzIG5vdCBhIHRva2VuXG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQoYXJyYXkpKSB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyYXkpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkZuLmxlbmd0aCgpIG5lZWRzIGFuIGFycmF5XCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFycmF5Lmxlbmd0aDtcbiAgICB9XG4gICAgcmV0dXJuIHRmRm4ubGVuZ3RoT2YoYXJyYXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9sYW5ndWFnZS9mdW5jdGlvbnMvam9pbiBqb2lufSBwcm9kdWNlcyBhIHN0cmluZyBieSBjb25jYXRlbmF0aW5nIHRvZ2V0aGVyIGFsbCBlbGVtZW50cyBvZiBhIGdpdmVuIGxpc3Qgb2Ygc3RyaW5ncyB3aXRoIHRoZSBnaXZlbiBkZWxpbWl0ZXIuXG4gICAqXG4gICAqIElmIGFueSBvZiB0aGUgdmFsdWVzIGFyZSB1bnJlc29sdmVkLCB0aGUgaW50cmluc2ljIGZ1bmN0aW9uIHdpbGwgYmUgdXNlZC5cbiAgICogaWYgdGhlIGxpc3QgaGFzIG9ubHkgb25lIGVsZW1lbnQsIHRoZSBlbGVtZW50IHdpbGwgYmUgcmV0dXJuZWQuXG4gICAqIGlmIHRoZSBsaXN0IGhhcyBtb3JlIHRoYW4gb25lIGVsZW1lbnQsIHRoZSBlbGVtZW50cyB3aWxsIGJlIGpvaW5lZCB3aXRoIHRoZSBkZWxpbWl0ZXIuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkZWxpbWl0ZXJcbiAgICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSB2YWx1ZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgam9pbihkZWxpbWl0ZXI6IHN0cmluZywgdmFsdWVzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZCh2YWx1ZXMpKSB7XG4gICAgICAvLyBUaGlzIGlzIGEgbGlzdCB0b2tlbiwgZG9uJ3QgdHJ5IHRvIGRvIHNtYXJ0IHRoaW5ncyB3aXRoIGl0LlxuICAgICAgcmV0dXJuIHRmRm4uam9pbihkZWxpbWl0ZXIsIHZhbHVlcyk7XG4gICAgfVxuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gdmFsdWVzWzBdO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWVzLmpvaW4oZGVsaW1pdGVyKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByYW5nZShuOiBudW1iZXIpOiBudW1iZXJbXSB7XG4gIGNvbnN0IHJldCA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykge1xuICAgIHJldC5wdXNoKGkpO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG4iXX0=
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmEtZnVuYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYS1mdW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0ZBQWdGO0FBRWhGLGlDQUtlO0FBR2Y7O0dBRUc7QUFDSCxNQUFhLEVBQUcsU0FBUSxVQUFJO0lBQzFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0EwQ0c7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUNuQixTQUFpQixFQUNqQixNQUFjLEVBQ2QsYUFBc0I7UUFFdEIseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxhQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLGFBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLGFBQUssQ0FBQyxNQUFNLENBQUMsVUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMxRCxJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLGFBQUssQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBQ0Q7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBYSxFQUFFLEtBQWU7UUFDakQseUNBQXlDO1FBQ3pDLElBQ0UsQ0FBQyxhQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUMxQixDQUFDLGFBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1lBQzFCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFLLENBQUMsWUFBWSxDQUFDLEVBQy9CLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBRUQsT0FBTyxVQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFXO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEQsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FDdkIsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLFVBQW1DLEVBQUU7UUFFckMsb0VBQW9FO1FBQ3BFLE1BQU0sY0FBYyxHQUFHLElBQUkseUJBQWlCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRSxPQUFPLGNBQWMsQ0FBQyxXQUFXLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxNQUFNLENBQUMsZUFBZSxDQUMzQixLQUFnQixFQUNoQixtQkFBMkIsRUFDM0IsYUFBcUIsRUFDckIsU0FBUyxHQUFHLEdBQUc7UUFFZixPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQ2YsU0FBUyxFQUNULEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLG1CQUFtQixDQUFDLEVBQzFDLGFBQWEsQ0FDZCxDQUFDO0lBQ0osQ0FBQztJQUNEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFVO1FBQzFCLHdDQUF3QztRQUN4QyxJQUFJLENBQUMsYUFBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUNoRCxDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3RCLENBQUM7UUFDRCxPQUFPLFVBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFpQixFQUFFLE1BQWdCO1FBQ3BELElBQUksYUFBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQy9CLDhEQUE4RDtZQUM5RCxPQUFPLFVBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoQyxDQUFDOztBQS9LSCxnQkFnTEM7OztBQUVELFNBQVMsS0FBSyxDQUFDLENBQVM7SUFDdEIsTUFBTSxHQUFHLEdBQWEsRUFBRSxDQUFDO0lBQ3pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUMzQixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvY2ZuLWZuLnRzXG5cbmltcG9ydCB7XG4gIFRlcnJhZm9ybVZhcmlhYmxlLFxuICBUZXJyYWZvcm1WYXJpYWJsZUNvbmZpZyxcbiAgVG9rZW4sXG4gIEZuIGFzIHRmRm4sXG59IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuLyoqXG4gKiBUZXJyYUNvbnN0cnVjdHMgaGVscGVyIGZ1bmN0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIEZuIGV4dGVuZHMgdGZGbiB7XG4gIC8qKlxuICAgKiBTcGxpdCBhIHN0cmluZyB0b2tlbiBpbnRvIGEgdG9rZW4gbGlzdCBvZiBzdHJpbmcgdmFsdWVzLlxuICAgKlxuICAgKiBTcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBzcGxpdHMgd2l0aCBhIGRlbGltaXRlciBzdWNoIGFzICcsJyAoYSBjb21tYSkuXG4gICAqIFJlbmRlcnMgdG8gdGhlIGBzcGxpdGAgaW50cmluc2ljIHRlcnJhZm9ybSBmdW5jdGlvbi5cbiAgICpcbiAgICogTGlzdHMgd2l0aCB1bmtub3duIGxlbmd0aHMgKGRlZmF1bHQpXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICpcbiAgICogU2luY2UgdGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHdvcmsgd2l0aCBkZXBsb3ktdGltZSB2YWx1ZXMsIGlmIGBhc3N1bWVkTGVuZ3RoYFxuICAgKiBpcyBub3QgZ2l2ZW4gdGhlIENESyBjYW5ub3Qga25vdyB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHRpbmcgbGlzdCBhdCBzeW50aGVzaXMgdGltZS5cbiAgICogVGhpcyBicmluZ3MgdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnM6XG4gICAqXG4gICAqIC0gWW91IG11c3QgdXNlIGBGbi5lbGVtZW50KGxpc3QsIGkpYCB0byBwaWNrIGVsZW1lbnRzIG91dCBvZiB0aGUgbGlzdCAoeW91IG11c3Qgbm90IHVzZVxuICAgKiAgIGBsaXN0W2ldYCkuXG4gICAqIC0gWW91IGNhbm5vdCBhZGQgZWxlbWVudHMgdG8gdGhlIGxpc3QsIHJlbW92ZSBlbGVtZW50cyBmcm9tIHRoZSBsaXN0LFxuICAgKiAgIGNvbWJpbmUgdHdvIHN1Y2ggbGlzdHMgdG9nZXRoZXIsIG9yIHRha2UgYSBzbGljZSBvZiB0aGUgbGlzdC5cbiAgICogLSBZb3UgY2Fubm90IHBhc3MgdGhlIGxpc3QgdG8gY29uc3RydWN0cyB0aGF0IGRvIGFueSBvZiB0aGUgYWJvdmUuXG4gICAqXG4gICAqIFRoZSBvbmx5IHZhbGlkIG9wZXJhdGlvbiB3aXRoIHN1Y2ggYSB0b2tlbml6ZWQgbGlzdCBpcyB0byBwYXNzIGl0IHVubW9kaWZpZWQgdG8gYVxuICAgKiBUZXJyYWZvcm0gUmVzb3VyY2UgY29uc3RydWN0LlxuICAgKlxuICAgKiBMaXN0cyB3aXRoIGFzc3VtZWQgbGVuZ3Roc1xuICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKlxuICAgKiBQYXNzIGBhc3N1bWVkTGVuZ3RoYCBpZiB5b3Uga25vdyB0aGUgbGVuZ3RoIG9mIHRoZSBsaXN0IHRoYXQgd2lsbCBiZVxuICAgKiBwcm9kdWNlZCBieSBzcGxpdHRpbmcuIFRoZSBhY3R1YWwgbGlzdCBsZW5ndGggYXQgZGVwbG95IHRpbWUgbWF5IGJlXG4gICAqICpsb25nZXIqIHRoYW4gdGhlIG51bWJlciB5b3UgcGFzcywgYnV0IG5vdCAqc2hvcnRlciouXG4gICAqXG4gICAqIFRoZSByZXR1cm5lZCBsaXN0IHdpbGwgbG9vayBsaWtlOlxuICAgKlxuICAgKiBgYGBcbiAgICogW0ZuLmVsZW1lbnQoc3BsaXQsIDApLCBGbi5lbGVtZW50KHNwbGl0LCAxKSwgRm4uZWxlbWVudChzcGxpdCwgMiksIC4uLl1cbiAgICogYGBgXG4gICAqXG4gICAqIFRoZSByZXN0cmljdGlvbnMgZnJvbSB0aGUgc2VjdGlvbiBcIkxpc3RzIHdpdGggdW5rbm93biBsZW5ndGhzXCIgd2lsbCBub3cgYmUgbGlmdGVkLFxuICAgKiBhdCB0aGUgZXhwZW5zZSBvZiBoYXZpbmcgdG8ga25vdyBhbmQgZml4IHRoZSBsZW5ndGggb2YgdGhlIGxpc3QuXG4gICAqXG4gICAqIEBwYXJhbSBkZWxpbWl0ZXIgQSBzdHJpbmcgdmFsdWUgdGhhdCBkZXRlcm1pbmVzIHdoZXJlIHRoZSBzb3VyY2Ugc3RyaW5nIGlzIGRpdmlkZWQuXG4gICAqIEBwYXJhbSBzb3VyY2UgVGhlIHN0cmluZyB2YWx1ZSB0aGF0IHlvdSB3YW50IHRvIHNwbGl0LlxuICAgKiBAcGFyYW0gYXNzdW1lZExlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBsaXN0IHRoYXQgd2lsbCBiZSBwcm9kdWNlZCBieSBzcGxpdHRpbmdcbiAgICogQHJldHVybnMgYSB0b2tlbiByZXByZXNlbnRlZCBhcyBhIHN0cmluZyBhcnJheVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzcGxpdHYyKFxuICAgIGRlbGltaXRlcjogc3RyaW5nLFxuICAgIHNvdXJjZTogc3RyaW5nLFxuICAgIGFzc3VtZWRMZW5ndGg/OiBudW1iZXIsXG4gICk6IHN0cmluZ1tdIHtcbiAgICAvLyBzaG9ydC1jaXJjdWl0IGlmIHNvdXJjZSBpcyBub3QgYSB0b2tlblxuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKHNvdXJjZSkpIHtcbiAgICAgIHJldHVybiBzb3VyY2Uuc3BsaXQoZGVsaW1pdGVyKTtcbiAgICB9XG5cbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKGRlbGltaXRlcikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkZuLnNwbGl0djI6ICdkZWxpbWl0ZXInIG1heSBub3QgYmUgYSB0b2tlbiB2YWx1ZVwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBzcGxpdCA9IFRva2VuLmFzTGlzdCh0ZkZuLnNwbGl0KGRlbGltaXRlciwgc291cmNlKSk7XG4gICAgaWYgKGFzc3VtZWRMZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHNwbGl0O1xuICAgIH1cblxuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoYXNzdW1lZExlbmd0aCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkZuLnNwbGl0OiAnYXNzdW1lZExlbmd0aCcgbWF5IG5vdCBiZSBhIHRva2VuIHZhbHVlXCIpO1xuICAgIH1cblxuICAgIHJldHVybiByYW5nZShhc3N1bWVkTGVuZ3RoKS5tYXAoKGkpID0+IHRmRm4uZWxlbWVudChzcGxpdCwgaSkpO1xuICB9XG4gIC8qKlxuICAgKiBTaW1pbGFyIHRvIEZuLmVsZW1lbnQsIGJ1dCB3aXRoIGEgc2hvcnRjdXQgaWYgbGlzdCBpcyBub3QgdW5yZXNvbHZlZFxuICAgKlxuICAgKiBUaGUgaW50cmluc2ljIGZ1bmN0aW9uIGBgZWxlbWVudGBgIHJldHVybnMgYSBzaW5nbGUgb2JqZWN0IGZyb20gYSBsaXN0IG9mIG9iamVjdHMgYnkgaW5kZXguXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIG9iamVjdCB0byByZXRyaWV2ZS4gVGhpcyBtdXN0IGJlIGEgdmFsdWUgZnJvbSB6ZXJvIHRvIE4tMSwgd2hlcmUgTiByZXByZXNlbnRzIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGFycmF5LlxuICAgKiBAcGFyYW0gYXJyYXkgVGhlIGxpc3Qgb2Ygb2JqZWN0cyB0byBzZWxlY3QgZnJvbS4gVGhpcyBsaXN0IG11c3Qgbm90IGJlIG51bGwsIG5vciBjYW4gaXQgaGF2ZSBudWxsIGVudHJpZXMuXG4gICAqIEByZXR1cm5zIGEgdG9rZW4gcmVwcmVzZW50ZWQgYXMgYSBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0KGluZGV4OiBudW1iZXIsIGFycmF5OiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgLy8gc2hvcnQtY2lyY3VpdCBpZiBzb3VyY2UgaXMgbm90IGEgdG9rZW5cbiAgICBpZiAoXG4gICAgICAhVG9rZW4uaXNVbnJlc29sdmVkKGluZGV4KSAmJlxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChhcnJheSkgJiZcbiAgICAgICFhcnJheS5zb21lKFRva2VuLmlzVW5yZXNvbHZlZClcbiAgICApIHtcbiAgICAgIHJldHVybiBhcnJheVtpbmRleF07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRmRm4uZWxlbWVudChhcnJheSwgaW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdpdmVuIGFuIHVybCwgcGFyc2UgdGhlIGRvbWFpbiBuYW1lXG4gICAqIEBwYXJhbSB1cmwgdGhlIHVybCB0byBwYXJzZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXJzZURvbWFpbk5hbWUodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5vSHR0cHMgPSBGbi5zZWxlY3QoMSwgRm4uc3BsaXQoXCIvL1wiLCB1cmwpKTtcbiAgICByZXR1cm4gRm4uc2VsZWN0KDAsIEZuLnNwbGl0KFwiL1wiLCBub0h0dHBzKSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGludHJpbnNpYyBmdW5jdGlvbiBgYEZuOjpJbXBvcnRWYWx1ZWBgIHJldHVybnMgdGhlIHZhbHVlIG9mIGFuIG91dHB1dFxuICAgKiBleHBvcnRlZCBieSBhbm90aGVyIHN0YWNrLiBZb3UgdHlwaWNhbGx5IHVzZSB0aGlzIGZ1bmN0aW9uIHRvIGNyZWF0ZVxuICAgKiBjcm9zcy1zdGFjayByZWZlcmVuY2VzLiBJbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUgdGVtcGxhdGUgc25pcHBldHMsIFN0YWNrIEFcbiAgICogZXhwb3J0cyBWUEMgc2VjdXJpdHkgZ3JvdXAgdmFsdWVzIGFuZCBTdGFjayBCIGltcG9ydHMgdGhlbS5cbiAgICogQHBhcmFtIGlkIFRoZSBzdGFjayBvdXRwdXQgdmFsdWUgdGhhdCB5b3Ugd2FudCB0byBpbXBvcnQuXG4gICAqIEByZXR1cm5zIGEgdG9rZW4gcmVwcmVzZW50ZWQgYXMgYSBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW1wb3J0VmFsdWUoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IFRlcnJhZm9ybVZhcmlhYmxlQ29uZmlnID0ge30sXG4gICk6IHN0cmluZyB7XG4gICAgLy8gVE9ETzogVGhpcyBzaG91bGQgYmUgYSB0ZXJyYWZvcm0gcmVtb3RlIHN0YXRlIGRhdGEgc291cmNlIGluc3RlYWRcbiAgICBjb25zdCBpbXBvcnRWYXJpYWJsZSA9IG5ldyBUZXJyYWZvcm1WYXJpYWJsZShzY29wZSwgaWQsIG9wdGlvbnMpO1xuICAgIHJldHVybiBpbXBvcnRWYXJpYWJsZS5zdHJpbmdWYWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaWtlIGBGbi5pbXBvcnRWYWx1ZWAsIGJ1dCBpbXBvcnQgYSBsaXN0IHdpdGggYSBrbm93biBsZW5ndGhcbiAgICpcbiAgICogSWYgeW91IGV4cGxpY2l0bHkgd2FudCBhIGxpc3Qgd2l0aCBhbiB1bmtub3duIGxlbmd0aCwgY2FsbCBgRm4uc3BsaXR2MignLCcsXG4gICAqIEZuLmltcG9ydFZhbHVlKHNjb3BlLCBleHBvcnROYW1lKSlgLiBTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgYEZuLnNwbGl0djJgIHRvIHJlYWRcbiAgICogbW9yZSBhYm91dCB0aGUgbGltaXRhdGlvbnMgb2YgdXNpbmcgbGlzdHMgb2YgdW5rbm93biBsZW5ndGguXG4gICAqXG4gICAqIGBGbi5pbXBvcnRMaXN0VmFsdWUoc2NvcGUsIGV4cG9ydE5hbWUsIGFzc3VtZWRMZW5ndGgpYCBpcyB0aGUgc2FtZSBhc1xuICAgKiBgRm4uc3BsaXQoJywnLCBGbi5pbXBvcnRWYWx1ZShzY29wZSwgZXhwb3J0TmFtZSksIGFzc3VtZWRMZW5ndGgpYCxcbiAgICogYnV0IGVhc2llciB0byByZWFkIGFuZCBpbXBvc3NpYmxlIHRvIGZvcmdldCB0byBwYXNzIGBhc3N1bWVkTGVuZ3RoYC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW1wb3J0TGlzdFZhbHVlKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgc2hhcmVkVmFsdWVUb0ltcG9ydDogc3RyaW5nLFxuICAgIGFzc3VtZWRMZW5ndGg6IG51bWJlcixcbiAgICBkZWxpbWl0ZXIgPSBcIixcIixcbiAgKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBGbi5zcGxpdHYyKFxuICAgICAgZGVsaW1pdGVyLFxuICAgICAgRm4uaW1wb3J0VmFsdWUoc2NvcGUsIHNoYXJlZFZhbHVlVG9JbXBvcnQpLFxuICAgICAgYXNzdW1lZExlbmd0aCxcbiAgICApO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgaW50cmluc2ljIGZ1bmN0aW9uIGBGbjo6TGVuZ3RoYCByZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgd2l0aGluIGFuIGFycmF5XG4gICAqIG9yIGFuIGludHJpbnNpYyBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gYXJyYXkuXG4gICAqXG4gICAqIEBwYXJhbSBhcnJheSBUaGUgYXJyYXkgeW91IHdhbnQgdG8gcmV0dXJuIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgZnJvbVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBsZW4oYXJyYXk6IGFueSk6IG51bWJlciB7XG4gICAgLy8gc2hvcnQtY2lyY3VpdCBpZiBhcnJheSBpcyBub3QgYSB0b2tlblxuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGFycmF5KSkge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGFycmF5KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJGbi5sZW5ndGgoKSBuZWVkcyBhbiBhcnJheVwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheS5sZW5ndGg7XG4gICAgfVxuICAgIHJldHVybiB0ZkZuLmxlbmd0aE9mKGFycmF5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vbGFuZ3VhZ2UvZnVuY3Rpb25zL2pvaW4gam9pbn0gcHJvZHVjZXMgYSBzdHJpbmcgYnkgY29uY2F0ZW5hdGluZyB0b2dldGhlciBhbGwgZWxlbWVudHMgb2YgYSBnaXZlbiBsaXN0IG9mIHN0cmluZ3Mgd2l0aCB0aGUgZ2l2ZW4gZGVsaW1pdGVyLlxuICAgKlxuICAgKiBJZiBhbnkgb2YgdGhlIHZhbHVlcyBhcmUgdW5yZXNvbHZlZCwgdGhlIGludHJpbnNpYyBmdW5jdGlvbiB3aWxsIGJlIHVzZWQuXG4gICAqIGlmIHRoZSBsaXN0IGhhcyBvbmx5IG9uZSBlbGVtZW50LCB0aGUgZWxlbWVudCB3aWxsIGJlIHJldHVybmVkLlxuICAgKiBpZiB0aGUgbGlzdCBoYXMgbW9yZSB0aGFuIG9uZSBlbGVtZW50LCB0aGUgZWxlbWVudHMgd2lsbCBiZSBqb2luZWQgd2l0aCB0aGUgZGVsaW1pdGVyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZGVsaW1pdGVyXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gdmFsdWVzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGpvaW4oZGVsaW1pdGVyOiBzdHJpbmcsIHZhbHVlczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQodmFsdWVzKSkge1xuICAgICAgLy8gVGhpcyBpcyBhIGxpc3QgdG9rZW4sIGRvbid0IHRyeSB0byBkbyBzbWFydCB0aGluZ3Mgd2l0aCBpdC5cbiAgICAgIHJldHVybiB0ZkZuLmpvaW4oZGVsaW1pdGVyLCB2YWx1ZXMpO1xuICAgIH1cbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHZhbHVlc1swXTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlcy5qb2luKGRlbGltaXRlcik7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmFuZ2UobjogbnVtYmVyKTogbnVtYmVyW10ge1xuICBjb25zdCByZXQ6IG51bWJlcltdID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgcmV0LnB1c2goaSk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==
package/lib/time-zone.js CHANGED
@@ -29,7 +29,7 @@ class TimeZone {
29
29
  }
30
30
  exports.TimeZone = TimeZone;
31
31
  _a = JSII_RTTI_SYMBOL_1;
32
- TimeZone[_a] = { fqn: "terraconstructs.TimeZone", version: "0.0.25" };
32
+ TimeZone[_a] = { fqn: "terraconstructs.TimeZone", version: "0.1.0" };
33
33
  /** IANA Time Zone database entry for Africa/Abidjan. UTC offset +00:00/+00:00. */
34
34
  TimeZone.AFRICA_ABIDJAN = new TimeZone("Africa/Abidjan");
35
35
  /** IANA Time Zone database entry for Africa/Algiers. UTC offset +01:00/+01:00. */
@@ -0,0 +1,31 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file
4
+ automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
5
+ This project adheres to [Semantic Versioning](http://semver.org/).
6
+
7
+ # v1.0.2
8
+ ## (2020-05-13)
9
+
10
+ * Update dependencies and replace yarn with npm [Paulo Castro]
11
+
12
+ # v1.0.1
13
+ ## (2020-05-02)
14
+
15
+ * Fix npm publish via balena CI [Paulo Castro]
16
+
17
+ # v1.0.0
18
+ ## (2020-04-29)
19
+
20
+ * Review README.md [Paulo Castro]
21
+
22
+ # v0.0.6
23
+ ## (2020-04-29)
24
+
25
+ * Update CI config (add .resinci.yml and appveyor.yml, remove codecov) [Paulo Castro]
26
+ * Add LICENSE.md and CHANGELOG.md files (setup versionist) [Paulo Castro]
27
+ * Update package.json (npm package details - fork from zeit/dockerignore) [Paulo Castro]
28
+
29
+ ## 0.0.5 - 2019-04-22
30
+
31
+ * Last zeit/dockerignore release before fork as balena-io-modules/dockerignore
@@ -0,0 +1,206 @@
1
+
2
+ * Copyright 2020 Balena Ltd. under the Apache 2.0 License included in this file.
3
+ * Copyright 2018 Zeit Inc. under the MIT License included in this file.
4
+
5
+ --------------------------------------------------------------------------
6
+
7
+ Apache License
8
+ Version 2.0, January 2004
9
+ http://www.apache.org/licenses/
10
+
11
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
12
+
13
+ 1. Definitions.
14
+
15
+ "License" shall mean the terms and conditions for use, reproduction,
16
+ and distribution as defined by Sections 1 through 9 of this document.
17
+
18
+ "Licensor" shall mean the copyright owner or entity authorized by
19
+ the copyright owner that is granting the License.
20
+
21
+ "Legal Entity" shall mean the union of the acting entity and all
22
+ other entities that control, are controlled by, or are under common
23
+ control with that entity. For the purposes of this definition,
24
+ "control" means (i) the power, direct or indirect, to cause the
25
+ direction or management of such entity, whether by contract or
26
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
27
+ outstanding shares, or (iii) beneficial ownership of such entity.
28
+
29
+ "You" (or "Your") shall mean an individual or Legal Entity
30
+ exercising permissions granted by this License.
31
+
32
+ "Source" form shall mean the preferred form for making modifications,
33
+ including but not limited to software source code, documentation
34
+ source, and configuration files.
35
+
36
+ "Object" form shall mean any form resulting from mechanical
37
+ transformation or translation of a Source form, including but
38
+ not limited to compiled object code, generated documentation,
39
+ and conversions to other media types.
40
+
41
+ "Work" shall mean the work of authorship, whether in Source or
42
+ Object form, made available under the License, as indicated by a
43
+ copyright notice that is included in or attached to the work
44
+ (an example is provided in the Appendix below).
45
+
46
+ "Derivative Works" shall mean any work, whether in Source or Object
47
+ form, that is based on (or derived from) the Work and for which the
48
+ editorial revisions, annotations, elaborations, or other modifications
49
+ represent, as a whole, an original work of authorship. For the purposes
50
+ of this License, Derivative Works shall not include works that remain
51
+ separable from, or merely link (or bind by name) to the interfaces of,
52
+ the Work and Derivative Works thereof.
53
+
54
+ "Contribution" shall mean any work of authorship, including
55
+ the original version of the Work and any modifications or additions
56
+ to that Work or Derivative Works thereof, that is intentionally
57
+ submitted to Licensor for inclusion in the Work by the copyright owner
58
+ or by an individual or Legal Entity authorized to submit on behalf of
59
+ the copyright owner. For the purposes of this definition, "submitted"
60
+ means any form of electronic, verbal, or written communication sent
61
+ to the Licensor or its representatives, including but not limited to
62
+ communication on electronic mailing lists, source code control systems,
63
+ and issue tracking systems that are managed by, or on behalf of, the
64
+ Licensor for the purpose of discussing and improving the Work, but
65
+ excluding communication that is conspicuously marked or otherwise
66
+ designated in writing by the copyright owner as "Not a Contribution."
67
+
68
+ "Contributor" shall mean Licensor and any individual or Legal Entity
69
+ on behalf of whom a Contribution has been received by Licensor and
70
+ subsequently incorporated within the Work.
71
+
72
+ 2. Grant of Copyright License. Subject to the terms and conditions of
73
+ this License, each Contributor hereby grants to You a perpetual,
74
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
75
+ copyright license to reproduce, prepare Derivative Works of,
76
+ publicly display, publicly perform, sublicense, and distribute the
77
+ Work and such Derivative Works in Source or Object form.
78
+
79
+ 3. Grant of Patent License. Subject to the terms and conditions of
80
+ this License, each Contributor hereby grants to You a perpetual,
81
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
82
+ (except as stated in this section) patent license to make, have made,
83
+ use, offer to sell, sell, import, and otherwise transfer the Work,
84
+ where such license applies only to those patent claims licensable
85
+ by such Contributor that are necessarily infringed by their
86
+ Contribution(s) alone or by combination of their Contribution(s)
87
+ with the Work to which such Contribution(s) was submitted. If You
88
+ institute patent litigation against any entity (including a
89
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
90
+ or a Contribution incorporated within the Work constitutes direct
91
+ or contributory patent infringement, then any patent licenses
92
+ granted to You under this License for that Work shall terminate
93
+ as of the date such litigation is filed.
94
+
95
+ 4. Redistribution. You may reproduce and distribute copies of the
96
+ Work or Derivative Works thereof in any medium, with or without
97
+ modifications, and in Source or Object form, provided that You
98
+ meet the following conditions:
99
+
100
+ (a) You must give any other recipients of the Work or
101
+ Derivative Works a copy of this License; and
102
+
103
+ (b) You must cause any modified files to carry prominent notices
104
+ stating that You changed the files; and
105
+
106
+ (c) You must retain, in the Source form of any Derivative Works
107
+ that You distribute, all copyright, patent, trademark, and
108
+ attribution notices from the Source form of the Work,
109
+ excluding those notices that do not pertain to any part of
110
+ the Derivative Works; and
111
+
112
+ (d) If the Work includes a "NOTICE" text file as part of its
113
+ distribution, then any Derivative Works that You distribute must
114
+ include a readable copy of the attribution notices contained
115
+ within such NOTICE file, excluding those notices that do not
116
+ pertain to any part of the Derivative Works, in at least one
117
+ of the following places: within a NOTICE text file distributed
118
+ as part of the Derivative Works; within the Source form or
119
+ documentation, if provided along with the Derivative Works; or,
120
+ within a display generated by the Derivative Works, if and
121
+ wherever such third-party notices normally appear. The contents
122
+ of the NOTICE file are for informational purposes only and
123
+ do not modify the License. You may add Your own attribution
124
+ notices within Derivative Works that You distribute, alongside
125
+ or as an addendum to the NOTICE text from the Work, provided
126
+ that such additional attribution notices cannot be construed
127
+ as modifying the License.
128
+
129
+ You may add Your own copyright statement to Your modifications and
130
+ may provide additional or different license terms and conditions
131
+ for use, reproduction, or distribution of Your modifications, or
132
+ for any such Derivative Works as a whole, provided Your use,
133
+ reproduction, and distribution of the Work otherwise complies with
134
+ the conditions stated in this License.
135
+
136
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
137
+ any Contribution intentionally submitted for inclusion in the Work
138
+ by You to the Licensor shall be under the terms and conditions of
139
+ this License, without any additional terms or conditions.
140
+ Notwithstanding the above, nothing herein shall supersede or modify
141
+ the terms of any separate license agreement you may have executed
142
+ with Licensor regarding such Contributions.
143
+
144
+ 6. Trademarks. This License does not grant permission to use the trade
145
+ names, trademarks, service marks, or product names of the Licensor,
146
+ except as required for reasonable and customary use in describing the
147
+ origin of the Work and reproducing the content of the NOTICE file.
148
+
149
+ 7. Disclaimer of Warranty. Unless required by applicable law or
150
+ agreed to in writing, Licensor provides the Work (and each
151
+ Contributor provides its Contributions) on an "AS IS" BASIS,
152
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
153
+ implied, including, without limitation, any warranties or conditions
154
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
155
+ PARTICULAR PURPOSE. You are solely responsible for determining the
156
+ appropriateness of using or redistributing the Work and assume any
157
+ risks associated with Your exercise of permissions under this License.
158
+
159
+ 8. Limitation of Liability. In no event and under no legal theory,
160
+ whether in tort (including negligence), contract, or otherwise,
161
+ unless required by applicable law (such as deliberate and grossly
162
+ negligent acts) or agreed to in writing, shall any Contributor be
163
+ liable to You for damages, including any direct, indirect, special,
164
+ incidental, or consequential damages of any character arising as a
165
+ result of this License or out of the use or inability to use the
166
+ Work (including but not limited to damages for loss of goodwill,
167
+ work stoppage, computer failure or malfunction, or any and all
168
+ other commercial damages or losses), even if such Contributor
169
+ has been advised of the possibility of such damages.
170
+
171
+ 9. Accepting Warranty or Additional Liability. While redistributing
172
+ the Work or Derivative Works thereof, You may choose to offer,
173
+ and charge a fee for, acceptance of support, warranty, indemnity,
174
+ or other liability obligations and/or rights consistent with this
175
+ License. However, in accepting such obligations, You may act only
176
+ on Your own behalf and on Your sole responsibility, not on behalf
177
+ of any other Contributor, and only if You agree to indemnify,
178
+ defend, and hold each Contributor harmless for any liability
179
+ incurred by, or claims asserted against, such Contributor by reason
180
+ of your accepting any such warranty or additional liability.
181
+
182
+ END OF TERMS AND CONDITIONS
183
+
184
+ --------------------------------------------------------------------------
185
+
186
+ The MIT License (MIT)
187
+
188
+ Permission is hereby granted, free of charge, to any person obtaining a
189
+ copy of this software and associated documentation files (the "Software"),
190
+ to deal in the Software without restriction, including without limitation
191
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
192
+ and/or sell copies of the Software, and to permit persons to whom the
193
+ Software is furnished to do so, subject to the following conditions:
194
+
195
+ The above copyright notice and this permission notice shall be included in
196
+ all copies or substantial portions of the Software.
197
+
198
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
199
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
200
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
201
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
202
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
203
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
204
+ DEALINGS IN THE SOFTWARE.
205
+
206
+ --------------------------------------------------------------------------