@depup/aws-cdk 2.1117.0-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (308) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +16 -0
  3. package/README.md +25 -0
  4. package/THIRD_PARTY_LICENSES +24866 -0
  5. package/bin/cdk +6 -0
  6. package/build-info.json +4 -0
  7. package/changes.json +5 -0
  8. package/db.json.gz +0 -0
  9. package/docs/deploy-architecture.md +194 -0
  10. package/lib/api/aws-auth.d.ts +3 -0
  11. package/lib/api/aws-auth.js +21 -0
  12. package/lib/api/bootstrap/bootstrap-template.yaml +855 -0
  13. package/lib/api/bootstrap.d.ts +1 -0
  14. package/lib/api/bootstrap.js +19 -0
  15. package/lib/api/cloud-assembly.d.ts +5 -0
  16. package/lib/api/cloud-assembly.js +23 -0
  17. package/lib/api/cloudformation.d.ts +1 -0
  18. package/lib/api/cloudformation.js +19 -0
  19. package/lib/api/context.d.ts +1 -0
  20. package/lib/api/context.js +19 -0
  21. package/lib/api/deployments.d.ts +1 -0
  22. package/lib/api/deployments.js +19 -0
  23. package/lib/api/hotswap.d.ts +1 -0
  24. package/lib/api/hotswap.js +19 -0
  25. package/lib/api/index.d.ts +16 -0
  26. package/lib/api/index.js +38 -0
  27. package/lib/api/network-detector.d.ts +1 -0
  28. package/lib/api/network-detector.js +19 -0
  29. package/lib/api/notices.d.ts +1 -0
  30. package/lib/api/notices.js +19 -0
  31. package/lib/api/plugin.d.ts +1 -0
  32. package/lib/api/plugin.js +19 -0
  33. package/lib/api/refactor.d.ts +1 -0
  34. package/lib/api/refactor.js +8 -0
  35. package/lib/api/settings.d.ts +1 -0
  36. package/lib/api/settings.js +19 -0
  37. package/lib/api/tags.d.ts +1 -0
  38. package/lib/api/tags.js +19 -0
  39. package/lib/api-private.d.ts +9 -0
  40. package/lib/api-private.js +29 -0
  41. package/lib/cli/cdk-toolkit.d.ts +699 -0
  42. package/lib/cli/cdk-toolkit.js +1260 -0
  43. package/lib/cli/ci-systems.d.ts +29 -0
  44. package/lib/cli/ci-systems.js +61 -0
  45. package/lib/cli/cli-config.d.ts +10 -0
  46. package/lib/cli/cli-config.js +556 -0
  47. package/lib/cli/cli-type-registry.json +1147 -0
  48. package/lib/cli/cli.d.ts +3 -0
  49. package/lib/cli/cli.js +746 -0
  50. package/lib/cli/convert-to-user-input.d.ts +3 -0
  51. package/lib/cli/convert-to-user-input.js +560 -0
  52. package/lib/cli/display-version.d.ts +11 -0
  53. package/lib/cli/display-version.js +101 -0
  54. package/lib/cli/io-host/cli-io-host.d.ts +191 -0
  55. package/lib/cli/io-host/cli-io-host.js +477 -0
  56. package/lib/cli/io-host/index.d.ts +1 -0
  57. package/lib/cli/io-host/index.js +18 -0
  58. package/lib/cli/parse-command-line-arguments.d.ts +1 -0
  59. package/lib/cli/parse-command-line-arguments.js +1067 -0
  60. package/lib/cli/platform-warnings.d.ts +3 -0
  61. package/lib/cli/platform-warnings.js +44 -0
  62. package/lib/cli/pretty-print-error.d.ts +1 -0
  63. package/lib/cli/pretty-print-error.js +37 -0
  64. package/lib/cli/proxy-agent.d.ts +30 -0
  65. package/lib/cli/proxy-agent.js +52 -0
  66. package/lib/cli/root-dir.d.ts +10 -0
  67. package/lib/cli/root-dir.js +23 -0
  68. package/lib/cli/singleton-plugin-host.d.ts +7 -0
  69. package/lib/cli/singleton-plugin-host.js +11 -0
  70. package/lib/cli/tables.d.ts +1 -0
  71. package/lib/cli/tables.js +10 -0
  72. package/lib/cli/telemetry/collect-telemetry.d.ts +5 -0
  73. package/lib/cli/telemetry/collect-telemetry.js +16 -0
  74. package/lib/cli/telemetry/error.d.ts +15 -0
  75. package/lib/cli/telemetry/error.js +68 -0
  76. package/lib/cli/telemetry/feature-flags.d.ts +96 -0
  77. package/lib/cli/telemetry/feature-flags.js +103 -0
  78. package/lib/cli/telemetry/installation-id.d.ts +5 -0
  79. package/lib/cli/telemetry/installation-id.js +47 -0
  80. package/lib/cli/telemetry/library-version.d.ts +2 -0
  81. package/lib/cli/telemetry/library-version.js +30 -0
  82. package/lib/cli/telemetry/messages.d.ts +43 -0
  83. package/lib/cli/telemetry/messages.js +60 -0
  84. package/lib/cli/telemetry/sanitation.d.ts +100 -0
  85. package/lib/cli/telemetry/sanitation.js +79 -0
  86. package/lib/cli/telemetry/schema.d.ts +85 -0
  87. package/lib/cli/telemetry/schema.js +3 -0
  88. package/lib/cli/telemetry/session.d.ts +67 -0
  89. package/lib/cli/telemetry/session.js +174 -0
  90. package/lib/cli/telemetry/sink/endpoint-sink.d.ts +44 -0
  91. package/lib/cli/telemetry/sink/endpoint-sink.js +105 -0
  92. package/lib/cli/telemetry/sink/file-sink.d.ts +32 -0
  93. package/lib/cli/telemetry/sink/file-sink.js +43 -0
  94. package/lib/cli/telemetry/sink/funnel.d.ts +16 -0
  95. package/lib/cli/telemetry/sink/funnel.js +29 -0
  96. package/lib/cli/telemetry/sink/io-host-sink.d.ts +27 -0
  97. package/lib/cli/telemetry/sink/io-host-sink.js +35 -0
  98. package/lib/cli/telemetry/sink/sink-interface.d.ts +18 -0
  99. package/lib/cli/telemetry/sink/sink-interface.js +3 -0
  100. package/lib/cli/user-configuration.d.ts +104 -0
  101. package/lib/cli/user-configuration.js +334 -0
  102. package/lib/cli/user-input.d.ts +1505 -0
  103. package/lib/cli/user-input.js +3 -0
  104. package/lib/cli/util/ci.d.ts +5 -0
  105. package/lib/cli/util/ci.js +11 -0
  106. package/lib/cli/util/console-formatters.d.ts +18 -0
  107. package/lib/cli/util/console-formatters.js +42 -0
  108. package/lib/cli/util/guess-agent.d.ts +7 -0
  109. package/lib/cli/util/guess-agent.js +32 -0
  110. package/lib/cli/util/npm.d.ts +4 -0
  111. package/lib/cli/util/npm.js +34 -0
  112. package/lib/cli/util/trap-errors.d.ts +6 -0
  113. package/lib/cli/util/trap-errors.js +17 -0
  114. package/lib/cli/util/yargs-helpers.d.ts +22 -0
  115. package/lib/cli/util/yargs-helpers.js +49 -0
  116. package/lib/cli/version.d.ts +3 -0
  117. package/lib/cli/version.js +22 -0
  118. package/lib/commands/context.d.ts +40 -0
  119. package/lib/commands/context.js +158 -0
  120. package/lib/commands/deploy.d.ts +13 -0
  121. package/lib/commands/deploy.js +18 -0
  122. package/lib/commands/docs.d.ts +18 -0
  123. package/lib/commands/docs.js +33 -0
  124. package/lib/commands/doctor.d.ts +4 -0
  125. package/lib/commands/doctor.js +69 -0
  126. package/lib/commands/flags/flags.d.ts +13 -0
  127. package/lib/commands/flags/flags.js +30 -0
  128. package/lib/commands/flags/interactive-handler.d.ts +16 -0
  129. package/lib/commands/flags/interactive-handler.js +71 -0
  130. package/lib/commands/flags/obsolete-flags.d.ts +1 -0
  131. package/lib/commands/flags/obsolete-flags.js +9 -0
  132. package/lib/commands/flags/operations.d.ts +80 -0
  133. package/lib/commands/flags/operations.js +467 -0
  134. package/lib/commands/flags/router.d.ts +18 -0
  135. package/lib/commands/flags/router.js +60 -0
  136. package/lib/commands/flags/types.d.ts +12 -0
  137. package/lib/commands/flags/types.js +12 -0
  138. package/lib/commands/flags/validator.d.ts +22 -0
  139. package/lib/commands/flags/validator.js +95 -0
  140. package/lib/commands/init/index.d.ts +1 -0
  141. package/lib/commands/init/index.js +18 -0
  142. package/lib/commands/init/init-hooks.d.ts +41 -0
  143. package/lib/commands/init/init-hooks.js +85 -0
  144. package/lib/commands/init/init.d.ts +139 -0
  145. package/lib/commands/init/init.js +788 -0
  146. package/lib/commands/init/os.d.ts +8 -0
  147. package/lib/commands/init/os.js +91 -0
  148. package/lib/commands/init/package-manager.d.ts +15 -0
  149. package/lib/commands/init/package-manager.js +14 -0
  150. package/lib/commands/language.d.ts +30 -0
  151. package/lib/commands/language.js +46 -0
  152. package/lib/commands/list-stacks.d.ts +21 -0
  153. package/lib/commands/list-stacks.js +28 -0
  154. package/lib/commands/migrate.d.ts +316 -0
  155. package/lib/commands/migrate.js +801 -0
  156. package/lib/context-providers.d.ts +1 -0
  157. package/lib/context-providers.js +19 -0
  158. package/lib/cxapp/cloud-assembly.d.ts +79 -0
  159. package/lib/cxapp/cloud-assembly.js +109 -0
  160. package/lib/cxapp/cloud-executable.d.ts +51 -0
  161. package/lib/cxapp/cloud-executable.js +123 -0
  162. package/lib/cxapp/environments.d.ts +8 -0
  163. package/lib/cxapp/environments.js +66 -0
  164. package/lib/cxapp/exec.d.ts +14 -0
  165. package/lib/cxapp/exec.js +133 -0
  166. package/lib/cxapp/index.d.ts +4 -0
  167. package/lib/cxapp/index.js +21 -0
  168. package/lib/index.d.ts +2 -0
  169. package/lib/index.js +364043 -0
  170. package/lib/index_bg.wasm +0 -0
  171. package/lib/init-templates/.init-version.json +1 -0
  172. package/lib/init-templates/.no-packagejson-validator +0 -0
  173. package/lib/init-templates/.recommended-feature-flags.json +86 -0
  174. package/lib/init-templates/LICENSE +16 -0
  175. package/lib/init-templates/app/csharp/.template.gitignore +342 -0
  176. package/lib/init-templates/app/csharp/README.md +14 -0
  177. package/lib/init-templates/app/csharp/cdk.template.json +15 -0
  178. package/lib/init-templates/app/csharp/src/%name.PascalCased%/%name.PascalCased%.template.csproj +20 -0
  179. package/lib/init-templates/app/csharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.cs +13 -0
  180. package/lib/init-templates/app/csharp/src/%name.PascalCased%/GlobalSuppressions.cs +1 -0
  181. package/lib/init-templates/app/csharp/src/%name.PascalCased%/Program.template.cs +44 -0
  182. package/lib/init-templates/app/csharp/src/%name.PascalCased%.template.sln +18 -0
  183. package/lib/init-templates/app/fsharp/.template.gitignore +342 -0
  184. package/lib/init-templates/app/fsharp/README.md +18 -0
  185. package/lib/init-templates/app/fsharp/cdk.template.json +14 -0
  186. package/lib/init-templates/app/fsharp/src/%name.PascalCased%/%name.PascalCased%.template.fsproj +25 -0
  187. package/lib/init-templates/app/fsharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.fs +8 -0
  188. package/lib/init-templates/app/fsharp/src/%name.PascalCased%/Program.template.fs +11 -0
  189. package/lib/init-templates/app/fsharp/src/%name.PascalCased%.template.sln +18 -0
  190. package/lib/init-templates/app/go/%name%.template.go +70 -0
  191. package/lib/init-templates/app/go/%name%_test.template.go +26 -0
  192. package/lib/init-templates/app/go/.template.gitignore +19 -0
  193. package/lib/init-templates/app/go/README.md +12 -0
  194. package/lib/init-templates/app/go/cdk.template.json +13 -0
  195. package/lib/init-templates/app/go/go.template.mod +9 -0
  196. package/lib/init-templates/app/info.json +4 -0
  197. package/lib/init-templates/app/java/.template.gitignore +13 -0
  198. package/lib/init-templates/app/java/README.md +18 -0
  199. package/lib/init-templates/app/java/cdk.json +13 -0
  200. package/lib/init-templates/app/java/pom.xml +60 -0
  201. package/lib/init-templates/app/java/src/main/java/com/myorg/%name.PascalCased%App.template.java +42 -0
  202. package/lib/init-templates/app/java/src/main/java/com/myorg/%name.PascalCased%Stack.template.java +24 -0
  203. package/lib/init-templates/app/java/src/test/java/com/myorg/%name.PascalCased%Test.template.java +26 -0
  204. package/lib/init-templates/app/javascript/.template.gitignore +5 -0
  205. package/lib/init-templates/app/javascript/.template.npmignore +3 -0
  206. package/lib/init-templates/app/javascript/README.md +12 -0
  207. package/lib/init-templates/app/javascript/bin/%name%.template.js +21 -0
  208. package/lib/init-templates/app/javascript/cdk.template.json +15 -0
  209. package/lib/init-templates/app/javascript/jest.config.js +4 -0
  210. package/lib/init-templates/app/javascript/lib/%name%-stack.template.js +23 -0
  211. package/lib/init-templates/app/javascript/package.json +20 -0
  212. package/lib/init-templates/app/javascript/test/%name%.test.template.js +17 -0
  213. package/lib/init-templates/app/python/%name.PythonModule%/%name.PythonModule%_stack.template.py +19 -0
  214. package/lib/init-templates/app/python/%name.PythonModule%/__init__.py +0 -0
  215. package/lib/init-templates/app/python/.template.gitignore +10 -0
  216. package/lib/init-templates/app/python/README.template.md +58 -0
  217. package/lib/init-templates/app/python/app.template.py +28 -0
  218. package/lib/init-templates/app/python/cdk.template.json +15 -0
  219. package/lib/init-templates/app/python/requirements-dev.txt +1 -0
  220. package/lib/init-templates/app/python/requirements.txt +2 -0
  221. package/lib/init-templates/app/python/source.bat +13 -0
  222. package/lib/init-templates/app/python/tests/__init__.py +0 -0
  223. package/lib/init-templates/app/python/tests/unit/__init__.py +0 -0
  224. package/lib/init-templates/app/python/tests/unit/test_%name.PythonModule%_stack.template.py +15 -0
  225. package/lib/init-templates/app/typescript/.template.gitignore +8 -0
  226. package/lib/init-templates/app/typescript/.template.npmignore +6 -0
  227. package/lib/init-templates/app/typescript/README.md +14 -0
  228. package/lib/init-templates/app/typescript/bin/%name%.template.ts +20 -0
  229. package/lib/init-templates/app/typescript/cdk.template.json +17 -0
  230. package/lib/init-templates/app/typescript/jest.config.js +9 -0
  231. package/lib/init-templates/app/typescript/lib/%name%-stack.template.ts +16 -0
  232. package/lib/init-templates/app/typescript/package.json +26 -0
  233. package/lib/init-templates/app/typescript/test/%name%.test.template.ts +17 -0
  234. package/lib/init-templates/app/typescript/tsconfig.json +32 -0
  235. package/lib/init-templates/lib/info.json +4 -0
  236. package/lib/init-templates/lib/typescript/.template.gitignore +8 -0
  237. package/lib/init-templates/lib/typescript/.template.npmignore +6 -0
  238. package/lib/init-templates/lib/typescript/README.template.md +12 -0
  239. package/lib/init-templates/lib/typescript/jest.config.js +9 -0
  240. package/lib/init-templates/lib/typescript/lib/index.template.ts +21 -0
  241. package/lib/init-templates/lib/typescript/package.json +24 -0
  242. package/lib/init-templates/lib/typescript/test/%name%.test.template.ts +18 -0
  243. package/lib/init-templates/lib/typescript/tsconfig.json +32 -0
  244. package/lib/init-templates/sample-app/csharp/.template.gitignore +342 -0
  245. package/lib/init-templates/sample-app/csharp/README.template.md +19 -0
  246. package/lib/init-templates/sample-app/csharp/cdk.template.json +15 -0
  247. package/lib/init-templates/sample-app/csharp/src/%name.PascalCased%/%name.PascalCased%.template.csproj +20 -0
  248. package/lib/init-templates/sample-app/csharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.cs +24 -0
  249. package/lib/init-templates/sample-app/csharp/src/%name.PascalCased%/GlobalSuppressions.cs +1 -0
  250. package/lib/init-templates/sample-app/csharp/src/%name.PascalCased%/Program.template.cs +15 -0
  251. package/lib/init-templates/sample-app/csharp/src/%name.PascalCased%.template.sln +18 -0
  252. package/lib/init-templates/sample-app/fsharp/.template.gitignore +342 -0
  253. package/lib/init-templates/sample-app/fsharp/README.template.md +20 -0
  254. package/lib/init-templates/sample-app/fsharp/cdk.template.json +14 -0
  255. package/lib/init-templates/sample-app/fsharp/src/%name.PascalCased%/%name.PascalCased%.template.fsproj +25 -0
  256. package/lib/init-templates/sample-app/fsharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.fs +14 -0
  257. package/lib/init-templates/sample-app/fsharp/src/%name.PascalCased%/Program.template.fs +11 -0
  258. package/lib/init-templates/sample-app/fsharp/src/%name.PascalCased%.template.sln +18 -0
  259. package/lib/init-templates/sample-app/go/%name%.template.go +73 -0
  260. package/lib/init-templates/sample-app/go/%name%_test.template.go +25 -0
  261. package/lib/init-templates/sample-app/go/.template.gitignore +19 -0
  262. package/lib/init-templates/sample-app/go/README.md +12 -0
  263. package/lib/init-templates/sample-app/go/cdk.template.json +13 -0
  264. package/lib/init-templates/sample-app/go/go.template.mod +9 -0
  265. package/lib/init-templates/sample-app/info.json +4 -0
  266. package/lib/init-templates/sample-app/java/.template.gitignore +13 -0
  267. package/lib/init-templates/sample-app/java/README.template.md +19 -0
  268. package/lib/init-templates/sample-app/java/cdk.json +13 -0
  269. package/lib/init-templates/sample-app/java/pom.xml +55 -0
  270. package/lib/init-templates/sample-app/java/src/main/java/com/myorg/%name.PascalCased%App.template.java +13 -0
  271. package/lib/init-templates/sample-app/java/src/main/java/com/myorg/%name.PascalCased%Stack.template.java +29 -0
  272. package/lib/init-templates/sample-app/java/src/test/java/com/myorg/%name.PascalCased%StackTest.template.java +27 -0
  273. package/lib/init-templates/sample-app/javascript/.template.gitignore +5 -0
  274. package/lib/init-templates/sample-app/javascript/.template.npmignore +3 -0
  275. package/lib/init-templates/sample-app/javascript/README.template.md +13 -0
  276. package/lib/init-templates/sample-app/javascript/bin/%name%.template.js +6 -0
  277. package/lib/init-templates/sample-app/javascript/cdk.template.json +15 -0
  278. package/lib/init-templates/sample-app/javascript/jest.config.js +4 -0
  279. package/lib/init-templates/sample-app/javascript/lib/%name%-stack.template.js +25 -0
  280. package/lib/init-templates/sample-app/javascript/package.json +20 -0
  281. package/lib/init-templates/sample-app/javascript/test/%name%.test.template.js +16 -0
  282. package/lib/init-templates/sample-app/javascript/tsconfig.json +34 -0
  283. package/lib/init-templates/sample-app/python/%name.PythonModule%/%name.PythonModule%_stack.template.py +26 -0
  284. package/lib/init-templates/sample-app/python/%name.PythonModule%/__init__.py +0 -0
  285. package/lib/init-templates/sample-app/python/.template.gitignore +22 -0
  286. package/lib/init-templates/sample-app/python/README.template.md +65 -0
  287. package/lib/init-templates/sample-app/python/app.template.py +11 -0
  288. package/lib/init-templates/sample-app/python/cdk.template.json +15 -0
  289. package/lib/init-templates/sample-app/python/requirements-dev.txt +1 -0
  290. package/lib/init-templates/sample-app/python/requirements.txt +2 -0
  291. package/lib/init-templates/sample-app/python/source.bat +13 -0
  292. package/lib/init-templates/sample-app/python/tests/__init__.py +0 -0
  293. package/lib/init-templates/sample-app/python/tests/unit/__init__.py +0 -0
  294. package/lib/init-templates/sample-app/python/tests/unit/test_%name.PythonModule%_stack.template.py +21 -0
  295. package/lib/init-templates/sample-app/typescript/.template.gitignore +8 -0
  296. package/lib/init-templates/sample-app/typescript/.template.npmignore +6 -0
  297. package/lib/init-templates/sample-app/typescript/README.template.md +15 -0
  298. package/lib/init-templates/sample-app/typescript/bin/%name%.template.ts +6 -0
  299. package/lib/init-templates/sample-app/typescript/cdk.template.json +17 -0
  300. package/lib/init-templates/sample-app/typescript/jest.config.js +9 -0
  301. package/lib/init-templates/sample-app/typescript/lib/%name%-stack.template.ts +19 -0
  302. package/lib/init-templates/sample-app/typescript/package.json +26 -0
  303. package/lib/init-templates/sample-app/typescript/test/%name%.test.template.ts +17 -0
  304. package/lib/init-templates/sample-app/typescript/tsconfig.json +32 -0
  305. package/lib/util.d.ts +1 -0
  306. package/lib/util.js +19 -0
  307. package/package.json +170 -0
  308. package/release.txt +2 -0
