@aws-cdk/toolkit-lib 0.3.2 → 0.3.4

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 (392) hide show
  1. package/api-extractor.json +3 -0
  2. package/build-info.json +2 -2
  3. package/db.json.gz +0 -0
  4. package/lib/actions/bootstrap/index.d.ts +1 -1
  5. package/lib/actions/bootstrap/index.js +5 -5
  6. package/lib/actions/bootstrap/private/helpers.js +3 -3
  7. package/lib/actions/deploy/index.d.ts +1 -1
  8. package/lib/actions/deploy/index.js +1 -1
  9. package/lib/actions/deploy/private/deploy-options.d.ts +1 -1
  10. package/lib/actions/deploy/private/deploy-options.js +1 -1
  11. package/lib/actions/deploy/private/helpers.d.ts +3 -2
  12. package/lib/actions/deploy/private/helpers.js +3 -3
  13. package/lib/actions/diff/index.d.ts +1 -1
  14. package/lib/actions/diff/index.js +1 -1
  15. package/lib/actions/diff/private/helpers.d.ts +5 -9
  16. package/lib/actions/diff/private/helpers.js +13 -30
  17. package/lib/actions/refactor/index.d.ts +12 -0
  18. package/lib/actions/refactor/index.js +1 -1
  19. package/lib/api/aws-auth/account-cache.d.ts +41 -0
  20. package/lib/api/aws-auth/account-cache.js +108 -0
  21. package/lib/api/aws-auth/awscli-compatible.d.ts +70 -0
  22. package/lib/api/aws-auth/awscli-compatible.js +250 -0
  23. package/lib/api/aws-auth/cached.d.ts +11 -0
  24. package/lib/api/aws-auth/cached.js +26 -0
  25. package/lib/api/aws-auth/credential-plugins.d.ts +38 -0
  26. package/lib/api/aws-auth/credential-plugins.js +154 -0
  27. package/lib/api/aws-auth/private/index.d.ts +11 -0
  28. package/lib/api/aws-auth/private/index.js +37 -0
  29. package/lib/api/aws-auth/provider-caching.d.ts +13 -0
  30. package/lib/api/aws-auth/provider-caching.js +24 -0
  31. package/lib/api/aws-auth/proxy-agent.d.ts +13 -0
  32. package/lib/api/aws-auth/proxy-agent.js +54 -0
  33. package/lib/api/aws-auth/sdk-logger.d.ts +69 -0
  34. package/lib/api/aws-auth/sdk-logger.js +128 -0
  35. package/lib/api/aws-auth/sdk-provider.d.ts +195 -0
  36. package/lib/api/aws-auth/sdk-provider.js +373 -0
  37. package/lib/api/aws-auth/sdk.d.ts +235 -0
  38. package/lib/api/aws-auth/sdk.js +391 -0
  39. package/lib/api/aws-auth/tracing.d.ts +11 -0
  40. package/lib/api/aws-auth/tracing.js +60 -0
  41. package/lib/api/aws-auth/user-agent.d.ts +7 -0
  42. package/lib/api/aws-auth/user-agent.js +20 -0
  43. package/lib/api/aws-auth/util.d.ts +6 -0
  44. package/lib/api/aws-auth/util.js +21 -0
  45. package/lib/api/bootstrap/bootstrap-environment.d.ts +35 -0
  46. package/lib/api/bootstrap/bootstrap-environment.js +323 -0
  47. package/lib/api/bootstrap/bootstrap-props.d.ts +130 -0
  48. package/lib/api/bootstrap/bootstrap-props.js +14 -0
  49. package/lib/api/bootstrap/deploy-bootstrap.d.ts +39 -0
  50. package/lib/api/bootstrap/deploy-bootstrap.js +147 -0
  51. package/lib/api/bootstrap/index.d.ts +3 -0
  52. package/lib/api/bootstrap/index.js +23 -0
  53. package/lib/api/bootstrap/legacy-template.d.ts +2 -0
  54. package/lib/api/bootstrap/legacy-template.js +82 -0
  55. package/lib/api/cloud-assembly/environment.d.ts +43 -0
  56. package/lib/api/cloud-assembly/environment.js +127 -0
  57. package/lib/api/cloud-assembly/index.d.ts +1 -1
  58. package/lib/api/cloud-assembly/index.js +5 -4
  59. package/lib/api/cloud-assembly/private/context-aware-source.d.ts +1 -1
  60. package/lib/api/cloud-assembly/private/context-aware-source.js +7 -7
  61. package/lib/api/cloud-assembly/private/exec.js +3 -3
  62. package/lib/api/cloud-assembly/private/prepare-source.d.ts +2 -1
  63. package/lib/api/cloud-assembly/private/prepare-source.js +17 -15
  64. package/lib/api/cloud-assembly/private/readable-assembly.d.ts +1 -1
  65. package/lib/api/cloud-assembly/private/readable-assembly.js +1 -1
  66. package/lib/api/cloud-assembly/private/source-builder.d.ts +10 -8
  67. package/lib/api/cloud-assembly/private/source-builder.js +43 -24
  68. package/lib/api/cloud-assembly/private/stack-assembly.d.ts +2 -1
  69. package/lib/api/cloud-assembly/private/stack-assembly.js +16 -15
  70. package/lib/api/cloud-assembly/source-builder.d.ts +19 -0
  71. package/lib/api/cloud-assembly/source-builder.js +1 -1
  72. package/lib/api/cloud-assembly/stack-assembly.d.ts +55 -0
  73. package/lib/api/cloud-assembly/stack-assembly.js +139 -0
  74. package/lib/api/cloud-assembly/stack-collection.d.ts +27 -0
  75. package/lib/api/cloud-assembly/stack-collection.js +112 -0
  76. package/lib/api/cloud-assembly/stack-selector.d.ts +81 -2
  77. package/lib/api/cloud-assembly/stack-selector.js +62 -5
  78. package/lib/api/cloudformation/evaluate-cloudformation-template.d.ts +85 -0
  79. package/lib/api/cloudformation/evaluate-cloudformation-template.js +456 -0
  80. package/lib/api/cloudformation/index.d.ts +4 -0
  81. package/lib/api/cloudformation/index.js +21 -0
  82. package/lib/api/cloudformation/nested-stack-helpers.d.ts +25 -0
  83. package/lib/api/cloudformation/nested-stack-helpers.js +86 -0
  84. package/lib/api/cloudformation/stack-helpers.d.ts +96 -0
  85. package/lib/api/cloudformation/stack-helpers.js +163 -0
  86. package/lib/api/cloudformation/template-body-parameter.d.ts +22 -0
  87. package/lib/api/cloudformation/template-body-parameter.js +104 -0
  88. package/lib/api/context.d.ts +40 -0
  89. package/lib/api/context.js +84 -0
  90. package/lib/api/deployments/asset-manifest-builder.d.ts +8 -0
  91. package/lib/api/deployments/asset-manifest-builder.js +33 -0
  92. package/lib/api/deployments/asset-publishing.d.ts +60 -0
  93. package/lib/api/deployments/asset-publishing.js +144 -0
  94. package/lib/api/deployments/assets.d.ts +11 -0
  95. package/lib/api/deployments/assets.js +108 -0
  96. package/lib/api/deployments/cfn-api.d.ts +145 -0
  97. package/lib/api/deployments/cfn-api.js +444 -0
  98. package/lib/api/deployments/checks.d.ts +9 -0
  99. package/lib/api/deployments/checks.js +72 -0
  100. package/lib/api/deployments/deploy-stack.d.ts +164 -0
  101. package/lib/api/deployments/deploy-stack.js +490 -0
  102. package/lib/api/deployments/deployment-method.d.ts +24 -0
  103. package/lib/api/deployments/deployment-method.js +3 -0
  104. package/lib/api/deployments/deployment-result.d.ts +21 -0
  105. package/lib/api/deployments/deployment-result.js +10 -0
  106. package/lib/api/deployments/deployments.d.ts +289 -0
  107. package/lib/api/deployments/deployments.js +355 -0
  108. package/lib/api/deployments/index.d.ts +6 -0
  109. package/lib/api/deployments/index.js +27 -0
  110. package/lib/api/diff/diff-formatter.d.ts +147 -0
  111. package/lib/api/diff/diff-formatter.js +225 -0
  112. package/lib/api/diff/index.d.ts +1 -0
  113. package/lib/api/diff/index.js +18 -0
  114. package/lib/api/environment/environment-access.d.ts +139 -0
  115. package/lib/api/environment/environment-access.js +205 -0
  116. package/lib/api/environment/environment-resources.d.ts +75 -0
  117. package/lib/api/environment/environment-resources.js +213 -0
  118. package/lib/api/environment/index.d.ts +3 -0
  119. package/lib/api/environment/index.js +20 -0
  120. package/lib/api/environment/placeholders.d.ts +10 -0
  121. package/lib/api/environment/placeholders.js +23 -0
  122. package/lib/api/garbage-collection/garbage-collector.d.ts +158 -0
  123. package/lib/api/garbage-collection/garbage-collector.js +614 -0
  124. package/lib/api/garbage-collection/index.d.ts +3 -0
  125. package/lib/api/garbage-collection/index.js +21 -0
  126. package/lib/api/garbage-collection/progress-printer.d.ts +23 -0
  127. package/lib/api/garbage-collection/progress-printer.js +80 -0
  128. package/lib/api/garbage-collection/stack-refresh.d.ts +49 -0
  129. package/lib/api/garbage-collection/stack-refresh.js +152 -0
  130. package/lib/api/hotswap/appsync-mapping-templates.d.ts +4 -0
  131. package/lib/api/hotswap/appsync-mapping-templates.js +162 -0
  132. package/lib/api/hotswap/code-build-projects.d.ts +4 -0
  133. package/lib/api/hotswap/code-build-projects.js +62 -0
  134. package/lib/api/hotswap/common.d.ts +89 -0
  135. package/lib/api/hotswap/common.js +137 -0
  136. package/lib/api/hotswap/ecs-services.d.ts +4 -0
  137. package/lib/api/hotswap/ecs-services.js +159 -0
  138. package/lib/api/hotswap/hotswap-deployments.d.ts +17 -0
  139. package/lib/api/hotswap/hotswap-deployments.js +441 -0
  140. package/lib/api/hotswap/index.d.ts +2 -0
  141. package/lib/api/hotswap/index.js +19 -0
  142. package/lib/api/hotswap/lambda-functions.d.ts +4 -0
  143. package/lib/api/hotswap/lambda-functions.js +297 -0
  144. package/lib/api/hotswap/s3-bucket-deployments.d.ts +5 -0
  145. package/lib/api/hotswap/s3-bucket-deployments.js +117 -0
  146. package/lib/api/hotswap/stepfunctions-state-machines.d.ts +4 -0
  147. package/lib/api/hotswap/stepfunctions-state-machines.js +48 -0
  148. package/lib/api/index.d.ts +24 -0
  149. package/lib/api/index.js +41 -0
  150. package/lib/api/io/index.d.ts +3 -1
  151. package/lib/api/io/index.js +18 -1
  152. package/lib/api/io/io-host.d.ts +15 -0
  153. package/lib/api/io/io-host.js +3 -0
  154. package/lib/api/io/io-message.d.ts +76 -0
  155. package/lib/api/io/io-message.js +3 -0
  156. package/lib/api/io/private/index.d.ts +7 -1
  157. package/lib/api/io/private/index.js +8 -5
  158. package/lib/api/io/private/io-default-messages.d.ts +21 -0
  159. package/lib/api/io/private/io-default-messages.js +59 -0
  160. package/lib/api/io/private/io-helper.d.ts +32 -0
  161. package/lib/api/io/private/io-helper.js +51 -0
  162. package/lib/api/io/private/level-priority.d.ts +11 -0
  163. package/lib/api/io/private/level-priority.js +33 -0
  164. package/lib/api/io/private/message-maker.d.ts +89 -0
  165. package/lib/api/io/private/message-maker.js +60 -0
  166. package/lib/api/io/private/messages.d.ts +178 -0
  167. package/lib/api/io/private/messages.js +534 -0
  168. package/lib/api/io/private/sdk-logger.d.ts +1 -1
  169. package/lib/api/io/private/sdk-logger.js +6 -6
  170. package/lib/api/io/private/span.d.ts +93 -0
  171. package/lib/api/io/private/span.js +87 -0
  172. package/lib/api/io/private/testing/fake-io-host.d.ts +28 -0
  173. package/lib/api/io/private/testing/fake-io-host.js +41 -0
  174. package/lib/api/io/private/testing/index.d.ts +2 -0
  175. package/lib/api/io/private/testing/index.js +19 -0
  176. package/lib/api/io/private/testing/test-io-host.d.ts +27 -0
  177. package/lib/api/io/private/testing/test-io-host.js +61 -0
  178. package/lib/api/io/private/types.d.ts +4 -0
  179. package/lib/api/io/private/types.js +3 -0
  180. package/lib/api/io/toolkit-action.d.ts +4 -0
  181. package/lib/api/io/toolkit-action.js +3 -0
  182. package/lib/api/logs-monitor/find-cloudwatch-logs.d.ts +25 -0
  183. package/lib/api/logs-monitor/find-cloudwatch-logs.js +95 -0
  184. package/lib/api/logs-monitor/index.d.ts +2 -0
  185. package/lib/api/logs-monitor/index.js +19 -0
  186. package/lib/api/logs-monitor/logs-monitor.d.ts +76 -0
  187. package/lib/api/logs-monitor/logs-monitor.js +194 -0
  188. package/lib/api/notices/cached-data-source.d.ts +13 -0
  189. package/lib/api/notices/cached-data-source.js +77 -0
  190. package/lib/api/notices/filter.d.ts +59 -0
  191. package/lib/api/notices/filter.js +189 -0
  192. package/lib/api/notices/index.d.ts +1 -0
  193. package/lib/api/notices/index.js +18 -0
  194. package/lib/api/notices/notices.d.ts +111 -0
  195. package/lib/api/notices/notices.js +131 -0
  196. package/lib/api/notices/types.d.ts +37 -0
  197. package/lib/api/notices/types.js +3 -0
  198. package/lib/api/notices/web-data-source.d.ts +9 -0
  199. package/lib/api/notices/web-data-source.js +70 -0
  200. package/lib/api/plugin/context-provider-plugin.d.ts +6 -0
  201. package/lib/api/plugin/context-provider-plugin.js +7 -0
  202. package/lib/api/plugin/index.d.ts +3 -0
  203. package/lib/api/plugin/index.js +20 -0
  204. package/lib/api/plugin/mode.d.ts +4 -0
  205. package/lib/api/plugin/mode.js +9 -0
  206. package/lib/api/plugin/plugin.d.ts +70 -0
  207. package/lib/api/plugin/plugin.js +127 -0
  208. package/lib/api/private.d.ts +1 -0
  209. package/lib/api/private.js +18 -0
  210. package/lib/api/refactoring/cloudformation.d.ts +38 -0
  211. package/lib/api/refactoring/cloudformation.js +56 -0
  212. package/lib/api/refactoring/digest.d.ts +26 -0
  213. package/lib/api/refactoring/digest.js +175 -0
  214. package/lib/api/refactoring/exclude.d.ts +29 -0
  215. package/lib/api/refactoring/exclude.js +94 -0
  216. package/lib/api/refactoring/index.d.ts +32 -0
  217. package/lib/api/refactoring/index.js +191 -0
  218. package/lib/api/require-approval.d.ts +17 -0
  219. package/lib/api/require-approval.js +22 -0
  220. package/lib/api/resource-import/importer.d.ts +216 -0
  221. package/lib/api/resource-import/importer.js +331 -0
  222. package/lib/api/resource-import/index.d.ts +2 -0
  223. package/lib/api/resource-import/index.js +19 -0
  224. package/lib/api/resource-import/migrator.d.ts +26 -0
  225. package/lib/api/resource-import/migrator.js +73 -0
  226. package/lib/api/resource-metadata/index.d.ts +1 -0
  227. package/lib/api/resource-metadata/index.js +18 -0
  228. package/lib/api/resource-metadata/resource-metadata.d.ts +24 -0
  229. package/lib/api/resource-metadata/resource-metadata.js +42 -0
  230. package/lib/api/rwlock.d.ts +60 -0
  231. package/lib/api/rwlock.js +204 -0
  232. package/lib/api/settings.d.ts +26 -0
  233. package/lib/api/settings.js +107 -0
  234. package/lib/api/shared-private.d.ts +8 -6
  235. package/lib/api/shared-private.js +31 -12561
  236. package/lib/api/stack-events/index.d.ts +4 -0
  237. package/lib/api/stack-events/index.js +23 -0
  238. package/lib/api/stack-events/stack-activity-monitor.d.ts +100 -0
  239. package/lib/api/stack-events/stack-activity-monitor.js +164 -0
  240. package/lib/api/stack-events/stack-event-poller.d.ts +69 -0
  241. package/lib/api/stack-events/stack-event-poller.js +130 -0
  242. package/lib/api/stack-events/stack-progress-monitor.d.ts +48 -0
  243. package/lib/api/stack-events/stack-progress-monitor.js +98 -0
  244. package/lib/api/stack-events/stack-status.d.ts +42 -0
  245. package/lib/api/stack-events/stack-status.js +90 -0
  246. package/lib/api/streams.d.ts +7 -0
  247. package/lib/api/streams.js +24 -0
  248. package/lib/api/tags.d.ts +9 -0
  249. package/lib/api/tags.js +10 -0
  250. package/lib/api/toolkit-info.d.ts +52 -0
  251. package/lib/api/toolkit-info.js +157 -0
  252. package/lib/api/tree.d.ts +31 -0
  253. package/lib/api/tree.js +37 -0
  254. package/lib/api/work-graph/index.d.ts +3 -0
  255. package/lib/api/work-graph/index.js +20 -0
  256. package/lib/api/work-graph/work-graph-builder.d.ts +34 -0
  257. package/lib/api/work-graph/work-graph-builder.js +172 -0
  258. package/lib/api/work-graph/work-graph-types.d.ts +50 -0
  259. package/lib/api/work-graph/work-graph-types.js +13 -0
  260. package/lib/api/work-graph/work-graph.d.ts +72 -0
  261. package/lib/api/work-graph/work-graph.js +349 -0
  262. package/lib/context-providers/ami.d.ts +13 -0
  263. package/lib/context-providers/ami.js +52 -0
  264. package/lib/context-providers/availability-zones.d.ts +13 -0
  265. package/lib/context-providers/availability-zones.js +29 -0
  266. package/lib/context-providers/cc-api-provider.d.ts +30 -0
  267. package/lib/context-providers/cc-api-provider.js +145 -0
  268. package/lib/context-providers/endpoint-service-availability-zones.d.ts +13 -0
  269. package/lib/context-providers/endpoint-service-availability-zones.js +35 -0
  270. package/lib/context-providers/hosted-zones.d.ts +12 -0
  271. package/lib/context-providers/hosted-zones.js +69 -0
  272. package/lib/context-providers/index.d.ts +44 -0
  273. package/lib/context-providers/index.js +128 -0
  274. package/lib/context-providers/keys.d.ts +13 -0
  275. package/lib/context-providers/keys.js +54 -0
  276. package/lib/context-providers/load-balancers.d.ts +20 -0
  277. package/lib/context-providers/load-balancers.js +161 -0
  278. package/lib/context-providers/security-groups.d.ts +9 -0
  279. package/lib/context-providers/security-groups.js +69 -0
  280. package/lib/context-providers/ssm-parameters.d.ts +25 -0
  281. package/lib/context-providers/ssm-parameters.js +61 -0
  282. package/lib/context-providers/vpcs.d.ts +13 -0
  283. package/lib/context-providers/vpcs.js +291 -0
  284. package/lib/index.d.ts +4 -1
  285. package/lib/index.js +5 -2
  286. package/lib/index_bg.wasm +0 -0
  287. package/lib/payloads/bootstrap-environment-progress.d.ts +17 -0
  288. package/lib/payloads/bootstrap-environment-progress.js +3 -0
  289. package/lib/payloads/context.d.ts +9 -0
  290. package/lib/payloads/context.js +3 -0
  291. package/lib/payloads/deploy.d.ts +50 -0
  292. package/lib/payloads/deploy.js +3 -0
  293. package/lib/payloads/destroy.d.ts +23 -0
  294. package/lib/payloads/destroy.js +3 -0
  295. package/lib/payloads/diff.d.ts +31 -0
  296. package/lib/payloads/diff.js +22 -0
  297. package/lib/payloads/hotswap.d.ts +212 -0
  298. package/lib/payloads/hotswap.js +43 -0
  299. package/lib/payloads/index.d.ts +17 -0
  300. package/lib/payloads/index.js +34 -0
  301. package/lib/payloads/list.d.ts +4 -0
  302. package/lib/payloads/list.js +3 -0
  303. package/lib/payloads/logs-monitor.d.ts +33 -0
  304. package/lib/payloads/logs-monitor.js +3 -0
  305. package/lib/payloads/progress.d.ts +14 -0
  306. package/lib/payloads/progress.js +3 -0
  307. package/lib/payloads/refactor.d.ts +14 -0
  308. package/lib/payloads/refactor.js +3 -0
  309. package/lib/payloads/rollback.d.ts +17 -0
  310. package/lib/payloads/rollback.js +3 -0
  311. package/lib/payloads/sdk-trace.d.ts +20 -0
  312. package/lib/payloads/sdk-trace.js +3 -0
  313. package/lib/payloads/stack-activity.d.ts +53 -0
  314. package/lib/payloads/stack-activity.js +3 -0
  315. package/lib/payloads/stack-details.d.ts +17 -0
  316. package/lib/payloads/stack-details.js +3 -0
  317. package/lib/payloads/synth.d.ts +7 -0
  318. package/lib/payloads/synth.js +3 -0
  319. package/lib/payloads/types.d.ts +95 -0
  320. package/lib/payloads/types.js +3 -0
  321. package/lib/payloads/watch.d.ts +27 -0
  322. package/lib/payloads/watch.js +3 -0
  323. package/lib/private/activity-printer/base.d.ts +50 -0
  324. package/lib/private/activity-printer/base.js +120 -0
  325. package/lib/private/activity-printer/current.d.ts +26 -0
  326. package/lib/private/activity-printer/current.js +122 -0
  327. package/lib/private/activity-printer/display.d.ts +13 -0
  328. package/lib/private/activity-printer/display.js +81 -0
  329. package/lib/private/activity-printer/history.d.ts +32 -0
  330. package/lib/private/activity-printer/history.js +109 -0
  331. package/lib/private/activity-printer/index.d.ts +3 -0
  332. package/lib/private/activity-printer/index.js +20 -0
  333. package/lib/private/index.d.ts +1 -0
  334. package/lib/private/index.js +18 -0
  335. package/lib/toolkit/non-interactive-io-host.js +5 -4
  336. package/lib/toolkit/private/index.d.ts +2 -1
  337. package/lib/toolkit/private/index.js +1 -1
  338. package/lib/toolkit/toolkit-error.d.ts +86 -0
  339. package/lib/toolkit/toolkit-error.js +132 -0
  340. package/lib/toolkit/toolkit.d.ts +2 -2
  341. package/lib/toolkit/toolkit.js +161 -130
  342. package/lib/toolkit/types.d.ts +0 -55
  343. package/lib/toolkit/types.js +1 -1
  344. package/lib/util/archive.d.ts +1 -0
  345. package/lib/util/archive.js +86 -0
  346. package/lib/util/arrays.d.ts +14 -0
  347. package/lib/util/arrays.js +36 -0
  348. package/lib/util/bool.d.ts +7 -0
  349. package/lib/util/bool.js +13 -0
  350. package/lib/util/bytes.d.ts +8 -0
  351. package/lib/util/bytes.js +21 -0
  352. package/lib/util/cloudformation.d.ts +16 -0
  353. package/lib/util/cloudformation.js +36 -0
  354. package/lib/util/content-hash.d.ts +5 -0
  355. package/lib/util/content-hash.js +43 -0
  356. package/lib/util/directories.d.ts +22 -0
  357. package/lib/util/directories.js +59 -0
  358. package/lib/util/format-error.d.ts +9 -0
  359. package/lib/util/format-error.js +22 -0
  360. package/lib/util/index.d.ts +19 -0
  361. package/lib/util/index.js +36 -0
  362. package/lib/util/json.d.ts +48 -0
  363. package/lib/util/json.js +68 -0
  364. package/lib/util/net.d.ts +9 -0
  365. package/lib/util/net.js +60 -0
  366. package/lib/util/objects.d.ts +65 -0
  367. package/lib/util/objects.js +230 -0
  368. package/lib/util/package-info.d.ts +3 -0
  369. package/lib/util/package-info.js +22 -0
  370. package/lib/util/parallel.d.ts +6 -0
  371. package/lib/util/parallel.js +48 -0
  372. package/lib/util/serialize.d.ts +27 -0
  373. package/lib/util/serialize.js +86 -0
  374. package/lib/util/string-manipulation.d.ts +18 -0
  375. package/lib/util/string-manipulation.js +46 -0
  376. package/lib/util/type-brands.d.ts +39 -0
  377. package/lib/util/type-brands.js +39 -0
  378. package/lib/util/types.d.ts +27 -0
  379. package/lib/util/types.js +25 -0
  380. package/lib/util/version-range.d.ts +2 -0
  381. package/lib/util/version-range.js +36 -0
  382. package/lib/util/yaml-cfn.d.ts +15 -0
  383. package/lib/util/yaml-cfn.js +58 -0
  384. package/package.json +26 -28
  385. package/tsdoc.json +15 -0
  386. package/lib/api/shared-private.js.map +0 -7
  387. package/lib/api/shared-public.d.ts +0 -2159
  388. package/lib/api/shared-public.js +0 -1110
  389. package/lib/api/shared-public.js.map +0 -7
  390. package/lib/private/util.d.ts +0 -1
  391. package/lib/private/util.js +0 -787
  392. package/lib/private/util.js.map +0 -7
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StackProgressMonitor = void 0;
4
+ const util = require("util");
5
+ const util_1 = require("../../util");
6
+ /**
7
+ * Monitors stack progress.s
8
+ */
9
+ class StackProgressMonitor {
10
+ /**
11
+ * Previous completion state observed by logical ID
12
+ *
13
+ * We use this to detect that if we see a DELETE_COMPLETE after a
14
+ * CREATE_COMPLETE, it's actually a rollback and we should DECREASE
15
+ * resourcesDone instead of increase it
16
+ */
17
+ resourcesPrevCompleteState = {};
18
+ /**
19
+ * Count of resources that have reported a _COMPLETE status
20
+ */
21
+ resourcesDone = 0;
22
+ /**
23
+ * How many digits we need to represent the total count (for lining up the status reporting)
24
+ */
25
+ resourceDigits = 0;
26
+ /**
27
+ * Number of expected resources in the monitor.
28
+ */
29
+ resourcesTotal;
30
+ constructor(resourcesTotal) {
31
+ // +1 because the stack also emits a "COMPLETE" event at the end, and that wasn't
32
+ // counted yet. This makes it line up with the amount of events we expect.
33
+ this.resourcesTotal = resourcesTotal ? resourcesTotal + 1 : undefined;
34
+ // How many digits does this number take to represent?
35
+ this.resourceDigits = this.resourcesTotal ? Math.ceil(Math.log10(this.resourcesTotal)) : 0;
36
+ }
37
+ /**
38
+ * Report the stack progress
39
+ */
40
+ get progress() {
41
+ return {
42
+ total: this.total,
43
+ completed: this.completed,
44
+ formatted: this.formatted,
45
+ };
46
+ }
47
+ /**
48
+ * The total number of progress monitored resources.
49
+ */
50
+ get total() {
51
+ return this.resourcesTotal;
52
+ }
53
+ /**
54
+ * The number of completed resources.
55
+ */
56
+ get completed() {
57
+ return this.resourcesDone;
58
+ }
59
+ /**
60
+ * Report the current progress as a [34/42] string, or just [34] if the total is unknown
61
+ */
62
+ get formatted() {
63
+ if (this.resourcesTotal == null) {
64
+ // Don't have total, show simple count and hope the human knows
65
+ return (0, util_1.padLeft)(3, util.format('%s', this.resourcesDone)); // max 500 resources
66
+ }
67
+ return util.format('%s/%s', (0, util_1.padLeft)(this.resourceDigits, this.resourcesDone.toString()), (0, util_1.padLeft)(this.resourceDigits, this.resourcesTotal.toString()));
68
+ }
69
+ /**
70
+ * Process as stack event and update the progress state.
71
+ */
72
+ process(event) {
73
+ const status = event.ResourceStatus;
74
+ if (!status || !event.LogicalResourceId) {
75
+ return;
76
+ }
77
+ if (status.endsWith('_COMPLETE_CLEANUP_IN_PROGRESS')) {
78
+ this.resourcesDone++;
79
+ }
80
+ if (status.endsWith('_COMPLETE')) {
81
+ const prevState = this.resourcesPrevCompleteState[event.LogicalResourceId];
82
+ if (!prevState) {
83
+ this.resourcesDone++;
84
+ }
85
+ else {
86
+ // If we completed this before and we're completing it AGAIN, means we're rolling back.
87
+ // Protect against silly underflow.
88
+ this.resourcesDone--;
89
+ if (this.resourcesDone < 0) {
90
+ this.resourcesDone = 0;
91
+ }
92
+ }
93
+ this.resourcesPrevCompleteState[event.LogicalResourceId] = status;
94
+ }
95
+ }
96
+ }
97
+ exports.StackProgressMonitor = StackProgressMonitor;
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stcHJvZ3Jlc3MtbW9uaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLXByb2dyZXNzLW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBRzdCLHFDQUFxQztBQUVyQzs7R0FFRztBQUNILE1BQWEsb0JBQW9CO0lBQy9COzs7Ozs7T0FNRztJQUNLLDBCQUEwQixHQUEyQixFQUFFLENBQUM7SUFFaEU7O09BRUc7SUFDSyxhQUFhLEdBQVcsQ0FBQyxDQUFDO0lBRWxDOztPQUVHO0lBQ2MsY0FBYyxHQUFXLENBQUMsQ0FBQztJQUU1Qzs7T0FFRztJQUNjLGNBQWMsQ0FBVTtJQUV6QyxZQUFZLGNBQXVCO1FBQ2pDLGlGQUFpRjtRQUNqRiwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUV0RSxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsT0FBTztZQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFNBQVM7UUFDbEIsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2hDLCtEQUErRDtZQUMvRCxPQUFPLElBQUEsY0FBTyxFQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQjtRQUNoRixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUNoQixPQUFPLEVBQ1AsSUFBQSxjQUFPLEVBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQzNELElBQUEsY0FBTyxFQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUM3RCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLEtBQWlCO1FBQzlCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3hDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLCtCQUErQixDQUFDLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLENBQUM7aUJBQU0sQ0FBQztnQkFDTix1RkFBdUY7Z0JBQ3ZGLG1DQUFtQztnQkFDbkMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNyQixJQUFJLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDcEUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXZHRCxvREF1R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dGlsIGZyb20gJ3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0V2ZW50IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9ncmVzcyB9IGZyb20gJy4uLy4uL3BheWxvYWRzL3Byb2dyZXNzJztcbmltcG9ydCB7IHBhZExlZnQgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBNb25pdG9ycyBzdGFjayBwcm9ncmVzcy5zXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFja1Byb2dyZXNzTW9uaXRvciB7XG4gIC8qKlxuICAgKiBQcmV2aW91cyBjb21wbGV0aW9uIHN0YXRlIG9ic2VydmVkIGJ5IGxvZ2ljYWwgSURcbiAgICpcbiAgICogV2UgdXNlIHRoaXMgdG8gZGV0ZWN0IHRoYXQgaWYgd2Ugc2VlIGEgREVMRVRFX0NPTVBMRVRFIGFmdGVyIGFcbiAgICogQ1JFQVRFX0NPTVBMRVRFLCBpdCdzIGFjdHVhbGx5IGEgcm9sbGJhY2sgYW5kIHdlIHNob3VsZCBERUNSRUFTRVxuICAgKiByZXNvdXJjZXNEb25lIGluc3RlYWQgb2YgaW5jcmVhc2UgaXRcbiAgICovXG4gIHByaXZhdGUgcmVzb3VyY2VzUHJldkNvbXBsZXRlU3RhdGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAvKipcbiAgICogQ291bnQgb2YgcmVzb3VyY2VzIHRoYXQgaGF2ZSByZXBvcnRlZCBhIF9DT01QTEVURSBzdGF0dXNcbiAgICovXG4gIHByaXZhdGUgcmVzb3VyY2VzRG9uZTogbnVtYmVyID0gMDtcblxuICAvKipcbiAgICogSG93IG1hbnkgZGlnaXRzIHdlIG5lZWQgdG8gcmVwcmVzZW50IHRoZSB0b3RhbCBjb3VudCAoZm9yIGxpbmluZyB1cCB0aGUgc3RhdHVzIHJlcG9ydGluZylcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VEaWdpdHM6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBleHBlY3RlZCByZXNvdXJjZXMgaW4gdGhlIG1vbml0b3IuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlc1RvdGFsPzogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHJlc291cmNlc1RvdGFsPzogbnVtYmVyKSB7XG4gICAgLy8gKzEgYmVjYXVzZSB0aGUgc3RhY2sgYWxzbyBlbWl0cyBhIFwiQ09NUExFVEVcIiBldmVudCBhdCB0aGUgZW5kLCBhbmQgdGhhdCB3YXNuJ3RcbiAgICAvLyBjb3VudGVkIHlldC4gVGhpcyBtYWtlcyBpdCBsaW5lIHVwIHdpdGggdGhlIGFtb3VudCBvZiBldmVudHMgd2UgZXhwZWN0LlxuICAgIHRoaXMucmVzb3VyY2VzVG90YWwgPSByZXNvdXJjZXNUb3RhbCA/IHJlc291cmNlc1RvdGFsICsgMSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIEhvdyBtYW55IGRpZ2l0cyBkb2VzIHRoaXMgbnVtYmVyIHRha2UgdG8gcmVwcmVzZW50P1xuICAgIHRoaXMucmVzb3VyY2VEaWdpdHMgPSB0aGlzLnJlc291cmNlc1RvdGFsID8gTWF0aC5jZWlsKE1hdGgubG9nMTAodGhpcy5yZXNvdXJjZXNUb3RhbCkpIDogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBvcnQgdGhlIHN0YWNrIHByb2dyZXNzXG4gICAqL1xuICBwdWJsaWMgZ2V0IHByb2dyZXNzKCk6IFN0YWNrUHJvZ3Jlc3Mge1xuICAgIHJldHVybiB7XG4gICAgICB0b3RhbDogdGhpcy50b3RhbCxcbiAgICAgIGNvbXBsZXRlZDogdGhpcy5jb21wbGV0ZWQsXG4gICAgICBmb3JtYXR0ZWQ6IHRoaXMuZm9ybWF0dGVkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiBwcm9ncmVzcyBtb25pdG9yZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcHVibGljIGdldCB0b3RhbCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlc1RvdGFsO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgY29tcGxldGVkIHJlc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgY29tcGxldGVkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzRG9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBvcnQgdGhlIGN1cnJlbnQgcHJvZ3Jlc3MgYXMgYSBbMzQvNDJdIHN0cmluZywgb3IganVzdCBbMzRdIGlmIHRoZSB0b3RhbCBpcyB1bmtub3duXG4gICAqL1xuICBwdWJsaWMgZ2V0IGZvcm1hdHRlZCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnJlc291cmNlc1RvdGFsID09IG51bGwpIHtcbiAgICAgIC8vIERvbid0IGhhdmUgdG90YWwsIHNob3cgc2ltcGxlIGNvdW50IGFuZCBob3BlIHRoZSBodW1hbiBrbm93c1xuICAgICAgcmV0dXJuIHBhZExlZnQoMywgdXRpbC5mb3JtYXQoJyVzJywgdGhpcy5yZXNvdXJjZXNEb25lKSk7IC8vIG1heCA1MDAgcmVzb3VyY2VzXG4gICAgfVxuXG4gICAgcmV0dXJuIHV0aWwuZm9ybWF0KFxuICAgICAgJyVzLyVzJyxcbiAgICAgIHBhZExlZnQodGhpcy5yZXNvdXJjZURpZ2l0cywgdGhpcy5yZXNvdXJjZXNEb25lLnRvU3RyaW5nKCkpLFxuICAgICAgcGFkTGVmdCh0aGlzLnJlc291cmNlRGlnaXRzLCB0aGlzLnJlc291cmNlc1RvdGFsLnRvU3RyaW5nKCkpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyBhcyBzdGFjayBldmVudCBhbmQgdXBkYXRlIHRoZSBwcm9ncmVzcyBzdGF0ZS5cbiAgICovXG4gIHB1YmxpYyBwcm9jZXNzKGV2ZW50OiBTdGFja0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdHVzID0gZXZlbnQuUmVzb3VyY2VTdGF0dXM7XG4gICAgaWYgKCFzdGF0dXMgfHwgIWV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHN0YXR1cy5lbmRzV2l0aCgnX0NPTVBMRVRFX0NMRUFOVVBfSU5fUFJPR1JFU1MnKSkge1xuICAgICAgdGhpcy5yZXNvdXJjZXNEb25lKys7XG4gICAgfVxuXG4gICAgaWYgKHN0YXR1cy5lbmRzV2l0aCgnX0NPTVBMRVRFJykpIHtcbiAgICAgIGNvbnN0IHByZXZTdGF0ZSA9IHRoaXMucmVzb3VyY2VzUHJldkNvbXBsZXRlU3RhdGVbZXZlbnQuTG9naWNhbFJlc291cmNlSWRdO1xuICAgICAgaWYgKCFwcmV2U3RhdGUpIHtcbiAgICAgICAgdGhpcy5yZXNvdXJjZXNEb25lKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiB3ZSBjb21wbGV0ZWQgdGhpcyBiZWZvcmUgYW5kIHdlJ3JlIGNvbXBsZXRpbmcgaXQgQUdBSU4sIG1lYW5zIHdlJ3JlIHJvbGxpbmcgYmFjay5cbiAgICAgICAgLy8gUHJvdGVjdCBhZ2FpbnN0IHNpbGx5IHVuZGVyZmxvdy5cbiAgICAgICAgdGhpcy5yZXNvdXJjZXNEb25lLS07XG4gICAgICAgIGlmICh0aGlzLnJlc291cmNlc0RvbmUgPCAwKSB7XG4gICAgICAgICAgdGhpcy5yZXNvdXJjZXNEb25lID0gMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5yZXNvdXJjZXNQcmV2Q29tcGxldGVTdGF0ZVtldmVudC5Mb2dpY2FsUmVzb3VyY2VJZF0gPSBzdGF0dXM7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,42 @@
1
+ import { type Stack } from '@aws-sdk/client-cloudformation';
2
+ /**
3
+ * A utility class to inspect CloudFormation stack statuses.
4
+ *
5
+ * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html
6
+ */
7
+ export declare class StackStatus {
8
+ readonly name: string;
9
+ readonly reason?: string | undefined;
10
+ static fromStackDescription(description: Stack): StackStatus;
11
+ constructor(name: string, reason?: string | undefined);
12
+ get isCreationFailure(): boolean;
13
+ get isDeleted(): boolean;
14
+ get isFailure(): boolean;
15
+ get isInProgress(): boolean;
16
+ get isReviewInProgress(): boolean;
17
+ get isNotFound(): boolean;
18
+ get isDeploySuccess(): boolean;
19
+ get isRollbackSuccess(): boolean;
20
+ /**
21
+ * Whether the stack is in a paused state due to `--no-rollback`.
22
+ *
23
+ * The possible actions here are retrying a new `--no-rollback` deployment, or initiating a rollback.
24
+ */
25
+ get rollbackChoice(): RollbackChoice;
26
+ get isRollbackable(): boolean;
27
+ toString(): string;
28
+ }
29
+ /**
30
+ * Describe the current rollback options for this state
31
+ */
32
+ export declare enum RollbackChoice {
33
+ START_ROLLBACK = 0,
34
+ CONTINUE_UPDATE_ROLLBACK = 1,
35
+ /**
36
+ * A sign that stack creation AND its rollback have failed.
37
+ *
38
+ * There is no way to recover from this, other than recreating the stack.
39
+ */
40
+ ROLLBACK_FAILED = 2,
41
+ NONE = 3
42
+ }
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RollbackChoice = exports.StackStatus = void 0;
4
+ const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
5
+ /**
6
+ * A utility class to inspect CloudFormation stack statuses.
7
+ *
8
+ * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html
9
+ */
10
+ class StackStatus {
11
+ name;
12
+ reason;
13
+ static fromStackDescription(description) {
14
+ return new StackStatus(description.StackStatus, description.StackStatusReason);
15
+ }
16
+ constructor(name, reason) {
17
+ this.name = name;
18
+ this.reason = reason;
19
+ }
20
+ get isCreationFailure() {
21
+ return this.name === client_cloudformation_1.StackStatus.ROLLBACK_COMPLETE || this.name === client_cloudformation_1.StackStatus.ROLLBACK_FAILED;
22
+ }
23
+ get isDeleted() {
24
+ return this.name.startsWith('DELETE_');
25
+ }
26
+ get isFailure() {
27
+ return this.name.endsWith('FAILED');
28
+ }
29
+ get isInProgress() {
30
+ return this.name.endsWith('_IN_PROGRESS') && !this.isReviewInProgress;
31
+ }
32
+ get isReviewInProgress() {
33
+ return this.name === client_cloudformation_1.StackStatus.REVIEW_IN_PROGRESS;
34
+ }
35
+ get isNotFound() {
36
+ return this.name === 'NOT_FOUND';
37
+ }
38
+ get isDeploySuccess() {
39
+ return (!this.isNotFound &&
40
+ (this.name === client_cloudformation_1.StackStatus.CREATE_COMPLETE ||
41
+ this.name === client_cloudformation_1.StackStatus.UPDATE_COMPLETE ||
42
+ this.name === client_cloudformation_1.StackStatus.IMPORT_COMPLETE));
43
+ }
44
+ get isRollbackSuccess() {
45
+ return this.name === client_cloudformation_1.StackStatus.ROLLBACK_COMPLETE || this.name === client_cloudformation_1.StackStatus.UPDATE_ROLLBACK_COMPLETE;
46
+ }
47
+ /**
48
+ * Whether the stack is in a paused state due to `--no-rollback`.
49
+ *
50
+ * The possible actions here are retrying a new `--no-rollback` deployment, or initiating a rollback.
51
+ */
52
+ get rollbackChoice() {
53
+ switch (this.name) {
54
+ case client_cloudformation_1.StackStatus.CREATE_FAILED:
55
+ case client_cloudformation_1.StackStatus.UPDATE_FAILED:
56
+ return RollbackChoice.START_ROLLBACK;
57
+ case client_cloudformation_1.StackStatus.UPDATE_ROLLBACK_FAILED:
58
+ return RollbackChoice.CONTINUE_UPDATE_ROLLBACK;
59
+ case client_cloudformation_1.StackStatus.ROLLBACK_FAILED:
60
+ // Unfortunately there is no option to continue a failed rollback without
61
+ // a stable target state.
62
+ return RollbackChoice.ROLLBACK_FAILED;
63
+ default:
64
+ return RollbackChoice.NONE;
65
+ }
66
+ }
67
+ get isRollbackable() {
68
+ return [RollbackChoice.START_ROLLBACK, RollbackChoice.CONTINUE_UPDATE_ROLLBACK].includes(this.rollbackChoice);
69
+ }
70
+ toString() {
71
+ return this.name + (this.reason ? ` (${this.reason})` : '');
72
+ }
73
+ }
74
+ exports.StackStatus = StackStatus;
75
+ /**
76
+ * Describe the current rollback options for this state
77
+ */
78
+ var RollbackChoice;
79
+ (function (RollbackChoice) {
80
+ RollbackChoice[RollbackChoice["START_ROLLBACK"] = 0] = "START_ROLLBACK";
81
+ RollbackChoice[RollbackChoice["CONTINUE_UPDATE_ROLLBACK"] = 1] = "CONTINUE_UPDATE_ROLLBACK";
82
+ /**
83
+ * A sign that stack creation AND its rollback have failed.
84
+ *
85
+ * There is no way to recover from this, other than recreating the stack.
86
+ */
87
+ RollbackChoice[RollbackChoice["ROLLBACK_FAILED"] = 2] = "ROLLBACK_FAILED";
88
+ RollbackChoice[RollbackChoice["NONE"] = 3] = "NONE";
89
+ })(RollbackChoice || (exports.RollbackChoice = RollbackChoice = {}));
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stc3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhY2stc3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDBFQUF5RjtBQUV6Rjs7OztHQUlHO0FBQ0gsTUFBYSxXQUFXO0lBTUo7SUFDQTtJQU5YLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxXQUFrQjtRQUNuRCxPQUFPLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFZLEVBQUUsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELFlBQ2tCLElBQVksRUFDWixNQUFlO1FBRGYsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFdBQU0sR0FBTixNQUFNLENBQVM7SUFFakMsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxtQ0FBWSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssbUNBQVksQ0FBQyxlQUFlLENBQUM7SUFDcEcsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxtQ0FBWSxDQUFDLGtCQUFrQixDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxDQUNMLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFDaEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLG1DQUFZLENBQUMsZUFBZTtnQkFDekMsSUFBSSxDQUFDLElBQUksS0FBSyxtQ0FBWSxDQUFDLGVBQWU7Z0JBQzFDLElBQUksQ0FBQyxJQUFJLEtBQUssbUNBQVksQ0FBQyxlQUFlLENBQUMsQ0FDOUMsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssbUNBQVksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLG1DQUFZLENBQUMsd0JBQXdCLENBQUM7SUFDN0csQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLGNBQWM7UUFDaEIsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsS0FBSyxtQ0FBWSxDQUFDLGFBQWEsQ0FBQztZQUNoQyxLQUFLLG1DQUFZLENBQUMsYUFBYTtnQkFDN0IsT0FBTyxjQUFjLENBQUMsY0FBYyxDQUFDO1lBQ3ZDLEtBQUssbUNBQVksQ0FBQyxzQkFBc0I7Z0JBQ3RDLE9BQU8sY0FBYyxDQUFDLHdCQUF3QixDQUFDO1lBQ2pELEtBQUssbUNBQVksQ0FBQyxlQUFlO2dCQUMvQix5RUFBeUU7Z0JBQ3pFLHlCQUF5QjtnQkFDekIsT0FBTyxjQUFjLENBQUMsZUFBZSxDQUFDO1lBQ3hDO2dCQUNFLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFFTSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRjtBQTVFRCxrQ0E0RUM7QUFFRDs7R0FFRztBQUNILElBQVksY0FVWDtBQVZELFdBQVksY0FBYztJQUN4Qix1RUFBYyxDQUFBO0lBQ2QsMkZBQXdCLENBQUE7SUFDeEI7Ozs7T0FJRztJQUNILHlFQUFlLENBQUE7SUFDZixtREFBSSxDQUFBO0FBQ04sQ0FBQyxFQVZXLGNBQWMsOEJBQWQsY0FBYyxRQVV6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgU3RhY2ssIFN0YWNrU3RhdHVzIGFzIF9TdGFja1N0YXR1cyB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5cbi8qKlxuICogQSB1dGlsaXR5IGNsYXNzIHRvIGluc3BlY3QgQ2xvdWRGb3JtYXRpb24gc3RhY2sgc3RhdHVzZXMuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tZGVzY3JpYmluZy1zdGFja3MuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgU3RhY2tTdGF0dXMge1xuICBwdWJsaWMgc3RhdGljIGZyb21TdGFja0Rlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBTdGFjaykge1xuICAgIHJldHVybiBuZXcgU3RhY2tTdGF0dXMoZGVzY3JpcHRpb24uU3RhY2tTdGF0dXMhLCBkZXNjcmlwdGlvbi5TdGFja1N0YXR1c1JlYXNvbik7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSByZWFzb24/OiBzdHJpbmcsXG4gICkge1xuICB9XG5cbiAgZ2V0IGlzQ3JlYXRpb25GYWlsdXJlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5hbWUgPT09IF9TdGFja1N0YXR1cy5ST0xMQkFDS19DT01QTEVURSB8fCB0aGlzLm5hbWUgPT09IF9TdGFja1N0YXR1cy5ST0xMQkFDS19GQUlMRUQ7XG4gIH1cblxuICBnZXQgaXNEZWxldGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5hbWUuc3RhcnRzV2l0aCgnREVMRVRFXycpO1xuICB9XG5cbiAgZ2V0IGlzRmFpbHVyZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lLmVuZHNXaXRoKCdGQUlMRUQnKTtcbiAgfVxuXG4gIGdldCBpc0luUHJvZ3Jlc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmFtZS5lbmRzV2l0aCgnX0lOX1BST0dSRVNTJykgJiYgIXRoaXMuaXNSZXZpZXdJblByb2dyZXNzO1xuICB9XG5cbiAgZ2V0IGlzUmV2aWV3SW5Qcm9ncmVzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lID09PSBfU3RhY2tTdGF0dXMuUkVWSUVXX0lOX1BST0dSRVNTO1xuICB9XG5cbiAgZ2V0IGlzTm90Rm91bmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmFtZSA9PT0gJ05PVF9GT1VORCc7XG4gIH1cblxuICBnZXQgaXNEZXBsb3lTdWNjZXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhdGhpcy5pc05vdEZvdW5kICYmXG4gICAgICAodGhpcy5uYW1lID09PSBfU3RhY2tTdGF0dXMuQ1JFQVRFX0NPTVBMRVRFIHx8XG4gICAgICAgIHRoaXMubmFtZSA9PT0gX1N0YWNrU3RhdHVzLlVQREFURV9DT01QTEVURSB8fFxuICAgICAgICB0aGlzLm5hbWUgPT09IF9TdGFja1N0YXR1cy5JTVBPUlRfQ09NUExFVEUpXG4gICAgKTtcbiAgfVxuXG4gIGdldCBpc1JvbGxiYWNrU3VjY2VzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lID09PSBfU3RhY2tTdGF0dXMuUk9MTEJBQ0tfQ09NUExFVEUgfHwgdGhpcy5uYW1lID09PSBfU3RhY2tTdGF0dXMuVVBEQVRFX1JPTExCQUNLX0NPTVBMRVRFO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN0YWNrIGlzIGluIGEgcGF1c2VkIHN0YXRlIGR1ZSB0byBgLS1uby1yb2xsYmFja2AuXG4gICAqXG4gICAqIFRoZSBwb3NzaWJsZSBhY3Rpb25zIGhlcmUgYXJlIHJldHJ5aW5nIGEgbmV3IGAtLW5vLXJvbGxiYWNrYCBkZXBsb3ltZW50LCBvciBpbml0aWF0aW5nIGEgcm9sbGJhY2suXG4gICAqL1xuICBnZXQgcm9sbGJhY2tDaG9pY2UoKTogUm9sbGJhY2tDaG9pY2Uge1xuICAgIHN3aXRjaCAodGhpcy5uYW1lKSB7XG4gICAgICBjYXNlIF9TdGFja1N0YXR1cy5DUkVBVEVfRkFJTEVEOlxuICAgICAgY2FzZSBfU3RhY2tTdGF0dXMuVVBEQVRFX0ZBSUxFRDpcbiAgICAgICAgcmV0dXJuIFJvbGxiYWNrQ2hvaWNlLlNUQVJUX1JPTExCQUNLO1xuICAgICAgY2FzZSBfU3RhY2tTdGF0dXMuVVBEQVRFX1JPTExCQUNLX0ZBSUxFRDpcbiAgICAgICAgcmV0dXJuIFJvbGxiYWNrQ2hvaWNlLkNPTlRJTlVFX1VQREFURV9ST0xMQkFDSztcbiAgICAgIGNhc2UgX1N0YWNrU3RhdHVzLlJPTExCQUNLX0ZBSUxFRDpcbiAgICAgICAgLy8gVW5mb3J0dW5hdGVseSB0aGVyZSBpcyBubyBvcHRpb24gdG8gY29udGludWUgYSBmYWlsZWQgcm9sbGJhY2sgd2l0aG91dFxuICAgICAgICAvLyBhIHN0YWJsZSB0YXJnZXQgc3RhdGUuXG4gICAgICAgIHJldHVybiBSb2xsYmFja0Nob2ljZS5ST0xMQkFDS19GQUlMRUQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gUm9sbGJhY2tDaG9pY2UuTk9ORTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNSb2xsYmFja2FibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFtSb2xsYmFja0Nob2ljZS5TVEFSVF9ST0xMQkFDSywgUm9sbGJhY2tDaG9pY2UuQ09OVElOVUVfVVBEQVRFX1JPTExCQUNLXS5pbmNsdWRlcyh0aGlzLnJvbGxiYWNrQ2hvaWNlKTtcbiAgfVxuXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWUgKyAodGhpcy5yZWFzb24gPyBgICgke3RoaXMucmVhc29ufSlgIDogJycpO1xuICB9XG59XG5cbi8qKlxuICogRGVzY3JpYmUgdGhlIGN1cnJlbnQgcm9sbGJhY2sgb3B0aW9ucyBmb3IgdGhpcyBzdGF0ZVxuICovXG5leHBvcnQgZW51bSBSb2xsYmFja0Nob2ljZSB7XG4gIFNUQVJUX1JPTExCQUNLLFxuICBDT05USU5VRV9VUERBVEVfUk9MTEJBQ0ssXG4gIC8qKlxuICAgKiBBIHNpZ24gdGhhdCBzdGFjayBjcmVhdGlvbiBBTkQgaXRzIHJvbGxiYWNrIGhhdmUgZmFpbGVkLlxuICAgKlxuICAgKiBUaGVyZSBpcyBubyB3YXkgdG8gcmVjb3ZlciBmcm9tIHRoaXMsIG90aGVyIHRoYW4gcmVjcmVhdGluZyB0aGUgc3RhY2suXG4gICAqL1xuICBST0xMQkFDS19GQUlMRUQsXG4gIE5PTkUsXG59XG4iXX0=
@@ -0,0 +1,7 @@
1
+ import { Writable } from 'node:stream';
2
+ export declare class StringWriteStream extends Writable {
3
+ private buffer;
4
+ constructor();
5
+ _write(chunk: any, _encoding: string, callback: (error?: Error | null) => void): void;
6
+ toString(): string;
7
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StringWriteStream = void 0;
4
+ const node_stream_1 = require("node:stream");
5
+ /*
6
+ * Custom writable stream that collects text into a string buffer.
7
+ * Used on classes that take in and directly write to a stream, but
8
+ * we intend to capture the output rather than print.
9
+ */
10
+ class StringWriteStream extends node_stream_1.Writable {
11
+ buffer = [];
12
+ constructor() {
13
+ super();
14
+ }
15
+ _write(chunk, _encoding, callback) {
16
+ this.buffer.push(chunk.toString());
17
+ callback();
18
+ }
19
+ toString() {
20
+ return this.buffer.join('');
21
+ }
22
+ }
23
+ exports.StringWriteStream = StringWriteStream;
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0cmVhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVDO0FBRXZDOzs7O0dBSUc7QUFDSCxNQUFhLGlCQUFrQixTQUFRLHNCQUFRO0lBQ3JDLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFFOUI7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBVSxFQUFFLFNBQWlCLEVBQUUsUUFBd0M7UUFDNUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDbkMsUUFBUSxFQUFFLENBQUM7SUFDYixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNGO0FBZkQsOENBZUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXcml0YWJsZSB9IGZyb20gJ25vZGU6c3RyZWFtJztcblxuLypcbiAqIEN1c3RvbSB3cml0YWJsZSBzdHJlYW0gdGhhdCBjb2xsZWN0cyB0ZXh0IGludG8gYSBzdHJpbmcgYnVmZmVyLlxuICogVXNlZCBvbiBjbGFzc2VzIHRoYXQgdGFrZSBpbiBhbmQgZGlyZWN0bHkgd3JpdGUgdG8gYSBzdHJlYW0sIGJ1dFxuICogd2UgaW50ZW5kIHRvIGNhcHR1cmUgdGhlIG91dHB1dCByYXRoZXIgdGhhbiBwcmludC5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0cmluZ1dyaXRlU3RyZWFtIGV4dGVuZHMgV3JpdGFibGUge1xuICBwcml2YXRlIGJ1ZmZlcjogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgX3dyaXRlKGNodW5rOiBhbnksIF9lbmNvZGluZzogc3RyaW5nLCBjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5idWZmZXIucHVzaChjaHVuay50b1N0cmluZygpKTtcbiAgICBjYWxsYmFjaygpO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5idWZmZXIuam9pbignJyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ import type * as cxapi from '@aws-cdk/cx-api';
2
+ /**
3
+ * @returns an array with the tags available in the stack metadata.
4
+ */
5
+ export declare function tagsForStack(stack: cxapi.CloudFormationStackArtifact): Tag[];
6
+ export interface Tag {
7
+ readonly Key: string;
8
+ readonly Value: string;
9
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tagsForStack = tagsForStack;
4
+ /**
5
+ * @returns an array with the tags available in the stack metadata.
6
+ */
7
+ function tagsForStack(stack) {
8
+ return Object.entries(stack.tags).map(([Key, Value]) => ({ Key, Value }));
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRhZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSxvQ0FFQztBQUxEOztHQUVHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLEtBQXdDO0lBQ25FLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzVFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5cbi8qKlxuICogQHJldHVybnMgYW4gYXJyYXkgd2l0aCB0aGUgdGFncyBhdmFpbGFibGUgaW4gdGhlIHN0YWNrIG1ldGFkYXRhLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGFnc0ZvclN0YWNrKHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QpOiBUYWdbXSB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhzdGFjay50YWdzKS5tYXAoKFtLZXksIFZhbHVlXSkgPT4gKHsgS2V5LCBWYWx1ZSB9KSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbiAgcmVhZG9ubHkgS2V5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IFZhbHVlOiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,52 @@
1
+ import type * as cxapi from '@aws-cdk/cx-api';
2
+ import type { SDK } from './aws-auth/private';
3
+ import type { CloudFormationStack } from './cloudformation';
4
+ import { type IoHelper } from './io/private';
5
+ export declare const DEFAULT_TOOLKIT_STACK_NAME = "CDKToolkit";
6
+ /**
7
+ * Information on the Bootstrap stack of the environment we're deploying to.
8
+ *
9
+ * This class serves to:
10
+ *
11
+ * - Inspect the bootstrap stack, and return various properties of it for successful
12
+ * asset deployment (in case of legacy-synthesized stacks).
13
+ * - Validate the version of the target environment, and nothing else (in case of
14
+ * default-synthesized stacks).
15
+ *
16
+ * An object of this type might represent a bootstrap stack that could not be found.
17
+ * This is not an issue unless any members are used that require the bootstrap stack
18
+ * to have been found, in which case an error is thrown (default-synthesized stacks
19
+ * should never run into this as they don't need information from the bootstrap
20
+ * stack, all information is already encoded into the Cloud Assembly Manifest).
21
+ *
22
+ * Nevertheless, an instance of this class exists to serve as a cache for SSM
23
+ * parameter lookups (otherwise, the "bootstrap stack version" parameter would
24
+ * need to be read repeatedly).
25
+ *
26
+ * Called "ToolkitInfo" for historical reasons.
27
+ *
28
+ */
29
+ export declare abstract class ToolkitInfo {
30
+ static determineName(overrideName?: string): string;
31
+ static lookup(environment: cxapi.Environment, sdk: SDK, ioHelper: IoHelper, stackName: string | undefined): Promise<ToolkitInfo>;
32
+ static fromStack(stack: CloudFormationStack): ToolkitInfo;
33
+ static bootstrapStackNotFoundInfo(stackName: string): ToolkitInfo;
34
+ static bootstrapStackLookupError(stackName: string, e: Error): ToolkitInfo;
35
+ abstract readonly found: boolean;
36
+ abstract readonly bucketUrl: string;
37
+ abstract readonly bucketName: string;
38
+ abstract readonly repositoryName: string;
39
+ abstract readonly version: number;
40
+ abstract readonly variant: string;
41
+ abstract readonly bootstrapStack: CloudFormationStack;
42
+ abstract readonly stackName: string;
43
+ constructor();
44
+ }
45
+ export interface EcrRepositoryInfo {
46
+ repositoryUri: string;
47
+ }
48
+ export interface EcrCredentials {
49
+ username: string;
50
+ password: string;
51
+ endpoint: string;
52
+ }
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ToolkitInfo = exports.DEFAULT_TOOLKIT_STACK_NAME = void 0;
4
+ const util_1 = require("util");
5
+ const chalk = require("chalk");
6
+ const bootstrap_props_1 = require("./bootstrap/bootstrap-props");
7
+ const toolkit_error_1 = require("../toolkit/toolkit-error");
8
+ const cfn_api_1 = require("./deployments/cfn-api");
9
+ const private_1 = require("./io/private");
10
+ exports.DEFAULT_TOOLKIT_STACK_NAME = 'CDKToolkit';
11
+ /**
12
+ * Information on the Bootstrap stack of the environment we're deploying to.
13
+ *
14
+ * This class serves to:
15
+ *
16
+ * - Inspect the bootstrap stack, and return various properties of it for successful
17
+ * asset deployment (in case of legacy-synthesized stacks).
18
+ * - Validate the version of the target environment, and nothing else (in case of
19
+ * default-synthesized stacks).
20
+ *
21
+ * An object of this type might represent a bootstrap stack that could not be found.
22
+ * This is not an issue unless any members are used that require the bootstrap stack
23
+ * to have been found, in which case an error is thrown (default-synthesized stacks
24
+ * should never run into this as they don't need information from the bootstrap
25
+ * stack, all information is already encoded into the Cloud Assembly Manifest).
26
+ *
27
+ * Nevertheless, an instance of this class exists to serve as a cache for SSM
28
+ * parameter lookups (otherwise, the "bootstrap stack version" parameter would
29
+ * need to be read repeatedly).
30
+ *
31
+ * Called "ToolkitInfo" for historical reasons.
32
+ *
33
+ */
34
+ class ToolkitInfo {
35
+ static determineName(overrideName) {
36
+ return overrideName ?? exports.DEFAULT_TOOLKIT_STACK_NAME;
37
+ }
38
+ static async lookup(environment, sdk, ioHelper, stackName) {
39
+ const cfn = sdk.cloudFormation();
40
+ stackName = ToolkitInfo.determineName(stackName);
41
+ try {
42
+ const stack = await (0, cfn_api_1.stabilizeStack)(cfn, ioHelper, stackName);
43
+ if (!stack) {
44
+ await ioHelper.notify(private_1.IO.DEFAULT_TOOLKIT_DEBUG.msg((0, util_1.format)("The environment %s doesn't have the CDK toolkit stack (%s) installed. Use %s to setup your environment for use with the toolkit.", environment.name, stackName, chalk.blue(`cdk bootstrap "${environment.name}"`))));
45
+ return ToolkitInfo.bootstrapStackNotFoundInfo(stackName);
46
+ }
47
+ if (stack.stackStatus.isCreationFailure) {
48
+ // Treat a "failed to create" bootstrap stack as an absent one.
49
+ await ioHelper.notify(private_1.IO.DEFAULT_TOOLKIT_DEBUG.msg((0, util_1.format)('The environment %s has a CDK toolkit stack (%s) that failed to create. Use %s to try provisioning it again.', environment.name, stackName, chalk.blue(`cdk bootstrap "${environment.name}"`))));
50
+ return ToolkitInfo.bootstrapStackNotFoundInfo(stackName);
51
+ }
52
+ return new ExistingToolkitInfo(stack);
53
+ }
54
+ catch (e) {
55
+ return ToolkitInfo.bootstrapStackLookupError(stackName, e);
56
+ }
57
+ }
58
+ static fromStack(stack) {
59
+ return new ExistingToolkitInfo(stack);
60
+ }
61
+ static bootstrapStackNotFoundInfo(stackName) {
62
+ return new BootstrapStackNotFoundInfo(stackName, "This deployment requires a bootstrap stack with a known name; pass '--toolkit-stack-name' or switch to using the 'DefaultStackSynthesizer' (see https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html)");
63
+ }
64
+ static bootstrapStackLookupError(stackName, e) {
65
+ return new BootstrapStackNotFoundInfo(stackName, `This deployment requires a bootstrap stack with a known name, but during its lookup the following error occurred: ${e}; pass \'--toolkit-stack-name\' or switch to using the \'DefaultStackSynthesizer\' (see https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html)`);
66
+ }
67
+ constructor() {
68
+ }
69
+ }
70
+ exports.ToolkitInfo = ToolkitInfo;
71
+ /**
72
+ * Returned when a bootstrap stack is found
73
+ */
74
+ class ExistingToolkitInfo extends ToolkitInfo {
75
+ bootstrapStack;
76
+ found = true;
77
+ constructor(bootstrapStack) {
78
+ super();
79
+ this.bootstrapStack = bootstrapStack;
80
+ }
81
+ get bucketUrl() {
82
+ return `https://${this.requireOutput(bootstrap_props_1.BUCKET_DOMAIN_NAME_OUTPUT)}`;
83
+ }
84
+ get bucketName() {
85
+ return this.requireOutput(bootstrap_props_1.BUCKET_NAME_OUTPUT);
86
+ }
87
+ get repositoryName() {
88
+ return this.requireOutput(bootstrap_props_1.REPOSITORY_NAME_OUTPUT);
89
+ }
90
+ get version() {
91
+ return parseInt(this.bootstrapStack.outputs[bootstrap_props_1.BOOTSTRAP_VERSION_OUTPUT] ?? '0', 10);
92
+ }
93
+ get variant() {
94
+ return this.bootstrapStack.parameters[bootstrap_props_1.BOOTSTRAP_VARIANT_PARAMETER] ?? bootstrap_props_1.DEFAULT_BOOTSTRAP_VARIANT;
95
+ }
96
+ get parameters() {
97
+ return this.bootstrapStack.parameters ?? {};
98
+ }
99
+ get terminationProtection() {
100
+ return this.bootstrapStack.terminationProtection ?? false;
101
+ }
102
+ get stackName() {
103
+ return this.bootstrapStack.stackName;
104
+ }
105
+ /**
106
+ * Prepare an ECR repository for uploading to using Docker
107
+ *
108
+ */
109
+ requireOutput(output) {
110
+ if (!(output in this.bootstrapStack.outputs)) {
111
+ throw new toolkit_error_1.ToolkitError(`The CDK toolkit stack (${this.bootstrapStack.stackName}) does not have an output named ${output}. Use 'cdk bootstrap' to correct this.`);
112
+ }
113
+ return this.bootstrapStack.outputs[output];
114
+ }
115
+ }
116
+ /**
117
+ * Returned when a bootstrap stack could not be found
118
+ *
119
+ * This is not an error in principle, UNTIL one of the members is called that requires
120
+ * the bootstrap stack to have been found, in which case the lookup error is still thrown
121
+ * belatedly.
122
+ *
123
+ * The errors below serve as a last stop-gap message--normally calling code should have
124
+ * checked `toolkit.found` and produced an appropriate error message.
125
+ */
126
+ class BootstrapStackNotFoundInfo extends ToolkitInfo {
127
+ stackName;
128
+ errorMessage;
129
+ found = false;
130
+ constructor(stackName, errorMessage) {
131
+ super();
132
+ this.stackName = stackName;
133
+ this.errorMessage = errorMessage;
134
+ }
135
+ get bootstrapStack() {
136
+ throw new toolkit_error_1.ToolkitError(this.errorMessage);
137
+ }
138
+ get bucketUrl() {
139
+ throw new toolkit_error_1.ToolkitError(this.errorMessage);
140
+ }
141
+ get bucketName() {
142
+ throw new toolkit_error_1.ToolkitError(this.errorMessage);
143
+ }
144
+ get repositoryName() {
145
+ throw new toolkit_error_1.ToolkitError(this.errorMessage);
146
+ }
147
+ get version() {
148
+ throw new toolkit_error_1.ToolkitError(this.errorMessage);
149
+ }
150
+ get variant() {
151
+ throw new toolkit_error_1.ToolkitError(this.errorMessage);
152
+ }
153
+ prepareEcrRepository() {
154
+ throw new toolkit_error_1.ToolkitError(this.errorMessage);
155
+ }
156
+ }
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidG9vbGtpdC1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUE4QjtBQUU5QiwrQkFBK0I7QUFFL0IsaUVBT3FDO0FBRXJDLDREQUF3RDtBQUN4RCxtREFBdUQ7QUFDdkQsMENBQWlEO0FBRXBDLFFBQUEsMEJBQTBCLEdBQUcsWUFBWSxDQUFDO0FBRXZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ0gsTUFBc0IsV0FBVztJQUN4QixNQUFNLENBQUMsYUFBYSxDQUFDLFlBQXFCO1FBQy9DLE9BQU8sWUFBWSxJQUFJLGtDQUEwQixDQUFDO0lBQ3BELENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDeEIsV0FBOEIsRUFDOUIsR0FBUSxFQUNSLFFBQWtCLEVBQ2xCLFNBQTZCO1FBRTdCLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNqQyxTQUFTLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUM7WUFDSCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUEsd0JBQWMsRUFBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWCxNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBRSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FDaEQsSUFBQSxhQUFNLEVBQ0osa0lBQWtJLEVBQ2xJLFdBQVcsQ0FBQyxJQUFJLEVBQ2hCLFNBQVMsRUFDVCxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FDbEQsQ0FDRixDQUFDLENBQUM7Z0JBQ0gsT0FBTyxXQUFXLENBQUMsMEJBQTBCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0QsQ0FBQztZQUNE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b3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHR5cGUgeyBTREsgfSBmcm9tICcuL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHtcbiAgQk9PVFNUUkFQX1ZBUklBTlRfUEFSQU1FVEVSLFxuICBCT09UU1RSQVBfVkVSU0lPTl9PVVRQVVQsXG4gIEJVQ0tFVF9ET01BSU5fTkFNRV9PVVRQVVQsXG4gIEJVQ0tFVF9OQU1FX09VVFBVVCxcbiAgREVGQVVMVF9CT09UU1RSQVBfVkFSSUFOVCxcbiAgUkVQT1NJVE9SWV9OQU1FX09VVFBVVCxcbn0gZnJvbSAnLi9ib290c3RyYXAvYm9vdHN0cmFwLXByb3BzJztcbmltcG9ydCB0eXBlIHsgQ2xvdWRGb3JtYXRpb25TdGFjayB9IGZyb20gJy4vY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IHN0YWJpbGl6ZVN0YWNrIH0gZnJvbSAnLi9kZXBsb3ltZW50cy9jZm4tYXBpJztcbmltcG9ydCB7IElPLCB0eXBlIElvSGVscGVyIH0gZnJvbSAnLi9pby9wcml2YXRlJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVE9PTEtJVF9TVEFDS19OQU1FID0gJ0NES1Rvb2xraXQnO1xuXG4vKipcbiAqIEluZm9ybWF0aW9uIG9uIHRoZSBCb290c3RyYXAgc3RhY2sgb2YgdGhlIGVudmlyb25tZW50IHdlJ3JlIGRlcGxveWluZyB0by5cbiAqXG4gKiBUaGlzIGNsYXNzIHNlcnZlcyB0bzpcbiAqXG4gKiAtIEluc3BlY3QgdGhlIGJvb3RzdHJhcCBzdGFjaywgYW5kIHJldHVybiB2YXJpb3VzIHByb3BlcnRpZXMgb2YgaXQgZm9yIHN1Y2Nlc3NmdWxcbiAqICAgYXNzZXQgZGVwbG95bWVudCAoaW4gY2FzZSBvZiBsZWdhY3ktc3ludGhlc2l6ZWQgc3RhY2tzKS5cbiAqIC0gVmFsaWRhdGUgdGhlIHZlcnNpb24gb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudCwgYW5kIG5vdGhpbmcgZWxzZSAoaW4gY2FzZSBvZlxuICogICBkZWZhdWx0LXN5bnRoZXNpemVkIHN0YWNrcykuXG4gKlxuICogQW4gb2JqZWN0IG9mIHRoaXMgdHlwZSBtaWdodCByZXByZXNlbnQgYSBib290c3RyYXAgc3RhY2sgdGhhdCBjb3VsZCBub3QgYmUgZm91bmQuXG4gKiBUaGlzIGlzIG5vdCBhbiBpc3N1ZSB1bmxlc3MgYW55IG1lbWJlcnMgYXJlIHVzZWQgdGhhdCByZXF1aXJlIHRoZSBib290c3RyYXAgc3RhY2tcbiAqIHRvIGhhdmUgYmVlbiBmb3VuZCwgaW4gd2hpY2ggY2FzZSBhbiBlcnJvciBpcyB0aHJvd24gKGRlZmF1bHQtc3ludGhlc2l6ZWQgc3RhY2tzXG4gKiBzaG91bGQgbmV2ZXIgcnVuIGludG8gdGhpcyBhcyB0aGV5IGRvbid0IG5lZWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgYm9vdHN0cmFwXG4gKiBzdGFjaywgYWxsIGluZm9ybWF0aW9uIGlzIGFscmVhZHkgZW5jb2RlZCBpbnRvIHRoZSBDbG91ZCBBc3NlbWJseSBNYW5pZmVzdCkuXG4gKlxuICogTmV2ZXJ0aGVsZXNzLCBhbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIGV4aXN0cyB0byBzZXJ2ZSBhcyBhIGNhY2hlIGZvciBTU01cbiAqIHBhcmFtZXRlciBsb29rdXBzIChvdGhlcndpc2UsIHRoZSBcImJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uXCIgcGFyYW1ldGVyIHdvdWxkXG4gKiBuZWVkIHRvIGJlIHJlYWQgcmVwZWF0ZWRseSkuXG4gKlxuICogQ2FsbGVkIFwiVG9vbGtpdEluZm9cIiBmb3IgaGlzdG9yaWNhbCByZWFzb25zLlxuICpcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRvb2xraXRJbmZvIHtcbiAgcHVibGljIHN0YXRpYyBkZXRlcm1pbmVOYW1lKG92ZXJyaWRlTmFtZT86IHN0cmluZykge1xuICAgIHJldHVybiBvdmVycmlkZU5hbWUgPz8gREVGQVVMVF9UT09MS0lUX1NUQUNLX05BTUU7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFzeW5jIGxvb2t1cChcbiAgICBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQsXG4gICAgc2RrOiBTREssXG4gICAgaW9IZWxwZXI6IElvSGVscGVyLFxuICAgIHN0YWNrTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICApOiBQcm9taXNlPFRvb2xraXRJbmZvPiB7XG4gICAgY29uc3QgY2ZuID0gc2RrLmNsb3VkRm9ybWF0aW9uKCk7XG4gICAgc3RhY2tOYW1lID0gVG9vbGtpdEluZm8uZGV0ZXJtaW5lTmFtZShzdGFja05hbWUpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGFjayA9IGF3YWl0IHN0YWJpbGl6ZVN0YWNrKGNmbiwgaW9IZWxwZXIsIHN0YWNrTmFtZSk7XG4gICAgICBpZiAoIXN0YWNrKSB7XG4gICAgICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5ERUZBVUxUX1RPT0xLSVRfREVCVUcubXNnKFxuICAgICAgICAgIGZvcm1hdChcbiAgICAgICAgICAgIFwiVGhlIGVudmlyb25tZW50ICVzIGRvZXNuJ3QgaGF2ZSB0aGUgQ0RLIHRvb2xraXQgc3RhY2sgKCVzKSBpbnN0YWxsZWQuIFVzZSAlcyB0byBzZXR1cCB5b3VyIGVudmlyb25tZW50IGZvciB1c2Ugd2l0aCB0aGUgdG9vbGtpdC5cIixcbiAgICAgICAgICAgIGVudmlyb25tZW50Lm5hbWUsXG4gICAgICAgICAgICBzdGFja05hbWUsXG4gICAgICAgICAgICBjaGFsay5ibHVlKGBjZGsgYm9vdHN0cmFwIFwiJHtlbnZpcm9ubWVudC5uYW1lfVwiYCksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSk7XG4gICAgICAgIHJldHVybiBUb29sa2l0SW5mby5ib290c3RyYXBTdGFja05vdEZvdW5kSW5mbyhzdGFja05hbWUpO1xuICAgICAgfVxuICAgICAgaWYgKHN0YWNrLnN0YWNrU3RhdHVzLmlzQ3JlYXRpb25GYWlsdXJlKSB7XG4gICAgICAgIC8vIFRyZWF0IGEgXCJmYWlsZWQgdG8gY3JlYXRlXCIgYm9vdHN0cmFwIHN0YWNrIGFzIGFuIGFic2VudCBvbmUuXG4gICAgICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5ERUZBVUxUX1RPT0xLSVRfREVCVUcubXNnKFxuICAgICAgICAgIGZvcm1hdChcbiAgICAgICAgICAgICdUaGUgZW52aXJvbm1lbnQgJXMgaGFzIGEgQ0RLIHRvb2xraXQgc3RhY2sgKCVzKSB0aGF0IGZhaWxlZCB0byBjcmVhdGUuIFVzZSAlcyB0byB0cnkgcHJvdmlzaW9uaW5nIGl0IGFnYWluLicsXG4gICAgICAgICAgICBlbnZpcm9ubWVudC5uYW1lLFxuICAgICAgICAgICAgc3RhY2tOYW1lLFxuICAgICAgICAgICAgY2hhbGsuYmx1ZShgY2RrIGJvb3RzdHJhcCBcIiR7ZW52aXJvbm1lbnQubmFtZX1cImApLFxuICAgICAgICAgICksXG4gICAgICAgICkpO1xuICAgICAgICByZXR1cm4gVG9vbGtpdEluZm8uYm9vdHN0cmFwU3RhY2tOb3RGb3VuZEluZm8oc3RhY2tOYW1lKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ldyBFeGlzdGluZ1Rvb2xraXRJbmZvKHN0YWNrKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHJldHVybiBUb29sa2l0SW5mby5ib290c3RyYXBTdGFja0xvb2t1cEVycm9yKHN0YWNrTmFtZSwgZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tU3RhY2soc3RhY2s6IENsb3VkRm9ybWF0aW9uU3RhY2spOiBUb29sa2l0SW5mbyB7XG4gICAgcmV0dXJuIG5ldyBFeGlzdGluZ1Rvb2xraXRJbmZvKHN0YWNrKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYm9vdHN0cmFwU3RhY2tOb3RGb3VuZEluZm8oc3RhY2tOYW1lOiBzdHJpbmcpOiBUb29sa2l0SW5mbyB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBTdGFja05vdEZvdW5kSW5mbyhcbiAgICAgIHN0YWNrTmFtZSxcbiAgICAgIFwiVGhpcyBkZXBsb3ltZW50IHJlcXVpcmVzIGEgYm9vdHN0cmFwIHN0YWNrIHdpdGggYSBrbm93biBuYW1lOyBwYXNzICctLXRvb2xraXQtc3RhY2stbmFtZScgb3Igc3dpdGNoIHRvIHVzaW5nIHRoZSAnRGVmYXVsdFN0YWNrU3ludGhlc2l6ZXInIChzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9sYXRlc3QvZ3VpZGUvYm9vdHN0cmFwcGluZy5odG1sKVwiLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGJvb3RzdHJhcFN0YWNrTG9va3VwRXJyb3Ioc3RhY2tOYW1lOiBzdHJpbmcsIGU6IEVycm9yKTogVG9vbGtpdEluZm8ge1xuICAgIHJldHVybiBuZXcgQm9vdHN0cmFwU3RhY2tOb3RGb3VuZEluZm8oXG4gICAgICBzdGFja05hbWUsXG4gICAgICBgVGhpcyBkZXBsb3ltZW50IHJlcXVpcmVzIGEgYm9vdHN0cmFwIHN0YWNrIHdpdGggYSBrbm93biBuYW1lLCBidXQgZHVyaW5nIGl0cyBsb29rdXAgdGhlIGZvbGxvd2luZyBlcnJvciBvY2N1cnJlZDogJHtlfTsgcGFzcyBcXCctLXRvb2xraXQtc3RhY2stbmFtZVxcJyBvciBzd2l0Y2ggdG8gdXNpbmcgdGhlIFxcJ0RlZmF1bHRTdGFja1N5bnRoZXNpemVyXFwnIChzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9sYXRlc3QvZ3VpZGUvYm9vdHN0cmFwcGluZy5odG1sKWAsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBmb3VuZDogYm9vbGVhbjtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGJ1Y2tldFVybDogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYnVja2V0TmFtZTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcmVwb3NpdG9yeU5hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHZlcnNpb246IG51bWJlcjtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHZhcmlhbnQ6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGJvb3RzdHJhcFN0YWNrOiBDbG91ZEZvcm1hdGlvblN0YWNrO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5lZCB3aGVuIGEgYm9vdHN0cmFwIHN0YWNrIGlzIGZvdW5kXG4gKi9cbmNsYXNzIEV4aXN0aW5nVG9vbGtpdEluZm8gZXh0ZW5kcyBUb29sa2l0SW5mbyB7XG4gIHB1YmxpYyByZWFkb25seSBmb3VuZCA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGJvb3RzdHJhcFN0YWNrOiBDbG91ZEZvcm1hdGlvblN0YWNrKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYnVja2V0VXJsKCkge1xuICAgIHJldHVybiBgaHR0cHM6Ly8ke3RoaXMucmVxdWlyZU91dHB1dChCVUNLRVRfRE9NQUlOX05BTUVfT1VUUFVUKX1gO1xuICB9XG5cbiAgcHVibGljIGdldCBidWNrZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnJlcXVpcmVPdXRwdXQoQlVDS0VUX05BTUVfT1VUUFVUKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVwb3NpdG9yeU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWlyZU91dHB1dChSRVBPU0lUT1JZX05BTUVfT1VUUFVUKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmVyc2lvbigpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQodGhpcy5ib290c3RyYXBTdGFjay5vdXRwdXRzW0JPT1RTVFJBUF9WRVJTSU9OX09VVFBVVF0gPz8gJzAnLCAxMCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhcmlhbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYm9vdHN0cmFwU3RhY2sucGFyYW1ldGVyc1tCT09UU1RSQVBfVkFSSUFOVF9QQVJBTUVURVJdID8/IERFRkFVTFRfQk9PVFNUUkFQX1ZBUklBTlQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBhcmFtZXRlcnMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuYm9vdHN0cmFwU3RhY2sucGFyYW1ldGVycyA/PyB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGVybWluYXRpb25Qcm90ZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmJvb3RzdHJhcFN0YWNrLnRlcm1pbmF0aW9uUHJvdGVjdGlvbiA/PyBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhY2tOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYm9vdHN0cmFwU3RhY2suc3RhY2tOYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmUgYW4gRUNSIHJlcG9zaXRvcnkgZm9yIHVwbG9hZGluZyB0byB1c2luZyBEb2NrZXJcbiAgICpcbiAgICovXG4gIHByaXZhdGUgcmVxdWlyZU91dHB1dChvdXRwdXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCEob3V0cHV0IGluIHRoaXMuYm9vdHN0cmFwU3RhY2sub3V0cHV0cykpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAgIGBUaGUgQ0RLIHRvb2xraXQgc3RhY2sgKCR7dGhpcy5ib290c3RyYXBTdGFjay5zdGFja05hbWV9KSBkb2VzIG5vdCBoYXZlIGFuIG91dHB1dCBuYW1lZCAke291dHB1dH0uIFVzZSAnY2RrIGJvb3RzdHJhcCcgdG8gY29ycmVjdCB0aGlzLmAsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5ib290c3RyYXBTdGFjay5vdXRwdXRzW291dHB1dF07XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5lZCB3aGVuIGEgYm9vdHN0cmFwIHN0YWNrIGNvdWxkIG5vdCBiZSBmb3VuZFxuICpcbiAqIFRoaXMgaXMgbm90IGFuIGVycm9yIGluIHByaW5jaXBsZSwgVU5USUwgb25lIG9mIHRoZSBtZW1iZXJzIGlzIGNhbGxlZCB0aGF0IHJlcXVpcmVzXG4gKiB0aGUgYm9vdHN0cmFwIHN0YWNrIHRvIGhhdmUgYmVlbiBmb3VuZCwgaW4gd2hpY2ggY2FzZSB0aGUgbG9va3VwIGVycm9yIGlzIHN0aWxsIHRocm93blxuICogYmVsYXRlZGx5LlxuICpcbiAqIFRoZSBlcnJvcnMgYmVsb3cgc2VydmUgYXMgYSBsYXN0IHN0b3AtZ2FwIG1lc3NhZ2UtLW5vcm1hbGx5IGNhbGxpbmcgY29kZSBzaG91bGQgaGF2ZVxuICogY2hlY2tlZCBgdG9vbGtpdC5mb3VuZGAgYW5kIHByb2R1Y2VkIGFuIGFwcHJvcHJpYXRlIGVycm9yIG1lc3NhZ2UuXG4gKi9cbmNsYXNzIEJvb3RzdHJhcFN0YWNrTm90Rm91bmRJbmZvIGV4dGVuZHMgVG9vbGtpdEluZm8ge1xuICBwdWJsaWMgcmVhZG9ubHkgZm91bmQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlcnJvck1lc3NhZ2U6IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYm9vdHN0cmFwU3RhY2soKTogQ2xvdWRGb3JtYXRpb25TdGFjayB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcih0aGlzLmVycm9yTWVzc2FnZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGJ1Y2tldFVybCgpOiBzdHJpbmcge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IodGhpcy5lcnJvck1lc3NhZ2UpO1xuICB9XG5cbiAgcHVibGljIGdldCBidWNrZXROYW1lKCk6IHN0cmluZyB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcih0aGlzLmVycm9yTWVzc2FnZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlcG9zaXRvcnlOYW1lKCk6IHN0cmluZyB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcih0aGlzLmVycm9yTWVzc2FnZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZlcnNpb24oKTogbnVtYmVyIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKHRoaXMuZXJyb3JNZXNzYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFyaWFudCgpOiBzdHJpbmcge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IodGhpcy5lcnJvck1lc3NhZ2UpO1xuICB9XG5cbiAgcHVibGljIHByZXBhcmVFY3JSZXBvc2l0b3J5KCk6IFByb21pc2U8RWNyUmVwb3NpdG9yeUluZm8+IHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKHRoaXMuZXJyb3JNZXNzYWdlKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVjclJlcG9zaXRvcnlJbmZvIHtcbiAgcmVwb3NpdG9yeVVyaTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVjckNyZWRlbnRpYWxzIHtcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgcGFzc3dvcmQ6IHN0cmluZztcbiAgZW5kcG9pbnQ6IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import type { CloudAssembly } from '@aws-cdk/cx-api';
2
+ /**
3
+ * Source information on a construct (class fqn and version)
4
+ */
5
+ export interface ConstructInfo {
6
+ readonly fqn: string;
7
+ readonly version: string;
8
+ }
9
+ /**
10
+ * A node in the construct tree.
11
+ */
12
+ export interface ConstructTreeNode {
13
+ readonly id: string;
14
+ readonly path: string;
15
+ readonly children?: {
16
+ [key: string]: ConstructTreeNode;
17
+ };
18
+ readonly attributes?: {
19
+ [key: string]: any;
20
+ };
21
+ /**
22
+ * Information on the construct class that led to this node, if available
23
+ */
24
+ readonly constructInfo?: ConstructInfo;
25
+ }
26
+ /**
27
+ * Whether the provided predicate is true for at least one element in the construct (sub-)tree.
28
+ */
29
+ export declare function some(node: ConstructTreeNode | undefined, predicate: (n: ConstructTreeNode) => boolean): boolean;
30
+ export declare function loadTree(assembly: CloudAssembly, trace: (msg: string) => Promise<void>): Promise<ConstructTreeNode | undefined>;
31
+ export declare function loadTreeFromDir(outdir: string, trace: (msg: string) => void): ConstructTreeNode | undefined;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.some = some;
4
+ exports.loadTree = loadTree;
5
+ exports.loadTreeFromDir = loadTreeFromDir;
6
+ const path = require("node:path");
7
+ const fs = require("fs-extra");
8
+ /**
9
+ * Whether the provided predicate is true for at least one element in the construct (sub-)tree.
10
+ */
11
+ function some(node, predicate) {
12
+ return node != null && (predicate(node) || findInChildren());
13
+ function findInChildren() {
14
+ return Object.values(node?.children ?? {}).some(child => some(child, predicate));
15
+ }
16
+ }
17
+ async function loadTree(assembly, trace) {
18
+ try {
19
+ const outdir = assembly.directory;
20
+ const fileName = assembly.tree()?.file;
21
+ return fileName ? fs.readJSONSync(path.join(outdir, fileName)).tree : {};
22
+ }
23
+ catch (e) {
24
+ await trace(`Failed to get tree.json file: ${e}. Proceeding with empty tree.`);
25
+ return undefined;
26
+ }
27
+ }
28
+ function loadTreeFromDir(outdir, trace) {
29
+ try {
30
+ return fs.readJSONSync(path.join(outdir, 'tree.json')).tree;
31
+ }
32
+ catch (e) {
33
+ trace(`Failed to get tree.json file: ${e}. Proceeding with empty tree.`);
34
+ return undefined;
35
+ }
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRyZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUE4QkEsb0JBTUM7QUFFRCw0QkFTQztBQUVELDBDQU9DO0FBeERELGtDQUFrQztBQUVsQywrQkFBK0I7QUF5Qi9COztHQUVHO0FBQ0gsU0FBZ0IsSUFBSSxDQUFDLElBQW1DLEVBQUUsU0FBNEM7SUFDcEcsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFFN0QsU0FBUyxjQUFjO1FBQ3JCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0FBQ0gsQ0FBQztBQUVNLEtBQUssVUFBVSxRQUFRLENBQUMsUUFBdUIsRUFBRSxLQUFxQztJQUMzRixJQUFJLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUM7UUFDdkMsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFFLEVBQXdCLENBQUM7SUFDbEcsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxNQUFNLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLE1BQWMsRUFBRSxLQUE0QjtJQUMxRSxJQUFJLENBQUM7UUFDSCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDOUQsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxLQUFLLENBQUMsaUNBQWlDLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUN6RSxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB0eXBlIHsgQ2xvdWRBc3NlbWJseSB9IGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5cbi8qKlxuICogU291cmNlIGluZm9ybWF0aW9uIG9uIGEgY29uc3RydWN0IChjbGFzcyBmcW4gYW5kIHZlcnNpb24pXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RydWN0SW5mbyB7XG4gIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBub2RlIGluIHRoZSBjb25zdHJ1Y3QgdHJlZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25zdHJ1Y3RUcmVlTm9kZSB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgcmVhZG9ubHkgY2hpbGRyZW4/OiB7IFtrZXk6IHN0cmluZ106IENvbnN0cnVjdFRyZWVOb2RlIH07XG4gIHJlYWRvbmx5IGF0dHJpYnV0ZXM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIC8qKlxuICAgKiBJbmZvcm1hdGlvbiBvbiB0aGUgY29uc3RydWN0IGNsYXNzIHRoYXQgbGVkIHRvIHRoaXMgbm9kZSwgaWYgYXZhaWxhYmxlXG4gICAqL1xuICByZWFkb25seSBjb25zdHJ1Y3RJbmZvPzogQ29uc3RydWN0SW5mbztcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRoZSBwcm92aWRlZCBwcmVkaWNhdGUgaXMgdHJ1ZSBmb3IgYXQgbGVhc3Qgb25lIGVsZW1lbnQgaW4gdGhlIGNvbnN0cnVjdCAoc3ViLSl0cmVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc29tZShub2RlOiBDb25zdHJ1Y3RUcmVlTm9kZSB8IHVuZGVmaW5lZCwgcHJlZGljYXRlOiAobjogQ29uc3RydWN0VHJlZU5vZGUpID0+IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgcmV0dXJuIG5vZGUgIT0gbnVsbCAmJiAocHJlZGljYXRlKG5vZGUpIHx8IGZpbmRJbkNoaWxkcmVuKCkpO1xuXG4gIGZ1bmN0aW9uIGZpbmRJbkNoaWxkcmVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKG5vZGU/LmNoaWxkcmVuID8/IHt9KS5zb21lKGNoaWxkID0+IHNvbWUoY2hpbGQsIHByZWRpY2F0ZSkpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkVHJlZShhc3NlbWJseTogQ2xvdWRBc3NlbWJseSwgdHJhY2U6IChtc2c6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPik6IFByb21pc2U8Q29uc3RydWN0VHJlZU5vZGUgfCB1bmRlZmluZWQgPiB7XG4gIHRyeSB7XG4gICAgY29uc3Qgb3V0ZGlyID0gYXNzZW1ibHkuZGlyZWN0b3J5O1xuICAgIGNvbnN0IGZpbGVOYW1lID0gYXNzZW1ibHkudHJlZSgpPy5maWxlO1xuICAgIHJldHVybiBmaWxlTmFtZSA/IGZzLnJlYWRKU09OU3luYyhwYXRoLmpvaW4ob3V0ZGlyLCBmaWxlTmFtZSkpLnRyZWUgOiAoe30gYXMgQ29uc3RydWN0VHJlZU5vZGUpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgYXdhaXQgdHJhY2UoYEZhaWxlZCB0byBnZXQgdHJlZS5qc29uIGZpbGU6ICR7ZX0uIFByb2NlZWRpbmcgd2l0aCBlbXB0eSB0cmVlLmApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRUcmVlRnJvbURpcihvdXRkaXI6IHN0cmluZywgdHJhY2U6IChtc2c6IHN0cmluZykgPT4gdm9pZCk6IENvbnN0cnVjdFRyZWVOb2RlIHwgdW5kZWZpbmVkIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZnMucmVhZEpTT05TeW5jKHBhdGguam9pbihvdXRkaXIsICd0cmVlLmpzb24nKSkudHJlZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRyYWNlKGBGYWlsZWQgdG8gZ2V0IHRyZWUuanNvbiBmaWxlOiAke2V9LiBQcm9jZWVkaW5nIHdpdGggZW1wdHkgdHJlZS5gKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './work-graph';
2
+ export * from './work-graph-builder';
3
+ export * from './work-graph-types';