@aws-cdk/toolkit-lib 0.3.2 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/api-extractor.json +3 -0
  2. package/build-info.json +2 -2
  3. package/db.json.gz +0 -0
  4. package/lib/actions/bootstrap/index.d.ts +1 -1
  5. package/lib/actions/bootstrap/index.js +5 -5
  6. package/lib/actions/bootstrap/private/helpers.js +3 -3
  7. package/lib/actions/deploy/index.d.ts +1 -1
  8. package/lib/actions/deploy/index.js +1 -1
  9. package/lib/actions/deploy/private/deploy-options.d.ts +1 -1
  10. package/lib/actions/deploy/private/deploy-options.js +1 -1
  11. package/lib/actions/deploy/private/helpers.d.ts +3 -2
  12. package/lib/actions/deploy/private/helpers.js +3 -3
  13. package/lib/actions/diff/index.d.ts +1 -1
  14. package/lib/actions/diff/index.js +1 -1
  15. package/lib/actions/diff/private/helpers.d.ts +5 -9
  16. package/lib/actions/diff/private/helpers.js +13 -30
  17. package/lib/actions/refactor/index.d.ts +12 -0
  18. package/lib/actions/refactor/index.js +1 -1
  19. package/lib/api/aws-auth/account-cache.d.ts +41 -0
  20. package/lib/api/aws-auth/account-cache.js +108 -0
  21. package/lib/api/aws-auth/awscli-compatible.d.ts +70 -0
  22. package/lib/api/aws-auth/awscli-compatible.js +250 -0
  23. package/lib/api/aws-auth/cached.d.ts +11 -0
  24. package/lib/api/aws-auth/cached.js +26 -0
  25. package/lib/api/aws-auth/credential-plugins.d.ts +38 -0
  26. package/lib/api/aws-auth/credential-plugins.js +154 -0
  27. package/lib/api/aws-auth/private/index.d.ts +11 -0
  28. package/lib/api/aws-auth/private/index.js +37 -0
  29. package/lib/api/aws-auth/provider-caching.d.ts +13 -0
  30. package/lib/api/aws-auth/provider-caching.js +24 -0
  31. package/lib/api/aws-auth/proxy-agent.d.ts +13 -0
  32. package/lib/api/aws-auth/proxy-agent.js +54 -0
  33. package/lib/api/aws-auth/sdk-logger.d.ts +69 -0
  34. package/lib/api/aws-auth/sdk-logger.js +128 -0
  35. package/lib/api/aws-auth/sdk-provider.d.ts +195 -0
  36. package/lib/api/aws-auth/sdk-provider.js +373 -0
  37. package/lib/api/aws-auth/sdk.d.ts +235 -0
  38. package/lib/api/aws-auth/sdk.js +391 -0
  39. package/lib/api/aws-auth/tracing.d.ts +11 -0
  40. package/lib/api/aws-auth/tracing.js +60 -0
  41. package/lib/api/aws-auth/user-agent.d.ts +7 -0
  42. package/lib/api/aws-auth/user-agent.js +20 -0
  43. package/lib/api/aws-auth/util.d.ts +6 -0
  44. package/lib/api/aws-auth/util.js +21 -0
  45. package/lib/api/bootstrap/bootstrap-environment.d.ts +35 -0
  46. package/lib/api/bootstrap/bootstrap-environment.js +323 -0
  47. package/lib/api/bootstrap/bootstrap-props.d.ts +130 -0
  48. package/lib/api/bootstrap/bootstrap-props.js +14 -0
  49. package/lib/api/bootstrap/deploy-bootstrap.d.ts +39 -0
  50. package/lib/api/bootstrap/deploy-bootstrap.js +147 -0
  51. package/lib/api/bootstrap/index.d.ts +3 -0
  52. package/lib/api/bootstrap/index.js +23 -0
  53. package/lib/api/bootstrap/legacy-template.d.ts +2 -0
  54. package/lib/api/bootstrap/legacy-template.js +82 -0
  55. package/lib/api/cloud-assembly/environment.d.ts +43 -0
  56. package/lib/api/cloud-assembly/environment.js +127 -0
  57. package/lib/api/cloud-assembly/index.d.ts +1 -1
  58. package/lib/api/cloud-assembly/index.js +5 -4
  59. package/lib/api/cloud-assembly/private/context-aware-source.d.ts +1 -1
  60. package/lib/api/cloud-assembly/private/context-aware-source.js +7 -7
  61. package/lib/api/cloud-assembly/private/exec.js +3 -3
  62. package/lib/api/cloud-assembly/private/prepare-source.d.ts +2 -1
  63. package/lib/api/cloud-assembly/private/prepare-source.js +17 -15
  64. package/lib/api/cloud-assembly/private/readable-assembly.d.ts +1 -1
  65. package/lib/api/cloud-assembly/private/readable-assembly.js +1 -1
  66. package/lib/api/cloud-assembly/private/source-builder.d.ts +10 -8
  67. package/lib/api/cloud-assembly/private/source-builder.js +43 -24
  68. package/lib/api/cloud-assembly/private/stack-assembly.d.ts +2 -1
  69. package/lib/api/cloud-assembly/private/stack-assembly.js +16 -15
  70. package/lib/api/cloud-assembly/source-builder.d.ts +19 -0
  71. package/lib/api/cloud-assembly/source-builder.js +1 -1
  72. package/lib/api/cloud-assembly/stack-assembly.d.ts +55 -0
  73. package/lib/api/cloud-assembly/stack-assembly.js +139 -0
  74. package/lib/api/cloud-assembly/stack-collection.d.ts +27 -0
  75. package/lib/api/cloud-assembly/stack-collection.js +112 -0
  76. package/lib/api/cloud-assembly/stack-selector.d.ts +81 -2
  77. package/lib/api/cloud-assembly/stack-selector.js +62 -5
  78. package/lib/api/cloudformation/evaluate-cloudformation-template.d.ts +85 -0
  79. package/lib/api/cloudformation/evaluate-cloudformation-template.js +456 -0
  80. package/lib/api/cloudformation/index.d.ts +4 -0
  81. package/lib/api/cloudformation/index.js +21 -0
  82. package/lib/api/cloudformation/nested-stack-helpers.d.ts +25 -0
  83. package/lib/api/cloudformation/nested-stack-helpers.js +86 -0
  84. package/lib/api/cloudformation/stack-helpers.d.ts +96 -0
  85. package/lib/api/cloudformation/stack-helpers.js +163 -0
  86. package/lib/api/cloudformation/template-body-parameter.d.ts +22 -0
  87. package/lib/api/cloudformation/template-body-parameter.js +104 -0
  88. package/lib/api/context.d.ts +40 -0
  89. package/lib/api/context.js +84 -0
  90. package/lib/api/deployments/asset-manifest-builder.d.ts +8 -0
  91. package/lib/api/deployments/asset-manifest-builder.js +33 -0
  92. package/lib/api/deployments/asset-publishing.d.ts +60 -0
  93. package/lib/api/deployments/asset-publishing.js +144 -0
  94. package/lib/api/deployments/assets.d.ts +11 -0
  95. package/lib/api/deployments/assets.js +108 -0
  96. package/lib/api/deployments/cfn-api.d.ts +145 -0
  97. package/lib/api/deployments/cfn-api.js +444 -0
  98. package/lib/api/deployments/checks.d.ts +9 -0
  99. package/lib/api/deployments/checks.js +72 -0
  100. package/lib/api/deployments/deploy-stack.d.ts +164 -0
  101. package/lib/api/deployments/deploy-stack.js +490 -0
  102. package/lib/api/deployments/deployment-method.d.ts +24 -0
  103. package/lib/api/deployments/deployment-method.js +3 -0
  104. package/lib/api/deployments/deployment-result.d.ts +21 -0
  105. package/lib/api/deployments/deployment-result.js +10 -0
  106. package/lib/api/deployments/deployments.d.ts +289 -0
  107. package/lib/api/deployments/deployments.js +355 -0
  108. package/lib/api/deployments/index.d.ts +6 -0
  109. package/lib/api/deployments/index.js +27 -0
  110. package/lib/api/diff/diff-formatter.d.ts +147 -0
  111. package/lib/api/diff/diff-formatter.js +225 -0
  112. package/lib/api/diff/index.d.ts +1 -0
  113. package/lib/api/diff/index.js +18 -0
  114. package/lib/api/environment/environment-access.d.ts +139 -0
  115. package/lib/api/environment/environment-access.js +205 -0
  116. package/lib/api/environment/environment-resources.d.ts +75 -0
  117. package/lib/api/environment/environment-resources.js +213 -0
  118. package/lib/api/environment/index.d.ts +3 -0
  119. package/lib/api/environment/index.js +20 -0
  120. package/lib/api/environment/placeholders.d.ts +10 -0
  121. package/lib/api/environment/placeholders.js +23 -0
  122. package/lib/api/garbage-collection/garbage-collector.d.ts +158 -0
  123. package/lib/api/garbage-collection/garbage-collector.js +614 -0
  124. package/lib/api/garbage-collection/index.d.ts +3 -0
  125. package/lib/api/garbage-collection/index.js +21 -0
  126. package/lib/api/garbage-collection/progress-printer.d.ts +23 -0
  127. package/lib/api/garbage-collection/progress-printer.js +80 -0
  128. package/lib/api/garbage-collection/stack-refresh.d.ts +49 -0
  129. package/lib/api/garbage-collection/stack-refresh.js +152 -0
  130. package/lib/api/hotswap/appsync-mapping-templates.d.ts +4 -0
  131. package/lib/api/hotswap/appsync-mapping-templates.js +162 -0
  132. package/lib/api/hotswap/code-build-projects.d.ts +4 -0
  133. package/lib/api/hotswap/code-build-projects.js +62 -0
  134. package/lib/api/hotswap/common.d.ts +89 -0
  135. package/lib/api/hotswap/common.js +137 -0
  136. package/lib/api/hotswap/ecs-services.d.ts +4 -0
  137. package/lib/api/hotswap/ecs-services.js +159 -0
  138. package/lib/api/hotswap/hotswap-deployments.d.ts +17 -0
  139. package/lib/api/hotswap/hotswap-deployments.js +441 -0
  140. package/lib/api/hotswap/index.d.ts +2 -0
  141. package/lib/api/hotswap/index.js +19 -0
  142. package/lib/api/hotswap/lambda-functions.d.ts +4 -0
  143. package/lib/api/hotswap/lambda-functions.js +297 -0
  144. package/lib/api/hotswap/s3-bucket-deployments.d.ts +5 -0
  145. package/lib/api/hotswap/s3-bucket-deployments.js +117 -0
  146. package/lib/api/hotswap/stepfunctions-state-machines.d.ts +4 -0
  147. package/lib/api/hotswap/stepfunctions-state-machines.js +48 -0
  148. package/lib/api/index.d.ts +24 -0
  149. package/lib/api/index.js +41 -0
  150. package/lib/api/io/index.d.ts +3 -1
  151. package/lib/api/io/index.js +18 -1
  152. package/lib/api/io/io-host.d.ts +15 -0
  153. package/lib/api/io/io-host.js +3 -0
  154. package/lib/api/io/io-message.d.ts +76 -0
  155. package/lib/api/io/io-message.js +3 -0
  156. package/lib/api/io/private/index.d.ts +7 -1
  157. package/lib/api/io/private/index.js +8 -5
  158. package/lib/api/io/private/io-default-messages.d.ts +21 -0
  159. package/lib/api/io/private/io-default-messages.js +59 -0
  160. package/lib/api/io/private/io-helper.d.ts +32 -0
  161. package/lib/api/io/private/io-helper.js +51 -0
  162. package/lib/api/io/private/level-priority.d.ts +11 -0
  163. package/lib/api/io/private/level-priority.js +33 -0
  164. package/lib/api/io/private/message-maker.d.ts +89 -0
  165. package/lib/api/io/private/message-maker.js +60 -0
  166. package/lib/api/io/private/messages.d.ts +178 -0
  167. package/lib/api/io/private/messages.js +534 -0
  168. package/lib/api/io/private/sdk-logger.d.ts +1 -1
  169. package/lib/api/io/private/sdk-logger.js +6 -6
  170. package/lib/api/io/private/span.d.ts +93 -0
  171. package/lib/api/io/private/span.js +87 -0
  172. package/lib/api/io/private/testing/fake-io-host.d.ts +28 -0
  173. package/lib/api/io/private/testing/fake-io-host.js +41 -0
  174. package/lib/api/io/private/testing/index.d.ts +2 -0
  175. package/lib/api/io/private/testing/index.js +19 -0
  176. package/lib/api/io/private/testing/test-io-host.d.ts +27 -0
  177. package/lib/api/io/private/testing/test-io-host.js +61 -0
  178. package/lib/api/io/private/types.d.ts +4 -0
  179. package/lib/api/io/private/types.js +3 -0
  180. package/lib/api/io/toolkit-action.d.ts +4 -0
  181. package/lib/api/io/toolkit-action.js +3 -0
  182. package/lib/api/logs-monitor/find-cloudwatch-logs.d.ts +25 -0
  183. package/lib/api/logs-monitor/find-cloudwatch-logs.js +95 -0
  184. package/lib/api/logs-monitor/index.d.ts +2 -0
  185. package/lib/api/logs-monitor/index.js +19 -0
  186. package/lib/api/logs-monitor/logs-monitor.d.ts +76 -0
  187. package/lib/api/logs-monitor/logs-monitor.js +194 -0
  188. package/lib/api/notices/cached-data-source.d.ts +13 -0
  189. package/lib/api/notices/cached-data-source.js +77 -0
  190. package/lib/api/notices/filter.d.ts +59 -0
  191. package/lib/api/notices/filter.js +189 -0
  192. package/lib/api/notices/index.d.ts +1 -0
  193. package/lib/api/notices/index.js +18 -0
  194. package/lib/api/notices/notices.d.ts +111 -0
  195. package/lib/api/notices/notices.js +131 -0
  196. package/lib/api/notices/types.d.ts +37 -0
  197. package/lib/api/notices/types.js +3 -0
  198. package/lib/api/notices/web-data-source.d.ts +9 -0
  199. package/lib/api/notices/web-data-source.js +70 -0
  200. package/lib/api/plugin/context-provider-plugin.d.ts +6 -0
  201. package/lib/api/plugin/context-provider-plugin.js +7 -0
  202. package/lib/api/plugin/index.d.ts +3 -0
  203. package/lib/api/plugin/index.js +20 -0
  204. package/lib/api/plugin/mode.d.ts +4 -0
  205. package/lib/api/plugin/mode.js +9 -0
  206. package/lib/api/plugin/plugin.d.ts +70 -0
  207. package/lib/api/plugin/plugin.js +127 -0
  208. package/lib/api/private.d.ts +1 -0
  209. package/lib/api/private.js +18 -0
  210. package/lib/api/refactoring/cloudformation.d.ts +38 -0
  211. package/lib/api/refactoring/cloudformation.js +56 -0
  212. package/lib/api/refactoring/digest.d.ts +26 -0
  213. package/lib/api/refactoring/digest.js +175 -0
  214. package/lib/api/refactoring/exclude.d.ts +29 -0
  215. package/lib/api/refactoring/exclude.js +94 -0
  216. package/lib/api/refactoring/index.d.ts +32 -0
  217. package/lib/api/refactoring/index.js +191 -0
  218. package/lib/api/require-approval.d.ts +17 -0
  219. package/lib/api/require-approval.js +22 -0
  220. package/lib/api/resource-import/importer.d.ts +216 -0
  221. package/lib/api/resource-import/importer.js +331 -0
  222. package/lib/api/resource-import/index.d.ts +2 -0
  223. package/lib/api/resource-import/index.js +19 -0
  224. package/lib/api/resource-import/migrator.d.ts +26 -0
  225. package/lib/api/resource-import/migrator.js +73 -0
  226. package/lib/api/resource-metadata/index.d.ts +1 -0
  227. package/lib/api/resource-metadata/index.js +18 -0
  228. package/lib/api/resource-metadata/resource-metadata.d.ts +24 -0
  229. package/lib/api/resource-metadata/resource-metadata.js +42 -0
  230. package/lib/api/rwlock.d.ts +60 -0
  231. package/lib/api/rwlock.js +204 -0
  232. package/lib/api/settings.d.ts +26 -0
  233. package/lib/api/settings.js +107 -0
  234. package/lib/api/shared-private.d.ts +8 -6
  235. package/lib/api/shared-private.js +31 -12561
  236. package/lib/api/stack-events/index.d.ts +4 -0
  237. package/lib/api/stack-events/index.js +23 -0
  238. package/lib/api/stack-events/stack-activity-monitor.d.ts +100 -0
  239. package/lib/api/stack-events/stack-activity-monitor.js +164 -0
  240. package/lib/api/stack-events/stack-event-poller.d.ts +69 -0
  241. package/lib/api/stack-events/stack-event-poller.js +130 -0
  242. package/lib/api/stack-events/stack-progress-monitor.d.ts +48 -0
  243. package/lib/api/stack-events/stack-progress-monitor.js +98 -0
  244. package/lib/api/stack-events/stack-status.d.ts +42 -0
  245. package/lib/api/stack-events/stack-status.js +90 -0
  246. package/lib/api/streams.d.ts +7 -0
  247. package/lib/api/streams.js +24 -0
  248. package/lib/api/tags.d.ts +9 -0
  249. package/lib/api/tags.js +10 -0
  250. package/lib/api/toolkit-info.d.ts +52 -0
  251. package/lib/api/toolkit-info.js +157 -0
  252. package/lib/api/tree.d.ts +31 -0
  253. package/lib/api/tree.js +37 -0
  254. package/lib/api/work-graph/index.d.ts +3 -0
  255. package/lib/api/work-graph/index.js +20 -0
  256. package/lib/api/work-graph/work-graph-builder.d.ts +34 -0
  257. package/lib/api/work-graph/work-graph-builder.js +172 -0
  258. package/lib/api/work-graph/work-graph-types.d.ts +50 -0
  259. package/lib/api/work-graph/work-graph-types.js +13 -0
  260. package/lib/api/work-graph/work-graph.d.ts +72 -0
  261. package/lib/api/work-graph/work-graph.js +349 -0
  262. package/lib/context-providers/ami.d.ts +13 -0
  263. package/lib/context-providers/ami.js +52 -0
  264. package/lib/context-providers/availability-zones.d.ts +13 -0
  265. package/lib/context-providers/availability-zones.js +29 -0
  266. package/lib/context-providers/cc-api-provider.d.ts +30 -0
  267. package/lib/context-providers/cc-api-provider.js +145 -0
  268. package/lib/context-providers/endpoint-service-availability-zones.d.ts +13 -0
  269. package/lib/context-providers/endpoint-service-availability-zones.js +35 -0
  270. package/lib/context-providers/hosted-zones.d.ts +12 -0
  271. package/lib/context-providers/hosted-zones.js +69 -0
  272. package/lib/context-providers/index.d.ts +44 -0
  273. package/lib/context-providers/index.js +128 -0
  274. package/lib/context-providers/keys.d.ts +13 -0
  275. package/lib/context-providers/keys.js +54 -0
  276. package/lib/context-providers/load-balancers.d.ts +20 -0
  277. package/lib/context-providers/load-balancers.js +161 -0
  278. package/lib/context-providers/security-groups.d.ts +9 -0
  279. package/lib/context-providers/security-groups.js +69 -0
  280. package/lib/context-providers/ssm-parameters.d.ts +25 -0
  281. package/lib/context-providers/ssm-parameters.js +61 -0
  282. package/lib/context-providers/vpcs.d.ts +13 -0
  283. package/lib/context-providers/vpcs.js +291 -0
  284. package/lib/index.d.ts +4 -1
  285. package/lib/index.js +5 -2
  286. package/lib/index_bg.wasm +0 -0
  287. package/lib/payloads/bootstrap-environment-progress.d.ts +17 -0
  288. package/lib/payloads/bootstrap-environment-progress.js +3 -0
  289. package/lib/payloads/context.d.ts +9 -0
  290. package/lib/payloads/context.js +3 -0
  291. package/lib/payloads/deploy.d.ts +50 -0
  292. package/lib/payloads/deploy.js +3 -0
  293. package/lib/payloads/destroy.d.ts +23 -0
  294. package/lib/payloads/destroy.js +3 -0
  295. package/lib/payloads/diff.d.ts +31 -0
  296. package/lib/payloads/diff.js +22 -0
  297. package/lib/payloads/hotswap.d.ts +212 -0
  298. package/lib/payloads/hotswap.js +43 -0
  299. package/lib/payloads/index.d.ts +17 -0
  300. package/lib/payloads/index.js +34 -0
  301. package/lib/payloads/list.d.ts +4 -0
  302. package/lib/payloads/list.js +3 -0
  303. package/lib/payloads/logs-monitor.d.ts +33 -0
  304. package/lib/payloads/logs-monitor.js +3 -0
  305. package/lib/payloads/progress.d.ts +14 -0
  306. package/lib/payloads/progress.js +3 -0
  307. package/lib/payloads/refactor.d.ts +14 -0
  308. package/lib/payloads/refactor.js +3 -0
  309. package/lib/payloads/rollback.d.ts +17 -0
  310. package/lib/payloads/rollback.js +3 -0
  311. package/lib/payloads/sdk-trace.d.ts +20 -0
  312. package/lib/payloads/sdk-trace.js +3 -0
  313. package/lib/payloads/stack-activity.d.ts +53 -0
  314. package/lib/payloads/stack-activity.js +3 -0
  315. package/lib/payloads/stack-details.d.ts +17 -0
  316. package/lib/payloads/stack-details.js +3 -0
  317. package/lib/payloads/synth.d.ts +7 -0
  318. package/lib/payloads/synth.js +3 -0
  319. package/lib/payloads/types.d.ts +95 -0
  320. package/lib/payloads/types.js +3 -0
  321. package/lib/payloads/watch.d.ts +27 -0
  322. package/lib/payloads/watch.js +3 -0
  323. package/lib/private/activity-printer/base.d.ts +50 -0
  324. package/lib/private/activity-printer/base.js +120 -0
  325. package/lib/private/activity-printer/current.d.ts +26 -0
  326. package/lib/private/activity-printer/current.js +122 -0
  327. package/lib/private/activity-printer/display.d.ts +13 -0
  328. package/lib/private/activity-printer/display.js +81 -0
  329. package/lib/private/activity-printer/history.d.ts +32 -0
  330. package/lib/private/activity-printer/history.js +109 -0
  331. package/lib/private/activity-printer/index.d.ts +3 -0
  332. package/lib/private/activity-printer/index.js +20 -0
  333. package/lib/private/index.d.ts +1 -0
  334. package/lib/private/index.js +18 -0
  335. package/lib/toolkit/non-interactive-io-host.js +5 -4
  336. package/lib/toolkit/private/index.d.ts +2 -1
  337. package/lib/toolkit/private/index.js +1 -1
  338. package/lib/toolkit/toolkit-error.d.ts +86 -0
  339. package/lib/toolkit/toolkit-error.js +132 -0
  340. package/lib/toolkit/toolkit.d.ts +2 -2
  341. package/lib/toolkit/toolkit.js +161 -130
  342. package/lib/toolkit/types.d.ts +0 -55
  343. package/lib/toolkit/types.js +1 -1
  344. package/lib/util/archive.d.ts +1 -0
  345. package/lib/util/archive.js +86 -0
  346. package/lib/util/arrays.d.ts +14 -0
  347. package/lib/util/arrays.js +36 -0
  348. package/lib/util/bool.d.ts +7 -0
  349. package/lib/util/bool.js +13 -0
  350. package/lib/util/bytes.d.ts +8 -0
  351. package/lib/util/bytes.js +21 -0
  352. package/lib/util/cloudformation.d.ts +16 -0
  353. package/lib/util/cloudformation.js +36 -0
  354. package/lib/util/content-hash.d.ts +5 -0
  355. package/lib/util/content-hash.js +43 -0
  356. package/lib/util/directories.d.ts +22 -0
  357. package/lib/util/directories.js +59 -0
  358. package/lib/util/format-error.d.ts +9 -0
  359. package/lib/util/format-error.js +22 -0
  360. package/lib/util/index.d.ts +19 -0
  361. package/lib/util/index.js +36 -0
  362. package/lib/util/json.d.ts +48 -0
  363. package/lib/util/json.js +68 -0
  364. package/lib/util/net.d.ts +9 -0
  365. package/lib/util/net.js +60 -0
  366. package/lib/util/objects.d.ts +65 -0
  367. package/lib/util/objects.js +230 -0
  368. package/lib/util/package-info.d.ts +3 -0
  369. package/lib/util/package-info.js +22 -0
  370. package/lib/util/parallel.d.ts +6 -0
  371. package/lib/util/parallel.js +48 -0
  372. package/lib/util/serialize.d.ts +27 -0
  373. package/lib/util/serialize.js +86 -0
  374. package/lib/util/string-manipulation.d.ts +18 -0
  375. package/lib/util/string-manipulation.js +46 -0
  376. package/lib/util/type-brands.d.ts +39 -0
  377. package/lib/util/type-brands.js +39 -0
  378. package/lib/util/types.d.ts +27 -0
  379. package/lib/util/types.js +25 -0
  380. package/lib/util/version-range.d.ts +2 -0
  381. package/lib/util/version-range.js +36 -0
  382. package/lib/util/yaml-cfn.d.ts +15 -0
  383. package/lib/util/yaml-cfn.js +58 -0
  384. package/package.json +26 -28
  385. package/tsdoc.json +15 -0
  386. package/lib/api/shared-private.js.map +0 -7
  387. package/lib/api/shared-public.d.ts +0 -2159
  388. package/lib/api/shared-public.js +0 -1110
  389. package/lib/api/shared-public.js.map +0 -7
  390. package/lib/private/util.d.ts +0 -1
  391. package/lib/private/util.js +0 -787
  392. package/lib/private/util.js.map +0 -7
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toYAML = toYAML;
4
+ exports.deserializeStructure = deserializeStructure;
5
+ exports.serializeStructure = serializeStructure;
6
+ exports.loadStructuredFile = loadStructuredFile;
7
+ exports.obscureTemplate = obscureTemplate;
8
+ exports.replacerBufferWithInfo = replacerBufferWithInfo;
9
+ const fs = require("fs/promises");
10
+ const bytes_1 = require("./bytes");
11
+ const yaml_cfn = require("./yaml-cfn");
12
+ /**
13
+ * Stringify to YAML
14
+ */
15
+ function toYAML(obj) {
16
+ return yaml_cfn.serialize(obj);
17
+ }
18
+ /**
19
+ * Parse either YAML or JSON
20
+ */
21
+ function deserializeStructure(str) {
22
+ return yaml_cfn.deserialize(str);
23
+ }
24
+ /**
25
+ * Serialize to either YAML or JSON
26
+ */
27
+ function serializeStructure(object, json) {
28
+ if (json) {
29
+ return JSON.stringify(object, undefined, 2);
30
+ }
31
+ else {
32
+ return toYAML(object);
33
+ }
34
+ }
35
+ /**
36
+ * Load a YAML or JSON file from disk
37
+ */
38
+ async function loadStructuredFile(fileName) {
39
+ const contents = await fs.readFile(fileName, { encoding: 'utf-8' });
40
+ return deserializeStructure(contents);
41
+ }
42
+ /**
43
+ * Remove any template elements that we don't want to show users.
44
+ */
45
+ function obscureTemplate(template = {}) {
46
+ if (template.Rules) {
47
+ // see https://github.com/aws/aws-cdk/issues/17942
48
+ if (template.Rules.CheckBootstrapVersion) {
49
+ if (Object.keys(template.Rules).length > 1) {
50
+ delete template.Rules.CheckBootstrapVersion;
51
+ }
52
+ else {
53
+ delete template.Rules;
54
+ }
55
+ }
56
+ }
57
+ return template;
58
+ }
59
+ /**
60
+ * Detects a buffer that has been converted to a JSON-like object
61
+ * In Node, `Buffer`s have `toJSON()` method that converts the buffer
62
+ * into a JS object that can be JSON stringified.
63
+ * Unfortunately this conversion happens before the replacer is called,
64
+ * so normal means of detecting a `Buffer` objet don't work anymore.
65
+ * @see https://github.com/nodejs/node-v0.x-archive/issues/5110
66
+ */
67
+ function isJsonBuffer(value) {
68
+ return typeof value === 'object'
69
+ && 'type' in value
70
+ && value.type === 'Buffer'
71
+ && 'data' in value
72
+ && Array.isArray(value.data);
73
+ }
74
+ /**
75
+ * A JSON.stringify() replacer that converts Buffers into a string with information
76
+ * Use this if you plan to print out JSON stringified objects that may contain a Buffer.
77
+ * Without this, large buffers (think: Megabytes) will completely fill up the output
78
+ * and even crash the system.
79
+ */
80
+ function replacerBufferWithInfo(_key, value) {
81
+ if (isJsonBuffer(value)) {
82
+ return `<Buffer: ${(0, bytes_1.formatBytes)(value.data.length)}>`;
83
+ }
84
+ return value;
85
+ }
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VyaWFsaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0Esd0JBRUM7QUFLRCxvREFFQztBQUtELGdEQU1DO0FBS0QsZ0RBR0M7QUFLRCwwQ0FhQztBQTJCRCx3REFLQztBQXJGRCxrQ0FBa0M7QUFDbEMsbUNBQXNDO0FBQ3RDLHVDQUF1QztBQUV2Qzs7R0FFRztBQUNILFNBQWdCLE1BQU0sQ0FBQyxHQUFRO0lBQzdCLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxHQUFXO0lBQzlDLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxNQUFXLEVBQUUsSUFBYTtJQUMzRCxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QixDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLGtCQUFrQixDQUFDLFFBQWdCO0lBQ3ZELE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNwRSxPQUFPLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxXQUFnQixFQUFFO0lBQ2hELElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25CLGtEQUFrRDtRQUNsRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN6QyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDO1lBQzlDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDeEIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLFlBQVksQ0FBQyxLQUFVO0lBSTlCLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUTtXQUMzQixNQUFNLElBQUksS0FBSztXQUNmLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUTtXQUN2QixNQUFNLElBQUksS0FBSztXQUNmLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLHNCQUFzQixDQUFDLElBQVMsRUFBRSxLQUFVO0lBQzFELElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTyxZQUFZLElBQUEsbUJBQVcsRUFBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDdkQsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzL3Byb21pc2VzJztcbmltcG9ydCB7IGZvcm1hdEJ5dGVzIH0gZnJvbSAnLi9ieXRlcyc7XG5pbXBvcnQgKiBhcyB5YW1sX2NmbiBmcm9tICcuL3lhbWwtY2ZuJztcblxuLyoqXG4gKiBTdHJpbmdpZnkgdG8gWUFNTFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9ZQU1MKG9iajogYW55KTogc3RyaW5nIHtcbiAgcmV0dXJuIHlhbWxfY2ZuLnNlcmlhbGl6ZShvYmopO1xufVxuXG4vKipcbiAqIFBhcnNlIGVpdGhlciBZQU1MIG9yIEpTT05cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplU3RydWN0dXJlKHN0cjogc3RyaW5nKTogYW55IHtcbiAgcmV0dXJuIHlhbWxfY2ZuLmRlc2VyaWFsaXplKHN0cik7XG59XG5cbi8qKlxuICogU2VyaWFsaXplIHRvIGVpdGhlciBZQU1MIG9yIEpTT05cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZVN0cnVjdHVyZShvYmplY3Q6IGFueSwganNvbjogYm9vbGVhbikge1xuICBpZiAoanNvbikge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmplY3QsIHVuZGVmaW5lZCwgMik7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHRvWUFNTChvYmplY3QpO1xuICB9XG59XG5cbi8qKlxuICogTG9hZCBhIFlBTUwgb3IgSlNPTiBmaWxlIGZyb20gZGlza1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZFN0cnVjdHVyZWRGaWxlKGZpbGVOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgY29udGVudHMgPSBhd2FpdCBmcy5yZWFkRmlsZShmaWxlTmFtZSwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KTtcbiAgcmV0dXJuIGRlc2VyaWFsaXplU3RydWN0dXJlKGNvbnRlbnRzKTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgYW55IHRlbXBsYXRlIGVsZW1lbnRzIHRoYXQgd2UgZG9uJ3Qgd2FudCB0byBzaG93IHVzZXJzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb2JzY3VyZVRlbXBsYXRlKHRlbXBsYXRlOiBhbnkgPSB7fSkge1xuICBpZiAodGVtcGxhdGUuUnVsZXMpIHtcbiAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xNzk0MlxuICAgIGlmICh0ZW1wbGF0ZS5SdWxlcy5DaGVja0Jvb3RzdHJhcFZlcnNpb24pIHtcbiAgICAgIGlmIChPYmplY3Qua2V5cyh0ZW1wbGF0ZS5SdWxlcykubGVuZ3RoID4gMSkge1xuICAgICAgICBkZWxldGUgdGVtcGxhdGUuUnVsZXMuQ2hlY2tCb290c3RyYXBWZXJzaW9uO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIHRlbXBsYXRlLlJ1bGVzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0ZW1wbGF0ZTtcbn1cblxuLyoqXG4gKiBEZXRlY3RzIGEgYnVmZmVyIHRoYXQgaGFzIGJlZW4gY29udmVydGVkIHRvIGEgSlNPTi1saWtlIG9iamVjdFxuICogSW4gTm9kZSwgYEJ1ZmZlcmBzIGhhdmUgYHRvSlNPTigpYCBtZXRob2QgdGhhdCBjb252ZXJ0cyB0aGUgYnVmZmVyXG4gKiBpbnRvIGEgSlMgb2JqZWN0IHRoYXQgY2FuIGJlIEpTT04gc3RyaW5naWZpZWQuXG4gKiBVbmZvcnR1bmF0ZWx5IHRoaXMgY29udmVyc2lvbiBoYXBwZW5zIGJlZm9yZSB0aGUgcmVwbGFjZXIgaXMgY2FsbGVkLFxuICogc28gbm9ybWFsIG1lYW5zIG9mIGRldGVjdGluZyBhIGBCdWZmZXJgIG9iamV0IGRvbid0IHdvcmsgYW55bW9yZS5cbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlLXYwLngtYXJjaGl2ZS9pc3N1ZXMvNTExMFxuICovXG5mdW5jdGlvbiBpc0pzb25CdWZmZXIodmFsdWU6IGFueSk6IHZhbHVlIGlzIHtcbiAgdHlwZTogJ0J1ZmZlcic7XG4gIGRhdGE6IG51bWJlcltdO1xufSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnXG4gICAgJiYgJ3R5cGUnIGluIHZhbHVlXG4gICAgJiYgdmFsdWUudHlwZSA9PT0gJ0J1ZmZlcidcbiAgICAmJiAnZGF0YScgaW4gdmFsdWVcbiAgICAmJiBBcnJheS5pc0FycmF5KHZhbHVlLmRhdGEpO1xufVxuXG4vKipcbiAqIEEgSlNPTi5zdHJpbmdpZnkoKSByZXBsYWNlciB0aGF0IGNvbnZlcnRzIEJ1ZmZlcnMgaW50byBhIHN0cmluZyB3aXRoIGluZm9ybWF0aW9uXG4gKiBVc2UgdGhpcyBpZiB5b3UgcGxhbiB0byBwcmludCBvdXQgSlNPTiBzdHJpbmdpZmllZCBvYmplY3RzIHRoYXQgbWF5IGNvbnRhaW4gYSBCdWZmZXIuXG4gKiBXaXRob3V0IHRoaXMsIGxhcmdlIGJ1ZmZlcnMgKHRoaW5rOiBNZWdhYnl0ZXMpIHdpbGwgY29tcGxldGVseSBmaWxsIHVwIHRoZSBvdXRwdXRcbiAqIGFuZCBldmVuIGNyYXNoIHRoZSBzeXN0ZW0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlckJ1ZmZlcldpdGhJbmZvKF9rZXk6IGFueSwgdmFsdWU6IGFueSk6IGFueSB7XG4gIGlmIChpc0pzb25CdWZmZXIodmFsdWUpKSB7XG4gICAgcmV0dXJuIGA8QnVmZmVyOiAke2Zvcm1hdEJ5dGVzKHZhbHVlLmRhdGEubGVuZ3RoKX0+YDtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG4iXX0=
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Pad 's' on the left with 'char' until it is n characters wide
3
+ */
4
+ export declare function padLeft(n: number, x: string, char?: string): string;
5
+ /**
6
+ * Pad 's' on the right with 'char' until it is n characters wide
7
+ */
8
+ export declare function padRight(n: number, x: string, char?: string): string;
9
+ /**
10
+ * Formats time in milliseconds (which we get from 'Date.getTime()')
11
+ * to a human-readable time; returns time in seconds rounded to 2
12
+ * decimal places.
13
+ */
14
+ export declare function formatTime(num: number): number;
15
+ /**
16
+ * This function lower cases the first character of the string provided.
17
+ */
18
+ export declare function lowerCaseFirstCharacter(str: string): string;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.padLeft = padLeft;
4
+ exports.padRight = padRight;
5
+ exports.formatTime = formatTime;
6
+ exports.lowerCaseFirstCharacter = lowerCaseFirstCharacter;
7
+ /**
8
+ * Pad 's' on the left with 'char' until it is n characters wide
9
+ */
10
+ function padLeft(n, x, char = ' ') {
11
+ return char.repeat(Math.max(0, n - x.length)) + x;
12
+ }
13
+ /**
14
+ * Pad 's' on the right with 'char' until it is n characters wide
15
+ */
16
+ function padRight(n, x, char = ' ') {
17
+ return x + char.repeat(Math.max(0, n - x.length));
18
+ }
19
+ /**
20
+ * Formats time in milliseconds (which we get from 'Date.getTime()')
21
+ * to a human-readable time; returns time in seconds rounded to 2
22
+ * decimal places.
23
+ */
24
+ function formatTime(num) {
25
+ return roundPercentage(millisecondsToSeconds(num));
26
+ }
27
+ /**
28
+ * Rounds a decimal number to two decimal points.
29
+ * The function is useful for fractions that need to be outputted as percentages.
30
+ */
31
+ function roundPercentage(num) {
32
+ return Math.round(100 * num) / 100;
33
+ }
34
+ /**
35
+ * Given a time in milliseconds, return an equivalent amount in seconds.
36
+ */
37
+ function millisecondsToSeconds(num) {
38
+ return num / 1000;
39
+ }
40
+ /**
41
+ * This function lower cases the first character of the string provided.
42
+ */
43
+ function lowerCaseFirstCharacter(str) {
44
+ return str.length > 0 ? `${str[0].toLowerCase()}${str.slice(1)}` : str;
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLW1hbmlwdWxhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0cmluZy1tYW5pcHVsYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSwwQkFFQztBQUtELDRCQUVDO0FBT0QsZ0NBRUM7QUFvQkQsMERBRUM7QUEzQ0Q7O0dBRUc7QUFDSCxTQUFnQixPQUFPLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxPQUFlLEdBQUc7SUFDOUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsUUFBUSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsT0FBZSxHQUFHO0lBQy9ELE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLEdBQVc7SUFDcEMsT0FBTyxlQUFlLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxlQUFlLENBQUMsR0FBVztJQUNsQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUNyQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLHFCQUFxQixDQUFDLEdBQVc7SUFDeEMsT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDO0FBQ3BCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHVCQUF1QixDQUFDLEdBQVc7SUFDakQsT0FBTyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDekUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUGFkICdzJyBvbiB0aGUgbGVmdCB3aXRoICdjaGFyJyB1bnRpbCBpdCBpcyBuIGNoYXJhY3RlcnMgd2lkZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFkTGVmdChuOiBudW1iZXIsIHg6IHN0cmluZywgY2hhcjogc3RyaW5nID0gJyAnKTogc3RyaW5nIHtcbiAgcmV0dXJuIGNoYXIucmVwZWF0KE1hdGgubWF4KDAsIG4gLSB4Lmxlbmd0aCkpICsgeDtcbn1cblxuLyoqXG4gKiBQYWQgJ3MnIG9uIHRoZSByaWdodCB3aXRoICdjaGFyJyB1bnRpbCBpdCBpcyBuIGNoYXJhY3RlcnMgd2lkZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFkUmlnaHQobjogbnVtYmVyLCB4OiBzdHJpbmcsIGNoYXI6IHN0cmluZyA9ICcgJyk6IHN0cmluZyB7XG4gIHJldHVybiB4ICsgY2hhci5yZXBlYXQoTWF0aC5tYXgoMCwgbiAtIHgubGVuZ3RoKSk7XG59XG5cbi8qKlxuICogRm9ybWF0cyB0aW1lIGluIG1pbGxpc2Vjb25kcyAod2hpY2ggd2UgZ2V0IGZyb20gJ0RhdGUuZ2V0VGltZSgpJylcbiAqIHRvIGEgaHVtYW4tcmVhZGFibGUgdGltZTsgcmV0dXJucyB0aW1lIGluIHNlY29uZHMgcm91bmRlZCB0byAyXG4gKiBkZWNpbWFsIHBsYWNlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRpbWUobnVtOiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gcm91bmRQZXJjZW50YWdlKG1pbGxpc2Vjb25kc1RvU2Vjb25kcyhudW0pKTtcbn1cblxuLyoqXG4gKiBSb3VuZHMgYSBkZWNpbWFsIG51bWJlciB0byB0d28gZGVjaW1hbCBwb2ludHMuXG4gKiBUaGUgZnVuY3Rpb24gaXMgdXNlZnVsIGZvciBmcmFjdGlvbnMgdGhhdCBuZWVkIHRvIGJlIG91dHB1dHRlZCBhcyBwZXJjZW50YWdlcy5cbiAqL1xuZnVuY3Rpb24gcm91bmRQZXJjZW50YWdlKG51bTogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIE1hdGgucm91bmQoMTAwICogbnVtKSAvIDEwMDtcbn1cblxuLyoqXG4gKiBHaXZlbiBhIHRpbWUgaW4gbWlsbGlzZWNvbmRzLCByZXR1cm4gYW4gZXF1aXZhbGVudCBhbW91bnQgaW4gc2Vjb25kcy5cbiAqL1xuZnVuY3Rpb24gbWlsbGlzZWNvbmRzVG9TZWNvbmRzKG51bTogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIG51bSAvIDEwMDA7XG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBsb3dlciBjYXNlcyB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBzdHJpbmcgcHJvdmlkZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb3dlckNhc2VGaXJzdENoYXJhY3RlcihzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzdHIubGVuZ3RoID4gMCA/IGAke3N0clswXS50b0xvd2VyQ2FzZSgpfSR7c3RyLnNsaWNlKDEpfWAgOiBzdHI7XG59XG4iXX0=
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Type branding
3
+ *
4
+ * This allows marking certain types as having gone through particular operations.
5
+ *
6
+ * Branded types can be used anywhere the base type is expected, but the base type
7
+ * cannot be used where a branded type is expected; the values have to go through
8
+ * a type assertion operation to confirm their brand.
9
+ *
10
+ * Usage:
11
+ *
12
+ * ```
13
+ * type ValidatedString = Branded<string, 'PassedMyValidation'>;
14
+ *
15
+ * function validate(x: string): asserts x is ValidatedString {
16
+ * // ... throw an error if not
17
+ * }
18
+ *
19
+ * function isValid(x: string): x is ValidatedString {
20
+ * // ... throw an error if not
21
+ * }
22
+ * ```
23
+ */
24
+ declare const __brand: unique symbol;
25
+ export type Brand<B> = {
26
+ [__brand]: B;
27
+ };
28
+ export type Branded<T, B> = T & Brand<B>;
29
+ /**
30
+ * Marks a value as being branded a certain way.
31
+ *
32
+ * You should in general avoid calling this, and use validation or
33
+ * asserting functions instead. However, this can be useful to produce
34
+ * values which are branded by construction (really just an elaborate
35
+ * way to write 'as').
36
+ */
37
+ export declare function createBranded<A extends Branded<any, any>>(value: TypeUnderlyingBrand<A>): A;
38
+ type TypeUnderlyingBrand<A> = A extends Branded<infer T, any> ? T : never;
39
+ export {};
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ /**
3
+ * Type branding
4
+ *
5
+ * This allows marking certain types as having gone through particular operations.
6
+ *
7
+ * Branded types can be used anywhere the base type is expected, but the base type
8
+ * cannot be used where a branded type is expected; the values have to go through
9
+ * a type assertion operation to confirm their brand.
10
+ *
11
+ * Usage:
12
+ *
13
+ * ```
14
+ * type ValidatedString = Branded<string, 'PassedMyValidation'>;
15
+ *
16
+ * function validate(x: string): asserts x is ValidatedString {
17
+ * // ... throw an error if not
18
+ * }
19
+ *
20
+ * function isValid(x: string): x is ValidatedString {
21
+ * // ... throw an error if not
22
+ * }
23
+ * ```
24
+ */
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.createBranded = createBranded;
27
+ /**
28
+ * Marks a value as being branded a certain way.
29
+ *
30
+ * You should in general avoid calling this, and use validation or
31
+ * asserting functions instead. However, this can be useful to produce
32
+ * values which are branded by construction (really just an elaborate
33
+ * way to write 'as').
34
+ */
35
+ /* c8 ignore start */
36
+ function createBranded(value) {
37
+ return value;
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1icmFuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlLWJyYW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7O0FBa0JILHNDQUVDO0FBWEQ7Ozs7Ozs7R0FPRztBQUNILHFCQUFxQjtBQUNyQixTQUFnQixhQUFhLENBQThCLEtBQTZCO0lBQ3RGLE9BQU8sS0FBVSxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFR5cGUgYnJhbmRpbmdcbiAqXG4gKiBUaGlzIGFsbG93cyBtYXJraW5nIGNlcnRhaW4gdHlwZXMgYXMgaGF2aW5nIGdvbmUgdGhyb3VnaCBwYXJ0aWN1bGFyIG9wZXJhdGlvbnMuXG4gKlxuICogQnJhbmRlZCB0eXBlcyBjYW4gYmUgdXNlZCBhbnl3aGVyZSB0aGUgYmFzZSB0eXBlIGlzIGV4cGVjdGVkLCBidXQgdGhlIGJhc2UgdHlwZVxuICogY2Fubm90IGJlIHVzZWQgd2hlcmUgYSBicmFuZGVkIHR5cGUgaXMgZXhwZWN0ZWQ7IHRoZSB2YWx1ZXMgaGF2ZSB0byBnbyB0aHJvdWdoXG4gKiBhIHR5cGUgYXNzZXJ0aW9uIG9wZXJhdGlvbiB0byBjb25maXJtIHRoZWlyIGJyYW5kLlxuICpcbiAqIFVzYWdlOlxuICpcbiAqIGBgYFxuICogdHlwZSBWYWxpZGF0ZWRTdHJpbmcgPSBCcmFuZGVkPHN0cmluZywgJ1Bhc3NlZE15VmFsaWRhdGlvbic+O1xuICpcbiAqIGZ1bmN0aW9uIHZhbGlkYXRlKHg6IHN0cmluZyk6IGFzc2VydHMgeCBpcyBWYWxpZGF0ZWRTdHJpbmcge1xuICogICAvLyAuLi4gdGhyb3cgYW4gZXJyb3IgaWYgbm90XG4gKiB9XG4gKlxuICogZnVuY3Rpb24gaXNWYWxpZCh4OiBzdHJpbmcpOiB4IGlzIFZhbGlkYXRlZFN0cmluZyB7XG4gKiAgIC8vIC4uLiB0aHJvdyBhbiBlcnJvciBpZiBub3RcbiAqIH1cbiAqIGBgYFxuICovXG5cbi8vIFRoaXMgY29uc3RydWN0IHB1cmVseSBoYXBwZW5zIGF0IHR5cGUgY2hlY2tpbmcgdGltZS4gVGhlcmUgaXMgbm8gcnVuLXRpbWUgaW1wYWN0LlxuLy8gSGVuY2UsIHdlIG5ldmVyIGV2ZW4gaGF2ZSB0byBjb25zdHJ1Y3QgdmFsdWVzIG9mIHRoaXMgdHlwZS5cbmRlY2xhcmUgY29uc3QgX19icmFuZDogdW5pcXVlIHN5bWJvbDtcblxuZXhwb3J0IHR5cGUgQnJhbmQ8Qj4gPSB7IFtfX2JyYW5kXTogQiB9O1xuZXhwb3J0IHR5cGUgQnJhbmRlZDxULCBCPiA9IFQgJiBCcmFuZDxCPjtcblxuLyoqXG4gKiBNYXJrcyBhIHZhbHVlIGFzIGJlaW5nIGJyYW5kZWQgYSBjZXJ0YWluIHdheS5cbiAqXG4gKiBZb3Ugc2hvdWxkIGluIGdlbmVyYWwgYXZvaWQgY2FsbGluZyB0aGlzLCBhbmQgdXNlIHZhbGlkYXRpb24gb3JcbiAqIGFzc2VydGluZyBmdW5jdGlvbnMgaW5zdGVhZC4gSG93ZXZlciwgdGhpcyBjYW4gYmUgdXNlZnVsIHRvIHByb2R1Y2VcbiAqIHZhbHVlcyB3aGljaCBhcmUgYnJhbmRlZCBieSBjb25zdHJ1Y3Rpb24gKHJlYWxseSBqdXN0IGFuIGVsYWJvcmF0ZVxuICogd2F5IHRvIHdyaXRlICdhcycpLlxuICovXG4vKiBjOCBpZ25vcmUgc3RhcnQgKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCcmFuZGVkPEEgZXh0ZW5kcyBCcmFuZGVkPGFueSwgYW55Pj4odmFsdWU6IFR5cGVVbmRlcmx5aW5nQnJhbmQ8QT4pOiBBIHtcbiAgcmV0dXJuIHZhbHVlIGFzIEE7XG59XG4vKiBjOCBpZ25vcmUgc3RvcCAqL1xuXG50eXBlIFR5cGVVbmRlcmx5aW5nQnJhbmQ8QT4gPSBBIGV4dGVuZHMgQnJhbmRlZDxpbmZlciBULCBhbnk+ID8gVCA6IG5ldmVyO1xuIl19
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Type of a map mapping strings to some arbitrary type
3
+ *
4
+ * Name is not ideal, but:
5
+ *
6
+ * - Cannot call it Object, that already means something.
7
+ * - Cannot call it Dict or Dictionary, since in other languages
8
+ * those also allow specifying the key type.
9
+ */
10
+ export type Obj<T> = {
11
+ [key: string]: T;
12
+ };
13
+ /**
14
+ * Return whether the given value is an object
15
+ *
16
+ * Even though arrays technically are objects, we usually want to treat them differently,
17
+ * so we return false in those cases.
18
+ */
19
+ export declare function isObject(x: any): x is Obj<any>;
20
+ /**
21
+ * Return whether the given value is an array
22
+ */
23
+ export declare const isArray: (arg: any) => arg is any[];
24
+ /**
25
+ * Return the value of the first argument if it's not undefined, otherwise the default
26
+ */
27
+ export declare function ifDefined<T>(x: T | undefined, def: T): T;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isArray = void 0;
4
+ exports.isObject = isObject;
5
+ exports.ifDefined = ifDefined;
6
+ /**
7
+ * Return whether the given value is an object
8
+ *
9
+ * Even though arrays technically are objects, we usually want to treat them differently,
10
+ * so we return false in those cases.
11
+ */
12
+ function isObject(x) {
13
+ return x !== null && typeof x === 'object' && !(0, exports.isArray)(x);
14
+ }
15
+ /**
16
+ * Return whether the given value is an array
17
+ */
18
+ exports.isArray = Array.isArray;
19
+ /**
20
+ * Return the value of the first argument if it's not undefined, otherwise the default
21
+ */
22
+ function ifDefined(x, def) {
23
+ return typeof x !== 'undefined' ? x : def;
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpQkEsNEJBRUM7QUFVRCw4QkFFQztBQXBCRDs7Ozs7R0FLRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxDQUFNO0lBQzdCLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFBLGVBQU8sRUFBQyxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRUQ7O0dBRUc7QUFDVSxRQUFBLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO0FBRXJDOztHQUVHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFJLENBQWdCLEVBQUUsR0FBTTtJQUNuRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVHlwZSBvZiBhIG1hcCBtYXBwaW5nIHN0cmluZ3MgdG8gc29tZSBhcmJpdHJhcnkgdHlwZVxuICpcbiAqIE5hbWUgaXMgbm90IGlkZWFsLCBidXQ6XG4gKlxuICogLSBDYW5ub3QgY2FsbCBpdCBPYmplY3QsIHRoYXQgYWxyZWFkeSBtZWFucyBzb21ldGhpbmcuXG4gKiAtIENhbm5vdCBjYWxsIGl0IERpY3Qgb3IgRGljdGlvbmFyeSwgc2luY2UgaW4gb3RoZXIgbGFuZ3VhZ2VzXG4gKiAgIHRob3NlIGFsc28gYWxsb3cgc3BlY2lmeWluZyB0aGUga2V5IHR5cGUuXG4gKi9cbmV4cG9ydCB0eXBlIE9iajxUPiA9IHsgW2tleTogc3RyaW5nXTogVCB9O1xuXG4vKipcbiAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBhbiBvYmplY3RcbiAqXG4gKiBFdmVuIHRob3VnaCBhcnJheXMgdGVjaG5pY2FsbHkgYXJlIG9iamVjdHMsIHdlIHVzdWFsbHkgd2FudCB0byB0cmVhdCB0aGVtIGRpZmZlcmVudGx5LFxuICogc28gd2UgcmV0dXJuIGZhbHNlIGluIHRob3NlIGNhc2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QoeDogYW55KTogeCBpcyBPYmo8YW55PiB7XG4gIHJldHVybiB4ICE9PSBudWxsICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiAhaXNBcnJheSh4KTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgaXMgYW4gYXJyYXlcbiAqL1xuZXhwb3J0IGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuXG4vKipcbiAqIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGFyZ3VtZW50IGlmIGl0J3Mgbm90IHVuZGVmaW5lZCwgb3RoZXJ3aXNlIHRoZSBkZWZhdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpZkRlZmluZWQ8VD4oeDogVCB8IHVuZGVmaW5lZCwgZGVmOiBUKTogVCB7XG4gIHJldHVybiB0eXBlb2YgeCAhPT0gJ3VuZGVmaW5lZCcgPyB4IDogZGVmO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export type RangeType = 'bracket' | 'pep';
2
+ export declare function rangeFromSemver(ver: string, targetType: RangeType): string;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rangeFromSemver = rangeFromSemver;
4
+ const semver = require("semver");
5
+ const toolkit_error_1 = require("../toolkit/toolkit-error");
6
+ function rangeFromSemver(ver, targetType) {
7
+ const re = ver.match(/^([^\d]*)([\d.]*)$/);
8
+ if (!re || !semver.valid(re[2])) {
9
+ throw new toolkit_error_1.ToolkitError('not a semver or unsupported range syntax');
10
+ }
11
+ const prefixPart = re[1];
12
+ const verPart = re[2];
13
+ switch (targetType) {
14
+ case 'bracket':
15
+ switch (prefixPart) {
16
+ case '':
17
+ // if there's no prefix and the remaining is a valid semver, there's no range specified
18
+ return ver;
19
+ case '^':
20
+ return `[${verPart},${semver.major(verPart) + 1}.0.0)`;
21
+ default:
22
+ throw new toolkit_error_1.ToolkitError(`unsupported range syntax - ${prefixPart}`);
23
+ }
24
+ case 'pep':
25
+ switch (prefixPart) {
26
+ case '':
27
+ // if there's no prefix and the remaining is a valid semver, there's no range specified
28
+ return `==${ver}`;
29
+ case '^':
30
+ return `>=${verPart},<${semver.major(verPart) + 1}.0.0`;
31
+ default:
32
+ throw new toolkit_error_1.ToolkitError(`unsupported range syntax - ${prefixPart}`);
33
+ }
34
+ }
35
+ }
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi1yYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZlcnNpb24tcmFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSwwQ0E4QkM7QUFyQ0QsaUNBQWlDO0FBQ2pDLDREQUF3RDtBQU14RCxTQUFnQixlQUFlLENBQUMsR0FBVyxFQUFFLFVBQXFCO0lBQ2hFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSw0QkFBWSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdEIsUUFBUSxVQUFVLEVBQUUsQ0FBQztRQUNuQixLQUFLLFNBQVM7WUFDWixRQUFRLFVBQVUsRUFBRSxDQUFDO2dCQUNuQixLQUFLLEVBQUU7b0JBQ0wsdUZBQXVGO29CQUN2RixPQUFPLEdBQUcsQ0FBQztnQkFDYixLQUFLLEdBQUc7b0JBQ04sT0FBTyxJQUFJLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFDLENBQUMsT0FBTyxDQUFDO2dCQUN2RDtvQkFDRSxNQUFNLElBQUksNEJBQVksQ0FBQyw4QkFBOEIsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN2RSxDQUFDO1FBQ0gsS0FBSyxLQUFLO1lBQ1IsUUFBUSxVQUFVLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxFQUFFO29CQUNMLHVGQUF1RjtvQkFDdkYsT0FBTyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixLQUFLLEdBQUc7b0JBQ04sT0FBTyxLQUFLLE9BQU8sS0FBSyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFDLENBQUMsTUFBTSxDQUFDO2dCQUN4RDtvQkFDRSxNQUFNLElBQUksNEJBQVksQ0FBQyw4QkFBOEIsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN2RSxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5cbi8vIGJyYWNrZXQgLSBodHRwczovL2RvY3Mub3JhY2xlLmNvbS9taWRkbGV3YXJlLzEyMTIvY29yZS9NQVZFTi9tYXZlbl92ZXJzaW9uLmh0bSNNQVZFTjQwMVxuLy8gcGVwIC0gaHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDQ0MC8jdmVyc2lvbi1zcGVjaWZpZXJzXG5leHBvcnQgdHlwZSBSYW5nZVR5cGUgPSAnYnJhY2tldCcgfCAncGVwJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJhbmdlRnJvbVNlbXZlcih2ZXI6IHN0cmluZywgdGFyZ2V0VHlwZTogUmFuZ2VUeXBlKSB7XG4gIGNvbnN0IHJlID0gdmVyLm1hdGNoKC9eKFteXFxkXSopKFtcXGQuXSopJC8pO1xuICBpZiAoIXJlIHx8ICFzZW12ZXIudmFsaWQocmVbMl0pKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignbm90IGEgc2VtdmVyIG9yIHVuc3VwcG9ydGVkIHJhbmdlIHN5bnRheCcpO1xuICB9XG4gIGNvbnN0IHByZWZpeFBhcnQgPSByZVsxXTtcbiAgY29uc3QgdmVyUGFydCA9IHJlWzJdO1xuXG4gIHN3aXRjaCAodGFyZ2V0VHlwZSkge1xuICAgIGNhc2UgJ2JyYWNrZXQnOlxuICAgICAgc3dpdGNoIChwcmVmaXhQYXJ0KSB7XG4gICAgICAgIGNhc2UgJyc6XG4gICAgICAgICAgLy8gaWYgdGhlcmUncyBubyBwcmVmaXggYW5kIHRoZSByZW1haW5pbmcgaXMgYSB2YWxpZCBzZW12ZXIsIHRoZXJlJ3Mgbm8gcmFuZ2Ugc3BlY2lmaWVkXG4gICAgICAgICAgcmV0dXJuIHZlcjtcbiAgICAgICAgY2FzZSAnXic6XG4gICAgICAgICAgcmV0dXJuIGBbJHt2ZXJQYXJ0fSwke3NlbXZlci5tYWpvcih2ZXJQYXJ0KSsxfS4wLjApYDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGB1bnN1cHBvcnRlZCByYW5nZSBzeW50YXggLSAke3ByZWZpeFBhcnR9YCk7XG4gICAgICB9XG4gICAgY2FzZSAncGVwJzpcbiAgICAgIHN3aXRjaCAocHJlZml4UGFydCkge1xuICAgICAgICBjYXNlICcnOlxuICAgICAgICAgIC8vIGlmIHRoZXJlJ3Mgbm8gcHJlZml4IGFuZCB0aGUgcmVtYWluaW5nIGlzIGEgdmFsaWQgc2VtdmVyLCB0aGVyZSdzIG5vIHJhbmdlIHNwZWNpZmllZFxuICAgICAgICAgIHJldHVybiBgPT0ke3Zlcn1gO1xuICAgICAgICBjYXNlICdeJzpcbiAgICAgICAgICByZXR1cm4gYD49JHt2ZXJQYXJ0fSw8JHtzZW12ZXIubWFqb3IodmVyUGFydCkrMX0uMC4wYDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGB1bnN1cHBvcnRlZCByYW5nZSBzeW50YXggLSAke3ByZWZpeFBhcnR9YCk7XG4gICAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Serializes the given data structure into valid YAML.
3
+ *
4
+ * @param obj the data structure to serialize
5
+ * @returns a string containing the YAML representation of {@param obj}
6
+ */
7
+ export declare function serialize(obj: any): string;
8
+ /**
9
+ * Deserialize the YAML into the appropriate data structure.
10
+ *
11
+ * @param str the string containing YAML
12
+ * @returns the data structure the YAML represents
13
+ * (most often in case of CloudFormation, an object)
14
+ */
15
+ export declare function deserialize(str: string): any;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serialize = serialize;
4
+ exports.deserialize = deserialize;
5
+ const yaml = require("yaml");
6
+ const yaml_types = require("yaml/types");
7
+ /**
8
+ * Serializes the given data structure into valid YAML.
9
+ *
10
+ * @param obj the data structure to serialize
11
+ * @returns a string containing the YAML representation of {@param obj}
12
+ */
13
+ function serialize(obj) {
14
+ const oldFold = yaml_types.strOptions.fold.lineWidth;
15
+ try {
16
+ yaml_types.strOptions.fold.lineWidth = 0;
17
+ return yaml.stringify(obj, { schema: 'yaml-1.1' });
18
+ }
19
+ finally {
20
+ yaml_types.strOptions.fold.lineWidth = oldFold;
21
+ }
22
+ }
23
+ /**
24
+ * Deserialize the YAML into the appropriate data structure.
25
+ *
26
+ * @param str the string containing YAML
27
+ * @returns the data structure the YAML represents
28
+ * (most often in case of CloudFormation, an object)
29
+ */
30
+ function deserialize(str) {
31
+ return parseYamlStrWithCfnTags(str);
32
+ }
33
+ function makeTagForCfnIntrinsic(intrinsicName, addFnPrefix) {
34
+ return {
35
+ identify(value) {
36
+ return typeof value === 'string';
37
+ },
38
+ tag: `!${intrinsicName}`,
39
+ resolve: (_doc, cstNode) => {
40
+ const ret = {};
41
+ ret[addFnPrefix ? `Fn::${intrinsicName}` : intrinsicName] =
42
+ // the +1 is to account for the ! the short form begins with
43
+ parseYamlStrWithCfnTags(cstNode.toString().substring(intrinsicName.length + 1));
44
+ return ret;
45
+ },
46
+ };
47
+ }
48
+ const shortForms = [
49
+ 'Base64', 'Cidr', 'FindInMap', 'GetAZs', 'ImportValue', 'Join', 'Sub',
50
+ 'Select', 'Split', 'Transform', 'And', 'Equals', 'If', 'Not', 'Or', 'GetAtt',
51
+ ].map(name => makeTagForCfnIntrinsic(name, true)).concat(makeTagForCfnIntrinsic('Ref', false), makeTagForCfnIntrinsic('Condition', false));
52
+ function parseYamlStrWithCfnTags(text) {
53
+ return yaml.parse(text, {
54
+ customTags: shortForms,
55
+ schema: 'core',
56
+ });
57
+ }
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFtbC1jZm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ5YW1sLWNmbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBLDhCQVFDO0FBU0Qsa0NBRUM7QUE3QkQsNkJBQTZCO0FBRTdCLHlDQUF5QztBQUV6Qzs7Ozs7R0FLRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxHQUFRO0lBQ2hDLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNyRCxJQUFJLENBQUM7UUFDSCxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO1lBQVMsQ0FBQztRQUNULFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7SUFDakQsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixXQUFXLENBQUMsR0FBVztJQUNyQyxPQUFPLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLGFBQXFCLEVBQUUsV0FBb0I7SUFDekUsT0FBTztRQUNMLFFBQVEsQ0FBQyxLQUFVO1lBQ2pCLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDO1FBQ25DLENBQUM7UUFDRCxHQUFHLEVBQUUsSUFBSSxhQUFhLEVBQUU7UUFDeEIsT0FBTyxFQUFFLENBQUMsSUFBbUIsRUFBRSxPQUEwQixFQUFFLEVBQUU7WUFDM0QsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1lBQ3BCLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztnQkFDdkQsNERBQTREO2dCQUM1RCx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsRixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxHQUFrQztJQUNoRCxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxLQUFLO0lBQ3JFLFFBQVEsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUTtDQUM3RSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDdEQsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUNwQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQzNDLENBQUM7QUFFRixTQUFTLHVCQUF1QixDQUFDLElBQVk7SUFDM0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtRQUN0QixVQUFVLEVBQUUsVUFBVTtRQUN0QixNQUFNLEVBQUUsTUFBTTtLQUNmLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB5YW1sIGZyb20gJ3lhbWwnO1xuaW1wb3J0IHR5cGUgKiBhcyB5YW1sX2NzdCBmcm9tICd5YW1sL3BhcnNlLWNzdCc7XG5pbXBvcnQgKiBhcyB5YW1sX3R5cGVzIGZyb20gJ3lhbWwvdHlwZXMnO1xuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIGdpdmVuIGRhdGEgc3RydWN0dXJlIGludG8gdmFsaWQgWUFNTC5cbiAqXG4gKiBAcGFyYW0gb2JqIHRoZSBkYXRhIHN0cnVjdHVyZSB0byBzZXJpYWxpemVcbiAqIEByZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIFlBTUwgcmVwcmVzZW50YXRpb24gb2Yge0BwYXJhbSBvYmp9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemUob2JqOiBhbnkpOiBzdHJpbmcge1xuICBjb25zdCBvbGRGb2xkID0geWFtbF90eXBlcy5zdHJPcHRpb25zLmZvbGQubGluZVdpZHRoO1xuICB0cnkge1xuICAgIHlhbWxfdHlwZXMuc3RyT3B0aW9ucy5mb2xkLmxpbmVXaWR0aCA9IDA7XG4gICAgcmV0dXJuIHlhbWwuc3RyaW5naWZ5KG9iaiwgeyBzY2hlbWE6ICd5YW1sLTEuMScgfSk7XG4gIH0gZmluYWxseSB7XG4gICAgeWFtbF90eXBlcy5zdHJPcHRpb25zLmZvbGQubGluZVdpZHRoID0gb2xkRm9sZDtcbiAgfVxufVxuXG4vKipcbiAqIERlc2VyaWFsaXplIHRoZSBZQU1MIGludG8gdGhlIGFwcHJvcHJpYXRlIGRhdGEgc3RydWN0dXJlLlxuICpcbiAqIEBwYXJhbSBzdHIgdGhlIHN0cmluZyBjb250YWluaW5nIFlBTUxcbiAqIEByZXR1cm5zIHRoZSBkYXRhIHN0cnVjdHVyZSB0aGUgWUFNTCByZXByZXNlbnRzXG4gKiAgIChtb3N0IG9mdGVuIGluIGNhc2Ugb2YgQ2xvdWRGb3JtYXRpb24sIGFuIG9iamVjdClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplKHN0cjogc3RyaW5nKTogYW55IHtcbiAgcmV0dXJuIHBhcnNlWWFtbFN0cldpdGhDZm5UYWdzKHN0cik7XG59XG5cbmZ1bmN0aW9uIG1ha2VUYWdGb3JDZm5JbnRyaW5zaWMoaW50cmluc2ljTmFtZTogc3RyaW5nLCBhZGRGblByZWZpeDogYm9vbGVhbik6IHlhbWxfdHlwZXMuU2NoZW1hLkN1c3RvbVRhZyB7XG4gIHJldHVybiB7XG4gICAgaWRlbnRpZnkodmFsdWU6IGFueSkge1xuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZyc7XG4gICAgfSxcbiAgICB0YWc6IGAhJHtpbnRyaW5zaWNOYW1lfWAsXG4gICAgcmVzb2x2ZTogKF9kb2M6IHlhbWwuRG9jdW1lbnQsIGNzdE5vZGU6IHlhbWxfY3N0LkNTVC5Ob2RlKSA9PiB7XG4gICAgICBjb25zdCByZXQ6IGFueSA9IHt9O1xuICAgICAgcmV0W2FkZEZuUHJlZml4ID8gYEZuOjoke2ludHJpbnNpY05hbWV9YCA6IGludHJpbnNpY05hbWVdID1cbiAgICAgICAgLy8gdGhlICsxIGlzIHRvIGFjY291bnQgZm9yIHRoZSAhIHRoZSBzaG9ydCBmb3JtIGJlZ2lucyB3aXRoXG4gICAgICAgIHBhcnNlWWFtbFN0cldpdGhDZm5UYWdzKGNzdE5vZGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoaW50cmluc2ljTmFtZS5sZW5ndGggKyAxKSk7XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH0sXG4gIH07XG59XG5cbmNvbnN0IHNob3J0Rm9ybXM6IHlhbWxfdHlwZXMuU2NoZW1hLkN1c3RvbVRhZ1tdID0gW1xuICAnQmFzZTY0JywgJ0NpZHInLCAnRmluZEluTWFwJywgJ0dldEFacycsICdJbXBvcnRWYWx1ZScsICdKb2luJywgJ1N1YicsXG4gICdTZWxlY3QnLCAnU3BsaXQnLCAnVHJhbnNmb3JtJywgJ0FuZCcsICdFcXVhbHMnLCAnSWYnLCAnTm90JywgJ09yJywgJ0dldEF0dCcsXG5dLm1hcChuYW1lID0+IG1ha2VUYWdGb3JDZm5JbnRyaW5zaWMobmFtZSwgdHJ1ZSkpLmNvbmNhdChcbiAgbWFrZVRhZ0ZvckNmbkludHJpbnNpYygnUmVmJywgZmFsc2UpLFxuICBtYWtlVGFnRm9yQ2ZuSW50cmluc2ljKCdDb25kaXRpb24nLCBmYWxzZSksXG4pO1xuXG5mdW5jdGlvbiBwYXJzZVlhbWxTdHJXaXRoQ2ZuVGFncyh0ZXh0OiBzdHJpbmcpOiBhbnkge1xuICByZXR1cm4geWFtbC5wYXJzZSh0ZXh0LCB7XG4gICAgY3VzdG9tVGFnczogc2hvcnRGb3JtcyxcbiAgICBzY2hlbWE6ICdjb3JlJyxcbiAgfSk7XG59XG4iXX0=
package/package.json CHANGED
@@ -35,11 +35,14 @@
35
35
  "organization": true
36
36
  },
37
37
  "devDependencies": {
38
- "@aws-cdk/aws-service-spec": "^0.1.69",
39
- "@aws-cdk/tmp-toolkit-helpers": "0.0.0",
38
+ "@aws-cdk/aws-service-spec": "^0.1.71",
40
39
  "@cdklabs/eslint-plugin": "^1.3.2",
41
- "@microsoft/api-extractor": "^7.52.4",
40
+ "@jest/environment": "^29.7.0",
41
+ "@jest/globals": "^29.7.0",
42
+ "@jest/types": "^29.6.3",
43
+ "@microsoft/api-extractor": "^7.52.7",
42
44
  "@smithy/types": "^4.2.0",
45
+ "@smithy/util-stream": "^4.2.0",
43
46
  "@stylistic/eslint-plugin": "^3",
44
47
  "@types/fs-extra": "^11.0.4",
45
48
  "@types/jest": "^29.5.14",
@@ -47,34 +50,36 @@
47
50
  "@types/split2": "^4.2.3",
48
51
  "@typescript-eslint/eslint-plugin": "^8",
49
52
  "@typescript-eslint/parser": "^8",
50
- "aws-cdk-lib": "^2.190.0",
53
+ "aws-cdk-lib": "^2.194.0",
51
54
  "aws-sdk-client-mock": "^4.1.0",
52
55
  "aws-sdk-client-mock-jest": "^4.1.0",
53
56
  "commit-and-tag-version": "^12",
54
57
  "constructs": "^10.0.0",
55
- "dts-bundle-generator": "9.3.1",
56
- "esbuild": "^0.25.2",
57
58
  "eslint": "^9",
58
59
  "eslint-config-prettier": "^10.1.2",
59
- "eslint-import-resolver-typescript": "^3.10.0",
60
+ "eslint-import-resolver-typescript": "^3.10.1",
60
61
  "eslint-plugin-import": "^2.31.0",
61
62
  "eslint-plugin-jest": "^28.11.0",
62
- "eslint-plugin-jsdoc": "^50.6.9",
63
- "eslint-plugin-prettier": "^5.2.6",
63
+ "eslint-plugin-jsdoc": "^50.6.11",
64
+ "eslint-plugin-prettier": "^5.3.1",
65
+ "fast-check": "^4.1.1",
64
66
  "jest": "^29.7.0",
67
+ "jest-environment-node": "^29.7.0",
65
68
  "jest-junit": "^16",
66
69
  "license-checker": "^25.0.1",
70
+ "nock": "13",
67
71
  "prettier": "^2.8",
68
- "projen": "^0.91.20",
69
72
  "ts-jest": "^29.3.2",
70
- "typedoc": "^0.28.3",
71
- "typescript": "5.6"
73
+ "typedoc": "^0.28.4",
74
+ "typescript": "5.6",
75
+ "xml-js": "^1.6.11"
72
76
  },
73
77
  "dependencies": {
74
- "@aws-cdk/cloud-assembly-schema": "^43.5.0",
78
+ "@aws-cdk/cli-plugin-contract": "^2.180.1",
79
+ "@aws-cdk/cloud-assembly-schema": "^43.7.0",
75
80
  "@aws-cdk/cloudformation-diff": "^2.181.1",
76
- "@aws-cdk/cx-api": "^2.190.0",
77
- "@aws-cdk/region-info": "^2.190.0",
81
+ "@aws-cdk/cx-api": "^2.194.0",
82
+ "@aws-cdk/region-info": "^2.194.0",
78
83
  "@aws-sdk/client-appsync": "^3",
79
84
  "@aws-sdk/client-cloudcontrol": "^3",
80
85
  "@aws-sdk/client-cloudformation": "^3",
@@ -96,35 +101,28 @@
96
101
  "@aws-sdk/credential-providers": "^3",
97
102
  "@aws-sdk/ec2-metadata-service": "^3",
98
103
  "@aws-sdk/lib-storage": "^3",
99
- "@smithy/middleware-endpoint": "^4.1.0",
104
+ "@smithy/middleware-endpoint": "^4.1.1",
100
105
  "@smithy/node-http-handler": "^4.0.4",
101
106
  "@smithy/property-provider": "^4.0.2",
102
107
  "@smithy/shared-ini-file-loader": "^4.0.2",
103
- "@smithy/util-retry": "^4.0.2",
104
- "@smithy/util-stream": "^4.2.0",
108
+ "@smithy/util-retry": "^4.0.3",
105
109
  "@smithy/util-waiter": "^4.0.3",
106
110
  "archiver": "^7.0.1",
107
- "camelcase": "^6",
108
111
  "cdk-assets": "^3.2.1",
109
- "cdk-from-cfn": "^0.210.0",
112
+ "cdk-from-cfn": "^0.212.0",
110
113
  "chalk": "^4",
111
114
  "chokidar": "^3",
112
- "decamelize": "^5",
113
115
  "fs-extra": "^9",
114
- "glob": "^11.0.1",
115
- "json-diff": "^1.0.6",
116
+ "glob": "^11.0.2",
116
117
  "minimatch": "^10.0.1",
117
118
  "p-limit": "^3",
118
119
  "promptly": "^3.2.0",
119
120
  "proxy-agent": "^6.5.0",
120
121
  "semver": "^7.7.1",
121
122
  "split2": "^4.2.0",
122
- "strip-ansi": "^6",
123
- "table": "^6",
124
123
  "uuid": "^11.1.0",
125
124
  "wrap-ansi": "^7",
126
- "yaml": "^1",
127
- "yargs": "^15"
125
+ "yaml": "^1"
128
126
  },
129
127
  "keywords": [
130
128
  "aws",
@@ -139,7 +137,7 @@
139
137
  "publishConfig": {
140
138
  "access": "public"
141
139
  },
142
- "version": "0.3.2",
140
+ "version": "0.3.4",
143
141
  "types": "lib/index.d.ts",
144
142
  "exports": {
145
143
  ".": {
package/tsdoc.json ADDED
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
3
+ "extends": [
4
+ "@microsoft/api-extractor/extends/tsdoc-base.json"
5
+ ],
6
+ "tagDefinitions": [
7
+ {
8
+ "tagName": "@default",
9
+ "syntaxKind": "block"
10
+ }
11
+ ],
12
+ "supportForTags": {
13
+ "@default": true
14
+ }
15
+ }