@@ -0,0 +1,8 @@
1
+ import type { IoHelper } from '../../api-private';
2
+ /**
3
+ * OS helpers
4
+ *
5
+ * Shell function which both prints to stdout and collects the output into a
6
+ * string.
7
+ */
8
+ export declare function shell(ioHelper: IoHelper, command: string[]): Promise<string>;
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.shell = shell;
4
+ const child_process = require("child_process");
5
+ const toolkit_lib_1 = require("@aws-cdk/toolkit-lib");
6
+ const chalk = require("chalk");
7
+ /**
8
+ * OS helpers
9
+ *
10
+ * Shell function which both prints to stdout and collects the output into a
11
+ * string.
12
+ */
13
+ async function shell(ioHelper, command) {
14
+ const commandLine = renderCommandLine(command);
15
+ await ioHelper.defaults.debug(`Executing ${chalk.blue(commandLine)}`);
16
+ const child = child_process.spawn(command[0], renderArguments(command.slice(1)), {
17
+ // Need this for Windows where we want .cmd and .bat to be found as well.
18
+ shell: true,
19
+ stdio: ['ignore', 'pipe', 'inherit'],
20
+ });
21
+ return new Promise((resolve, reject) => {
22
+ const stdout = new Array();
23
+ // Both write to stdout and collect
24
+ child.stdout.on('data', chunk => {
25
+ process.stdout.write(chunk);
26
+ stdout.push(chunk);
27
+ });
28
+ child.once('error', reject);
29
+ child.once('exit', code => {
30
+ if (code === 0) {
31
+ resolve(Buffer.from(stdout).toString('utf-8'));
32
+ }
33
+ else {
34
+ reject(new toolkit_lib_1.ToolkitError('CommandFailed', `${commandLine} exited with error code ${code}`));
35
+ }
36
+ });
37
+ });
38
+ }
39
+ function renderCommandLine(cmd) {
40
+ return renderArguments(cmd).join(' ');
41
+ }
42
+ /**
43
+ * Render the arguments to include escape characters for each platform.
44
+ */
45
+ function renderArguments(cmd) {
46
+ if (process.platform !== 'win32') {
47
+ return doRender(cmd, hasAnyChars(' ', '\\', '!', '"', "'", '&', '$'), posixEscape);
48
+ }
49
+ else {
50
+ return doRender(cmd, hasAnyChars(' ', '"', '&', '^', '%'), windowsEscape);
51
+ }
52
+ }
53
+ /**
54
+ * Render a UNIX command line
55
+ */
56
+ function doRender(cmd, needsEscaping, doEscape) {
57
+ return cmd.map(x => needsEscaping(x) ? doEscape(x) : x);
58
+ }
59
+ /**
60
+ * Return a predicate that checks if a string has any of the indicated chars in it
61
+ */
62
+ function hasAnyChars(...chars) {
63
+ return (str) => {
64
+ return chars.some(c => str.indexOf(c) !== -1);
65
+ };
66
+ }
67
+ /**
68
+ * Escape a shell argument for POSIX shells
69
+ *
70
+ * Wrapping in single quotes and escaping single quotes inside will do it for us.
71
+ */
72
+ function posixEscape(x) {
73
+ // Turn ' -> '"'"'
74
+ x = x.replace(/'/g, "'\"'\"'");
75
+ return `'${x}'`;
76
+ }
77
+ /**
78
+ * Escape a shell argument for cmd.exe
79
+ *
80
+ * This is how to do it right, but I'm not following everything:
81
+ *
82
+ * https://blogs.msdn.microsoft.com/twistylittlepassagesallalike/2011/04/23/everyone-quotes-command-line-arguments-the-wrong-way/
83
+ */
84
+ function windowsEscape(x) {
85
+ // First surround by double quotes, ignore the part about backslashes
86
+ x = `"${x}"`;
87
+ // Now escape all special characters
88
+ const shellMeta = new Set(['"', '&', '^', '%']);
89
+ return x.split('').map(c => shellMeta.has(x) ? '^' + c : c).join('');
90
+ }
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVdBLHNCQTRCQztBQXZDRCwrQ0FBK0M7QUFDL0Msc0RBQW9EO0FBQ3BELCtCQUErQjtBQUcvQjs7Ozs7R0FLRztBQUNJLEtBQUssVUFBVSxLQUFLLENBQUMsUUFBa0IsRUFBRSxPQUFpQjtJQUMvRCxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEUsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUMvRSx5RUFBeUU7UUFDekUsS0FBSyxFQUFFLElBQUk7UUFDWCxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQztLQUNyQyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksT0FBTyxDQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUksS0FBSyxFQUFPLENBQUM7UUFFaEMsbUNBQW1DO1FBQ25DLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRTtZQUM5QixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFNUIsS0FBSyxDQUFD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cm9jZXNzJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJ0Bhd3MtY2RrL3Rvb2xraXQtbGliJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi8uLi9hcGktcHJpdmF0ZSc7XG5cbi8qKlxuICogT1MgaGVscGVyc1xuICpcbiAqIFNoZWxsIGZ1bmN0aW9uIHdoaWNoIGJvdGggcHJpbnRzIHRvIHN0ZG91dCBhbmQgY29sbGVjdHMgdGhlIG91dHB1dCBpbnRvIGFcbiAqIHN0cmluZy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNoZWxsKGlvSGVscGVyOiBJb0hlbHBlciwgY29tbWFuZDogc3RyaW5nW10pOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBjb21tYW5kTGluZSA9IHJlbmRlckNvbW1hbmRMaW5lKGNvbW1hbmQpO1xuICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgRXhlY3V0aW5nICR7Y2hhbGsuYmx1ZShjb21tYW5kTGluZSl9YCk7XG4gIGNvbnN0IGNoaWxkID0gY2hpbGRfcHJvY2Vzcy5zcGF3bihjb21tYW5kWzBdLCByZW5kZXJBcmd1bWVudHMoY29tbWFuZC5zbGljZSgxKSksIHtcbiAgICAvLyBOZWVkIHRoaXMgZm9yIFdpbmRvd3Mgd2hlcmUgd2Ugd2FudCAuY21kIGFuZCAuYmF0IHRvIGJlIGZvdW5kIGFzIHdlbGwuXG4gICAgc2hlbGw6IHRydWUsXG4gICAgc3RkaW86IFsnaWdub3JlJywgJ3BpcGUnLCAnaW5oZXJpdCddLFxuICB9KTtcblxuICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3Qgc3Rkb3V0ID0gbmV3IEFycmF5PGFueT4oKTtcblxuICAgIC8vIEJvdGggd3JpdGUgdG8gc3Rkb3V0IGFuZCBjb2xsZWN0XG4gICAgY2hpbGQuc3Rkb3V0Lm9uKCdkYXRhJywgY2h1bmsgPT4ge1xuICAgICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoY2h1bmspO1xuICAgICAgc3Rkb3V0LnB1c2goY2h1bmspO1xuICAgIH0pO1xuXG4gICAgY2hpbGQub25jZSgnZXJyb3InLCByZWplY3QpO1xuXG4gICAgY2hpbGQub25jZSgnZXhpdCcsIGNvZGUgPT4ge1xuICAgICAgaWYgKGNvZGUgPT09IDApIHtcbiAgICAgICAgcmVzb2x2ZShCdWZmZXIuZnJvbShzdGRvdXQpLnRvU3RyaW5nKCd1dGYtOCcpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlamVjdChuZXcgVG9vbGtpdEVycm9yKCdDb21tYW5kRmFpbGVkJywgYCR7Y29tbWFuZExpbmV9IGV4aXRlZCB3aXRoIGVycm9yIGNvZGUgJHtjb2RlfWApKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlbmRlckNvbW1hbmRMaW5lKGNtZDogc3RyaW5nW10pIHtcbiAgcmV0dXJuIHJlbmRlckFyZ3VtZW50cyhjbWQpLmpvaW4oJyAnKTtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGFyZ3VtZW50cyB0byBpbmNsdWRlIGVzY2FwZSBjaGFyYWN0ZXJzIGZvciBlYWNoIHBsYXRmb3JtLlxuICovXG5mdW5jdGlvbiByZW5kZXJBcmd1bWVudHMoY21kOiBzdHJpbmdbXSkge1xuICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSAhPT0gJ3dpbjMyJykge1xuICAgIHJldHVybiBkb1JlbmRlcihjbWQsIGhhc0FueUNoYXJzKCcgJywgJ1xcXFwnLCAnIScsICdcIicsIFwiJ1wiLCAnJicsICckJyksIHBvc2l4RXNjYXBlKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZG9SZW5kZXIoY21kLCBoYXNBbnlDaGFycygnICcsICdcIicsICcmJywgJ14nLCAnJScpLCB3aW5kb3dzRXNjYXBlKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbmRlciBhIFVOSVggY29tbWFuZCBsaW5lXG4gKi9cbmZ1bmN0aW9uIGRvUmVuZGVyKGNtZDogc3RyaW5nW10sIG5lZWRzRXNjYXBpbmc6ICh4OiBzdHJpbmcpID0+IGJvb2xlYW4sIGRvRXNjYXBlOiAoeDogc3RyaW5nKSA9PiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBjbWQubWFwKHggPT4gbmVlZHNFc2NhcGluZyh4KSA/IGRvRXNjYXBlKHgpIDogeCk7XG59XG5cbi8qKlxuICogUmV0dXJuIGEgcHJlZGljYXRlIHRoYXQgY2hlY2tzIGlmIGEgc3RyaW5nIGhhcyBhbnkgb2YgdGhlIGluZGljYXRlZCBjaGFycyBpbiBpdFxuICovXG5mdW5jdGlvbiBoYXNBbnlDaGFycyguLi5jaGFyczogc3RyaW5nW10pOiAoeDogc3RyaW5nKSA9PiBib29sZWFuIHtcbiAgcmV0dXJuIChzdHI6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBjaGFycy5zb21lKGMgPT4gc3RyLmluZGV4T2YoYykgIT09IC0xKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBFc2NhcGUgYSBzaGVsbCBhcmd1bWVudCBmb3IgUE9TSVggc2hlbGxzXG4gKlxuICogV3JhcHBpbmcgaW4gc2luZ2xlIHF1b3RlcyBhbmQgZXNjYXBpbmcgc2luZ2xlIHF1b3RlcyBpbnNpZGUgd2lsbCBkbyBpdCBmb3IgdXMuXG4gKi9cbmZ1bmN0aW9uIHBvc2l4RXNjYXBlKHg6IHN0cmluZykge1xuICAvLyBUdXJuICcgLT4gJ1wiJ1wiJ1xuICB4ID0geC5yZXBsYWNlKC8nL2csIFwiJ1xcXCInXFxcIidcIik7XG4gIHJldHVybiBgJyR7eH0nYDtcbn1cblxuLyoqXG4gKiBFc2NhcGUgYSBzaGVsbCBhcmd1bWVudCBmb3IgY21kLmV4ZVxuICpcbiAqIFRoaXMgaXMgaG93IHRvIGRvIGl0IHJpZ2h0LCBidXQgSSdtIG5vdCBmb2xsb3dpbmcgZXZlcnl0aGluZzpcbiAqXG4gKiBodHRwczovL2Jsb2dzLm1zZG4ubWljcm9zb2Z0LmNvbS90d2lzdHlsaXR0bGVwYXNzYWdlc2FsbGFsaWtlLzIwMTEvMDQvMjMvZXZlcnlvbmUtcXVvdGVzLWNvbW1hbmQtbGluZS1hcmd1bWVudHMtdGhlLXdyb25nLXdheS9cbiAqL1xuZnVuY3Rpb24gd2luZG93c0VzY2FwZSh4OiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBGaXJzdCBzdXJyb3VuZCBieSBkb3VibGUgcXVvdGVzLCBpZ25vcmUgdGhlIHBhcnQgYWJvdXQgYmFja3NsYXNoZXNcbiAgeCA9IGBcIiR7eH1cImA7XG4gIC8vIE5vdyBlc2NhcGUgYWxsIHNwZWNpYWwgY2hhcmFjdGVyc1xuICBjb25zdCBzaGVsbE1ldGEgPSBuZXcgU2V0PHN0cmluZz4oWydcIicsICcmJywgJ14nLCAnJSddKTtcbiAgcmV0dXJuIHguc3BsaXQoJycpLm1hcChjID0+IHNoZWxsTWV0YS5oYXMoeCkgPyAnXicgKyBjIDogYykuam9pbignJyk7XG59XG4iXX0=
@@ -0,0 +1,15 @@
1
+ export declare const JS_PACKAGE_MANAGERS: readonly [{
2
+ readonly name: "npm";
3
+ readonly commandPrefix: "npm run";
4
+ }, {
5
+ readonly name: "yarn";
6
+ readonly commandPrefix: "yarn";
7
+ }, {
8
+ readonly name: "pnpm";
9
+ readonly commandPrefix: "pnpm";
10
+ }, {
11
+ readonly name: "bun";
12
+ readonly commandPrefix: "bun run";
13
+ }];
14
+ export type JsPackageManager = (typeof JS_PACKAGE_MANAGERS)[number]['name'];
15
+ export declare const getPmCmdPrefix: (packageManager: JsPackageManager) => string;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPmCmdPrefix = exports.JS_PACKAGE_MANAGERS = void 0;
4
+ exports.JS_PACKAGE_MANAGERS = [
5
+ { name: 'npm', commandPrefix: 'npm run' },
6
+ { name: 'yarn', commandPrefix: 'yarn' },
7
+ { name: 'pnpm', commandPrefix: 'pnpm' },
8
+ { name: 'bun', commandPrefix: 'bun run' },
9
+ ];
10
+ const getPmCmdPrefix = (packageManager) => {
11
+ return exports.JS_PACKAGE_MANAGERS.find(pm => pm.name === packageManager).commandPrefix;
12
+ };
13
+ exports.getPmCmdPrefix = getPmCmdPrefix;
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGFja2FnZS1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUU7SUFDekMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUU7SUFDdkMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUU7SUFDdkMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUU7Q0FDakMsQ0FBQztBQUlKLE1BQU0sY0FBYyxHQUFHLENBQUMsY0FBZ0MsRUFBVSxFQUFFO0lBQ3pFLE9BQU8sMkJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxjQUFjLENBQUUsQ0FBQyxhQUFhLENBQUM7QUFDbkYsQ0FBQyxDQUFDO0FBRlcsUUFBQSxjQUFjLGtCQUV6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBKU19QQUNLQUdFX01BTkFHRVJTID0gW1xuICB7IG5hbWU6ICducG0nLCBjb21tYW5kUHJlZml4OiAnbnBtIHJ1bicgfSxcbiAgeyBuYW1lOiAneWFybicsIGNvbW1hbmRQcmVmaXg6ICd5YXJuJyB9LFxuICB7IG5hbWU6ICdwbnBtJywgY29tbWFuZFByZWZpeDogJ3BucG0nIH0sXG4gIHsgbmFtZTogJ2J1bicsIGNvbW1hbmRQcmVmaXg6ICdidW4gcnVuJyB9LFxuXSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgSnNQYWNrYWdlTWFuYWdlciA9ICh0eXBlb2YgSlNfUEFDS0FHRV9NQU5BR0VSUylbbnVtYmVyXVsnbmFtZSddO1xuXG5leHBvcnQgY29uc3QgZ2V0UG1DbWRQcmVmaXggPSAocGFja2FnZU1hbmFnZXI6IEpzUGFja2FnZU1hbmFnZXIpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gSlNfUEFDS0FHRV9NQU5BR0VSUy5maW5kKHBtID0+IHBtLm5hbWUgPT09IHBhY2thZ2VNYW5hZ2VyKSEuY29tbWFuZFByZWZpeDtcbn07XG4iXX0=
@@ -0,0 +1,30 @@
1
+ export interface LanguageInfo {
2
+ name: string;
3
+ alias: string;
4
+ extensions: string[];
5
+ }
6
+ export declare const SUPPORTED_LANGUAGES: LanguageInfo[];
7
+ /**
8
+ * get the language alias from the language name or alias
9
+ *
10
+ * @example
11
+ * getLanguageAlias('typescript') // returns 'ts'
12
+ * getLanguageAlias('python') // returns 'py'
13
+ */
14
+ export declare function getLanguageAlias(language: string): string | undefined;
15
+ /**
16
+ * get the language name from the language alias or name
17
+ *
18
+ * @example
19
+ * getLanguageFromAlias('ts') // returns 'typescript'
20
+ * getLanguageFromAlias('py') // returns 'python'
21
+ */
22
+ export declare function getLanguageFromAlias(alias: string): string | undefined;
23
+ /**
24
+ * get the file extensions for a given language name or alias
25
+ *
26
+ * @example
27
+ * getLanguageExtensions('typescript') // returns ['.ts', '.js']
28
+ * getLanguageExtensions('python') // returns ['.py']
29
+ */
30
+ export declare function getLanguageExtensions(language: string): string[];
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SUPPORTED_LANGUAGES = void 0;
4
+ exports.getLanguageAlias = getLanguageAlias;
5
+ exports.getLanguageFromAlias = getLanguageFromAlias;
6
+ exports.getLanguageExtensions = getLanguageExtensions;
7
+ exports.SUPPORTED_LANGUAGES = [
8
+ { name: 'csharp', alias: 'cs', extensions: ['.cs'] },
9
+ { name: 'fsharp', alias: 'fs', extensions: ['.fs'] },
10
+ { name: 'go', alias: 'go', extensions: ['.go'] },
11
+ { name: 'java', alias: 'java', extensions: ['.java'] },
12
+ { name: 'javascript', alias: 'js', extensions: ['.js'] },
13
+ { name: 'python', alias: 'py', extensions: ['.py'] },
14
+ { name: 'typescript', alias: 'ts', extensions: ['.ts', '.js'] },
15
+ ];
16
+ /**
17
+ * get the language alias from the language name or alias
18
+ *
19
+ * @example
20
+ * getLanguageAlias('typescript') // returns 'ts'
21
+ * getLanguageAlias('python') // returns 'py'
22
+ */
23
+ function getLanguageAlias(language) {
24
+ return exports.SUPPORTED_LANGUAGES.find((l) => l.name === language || l.alias === language)?.alias;
25
+ }
26
+ /**
27
+ * get the language name from the language alias or name
28
+ *
29
+ * @example
30
+ * getLanguageFromAlias('ts') // returns 'typescript'
31
+ * getLanguageFromAlias('py') // returns 'python'
32
+ */
33
+ function getLanguageFromAlias(alias) {
34
+ return exports.SUPPORTED_LANGUAGES.find((l) => l.alias === alias || l.name === alias)?.name;
35
+ }
36
+ /**
37
+ * get the file extensions for a given language name or alias
38
+ *
39
+ * @example
40
+ * getLanguageExtensions('typescript') // returns ['.ts', '.js']
41
+ * getLanguageExtensions('python') // returns ['.py']
42
+ */
43
+ function getLanguageExtensions(language) {
44
+ return exports.SUPPORTED_LANGUAGES.find((l) => l.name === language || l.alias === language)?.extensions ?? [];
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJsYW5ndWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1QkEsNENBRUM7QUFTRCxvREFFQztBQVNELHNEQUVDO0FBekNZLFFBQUEsbUJBQW1CLEdBQW1CO0lBQ2pELEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFO0lBQ3BELEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFO0lBQ3BELEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFO0lBQ2hELEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFO0lBQ3RELEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFO0lBQ3hELEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFO0lBQ3BELEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRTtDQUNoRSxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsUUFBZ0I7SUFDL0MsT0FBTywyQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDO0FBQzdGLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxLQUFhO0lBQ2hELE9BQU8sMkJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQztBQUN0RixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsUUFBZ0I7SUFDcEQsT0FBTywyQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQztBQUN4RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBMYW5ndWFnZUluZm8ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGFsaWFzOiBzdHJpbmc7XG4gIGV4dGVuc2lvbnM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY29uc3QgU1VQUE9SVEVEX0xBTkdVQUdFUzogTGFuZ3VhZ2VJbmZvW10gPSBbXG4gIHsgbmFtZTogJ2NzaGFycCcsIGFsaWFzOiAnY3MnLCBleHRlbnNpb25zOiBbJy5jcyddIH0sXG4gIHsgbmFtZTogJ2ZzaGFycCcsIGFsaWFzOiAnZnMnLCBleHRlbnNpb25zOiBbJy5mcyddIH0sXG4gIHsgbmFtZTogJ2dvJywgYWxpYXM6ICdnbycsIGV4dGVuc2lvbnM6IFsnLmdvJ10gfSxcbiAgeyBuYW1lOiAnamF2YScsIGFsaWFzOiAnamF2YScsIGV4dGVuc2lvbnM6IFsnLmphdmEnXSB9LFxuICB7IG5hbWU6ICdqYXZhc2NyaXB0JywgYWxpYXM6ICdqcycsIGV4dGVuc2lvbnM6IFsnLmpzJ10gfSxcbiAgeyBuYW1lOiAncHl0aG9uJywgYWxpYXM6ICdweScsIGV4dGVuc2lvbnM6IFsnLnB5J10gfSxcbiAgeyBuYW1lOiAndHlwZXNjcmlwdCcsIGFsaWFzOiAndHMnLCBleHRlbnNpb25zOiBbJy50cycsICcuanMnXSB9LFxuXTtcblxuLyoqXG4gKiBnZXQgdGhlIGxhbmd1YWdlIGFsaWFzIGZyb20gdGhlIGxhbmd1YWdlIG5hbWUgb3IgYWxpYXNcbiAqXG4gKiBAZXhhbXBsZVxuICogZ2V0TGFuZ3VhZ2VBbGlhcygndHlwZXNjcmlwdCcpIC8vIHJldHVybnMgJ3RzJ1xuICogZ2V0TGFuZ3VhZ2VBbGlhcygncHl0aG9uJykgLy8gcmV0dXJucyAncHknXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYW5ndWFnZUFsaWFzKGxhbmd1YWdlOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gU1VQUE9SVEVEX0xBTkdVQUdFUy5maW5kKChsKSA9PiBsLm5hbWUgPT09IGxhbmd1YWdlIHx8IGwuYWxpYXMgPT09IGxhbmd1YWdlKT8uYWxpYXM7XG59XG5cbi8qKlxuICogZ2V0IHRoZSBsYW5ndWFnZSBuYW1lIGZyb20gdGhlIGxhbmd1YWdlIGFsaWFzIG9yIG5hbWVcbiAqXG4gKiBAZXhhbXBsZVxuICogZ2V0TGFuZ3VhZ2VGcm9tQWxpYXMoJ3RzJykgLy8gcmV0dXJucyAndHlwZXNjcmlwdCdcbiAqIGdldExhbmd1YWdlRnJvbUFsaWFzKCdweScpIC8vIHJldHVybnMgJ3B5dGhvbidcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExhbmd1YWdlRnJvbUFsaWFzKGFsaWFzOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gU1VQUE9SVEVEX0xBTkdVQUdFUy5maW5kKChsKSA9PiBsLmFsaWFzID09PSBhbGlhcyB8fCBsLm5hbWUgPT09IGFsaWFzKT8ubmFtZTtcbn1cblxuLyoqXG4gKiBnZXQgdGhlIGZpbGUgZXh0ZW5zaW9ucyBmb3IgYSBnaXZlbiBsYW5ndWFnZSBuYW1lIG9yIGFsaWFzXG4gKlxuICogQGV4YW1wbGVcbiAqIGdldExhbmd1YWdlRXh0ZW5zaW9ucygndHlwZXNjcmlwdCcpIC8vIHJldHVybnMgWycudHMnLCAnLmpzJ11cbiAqIGdldExhbmd1YWdlRXh0ZW5zaW9ucygncHl0aG9uJykgLy8gcmV0dXJucyBbJy5weSddXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYW5ndWFnZUV4dGVuc2lvbnMobGFuZ3VhZ2U6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIFNVUFBPUlRFRF9MQU5HVUFHRVMuZmluZCgobCkgPT4gbC5uYW1lID09PSBsYW5ndWFnZSB8fCBsLmFsaWFzID09PSBsYW5ndWFnZSk/LmV4dGVuc2lvbnMgPz8gW107XG59XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import type { StackDetails } from '@aws-cdk/toolkit-lib';
2
+ import type { CdkToolkit } from '../cli/cdk-toolkit';
3
+ /**
4
+ * Options for List Stacks
5
+ */
6
+ export interface ListStacksOptions {
7
+ /**
8
+ * Stacks to list
9
+ *
10
+ * @default - All stacks are listed
11
+ */
12
+ readonly selectors: string[];
13
+ }
14
+ /**
15
+ * List Stacks
16
+ *
17
+ * @param toolkit - cdk toolkit
18
+ * @param options - list stacks options
19
+ * @returns StackDetails[]
20
+ */
21
+ export declare function listStacks(toolkit: CdkToolkit, options: ListStacksOptions): Promise<StackDetails[]>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listStacks = listStacks;
4
+ const cxapp_1 = require("../cxapp");
5
+ /**
6
+ * List Stacks
7
+ *
8
+ * @param toolkit - cdk toolkit
9
+ * @param options - list stacks options
10
+ * @returns StackDetails[]
11
+ */
12
+ async function listStacks(toolkit, options) {
13
+ const assembly = await toolkit.assembly();
14
+ const stacks = await assembly.selectStacks({
15
+ patterns: options.selectors,
16
+ }, {
17
+ extend: cxapp_1.ExtendedStackSelection.Upstream,
18
+ defaultBehavior: cxapp_1.DefaultSelection.AllStacks,
19
+ });
20
+ // we only want to print a subset of information in `cdk list --json`
21
+ return stacks.withDependencies().map(stack => ({
22
+ id: stack.id,
23
+ name: stack.name,
24
+ environment: stack.environment,
25
+ dependencies: stack.dependencies,
26
+ }));
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1zdGFja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJsaXN0LXN0YWNrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXVCQSxnQ0FpQkM7QUF0Q0Qsb0NBQW9FO0FBY3BFOzs7Ozs7R0FNRztBQUNJLEtBQUssVUFBVSxVQUFVLENBQUMsT0FBbUIsRUFBRSxPQUEwQjtJQUM5RSxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUUxQyxNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDekMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxTQUFTO0tBQzVCLEVBQUU7UUFDRCxNQUFNLEVBQUUsOEJBQXNCLENBQUMsUUFBUTtRQUN2QyxlQUFlLEVBQUUsd0JBQWdCLENBQUMsU0FBUztLQUM1QyxDQUFDLENBQUM7SUFFSCxxRUFBcUU7SUFDckUsT0FBTyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRTtRQUNaLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtRQUNoQixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7UUFDOUIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO0tBQ2pDLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RhY2tEZXRhaWxzIH0gZnJvbSAnQGF3cy1jZGsvdG9vbGtpdC1saWInO1xuaW1wb3J0IHR5cGUgeyBDZGtUb29sa2l0IH0gZnJvbSAnLi4vY2xpL2Nkay10b29sa2l0JztcbmltcG9ydCB7IERlZmF1bHRTZWxlY3Rpb24sIEV4dGVuZGVkU3RhY2tTZWxlY3Rpb24gfSBmcm9tICcuLi9jeGFwcCc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgTGlzdCBTdGFja3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXN0U3RhY2tzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTdGFja3MgdG8gbGlzdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEFsbCBzdGFja3MgYXJlIGxpc3RlZFxuICAgKi9cbiAgcmVhZG9ubHkgc2VsZWN0b3JzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBMaXN0IFN0YWNrc1xuICpcbiAqIEBwYXJhbSB0b29sa2l0IC0gY2RrIHRvb2xraXRcbiAqIEBwYXJhbSBvcHRpb25zIC0gbGlzdCBzdGFja3Mgb3B0aW9uc1xuICogQHJldHVybnMgU3RhY2tEZXRhaWxzW11cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpc3RTdGFja3ModG9vbGtpdDogQ2RrVG9vbGtpdCwgb3B0aW9uczogTGlzdFN0YWNrc09wdGlvbnMpOiBQcm9taXNlPFN0YWNrRGV0YWlsc1tdPiB7XG4gIGNvbnN0IGFzc2VtYmx5ID0gYXdhaXQgdG9vbGtpdC5hc3NlbWJseSgpO1xuXG4gIGNvbnN0IHN0YWNrcyA9IGF3YWl0IGFzc2VtYmx5LnNlbGVjdFN0YWNrcyh7XG4gICAgcGF0dGVybnM6IG9wdGlvbnMuc2VsZWN0b3JzLFxuICB9LCB7XG4gICAgZXh0ZW5kOiBFeHRlbmRlZFN0YWNrU2VsZWN0aW9uLlVwc3RyZWFtLFxuICAgIGRlZmF1bHRCZWhhdmlvcjogRGVmYXVsdFNlbGVjdGlvbi5BbGxTdGFja3MsXG4gIH0pO1xuXG4gIC8vIHdlIG9ubHkgd2FudCB0byBwcmludCBhIHN1YnNldCBvZiBpbmZvcm1hdGlvbiBpbiBgY2RrIGxpc3QgLS1qc29uYFxuICByZXR1cm4gc3RhY2tzLndpdGhEZXBlbmRlbmNpZXMoKS5tYXAoc3RhY2sgPT4gKHtcbiAgICBpZDogc3RhY2suaWQsXG4gICAgbmFtZTogc3RhY2submFtZSxcbiAgICBlbnZpcm9ubWVudDogc3RhY2suZW52aXJvbm1lbnQsXG4gICAgZGVwZW5kZW5jaWVzOiBzdGFjay5kZXBlbmRlbmNpZXMsXG4gIH0pKTtcbn1cbiJdfQ==
@@ -0,0 +1,316 @@
1
+ import type { Environment } from '@aws-cdk/cloud-assembly-api';
2
+ import type { DescribeGeneratedTemplateCommandOutput, DescribeResourceScanCommandOutput, GetGeneratedTemplateCommandOutput, ResourceDefinition, ResourceDetail, ResourceIdentifierSummary, ResourceScanSummary, ScannedResource, ScannedResourceIdentifier } from '@aws-sdk/client-cloudformation';
3
+ import type { ICloudFormationClient, SdkProvider } from '../api/aws-auth';
4
+ import type { IoHelper } from '../api-private';
5
+ /**
6
+ * Generates a CDK app from a yaml or json template.
7
+ *
8
+ * @param stackName - The name to assign to the stack in the generated app
9
+ * @param stack - The yaml or json template for the stack
10
+ * @param language - The language to generate the CDK app in
11
+ * @param outputPath - The path at which to generate the CDK app
12
+ */
13
+ export declare function generateCdkApp(ioHelper: IoHelper, stackName: string, stack: string, language: string, outputPath?: string, compress?: boolean): Promise<void>;
14
+ /**
15
+ * Generates a CDK stack file.
16
+ * @param template - The template to translate into a CDK stack
17
+ * @param stackName - The name to assign to the stack
18
+ * @param language - The language to generate the stack in
19
+ * @returns A string representation of a CDK stack file
20
+ */
21
+ export declare function generateStack(template: string, stackName: string, language: string): string;
22
+ /**
23
+ * Reads and returns a stack template from a local path.
24
+ *
25
+ * @param inputPath - The location of the template
26
+ * @returns A string representation of the template if present, otherwise undefined
27
+ */
28
+ export declare function readFromPath(inputPath: string): string;
29
+ /**
30
+ * Reads and returns a stack template from a deployed CloudFormation stack.
31
+ *
32
+ * @param stackName - The name of the stack
33
+ * @param sdkProvider - The sdk provider for making CloudFormation calls
34
+ * @param environment - The account and region where the stack is deployed
35
+ * @returns A string representation of the template if present, otherwise undefined
36
+ */
37
+ export declare function readFromStack(stackName: string, sdkProvider: SdkProvider, environment: Environment): Promise<string | undefined>;
38
+ /**
39
+ * Takes in a stack name and account and region and returns a generated cloudformation template using the cloudformation
40
+ * template generator.
41
+ *
42
+ * @param GenerateTemplateOptions - An object containing the stack name, filters, sdkProvider, environment, and newScan flag
43
+ * @returns a generated cloudformation template
44
+ */
45
+ export declare function generateTemplate(options: GenerateTemplateOptions): Promise<GenerateTemplateOutput>;
46
+ /**
47
+ * Takes a list of any type and breaks it up into chunks of a specified size.
48
+ *
49
+ * @param list - The list to break up
50
+ * @param chunkSize - The size of each chunk
51
+ * @returns A list of lists of the specified size
52
+ */
53
+ export declare function chunks(list: any[], chunkSize: number): any[][];
54
+ /**
55
+ * Sets the account and region for making CloudFormation calls.
56
+ * @param account - The account to use
57
+ * @param region - The region to use
58
+ * @returns The environment object
59
+ */
60
+ export declare function setEnvironment(account?: string, region?: string): Environment;
61
+ /**
62
+ * Enum for the source options for the template
63
+ */
64
+ export declare enum TemplateSourceOptions {
65
+ PATH = "path",
66
+ STACK = "stack",
67
+ SCAN = "scan"
68
+ }
69
+ /**
70
+ * An object representing the source of a template.
71
+ */
72
+ type TemplateSource = {
73
+ source: TemplateSourceOptions.SCAN;
74
+ } | {
75
+ source: TemplateSourceOptions.PATH;
76
+ templatePath: string;
77
+ } | {
78
+ source: TemplateSourceOptions.STACK;
79
+ stackName: string;
80
+ };
81
+ /**
82
+ * Enum for the status of a resource scan
83
+ */
84
+ export declare enum ScanStatus {
85
+ IN_PROGRESS = "IN_PROGRESS",
86
+ COMPLETE = "COMPLETE",
87
+ FAILED = "FAILED"
88
+ }
89
+ export declare enum FilterType {
90
+ RESOURCE_IDENTIFIER = "resource-identifier",
91
+ RESOURCE_TYPE_PREFIX = "resource-type-prefix",
92
+ TAG_KEY = "tag-key",
93
+ TAG_VALUE = "tag-value"
94
+ }
95
+ /**
96
+ * Validates that exactly one source option has been provided.
97
+ * @param fromPath - The content of the flag `--from-path`
98
+ * @param fromStack - the content of the flag `--from-stack`
99
+ */
100
+ export declare function parseSourceOptions(fromPath?: string, fromStack?: boolean, stackName?: string): TemplateSource;
101
+ /**
102
+ * Prints a progress bar to the console. To be used in a while loop to show progress of a long running task.
103
+ * The progress bar deletes the current line on the console and rewrites it with the progress amount.
104
+ *
105
+ * @param width - The width of the progress bar
106
+ * @param progress - The current progress to display as a percentage of 100
107
+ */
108
+ export declare function printBar(width: number, progress: number): void;
109
+ /**
110
+ * Prints a message to the console with a series periods appended to it. To be used in a while loop to show progress of a long running task.
111
+ * The message deletes the current line and rewrites it several times to display 1-3 periods to show the user that the task is still running.
112
+ *
113
+ * @param message - The message to display
114
+ * @param timeoutx4 - The amount of time to wait before printing the next period
115
+ */
116
+ export declare function printDots(message: string, timeoutx4: number): Promise<void>;
117
+ /**
118
+ * Rewrites the current line on the console and writes a new message to it.
119
+ * This is a helper funciton for printDots and printBar.
120
+ *
121
+ * @param message - The message to display
122
+ */
123
+ export declare function rewriteLine(message: string): void;
124
+ /**
125
+ * Writes a migrate.json file to the output directory.
126
+ *
127
+ * @param outputPath - The path to write the migrate.json file to
128
+ * @param stackName - The name of the stack
129
+ * @param generatedOutput - The output of the template generator
130
+ */
131
+ export declare function writeMigrateJsonFile(outputPath: string | undefined, stackName: string, migrateJson: MigrateJsonFormat): void;
132
+ /**
133
+ * Takes a string representing the from-scan flag and returns a FromScan enum value.
134
+ *
135
+ * @param scanType - A string representing the from-scan flag
136
+ * @returns A FromScan enum value
137
+ */
138
+ export declare function getMigrateScanType(scanType: string): FromScan;
139
+ /**
140
+ * Takes a generatedTemplateOutput objct and returns a boolean representing whether there are any warnings on any rescources.
141
+ *
142
+ * @param generatedTemplateOutput - A GenerateTemplateOutput object
143
+ * @returns A boolean representing whether there are any warnings on any rescources
144
+ */
145
+ export declare function isThereAWarning(generatedTemplateOutput: GenerateTemplateOutput): boolean;
146
+ /**
147
+ * Builds the GenerateTemplateOutput object from the DescribeGeneratedTemplateOutput and the template body.
148
+ *
149
+ * @param generatedTemplateSummary - The output of the describe generated template call
150
+ * @param templateBody - The body of the generated template
151
+ * @returns A GenerateTemplateOutput object
152
+ */
153
+ export declare function buildGeneratedTemplateOutput(generatedTemplateSummary: DescribeGeneratedTemplateCommandOutput, templateBody: string, source: string): GenerateTemplateOutput;
154
+ /**
155
+ * Builds a CloudFormation sdk client for making requests with the CFN template generator.
156
+ *
157
+ * @param sdkProvider - The sdk provider for making CloudFormation calls
158
+ * @param environment - The account and region where the stack is deployed
159
+ * @returns A CloudFormation sdk client
160
+ */
161
+ export declare function buildCfnClient(sdkProvider: SdkProvider, environment: Environment): Promise<ICloudFormationClient>;
162
+ /**
163
+ * Appends a list of warnings to a readme file.
164
+ *
165
+ * @param filepath - The path to the readme file
166
+ * @param resources - A list of resources to append warnings for
167
+ */
168
+ export declare function appendWarningsToReadme(filepath: string, resources: ResourceDetail[]): void;
169
+ /**
170
+ * Class for making CloudFormation template generator calls
171
+ */
172
+ export declare class CfnTemplateGeneratorProvider {
173
+ private cfn;
174
+ private ioHelper;
175
+ constructor(cfn: ICloudFormationClient, ioHelper: IoHelper);
176
+ checkForResourceScan(resourceScanSummaries: ResourceScanSummary[] | undefined, options: GenerateTemplateOptions, clientRequestToken: string): Promise<void>;
177
+ /**
178
+ * Retrieves a tokenized list of resources and their associated scan. If a token is present the function
179
+ * will loop through all pages and combine them into a single list of ScannedRelatedResources
180
+ *
181
+ * @param scanId - scan id for the to list resources for
182
+ * @param resources - A list of resources to find related resources for
183
+ */
184
+ getResourceScanRelatedResources(scanId: string, resources: ScannedResource[]): Promise<ScannedResourceIdentifier[]>;
185
+ /**
186
+ * Kicks off a scan of a customers account, returning the scan id. A scan can take
187
+ * 10 minutes or longer to complete. However this will return a scan id as soon as
188
+ * the scan has begun.
189
+ *
190
+ * @returns A string representing the scan id
191
+ */
192
+ startResourceScan(requestToken: string): Promise<string | undefined>;
193
+ /**
194
+ * Gets the most recent scans a customer has completed
195
+ *
196
+ * @returns a list of resource scan summaries
197
+ */
198
+ listResourceScans(): Promise<import("@aws-sdk/client-cloudformation").ListResourceScansCommandOutput>;
199
+ /**
200
+ * Retrieves a tokenized list of resources from a resource scan. If a token is present, this function
201
+ * will loop through all pages and combine them into a single list of ScannedResource[].
202
+ * Additionally will apply any filters provided by the customer.
203
+ *
204
+ * @param scanId - scan id for the to list resources for
205
+ * @param filters - a string of filters in the format of key1=value1,key2=value2
206
+ * @returns a combined list of all resources from the scan
207
+ */
208
+ listResourceScanResources(scanId: string, filters?: string[]): Promise<ScannedResourceIdentifier[]>;
209
+ /**
210
+ * Retrieves information about a resource scan.
211
+ *
212
+ * @param scanId - scan id for the to list resources for
213
+ * @returns information about the scan
214
+ */
215
+ describeResourceScan(scanId: string): Promise<DescribeResourceScanCommandOutput>;
216
+ /**
217
+ * Describes the current status of the template being generated.
218
+ *
219
+ * @param templateId - A string representing the template id
220
+ * @returns DescribeGeneratedTemplateOutput an object containing the template status and results
221
+ */
222
+ describeGeneratedTemplate(templateId: string): Promise<DescribeGeneratedTemplateCommandOutput>;
223
+ /**
224
+ * Retrieves a completed generated cloudformation template from the template generator.
225
+ *
226
+ * @param templateId - A string representing the template id
227
+ * @param cloudFormation - The CloudFormation sdk client to use
228
+ * @returns DescribeGeneratedTemplateOutput an object containing the template status and body
229
+ */
230
+ getGeneratedTemplate(templateId: string): Promise<GetGeneratedTemplateCommandOutput>;
231
+ /**
232
+ * Kicks off a template generation for a set of resources.
233
+ *
234
+ * @param stackName - The name of the stack
235
+ * @param resources - A list of resources to generate the template from
236
+ * @returns CreateGeneratedTemplateOutput an object containing the template arn to query on later
237
+ */
238
+ createGeneratedTemplate(stackName: string, resources: ResourceDefinition[]): Promise<import("@aws-sdk/client-cloudformation").CreateGeneratedTemplateCommandOutput>;
239
+ /**
240
+ * Deletes a generated template from the template generator.
241
+ *
242
+ * @param templateArn - The arn of the template to delete
243
+ * @returns A promise that resolves when the template has been deleted
244
+ */
245
+ deleteGeneratedTemplate(templateArn: string): Promise<void>;
246
+ }
247
+ /**
248
+ * The possible ways to choose a scan to generate a CDK application from
249
+ */
250
+ export declare enum FromScan {
251
+ /**
252
+ * Initiate a new resource scan to build the CDK application from.
253
+ */
254
+ NEW = 0,
255
+ /**
256
+ * Use the last successful scan to build the CDK application from. Will fail if no scan is found.
257
+ */
258
+ MOST_RECENT = 1,
259
+ /**
260
+ * Starts a scan if none exists, otherwise uses the most recent successful scan to build the CDK application from.
261
+ */
262
+ DEFAULT = 2
263
+ }
264
+ /**
265
+ * Interface for the options object passed to the generateTemplate function
266
+ *
267
+ * @param stackName - The name of the stack
268
+ * @param filters - A list of filters to apply to the scan
269
+ * @param fromScan - An enum value specifying whether a new scan should be started or the most recent successful scan should be used
270
+ * @param sdkProvider - The sdk provider for making CloudFormation calls
271
+ * @param environment - The account and region where the stack is deployed
272
+ */
273
+ export interface GenerateTemplateOptions {
274
+ stackName: string;
275
+ filters?: string[];
276
+ fromScan?: FromScan;
277
+ sdkProvider: SdkProvider;
278
+ environment: Environment;
279
+ ioHelper: IoHelper;
280
+ }
281
+ /**
282
+ * Interface for the output of the generateTemplate function
283
+ *
284
+ * @param migrateJson - The generated Migrate.json file
285
+ * @param resources - The generated template
286
+ */
287
+ export interface GenerateTemplateOutput {
288
+ migrateJson: MigrateJsonFormat;
289
+ resources?: ResourceDetail[];
290
+ templateId?: string;
291
+ }
292
+ /**
293
+ * Interface defining the format of the generated Migrate.json file
294
+ *
295
+ * @param TemplateBody - The generated template
296
+ * @param Source - The source of the template
297
+ * @param Resources - A list of resources that were used to generate the template
298
+ */
299
+ export interface MigrateJsonFormat {
300
+ templateBody: string;
301
+ source: string;
302
+ resources?: GeneratedResourceImportIdentifier[];
303
+ }
304
+ /**
305
+ * Interface representing the format of a resource identifier required for resource import
306
+ *
307
+ * @param ResourceType - The type of resource
308
+ * @param LogicalResourceId - The logical id of the resource
309
+ * @param ResourceIdentifier - The resource identifier of the resource
310
+ */
311
+ export interface GeneratedResourceImportIdentifier {
312
+ ResourceType: string;
313
+ LogicalResourceId: string;
314
+ ResourceIdentifier: ResourceIdentifierSummary;
315
+ }
316
+ export {};