@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
@@ -53,22 +53,26 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
53
53
  });
54
54
  Object.defineProperty(exports, "__esModule", { value: true });
55
55
  exports.CloudAssemblySourceBuilder = void 0;
56
+ const path = require("path");
56
57
  const cxapi = require("@aws-cdk/cx-api");
57
58
  const fs = require("fs-extra");
58
59
  const context_aware_source_1 = require("./context-aware-source");
59
60
  const exec_1 = require("./exec");
60
61
  const prepare_source_1 = require("./prepare-source");
61
- const private_1 = require("../../io/private");
62
- const shared_private_1 = require("../../shared-private");
63
- const shared_public_1 = require("../../shared-public");
62
+ const toolkit_error_1 = require("../../../toolkit/toolkit-error");
64
63
  const readable_assembly_1 = require("./readable-assembly");
64
+ const context_1 = require("../../context");
65
+ const private_1 = require("../../io/private");
66
+ const rwlock_1 = require("../../rwlock");
67
+ const settings_1 = require("../../settings");
65
68
  class CloudAssemblySourceBuilder {
66
69
  /**
67
70
  * Create a Cloud Assembly from a Cloud Assembly builder function.
68
71
  *
69
- * A temporary output directory will be created if no output directory is
70
- * explicitly given. This directory will be cleaned up if synthesis fails, or
71
- * when the Cloud Assembly produced by this source is disposed.
72
+ * The output directory will be evaluated with respect to the working
73
+ * directory if relative. If not given, it will synthesize into a temporary
74
+ * system directory. The temporary directory will be cleaned up, unless
75
+ * `disposeOutdir: false`.
72
76
  *
73
77
  * A write lock will be acquired on the output directory for the duration of
74
78
  * the CDK app synthesis (which means that no two apps can synthesize at the
@@ -82,17 +86,19 @@ class CloudAssemblySourceBuilder {
82
86
  */
83
87
  async fromAssemblyBuilder(builder, props = {}) {
84
88
  const services = await this.sourceBuilderServices();
85
- const context = new shared_private_1.Context({ bag: new shared_private_1.Settings(props.context ?? {}) });
89
+ const context = new context_1.Context({ bag: new settings_1.Settings(props.context ?? {}) });
86
90
  const contextAssemblyProps = {
87
91
  services,
88
92
  context,
89
93
  lookups: props.lookups,
90
94
  };
95
+ const workingDirectory = props.workingDirectory ?? process.cwd();
96
+ const outdir = props.outdir ? path.resolve(workingDirectory, props.outdir) : undefined;
91
97
  return new context_aware_source_1.ContextAwareCloudAssemblySource({
92
98
  produce: async () => {
93
99
  const env_1 = { stack: [], error: void 0, hasError: false };
94
100
  try {
95
- const execution = __addDisposableResource(env_1, await prepare_source_1.ExecutionEnvironment.create(services, { outdir: props.outdir }), true);
101
+ const execution = __addDisposableResource(env_1, await prepare_source_1.ExecutionEnvironment.create(services, { outdir }), true);
96
102
  const env = await execution.defaultEnvVars();
97
103
  const assembly = await execution.changeDir(async () => execution.withContext(context.all, env, props.synthOptions ?? {}, async (envWithContext, ctx) => execution.withEnv(envWithContext, async () => {
98
104
  try {
@@ -103,19 +109,20 @@ class CloudAssemblySourceBuilder {
103
109
  }
104
110
  catch (error) {
105
111
  // re-throw toolkit errors unchanged
106
- if (shared_public_1.ToolkitError.isToolkitError(error)) {
112
+ if (toolkit_error_1.ToolkitError.isToolkitError(error)) {
107
113
  throw error;
108
114
  }
109
115
  // otherwise, wrap into an assembly error
110
- throw shared_public_1.AssemblyError.withCause('Assembly builder failed', error);
116
+ throw toolkit_error_1.AssemblyError.withCause('Assembly builder failed', error);
111
117
  }
112
- })), props.workingDirectory);
118
+ })), workingDirectory);
113
119
  // Convert what we got to the definitely correct type we're expecting, a cxapi.CloudAssembly
114
120
  const asm = cxapi.CloudAssembly.isCloudAssembly(assembly)
115
121
  ? assembly
116
122
  : await (0, prepare_source_1.assemblyFromDirectory)(assembly.directory, services.ioHelper, props.loadAssemblyOptions);
117
123
  const success = await execution.markSuccessful();
118
- return new readable_assembly_1.ReadableCloudAssembly(asm, success.readLock, { deleteOnDispose: execution.outDirIsTemporary });
124
+ const deleteOnDispose = props.disposeOutdir ?? execution.outDirIsTemporary;
125
+ return new readable_assembly_1.ReadableCloudAssembly(asm, success.readLock, { deleteOnDispose });
119
126
  }
120
127
  catch (e_1) {
121
128
  env_1.error = e_1;
@@ -143,14 +150,14 @@ class CloudAssemblySourceBuilder {
143
150
  const services = await this.sourceBuilderServices();
144
151
  const contextAssemblyProps = {
145
152
  services,
146
- context: new shared_private_1.Context(), // @todo there is probably a difference between contextaware and contextlookup sources
153
+ context: new context_1.Context(), // @todo there is probably a difference between contextaware and contextlookup sources
147
154
  lookups: false,
148
155
  };
149
156
  return new context_aware_source_1.ContextAwareCloudAssemblySource({
150
157
  produce: async () => {
151
158
  // @todo build
152
159
  await services.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0150.msg('--app points to a cloud assembly, so we bypass synth'));
153
- const readLock = await new shared_private_1.RWLock(directory).acquireRead();
160
+ const readLock = await new rwlock_1.RWLock(directory).acquireRead();
154
161
  try {
155
162
  const asm = await (0, prepare_source_1.assemblyFromDirectory)(directory, services.ioHelper, props.loadAssemblyOptions);
156
163
  return new readable_assembly_1.ReadableCloudAssembly(asm, readLock, { deleteOnDispose: false });
@@ -165,9 +172,10 @@ class CloudAssemblySourceBuilder {
165
172
  /**
166
173
  * Use a directory containing an AWS CDK app as source.
167
174
  *
168
- * A temporary output directory will be created if no output directory is
169
- * explicitly given. This directory will be cleaned up if synthesis fails, or
170
- * when the Cloud Assembly produced by this source is disposed.
175
+ * The output directory will be evaluated with respect to the working
176
+ * directory if relative. If not given, it will synthesize into a `cdk.out`
177
+ * subdirectory. This directory will not be cleaned up, unless
178
+ * `disposeOutdir: true`.
171
179
  *
172
180
  * A write lock will be acquired on the output directory for the duration of
173
181
  * the CDK app synthesis (which means that no two apps can synthesize at the
@@ -181,12 +189,14 @@ class CloudAssemblySourceBuilder {
181
189
  async fromCdkApp(app, props = {}) {
182
190
  const services = await this.sourceBuilderServices();
183
191
  // @todo this definitely needs to read files from the CWD
184
- const context = new shared_private_1.Context({ bag: new shared_private_1.Settings(props.context ?? {}) });
192
+ const context = new context_1.Context({ bag: new settings_1.Settings(props.context ?? {}) });
185
193
  const contextAssemblyProps = {
186
194
  services,
187
195
  context,
188
196
  lookups: props.lookups,
189
197
  };
198
+ const workingDirectory = props.workingDirectory ?? process.cwd();
199
+ const outdir = path.resolve(workingDirectory, props.outdir ?? 'cdk.out');
190
200
  return new context_aware_source_1.ContextAwareCloudAssemblySource({
191
201
  produce: async () => {
192
202
  const env_2 = { stack: [], error: void 0, hasError: false };
@@ -196,16 +206,18 @@ class CloudAssemblySourceBuilder {
196
206
  // if (build) {
197
207
  // await execInChildProcess(build, { cwd: props.workingDirectory });
198
208
  // }
199
- const outdir = props.outdir ?? 'cdk.out';
200
209
  try {
201
210
  fs.mkdirpSync(outdir);
202
211
  }
203
212
  catch (e) {
204
- throw new shared_public_1.ToolkitError(`Could not create output directory at '${outdir}' (${e.message}).`);
213
+ throw new toolkit_error_1.ToolkitError(`Could not create output directory at '${outdir}' (${e.message}).`);
205
214
  }
206
215
  const execution = __addDisposableResource(env_2, await prepare_source_1.ExecutionEnvironment.create(services, { outdir }), true);
207
216
  const commandLine = await execution.guessExecutable(app);
208
- const env = await execution.defaultEnvVars();
217
+ const env = noUndefined({
218
+ ...await execution.defaultEnvVars(),
219
+ ...props.env,
220
+ });
209
221
  return await execution.withContext(context.all, env, props.synthOptions, async (envWithContext, _ctx) => {
210
222
  await (0, exec_1.execInChildProcess)(commandLine.join(' '), {
211
223
  eventPublisher: async (type, line) => {
@@ -219,11 +231,12 @@ class CloudAssemblySourceBuilder {
219
231
  }
220
232
  },
221
233
  extraEnv: envWithContext,
222
- cwd: props.workingDirectory,
234
+ cwd: workingDirectory,
223
235
  });
224
236
  const asm = await (0, prepare_source_1.assemblyFromDirectory)(outdir, services.ioHelper, props.loadAssemblyOptions);
225
237
  const success = await execution.markSuccessful();
226
- return new readable_assembly_1.ReadableCloudAssembly(asm, success.readLock, { deleteOnDispose: execution.outDirIsTemporary });
238
+ const deleteOnDispose = props.disposeOutdir ?? execution.outDirIsTemporary;
239
+ return new readable_assembly_1.ReadableCloudAssembly(asm, success.readLock, { deleteOnDispose });
227
240
  });
228
241
  }
229
242
  catch (e_2) {
@@ -240,4 +253,10 @@ class CloudAssemblySourceBuilder {
240
253
  }
241
254
  }
242
255
  exports.CloudAssemblySourceBuilder = CloudAssemblySourceBuilder;
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXlDO0FBQ3pDLCtCQUErQjtBQUcvQixpRUFBeUU7QUFDekUsaUNBQTRDO0FBQzVDLHFEQUErRTtBQUUvRSw4Q0FBc0M7QUFDdEMseURBQWlFO0FBQ2pFLHVEQUFrRTtBQUVsRSwyREFBNEQ7QUFFNUQsTUFBc0IsMEJBQTBCO0lBUTlDOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksS0FBSyxDQUFDLG1CQUFtQixDQUM5QixPQUF3QixFQUN4QixRQUE2QixFQUFFO1FBRS9CLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDcEQsTUFBTSxPQUFPLEdBQUcsSUFBSSx3QkFBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUkseUJBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RSxNQUFNLG9CQUFvQixHQUFtQztZQUMzRCxRQUFRO1lBQ1IsT0FBTztZQUNQLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztTQUN2QixDQUFDO1FBRUYsT0FBTyxJQUFJLHNEQUErQixDQUN4QztZQUNFLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRTs7O29CQUNsQixNQUFZLFNBQVMsa0NBQUcsTUFBTSxxQ0FBb0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFBLENBQUM7b0JBRTlGLE1BQU0sR0FBRyxHQUFHLE1BQU0sU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUM3QyxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMs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OzthQUNKO1NBQ0YsRUFDRCxvQkFBb0IsQ0FDckIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXhMRCxnRUF3TEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBBc3NlbWJseURpcmVjdG9yeVByb3BzLCBBc3NlbWJseVNvdXJjZVByb3BzLCBJQ2xvdWRBc3NlbWJseVNvdXJjZSB9IGZyb20gJy4uLyc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcyB9IGZyb20gJy4vY29udGV4dC1hd2FyZS1zb3VyY2UnO1xuaW1wb3J0IHsgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVNvdXJjZSB9IGZyb20gJy4vY29udGV4dC1hd2FyZS1zb3VyY2UnO1xuaW1wb3J0IHsgZXhlY0luQ2hpbGRQcm9jZXNzIH0gZnJvbSAnLi9leGVjJztcbmltcG9ydCB7IEV4ZWN1dGlvbkVudmlyb25tZW50LCBhc3NlbWJseUZyb21EaXJlY3RvcnkgfSBmcm9tICcuL3ByZXBhcmUtc291cmNlJztcbmltcG9ydCB0eXBlIHsgVG9vbGtpdFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC9wcml2YXRlJztcbmltcG9ydCB7IElPIH0gZnJvbSAnLi4vLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBDb250ZXh0LCBSV0xvY2ssIFNldHRpbmdzIH0gZnJvbSAnLi4vLi4vc2hhcmVkLXByaXZhdGUnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yLCBBc3NlbWJseUVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkLXB1YmxpYyc7XG5pbXBvcnQgdHlwZSB7IEFzc2VtYmx5QnVpbGRlciB9IGZyb20gJy4uL3NvdXJjZS1idWlsZGVyJztcbmltcG9ydCB7IFJlYWRhYmxlQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4vcmVhZGFibGUtYXNzZW1ibHknO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2xvdWRBc3NlbWJseVNvdXJjZUJ1aWxkZXIge1xuICAvKipcbiAgICogSGVscGVyIHRvIHByb3ZpZGUgdGhlIENsb3VkQXNzZW1ibHlTb3VyY2VCdWlsZGVyIHdpdGggcmVxdWlyZWQgdG9vbGtpdCBzZXJ2aWNlc1xuICAgKiBAaW50ZXJuYWxcbiAgICogQGRlcHJlY2F0ZWQgdGhpcyBzaG91bGQgbW92ZSB0byB0aGUgdG9vbGtpdCByZWFsbHkuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc291cmNlQnVpbGRlclNlcnZpY2VzKCk6IFByb21pc2U8VG9vbGtpdFNlcnZpY2VzPjtcblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWQgQXNzZW1ibHkgZnJvbSBhIENsb3VkIEFzc2VtYmx5IGJ1aWxkZXIgZnVuY3Rpb24uXG4gICAqXG4gICAqIEEgdGVtcG9yYXJ5IG91dHB1dCBkaXJlY3Rvcnkgd2lsbCBiZSBjcmVhdGVkIGlmIG5vIG91dHB1dCBkaXJlY3RvcnkgaXNcbiAgICogZXhwbGljaXRseSBnaXZlbi4gVGhpcyBkaXJlY3Rvcnkgd2lsbCBiZSBjbGVhbmVkIHVwIGlmIHN5bnRoZXNpcyBmYWlscywgb3JcbiAgICogd2hlbiB0aGUgQ2xvdWQgQXNzZW1ibHkgcHJvZHVjZWQgYnkgdGhpcyBzb3VyY2UgaXMgZGlzcG9zZWQuXG4gICAqXG4gICAqIEEgd3JpdGUgbG9jayB3aWxsIGJlIGFjcXVpcmVkIG9uIHRoZSBvdXRwdXQgZGlyZWN0b3J5IGZvciB0aGUgZHVyYXRpb24gb2ZcbiAgICogdGhlIENESyBhcHAgc3ludGhlc2lzICh3aGljaCBtZWFucyB0aGF0IG5vIHR3byBhcHBzIGNhbiBzeW50aGVzaXplIGF0IHRoZVxuICAgKiBzYW1lIHRpbWUpLCBhbmQgYWZ0ZXIgc3ludGhlc2lzIGEgcmVhZCBsb2NrIHdpbGwgYmUgYWNxdWlyZWQgb24gdGhlXG4gICAqIGRpcmVjdG9yeS4gVGhpcyBtZWFucyB0aGF0IHdoaWxlIHRoZSBDbG91ZEFzc2VtYmx5IGlzIGJlaW5nIHVzZWQsIG5vIENES1xuICAgKiBhcHAgc3ludGhlc2lzIGNhbiB0YWtlIHBsYWNlIGludG8gdGhhdCBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBwYXJhbSBidWlsZGVyIHRoZSBidWlsZGVyIGZ1bmN0aW9uXG4gICAqIEBwYXJhbSBwcm9wcyBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICAgKiBAcmV0dXJucyB0aGUgQ2xvdWRBc3NlbWJseSBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBhc3luYyBmcm9tQXNzZW1ibHlCdWlsZGVyKFxuICAgIGJ1aWxkZXI6IEFzc2VtYmx5QnVpbGRlcixcbiAgICBwcm9wczogQXNzZW1ibHlTb3VyY2VQcm9wcyA9IHt9LFxuICApOiBQcm9taXNlPElDbG91ZEFzc2VtYmx5U291cmNlPiB7XG4gICAgY29uc3Qgc2VydmljZXMgPSBhd2FpdCB0aGlzLnNvdXJjZUJ1aWxkZXJTZXJ2aWNlcygpO1xuICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgQ29udGV4dCh7IGJhZzogbmV3IFNldHRpbmdzKHByb3BzLmNvbnRleHQgPz8ge30pIH0pO1xuICAgIGNvbnN0IGNvbnRleHRBc3NlbWJseVByb3BzOiBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5UHJvcHMgPSB7XG4gICAgICBzZXJ2aWNlcyxcbiAgICAgIGNvbnRleHQsXG4gICAgICBsb29rdXBzOiBwcm9wcy5sb29rdXBzLFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2UoXG4gICAgICB7XG4gICAgICAgIHByb2R1Y2U6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICBhd2FpdCB1c2luZyBleGVjdXRpb24gPSBhd2FpdCBFeGVjdXRpb25FbnZpcm9ubWVudC5jcmVhdGUoc2VydmljZXMsIHsgb3V0ZGlyOiBwcm9wcy5vdXRkaXIgfSk7XG5cbiAgICAgICAgICBjb25zdCBlbnYgPSBhd2FpdCBleGVjdXRpb24uZGVmYXVsdEVudlZhcnMoKTtcbiAgICAgICAgICBjb25zdCBhc3NlbWJseSA9IGF3YWl0IGV4ZWN1dGlvbi5jaGFuZ2VEaXIoYXN5bmMgKCkgPT5cbiAgICAgICAgICAgIGV4ZWN1dGlvbi53aXRoQ29udGV4dChjb250ZXh0LmFsbCwgZW52LCBwcm9wcy5zeW50aE9wdGlvbnMgPz8ge30sIGFzeW5jIChlbnZXaXRoQ29udGV4dCwgY3R4KSA9PlxuICAgICAgICAgICAgICBleGVjdXRpb24ud2l0aEVudihlbnZXaXRoQ29udGV4dCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgYnVpbGRlcih7XG4gICAgICAgICAgICAgICAgICAgIG91dGRpcjogZXhlY3V0aW9uLm91dGRpcixcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogY3R4LFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgIC8vIHJlLXRocm93IHRvb2xraXQgZXJyb3JzIHVuY2hhbmdlZFxuICAgICAgICAgICAgICAgICAgaWYgKFRvb2xraXRFcnJvci5pc1Rvb2xraXRFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UsIHdyYXAgaW50byBhbiBhc3NlbWJseSBlcnJvclxuICAgICAgICAgICAgICAgICAgdGhyb3cgQXNzZW1ibHlFcnJvci53aXRoQ2F1c2UoJ0Fzc2VtYmx5IGJ1aWxkZXIgZmFpbGVkJywgZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApLCBwcm9wcy53b3JraW5nRGlyZWN0b3J5KTtcblxuICAgICAgICAgIC8vIENvbnZlcnQgd2hhdCB3ZSBnb3QgdG8gdGhlIGRlZmluaXRlbHkgY29ycmVjdCB0eXBlIHdlJ3JlIGV4cGVjdGluZywgYSBjeGFwaS5DbG91ZEFzc2VtYmx5XG4gICAgICAgICAgY29uc3QgYXNtID0gY3hhcGkuQ2xvdWRBc3NlbWJseS5pc0Nsb3VkQXNzZW1ibHkoYXNzZW1ibHkpXG4gICAgICAgICAgICA/IGFzc2VtYmx5XG4gICAgICAgICAgICA6IGF3YWl0IGFzc2VtYmx5RnJvbURpcmVjdG9yeShhc3NlbWJseS5kaXJlY3RvcnksIHNlcnZpY2VzLmlvSGVscGVyLCBwcm9wcy5sb2FkQXNzZW1ibHlPcHRpb25zKTtcblxuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCBleGVjdXRpb24ubWFya1N1Y2Nlc3NmdWwoKTtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlYWRhYmxlQ2xvdWRBc3NlbWJseShhc20sIHN1Y2Nlc3MucmVhZExvY2ssIHsgZGVsZXRlT25EaXNwb3NlOiBleGVjdXRpb24ub3V0RGlySXNUZW1wb3JhcnkgfSk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgY29udGV4dEFzc2VtYmx5UHJvcHMsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ2xvdWQgQXNzZW1ibHkgZnJvbSBhbiBleGlzdGluZyBhc3NlbWJseSBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEEgcmVhZCBsb2NrIHdpbGwgYmUgYWNxdWlyZWQgZm9yIHRoZSBkaXJlY3RvcnkuIFRoaXMgbWVhbnMgdGhhdCB3aGlsZVxuICAgKiB0aGUgQ2xvdWRBc3NlbWJseSBpcyBiZWluZyB1c2VkLCBubyBDREsgYXBwIHN5bnRoZXNpcyBjYW4gdGFrZSBwbGFjZSBpbnRvXG4gICAqIHRoYXQgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAcGFyYW0gZGlyZWN0b3J5IHRoZSBkaXJlY3Rvcnkgb2YgYSBhbHJlYWR5IHByb2R1Y2VkIENsb3VkIEFzc2VtYmx5LlxuICAgKiBAcmV0dXJucyB0aGUgQ2xvdWRBc3NlbWJseSBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBhc3luYyBmcm9tQXNzZW1ibHlEaXJlY3RvcnkoZGlyZWN0b3J5OiBzdHJpbmcsIHByb3BzOiBBc3NlbWJseURpcmVjdG9yeVByb3BzID0ge30pOiBQcm9taXNlPElDbG91ZEFzc2VtYmx5U291cmNlPiB7XG4gICAgY29uc3Qgc2VydmljZXM6IFRvb2xraXRTZXJ2aWNlcyA9IGF3YWl0IHRoaXMuc291cmNlQnVpbGRlclNlcnZpY2VzKCk7XG4gICAgY29uc3QgY29udGV4dEFzc2VtYmx5UHJvcHM6IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcyA9IHtcbiAgICAgIHNlcnZpY2VzLFxuICAgICAgY29udGV4dDogbmV3IENvbnRleHQoKSwgLy8gQHRvZG8gdGhlcmUgaXMgcHJvYmFibHkgYSBkaWZmZXJlbmNlIGJldHdlZW4gY29udGV4dGF3YXJlIGFuZCBjb250ZXh0bG9va3VwIHNvdXJjZXNcbiAgICAgIGxvb2t1cHM6IGZhbHNlLFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2UoXG4gICAgICB7XG4gICAgICAgIHByb2R1Y2U6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAvLyBAdG9kbyBidWlsZFxuICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTAxNTAubXNnKCctLWFwcCBwb2ludHMgdG8gYSBjbG91ZCBhc3NlbWJseSwgc28gd2UgYnlwYXNzIHN5bnRoJykpO1xuXG4gICAgICAgICAgY29uc3QgcmVhZExvY2sgPSBhd2FpdCBuZXcgUldMb2NrKGRpcmVjdG9yeSkuYWNxdWlyZVJlYWQoKTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgYXNtID0gYXdhaXQgYXNzZW1ibHlGcm9tRGlyZWN0b3J5KGRpcmVjdG9yeSwgc2VydmljZXMuaW9IZWxwZXIsIHByb3BzLmxvYWRBc3NlbWJseU9wdGlvbnMpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWFkYWJsZUNsb3VkQXNzZW1ibHkoYXNtLCByZWFkTG9jaywgeyBkZWxldGVPbkRpc3Bvc2U6IGZhbHNlIH0pO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGF3YWl0IHJlYWRMb2NrLnJlbGVhc2UoKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGNvbnRleHRBc3NlbWJseVByb3BzLFxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIFVzZSBhIGRpcmVjdG9yeSBjb250YWluaW5nIGFuIEFXUyBDREsgYXBwIGFzIHNvdXJjZS5cbiAgICpcbiAgICogQSB0ZW1wb3Jhcnkgb3V0cHV0IGRpcmVjdG9yeSB3aWxsIGJlIGNyZWF0ZWQgaWYgbm8gb3V0cHV0IGRpcmVjdG9yeSBpc1xuICAgKiBleHBsaWNpdGx5IGdpdmVuLiBUaGlzIGRpcmVjdG9yeSB3aWxsIGJlIGNsZWFuZWQgdXAgaWYgc3ludGhlc2lzIGZhaWxzLCBvclxuICAgKiB3aGVuIHRoZSBDbG91ZCBBc3NlbWJseSBwcm9kdWNlZCBieSB0aGlzIHNvdXJjZSBpcyBkaXNwb3NlZC5cbiAgICpcbiAgICogQSB3cml0ZSBsb2NrIHdpbGwgYmUgYWNxdWlyZWQgb24gdGhlIG91dHB1dCBkaXJlY3RvcnkgZm9yIHRoZSBkdXJhdGlvbiBvZlxuICAgKiB0aGUgQ0RLIGFwcCBzeW50aGVzaXMgKHdoaWNoIG1lYW5zIHRoYXQgbm8gdHdvIGFwcHMgY2FuIHN5bnRoZXNpemUgYXQgdGhlXG4gICAqIHNhbWUgdGltZSksIGFuZCBhZnRlciBzeW50aGVzaXMgYSByZWFkIGxvY2sgd2lsbCBiZSBhY3F1aXJlZCBvbiB0aGVcbiAgICogZGlyZWN0b3J5LiAgVGhpcyBtZWFucyB0aGF0IHdoaWxlIHRoZSBDbG91ZEFzc2VtYmx5IGlzIGJlaW5nIHVzZWQsIG5vIENES1xuICAgKiBhcHAgc3ludGhlc2lzIGNhbiB0YWtlIHBsYWNlIGludG8gdGhhdCBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICAgKiBAcmV0dXJucyB0aGUgQ2xvdWRBc3NlbWJseSBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBhc3luYyBmcm9tQ2RrQXBwKGFwcDogc3RyaW5nLCBwcm9wczogQXNzZW1ibHlTb3VyY2VQcm9wcyA9IHt9KTogUHJvbWlzZTxJQ2xvdWRBc3NlbWJseVNvdXJjZT4ge1xuICAgIGNvbnN0IHNlcnZpY2VzOiBUb29sa2l0U2VydmljZXMgPSBhd2FpdCB0aGlzLnNvdXJjZUJ1aWxkZXJTZXJ2aWNlcygpO1xuICAgIC8vIEB0b2RvIHRoaXMgZGVmaW5pdGVseSBuZWVkcyB0byByZWFkIGZpbGVzIGZyb20gdGhlIENXRFxuICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgQ29udGV4dCh7IGJhZzogbmV3IFNldHRpbmdzKHByb3BzLmNvbnRleHQgPz8ge30pIH0pO1xuICAgIGNvbnN0IGNvbnRleHRBc3NlbWJseVByb3BzOiBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5UHJvcHMgPSB7XG4gICAgICBzZXJ2aWNlcyxcbiAgICAgIGNvbnRleHQsXG4gICAgICBsb29rdXBzOiBwcm9wcy5sb29rdXBzLFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2UoXG4gICAgICB7XG4gICAgICAgIHByb2R1Y2U6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAvLyBAdG9kbyBidWlsZFxuICAgICAgICAgIC8vIGNvbnN0IGJ1aWxkID0gdGhpcy5wcm9wcy5jb25maWd1cmF0aW9uLnNldHRpbmdzLmdldChbJ2J1aWxkJ10pO1xuICAgICAgICAgIC8vIGlmIChidWlsZCkge1xuICAgICAgICAgIC8vICAgYXdhaXQgZXhlY0luQ2hpbGRQcm9jZXNzKGJ1aWxkLCB7IGN3ZDogcHJvcHMud29ya2luZ0RpcmVjdG9yeSB9KTtcbiAgICAgICAgICAvLyB9XG5cbiAgICAgICAgICBjb25zdCBvdXRkaXIgPSBwcm9wcy5vdXRkaXIgPz8gJ2Nkay5vdXQnO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBmcy5ta2RpcnBTeW5jKG91dGRpcik7XG4gICAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGBDb3VsZCBub3QgY3JlYXRlIG91dHB1dCBkaXJlY3RvcnkgYXQgJyR7b3V0ZGlyfScgKCR7ZS5tZXNzYWdlfSkuYCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYXdhaXQgdXNpbmcgZXhlY3V0aW9uID0gYXdhaXQgRXhlY3V0aW9uRW52aXJvbm1lbnQuY3JlYXRlKHNlcnZpY2VzLCB7IG91dGRpciB9KTtcblxuICAgICAgICAgIGNvbnN0IGNvbW1hbmRMaW5lID0gYXdhaXQgZXhlY3V0aW9uLmd1ZXNzRXhlY3V0YWJsZShhcHApO1xuICAgICAgICAgIGNvbnN0IGVudiA9IGF3YWl0IGV4ZWN1dGlvbi5kZWZhdWx0RW52VmFycygpO1xuICAgICAgICAgIHJldHVybiBhd2FpdCBleGVjdXRpb24ud2l0aENvbnRleHQoY29udGV4dC5hbGwsIGVudiwgcHJvcHMuc3ludGhPcHRpb25zLCBhc3luYyAoZW52V2l0aENvbnRleHQsIF9jdHgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IGV4ZWNJbkNoaWxkUHJvY2Vzcyhjb21tYW5kTGluZS5qb2luKCcgJyksIHtcbiAgICAgICAgICAgICAgZXZlbnRQdWJsaXNoZXI6IGFzeW5jICh0eXBlLCBsaW5lKSA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgICBjYXNlICdkYXRhX3N0ZG91dCc6XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTEwMDEubXNnKGxpbmUpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlICdkYXRhX3N0ZGVycic6XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfRTEwMDIubXNnKGxpbmUpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBleHRyYUVudjogZW52V2l0aENvbnRleHQsXG4gICAgICAgICAgICAgIGN3ZDogcHJvcHMud29ya2luZ0RpcmVjdG9yeSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBhc20gPSBhd2FpdCBhc3NlbWJseUZyb21EaXJlY3Rvcnkob3V0ZGlyLCBzZXJ2aWNlcy5pb0hlbHBlciwgcHJvcHMubG9hZEFzc2VtYmx5T3B0aW9ucyk7XG5cbiAgICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCBleGVjdXRpb24ubWFya1N1Y2Nlc3NmdWwoKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUmVhZGFibGVDbG91ZEFzc2VtYmx5KGFzbSwgc3VjY2Vzcy5yZWFkTG9jaywgeyBkZWxldGVPbkRpc3Bvc2U6IGV4ZWN1dGlvbi5vdXREaXJJc1RlbXBvcmFyeSB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjb250ZXh0QXNzZW1ibHlQcm9wcyxcbiAgICApO1xuICB9XG59XG5cbiJdfQ==
256
+ /**
257
+ * Remove undefined values from a dictionary
258
+ */
259
+ function noUndefined(xs) {
260
+ return Object.fromEntries(Object.entries(xs).filter(([_, v]) => v !== undefined));
261
+ }
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLHlDQUF5QztBQUN6QywrQkFBK0I7QUFHL0IsaUVBQXlFO0FBQ3pFLGlDQUE0QztBQUM1QyxxREFBK0U7QUFDL0Usa0VBQTZFO0FBRTdFLDJEQUE0RDtBQUU1RCwyQ0FBd0M7QUFDeEMsOENBQXNDO0FBQ3RDLHlDQUFzQztBQUN0Qyw2Q0FBMEM7QUFFMUMsTUFBc0IsMEJBQTBCO0lBUTlDOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCRztJQUNJLEtBQUssQ0FBQyxtQkFBbUIsQ0FDOUIsT0FBd0IsRUFDeEIsUUFBNkIsRUFBRTtRQUUvQixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3BELE1BQU0sT0FBTyxHQUFHLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLG1CQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEUsTUFBTSxvQkFBb0IsR0FBbUM7WUFDM0QsUUFBUTtZQUNSLE9BQU87WUFDUCxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87U0FDdkIsQ0FBQztRQUVGLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNqRSxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRXZGLE9BQU8sSUFBSSxzREFBK0IsQ0FDeEM7WUFD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QyxJQUFJLENBQUMsQ0FBQyxDQUFDO3dDQUNoRSxNQUFNO2dDQUNWLENBQUM7NEJBQ0gsQ0FBQzs0QkFDRCxRQUFRLEVBQUUsY0FBYzs0QkFDeEIsR0FBRyxFQUFFLGdCQUFnQjt5QkFDdEIsQ0FBQyxDQUFDO3dCQUVILE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBQSxzQ0FBcUIsRUFBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQzt3QkFFOUYsTUFBTSxPQUFPLEdBQUcsTUFBTSxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7d0JBQ2pELE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksU0FBUyxDQUFDLGlCQUFpQixDQUFDO3dCQUMzRSxPQUFPLElBQUkseUNBQXFCLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO29CQUMvRSxDQUFDLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7YUFDSjtTQUNGLEVBQ0Qsb0JBQW9CLENBQ3JCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFwTUQsZ0VBb01DO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLFdBQVcsQ0FBSSxFQUFxQjtJQUMzQyxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFRLENBQUM7QUFDM0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBBc3NlbWJseURpcmVjdG9yeVByb3BzLCBBc3NlbWJseVNvdXJjZVByb3BzLCBJQ2xvdWRBc3NlbWJseVNvdXJjZSB9IGZyb20gJy4uLyc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcyB9IGZyb20gJy4vY29udGV4dC1hd2FyZS1zb3VyY2UnO1xuaW1wb3J0IHsgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVNvdXJjZSB9IGZyb20gJy4vY29udGV4dC1hd2FyZS1zb3VyY2UnO1xuaW1wb3J0IHsgZXhlY0luQ2hpbGRQcm9jZXNzIH0gZnJvbSAnLi9leGVjJztcbmltcG9ydCB7IEV4ZWN1dGlvbkVudmlyb25tZW50LCBhc3NlbWJseUZyb21EaXJlY3RvcnkgfSBmcm9tICcuL3ByZXBhcmUtc291cmNlJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciwgQXNzZW1ibHlFcnJvciB9IGZyb20gJy4uLy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgdHlwZSB7IEFzc2VtYmx5QnVpbGRlciwgRnJvbUNka0FwcE9wdGlvbnMgfSBmcm9tICcuLi9zb3VyY2UtYnVpbGRlcic7XG5pbXBvcnQgeyBSZWFkYWJsZUNsb3VkQXNzZW1ibHkgfSBmcm9tICcuL3JlYWRhYmxlLWFzc2VtYmx5JztcbmltcG9ydCB0eXBlIHsgVG9vbGtpdFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC9wcml2YXRlJztcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0JztcbmltcG9ydCB7IElPIH0gZnJvbSAnLi4vLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBSV0xvY2sgfSBmcm9tICcuLi8uLi9yd2xvY2snO1xuaW1wb3J0IHsgU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9zZXR0aW5ncyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDbG91ZEFzc2VtYmx5U291cmNlQnVpbGRlciB7XG4gIC8qKlxuICAgKiBIZWxwZXIgdG8gcHJvdmlkZSB0aGUgQ2xvdWRBc3NlbWJseVNvdXJjZUJ1aWxkZXIgd2l0aCByZXF1aXJlZCB0b29sa2l0IHNlcnZpY2VzXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAZGVwcmVjYXRlZCB0aGlzIHNob3VsZCBtb3ZlIHRvIHRoZSB0b29sa2l0IHJlYWxseS5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzb3VyY2VCdWlsZGVyU2VydmljZXMoKTogUHJvbWlzZTxUb29sa2l0U2VydmljZXM+O1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBDbG91ZCBBc3NlbWJseSBmcm9tIGEgQ2xvdWQgQXNzZW1ibHkgYnVpbGRlciBmdW5jdGlvbi5cbiAgICpcbiAgICogVGhlIG91dHB1dCBkaXJlY3Rvcnkgd2lsbCBiZSBldmFsdWF0ZWQgd2l0aCByZXNwZWN0IHRvIHRoZSB3b3JraW5nXG4gICAqIGRpcmVjdG9yeSBpZiByZWxhdGl2ZS4gSWYgbm90IGdpdmVuLCBpdCB3aWxsIHN5bnRoZXNpemUgaW50byBhIHRlbXBvcmFyeVxuICAgKiBzeXN0ZW0gZGlyZWN0b3J5LiBUaGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB3aWxsIGJlIGNsZWFuZWQgdXAsIHVubGVzc1xuICAgKiBgZGlzcG9zZU91dGRpcjogZmFsc2VgLlxuICAgKlxuICAgKiBBIHdyaXRlIGxvY2sgd2lsbCBiZSBhY3F1aXJlZCBvbiB0aGUgb3V0cHV0IGRpcmVjdG9yeSBmb3IgdGhlIGR1cmF0aW9uIG9mXG4gICAqIHRoZSBDREsgYXBwIHN5bnRoZXNpcyAod2hpY2ggbWVhbnMgdGhhdCBubyB0d28gYXBwcyBjYW4gc3ludGhlc2l6ZSBhdCB0aGVcbiAgICogc2FtZSB0aW1lKSwgYW5kIGFmdGVyIHN5bnRoZXNpcyBhIHJlYWQgbG9jayB3aWxsIGJlIGFjcXVpcmVkIG9uIHRoZVxuICAgKiBkaXJlY3RvcnkuIFRoaXMgbWVhbnMgdGhhdCB3aGlsZSB0aGUgQ2xvdWRBc3NlbWJseSBpcyBiZWluZyB1c2VkLCBubyBDREtcbiAgICogYXBwIHN5bnRoZXNpcyBjYW4gdGFrZSBwbGFjZSBpbnRvIHRoYXQgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAcGFyYW0gYnVpbGRlciB0aGUgYnVpbGRlciBmdW5jdGlvblxuICAgKiBAcGFyYW0gcHJvcHMgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIHByb3BlcnRpZXNcbiAgICogQHJldHVybnMgdGhlIENsb3VkQXNzZW1ibHkgc291cmNlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZnJvbUFzc2VtYmx5QnVpbGRlcihcbiAgICBidWlsZGVyOiBBc3NlbWJseUJ1aWxkZXIsXG4gICAgcHJvcHM6IEFzc2VtYmx5U291cmNlUHJvcHMgPSB7fSxcbiAgKTogUHJvbWlzZTxJQ2xvdWRBc3NlbWJseVNvdXJjZT4ge1xuICAgIGNvbnN0IHNlcnZpY2VzID0gYXdhaXQgdGhpcy5zb3VyY2VCdWlsZGVyU2VydmljZXMoKTtcbiAgICBjb25zdCBjb250ZXh0ID0gbmV3IENvbnRleHQoeyBiYWc6IG5ldyBTZXR0aW5ncyhwcm9wcy5jb250ZXh0ID8/IHt9KSB9KTtcbiAgICBjb25zdCBjb250ZXh0QXNzZW1ibHlQcm9wczogQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVByb3BzID0ge1xuICAgICAgc2VydmljZXMsXG4gICAgICBjb250ZXh0LFxuICAgICAgbG9va3VwczogcHJvcHMubG9va3VwcyxcbiAgICB9O1xuXG4gICAgY29uc3Qgd29ya2luZ0RpcmVjdG9yeSA9IHByb3BzLndvcmtpbmdEaXJlY3RvcnkgPz8gcHJvY2Vzcy5jd2QoKTtcbiAgICBjb25zdCBvdXRkaXIgPSBwcm9wcy5vdXRkaXIgPyBwYXRoLnJlc29sdmUod29ya2luZ0RpcmVjdG9yeSwgcHJvcHMub3V0ZGlyKSA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBuZXcgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVNvdXJjZShcbiAgICAgIHtcbiAgICAgICAgcHJvZHVjZTogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGF3YWl0IHVzaW5nIGV4ZWN1dGlvbiA9IGF3YWl0IEV4ZWN1dGlvbkVudmlyb25tZW50LmNyZWF0ZShzZXJ2aWNlcywgeyBvdXRkaXIgfSk7XG5cbiAgICAgICAgICBjb25zdCBlbnYgPSBhd2FpdCBleGVjdXRpb24uZGVmYXVsdEVudlZhcnMoKTtcbiAgICAgICAgICBjb25zdCBhc3NlbWJseSA9IGF3YWl0IGV4ZWN1dGlvbi5jaGFuZ2VEaXIoYXN5bmMgKCkgPT5cbiAgICAgICAgICAgIGV4ZWN1dGlvbi53aXRoQ29udGV4dChjb250ZXh0LmFsbCwgZW52LCBwcm9wcy5zeW50aE9wdGlvbnMgPz8ge30sIGFzeW5jIChlbnZXaXRoQ29udGV4dCwgY3R4KSA9PlxuICAgICAgICAgICAgICBleGVjdXRpb24ud2l0aEVudihlbnZXaXRoQ29udGV4dCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgYnVpbGRlcih7XG4gICAgICAgICAgICAgICAgICAgIG91dGRpcjogZXhlY3V0aW9uLm91dGRpcixcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogY3R4LFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgIC8vIHJlLXRocm93IHRvb2xraXQgZXJyb3JzIHVuY2hhbmdlZFxuICAgICAgICAgICAgICAgICAgaWYgKFRvb2xraXRFcnJvci5pc1Rvb2xraXRFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UsIHdyYXAgaW50byBhbiBhc3NlbWJseSBlcnJvclxuICAgICAgICAgICAgICAgICAgdGhyb3cgQXNzZW1ibHlFcnJvci53aXRoQ2F1c2UoJ0Fzc2VtYmx5IGJ1aWxkZXIgZmFpbGVkJywgZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApLCB3b3JraW5nRGlyZWN0b3J5KTtcblxuICAgICAgICAgIC8vIENvbnZlcnQgd2hhdCB3ZSBnb3QgdG8gdGhlIGRlZmluaXRlbHkgY29ycmVjdCB0eXBlIHdlJ3JlIGV4cGVjdGluZywgYSBjeGFwaS5DbG91ZEFzc2VtYmx5XG4gICAgICAgICAgY29uc3QgYXNtID0gY3hhcGkuQ2xvdWRBc3NlbWJseS5pc0Nsb3VkQXNzZW1ibHkoYXNzZW1ibHkpXG4gICAgICAgICAgICA/IGFzc2VtYmx5XG4gICAgICAgICAgICA6IGF3YWl0IGFzc2VtYmx5RnJvbURpcmVjdG9yeShhc3NlbWJseS5kaXJlY3RvcnksIHNlcnZpY2VzLmlvSGVscGVyLCBwcm9wcy5sb2FkQXNzZW1ibHlPcHRpb25zKTtcblxuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCBleGVjdXRpb24ubWFya1N1Y2Nlc3NmdWwoKTtcbiAgICAgICAgICBjb25zdCBkZWxldGVPbkRpc3Bvc2UgPSBwcm9wcy5kaXNwb3NlT3V0ZGlyID8/IGV4ZWN1dGlvbi5vdXREaXJJc1RlbXBvcmFyeTtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlYWRhYmxlQ2xvdWRBc3NlbWJseShhc20sIHN1Y2Nlc3MucmVhZExvY2ssIHsgZGVsZXRlT25EaXNwb3NlIH0pO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGNvbnRleHRBc3NlbWJseVByb3BzLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENsb3VkIEFzc2VtYmx5IGZyb20gYW4gZXhpc3RpbmcgYXNzZW1ibHkgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBBIHJlYWQgbG9jayB3aWxsIGJlIGFjcXVpcmVkIGZvciB0aGUgZGlyZWN0b3J5LiBUaGlzIG1lYW5zIHRoYXQgd2hpbGVcbiAgICogdGhlIENsb3VkQXNzZW1ibHkgaXMgYmVpbmcgdXNlZCwgbm8gQ0RLIGFwcCBzeW50aGVzaXMgY2FuIHRha2UgcGxhY2UgaW50b1xuICAgKiB0aGF0IGRpcmVjdG9yeS5cbiAgICpcbiAgICogQHBhcmFtIGRpcmVjdG9yeSB0aGUgZGlyZWN0b3J5IG9mIGEgYWxyZWFkeSBwcm9kdWNlZCBDbG91ZCBBc3NlbWJseS5cbiAgICogQHJldHVybnMgdGhlIENsb3VkQXNzZW1ibHkgc291cmNlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZnJvbUFzc2VtYmx5RGlyZWN0b3J5KGRpcmVjdG9yeTogc3RyaW5nLCBwcm9wczogQXNzZW1ibHlEaXJlY3RvcnlQcm9wcyA9IHt9KTogUHJvbWlzZTxJQ2xvdWRBc3NlbWJseVNvdXJjZT4ge1xuICAgIGNvbnN0IHNlcnZpY2VzOiBUb29sa2l0U2VydmljZXMgPSBhd2FpdCB0aGlzLnNvdXJjZUJ1aWxkZXJTZXJ2aWNlcygpO1xuICAgIGNvbnN0IGNvbnRleHRBc3NlbWJseVByb3BzOiBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5UHJvcHMgPSB7XG4gICAgICBzZXJ2aWNlcyxcbiAgICAgIGNvbnRleHQ6IG5ldyBDb250ZXh0KCksIC8vIEB0b2RvIHRoZXJlIGlzIHByb2JhYmx5IGEgZGlmZmVyZW5jZSBiZXR3ZWVuIGNvbnRleHRhd2FyZSBhbmQgY29udGV4dGxvb2t1cCBzb3VyY2VzXG4gICAgICBsb29rdXBzOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5U291cmNlKFxuICAgICAge1xuICAgICAgICBwcm9kdWNlOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgLy8gQHRvZG8gYnVpbGRcbiAgICAgICAgICBhd2FpdCBzZXJ2aWNlcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0kwMTUwLm1zZygnLS1hcHAgcG9pbnRzIHRvIGEgY2xvdWQgYXNzZW1ibHksIHNvIHdlIGJ5cGFzcyBzeW50aCcpKTtcblxuICAgICAgICAgIGNvbnN0IHJlYWRMb2NrID0gYXdhaXQgbmV3IFJXTG9jayhkaXJlY3RvcnkpLmFjcXVpcmVSZWFkKCk7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGFzbSA9IGF3YWl0IGFzc2VtYmx5RnJvbURpcmVjdG9yeShkaXJlY3RvcnksIHNlcnZpY2VzLmlvSGVscGVyLCBwcm9wcy5sb2FkQXNzZW1ibHlPcHRpb25zKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUmVhZGFibGVDbG91ZEFzc2VtYmx5KGFzbSwgcmVhZExvY2ssIHsgZGVsZXRlT25EaXNwb3NlOiBmYWxzZSB9KTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBhd2FpdCByZWFkTG9jay5yZWxlYXNlKCk7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjb250ZXh0QXNzZW1ibHlQcm9wcyxcbiAgICApO1xuICB9XG4gIC8qKlxuICAgKiBVc2UgYSBkaXJlY3RvcnkgY29udGFpbmluZyBhbiBBV1MgQ0RLIGFwcCBhcyBzb3VyY2UuXG4gICAqXG4gICAqIFRoZSBvdXRwdXQgZGlyZWN0b3J5IHdpbGwgYmUgZXZhbHVhdGVkIHdpdGggcmVzcGVjdCB0byB0aGUgd29ya2luZ1xuICAgKiBkaXJlY3RvcnkgaWYgcmVsYXRpdmUuIElmIG5vdCBnaXZlbiwgaXQgd2lsbCBzeW50aGVzaXplIGludG8gYSBgY2RrLm91dGBcbiAgICogc3ViZGlyZWN0b3J5LiBUaGlzIGRpcmVjdG9yeSB3aWxsIG5vdCBiZSBjbGVhbmVkIHVwLCB1bmxlc3NcbiAgICogYGRpc3Bvc2VPdXRkaXI6IHRydWVgLlxuICAgKlxuICAgKiBBIHdyaXRlIGxvY2sgd2lsbCBiZSBhY3F1aXJlZCBvbiB0aGUgb3V0cHV0IGRpcmVjdG9yeSBmb3IgdGhlIGR1cmF0aW9uIG9mXG4gICAqIHRoZSBDREsgYXBwIHN5bnRoZXNpcyAod2hpY2ggbWVhbnMgdGhhdCBubyB0d28gYXBwcyBjYW4gc3ludGhlc2l6ZSBhdCB0aGVcbiAgICogc2FtZSB0aW1lKSwgYW5kIGFmdGVyIHN5bnRoZXNpcyBhIHJlYWQgbG9jayB3aWxsIGJlIGFjcXVpcmVkIG9uIHRoZVxuICAgKiBkaXJlY3RvcnkuICBUaGlzIG1lYW5zIHRoYXQgd2hpbGUgdGhlIENsb3VkQXNzZW1ibHkgaXMgYmVpbmcgdXNlZCwgbm8gQ0RLXG4gICAqIGFwcCBzeW50aGVzaXMgY2FuIHRha2UgcGxhY2UgaW50byB0aGF0IGRpcmVjdG9yeS5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm5zIHRoZSBDbG91ZEFzc2VtYmx5IHNvdXJjZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZyb21DZGtBcHAoYXBwOiBzdHJpbmcsIHByb3BzOiBGcm9tQ2RrQXBwT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxJQ2xvdWRBc3NlbWJseVNvdXJjZT4ge1xuICAgIGNvbnN0IHNlcnZpY2VzOiBUb29sa2l0U2VydmljZXMgPSBhd2FpdCB0aGlzLnNvdXJjZUJ1aWxkZXJTZXJ2aWNlcygpO1xuICAgIC8vIEB0b2RvIHRoaXMgZGVmaW5pdGVseSBuZWVkcyB0byByZWFkIGZpbGVzIGZyb20gdGhlIENXRFxuICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgQ29udGV4dCh7IGJhZzogbmV3IFNldHRpbmdzKHByb3BzLmNvbnRleHQgPz8ge30pIH0pO1xuICAgIGNvbnN0IGNvbnRleHRBc3NlbWJseVByb3BzOiBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5UHJvcHMgPSB7XG4gICAgICBzZXJ2aWNlcyxcbiAgICAgIGNvbnRleHQsXG4gICAgICBsb29rdXBzOiBwcm9wcy5sb29rdXBzLFxuICAgIH07XG5cbiAgICBjb25zdCB3b3JraW5nRGlyZWN0b3J5ID0gcHJvcHMud29ya2luZ0RpcmVjdG9yeSA/PyBwcm9jZXNzLmN3ZCgpO1xuICAgIGNvbnN0IG91dGRpciA9IHBhdGgucmVzb2x2ZSh3b3JraW5nRGlyZWN0b3J5LCBwcm9wcy5vdXRkaXIgPz8gJ2Nkay5vdXQnKTtcblxuICAgIHJldHVybiBuZXcgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVNvdXJjZShcbiAgICAgIHtcbiAgICAgICAgcHJvZHVjZTogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIC8vIEB0b2RvIGJ1aWxkXG4gICAgICAgICAgLy8gY29uc3QgYnVpbGQgPSB0aGlzLnByb3BzLmNvbmZpZ3VyYXRpb24uc2V0dGluZ3MuZ2V0KFsnYnVpbGQnXSk7XG4gICAgICAgICAgLy8gaWYgKGJ1aWxkKSB7XG4gICAgICAgICAgLy8gICBhd2FpdCBleGVjSW5DaGlsZFByb2Nlc3MoYnVpbGQsIHsgY3dkOiBwcm9wcy53b3JraW5nRGlyZWN0b3J5IH0pO1xuICAgICAgICAgIC8vIH1cblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBmcy5ta2RpcnBTeW5jKG91dGRpcik7XG4gICAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGBDb3VsZCBub3QgY3JlYXRlIG91dHB1dCBkaXJlY3RvcnkgYXQgJyR7b3V0ZGlyfScgKCR7ZS5tZXNzYWdlfSkuYCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYXdhaXQgdXNpbmcgZXhlY3V0aW9uID0gYXdhaXQgRXhlY3V0aW9uRW52aXJvbm1lbnQuY3JlYXRlKHNlcnZpY2VzLCB7IG91dGRpciB9KTtcblxuICAgICAgICAgIGNvbnN0IGNvbW1hbmRMaW5lID0gYXdhaXQgZXhlY3V0aW9uLmd1ZXNzRXhlY3V0YWJsZShhcHApO1xuICAgICAgICAgIGNvbnN0IGVudiA9IG5vVW5kZWZpbmVkKHtcbiAgICAgICAgICAgIC4uLmF3YWl0IGV4ZWN1dGlvbi5kZWZhdWx0RW52VmFycygpLFxuICAgICAgICAgICAgLi4ucHJvcHMuZW52LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBhd2FpdCBleGVjdXRpb24ud2l0aENvbnRleHQoY29udGV4dC5hbGwsIGVudiwgcHJvcHMuc3ludGhPcHRpb25zLCBhc3luYyAoZW52V2l0aENvbnRleHQsIF9jdHgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IGV4ZWNJbkNoaWxkUHJvY2Vzcyhjb21tYW5kTGluZS5qb2luKCcgJyksIHtcbiAgICAgICAgICAgICAgZXZlbnRQdWJsaXNoZXI6IGFzeW5jICh0eXBlLCBsaW5lKSA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgICBjYXNlICdkYXRhX3N0ZG91dCc6XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTEwMDEubXNnKGxpbmUpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlICdkYXRhX3N0ZGVycic6XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfRTEwMDIubXNnKGxpbmUpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBleHRyYUVudjogZW52V2l0aENvbnRleHQsXG4gICAgICAgICAgICAgIGN3ZDogd29ya2luZ0RpcmVjdG9yeSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBhc20gPSBhd2FpdCBhc3NlbWJseUZyb21EaXJlY3Rvcnkob3V0ZGlyLCBzZXJ2aWNlcy5pb0hlbHBlciwgcHJvcHMubG9hZEFzc2VtYmx5T3B0aW9ucyk7XG5cbiAgICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCBleGVjdXRpb24ubWFya1N1Y2Nlc3NmdWwoKTtcbiAgICAgICAgICAgIGNvbnN0IGRlbGV0ZU9uRGlzcG9zZSA9IHByb3BzLmRpc3Bvc2VPdXRkaXIgPz8gZXhlY3V0aW9uLm91dERpcklzVGVtcG9yYXJ5O1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWFkYWJsZUNsb3VkQXNzZW1ibHkoYXNtLCBzdWNjZXNzLnJlYWRMb2NrLCB7IGRlbGV0ZU9uRGlzcG9zZSB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjb250ZXh0QXNzZW1ibHlQcm9wcyxcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogUmVtb3ZlIHVuZGVmaW5lZCB2YWx1ZXMgZnJvbSBhIGRpY3Rpb25hcnlcbiAqL1xuZnVuY3Rpb24gbm9VbmRlZmluZWQ8QT4oeHM6IFJlY29yZDxzdHJpbmcsIEE+KTogUmVjb3JkPHN0cmluZywgTm9uTnVsbGFibGU8QT4+IHtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh4cykuZmlsdGVyKChbXywgdl0pID0+IHYgIT09IHVuZGVmaW5lZCkpIGFzIGFueTtcbn1cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import '../../../private/dispose-polyfill';
2
2
  import type { IoHelper } from '../../shared-private';
3
- import { BaseStackAssembly, StackCollection } from '../../shared-private';
3
+ import { BaseStackAssembly } from '../stack-assembly';
4
+ import { StackCollection } from '../stack-collection';
4
5
  import type { StackSelector } from '../stack-selector';
5
6
  import type { IReadableCloudAssembly } from '../types';
6
7
  /**
@@ -3,13 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StackAssembly = void 0;
4
4
  require("../../../private/dispose-polyfill");
5
5
  const semver_1 = require("semver");
6
- const shared_private_1 = require("../../shared-private");
7
- const shared_public_1 = require("../../shared-public");
6
+ const toolkit_error_1 = require("../../../toolkit/toolkit-error");
7
+ const stack_assembly_1 = require("../stack-assembly");
8
+ const stack_collection_1 = require("../stack-collection");
8
9
  const stack_selector_1 = require("../stack-selector");
9
10
  /**
10
11
  * A single Cloud Assembly wrapped to provide additional stack operations.
11
12
  */
12
- class StackAssembly extends shared_private_1.BaseStackAssembly {
13
+ class StackAssembly extends stack_assembly_1.BaseStackAssembly {
13
14
  _asm;
14
15
  constructor(_asm, ioHelper) {
15
16
  super(_asm.cloudAssembly, ioHelper);
@@ -37,37 +38,37 @@ class StackAssembly extends shared_private_1.BaseStackAssembly {
37
38
  const topLevelStacks = asm.stacks;
38
39
  const allStacks = (0, semver_1.major)(asm.version) < 10 ? asm.stacks : asm.stacksRecursively;
39
40
  if (allStacks.length === 0 && (selector.failOnEmpty ?? true)) {
40
- throw new shared_public_1.ToolkitError('This app contains no stacks');
41
+ throw new toolkit_error_1.ToolkitError('This app contains no stacks');
41
42
  }
42
43
  const extend = expandToExtendEnum(selector.expand);
43
44
  const patterns = StackAssembly.sanitizePatterns(selector.patterns ?? []);
44
45
  switch (selector.strategy) {
45
46
  case stack_selector_1.StackSelectionStrategy.ALL_STACKS:
46
- return new shared_private_1.StackCollection(this, allStacks);
47
+ return new stack_collection_1.StackCollection(this, allStacks);
47
48
  case stack_selector_1.StackSelectionStrategy.MAIN_ASSEMBLY:
48
49
  if (topLevelStacks.length < 1) {
49
50
  // @todo text should probably be handled in io host
50
- throw new shared_public_1.ToolkitError('No stack found in the main cloud assembly. Use "list" to print manifest');
51
+ throw new toolkit_error_1.ToolkitError('No stack found in the main cloud assembly. Use "list" to print manifest');
51
52
  }
52
53
  return this.extendStacks(topLevelStacks, allStacks, extend);
53
54
  case stack_selector_1.StackSelectionStrategy.ONLY_SINGLE:
54
55
  if (topLevelStacks.length !== 1) {
55
56
  // @todo text should probably be handled in io host
56
- throw new shared_public_1.ToolkitError('Since this app includes more than a single stack, specify which stacks to use (wildcards are supported) or specify `--all`\n' +
57
+ throw new toolkit_error_1.ToolkitError('Since this app includes more than a single stack, specify which stacks to use (wildcards are supported) or specify `--all`\n' +
57
58
  `Stacks: ${allStacks.map(x => x.hierarchicalId).join(' · ')}`);
58
59
  }
59
- return new shared_private_1.StackCollection(this, topLevelStacks);
60
+ return new stack_collection_1.StackCollection(this, topLevelStacks);
60
61
  default:
61
62
  const matched = await this.selectMatchingStacks(allStacks, patterns, extend);
62
63
  if (selector.strategy === stack_selector_1.StackSelectionStrategy.PATTERN_MUST_MATCH_SINGLE
63
64
  && matched.stackCount !== 1) {
64
65
  // @todo text should probably be handled in io host
65
- throw new shared_public_1.ToolkitError(`Stack selection is ambiguous, please choose a specific stack for import [${allStacks.map(x => x.hierarchicalId).join(',')}]`);
66
+ throw new toolkit_error_1.ToolkitError(`Stack selection is ambiguous, please choose a specific stack for import [${allStacks.map(x => x.hierarchicalId).join(',')}]`);
66
67
  }
67
68
  if (selector.strategy === stack_selector_1.StackSelectionStrategy.PATTERN_MUST_MATCH
68
69
  && matched.stackCount < 1) {
69
70
  // @todo text should probably be handled in io host
70
- throw new shared_public_1.ToolkitError(`Stack selection is ambiguous, please choose a specific stack for import [${allStacks.map(x => x.hierarchicalId).join(',')}]`);
71
+ throw new toolkit_error_1.ToolkitError(`Stack selection is ambiguous, please choose a specific stack for import [${allStacks.map(x => x.hierarchicalId).join(',')}]`);
71
72
  }
72
73
  return matched;
73
74
  }
@@ -81,7 +82,7 @@ class StackAssembly extends shared_private_1.BaseStackAssembly {
81
82
  */
82
83
  selectAllStacks() {
83
84
  const allStacks = (0, semver_1.major)(this.assembly.version) < 10 ? this.assembly.stacks : this.assembly.stacksRecursively;
84
- return new shared_private_1.StackCollection(this, allStacks);
85
+ return new stack_collection_1.StackCollection(this, allStacks);
85
86
  }
86
87
  /**
87
88
  * Select all stacks that have the validateOnSynth flag et.
@@ -97,13 +98,13 @@ exports.StackAssembly = StackAssembly;
97
98
  function expandToExtendEnum(extend) {
98
99
  switch (extend) {
99
100
  case stack_selector_1.ExpandStackSelection.DOWNSTREAM:
100
- return shared_private_1.ExtendedStackSelection.Downstream;
101
+ return stack_assembly_1.ExtendedStackSelection.Downstream;
101
102
  case stack_selector_1.ExpandStackSelection.UPSTREAM:
102
- return shared_private_1.ExtendedStackSelection.Upstream;
103
+ return stack_assembly_1.ExtendedStackSelection.Upstream;
103
104
  case stack_selector_1.ExpandStackSelection.NONE:
104
- return shared_private_1.ExtendedStackSelection.None;
105
+ return stack_assembly_1.ExtendedStackSelection.None;
105
106
  default:
106
107
  return undefined;
107
108
  }
108
109
  }
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMkM7QUFDM0MsbUNBQStCO0FBRS9CLHlEQUErSDtBQUMvSCx1REFBbUQ7QUFFbkQsc0RBQWlGO0FBR2pGOztHQUVHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsa0NBQWlCO0lBQ3JCO0lBQTdCLFlBQTZCLElBQTRCLEVBQUUsUUFBa0I7UUFDM0UsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFEVCxTQUFJLEdBQUosSUFBSSxDQUF3QjtJQUV6RCxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDakMsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU87UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLGNBQWMsQ0FBQyxRQUF1QjtRQUNqRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzFCLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDbEMsTUFBTSxTQUFTLEdBQUcsSUFBQSxjQUFLLEVBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDO1FBRS9FLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDN0QsTUFBTSxJQUFJLDRCQUFZLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXpFLFFBQVEsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFCLEtBQUssdUNBQXNCLENBQUMsVUFBVTtnQkFDcEMsT0FBTyxJQUFJLGdDQUFlLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzlDLEtBQUssdUNBQXNCLENBQUMsYUFBYTtnQkFDdkMsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUM5QixtREFBbUQ7b0JBQ25ELE1BQU0sSUFBSSw0QkFBWSxDQUFDLHlFQUF5RSxDQUFDLENBQUM7Z0JBQ3BHLENBQUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDOUQsS0FBSyx1Q0FBc0IsQ0FBQyxXQUFXO2dCQUNyQyxJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ2hDLG1EQUFtRDtvQkFDbkQsTUFBTSxJQUFJLDRCQUFZLENBQUMsOEhBQThIO3dCQUNySixXQUFXLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDakUsQ0FBQztnQkFDRCxPQUFPLElBQUksZ0NBQWUsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDbkQ7Z0JBQ0UsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDN0UsSUFDRSxRQUFRLENBQUMsUUFBUSxLQUFLLHVDQUFzQixDQUFDLHlCQUF5Qjt1QkFDbkUsT0FBTyxDQUFDLFVBQVUsS0FBSyxDQUFDLEVBQzNCLENBQUM7b0JBQ0QsbURBQW1EO29CQUNuRCxNQUFNLElBQUksNEJBQVksQ0FDcEIsNEVBQTRFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQzlILENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxJQUNFLFFBQVEsQ0FBQyxRQUFRLEtBQUssdUNBQXNCLENBQUMsa0JBQWtCO3VCQUM1RCxPQUFPLENBQUMsVUFBVSxHQUFHLENBQUMsRUFDekIsQ0FBQztvQkFDRCxtREFBbUQ7b0JBQ25ELE1BQU0sSUFBSSw0QkFBWSxDQUNwQiw0RUFBNEUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FDOUgsQ0FBQztnQkFDSixDQUFDO2dCQUVELE9BQU8sT0FBTyxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksZUFBZTtRQUNwQixNQUFNLFNBQVMsR0FBRyxJQUFBLGNBQUssRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUM7UUFDN0csT0FBTyxJQUFJLGdDQUFlLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0kseUJBQXlCO1FBQzlCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QyxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDLENBQUM7SUFDakUsQ0FBQztDQUNGO0FBcEdELHNDQW9HQztBQUVELFNBQVMsa0JBQWtCLENBQUMsTUFBNkI7SUFDdkQsUUFBUSxNQUFNLEVBQUUsQ0FBQztRQUNmLEtBQUsscUNBQW9CLENBQUMsVUFBVTtZQUNsQyxPQUFPLHVDQUF5QixDQUFDLFVBQVUsQ0FBQztRQUM5QyxLQUFLLHFDQUFvQixDQUFDLFFBQVE7WUFDaEMsT0FBTyx1Q0FBeUIsQ0FBQyxRQUFRLENBQUM7UUFDNUMsS0FBSyxxQ0FBb0IsQ0FBQyxJQUFJO1lBQzVCLE9BQU8sdUNBQXlCLENBQUMsSUFBSSxDQUFDO1FBQ3hDO1lBQ0UsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJy4uLy4uLy4uL3ByaXZhdGUvZGlzcG9zZS1wb2x5ZmlsbCc7XG5pbXBvcnQgeyBtYWpvciB9IGZyb20gJ3NlbXZlcic7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vLi4vc2hhcmVkLXByaXZhdGUnO1xuaW1wb3J0IHsgQmFzZVN0YWNrQXNzZW1ibHksIFN0YWNrQ29sbGVjdGlvbiwgRXh0ZW5kZWRTdGFja1NlbGVjdGlvbiBhcyBDbGlFeHRlbmRlZFN0YWNrU2VsZWN0aW9uIH0gZnJvbSAnLi4vLi4vc2hhcmVkLXByaXZhdGUnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkLXB1YmxpYyc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrU2VsZWN0b3IgfSBmcm9tICcuLi9zdGFjay1zZWxlY3Rvcic7XG5pbXBvcnQgeyBFeHBhbmRTdGFja1NlbGVjdGlvbiwgU3RhY2tTZWxlY3Rpb25TdHJhdGVneSB9IGZyb20gJy4uL3N0YWNrLXNlbGVjdG9yJztcbmltcG9ydCB0eXBlIHsgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBBIHNpbmdsZSBDbG91ZCBBc3NlbWJseSB3cmFwcGVkIHRvIHByb3ZpZGUgYWRkaXRpb25hbCBzdGFjayBvcGVyYXRpb25zLlxuICovXG5leHBvcnQgY2xhc3MgU3RhY2tBc3NlbWJseSBleHRlbmRzIEJhc2VTdGFja0Fzc2VtYmx5IGltcGxlbWVudHMgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2FzbTogSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSwgaW9IZWxwZXI6IElvSGVscGVyKSB7XG4gICAgc3VwZXIoX2FzbS5jbG91ZEFzc2VtYmx5LCBpb0hlbHBlcik7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNsb3VkQXNzZW1ibHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FzbS5jbG91ZEFzc2VtYmx5O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIF91bmxvY2soKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FzbS5fdW5sb2NrKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzcG9zZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fYXNtLmRpc3Bvc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBbU3ltYm9sLmFzeW5jRGlzcG9zZV0oKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcG9zZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcHJvdmVkIHN0YWNrIHNlbGVjdGlvbiBpbnRlcmZhY2Ugd2l0aCBhIHNpbmdsZSBzZWxlY3RvclxuICAgKiBAdGhyb3dzIHdoZW4gdGhlIGFzc2VtYmx5IGRvZXMgbm90IGNvbnRhaW4gYW55IHN0YWNrcywgdW5sZXNzIGBzZWxlY3Rvci5mYWlsT25FbXB0eWAgaXMgYGZhbHNlYFxuICAgKiBAdGhyb3dzIHdoZW4gaW5kaXZpZHVhbCBzZWxlY3Rpb24gc3RyYXRlZ2llcyBhcmUgbm90IHNhdGlzZmllZFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNlbGVjdFN0YWNrc1YyKHNlbGVjdG9yOiBTdGFja1NlbGVjdG9yKTogUHJvbWlzZTxTdGFja0NvbGxlY3Rpb24+IHtcbiAgICBjb25zdCBhc20gPSB0aGlzLmFzc2VtYmx5O1xuICAgIGNvbnN0IHRvcExldmVsU3RhY2tzID0gYXNtLnN0YWNrcztcbiAgICBjb25zdCBhbGxTdGFja3MgPSBtYWpvcihhc20udmVyc2lvbikgPCAxMCA/IGFzbS5zdGFja3MgOiBhc20uc3RhY2tzUmVjdXJzaXZlbHk7XG5cbiAgICBpZiAoYWxsU3RhY2tzLmxlbmd0aCA9PT0gMCAmJiAoc2VsZWN0b3IuZmFpbE9uRW1wdHkgPz8gdHJ1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1RoaXMgYXBwIGNvbnRhaW5zIG5vIHN0YWNrcycpO1xuICAgIH1cblxuICAgIGNvbnN0IGV4dGVuZCA9IGV4cGFuZFRvRXh0ZW5kRW51bShzZWxlY3Rvci5leHBhbmQpO1xuICAgIGNvbnN0IHBhdHRlcm5zID0gU3RhY2tBc3NlbWJseS5zYW5pdGl6ZVBhdHRlcm5zKHNlbGVjdG9yLnBhdHRlcm5zID8/IFtdKTtcblxuICAgIHN3aXRjaCAoc2VsZWN0b3Iuc3RyYXRlZ3kpIHtcbiAgICAgIGNhc2UgU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5BTExfU1RBQ0tTOlxuICAgICAgICByZXR1cm4gbmV3IFN0YWNrQ29sbGVjdGlvbih0aGlzLCBhbGxTdGFja3MpO1xuICAgICAgY2FzZSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5Lk1BSU5fQVNTRU1CTFk6XG4gICAgICAgIGlmICh0b3BMZXZlbFN0YWNrcy5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgLy8gQHRvZG8gdGV4dCBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBpbiBpbyBob3N0XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignTm8gc3RhY2sgZm91bmQgaW4gdGhlIG1haW4gY2xvdWQgYXNzZW1ibHkuIFVzZSBcImxpc3RcIiB0byBwcmludCBtYW5pZmVzdCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmV4dGVuZFN0YWNrcyh0b3BMZXZlbFN0YWNrcywgYWxsU3RhY2tzLCBleHRlbmQpO1xuICAgICAgY2FzZSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5Lk9OTFlfU0lOR0xFOlxuICAgICAgICBpZiAodG9wTGV2ZWxTdGFja3MubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgICAgLy8gQHRvZG8gdGV4dCBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBpbiBpbyBob3N0XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignU2luY2UgdGhpcyBhcHAgaW5jbHVkZXMgbW9yZSB0aGFuIGEgc2luZ2xlIHN0YWNrLCBzcGVjaWZ5IHdoaWNoIHN0YWNrcyB0byB1c2UgKHdpbGRjYXJkcyBhcmUgc3VwcG9ydGVkKSBvciBzcGVjaWZ5IGAtLWFsbGBcXG4nICtcbiAgICAgICAgICBgU3RhY2tzOiAke2FsbFN0YWNrcy5tYXAoeCA9PiB4LmhpZXJhcmNoaWNhbElkKS5qb2luKCcgwrcgJyl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBTdGFja0NvbGxlY3Rpb24odGhpcywgdG9wTGV2ZWxTdGFja3MpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29uc3QgbWF0Y2hlZCA9IGF3YWl0IHRoaXMuc2VsZWN0TWF0Y2hpbmdTdGFja3MoYWxsU3RhY2tzLCBwYXR0ZXJucywgZXh0ZW5kKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlbGVjdG9yLnN0cmF0ZWd5ID09PSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LlBBVFRFUk5fTVVTVF9NQVRDSF9TSU5HTEVcbiAgICAgICAgICAmJiBtYXRjaGVkLnN0YWNrQ291bnQgIT09IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gQHRvZG8gdGV4dCBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBpbiBpbyBob3N0XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICAgICAgIGBTdGFjayBzZWxlY3Rpb24gaXMgYW1iaWd1b3VzLCBwbGVhc2UgY2hvb3NlIGEgc3BlY2lmaWMgc3RhY2sgZm9yIGltcG9ydCBbJHthbGxTdGFja3MubWFwKHggPT4geC5oaWVyYXJjaGljYWxJZCkuam9pbignLCcpfV1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlbGVjdG9yLnN0cmF0ZWd5ID09PSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LlBBVFRFUk5fTVVTVF9NQVRDSFxuICAgICAgICAgICYmIG1hdGNoZWQuc3RhY2tDb3VudCA8IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gQHRvZG8gdGV4dCBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBpbiBpbyBob3N0XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICAgICAgIGBTdGFjayBzZWxlY3Rpb24gaXMgYW1iaWd1b3VzLCBwbGVhc2UgY2hvb3NlIGEgc3BlY2lmaWMgc3RhY2sgZm9yIGltcG9ydCBbJHthbGxTdGFja3MubWFwKHggPT4geC5oaWVyYXJjaGljYWxJZCkuam9pbignLCcpfV1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWF0Y2hlZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IGFsbCBzdGFja3MuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIG5ldmVyIHRocm93cyBhbmQgY2FuIHNhZmVseSBiZSB1c2VkIGFzIGEgYmFzaXMgZm9yIG90aGVyIGNhbGN1bGF0aW9ucy5cbiAgICpcbiAgICogQHJldHVybnMgYSBgU3RhY2tDb2xsZWN0aW9uYCBvZiBhbGwgc3RhY2tzXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0QWxsU3RhY2tzKCkge1xuICAgIGNvbnN0IGFsbFN0YWNrcyA9IG1ham9yKHRoaXMuYXNzZW1ibHkudmVyc2lvbikgPCAxMCA/IHRoaXMuYXNzZW1ibHkuc3RhY2tzIDogdGhpcy5hc3NlbWJseS5zdGFja3NSZWN1cnNpdmVseTtcbiAgICByZXR1cm4gbmV3IFN0YWNrQ29sbGVjdGlvbih0aGlzLCBhbGxTdGFja3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhbGwgc3RhY2tzIHRoYXQgaGF2ZSB0aGUgdmFsaWRhdGVPblN5bnRoIGZsYWcgZXQuXG4gICAqXG4gICAqIEByZXR1cm5zIGEgYFN0YWNrQ29sbGVjdGlvbmAgb2YgYWxsIHN0YWNrcyB0aGF0IG5lZWRzIHRvIGJlIHZhbGlkYXRlZFxuICAgKi9cbiAgcHVibGljIHNlbGVjdFN0YWNrc0ZvclZhbGlkYXRpb24oKSB7XG4gICAgY29uc3QgYWxsU3RhY2tzID0gdGhpcy5zZWxlY3RBbGxTdGFja3MoKTtcbiAgICByZXR1cm4gYWxsU3RhY2tzLmZpbHRlcigoYXJ0KSA9PiBhcnQudmFsaWRhdGVPblN5bnRoID8/IGZhbHNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBleHBhbmRUb0V4dGVuZEVudW0oZXh0ZW5kPzogRXhwYW5kU3RhY2tTZWxlY3Rpb24pOiBDbGlFeHRlbmRlZFN0YWNrU2VsZWN0aW9uIHwgdW5kZWZpbmVkIHtcbiAgc3dpdGNoIChleHRlbmQpIHtcbiAgICBjYXNlIEV4cGFuZFN0YWNrU2VsZWN0aW9uLkRPV05TVFJFQU06XG4gICAgICByZXR1cm4gQ2xpRXh0ZW5kZWRTdGFja1NlbGVjdGlvbi5Eb3duc3RyZWFtO1xuICAgIGNhc2UgRXhwYW5kU3RhY2tTZWxlY3Rpb24uVVBTVFJFQU06XG4gICAgICByZXR1cm4gQ2xpRXh0ZW5kZWRTdGFja1NlbGVjdGlvbi5VcHN0cmVhbTtcbiAgICBjYXNlIEV4cGFuZFN0YWNrU2VsZWN0aW9uLk5PTkU6XG4gICAgICByZXR1cm4gQ2xpRXh0ZW5kZWRTdGFja1NlbGVjdGlvbi5Ob25lO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMkM7QUFDM0MsbUNBQStCO0FBQy9CLGtFQUE4RDtBQUU5RCxzREFBMkc7QUFDM0csMERBQXNEO0FBRXRELHNEQUFpRjtBQUdqRjs7R0FFRztBQUNILE1BQWEsYUFBYyxTQUFRLGtDQUFpQjtJQUNyQjtJQUE3QixZQUE2QixJQUE0QixFQUFFLFFBQWtCO1FBQzNFLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRFQsU0FBSSxHQUFKLElBQUksQ0FBd0I7SUFFekQsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBdUI7UUFDakQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMxQixNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUEsY0FBSyxFQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdB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Q0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHlCQUF5QjtRQUM5QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekMsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Q0FDRjtBQXBHRCxzQ0FvR0M7QUFFRCxTQUFTLGtCQUFrQixDQUFDLE1BQTZCO0lBQ3ZELFFBQVEsTUFBTSxFQUFFLENBQUM7UUFDZixLQUFLLHFDQUFvQixDQUFDLFVBQVU7WUFDbEMsT0FBTyx1Q0FBeUIsQ0FBQyxVQUFVLENBQUM7UUFDOUMsS0FBSyxxQ0FBb0IsQ0FBQyxRQUFRO1lBQ2hDLE9BQU8sdUNBQXlCLENBQUMsUUFBUSxDQUFDO1FBQzVDLEtBQUsscUNBQW9CLENBQUMsSUFBSTtZQUM1QixPQUFPLHVDQUF5QixDQUFDLElBQUksQ0FBQztRQUN4QztZQUNFLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuLi8uLi8uLi9wcml2YXRlL2Rpc3Bvc2UtcG9seWZpbGwnO1xuaW1wb3J0IHsgbWFqb3IgfSBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi8uLi9zaGFyZWQtcHJpdmF0ZSc7XG5pbXBvcnQgeyBCYXNlU3RhY2tBc3NlbWJseSwgRXh0ZW5kZWRTdGFja1NlbGVjdGlvbiBhcyBDbGlFeHRlbmRlZFN0YWNrU2VsZWN0aW9uIH0gZnJvbSAnLi4vc3RhY2stYXNzZW1ibHknO1xuaW1wb3J0IHsgU3RhY2tDb2xsZWN0aW9uIH0gZnJvbSAnLi4vc3RhY2stY29sbGVjdGlvbic7XG5pbXBvcnQgdHlwZSB7IFN0YWNrU2VsZWN0b3IgfSBmcm9tICcuLi9zdGFjay1zZWxlY3Rvcic7XG5pbXBvcnQgeyBFeHBhbmRTdGFja1NlbGVjdGlvbiwgU3RhY2tTZWxlY3Rpb25TdHJhdGVneSB9IGZyb20gJy4uL3N0YWNrLXNlbGVjdG9yJztcbmltcG9ydCB0eXBlIHsgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBBIHNpbmdsZSBDbG91ZCBBc3NlbWJseSB3cmFwcGVkIHRvIHByb3ZpZGUgYWRkaXRpb25hbCBzdGFjayBvcGVyYXRpb25zLlxuICovXG5leHBvcnQgY2xhc3MgU3RhY2tBc3NlbWJseSBleHRlbmRzIEJhc2VTdGFja0Fzc2VtYmx5IGltcGxlbWVudHMgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2FzbTogSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSwgaW9IZWxwZXI6IElvSGVscGVyKSB7XG4gICAgc3VwZXIoX2FzbS5jbG91ZEFzc2VtYmx5LCBpb0hlbHBlcik7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNsb3VkQXNzZW1ibHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FzbS5jbG91ZEFzc2VtYmx5O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIF91bmxvY2soKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FzbS5fdW5sb2NrKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzcG9zZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fYXNtLmRpc3Bvc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBbU3ltYm9sLmFzeW5jRGlzcG9zZV0oKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcG9zZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcHJvdmVkIHN0YWNrIHNlbGVjdGlvbiBpbnRlcmZhY2Ugd2l0aCBhIHNpbmdsZSBzZWxlY3RvclxuICAgKiBAdGhyb3dzIHdoZW4gdGhlIGFzc2VtYmx5IGRvZXMgbm90IGNvbnRhaW4gYW55IHN0YWNrcywgdW5sZXNzIGBzZWxlY3Rvci5mYWlsT25FbXB0eWAgaXMgYGZhbHNlYFxuICAgKiBAdGhyb3dzIHdoZW4gaW5kaXZpZHVhbCBzZWxlY3Rpb24gc3RyYXRlZ2llcyBhcmUgbm90IHNhdGlzZmllZFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNlbGVjdFN0YWNrc1YyKHNlbGVjdG9yOiBTdGFja1NlbGVjdG9yKTogUHJvbWlzZTxTdGFja0NvbGxlY3Rpb24+IHtcbiAgICBjb25zdCBhc20gPSB0aGlzLmFzc2VtYmx5O1xuICAgIGNvbnN0IHRvcExldmVsU3RhY2tzID0gYXNtLnN0YWNrcztcbiAgICBjb25zdCBhbGxTdGFja3MgPSBtYWpvcihhc20udmVyc2lvbikgPCAxMCA/IGFzbS5zdGFja3MgOiBhc20uc3RhY2tzUmVjdXJzaXZlbHk7XG5cbiAgICBpZiAoYWxsU3RhY2tzLmxlbmd0aCA9PT0gMCAmJiAoc2VsZWN0b3IuZmFpbE9uRW1wdHkgPz8gdHJ1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1RoaXMgYXBwIGNvbnRhaW5zIG5vIHN0YWNrcycpO1xuICAgIH1cblxuICAgIGNvbnN0IGV4dGVuZCA9IGV4cGFuZFRvRXh0ZW5kRW51bShzZWxlY3Rvci5leHBhbmQpO1xuICAgIGNvbnN0IHBhdHRlcm5zID0gU3RhY2tBc3NlbWJseS5zYW5pdGl6ZVBhdHRlcm5zKHNlbGVjdG9yLnBhdHRlcm5zID8/IFtdKTtcblxuICAgIHN3aXRjaCAoc2VsZWN0b3Iuc3RyYXRlZ3kpIHtcbiAgICAgIGNhc2UgU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5BTExfU1RBQ0tTOlxuICAgICAgICByZXR1cm4gbmV3IFN0YWNrQ29sbGVjdGlvbih0aGlzLCBhbGxTdGFja3MpO1xuICAgICAgY2FzZSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5Lk1BSU5fQVNTRU1CTFk6XG4gICAgICAgIGlmICh0b3BMZXZlbFN0YWNrcy5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgLy8gQHRvZG8gdGV4dCBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBpbiBpbyBob3N0XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignTm8gc3RhY2sgZm91bmQgaW4gdGhlIG1haW4gY2xvdWQgYXNzZW1ibHkuIFVzZSBcImxpc3RcIiB0byBwcmludCBtYW5pZmVzdCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmV4dGVuZFN0YWNrcyh0b3BMZXZlbFN0YWNrcywgYWxsU3RhY2tzLCBleHRlbmQpO1xuICAgICAgY2FzZSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5Lk9OTFlfU0lOR0xFOlxuICAgICAgICBpZiAodG9wTGV2ZWxTdGFja3MubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgICAgLy8gQHRvZG8gdGV4dCBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBpbiBpbyBob3N0XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignU2luY2UgdGhpcyBhcHAgaW5jbHVkZXMgbW9yZSB0aGFuIGEgc2luZ2xlIHN0YWNrLCBzcGVjaWZ5IHdoaWNoIHN0YWNrcyB0byB1c2UgKHdpbGRjYXJkcyBhcmUgc3VwcG9ydGVkKSBvciBzcGVjaWZ5IGAtLWFsbGBcXG4nICtcbiAgICAgICAgICBgU3RhY2tzOiAke2FsbFN0YWNrcy5tYXAoeCA9PiB4LmhpZXJhcmNoaWNhbElkKS5qb2luKCcgwrcgJyl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBTdGFja0NvbGxlY3Rpb24odGhpcywgdG9wTGV2ZWxTdGFja3MpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29uc3QgbWF0Y2hlZCA9IGF3YWl0IHRoaXMuc2VsZWN0TWF0Y2hpbmdTdGFja3MoYWxsU3RhY2tzLCBwYXR0ZXJucywgZXh0ZW5kKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlbGVjdG9yLnN0cmF0ZWd5ID09PSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LlBBVFRFUk5fTVVTVF9NQVRDSF9TSU5HTEVcbiAgICAgICAgICAmJiBtYXRjaGVkLnN0YWNrQ291bnQgIT09IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gQHRvZG8gdGV4dCBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBpbiBpbyBob3N0XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICAgICAgIGBTdGFjayBzZWxlY3Rpb24gaXMgYW1iaWd1b3VzLCBwbGVhc2UgY2hvb3NlIGEgc3BlY2lmaWMgc3RhY2sgZm9yIGltcG9ydCBbJHthbGxTdGFja3MubWFwKHggPT4geC5oaWVyYXJjaGljYWxJZCkuam9pbignLCcpfV1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlbGVjdG9yLnN0cmF0ZWd5ID09PSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LlBBVFRFUk5fTVVTVF9NQVRDSFxuICAgICAgICAgICYmIG1hdGNoZWQuc3RhY2tDb3VudCA8IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gQHRvZG8gdGV4dCBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBpbiBpbyBob3N0XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICAgICAgIGBTdGFjayBzZWxlY3Rpb24gaXMgYW1iaWd1b3VzLCBwbGVhc2UgY2hvb3NlIGEgc3BlY2lmaWMgc3RhY2sgZm9yIGltcG9ydCBbJHthbGxTdGFja3MubWFwKHggPT4geC5oaWVyYXJjaGljYWxJZCkuam9pbignLCcpfV1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWF0Y2hlZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IGFsbCBzdGFja3MuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIG5ldmVyIHRocm93cyBhbmQgY2FuIHNhZmVseSBiZSB1c2VkIGFzIGEgYmFzaXMgZm9yIG90aGVyIGNhbGN1bGF0aW9ucy5cbiAgICpcbiAgICogQHJldHVybnMgYSBgU3RhY2tDb2xsZWN0aW9uYCBvZiBhbGwgc3RhY2tzXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0QWxsU3RhY2tzKCkge1xuICAgIGNvbnN0IGFsbFN0YWNrcyA9IG1ham9yKHRoaXMuYXNzZW1ibHkudmVyc2lvbikgPCAxMCA/IHRoaXMuYXNzZW1ibHkuc3RhY2tzIDogdGhpcy5hc3NlbWJseS5zdGFja3NSZWN1cnNpdmVseTtcbiAgICByZXR1cm4gbmV3IFN0YWNrQ29sbGVjdGlvbih0aGlzLCBhbGxTdGFja3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhbGwgc3RhY2tzIHRoYXQgaGF2ZSB0aGUgdmFsaWRhdGVPblN5bnRoIGZsYWcgZXQuXG4gICAqXG4gICAqIEByZXR1cm5zIGEgYFN0YWNrQ29sbGVjdGlvbmAgb2YgYWxsIHN0YWNrcyB0aGF0IG5lZWRzIHRvIGJlIHZhbGlkYXRlZFxuICAgKi9cbiAgcHVibGljIHNlbGVjdFN0YWNrc0ZvclZhbGlkYXRpb24oKSB7XG4gICAgY29uc3QgYWxsU3RhY2tzID0gdGhpcy5zZWxlY3RBbGxTdGFja3MoKTtcbiAgICByZXR1cm4gYWxsU3RhY2tzLmZpbHRlcigoYXJ0KSA9PiBhcnQudmFsaWRhdGVPblN5bnRoID8/IGZhbHNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBleHBhbmRUb0V4dGVuZEVudW0oZXh0ZW5kPzogRXhwYW5kU3RhY2tTZWxlY3Rpb24pOiBDbGlFeHRlbmRlZFN0YWNrU2VsZWN0aW9uIHwgdW5kZWZpbmVkIHtcbiAgc3dpdGNoIChleHRlbmQpIHtcbiAgICBjYXNlIEV4cGFuZFN0YWNrU2VsZWN0aW9uLkRPV05TVFJFQU06XG4gICAgICByZXR1cm4gQ2xpRXh0ZW5kZWRTdGFja1NlbGVjdGlvbi5Eb3duc3RyZWFtO1xuICAgIGNhc2UgRXhwYW5kU3RhY2tTZWxlY3Rpb24uVVBTVFJFQU06XG4gICAgICByZXR1cm4gQ2xpRXh0ZW5kZWRTdGFja1NlbGVjdGlvbi5VcHN0cmVhbTtcbiAgICBjYXNlIEV4cGFuZFN0YWNrU2VsZWN0aW9uLk5PTkU6XG4gICAgICByZXR1cm4gQ2xpRXh0ZW5kZWRTdGFja1NlbGVjdGlvbi5Ob25lO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -72,6 +72,25 @@ export interface AssemblySourceProps {
72
72
  * Options to configure loading of the assembly after it has been synthesized
73
73
  */
74
74
  readonly loadAssemblyOptions?: LoadAssemblyOptions;
75
+ /**
76
+ * Delete the `outdir` when the assembly is disposed
77
+ *
78
+ * @default - `true` if `outdir` is not given, `false` otherwise
79
+ */
80
+ readonly disposeOutdir?: boolean;
81
+ }
82
+ /**
83
+ * Options for the `fromCdkApp` Assembly Source constructor
84
+ */
85
+ export interface FromCdkAppOptions extends AssemblySourceProps {
86
+ /**
87
+ * Additional environment variables
88
+ *
89
+ * These environment variables will be set in addition to the environment
90
+ * variables currently set in the process. A value of `undefined` will
91
+ * unset a particular environment variable.
92
+ */
93
+ readonly env?: Record<string, string | undefined>;
75
94
  }
76
95
  /**
77
96
  * Settings that are passed to a CDK app via the context
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdGhlIGJ1aWxkZXIgZnVuY3Rpb24gcmVjZWl2ZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZW1ibHlCdWlsZGVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIG91dHB1dCBkaXJlY3RvcnkgaW50byB3aGljaCB0byB0aGUgYnVpbGRlciBhcHAgd2lsbCBlbWl0IHN5bnRoZXNpemVkIGFydGlmYWN0cy5cbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbnRleHQgcHJvdmlkZWQgdHAgdGhlIGJ1aWxkZXIgYXBwIHRvIHN5bnRoZXNpemUgdGhlIENsb3VkIEFzc2VtYmx5LCBpbmNsdWRpbmcgbG9va2VkLXVwIGNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgc3ludGhlc2lzIHBhcmFtZXRlcnMgYW5kIHByb2R1Y2VzIGEgQ2xvdWQgQXNzZW1ibHlcbiAqXG4gKiBNb3N0IHR5cGljYWxseSwgdGhlIHByb3BlcnRpZXMgcGFzc2VkIGhlcmUgd2lsbCBiZSB1c2VkIHRvIGNvbnN0cnVjdCBhXG4gKiBgY2RrLkFwcGAsIGFuZCB0aGUgcmV0dXJuIHZhbHVlIGlzIHRoZSByZXR1cm4gdmFsdWUgb2YgYGFwcC5zeW50aCgpYC5cbiAqL1xuZXhwb3J0IHR5cGUgQXNzZW1ibHlCdWlsZGVyID0gKHByb3BzOiBBc3NlbWJseUJ1aWxkZXJQcm9wcykgPT4gUHJvbWlzZTxjeHNjaGVtYS5JQ2xvdWRBc3NlbWJseT47XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgY3JlYXRpbmcgYSBDTEkgZnJvbSBhbiBBV1MgQ0RLIEFwcCBkaXJlY3RvcnlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseURpcmVjdG9yeVByb3BzIHtcbiAgLyoqXG4gICAqIE9wdGlvbnMgdG8gY29uZmlndXJlIGxvYWRpbmcgb2YgdGhlIGFzc2VtYmx5IGFmdGVyIGl0IGhhcyBiZWVuIHN5bnRoZXNpemVkXG4gICAqL1xuICByZWFkb25seSBsb2FkQXNzZW1ibHlPcHRpb25zPzogTG9hZEFzc2VtYmx5T3B0aW9ucztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBjcmVhdGluZyBhIENMSSBmcm9tIGFuIEFXUyBDREsgQXBwIGRpcmVjdG9yeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2VtYmx5U291cmNlUHJvcHMge1xuICAvKipcbiAgICogRXhlY3V0ZSB0aGUgYXBwbGljYXRpb24gaW4gdGhpcyB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5XG4gICAqL1xuICByZWFkb25seSB3b3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgc3ludGhlc2l6ZWQgY2xvdWQgYXNzZW1ibHkgaW50byBhIGRpcmVjdG9yeVxuICAgKlxuICAgKiBAZGVmYXVsdCBjZGsub3V0XG4gICAqL1xuICByZWFkb25seSBvdXRkaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gY29udGV4dCBsb29rdXBzLlxuICAgKlxuICAgKiBTeW50aGVzaXMgZmFpbHMgaWYgdGhpcyBpcyBkaXNhYmxlZCBhbmQgY29udGV4dCBsb29rdXBzIG5lZWQgdG8gYmUgcGVyZm9ybWVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBsb29rdXBzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29udGV4dCB2YWx1ZXMgZm9yIHRoZSBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQ29udGV4dCBjYW4gYmUgcmVhZCBpbiB0aGUgYXBwIGZyb20gYW55IGNvbnN0cnVjdCB1c2luZyBgbm9kZS5nZXRDb250ZXh0KGtleSlgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvbnRleHRcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ/OiB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9O1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIHRoYXQgYXJlIHBhc3NlZCB0aHJvdWdoIHRoZSBjb250ZXh0IHRvIGEgQ0RLIGFwcCBvbiBzeW50aFxuICAgKi9cbiAgcmVhZG9ubHkgc3ludGhPcHRpb25zPzogQXBwU3ludGhPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIHRvIGNvbmZpZ3VyZSBsb2FkaW5nIG9mIHRoZSBhc3NlbWJseSBhZnRlciBpdCBoYXMgYmVlbiBzeW50aGVzaXplZFxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZEFzc2VtYmx5T3B0aW9ucz86IExvYWRBc3NlbWJseU9wdGlvbnM7XG59XG5cbi8qKlxuICogU2V0dGluZ3MgdGhhdCBhcmUgcGFzc2VkIHRvIGEgQ0RLIGFwcCB2aWEgdGhlIGNvbnRleHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBTeW50aE9wdGlvbnMge1xuICAvKipcbiAgICogRGVidWcgdGhlIENESyBhcHAuXG4gICAqIExvZ3MgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBkdXJpbmcgc3ludGhlc2lzLCBzdWNoIGFzIGNyZWF0aW9uIHN0YWNrIHRyYWNlcyBvZiB0b2tlbnMuXG4gICAqIFRoaXMgYWxzbyBzZXRzIHRoZSBgQ0RLX0RFQlVHYCBlbnYgdmFyaWFibGUgYW5kIHdpbGwgc2xvdyBkb3duIHN5bnRoZXNpcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRlYnVnPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgZW1iZWRkaW5nIG9mIHRoZSBcImF3czpjZGs6cGF0aFwiIGluIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIG1ldGFkYXRhLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwYXRoTWV0YWRhdGE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgdGhlIGNvbGxlY3Rpb24gYW5kIHJlcG9ydGluZyBvZiB2ZXJzaW9uIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uUmVwb3J0aW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hlIGVuYWJsZWQsIGBhd3M6YXNzZXQ6eHh4YCBtZXRhZGF0YSBlbnRyaWVzIGFyZSBhZGRlZCB0byB0aGUgdGVtcGxhdGUuXG4gICAqXG4gICAqIERpc2FibGluZyB0aGlzIGNhbiBiZSB1c2VmdWwgaW4gY2VydGFpbiBjYXNlcyBsaWtlIGludGVncmF0aW9uIHRlc3RzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhc3NldE1ldGFkYXRhPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGFzc2V0IHN0YWdpbmcuXG4gICAqXG4gICAqIERpc2FibGluZyBhc3NldCBzdGFnaW5nIG1lYW5zIHRoYXQgY29weWFibGUgYXNzZXRzIHdpbGwgbm90IGJlIGNvcGllZCB0byB0aGVcbiAgICogb3V0cHV0IGRpcmVjdG9yeSBhbmQgd2lsbCBiZSByZWZlcmVuY2VkIHdpdGggYWJzb2x1dGUgcGF0aHMuXG4gICAqXG4gICAqIE5vdCBjb3BpZWQgdG8gdGhlIG91dHB1dCBkaXJlY3Rvcnk6IHRoaXMgaXMgc28gdXNlcnMgY2FuIGl0ZXJhdGUgb24gdGhlXG4gICAqIExhbWJkYSBzb3VyY2UgYW5kIHJ1biBTQU0gQ0xJIHdpdGhvdXQgaGF2aW5nIHRvIHJlLXJ1biBDREsgKG5vdGU6IHdlXG4gICAqIGNhbm5vdCBhY2hpZXZlIHRoaXMgZm9yIGJ1bmRsZWQgYXNzZXRzLCBpZiBhc3NldHMgYXJlIGJ1bmRsZWQgdGhleVxuICAgKiB3aWxsIGhhdmUgdG8gcmUtcnVuIENESyBDTEkgdG8gcmUtYnVuZGxlIHVwZGF0ZWQgdmVyc2lvbnMpLlxuICAgKlxuICAgKiBBYnNvbHV0ZSBwYXRoOiBTQU0gQ0xJIGV4cGVjdHMgYGN3ZGAtcmVsYXRpdmUgcGF0aHMgaW4gYSByZXNvdXJjZSdzXG4gICAqIGBhd3M6YXNzZXQ6cGF0aGAgbWV0YWRhdGEuIEluIG9yZGVyIHRvIGJlIHByZWRpY3RhYmxlLCB3ZSB3aWxsIGFsd2F5cyBvdXRwdXRcbiAgICogYWJzb2x1dGUgcGF0aHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0U3RhZ2luZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNlbGVjdCB3aGljaCBzdGFja3Mgc2hvdWxkIGhhdmUgYXNzZXQgYnVuZGxpbmcgZW5hYmxlZFxuICAgKlxuICAgKiBAZGVmYXVsdCBbXCIqKlwiXSAtIGFsbCBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IGJ1bmRsaW5nRm9yU3RhY2tzPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gY29uZmlndXJlIGxvYWRpbmcgb2YgdGhlIGFzc2VtYmx5IGFmdGVyIGl0IGhhcyBiZWVuIHN5bnRoZXNpemVkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEFzc2VtYmx5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDaGVjayB0aGUgVG9vbGtpdCBzdXBwb3J0cyB0aGUgQ2xvdWQgQXNzZW1ibHkgU2NoZW1hIHZlcnNpb25cbiAgICpcbiAgICogV2hlbiBkaXNhYmxlZCwgYWxsb3dzIHRvIFRvb2xraXQgdG8gcmVhZCBhIG5ld2VyIGNsb3VkIGFzc2VtYmx5IHRoYW4gdGhlIENYIEFQSSBpcyBkZXNpZ25lZFxuICAgKiB0byBzdXBwb3J0LiBZb3VyIGFwcGxpY2F0aW9uIG1heSBub3QgYmUgYXdhcmUgb2YgYWxsIGZlYXR1cmVzIHRoYXQgaW4gdXNlIGluIHRoZSBDbG91ZCBBc3NlbWJseS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tWZXJzaW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVmFsaWRhdGUgZW51bXMgdG8gb25seSBoYXZlIGtub3duIHZhbHVlc1xuICAgKlxuICAgKiBXaGVuIGRpc2FibGVkLCB0aGUgVG9vbGtpdCBtYXkgcmVhZCBlbnVtIHZhbHVlcyBpdCBkb2Vzbid0IGtub3cgYWJvdXQgeWV0LlxuICAgKiBZb3Ugd2lsbCBoYXZlIHRvIG1ha2Ugc3VyZSB0byBhbHdheXMgY2hlY2sgdGhlIHZhbHVlcyBvZiBlbnVtcyB5b3UgZW5jb3VudGVyIGluIHRoZSBtYW5pZmVzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tFbnVtcz86IGJvb2xlYW47XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdGhlIGJ1aWxkZXIgZnVuY3Rpb24gcmVjZWl2ZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZW1ibHlCdWlsZGVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIG91dHB1dCBkaXJlY3RvcnkgaW50byB3aGljaCB0byB0aGUgYnVpbGRlciBhcHAgd2lsbCBlbWl0IHN5bnRoZXNpemVkIGFydGlmYWN0cy5cbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbnRleHQgcHJvdmlkZWQgdHAgdGhlIGJ1aWxkZXIgYXBwIHRvIHN5bnRoZXNpemUgdGhlIENsb3VkIEFzc2VtYmx5LCBpbmNsdWRpbmcgbG9va2VkLXVwIGNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgc3ludGhlc2lzIHBhcmFtZXRlcnMgYW5kIHByb2R1Y2VzIGEgQ2xvdWQgQXNzZW1ibHlcbiAqXG4gKiBNb3N0IHR5cGljYWxseSwgdGhlIHByb3BlcnRpZXMgcGFzc2VkIGhlcmUgd2lsbCBiZSB1c2VkIHRvIGNvbnN0cnVjdCBhXG4gKiBgY2RrLkFwcGAsIGFuZCB0aGUgcmV0dXJuIHZhbHVlIGlzIHRoZSByZXR1cm4gdmFsdWUgb2YgYGFwcC5zeW50aCgpYC5cbiAqL1xuZXhwb3J0IHR5cGUgQXNzZW1ibHlCdWlsZGVyID0gKHByb3BzOiBBc3NlbWJseUJ1aWxkZXJQcm9wcykgPT4gUHJvbWlzZTxjeHNjaGVtYS5JQ2xvdWRBc3NlbWJseT47XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgY3JlYXRpbmcgYSBDTEkgZnJvbSBhbiBBV1MgQ0RLIEFwcCBkaXJlY3RvcnlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseURpcmVjdG9yeVByb3BzIHtcbiAgLyoqXG4gICAqIE9wdGlvbnMgdG8gY29uZmlndXJlIGxvYWRpbmcgb2YgdGhlIGFzc2VtYmx5IGFmdGVyIGl0IGhhcyBiZWVuIHN5bnRoZXNpemVkXG4gICAqL1xuICByZWFkb25seSBsb2FkQXNzZW1ibHlPcHRpb25zPzogTG9hZEFzc2VtYmx5T3B0aW9ucztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBjcmVhdGluZyBhIENMSSBmcm9tIGFuIEFXUyBDREsgQXBwIGRpcmVjdG9yeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2VtYmx5U291cmNlUHJvcHMge1xuICAvKipcbiAgICogRXhlY3V0ZSB0aGUgYXBwbGljYXRpb24gaW4gdGhpcyB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5XG4gICAqL1xuICByZWFkb25seSB3b3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgc3ludGhlc2l6ZWQgY2xvdWQgYXNzZW1ibHkgaW50byBhIGRpcmVjdG9yeVxuICAgKlxuICAgKiBAZGVmYXVsdCBjZGsub3V0XG4gICAqL1xuICByZWFkb25seSBvdXRkaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gY29udGV4dCBsb29rdXBzLlxuICAgKlxuICAgKiBTeW50aGVzaXMgZmFpbHMgaWYgdGhpcyBpcyBkaXNhYmxlZCBhbmQgY29udGV4dCBsb29rdXBzIG5lZWQgdG8gYmUgcGVyZm9ybWVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBsb29rdXBzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29udGV4dCB2YWx1ZXMgZm9yIHRoZSBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQ29udGV4dCBjYW4gYmUgcmVhZCBpbiB0aGUgYXBwIGZyb20gYW55IGNvbnN0cnVjdCB1c2luZyBgbm9kZS5nZXRDb250ZXh0KGtleSlgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvbnRleHRcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ/OiB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9O1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIHRoYXQgYXJlIHBhc3NlZCB0aHJvdWdoIHRoZSBjb250ZXh0IHRvIGEgQ0RLIGFwcCBvbiBzeW50aFxuICAgKi9cbiAgcmVhZG9ubHkgc3ludGhPcHRpb25zPzogQXBwU3ludGhPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIHRvIGNvbmZpZ3VyZSBsb2FkaW5nIG9mIHRoZSBhc3NlbWJseSBhZnRlciBpdCBoYXMgYmVlbiBzeW50aGVzaXplZFxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZEFzc2VtYmx5T3B0aW9ucz86IExvYWRBc3NlbWJseU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIERlbGV0ZSB0aGUgYG91dGRpcmAgd2hlbiB0aGUgYXNzZW1ibHkgaXMgZGlzcG9zZWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBgdHJ1ZWAgaWYgYG91dGRpcmAgaXMgbm90IGdpdmVuLCBgZmFsc2VgIG90aGVyd2lzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcG9zZU91dGRpcj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGBmcm9tQ2RrQXBwYCBBc3NlbWJseSBTb3VyY2UgY29uc3RydWN0b3JcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGcm9tQ2RrQXBwT3B0aW9ucyBleHRlbmRzIEFzc2VtYmx5U291cmNlUHJvcHMge1xuICAvKipcbiAgICogQWRkaXRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAgICpcbiAgICogVGhlc2UgZW52aXJvbm1lbnQgdmFyaWFibGVzIHdpbGwgYmUgc2V0IGluIGFkZGl0aW9uIHRvIHRoZSBlbnZpcm9ubWVudFxuICAgKiB2YXJpYWJsZXMgY3VycmVudGx5IHNldCBpbiB0aGUgcHJvY2Vzcy4gQSB2YWx1ZSBvZiBgdW5kZWZpbmVkYCB3aWxsXG4gICAqIHVuc2V0IGEgcGFydGljdWxhciBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD47XG59XG5cbi8qKlxuICogU2V0dGluZ3MgdGhhdCBhcmUgcGFzc2VkIHRvIGEgQ0RLIGFwcCB2aWEgdGhlIGNvbnRleHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBTeW50aE9wdGlvbnMge1xuICAvKipcbiAgICogRGVidWcgdGhlIENESyBhcHAuXG4gICAqIExvZ3MgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBkdXJpbmcgc3ludGhlc2lzLCBzdWNoIGFzIGNyZWF0aW9uIHN0YWNrIHRyYWNlcyBvZiB0b2tlbnMuXG4gICAqIFRoaXMgYWxzbyBzZXRzIHRoZSBgQ0RLX0RFQlVHYCBlbnYgdmFyaWFibGUgYW5kIHdpbGwgc2xvdyBkb3duIHN5bnRoZXNpcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRlYnVnPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgZW1iZWRkaW5nIG9mIHRoZSBcImF3czpjZGs6cGF0aFwiIGluIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIG1ldGFkYXRhLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwYXRoTWV0YWRhdGE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgdGhlIGNvbGxlY3Rpb24gYW5kIHJlcG9ydGluZyBvZiB2ZXJzaW9uIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uUmVwb3J0aW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hlIGVuYWJsZWQsIGBhd3M6YXNzZXQ6eHh4YCBtZXRhZGF0YSBlbnRyaWVzIGFyZSBhZGRlZCB0byB0aGUgdGVtcGxhdGUuXG4gICAqXG4gICAqIERpc2FibGluZyB0aGlzIGNhbiBiZSB1c2VmdWwgaW4gY2VydGFpbiBjYXNlcyBsaWtlIGludGVncmF0aW9uIHRlc3RzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhc3NldE1ldGFkYXRhPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGFzc2V0IHN0YWdpbmcuXG4gICAqXG4gICAqIERpc2FibGluZyBhc3NldCBzdGFnaW5nIG1lYW5zIHRoYXQgY29weWFibGUgYXNzZXRzIHdpbGwgbm90IGJlIGNvcGllZCB0byB0aGVcbiAgICogb3V0cHV0IGRpcmVjdG9yeSBhbmQgd2lsbCBiZSByZWZlcmVuY2VkIHdpdGggYWJzb2x1dGUgcGF0aHMuXG4gICAqXG4gICAqIE5vdCBjb3BpZWQgdG8gdGhlIG91dHB1dCBkaXJlY3Rvcnk6IHRoaXMgaXMgc28gdXNlcnMgY2FuIGl0ZXJhdGUgb24gdGhlXG4gICAqIExhbWJkYSBzb3VyY2UgYW5kIHJ1biBTQU0gQ0xJIHdpdGhvdXQgaGF2aW5nIHRvIHJlLXJ1biBDREsgKG5vdGU6IHdlXG4gICAqIGNhbm5vdCBhY2hpZXZlIHRoaXMgZm9yIGJ1bmRsZWQgYXNzZXRzLCBpZiBhc3NldHMgYXJlIGJ1bmRsZWQgdGhleVxuICAgKiB3aWxsIGhhdmUgdG8gcmUtcnVuIENESyBDTEkgdG8gcmUtYnVuZGxlIHVwZGF0ZWQgdmVyc2lvbnMpLlxuICAgKlxuICAgKiBBYnNvbHV0ZSBwYXRoOiBTQU0gQ0xJIGV4cGVjdHMgYGN3ZGAtcmVsYXRpdmUgcGF0aHMgaW4gYSByZXNvdXJjZSdzXG4gICAqIGBhd3M6YXNzZXQ6cGF0aGAgbWV0YWRhdGEuIEluIG9yZGVyIHRvIGJlIHByZWRpY3RhYmxlLCB3ZSB3aWxsIGFsd2F5cyBvdXRwdXRcbiAgICogYWJzb2x1dGUgcGF0aHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0U3RhZ2luZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNlbGVjdCB3aGljaCBzdGFja3Mgc2hvdWxkIGhhdmUgYXNzZXQgYnVuZGxpbmcgZW5hYmxlZFxuICAgKlxuICAgKiBAZGVmYXVsdCBbXCIqKlwiXSAtIGFsbCBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IGJ1bmRsaW5nRm9yU3RhY2tzPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gY29uZmlndXJlIGxvYWRpbmcgb2YgdGhlIGFzc2VtYmx5IGFmdGVyIGl0IGhhcyBiZWVuIHN5bnRoZXNpemVkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEFzc2VtYmx5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDaGVjayB0aGUgVG9vbGtpdCBzdXBwb3J0cyB0aGUgQ2xvdWQgQXNzZW1ibHkgU2NoZW1hIHZlcnNpb25cbiAgICpcbiAgICogV2hlbiBkaXNhYmxlZCwgYWxsb3dzIHRvIFRvb2xraXQgdG8gcmVhZCBhIG5ld2VyIGNsb3VkIGFzc2VtYmx5IHRoYW4gdGhlIENYIEFQSSBpcyBkZXNpZ25lZFxuICAgKiB0byBzdXBwb3J0LiBZb3VyIGFwcGxpY2F0aW9uIG1heSBub3QgYmUgYXdhcmUgb2YgYWxsIGZlYXR1cmVzIHRoYXQgaW4gdXNlIGluIHRoZSBDbG91ZCBBc3NlbWJseS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tWZXJzaW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVmFsaWRhdGUgZW51bXMgdG8gb25seSBoYXZlIGtub3duIHZhbHVlc1xuICAgKlxuICAgKiBXaGVuIGRpc2FibGVkLCB0aGUgVG9vbGtpdCBtYXkgcmVhZCBlbnVtIHZhbHVlcyBpdCBkb2Vzbid0IGtub3cgYWJvdXQgeWV0LlxuICAgKiBZb3Ugd2lsbCBoYXZlIHRvIG1ha2Ugc3VyZSB0byBhbHdheXMgY2hlY2sgdGhlIHZhbHVlcyBvZiBlbnVtcyB5b3UgZW5jb3VudGVyIGluIHRoZSBtYW5pZmVzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tFbnVtcz86IGJvb2xlYW47XG59XG4iXX0=
@@ -0,0 +1,55 @@
1
+ import type * as cxapi from '@aws-cdk/cx-api';
2
+ import { StackCollection } from './stack-collection';
3
+ import type { IoHelper } from '../io/private/io-helper';
4
+ export interface IStackAssembly {
5
+ /**
6
+ * The directory this CloudAssembly was read from
7
+ */
8
+ directory: string;
9
+ /**
10
+ * Select a single stack by its ID
11
+ */
12
+ stackById(stackId: string): StackCollection;
13
+ }
14
+ /**
15
+ * When selecting stacks, what other stacks to include because of dependencies
16
+ */
17
+ export declare enum ExtendedStackSelection {
18
+ /**
19
+ * Don't select any extra stacks
20
+ */
21
+ None = 0,
22
+ /**
23
+ * Include stacks that this stack depends on
24
+ */
25
+ Upstream = 1,
26
+ /**
27
+ * Include stacks that depend on this stack
28
+ */
29
+ Downstream = 2
30
+ }
31
+ /**
32
+ * A single Cloud Assembly and the operations we do on it to deploy the artifacts inside
33
+ */
34
+ export declare abstract class BaseStackAssembly implements IStackAssembly {
35
+ readonly assembly: cxapi.CloudAssembly;
36
+ /**
37
+ * Sanitize a list of stack match patterns
38
+ */
39
+ protected static sanitizePatterns(patterns: string[]): string[];
40
+ /**
41
+ * The directory this CloudAssembly was read from
42
+ */
43
+ readonly directory: string;
44
+ /**
45
+ * The IoHelper used for messaging
46
+ */
47
+ protected readonly ioHelper: IoHelper;
48
+ constructor(assembly: cxapi.CloudAssembly, ioHelper: IoHelper);
49
+ /**
50
+ * Select a single stack by its ID
51
+ */
52
+ stackById(stackId: string): StackCollection;
53
+ protected selectMatchingStacks(stacks: cxapi.CloudFormationStackArtifact[], patterns: string[], extend?: ExtendedStackSelection): Promise<StackCollection>;
54
+ protected extendStacks(matched: cxapi.CloudFormationStackArtifact[], all: cxapi.CloudFormationStackArtifact[], extend?: ExtendedStackSelection): Promise<StackCollection>;
55
+ }