takomo 8.0.3 → 9.0.0-alpha.1

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 (339) hide show
  1. package/dist/cli-io/formatters.d.ts +3 -1
  2. package/dist/cli-io/formatters.js +13 -1
  3. package/dist/cli-io/formatters.js.map +1 -1
  4. package/dist/cli-io/stacks/common.d.ts +4 -0
  5. package/dist/cli-io/stacks/common.js +17 -0
  6. package/dist/cli-io/stacks/common.js.map +1 -1
  7. package/dist/cli-io/stacks/deploy-stacks/deploy-stacks-io.d.ts +8 -1
  8. package/dist/cli-io/stacks/deploy-stacks/deploy-stacks-io.js +90 -25
  9. package/dist/cli-io/stacks/deploy-stacks/deploy-stacks-io.js.map +1 -1
  10. package/dist/cli-io/stacks/deploy-stacks/emit-stack-templates-io.js +8 -1
  11. package/dist/cli-io/stacks/deploy-stacks/emit-stack-templates-io.js.map +1 -1
  12. package/dist/cli-io/stacks/deploy-stacks/parameters.d.ts +3 -0
  13. package/dist/cli-io/stacks/deploy-stacks/parameters.js +72 -0
  14. package/dist/cli-io/stacks/deploy-stacks/parameters.js.map +1 -1
  15. package/dist/cli-io/stacks/deploy-stacks/resources.d.ts +2 -0
  16. package/dist/cli-io/stacks/deploy-stacks/resources.js +20 -0
  17. package/dist/cli-io/stacks/deploy-stacks/resources.js.map +1 -1
  18. package/dist/cli-io/stacks/deploy-stacks/stack-policy.d.ts +2 -2
  19. package/dist/cli-io/stacks/deploy-stacks/stack-policy.js.map +1 -1
  20. package/dist/cli-io/stacks/deploy-stacks/tags.d.ts +3 -0
  21. package/dist/cli-io/stacks/deploy-stacks/tags.js +68 -0
  22. package/dist/cli-io/stacks/deploy-stacks/tags.js.map +1 -1
  23. package/dist/cli-io/stacks/deploy-stacks/termination-protection.d.ts +2 -2
  24. package/dist/cli-io/stacks/deploy-stacks/termination-protection.js.map +1 -1
  25. package/dist/cli-io/stacks/detect-drift-io.js +2 -2
  26. package/dist/cli-io/stacks/detect-drift-io.js.map +1 -1
  27. package/dist/cli-io/stacks/list-stacks-io.js +3 -2
  28. package/dist/cli-io/stacks/list-stacks-io.js.map +1 -1
  29. package/dist/cli-io/stacks/undeploy-stacks-io.js +41 -19
  30. package/dist/cli-io/stacks/undeploy-stacks-io.js.map +1 -1
  31. package/dist/command/command-model.d.ts +2 -1
  32. package/dist/command/command-model.js.map +1 -1
  33. package/dist/command/stacks/common/custom-states.d.ts +33 -0
  34. package/dist/command/stacks/common/custom-states.js +2 -0
  35. package/dist/command/stacks/common/custom-states.js.map +1 -0
  36. package/dist/command/stacks/common/load-current-cf-stacks.d.ts +17 -5
  37. package/dist/command/stacks/common/load-current-cf-stacks.js +73 -13
  38. package/dist/command/stacks/common/load-current-cf-stacks.js.map +1 -1
  39. package/dist/command/stacks/deploy/command.js +1 -1
  40. package/dist/command/stacks/deploy/command.js.map +1 -1
  41. package/dist/command/stacks/deploy/custom-stack/states.d.ts +42 -0
  42. package/dist/command/stacks/deploy/custom-stack/states.js.map +1 -0
  43. package/dist/command/stacks/deploy/custom-stack/steps/create-or-update-stack.d.ts +3 -0
  44. package/dist/command/stacks/deploy/custom-stack/steps/create-or-update-stack.js +11 -0
  45. package/dist/command/stacks/deploy/custom-stack/steps/create-or-update-stack.js.map +1 -0
  46. package/dist/command/stacks/deploy/custom-stack/steps/create-stack.d.ts +3 -0
  47. package/dist/command/stacks/deploy/custom-stack/steps/create-stack.js +41 -0
  48. package/dist/command/stacks/deploy/custom-stack/steps/create-stack.js.map +1 -0
  49. package/dist/command/stacks/deploy/custom-stack/steps/get-changes.d.ts +8 -0
  50. package/dist/command/stacks/deploy/custom-stack/steps/get-changes.js +58 -0
  51. package/dist/command/stacks/deploy/custom-stack/steps/get-changes.js.map +1 -0
  52. package/dist/command/stacks/deploy/custom-stack/steps/prepare-parameters.d.ts +3 -0
  53. package/dist/command/stacks/deploy/custom-stack/steps/prepare-parameters.js +44 -0
  54. package/dist/command/stacks/deploy/custom-stack/steps/prepare-parameters.js.map +1 -0
  55. package/dist/command/stacks/deploy/{steps → custom-stack/steps}/prepare-tags.d.ts +1 -1
  56. package/dist/command/stacks/deploy/custom-stack/steps/prepare-tags.js +27 -0
  57. package/dist/command/stacks/deploy/custom-stack/steps/prepare-tags.js.map +1 -0
  58. package/dist/command/stacks/deploy/custom-stack/steps/review-deployment.d.ts +3 -0
  59. package/dist/command/stacks/deploy/custom-stack/steps/review-deployment.js +15 -0
  60. package/dist/command/stacks/deploy/custom-stack/steps/review-deployment.js.map +1 -0
  61. package/dist/command/stacks/deploy/custom-stack/steps/update-stack.d.ts +3 -0
  62. package/dist/command/stacks/deploy/custom-stack/steps/update-stack.js +42 -0
  63. package/dist/command/stacks/deploy/custom-stack/steps/update-stack.js.map +1 -0
  64. package/dist/command/stacks/deploy/custom-stack/steps/wait-dependencies-to-complete.d.ts +3 -0
  65. package/dist/command/stacks/deploy/custom-stack/steps/wait-dependencies-to-complete.js +26 -0
  66. package/dist/command/stacks/deploy/custom-stack/steps/wait-dependencies-to-complete.js.map +1 -0
  67. package/dist/command/stacks/deploy/custom-stack/transitions.d.ts +13 -0
  68. package/dist/command/stacks/deploy/custom-stack/transitions.js +21 -0
  69. package/dist/command/stacks/deploy/custom-stack/transitions.js.map +1 -0
  70. package/dist/command/stacks/deploy/deploy-stack.d.ts +3 -4
  71. package/dist/command/stacks/deploy/deploy-stack.js +73 -34
  72. package/dist/command/stacks/deploy/deploy-stack.js.map +1 -1
  73. package/dist/command/stacks/deploy/execute-deploy-context.js +4 -4
  74. package/dist/command/stacks/deploy/execute-deploy-context.js.map +1 -1
  75. package/dist/command/stacks/deploy/model.d.ts +7 -2
  76. package/dist/command/stacks/deploy/plan.d.ts +18 -4
  77. package/dist/command/stacks/deploy/plan.js +28 -10
  78. package/dist/command/stacks/deploy/plan.js.map +1 -1
  79. package/dist/command/stacks/deploy/{states.d.ts → standard-stack/states.d.ts} +17 -15
  80. package/dist/command/stacks/deploy/standard-stack/states.js.map +1 -0
  81. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/continue-update-rollback.d.ts +1 -1
  82. package/dist/command/stacks/deploy/standard-stack/steps/continue-update-rollback.js.map +1 -0
  83. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/emit-stack-template.d.ts +1 -1
  84. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/emit-stack-template.js +2 -2
  85. package/dist/command/stacks/deploy/standard-stack/steps/emit-stack-template.js.map +1 -0
  86. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/enrich-current-stack.d.ts +1 -1
  87. package/dist/command/stacks/deploy/standard-stack/steps/enrich-current-stack.js.map +1 -0
  88. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/execute-after-deploy-hooks.d.ts +1 -1
  89. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/execute-after-deploy-hooks.js +2 -2
  90. package/dist/command/stacks/deploy/standard-stack/steps/execute-after-deploy-hooks.js.map +1 -0
  91. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/execute-before-deploy-hooks.d.ts +1 -1
  92. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/execute-before-deploy-hooks.js +2 -2
  93. package/dist/command/stacks/deploy/standard-stack/steps/execute-before-deploy-hooks.js.map +1 -0
  94. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/initiate-change-set-create.d.ts +3 -3
  95. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/initiate-change-set-create.js +2 -2
  96. package/dist/command/stacks/deploy/standard-stack/steps/initiate-change-set-create.js.map +1 -0
  97. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/initiate-failed-stack-delete.d.ts +1 -1
  98. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/initiate-failed-stack-delete.js +1 -1
  99. package/dist/command/stacks/deploy/standard-stack/steps/initiate-failed-stack-delete.js.map +1 -0
  100. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/initiate-stack-create-or-update.d.ts +1 -1
  101. package/dist/command/stacks/deploy/standard-stack/steps/initiate-stack-create-or-update.js.map +1 -0
  102. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/initiate-stack-create.d.ts +1 -1
  103. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/initiate-stack-create.js +2 -2
  104. package/dist/command/stacks/deploy/standard-stack/steps/initiate-stack-create.js.map +1 -0
  105. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/initiate-stack-update.d.ts +1 -1
  106. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/initiate-stack-update.js +3 -3
  107. package/dist/command/stacks/deploy/standard-stack/steps/initiate-stack-update.js.map +1 -0
  108. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/prepare-parameters.d.ts +1 -1
  109. package/dist/command/stacks/deploy/standard-stack/steps/prepare-parameters.js.map +1 -0
  110. package/dist/command/stacks/deploy/standard-stack/steps/prepare-tags.d.ts +3 -0
  111. package/dist/command/stacks/deploy/standard-stack/steps/prepare-tags.js.map +1 -0
  112. package/dist/command/stacks/deploy/standard-stack/steps/prepare-template.d.ts +7 -0
  113. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/prepare-template.js +1 -1
  114. package/dist/command/stacks/deploy/standard-stack/steps/prepare-template.js.map +1 -0
  115. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/review-change-set.d.ts +1 -1
  116. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/review-change-set.js +1 -1
  117. package/dist/command/stacks/deploy/standard-stack/steps/review-change-set.js.map +1 -0
  118. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/summarize-template.d.ts +1 -1
  119. package/dist/command/stacks/deploy/standard-stack/steps/summarize-template.js.map +1 -0
  120. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/update-termination-protection.d.ts +1 -1
  121. package/dist/command/stacks/deploy/standard-stack/steps/update-termination-protection.js.map +1 -0
  122. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/upload-template.d.ts +1 -1
  123. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/upload-template.js +1 -1
  124. package/dist/command/stacks/deploy/standard-stack/steps/upload-template.js.map +1 -0
  125. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/validate-parameters.d.ts +3 -3
  126. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/validate-parameters.js +3 -3
  127. package/dist/command/stacks/deploy/standard-stack/steps/validate-parameters.js.map +1 -0
  128. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/validate-template.d.ts +1 -1
  129. package/dist/command/stacks/deploy/standard-stack/steps/validate-template.js.map +1 -0
  130. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/wait-change-set-to-be-ready.d.ts +1 -1
  131. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/wait-change-set-to-be-ready.js +5 -5
  132. package/dist/command/stacks/deploy/standard-stack/steps/wait-change-set-to-be-ready.js.map +1 -0
  133. package/dist/command/stacks/deploy/standard-stack/steps/wait-dependencies-to-complete.d.ts +3 -0
  134. package/dist/command/stacks/deploy/standard-stack/steps/wait-dependencies-to-complete.js.map +1 -0
  135. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/wait-failed-stack-delete-to-complete.d.ts +1 -1
  136. package/dist/command/stacks/deploy/standard-stack/steps/wait-failed-stack-delete-to-complete.js.map +1 -0
  137. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/wait-stack-create-or-update-to-complete.d.ts +1 -1
  138. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/wait-stack-create-or-update-to-complete.js +1 -1
  139. package/dist/command/stacks/deploy/standard-stack/steps/wait-stack-create-or-update-to-complete.js.map +1 -0
  140. package/dist/command/stacks/deploy/{steps → standard-stack/steps}/wait-stack-rollback-to-complete.d.ts +1 -1
  141. package/dist/command/stacks/deploy/standard-stack/steps/wait-stack-rollback-to-complete.js.map +1 -0
  142. package/dist/command/stacks/deploy/{transitions.d.ts → standard-stack/transitions.d.ts} +4 -4
  143. package/dist/command/stacks/deploy/{transitions.js → standard-stack/transitions.js} +2 -2
  144. package/dist/command/stacks/deploy/standard-stack/transitions.js.map +1 -0
  145. package/dist/command/stacks/deploy/validate.js +3 -1
  146. package/dist/command/stacks/deploy/validate.js.map +1 -1
  147. package/dist/command/stacks/drift/detect-drift.js +10 -5
  148. package/dist/command/stacks/drift/detect-drift.js.map +1 -1
  149. package/dist/command/stacks/inspect/configuration/command.js.map +1 -1
  150. package/dist/command/stacks/list/list-stacks.js +27 -9
  151. package/dist/command/stacks/list/list-stacks.js.map +1 -1
  152. package/dist/command/stacks/list/model.d.ts +1 -0
  153. package/dist/command/stacks/undeploy/command.js +3 -3
  154. package/dist/command/stacks/undeploy/command.js.map +1 -1
  155. package/dist/command/stacks/undeploy/custom-stack/states.d.ts +27 -0
  156. package/dist/command/stacks/undeploy/custom-stack/states.js +2 -0
  157. package/dist/command/stacks/undeploy/custom-stack/states.js.map +1 -0
  158. package/dist/command/stacks/undeploy/custom-stack/steps/delete-stack.d.ts +3 -0
  159. package/dist/command/stacks/undeploy/custom-stack/steps/delete-stack.js +38 -0
  160. package/dist/command/stacks/undeploy/custom-stack/steps/delete-stack.js.map +1 -0
  161. package/dist/command/stacks/undeploy/custom-stack/steps/wait-dependents-to-complete.d.ts +3 -0
  162. package/dist/command/stacks/undeploy/custom-stack/steps/wait-dependents-to-complete.js +26 -0
  163. package/dist/command/stacks/undeploy/custom-stack/steps/wait-dependents-to-complete.js.map +1 -0
  164. package/dist/command/stacks/undeploy/custom-stack/transitions.d.ts +7 -0
  165. package/dist/command/stacks/undeploy/custom-stack/transitions.js +9 -0
  166. package/dist/command/stacks/undeploy/custom-stack/transitions.js.map +1 -0
  167. package/dist/command/stacks/undeploy/delete.js +41 -17
  168. package/dist/command/stacks/undeploy/delete.js.map +1 -1
  169. package/dist/command/stacks/undeploy/plan.d.ts +19 -5
  170. package/dist/command/stacks/undeploy/plan.js +39 -11
  171. package/dist/command/stacks/undeploy/plan.js.map +1 -1
  172. package/dist/command/stacks/undeploy/standard-stack/states.d.ts +32 -0
  173. package/dist/command/stacks/undeploy/standard-stack/states.js +2 -0
  174. package/dist/command/stacks/undeploy/standard-stack/states.js.map +1 -0
  175. package/dist/command/stacks/undeploy/{steps → standard-stack/steps}/execute-after-undeploy-hooks.d.ts +1 -1
  176. package/dist/command/stacks/undeploy/{steps → standard-stack/steps}/execute-after-undeploy-hooks.js +1 -1
  177. package/dist/command/stacks/undeploy/standard-stack/steps/execute-after-undeploy-hooks.js.map +1 -0
  178. package/dist/command/stacks/undeploy/{steps → standard-stack/steps}/execute-before-undeploy-hooks.d.ts +1 -1
  179. package/dist/command/stacks/undeploy/{steps → standard-stack/steps}/execute-before-undeploy-hooks.js +1 -1
  180. package/dist/command/stacks/undeploy/standard-stack/steps/execute-before-undeploy-hooks.js.map +1 -0
  181. package/dist/command/stacks/undeploy/{steps → standard-stack/steps}/initiate-stack-delete.d.ts +1 -1
  182. package/dist/command/stacks/undeploy/{steps → standard-stack/steps}/initiate-stack-delete.js +1 -1
  183. package/dist/command/stacks/undeploy/standard-stack/steps/initiate-stack-delete.js.map +1 -0
  184. package/dist/command/stacks/undeploy/standard-stack/steps/wait-dependents-to-complete.d.ts +3 -0
  185. package/dist/command/stacks/undeploy/standard-stack/steps/wait-dependents-to-complete.js.map +1 -0
  186. package/dist/command/stacks/undeploy/{steps → standard-stack/steps}/wait-stack-delete-to-complete.d.ts +1 -1
  187. package/dist/command/stacks/undeploy/standard-stack/steps/wait-stack-delete-to-complete.js.map +1 -0
  188. package/dist/command/stacks/undeploy/{transitions.d.ts → standard-stack/transitions.d.ts} +4 -4
  189. package/dist/command/stacks/undeploy/{transitions.js → standard-stack/transitions.js} +2 -2
  190. package/dist/command/stacks/undeploy/standard-stack/transitions.js.map +1 -0
  191. package/dist/command/stacks/undeploy/validate.js +11 -6
  192. package/dist/command/stacks/undeploy/validate.js.map +1 -1
  193. package/dist/config/custom-stack-config.d.ts +8 -0
  194. package/dist/config/custom-stack-config.js +6 -0
  195. package/dist/config/custom-stack-config.js.map +1 -0
  196. package/dist/config/stack-config.d.ts +9 -11
  197. package/dist/config/standard-stack-config.d.ts +15 -0
  198. package/dist/config/standard-stack-config.js +3 -0
  199. package/dist/config/standard-stack-config.js.map +1 -0
  200. package/dist/context/stacks-context.d.ts +3 -1
  201. package/dist/custom-stacks/cmd-custom-stack-handler.d.ts +24 -0
  202. package/dist/custom-stacks/cmd-custom-stack-handler.js +274 -0
  203. package/dist/custom-stacks/cmd-custom-stack-handler.js.map +1 -0
  204. package/dist/custom-stacks/custom-stack-handler-registry.d.ts +13 -0
  205. package/dist/custom-stacks/custom-stack-handler-registry.js +32 -0
  206. package/dist/custom-stacks/custom-stack-handler-registry.js.map +1 -0
  207. package/dist/custom-stacks/custom-stack-handler.d.ts +401 -0
  208. package/dist/custom-stacks/custom-stack-handler.js +2 -0
  209. package/dist/custom-stacks/custom-stack-handler.js.map +1 -0
  210. package/dist/extensions/config-customizer.d.ts +5 -0
  211. package/dist/hooks/execute.d.ts +2 -2
  212. package/dist/hooks/execute.js +1 -0
  213. package/dist/hooks/execute.js.map +1 -1
  214. package/dist/hooks/hook.d.ts +2 -2
  215. package/dist/index.d.ts +5 -1
  216. package/dist/index.js +2 -0
  217. package/dist/index.js.map +1 -1
  218. package/dist/parser/stacks/build-custom-stack-config.d.ts +5 -0
  219. package/dist/parser/stacks/build-custom-stack-config.js +51 -0
  220. package/dist/parser/stacks/build-custom-stack-config.js.map +1 -0
  221. package/dist/parser/stacks/build-standard-stack-config.d.ts +6 -0
  222. package/dist/parser/stacks/{build-stack-config.js → build-standard-stack-config.js} +5 -4
  223. package/dist/parser/stacks/build-standard-stack-config.js.map +1 -0
  224. package/dist/parser/stacks/parse-custom-stack-type.d.ts +2 -0
  225. package/dist/parser/stacks/parse-custom-stack-type.js +10 -0
  226. package/dist/parser/stacks/parse-custom-stack-type.js.map +1 -0
  227. package/dist/resolvers/stack-output-resolver.js +4 -0
  228. package/dist/resolvers/stack-output-resolver.js.map +1 -1
  229. package/dist/schema/custom-stack-config-schema.d.ts +7 -0
  230. package/dist/schema/custom-stack-config-schema.js +34 -0
  231. package/dist/schema/custom-stack-config-schema.js.map +1 -0
  232. package/dist/schema/stacks-schema.d.ts +1 -0
  233. package/dist/schema/stacks-schema.js +2 -0
  234. package/dist/schema/stacks-schema.js.map +1 -1
  235. package/dist/schema/{stack-config-schema.d.ts → standard-stack-config-schema.d.ts} +2 -2
  236. package/dist/schema/{stack-config-schema.js → standard-stack-config-schema.js} +4 -3
  237. package/dist/schema/standard-stack-config-schema.js.map +1 -0
  238. package/dist/stacks/custom-stack.d.ts +26 -0
  239. package/dist/stacks/custom-stack.js +38 -0
  240. package/dist/stacks/custom-stack.js.map +1 -0
  241. package/dist/stacks/stack.d.ts +13 -41
  242. package/dist/stacks/stack.js +11 -38
  243. package/dist/stacks/stack.js.map +1 -1
  244. package/dist/stacks/standard-stack.d.ts +54 -0
  245. package/dist/stacks/standard-stack.js +42 -0
  246. package/dist/stacks/standard-stack.js.map +1 -0
  247. package/dist/takomo-config-repository-fs/deployment-targets/config-repository.js +5 -1
  248. package/dist/takomo-config-repository-fs/deployment-targets/config-repository.js.map +1 -1
  249. package/dist/takomo-config-repository-fs/stacks/config-repository.js +4 -1
  250. package/dist/takomo-config-repository-fs/stacks/config-repository.js.map +1 -1
  251. package/dist/takomo-config-repository-fs/stacks/parser.d.ts +4 -3
  252. package/dist/takomo-config-repository-fs/stacks/parser.js +35 -7
  253. package/dist/takomo-config-repository-fs/stacks/parser.js.map +1 -1
  254. package/dist/takomo-stacks-context/config/build-custom-stack.d.ts +15 -0
  255. package/dist/takomo-stacks-context/config/build-custom-stack.js +104 -0
  256. package/dist/takomo-stacks-context/config/build-custom-stack.js.map +1 -0
  257. package/dist/takomo-stacks-context/config/build-stack.d.ts +12 -12
  258. package/dist/takomo-stacks-context/config/build-stack.js +18 -139
  259. package/dist/takomo-stacks-context/config/build-stack.js.map +1 -1
  260. package/dist/takomo-stacks-context/config/build-stacks-context.js +8 -2
  261. package/dist/takomo-stacks-context/config/build-stacks-context.js.map +1 -1
  262. package/dist/takomo-stacks-context/config/build-standard-stack.d.ts +27 -0
  263. package/dist/takomo-stacks-context/config/build-standard-stack.js +144 -0
  264. package/dist/takomo-stacks-context/config/build-standard-stack.js.map +1 -0
  265. package/dist/takomo-stacks-context/config/config-tree.d.ts +3 -2
  266. package/dist/takomo-stacks-context/config/create-root-stack-group.js.map +1 -1
  267. package/dist/takomo-stacks-context/config/process-config-tree.d.ts +2 -1
  268. package/dist/takomo-stacks-context/config/process-config-tree.js +6 -6
  269. package/dist/takomo-stacks-context/config/process-config-tree.js.map +1 -1
  270. package/dist/takomo-stacks-context/dependencies.js +2 -2
  271. package/dist/takomo-stacks-context/dependencies.js.map +1 -1
  272. package/dist/takomo-stacks-context/model.d.ts +7 -5
  273. package/dist/takomo-stacks-context/model.js +2 -0
  274. package/dist/takomo-stacks-context/model.js.map +1 -1
  275. package/dist/takomo-stacks-model/util.d.ts +0 -4
  276. package/dist/takomo-stacks-model/util.js +0 -4
  277. package/dist/takomo-stacks-model/util.js.map +1 -1
  278. package/dist/utils/collections.d.ts +1 -0
  279. package/dist/utils/collections.js +4 -0
  280. package/dist/utils/collections.js.map +1 -1
  281. package/dist/utils/exhaustive-check.d.ts +1 -0
  282. package/dist/utils/exhaustive-check.js +4 -0
  283. package/dist/utils/exhaustive-check.js.map +1 -0
  284. package/package.json +3 -2
  285. package/dist/command/stacks/deploy/states.js.map +0 -1
  286. package/dist/command/stacks/deploy/steps/continue-update-rollback.js.map +0 -1
  287. package/dist/command/stacks/deploy/steps/emit-stack-template.js.map +0 -1
  288. package/dist/command/stacks/deploy/steps/enrich-current-stack.js.map +0 -1
  289. package/dist/command/stacks/deploy/steps/execute-after-deploy-hooks.js.map +0 -1
  290. package/dist/command/stacks/deploy/steps/execute-before-deploy-hooks.js.map +0 -1
  291. package/dist/command/stacks/deploy/steps/initiate-change-set-create.js.map +0 -1
  292. package/dist/command/stacks/deploy/steps/initiate-failed-stack-delete.js.map +0 -1
  293. package/dist/command/stacks/deploy/steps/initiate-stack-create-or-update.js.map +0 -1
  294. package/dist/command/stacks/deploy/steps/initiate-stack-create.js.map +0 -1
  295. package/dist/command/stacks/deploy/steps/initiate-stack-update.js.map +0 -1
  296. package/dist/command/stacks/deploy/steps/prepare-parameters.js.map +0 -1
  297. package/dist/command/stacks/deploy/steps/prepare-tags.js.map +0 -1
  298. package/dist/command/stacks/deploy/steps/prepare-template.d.ts +0 -7
  299. package/dist/command/stacks/deploy/steps/prepare-template.js.map +0 -1
  300. package/dist/command/stacks/deploy/steps/review-change-set.js.map +0 -1
  301. package/dist/command/stacks/deploy/steps/summarize-template.js.map +0 -1
  302. package/dist/command/stacks/deploy/steps/update-termination-protection.js.map +0 -1
  303. package/dist/command/stacks/deploy/steps/upload-template.js.map +0 -1
  304. package/dist/command/stacks/deploy/steps/validate-parameters.js.map +0 -1
  305. package/dist/command/stacks/deploy/steps/validate-template.js.map +0 -1
  306. package/dist/command/stacks/deploy/steps/wait-change-set-to-be-ready.js.map +0 -1
  307. package/dist/command/stacks/deploy/steps/wait-dependencies-to-complete.d.ts +0 -3
  308. package/dist/command/stacks/deploy/steps/wait-dependencies-to-complete.js.map +0 -1
  309. package/dist/command/stacks/deploy/steps/wait-failed-stack-delete-to-complete.js.map +0 -1
  310. package/dist/command/stacks/deploy/steps/wait-stack-create-or-update-to-complete.js.map +0 -1
  311. package/dist/command/stacks/deploy/steps/wait-stack-rollback-to-complete.js.map +0 -1
  312. package/dist/command/stacks/deploy/transitions.js.map +0 -1
  313. package/dist/command/stacks/undeploy/states.d.ts +0 -30
  314. package/dist/command/stacks/undeploy/states.js.map +0 -1
  315. package/dist/command/stacks/undeploy/steps/execute-after-undeploy-hooks.js.map +0 -1
  316. package/dist/command/stacks/undeploy/steps/execute-before-undeploy-hooks.js.map +0 -1
  317. package/dist/command/stacks/undeploy/steps/initiate-stack-delete.js.map +0 -1
  318. package/dist/command/stacks/undeploy/steps/wait-dependents-to-complete.d.ts +0 -3
  319. package/dist/command/stacks/undeploy/steps/wait-dependents-to-complete.js.map +0 -1
  320. package/dist/command/stacks/undeploy/steps/wait-stack-delete-to-complete.js.map +0 -1
  321. package/dist/command/stacks/undeploy/transitions.js.map +0 -1
  322. package/dist/parser/stacks/build-stack-config.d.ts +0 -6
  323. package/dist/parser/stacks/build-stack-config.js.map +0 -1
  324. package/dist/schema/stack-config-schema.js.map +0 -1
  325. /package/dist/command/stacks/deploy/{states.js → custom-stack/states.js} +0 -0
  326. /package/dist/command/stacks/{undeploy → deploy/standard-stack}/states.js +0 -0
  327. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/continue-update-rollback.js +0 -0
  328. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/enrich-current-stack.js +0 -0
  329. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/initiate-stack-create-or-update.js +0 -0
  330. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/prepare-parameters.js +0 -0
  331. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/prepare-tags.js +0 -0
  332. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/summarize-template.js +0 -0
  333. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/update-termination-protection.js +0 -0
  334. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/validate-template.js +0 -0
  335. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/wait-dependencies-to-complete.js +0 -0
  336. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/wait-failed-stack-delete-to-complete.js +0 -0
  337. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/wait-stack-rollback-to-complete.js +0 -0
  338. /package/dist/command/stacks/undeploy/{steps → standard-stack/steps}/wait-dependents-to-complete.js +0 -0
  339. /package/dist/command/stacks/undeploy/{steps → standard-stack/steps}/wait-stack-delete-to-complete.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../src/command/stacks/deploy/command.ts"],"names":[],"mappings":"AAAA,OAAO,GAAkB,MAAM,KAAK,CAAA;AAGpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+DAA+D,CAAA;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAElE,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AAGxD,MAAM,WAAW,GAAG,KAAK,EACvB,KAAiC,EACjC,GAA0B,EAC1B,EAAkB,EACmB,EAAE;IACvC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAClE,OAAO;YACL,GAAG,KAAK;YACR,WAAW;SACZ,CAAA;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,KAAK,EACxB,GAA0B,EAC1B,gBAAwC,EACxC,EAAkB,EAClB,KAAiC,EACD,EAAE;IAClC,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;IAEvD,MAAM,IAAI,GAAG,MAAM,qBAAqB,CACtC,GAAG,CAAC,MAAM,EACV,aAAa,CAAC,WAAW,EACzB,aAAa,CAAC,kBAAkB,EAChC,EAAE,CACH,CAAA;IAED,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAA;IAEpC,OAAO,oBAAoB,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAA;AAC7E,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,GAAmB,EAAa,EAAE;IACrD,MAAM,EAAE,WAAW,EAAE,GAAG,mBAAmB,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;IACrE,OAAO,GAAG,CAAC,MAAM,CAAC;QAChB,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;KACpC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAK5B,CAAC,EACH,iBAAiB,EACjB,GAAG,EACH,KAAK,EACL,gBAAgB,EAChB,EAAE,GACH,EAAkC,EAAE,CACnC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;KACnC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACd,kBAAkB,CAAC;IACjB,GAAG;IACH,gBAAgB;IAChB,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW;IAC9D,MAAM,EAAE,EAAE;IACV,iBAAiB;IACjB,oBAAoB,EAAE,KAAK;CAC5B,CAAC,CACH;KACA,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;KAC7D,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../src/command/stacks/deploy/command.ts"],"names":[],"mappings":"AAAA,OAAO,GAAkB,MAAM,KAAK,CAAA;AAGpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+DAA+D,CAAA;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAElE,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AAGxD,MAAM,WAAW,GAAG,KAAK,EACvB,KAAiC,EACjC,GAA0B,EAC1B,EAAkB,EACmB,EAAE;IACvC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAClE,OAAO;YACL,GAAG,KAAK;YACR,WAAW;SACZ,CAAA;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,KAAK,EACxB,GAA0B,EAC1B,gBAAwC,EACxC,EAAkB,EAClB,KAAiC,EACD,EAAE;IAClC,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;IAEvD,MAAM,IAAI,GAAG,MAAM,qBAAqB,CACtC,GAAG,CAAC,MAAM,EACV,aAAa,CAAC,WAAW,EACzB,aAAa,CAAC,kBAAkB,EAChC,EAAE,EACF,GAAG,CACJ,CAAA;IAED,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAA;IAEpC,OAAO,oBAAoB,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAA;AAC7E,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,GAAmB,EAAa,EAAE;IACrD,MAAM,EAAE,WAAW,EAAE,GAAG,mBAAmB,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;IACrE,OAAO,GAAG,CAAC,MAAM,CAAC;QAChB,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;KACpC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAK5B,CAAC,EACH,iBAAiB,EACjB,GAAG,EACH,KAAK,EACL,gBAAgB,EAChB,EAAE,GACH,EAAkC,EAAE,CACnC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;KACnC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACd,kBAAkB,CAAC;IACjB,GAAG;IACH,gBAAgB;IAChB,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW;IAC9D,MAAM,EAAE,EAAE;IACV,iBAAiB;IACjB,oBAAoB,EAAE,KAAK;CAC5B,CAAC,CACH;KACA,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;KAC7D,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { CloudFormationStack, StackEvent } from "../../../../aws/cloudformation/model.js";
2
+ import { InternalStacksContext } from "../../../../context/stacks-context.js";
3
+ import { CustomStackChange, CustomStackHandler, CustomStackState } from "../../../../custom-stacks/custom-stack-handler.js";
4
+ import { InternalCustomStack } from "../../../../stacks/custom-stack.js";
5
+ import { CommandStatus } from "../../../../takomo-core/command.js";
6
+ import { TkmLogger } from "../../../../utils/logging.js";
7
+ import { StackOperationType, StackOperationVariables, StackResult } from "../../../command-model.js";
8
+ import { InitialStackOperationState } from "../../common/states.js";
9
+ import { DeployStacksIO, DeployState } from "../model.js";
10
+ import { DeployCustomStackTransitions } from "./transitions.js";
11
+ export interface InitialDeployCustomStackState extends InitialStackOperationState {
12
+ readonly stack: InternalCustomStack;
13
+ readonly io: DeployStacksIO;
14
+ readonly ctx: InternalStacksContext;
15
+ readonly variables: StackOperationVariables;
16
+ readonly logger: TkmLogger;
17
+ readonly currentStatus: CustomStackState;
18
+ readonly dependencies: ReadonlyArray<Promise<StackResult>>;
19
+ readonly operationType: StackOperationType;
20
+ readonly state: DeployState;
21
+ readonly transitions: DeployCustomStackTransitions;
22
+ readonly customStackHandler: CustomStackHandler<any, any>;
23
+ readonly emit: boolean;
24
+ readonly expectNoChanges: boolean;
25
+ }
26
+ export interface ParametersHolder extends InitialDeployCustomStackState {
27
+ readonly parameters: Record<string, string>;
28
+ }
29
+ export interface TagsHolder extends ParametersHolder {
30
+ readonly tags: Record<string, string>;
31
+ }
32
+ export interface ChangesHolder extends TagsHolder {
33
+ readonly changes: ReadonlyArray<CustomStackChange>;
34
+ }
35
+ export interface StackOperationResultHolder extends InitialDeployCustomStackState {
36
+ readonly message: string;
37
+ readonly success: boolean;
38
+ readonly status: CommandStatus;
39
+ readonly events: ReadonlyArray<StackEvent>;
40
+ readonly stackAfterOperation?: CloudFormationStack;
41
+ readonly error?: Error;
42
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"states.js","sourceRoot":"","sources":["../../../../../src/command/stacks/deploy/custom-stack/states.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { StackOperationStep } from "../../../common/steps.js";
2
+ import { ChangesHolder } from "../states.js";
3
+ export declare const createOrUpdateStack: StackOperationStep<ChangesHolder>;
@@ -0,0 +1,11 @@
1
+ export const createOrUpdateStack = async (state) => {
2
+ const { transitions, operationType } = state;
3
+ if (operationType === "UPDATE") {
4
+ return transitions.updateStack(state);
5
+ }
6
+ if (operationType === "CREATE") {
7
+ return transitions.createStack(state);
8
+ }
9
+ throw new Error(`Unsupported operation type: ${operationType}`);
10
+ };
11
+ //# sourceMappingURL=create-or-update-stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-or-update-stack.js","sourceRoot":"","sources":["../../../../../../src/command/stacks/deploy/custom-stack/steps/create-or-update-stack.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mBAAmB,GAAsC,KAAK,EACzE,KAAK,EACL,EAAE;IACF,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,KAAK,CAAA;IAE5C,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;IAED,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,+BAA+B,aAAa,EAAE,CAAC,CAAA;AACjE,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { StackOperationStep } from "../../../common/steps.js";
2
+ import { TagsHolder } from "../states.js";
3
+ export declare const createStack: StackOperationStep<TagsHolder>;
@@ -0,0 +1,41 @@
1
+ export const createStack = async (state) => {
2
+ const { stack, logger, transitions, parameters, tags, customStackHandler, ctx, } = state;
3
+ logger.info(`Creating custom stack of type '${stack.customType}'`);
4
+ try {
5
+ const result = await customStackHandler.create({
6
+ config: stack.customConfig,
7
+ logger,
8
+ parameters,
9
+ tags,
10
+ ctx,
11
+ stack,
12
+ });
13
+ if (result.success) {
14
+ logger.info("Custom stack create succeeded");
15
+ return transitions.completeStackOperation({
16
+ ...state,
17
+ events: [],
18
+ status: "SUCCESS",
19
+ message: "Stack create succeeded",
20
+ success: true,
21
+ });
22
+ }
23
+ logger.error("Custom stack create failed", result.error);
24
+ return transitions.failStackOperation({
25
+ ...state,
26
+ error: result.error,
27
+ events: [],
28
+ message: result.message ?? "Stack create failed",
29
+ });
30
+ }
31
+ catch (e) {
32
+ logger.error("Custom stack create failed due to unhandled error", e);
33
+ return transitions.failStackOperation({
34
+ ...state,
35
+ error: e,
36
+ events: [],
37
+ message: "Stack create failed",
38
+ });
39
+ }
40
+ };
41
+ //# sourceMappingURL=create-stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-stack.js","sourceRoot":"","sources":["../../../../../../src/command/stacks/deploy/custom-stack/steps/create-stack.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,WAAW,GAAmC,KAAK,EAAE,KAAK,EAAE,EAAE;IACzE,MAAM,EACJ,KAAK,EACL,MAAM,EACN,WAAW,EACX,UAAU,EACV,IAAI,EACJ,kBAAkB,EAClB,GAAG,GACJ,GAAG,KAAK,CAAA;IAET,MAAM,CAAC,IAAI,CAAC,kCAAkC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAA;IAElE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC;YAC7C,MAAM,EAAE,KAAK,CAAC,YAAY;YAC1B,MAAM;YACN,UAAU;YACV,IAAI;YACJ,GAAG;YACH,KAAK;SACN,CAAC,CAAA;QAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;YAE5C,OAAO,WAAW,CAAC,sBAAsB,CAAC;gBACxC,GAAG,KAAK;gBACR,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,wBAAwB;gBACjC,OAAO,EAAE,IAAI;aACd,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QAExD,OAAO,WAAW,CAAC,kBAAkB,CAAC;YACpC,GAAG,KAAK;YACR,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,qBAAqB;SACjD,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,mDAAmD,EAAE,CAAC,CAAC,CAAA;QAEpE,OAAO,WAAW,CAAC,kBAAkB,CAAC;YACpC,GAAG,KAAK;YACR,KAAK,EAAE,CAAU;YACjB,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,qBAAqB;SAC/B,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { CustomStackChange } from "../../../../../custom-stacks/custom-stack-handler.js";
2
+ import { TakomoError } from "../../../../../utils/errors.js";
3
+ import { StackOperationStep } from "../../../common/steps.js";
4
+ import { TagsHolder } from "../states.js";
5
+ export declare class UnexpectedChangesInCustomStackError extends TakomoError {
6
+ constructor(changes: ReadonlyArray<CustomStackChange>);
7
+ }
8
+ export declare const getChanges: StackOperationStep<TagsHolder>;
@@ -0,0 +1,58 @@
1
+ import { TakomoError } from "../../../../../utils/errors.js";
2
+ import { indentLines } from "../../../../../utils/strings.js";
3
+ export class UnexpectedChangesInCustomStackError extends TakomoError {
4
+ constructor(changes) {
5
+ let message = "Stack has unexpected changes:\n\n";
6
+ message += `- Changes:\n\n${indentLines(JSON.stringify(changes, undefined, 2))}\n\n`;
7
+ super(message);
8
+ }
9
+ }
10
+ export const getChanges = async (state) => {
11
+ const { transitions, expectNoChanges, customStackHandler, logger, parameters, tags, ctx, stack, currentStatus, } = state;
12
+ const result = await customStackHandler.getChanges({
13
+ config: stack.customConfig,
14
+ state: currentStatus,
15
+ logger,
16
+ parameters,
17
+ tags,
18
+ ctx,
19
+ stack,
20
+ });
21
+ if (!result.success) {
22
+ logger.error("Failed to get custom stack changes", result.error);
23
+ return transitions.failStackOperation({
24
+ ...state,
25
+ error: result.error,
26
+ events: [],
27
+ message: result.message ?? "Failed to get changes",
28
+ });
29
+ }
30
+ const changes = result.changes ?? [];
31
+ if (changes.length === 0) {
32
+ logger.info("Stack contains no changes");
33
+ return transitions.completeStackOperation({
34
+ ...state,
35
+ message: "No changes",
36
+ status: "SUCCESS",
37
+ events: [],
38
+ success: true,
39
+ });
40
+ }
41
+ if (expectNoChanges && changes.length > 0) {
42
+ return transitions.failStackOperation({
43
+ ...state,
44
+ message: "Stack has unexpected changes",
45
+ events: [],
46
+ error: new UnexpectedChangesInCustomStackError(changes),
47
+ });
48
+ }
49
+ const updatedState = {
50
+ ...state,
51
+ changes,
52
+ };
53
+ if (state.state.autoConfirm) {
54
+ return transitions.createOrUpdateStack(updatedState);
55
+ }
56
+ return transitions.reviewDeployment(updatedState);
57
+ };
58
+ //# sourceMappingURL=get-changes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-changes.js","sourceRoot":"","sources":["../../../../../../src/command/stacks/deploy/custom-stack/steps/get-changes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAI7D,MAAM,OAAO,mCAAoC,SAAQ,WAAW;IAClE,YAAY,OAAyC;QACnD,IAAI,OAAO,GAAG,mCAAmC,CAAA;QACjD,OAAO,IAAI,iBAAiB,WAAW,CACrC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CACtC,MAAM,CAAA;QAEP,KAAK,CAAC,OAAO,CAAC,CAAA;IAChB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,UAAU,GAAmC,KAAK,EAAE,KAAK,EAAE,EAAE;IACxE,MAAM,EACJ,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,MAAM,EACN,UAAU,EACV,IAAI,EACJ,GAAG,EACH,KAAK,EACL,aAAa,GACd,GAAG,KAAK,CAAA;IAET,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC;QACjD,MAAM,EAAE,KAAK,CAAC,YAAY;QAC1B,KAAK,EAAE,aAAa;QACpB,MAAM;QACN,UAAU;QACV,IAAI;QACJ,GAAG;QACH,KAAK;KACN,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QAEhE,OAAO,WAAW,CAAC,kBAAkB,CAAC;YACpC,GAAG,KAAK;YACR,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,uBAAuB;SACnD,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;IACpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;QACxC,OAAO,WAAW,CAAC,sBAAsB,CAAC;YACxC,GAAG,KAAK;YACR,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,WAAW,CAAC,kBAAkB,CAAC;YACpC,GAAG,KAAK;YACR,OAAO,EAAE,8BAA8B;YACvC,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,IAAI,mCAAmC,CAAC,OAAO,CAAC;SACxD,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,YAAY,GAAG;QACnB,GAAG,KAAK;QACR,OAAO;KACR,CAAA;IAED,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,WAAW,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAA;IACtD,CAAC;IAED,OAAO,WAAW,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAA;AACnD,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { StackOperationStep } from "../../../common/steps.js";
2
+ import { InitialDeployCustomStackState } from "../states.js";
3
+ export declare const prepareParameters: StackOperationStep<InitialDeployCustomStackState>;
@@ -0,0 +1,44 @@
1
+ import { arrayToRecord } from "../../../../../utils/collections.js";
2
+ const getValueForLog = (value, confidential, logConfidentialInfo) => {
3
+ if (!confidential) {
4
+ return value;
5
+ }
6
+ return logConfidentialInfo ? value : "*****";
7
+ };
8
+ export const prepareParameters = async (state) => {
9
+ const { stack, ctx, logger, transitions, variables } = state;
10
+ const logConfidentialInfo = ctx.confidentialValuesLoggingEnabled;
11
+ const parameters = await Promise.all(Array.from(stack.parameters.entries()).map(async ([parameterName, executor]) => {
12
+ const value = await executor.resolve({
13
+ ctx,
14
+ stack,
15
+ parameterName,
16
+ variables,
17
+ listParameterIndex: 0,
18
+ logger: logger.childLogger(`param:${parameterName}`),
19
+ });
20
+ const loggedValue = getValueForLog(value, executor.isConfidential(), logConfidentialInfo);
21
+ logger.debugObject("Parameter:", () => ({
22
+ name: parameterName,
23
+ value: loggedValue,
24
+ resolver: executor.getName(),
25
+ confidential: executor.isConfidential(),
26
+ immutable: executor.isImmutable(),
27
+ }));
28
+ const parameterValue = Array.isArray(value)
29
+ ? value.map((v) => `${v}`).join(",")
30
+ : `${value}`;
31
+ const schema = executor.getSchema();
32
+ return {
33
+ schema: schema?.label(parameterName),
34
+ key: parameterName,
35
+ value: parameterValue,
36
+ immutable: executor.isImmutable(),
37
+ };
38
+ }));
39
+ return transitions.prepareTags({
40
+ ...state,
41
+ parameters: arrayToRecord(parameters, (p) => p.key, (p) => p.value),
42
+ });
43
+ };
44
+ //# sourceMappingURL=prepare-parameters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-parameters.js","sourceRoot":"","sources":["../../../../../../src/command/stacks/deploy/custom-stack/steps/prepare-parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAInE,MAAM,cAAc,GAAG,CACrB,KAAc,EACd,YAAqB,EACrB,mBAA4B,EACnB,EAAE;IACX,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAA;AAC9C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAE1B,KAAK,EAAE,KAAK,EAAE,EAAE;IAClB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IAE5D,MAAM,mBAAmB,GAAG,GAAG,CAAC,gCAAgC,CAAA;IAEhE,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CACxC,KAAK,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;YACnC,GAAG;YACH,KAAK;YACL,aAAa;YACb,SAAS;YACT,kBAAkB,EAAE,CAAC;YACrB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,aAAa,EAAE,CAAC;SACrD,CAAC,CAAA;QAEF,MAAM,WAAW,GAAG,cAAc,CAChC,KAAK,EACL,QAAQ,CAAC,cAAc,EAAE,EACzB,mBAAmB,CACpB,CAAA;QAED,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;YACtC,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE;YAC5B,YAAY,EAAE,QAAQ,CAAC,cAAc,EAAE;YACvC,SAAS,EAAE,QAAQ,CAAC,WAAW,EAAE;SAClC,CAAC,CAAC,CAAA;QAEH,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACzC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YACpC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAA;QAEd,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAA;QAEnC,OAAO;YACL,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;YACpC,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,cAAc;YACrB,SAAS,EAAE,QAAQ,CAAC,WAAW,EAAE;SAClC,CAAA;IACH,CAAC,CACF,CACF,CAAA;IAED,OAAO,WAAW,CAAC,WAAW,CAAC;QAC7B,GAAG,KAAK;QACR,UAAU,EAAE,aAAa,CACvB,UAAU,EACV,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EACZ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CACf;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,3 +1,3 @@
1
- import { StackOperationStep } from "../../common/steps.js";
1
+ import { StackOperationStep } from "../../../common/steps.js";
2
2
  import { ParametersHolder } from "../states.js";
3
3
  export declare const prepareTags: StackOperationStep<ParametersHolder>;
@@ -0,0 +1,27 @@
1
+ import { arrayToRecord } from "../../../../../utils/collections.js";
2
+ export const prepareTags = (state) => {
3
+ const { stack, logger, transitions, emit } = state;
4
+ const tags = Array.from(stack.tags.entries()).map(([key, value]) => {
5
+ const tag = {
6
+ key,
7
+ value: `${value}`,
8
+ };
9
+ logger.debugObject("Tag:", () => tag);
10
+ return tag;
11
+ });
12
+ const updatedState = {
13
+ ...state,
14
+ tags: arrayToRecord(tags, (p) => p.key, (p) => p.value),
15
+ };
16
+ if (emit) {
17
+ return transitions.completeStackOperation({
18
+ ...updatedState,
19
+ message: "Emit template not supported",
20
+ success: true,
21
+ status: "SUCCESS",
22
+ events: [],
23
+ });
24
+ }
25
+ return transitions.getChanges(updatedState);
26
+ };
27
+ //# sourceMappingURL=prepare-tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-tags.js","sourceRoot":"","sources":["../../../../../../src/command/stacks/deploy/custom-stack/steps/prepare-tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAInE,MAAM,CAAC,MAAM,WAAW,GAAyC,CAAC,KAAK,EAAE,EAAE;IACzE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAElD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACjE,MAAM,GAAG,GAAG;YACV,GAAG;YACH,KAAK,EAAE,GAAG,KAAK,EAAE;SAClB,CAAA;QACD,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;QACrC,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG;QACnB,GAAG,KAAK;QACR,IAAI,EAAE,aAAa,CACjB,IAAI,EACJ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EACZ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CACf;KACF,CAAA;IAED,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,WAAW,CAAC,sBAAsB,CAAC;YACxC,GAAG,YAAY;YACf,OAAO,EAAE,6BAA6B;YACtC,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE;SACX,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;AAC7C,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { StackOperationStep } from "../../../common/steps.js";
2
+ import { ChangesHolder } from "../states.js";
3
+ export declare const reviewDeployment: StackOperationStep<ChangesHolder>;
@@ -0,0 +1,15 @@
1
+ export const reviewDeployment = async (state) => {
2
+ const { stack, transitions, io, operationType, currentStatus, tags, parameters, state: deployState, changes, } = state;
3
+ const answer = await io.confirmCustomStackDeploy(stack, operationType, currentStatus, tags, parameters, changes);
4
+ if (answer === "CANCEL") {
5
+ return transitions.cancelStackOperation({
6
+ ...state,
7
+ message: "Cancelled",
8
+ });
9
+ }
10
+ if (answer === "CONTINUE_AND_SKIP_REMAINING_REVIEWS") {
11
+ deployState.autoConfirm = true;
12
+ }
13
+ return transitions.createOrUpdateStack(state);
14
+ };
15
+ //# sourceMappingURL=review-deployment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-deployment.js","sourceRoot":"","sources":["../../../../../../src/command/stacks/deploy/custom-stack/steps/review-deployment.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,gBAAgB,GAAsC,KAAK,EACtE,KAAK,EACL,EAAE;IACF,MAAM,EACJ,KAAK,EACL,WAAW,EACX,EAAE,EACF,aAAa,EACb,aAAa,EACb,IAAI,EACJ,UAAU,EACV,KAAK,EAAE,WAAW,EAClB,OAAO,GACR,GAAG,KAAK,CAAA;IAET,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,wBAAwB,CAC9C,KAAK,EACL,aAAa,EACb,aAAa,EACb,IAAI,EACJ,UAAU,EACV,OAAO,CACR,CAAA;IAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,WAAW,CAAC,oBAAoB,CAAC;YACtC,GAAG,KAAK;YACR,OAAO,EAAE,WAAW;SACrB,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,MAAM,KAAK,qCAAqC,EAAE,CAAC;QACrD,WAAW,CAAC,WAAW,GAAG,IAAI,CAAA;IAChC,CAAC;IAED,OAAO,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;AAC/C,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { StackOperationStep } from "../../../common/steps.js";
2
+ import { ChangesHolder } from "../states.js";
3
+ export declare const updateStack: StackOperationStep<ChangesHolder>;
@@ -0,0 +1,42 @@
1
+ export const updateStack = async (state) => {
2
+ const { stack, logger, transitions, parameters, tags, currentStatus, customStackHandler, ctx, } = state;
3
+ logger.info(`Updating custom stack of type '${stack.customType}'`);
4
+ try {
5
+ const result = await customStackHandler.update({
6
+ state: currentStatus,
7
+ config: stack.customConfig,
8
+ logger,
9
+ parameters,
10
+ tags,
11
+ stack,
12
+ ctx,
13
+ });
14
+ if (result.success) {
15
+ logger.info("Custom stack update succeeded");
16
+ return transitions.completeStackOperation({
17
+ ...state,
18
+ events: [],
19
+ status: "SUCCESS",
20
+ message: "Stack update succeeded",
21
+ success: true,
22
+ });
23
+ }
24
+ logger.error("Custom stack update failed", result.error);
25
+ return transitions.failStackOperation({
26
+ ...state,
27
+ error: result.error,
28
+ events: [],
29
+ message: result.message ?? "Stack update failed",
30
+ });
31
+ }
32
+ catch (e) {
33
+ logger.error("Custom stack update failed due to unhandled error", e);
34
+ return transitions.failStackOperation({
35
+ ...state,
36
+ error: e,
37
+ events: [],
38
+ message: "Stack update failed",
39
+ });
40
+ }
41
+ };
42
+ //# sourceMappingURL=update-stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-stack.js","sourceRoot":"","sources":["../../../../../../src/command/stacks/deploy/custom-stack/steps/update-stack.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,WAAW,GAAsC,KAAK,EAAE,KAAK,EAAE,EAAE;IAC5E,MAAM,EACJ,KAAK,EACL,MAAM,EACN,WAAW,EACX,UAAU,EACV,IAAI,EACJ,aAAa,EACb,kBAAkB,EAClB,GAAG,GACJ,GAAG,KAAK,CAAA;IAET,MAAM,CAAC,IAAI,CAAC,kCAAkC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAA;IAElE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC;YAC7C,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,KAAK,CAAC,YAAY;YAC1B,MAAM;YACN,UAAU;YACV,IAAI;YACJ,KAAK;YACL,GAAG;SACJ,CAAC,CAAA;QAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;YAE5C,OAAO,WAAW,CAAC,sBAAsB,CAAC;gBACxC,GAAG,KAAK;gBACR,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,wBAAwB;gBACjC,OAAO,EAAE,IAAI;aACd,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QAExD,OAAO,WAAW,CAAC,kBAAkB,CAAC;YACpC,GAAG,KAAK;YACR,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,qBAAqB;SACjD,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,mDAAmD,EAAE,CAAC,CAAC,CAAA;QAEpE,OAAO,WAAW,CAAC,kBAAkB,CAAC;YACpC,GAAG,KAAK;YACR,KAAK,EAAE,CAAU;YACjB,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,qBAAqB;SAC/B,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { StackOperationStep } from "../../../common/steps.js";
2
+ import { InitialDeployCustomStackState } from "../states.js";
3
+ export declare const waitDependenciesToComplete: StackOperationStep<InitialDeployCustomStackState>;
@@ -0,0 +1,26 @@
1
+ const hasSomeDependencyFailed = (dependencyResults) => dependencyResults.some((r) => !r.success);
2
+ const hasSomeDependencySkipped = (dependencyResults) => dependencyResults.some((r) => r.status === "SKIPPED" && !r.stackExistedBeforeOperation);
3
+ export const waitDependenciesToComplete = async (state) => {
4
+ const { logger, dependencies, transitions, currentStatus } = state;
5
+ logger.debug(`Wait ${dependencies.length} dependencies to complete`);
6
+ const dependencyResults = await Promise.all(dependencies);
7
+ if (hasSomeDependencyFailed(dependencyResults)) {
8
+ logger.info("At least one dependency failed");
9
+ return transitions.cancelStackOperation({
10
+ ...state,
11
+ message: "Dependencies failed",
12
+ });
13
+ }
14
+ if (hasSomeDependencySkipped(dependencyResults)) {
15
+ logger.info("At least one dependency stacks creation was skipped, cancel stack creation");
16
+ return transitions.cancelStackOperation({
17
+ ...state,
18
+ message: "Dependencies skipped",
19
+ });
20
+ }
21
+ return transitions.prepareParameters({
22
+ ...state,
23
+ currentStatus,
24
+ });
25
+ };
26
+ //# sourceMappingURL=wait-dependencies-to-complete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait-dependencies-to-complete.js","sourceRoot":"","sources":["../../../../../../src/command/stacks/deploy/custom-stack/steps/wait-dependencies-to-complete.ts"],"names":[],"mappings":"AAIA,MAAM,uBAAuB,GAAG,CAC9B,iBAA6C,EACpC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;AAEvD,MAAM,wBAAwB,GAAG,CAC/B,iBAA6C,EACpC,EAAE,CACX,iBAAiB,CAAC,IAAI,CACpB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAChE,CAAA;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAEnC,KAAK,EAAE,KAAK,EAAE,EAAE;IAClB,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,KAAK,CAAA;IAElE,MAAM,CAAC,KAAK,CAAC,QAAQ,YAAY,CAAC,MAAM,2BAA2B,CAAC,CAAA;IACpE,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IAEzD,IAAI,uBAAuB,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;QAC7C,OAAO,WAAW,CAAC,oBAAoB,CAAC;YACtC,GAAG,KAAK;YACR,OAAO,EAAE,qBAAqB;SAC/B,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,wBAAwB,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CACT,4EAA4E,CAC7E,CAAA;QACD,OAAO,WAAW,CAAC,oBAAoB,CAAC;YACtC,GAAG,KAAK;YACR,OAAO,EAAE,sBAAsB;SAChC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,WAAW,CAAC,iBAAiB,CAAC;QACnC,GAAG,KAAK;QACR,aAAa;KACd,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { StackOperationStep } from "../../common/steps.js";
2
+ import { StackOperationTransitions } from "../../common/transitions.js";
3
+ import { ChangesHolder, InitialDeployCustomStackState, ParametersHolder, TagsHolder } from "./states.js";
4
+ export interface DeployCustomStackTransitions extends StackOperationTransitions {
5
+ prepareParameters: StackOperationStep<InitialDeployCustomStackState>;
6
+ prepareTags: StackOperationStep<ParametersHolder>;
7
+ getChanges: StackOperationStep<TagsHolder>;
8
+ reviewDeployment: StackOperationStep<ChangesHolder>;
9
+ createOrUpdateStack: StackOperationStep<ChangesHolder>;
10
+ createStack: StackOperationStep<ChangesHolder>;
11
+ updateStack: StackOperationStep<ChangesHolder>;
12
+ }
13
+ export declare const createDeployCustomStackTransitions: () => DeployCustomStackTransitions;
@@ -0,0 +1,21 @@
1
+ import { defaultStackOperationTransitions, inProgress, } from "../../common/transitions.js";
2
+ import { createOrUpdateStack } from "./steps/create-or-update-stack.js";
3
+ import { createStack } from "./steps/create-stack.js";
4
+ import { getChanges } from "./steps/get-changes.js";
5
+ import { prepareParameters } from "./steps/prepare-parameters.js";
6
+ import { prepareTags } from "./steps/prepare-tags.js";
7
+ import { reviewDeployment } from "./steps/review-deployment.js";
8
+ import { updateStack } from "./steps/update-stack.js";
9
+ import { waitDependenciesToComplete } from "./steps/wait-dependencies-to-complete.js";
10
+ export const createDeployCustomStackTransitions = () => ({
11
+ ...defaultStackOperationTransitions,
12
+ start: inProgress("wait-dependencies-to-complete", waitDependenciesToComplete),
13
+ prepareParameters: inProgress("prepare-parameters", prepareParameters),
14
+ prepareTags: inProgress("prepare-tags", prepareTags),
15
+ getChanges: inProgress("get-changes", getChanges),
16
+ reviewDeployment: inProgress("review-deployment", reviewDeployment),
17
+ createOrUpdateStack: inProgress("create-or-update-stack", createOrUpdateStack),
18
+ createStack: inProgress("create-stack", createStack),
19
+ updateStack: inProgress("update-stack", updateStack),
20
+ });
21
+ //# sourceMappingURL=transitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../../../../src/command/stacks/deploy/custom-stack/transitions.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gCAAgC,EAChC,UAAU,GAEX,MAAM,6BAA6B,CAAA;AAOpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAA;AAarF,MAAM,CAAC,MAAM,kCAAkC,GAC7C,GAAiC,EAAE,CAAC,CAAC;IACnC,GAAG,gCAAgC;IAEnC,KAAK,EAAE,UAAU,CACf,+BAA+B,EAC/B,0BAA0B,CAC3B;IAED,iBAAiB,EAAE,UAAU,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;IAEtE,WAAW,EAAE,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC;IAEpD,UAAU,EAAE,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC;IAEjD,gBAAgB,EAAE,UAAU,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;IAEnE,mBAAmB,EAAE,UAAU,CAC7B,wBAAwB,EACxB,mBAAmB,CACpB;IAED,WAAW,EAAE,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC;IACpD,WAAW,EAAE,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC;CACrD,CAAC,CAAA"}
@@ -1,9 +1,8 @@
1
- import { CloudFormationStackSummary } from "../../../aws/cloudformation/model.js";
2
1
  import { InternalStacksContext } from "../../../context/stacks-context.js";
3
- import { InternalStack } from "../../../stacks/stack.js";
4
2
  import { StacksConfigRepository } from "../../../takomo-stacks-context/model.js";
5
3
  import { Timer } from "../../../utils/timer.js";
6
- import { StackOperationType, StackResult } from "../../command-model.js";
4
+ import { StackResult } from "../../command-model.js";
7
5
  import { StacksOperationListener } from "../common/model.js";
8
6
  import { DeployStacksIO, DeployState } from "./model.js";
9
- export declare const deployStack: (timer: Timer, ctx: InternalStacksContext, io: DeployStacksIO, state: DeployState, stack: InternalStack, dependencies: Promise<StackResult>[], operationType: StackOperationType, configRepository: StacksConfigRepository, stacksOperationListener: StacksOperationListener, expectNoChanges: boolean, emit: boolean, skipHooks: boolean, skipParameters: boolean, outDir?: string, currentStack?: CloudFormationStackSummary) => Promise<StackResult>;
7
+ import { StackDeployOperation } from "./plan.js";
8
+ export declare const deployStack: (operation: StackDeployOperation, timer: Timer, ctx: InternalStacksContext, io: DeployStacksIO, state: DeployState, dependencies: Promise<StackResult>[], configRepository: StacksConfigRepository, stacksOperationListener: StacksOperationListener, expectNoChanges: boolean, emit: boolean, skipHooks: boolean, skipParameters: boolean, outDir?: string) => Promise<StackResult>;
@@ -1,45 +1,84 @@
1
1
  import { executeSteps } from "../common/steps.js";
2
- import { createDeployStackTransitions } from "./transitions.js";
2
+ import { createDeployCustomStackTransitions } from "./custom-stack/transitions.js";
3
+ import { isCustomStackDeployOperation, isStandardStackDeployOperation, } from "./plan.js";
4
+ import { createDeployStackTransitions } from "./standard-stack/transitions.js";
3
5
  const logStackConfig = (logger, stack, confidentialValuesLoggingEnabled) => {
4
6
  const filterFn = confidentialValuesLoggingEnabled
5
7
  ? () => stack
6
8
  : () => ({ ...stack, credentials: "*****" });
7
9
  logger.debugObject("Stack config:", () => stack, filterFn);
8
10
  };
9
- export const deployStack = async (timer, ctx, io, state, stack, dependencies, operationType, configRepository, stacksOperationListener, expectNoChanges, emit, skipHooks, skipParameters, outDir, currentStack) => {
10
- const logger = io.childLogger(stack.path);
11
- if (currentStack) {
12
- logger.info(`Stack status: ${currentStack.status}`);
11
+ export const deployStack = async (operation, timer, ctx, io, state,
12
+ // stack: InternalStack,
13
+ dependencies,
14
+ // operationType: StackOperationType,
15
+ configRepository, stacksOperationListener, expectNoChanges, emit, skipHooks, skipParameters, outDir) => {
16
+ const logger = io.childLogger(operation.stack.path);
17
+ if (isStandardStackDeployOperation(operation)) {
18
+ const { currentStack, stack, type } = operation;
19
+ logStackConfig(logger, stack, ctx.confidentialValuesLoggingEnabled);
20
+ const variables = {
21
+ ...ctx.variables,
22
+ hooks: {},
23
+ };
24
+ if (currentStack) {
25
+ logger.info(`Stack status: ${currentStack.status}`);
26
+ }
27
+ else {
28
+ logger.info(`Stack status: PENDING`);
29
+ }
30
+ const initialState = {
31
+ io,
32
+ stack,
33
+ variables,
34
+ logger,
35
+ dependencies,
36
+ operationType: type,
37
+ state,
38
+ currentStack,
39
+ ctx,
40
+ configRepository,
41
+ stacksOperationListener,
42
+ expectNoChanges,
43
+ emit,
44
+ skipHooks,
45
+ skipParameters,
46
+ stackExistedBeforeOperation: currentStack !== undefined,
47
+ totalTimer: timer.startChild(stack.path),
48
+ transitions: createDeployStackTransitions(),
49
+ outDir,
50
+ };
51
+ return executeSteps(initialState);
13
52
  }
14
- else {
15
- logger.info(`Stack status: PENDING`);
53
+ if (isCustomStackDeployOperation(operation)) {
54
+ const { currentState, stack, type } = operation;
55
+ logStackConfig(logger, stack, ctx.confidentialValuesLoggingEnabled);
56
+ const variables = {
57
+ ...ctx.variables,
58
+ hooks: {},
59
+ };
60
+ logger.info(`Stack status: ${currentState.status}`);
61
+ const handler = ctx.customStackHandlerRegistry.getHandler(stack.customType);
62
+ const initialState = {
63
+ io,
64
+ stack,
65
+ variables,
66
+ logger,
67
+ dependencies,
68
+ operationType: type,
69
+ state,
70
+ currentStatus: currentState,
71
+ ctx,
72
+ emit,
73
+ expectNoChanges,
74
+ stacksOperationListener,
75
+ stackExistedBeforeOperation: currentState !== undefined,
76
+ totalTimer: timer.startChild(stack.path),
77
+ transitions: createDeployCustomStackTransitions(),
78
+ customStackHandler: handler,
79
+ };
80
+ return executeSteps(initialState);
16
81
  }
17
- logStackConfig(logger, stack, ctx.confidentialValuesLoggingEnabled);
18
- const variables = {
19
- ...ctx.variables,
20
- hooks: {},
21
- };
22
- const initialState = {
23
- io,
24
- stack,
25
- variables,
26
- logger,
27
- dependencies,
28
- operationType,
29
- state,
30
- currentStack,
31
- ctx,
32
- configRepository,
33
- stacksOperationListener,
34
- expectNoChanges,
35
- emit,
36
- skipHooks,
37
- skipParameters,
38
- stackExistedBeforeOperation: currentStack !== undefined,
39
- totalTimer: timer.startChild(stack.path),
40
- transitions: createDeployStackTransitions(),
41
- outDir,
42
- };
43
- return executeSteps(initialState);
82
+ throw new Error(`Unknown stack type`);
44
83
  };
45
84
  //# sourceMappingURL=deploy-stack.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-stack.js","sourceRoot":"","sources":["../../../../src/command/stacks/deploy/deploy-stack.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAA;AAE/D,MAAM,cAAc,GAAG,CACrB,MAAiB,EACjB,KAAoB,EACpB,gCAAyC,EACnC,EAAE;IACR,MAAM,QAAQ,GAAG,gCAAgC;QAC/C,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;QACb,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;IAC9C,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AAC5D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,KAAY,EACZ,GAA0B,EAC1B,EAAkB,EAClB,KAAkB,EAClB,KAAoB,EACpB,YAAoC,EACpC,aAAiC,EACjC,gBAAwC,EACxC,uBAAgD,EAChD,eAAwB,EACxB,IAAa,EACb,SAAkB,EAClB,cAAuB,EACvB,MAAe,EACf,YAAyC,EACnB,EAAE;IACxB,MAAM,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAEzC,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,iBAAiB,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;IACrD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;IACtC,CAAC;IAED,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,gCAAgC,CAAC,CAAA;IAEnE,MAAM,SAAS,GAAG;QAChB,GAAG,GAAG,CAAC,SAAS;QAChB,KAAK,EAAE,EAAE;KACV,CAAA;IAED,MAAM,YAAY,GAA4B;QAC5C,EAAE;QACF,KAAK;QACL,SAAS;QACT,MAAM;QACN,YAAY;QACZ,aAAa;QACb,KAAK;QACL,YAAY;QACZ,GAAG;QACH,gBAAgB;QAChB,uBAAuB;QACvB,eAAe;QACf,IAAI;QACJ,SAAS;QACT,cAAc;QACd,2BAA2B,EAAE,YAAY,KAAK,SAAS;QACvD,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;QACxC,WAAW,EAAE,4BAA4B,EAAE;QAC3C,MAAM;KACP,CAAA;IAED,OAAO,YAAY,CAAC,YAAY,CAAC,CAAA;AACnC,CAAC,CAAA"}
1
+ {"version":3,"file":"deploy-stack.js","sourceRoot":"","sources":["../../../../src/command/stacks/deploy/deploy-stack.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAA;AAElF,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,GAE/B,MAAM,WAAW,CAAA;AAElB,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAA;AAE9E,MAAM,cAAc,GAAG,CACrB,MAAiB,EACjB,KAAoB,EACpB,gCAAyC,EACnC,EAAE;IACR,MAAM,QAAQ,GAAG,gCAAgC;QAC/C,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;QACb,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;IAC9C,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AAC5D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,SAA+B,EAC/B,KAAY,EACZ,GAA0B,EAC1B,EAAkB,EAClB,KAAkB;AAClB,wBAAwB;AACxB,YAAoC;AACpC,qCAAqC;AACrC,gBAAwC,EACxC,uBAAgD,EAChD,eAAwB,EACxB,IAAa,EACb,SAAkB,EAClB,cAAuB,EACvB,MAAe,EAEO,EAAE;IACxB,MAAM,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAEnD,IAAI,8BAA8B,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9C,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,CAAA;QAC/C,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,gCAAgC,CAAC,CAAA;QAEnE,MAAM,SAAS,GAAG;YAChB,GAAG,GAAG,CAAC,SAAS;YAChB,KAAK,EAAE,EAAE;SACV,CAAA;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,iBAAiB,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;QACrD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QACtC,CAAC;QAED,MAAM,YAAY,GAAoC;YACpD,EAAE;YACF,KAAK;YACL,SAAS;YACT,MAAM;YACN,YAAY;YACZ,aAAa,EAAE,IAAI;YACnB,KAAK;YACL,YAAY;YACZ,GAAG;YACH,gBAAgB;YAChB,uBAAuB;YACvB,eAAe;YACf,IAAI;YACJ,SAAS;YACT,cAAc;YACd,2BAA2B,EAAE,YAAY,KAAK,SAAS;YACvD,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;YACxC,WAAW,EAAE,4BAA4B,EAAE;YAC3C,MAAM;SACP,CAAA;QAED,OAAO,YAAY,CAAC,YAAY,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,4BAA4B,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5C,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,CAAA;QAC/C,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,gCAAgC,CAAC,CAAA;QAEnE,MAAM,SAAS,GAAG;YAChB,GAAG,GAAG,CAAC,SAAS;YAChB,KAAK,EAAE,EAAE;SACV,CAAA;QAED,MAAM,CAAC,IAAI,CAAC,iBAAiB,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;QAEnD,MAAM,OAAO,GAAG,GAAG,CAAC,0BAA0B,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAE3E,MAAM,YAAY,GAAkC;YAClD,EAAE;YACF,KAAK;YACL,SAAS;YACT,MAAM;YACN,YAAY;YACZ,aAAa,EAAE,IAAI;YACnB,KAAK;YACL,aAAa,EAAE,YAAY;YAC3B,GAAG;YACH,IAAI;YACJ,eAAe;YACf,uBAAuB;YACvB,2BAA2B,EAAE,YAAY,KAAK,SAAS;YACvD,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;YACxC,WAAW,EAAE,kCAAkC,EAAE;YACjD,kBAAkB,EAAE,OAAO;SAC5B,CAAA;QAED,OAAO,YAAY,CAAC,YAAY,CAAC,CAAA;IACnC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;AACvC,CAAC,CAAA"}