takomo 8.0.2 → 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 (341) 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/constants/regions-constants.js +5 -0
  201. package/dist/constants/regions-constants.js.map +1 -1
  202. package/dist/context/stacks-context.d.ts +3 -1
  203. package/dist/custom-stacks/cmd-custom-stack-handler.d.ts +24 -0
  204. package/dist/custom-stacks/cmd-custom-stack-handler.js +274 -0
  205. package/dist/custom-stacks/cmd-custom-stack-handler.js.map +1 -0
  206. package/dist/custom-stacks/custom-stack-handler-registry.d.ts +13 -0
  207. package/dist/custom-stacks/custom-stack-handler-registry.js +32 -0
  208. package/dist/custom-stacks/custom-stack-handler-registry.js.map +1 -0
  209. package/dist/custom-stacks/custom-stack-handler.d.ts +401 -0
  210. package/dist/custom-stacks/custom-stack-handler.js +2 -0
  211. package/dist/custom-stacks/custom-stack-handler.js.map +1 -0
  212. package/dist/extensions/config-customizer.d.ts +5 -0
  213. package/dist/hooks/execute.d.ts +2 -2
  214. package/dist/hooks/execute.js +1 -0
  215. package/dist/hooks/execute.js.map +1 -1
  216. package/dist/hooks/hook.d.ts +2 -2
  217. package/dist/index.d.ts +5 -1
  218. package/dist/index.js +2 -0
  219. package/dist/index.js.map +1 -1
  220. package/dist/parser/stacks/build-custom-stack-config.d.ts +5 -0
  221. package/dist/parser/stacks/build-custom-stack-config.js +51 -0
  222. package/dist/parser/stacks/build-custom-stack-config.js.map +1 -0
  223. package/dist/parser/stacks/build-standard-stack-config.d.ts +6 -0
  224. package/dist/parser/stacks/{build-stack-config.js → build-standard-stack-config.js} +5 -4
  225. package/dist/parser/stacks/build-standard-stack-config.js.map +1 -0
  226. package/dist/parser/stacks/parse-custom-stack-type.d.ts +2 -0
  227. package/dist/parser/stacks/parse-custom-stack-type.js +10 -0
  228. package/dist/parser/stacks/parse-custom-stack-type.js.map +1 -0
  229. package/dist/resolvers/stack-output-resolver.js +4 -0
  230. package/dist/resolvers/stack-output-resolver.js.map +1 -1
  231. package/dist/schema/custom-stack-config-schema.d.ts +7 -0
  232. package/dist/schema/custom-stack-config-schema.js +34 -0
  233. package/dist/schema/custom-stack-config-schema.js.map +1 -0
  234. package/dist/schema/stacks-schema.d.ts +1 -0
  235. package/dist/schema/stacks-schema.js +2 -0
  236. package/dist/schema/stacks-schema.js.map +1 -1
  237. package/dist/schema/{stack-config-schema.d.ts → standard-stack-config-schema.d.ts} +2 -2
  238. package/dist/schema/{stack-config-schema.js → standard-stack-config-schema.js} +4 -3
  239. package/dist/schema/standard-stack-config-schema.js.map +1 -0
  240. package/dist/stacks/custom-stack.d.ts +26 -0
  241. package/dist/stacks/custom-stack.js +38 -0
  242. package/dist/stacks/custom-stack.js.map +1 -0
  243. package/dist/stacks/stack.d.ts +13 -41
  244. package/dist/stacks/stack.js +11 -38
  245. package/dist/stacks/stack.js.map +1 -1
  246. package/dist/stacks/standard-stack.d.ts +54 -0
  247. package/dist/stacks/standard-stack.js +42 -0
  248. package/dist/stacks/standard-stack.js.map +1 -0
  249. package/dist/takomo-config-repository-fs/deployment-targets/config-repository.js +5 -1
  250. package/dist/takomo-config-repository-fs/deployment-targets/config-repository.js.map +1 -1
  251. package/dist/takomo-config-repository-fs/stacks/config-repository.js +4 -1
  252. package/dist/takomo-config-repository-fs/stacks/config-repository.js.map +1 -1
  253. package/dist/takomo-config-repository-fs/stacks/parser.d.ts +4 -3
  254. package/dist/takomo-config-repository-fs/stacks/parser.js +35 -7
  255. package/dist/takomo-config-repository-fs/stacks/parser.js.map +1 -1
  256. package/dist/takomo-stacks-context/config/build-custom-stack.d.ts +15 -0
  257. package/dist/takomo-stacks-context/config/build-custom-stack.js +104 -0
  258. package/dist/takomo-stacks-context/config/build-custom-stack.js.map +1 -0
  259. package/dist/takomo-stacks-context/config/build-stack.d.ts +12 -12
  260. package/dist/takomo-stacks-context/config/build-stack.js +18 -139
  261. package/dist/takomo-stacks-context/config/build-stack.js.map +1 -1
  262. package/dist/takomo-stacks-context/config/build-stacks-context.js +8 -2
  263. package/dist/takomo-stacks-context/config/build-stacks-context.js.map +1 -1
  264. package/dist/takomo-stacks-context/config/build-standard-stack.d.ts +27 -0
  265. package/dist/takomo-stacks-context/config/build-standard-stack.js +144 -0
  266. package/dist/takomo-stacks-context/config/build-standard-stack.js.map +1 -0
  267. package/dist/takomo-stacks-context/config/config-tree.d.ts +3 -2
  268. package/dist/takomo-stacks-context/config/create-root-stack-group.js.map +1 -1
  269. package/dist/takomo-stacks-context/config/process-config-tree.d.ts +2 -1
  270. package/dist/takomo-stacks-context/config/process-config-tree.js +6 -6
  271. package/dist/takomo-stacks-context/config/process-config-tree.js.map +1 -1
  272. package/dist/takomo-stacks-context/dependencies.js +2 -2
  273. package/dist/takomo-stacks-context/dependencies.js.map +1 -1
  274. package/dist/takomo-stacks-context/model.d.ts +7 -5
  275. package/dist/takomo-stacks-context/model.js +2 -0
  276. package/dist/takomo-stacks-context/model.js.map +1 -1
  277. package/dist/takomo-stacks-model/util.d.ts +0 -4
  278. package/dist/takomo-stacks-model/util.js +0 -4
  279. package/dist/takomo-stacks-model/util.js.map +1 -1
  280. package/dist/utils/collections.d.ts +1 -0
  281. package/dist/utils/collections.js +4 -0
  282. package/dist/utils/collections.js.map +1 -1
  283. package/dist/utils/exhaustive-check.d.ts +1 -0
  284. package/dist/utils/exhaustive-check.js +4 -0
  285. package/dist/utils/exhaustive-check.js.map +1 -0
  286. package/package.json +41 -40
  287. package/dist/command/stacks/deploy/states.js.map +0 -1
  288. package/dist/command/stacks/deploy/steps/continue-update-rollback.js.map +0 -1
  289. package/dist/command/stacks/deploy/steps/emit-stack-template.js.map +0 -1
  290. package/dist/command/stacks/deploy/steps/enrich-current-stack.js.map +0 -1
  291. package/dist/command/stacks/deploy/steps/execute-after-deploy-hooks.js.map +0 -1
  292. package/dist/command/stacks/deploy/steps/execute-before-deploy-hooks.js.map +0 -1
  293. package/dist/command/stacks/deploy/steps/initiate-change-set-create.js.map +0 -1
  294. package/dist/command/stacks/deploy/steps/initiate-failed-stack-delete.js.map +0 -1
  295. package/dist/command/stacks/deploy/steps/initiate-stack-create-or-update.js.map +0 -1
  296. package/dist/command/stacks/deploy/steps/initiate-stack-create.js.map +0 -1
  297. package/dist/command/stacks/deploy/steps/initiate-stack-update.js.map +0 -1
  298. package/dist/command/stacks/deploy/steps/prepare-parameters.js.map +0 -1
  299. package/dist/command/stacks/deploy/steps/prepare-tags.js.map +0 -1
  300. package/dist/command/stacks/deploy/steps/prepare-template.d.ts +0 -7
  301. package/dist/command/stacks/deploy/steps/prepare-template.js.map +0 -1
  302. package/dist/command/stacks/deploy/steps/review-change-set.js.map +0 -1
  303. package/dist/command/stacks/deploy/steps/summarize-template.js.map +0 -1
  304. package/dist/command/stacks/deploy/steps/update-termination-protection.js.map +0 -1
  305. package/dist/command/stacks/deploy/steps/upload-template.js.map +0 -1
  306. package/dist/command/stacks/deploy/steps/validate-parameters.js.map +0 -1
  307. package/dist/command/stacks/deploy/steps/validate-template.js.map +0 -1
  308. package/dist/command/stacks/deploy/steps/wait-change-set-to-be-ready.js.map +0 -1
  309. package/dist/command/stacks/deploy/steps/wait-dependencies-to-complete.d.ts +0 -3
  310. package/dist/command/stacks/deploy/steps/wait-dependencies-to-complete.js.map +0 -1
  311. package/dist/command/stacks/deploy/steps/wait-failed-stack-delete-to-complete.js.map +0 -1
  312. package/dist/command/stacks/deploy/steps/wait-stack-create-or-update-to-complete.js.map +0 -1
  313. package/dist/command/stacks/deploy/steps/wait-stack-rollback-to-complete.js.map +0 -1
  314. package/dist/command/stacks/deploy/transitions.js.map +0 -1
  315. package/dist/command/stacks/undeploy/states.d.ts +0 -30
  316. package/dist/command/stacks/undeploy/states.js.map +0 -1
  317. package/dist/command/stacks/undeploy/steps/execute-after-undeploy-hooks.js.map +0 -1
  318. package/dist/command/stacks/undeploy/steps/execute-before-undeploy-hooks.js.map +0 -1
  319. package/dist/command/stacks/undeploy/steps/initiate-stack-delete.js.map +0 -1
  320. package/dist/command/stacks/undeploy/steps/wait-dependents-to-complete.d.ts +0 -3
  321. package/dist/command/stacks/undeploy/steps/wait-dependents-to-complete.js.map +0 -1
  322. package/dist/command/stacks/undeploy/steps/wait-stack-delete-to-complete.js.map +0 -1
  323. package/dist/command/stacks/undeploy/transitions.js.map +0 -1
  324. package/dist/parser/stacks/build-stack-config.d.ts +0 -6
  325. package/dist/parser/stacks/build-stack-config.js.map +0 -1
  326. package/dist/schema/stack-config-schema.js.map +0 -1
  327. /package/dist/command/stacks/deploy/{states.js → custom-stack/states.js} +0 -0
  328. /package/dist/command/stacks/{undeploy → deploy/standard-stack}/states.js +0 -0
  329. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/continue-update-rollback.js +0 -0
  330. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/enrich-current-stack.js +0 -0
  331. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/initiate-stack-create-or-update.js +0 -0
  332. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/prepare-parameters.js +0 -0
  333. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/prepare-tags.js +0 -0
  334. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/summarize-template.js +0 -0
  335. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/update-termination-protection.js +0 -0
  336. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/validate-template.js +0 -0
  337. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/wait-dependencies-to-complete.js +0 -0
  338. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/wait-failed-stack-delete-to-complete.js +0 -0
  339. /package/dist/command/stacks/deploy/{steps → standard-stack/steps}/wait-stack-rollback-to-complete.js +0 -0
  340. /package/dist/command/stacks/undeploy/{steps → standard-stack/steps}/wait-dependents-to-complete.js +0 -0
  341. /package/dist/command/stacks/undeploy/{steps → standard-stack/steps}/wait-stack-delete-to-complete.js +0 -0
@@ -1,9 +1,10 @@
1
- import { StackConfig } from "../../config/stack-config.js";
1
+ import { CustomStackConfig } from "../../config/custom-stack-config.js";
2
2
  import { StackGroupConfig } from "../../config/stack-group-config.js";
3
+ import { StandardStackConfig } from "../../config/standard-stack-config.js";
3
4
  import { CommandContext } from "../../context/command-context.js";
4
5
  import { TemplateEngine } from "../../templating/template-engine.js";
5
6
  import { FilePath } from "../../utils/files.js";
6
7
  import { TkmLogger } from "../../utils/logging.js";
7
- export declare const parseBlueprintConfigFile: (ctx: CommandContext, variables: any, templateEngine: TemplateEngine, logger: TkmLogger, pathToFile: FilePath) => Promise<StackConfig>;
8
- export declare const parseStackConfigFile: (ctx: CommandContext, variables: any, templateEngine: TemplateEngine, logger: TkmLogger, pathToFile: FilePath) => Promise<StackConfig>;
8
+ export declare const parseBlueprintConfigFile: (ctx: CommandContext, variables: any, templateEngine: TemplateEngine, logger: TkmLogger, pathToFile: FilePath) => Promise<StandardStackConfig>;
9
+ export declare const parseStackConfigFile: (ctx: CommandContext, variables: any, templateEngine: TemplateEngine, logger: TkmLogger, pathToFile: FilePath) => Promise<StandardStackConfig | CustomStackConfig>;
9
10
  export declare const parseStackGroupConfigFile: (ctx: CommandContext, variables: any, templateEngine: TemplateEngine, logger: TkmLogger, pathToFile: FilePath) => Promise<StackGroupConfig>;
@@ -1,28 +1,56 @@
1
- import { buildStackConfig } from "../../parser/stacks/build-stack-config.js";
1
+ import { buildStandardStackConfig } from "../../parser/stacks/build-standard-stack-config.js";
2
2
  import { buildStackGroupConfig } from "../../parser/stacks/build-stack-group-config.js";
3
3
  import { TakomoError } from "../../utils/errors.js";
4
4
  import { parseYaml } from "../../utils/yaml.js";
5
+ import { buildCustomStackConfig } from "../../parser/stacks/build-custom-stack-config.js";
5
6
  export const parseBlueprintConfigFile = async (ctx,
6
7
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
- variables, templateEngine, logger, pathToFile) => parseStackConfigFileInternal(ctx, variables, templateEngine, logger, pathToFile, "blueprint");
8
+ variables, templateEngine, logger, pathToFile) => {
9
+ const rendered = await templateEngine.renderTemplateFile({
10
+ pathToFile,
11
+ variables,
12
+ });
13
+ const parsedFile = parseYaml(pathToFile, rendered);
14
+ if (typeof parsedFile === "number" || typeof parsedFile === "string") {
15
+ throw new Error("Invalid yaml document");
16
+ }
17
+ return parseStandardStackConfigFileInternal(ctx, pathToFile, parsedFile, "blueprint");
18
+ };
8
19
  export const parseStackConfigFile = async (ctx,
9
20
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
- variables, templateEngine, logger, pathToFile) => parseStackConfigFileInternal(ctx, variables, templateEngine, logger, pathToFile, "stack");
11
- const parseStackConfigFileInternal = async (ctx,
12
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
- variables, templateEngine, logger, pathToFile, configType) => {
21
+ variables, templateEngine, logger, pathToFile) => {
14
22
  const rendered = await templateEngine.renderTemplateFile({
15
23
  pathToFile,
16
24
  variables,
17
25
  });
18
26
  const parsedFile = parseYaml(pathToFile, rendered);
19
- const result = buildStackConfig(ctx, parsedFile, configType);
27
+ if (typeof parsedFile === "number" || typeof parsedFile === "string") {
28
+ throw new Error("Invalid yaml document");
29
+ }
30
+ if (parsedFile.customType === undefined) {
31
+ return parseStandardStackConfigFileInternal(ctx, pathToFile, parsedFile, "stack");
32
+ }
33
+ if (typeof parsedFile.customType === "string") {
34
+ return parseCustomStackConfigFile(ctx, pathToFile, parsedFile);
35
+ }
36
+ throw new TakomoError(`Validation errors in stack file ${pathToFile}:\n- customType must be a string`);
37
+ };
38
+ const parseStandardStackConfigFileInternal = async (ctx, pathToFile, parsedFile, configType) => {
39
+ const result = buildStandardStackConfig(ctx, parsedFile, configType);
20
40
  if (result.isOk()) {
21
41
  return result.value;
22
42
  }
23
43
  const details = result.error.messages.map((m) => `- ${m}`).join("\n");
24
44
  throw new TakomoError(`Validation errors in ${configType} file ${pathToFile}:\n${details}`);
25
45
  };
46
+ const parseCustomStackConfigFile = async (ctx, pathToFile, parsedFile) => {
47
+ const result = buildCustomStackConfig(ctx, parsedFile);
48
+ if (result.isOk()) {
49
+ return result.value;
50
+ }
51
+ const details = result.error.messages.map((m) => `- ${m}`).join("\n");
52
+ throw new TakomoError(`Validation errors in stack file ${pathToFile}:\n${details}`);
53
+ };
26
54
  export const parseStackGroupConfigFile = async (ctx,
27
55
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
56
  variables, templateEngine, logger, pathToFile) => {
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/takomo-config-repository-fs/stacks/parser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAA;AAEvF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGnD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,GAAmB;AACnB,8DAA8D;AAC9D,SAAc,EACd,cAA8B,EAC9B,MAAiB,EACjB,UAAoB,EACE,EAAE,CACxB,4BAA4B,CAC1B,GAAG,EACH,SAAS,EACT,cAAc,EACd,MAAM,EACN,UAAU,EACV,WAAW,CACZ,CAAA;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,GAAmB;AACnB,8DAA8D;AAC9D,SAAc,EACd,cAA8B,EAC9B,MAAiB,EACjB,UAAoB,EACE,EAAE,CACxB,4BAA4B,CAC1B,GAAG,EACH,SAAS,EACT,cAAc,EACd,MAAM,EACN,UAAU,EACV,OAAO,CACR,CAAA;AAEH,MAAM,4BAA4B,GAAG,KAAK,EACxC,GAAmB;AACnB,8DAA8D;AAC9D,SAAc,EACd,cAA8B,EAC9B,MAAiB,EACjB,UAAoB,EACpB,UAAiC,EACX,EAAE;IACxB,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,kBAAkB,CAAC;QACvD,UAAU;QACV,SAAS;KACV,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAClD,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;IAC5D,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC,KAAK,CAAA;IACrB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9E,MAAM,IAAI,WAAW,CACnB,wBAAwB,UAAU,SAAS,UAAU,MAAM,OAAO,EAAE,CACrE,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAC5C,GAAmB;AACnB,8DAA8D;AAC9D,SAAc,EACd,cAA8B,EAC9B,MAAiB,EACjB,UAAoB,EACO,EAAE;IAC7B,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,kBAAkB,CAAC;QACvD,UAAU;QACV,SAAS;KACV,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAClD,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IAErD,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC,KAAK,CAAA;IACrB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9E,MAAM,IAAI,WAAW,CACnB,uDAAuD,UAAU,MAAM,OAAO,EAAE,CACjF,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/takomo-config-repository-fs/stacks/parser.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAA;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAA;AAEvF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGnD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAA;AAEzF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,GAAmB;AACnB,8DAA8D;AAC9D,SAAc,EACd,cAA8B,EAC9B,MAAiB,EACjB,UAAoB,EACU,EAAE;IAChC,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,kBAAkB,CAAC;QACvD,UAAU;QACV,SAAS;KACV,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAClD,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAC1C,CAAC;IAED,OAAO,oCAAoC,CACzC,GAAG,EACH,UAAU,EACV,UAAU,EACV,WAAW,CACZ,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,GAAmB;AACnB,8DAA8D;AAC9D,SAAc,EACd,cAA8B,EAC9B,MAAiB,EACjB,UAAoB,EAC8B,EAAE;IACpD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,kBAAkB,CAAC;QACvD,UAAU;QACV,SAAS;KACV,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAClD,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,oCAAoC,CACzC,GAAG,EACH,UAAU,EACV,UAAU,EACV,OAAO,CACR,CAAA;IACH,CAAC;IAED,IAAI,OAAO,UAAU,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,0BAA0B,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;IAChE,CAAC;IAED,MAAM,IAAI,WAAW,CACnB,mCAAmC,UAAU,kCAAkC,CAChF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,oCAAoC,GAAG,KAAK,EAChD,GAAmB,EACnB,UAAoB,EACpB,UAAmC,EACnC,UAAiC,EACH,EAAE;IAChC,MAAM,MAAM,GAAG,wBAAwB,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;IACpE,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC,KAAK,CAAA;IACrB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9E,MAAM,IAAI,WAAW,CACnB,wBAAwB,UAAU,SAAS,UAAU,MAAM,OAAO,EAAE,CACrE,CAAA;AACH,CAAC,CAAA;AAED,MAAM,0BAA0B,GAAG,KAAK,EACtC,GAAmB,EACnB,UAAoB,EACpB,UAAmC,EACP,EAAE;IAC9B,MAAM,MAAM,GAAG,sBAAsB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IAEtD,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC,KAAK,CAAA;IACrB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9E,MAAM,IAAI,WAAW,CACnB,mCAAmC,UAAU,MAAM,OAAO,EAAE,CAC7D,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAC5C,GAAmB;AACnB,8DAA8D;AAC9D,SAAc,EACd,cAA8B,EAC9B,MAAiB,EACjB,UAAoB,EACO,EAAE;IAC7B,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,kBAAkB,CAAC;QACvD,UAAU;QACV,SAAS;KACV,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAClD,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IAErD,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC,KAAK,CAAA;IACrB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9E,MAAM,IAAI,WAAW,CACnB,uDAAuD,UAAU,MAAM,OAAO,EAAE,CACjF,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { InternalCredentialManager } from "../../aws/common/credentials.js";
2
+ import { IamRoleArn } from "../../aws/common/model.js";
3
+ import { CommandPath } from "../../command/command-model.js";
4
+ import { InternalCommandContext } from "../../context/command-context.js";
5
+ import { HookRegistry } from "../../hooks/hook-registry.js";
6
+ import { ResolverRegistry } from "../../resolvers/resolver-registry.js";
7
+ import { StackGroup } from "../../stacks/stack-group.js";
8
+ import { SchemaRegistry } from "../../takomo-stacks-model/schemas.js";
9
+ import { TkmLogger } from "../../utils/logging.js";
10
+ import { ProcessStatus } from "./process-config-tree.js";
11
+ import { StackPath } from "../../stacks/stack.js";
12
+ import { InternalCustomStack } from "../../stacks/custom-stack.js";
13
+ import { CustomStackConfig } from "../../config/custom-stack-config.js";
14
+ import { CustomStackHandler } from "../../custom-stacks/custom-stack-handler.js";
15
+ export declare const buildCustomStack: (stackPath: StackPath, ctx: InternalCommandContext, logger: TkmLogger, defaultCredentialManager: InternalCredentialManager, credentialManagers: Map<IamRoleArn, InternalCredentialManager>, resolverRegistry: ResolverRegistry, schemaRegistry: SchemaRegistry, hookRegistry: HookRegistry, stackConfig: CustomStackConfig, stackGroup: StackGroup, commandPath: CommandPath, status: ProcessStatus, customStackHandler: CustomStackHandler<any, any>) => Promise<InternalCustomStack[]>;
@@ -0,0 +1,104 @@
1
+ import * as R from "ramda";
2
+ import { createAwsSchemas } from "../../schema/aws-schema.js";
3
+ import { isWithinCommandPath } from "../../takomo-stacks-model/util.js";
4
+ import { TakomoError } from "../../utils/errors.js";
5
+ import { validate } from "../../utils/validation.js";
6
+ import { getCredentialManager } from "./get-credential-provider.js";
7
+ import { mergeStackSchemas } from "./merge-stack-schemas.js";
8
+ import { buildParameters } from "./parameters.js";
9
+ import { createCustomStack, } from "../../stacks/custom-stack.js";
10
+ import { buildAccountIds, buildCommandRole, buildData, buildDependencies, buildIgnore, buildObsolete, buildProject, buildRegions, buildStackName, buildTags, buildTerminationProtection, buildTimeout, validateData, validateName, validateTags, } from "./build-stack.js";
11
+ const parseCustomStackConfig = async (stackPath, logger, handler, config) => {
12
+ try {
13
+ const result = await handler.parseConfig({
14
+ config,
15
+ logger,
16
+ stackPath,
17
+ });
18
+ if (result.success) {
19
+ return { customConfig: result.config };
20
+ }
21
+ const { message, error } = result;
22
+ logger.error(`Parsing custom stack config failed for stack ${stackPath}: ${message}`, error);
23
+ return { error };
24
+ }
25
+ catch (e) {
26
+ logger.error(`Unhandled error while parsing custom stack config for stack ${stackPath}`, e);
27
+ throw e;
28
+ }
29
+ };
30
+ export const buildCustomStack = async (stackPath, ctx, logger, defaultCredentialManager, credentialManagers, resolverRegistry, schemaRegistry, hookRegistry, stackConfig, stackGroup, commandPath, status, customStackHandler) => {
31
+ const { stackName } = createAwsSchemas({ regions: ctx.regions });
32
+ const builderProps = {
33
+ stackConfig,
34
+ stackGroup,
35
+ };
36
+ const name = buildStackName(builderProps, stackPath);
37
+ const regions = buildRegions(builderProps);
38
+ const commandRole = buildCommandRole(builderProps);
39
+ const accountIds = buildAccountIds(builderProps);
40
+ const ignore = buildIgnore(builderProps);
41
+ const obsolete = buildObsolete(builderProps);
42
+ const terminationProtection = buildTerminationProtection(builderProps);
43
+ const project = buildProject(builderProps);
44
+ const parameters = await buildParameters(ctx, stackPath, stackConfig.parameters, resolverRegistry, schemaRegistry);
45
+ if (regions.length === 0) {
46
+ throw new TakomoError(`Stack ${stackPath} has no regions`);
47
+ }
48
+ validate(stackName, name, `Name of stack ${stackPath} is not valid`);
49
+ R.uniq(Array.from(parameters.values())
50
+ .reduce((collected, parameter) => {
51
+ return [...collected, parameter.getIamRoleArns()];
52
+ }, new Array())
53
+ .flat())
54
+ .map((iamRoleArn) => ({ iamRoleArn }))
55
+ .forEach((commandRole) => {
56
+ getCredentialManager(commandRole, defaultCredentialManager, credentialManagers);
57
+ });
58
+ const credentialManager = await getCredentialManager(commandRole, defaultCredentialManager, credentialManagers);
59
+ return await Promise.all(regions
60
+ .filter((region) => isWithinCommandPath(commandPath, `${stackPath}/${region}`))
61
+ .filter((region) => !status.isStackProcessed(`${stackPath}/${region}`))
62
+ .map(async (region) => {
63
+ const exactPath = `${stackPath}/${region}`;
64
+ const stackLogger = logger.childLogger(exactPath);
65
+ const schemas = await mergeStackSchemas(ctx, schemaRegistry, exactPath, stackGroup.schemas, stackConfig.schemas);
66
+ const tags = buildTags(builderProps);
67
+ const data = buildData(builderProps);
68
+ const timeout = buildTimeout(builderProps);
69
+ const dependencies = buildDependencies(builderProps);
70
+ const { customConfig, error } = await parseCustomStackConfig(exactPath, logger, customStackHandler, stackConfig.customConfig);
71
+ if (error) {
72
+ throw error;
73
+ }
74
+ const props = {
75
+ customType: stackConfig.customType,
76
+ customConfig,
77
+ customStackHandler,
78
+ name,
79
+ region,
80
+ parameters,
81
+ commandRole,
82
+ credentialManager,
83
+ ignore,
84
+ obsolete,
85
+ terminationProtection,
86
+ accountIds,
87
+ path: exactPath,
88
+ stackGroupPath: stackGroup.path,
89
+ project,
90
+ tags,
91
+ timeout,
92
+ dependencies,
93
+ dependents: [],
94
+ data,
95
+ logger: stackLogger,
96
+ schemas,
97
+ };
98
+ validateData(exactPath, schemas?.data ?? [], props.data);
99
+ validateTags(exactPath, schemas?.tags ?? [], props.tags);
100
+ validateName(exactPath, schemas?.name ?? [], name);
101
+ return createCustomStack(props);
102
+ }));
103
+ };
104
+ //# sourceMappingURL=build-custom-stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-custom-stack.js","sourceRoot":"","sources":["../../../src/takomo-stacks-context/config/build-custom-stack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAA;AAO1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAG7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGjD,OAAO,EACL,iBAAiB,GAGlB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,SAAS,EACT,0BAA0B,EAC1B,YAAY,EAEZ,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,MAAM,kBAAkB,CAAA;AASzB,MAAM,sBAAsB,GAAG,KAAK,EAClC,SAAoB,EACpB,MAAiB,EACjB,OAAqC,EACrC,MAAe,EACwB,EAAE;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC;YACvC,MAAM;YACN,MAAM;YACN,SAAS;SACV,CAAC,CAAA;QAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,CAAA;QACxC,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;QAEjC,MAAM,CAAC,KAAK,CACV,gDAAgD,SAAS,KAAK,OAAO,EAAE,EACvE,KAAK,CACN,CAAA;QAED,OAAO,EAAE,KAAK,EAAE,CAAA;IAClB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CACV,+DAA+D,SAAS,EAAE,EAC1E,CAAC,CACF,CAAA;QACD,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,SAAoB,EACpB,GAA2B,EAC3B,MAAiB,EACjB,wBAAmD,EACnD,kBAA8D,EAC9D,gBAAkC,EAClC,cAA8B,EAC9B,YAA0B,EAC1B,WAA8B,EAC9B,UAAsB,EACtB,WAAwB,EACxB,MAAqB,EACrB,kBAAgD,EAChB,EAAE;IAClC,MAAM,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;IAEhE,MAAM,YAAY,GAA0B;QAC1C,WAAW;QACX,UAAU;KACX,CAAA;IAED,MAAM,IAAI,GAAG,cAAc,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;IACpD,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,CAAA;IAC1C,MAAM,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAA;IAClD,MAAM,UAAU,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;IACxC,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC,CAAA;IAC5C,MAAM,qBAAqB,GAAG,0BAA0B,CAAC,YAAY,CAAC,CAAA;IACtE,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,CAAA;IAE1C,MAAM,UAAU,GAAG,MAAM,eAAe,CACtC,GAAG,EACH,SAAS,EACT,WAAW,CAAC,UAAU,EACtB,gBAAgB,EAChB,cAAc,CACf,CAAA;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,WAAW,CAAC,SAAS,SAAS,iBAAiB,CAAC,CAAA;IAC5D,CAAC;IAED,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,iBAAiB,SAAS,eAAe,CAAC,CAAA;IAEpE,CAAC,CAAC,IAAI,CACJ,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;SAC5B,MAAM,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;QAC/B,OAAO,CAAC,GAAG,SAAS,EAAE,SAAS,CAAC,cAAc,EAAE,CAAC,CAAA;IACnD,CAAC,EAAE,IAAI,KAAK,EAAY,CAAC;SACxB,IAAI,EAAE,CACV;SACE,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;SACrC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QACvB,oBAAoB,CAClB,WAAW,EACX,wBAAwB,EACxB,kBAAkB,CACnB,CAAA;IACH,CAAC,CAAC,CAAA;IAEJ,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAClD,WAAW,EACX,wBAAwB,EACxB,kBAAkB,CACnB,CAAA;IAED,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,OAAO;SACJ,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACjB,mBAAmB,CAAC,WAAW,EAAE,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC,CAC3D;SACA,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC,CAAC;SACtE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QACpB,MAAM,SAAS,GAAG,GAAG,SAAS,IAAI,MAAM,EAAE,CAAA;QAC1C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAEjD,MAAM,OAAO,GAAG,MAAM,iBAAiB,CACrC,GAAG,EACH,cAAc,EACd,SAAS,EACT,UAAU,CAAC,OAAO,EAClB,WAAW,CAAC,OAAO,CACpB,CAAA;QAED,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;QACpC,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;QACpC,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,CAAA;QAC1C,MAAM,YAAY,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;QAEpD,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,MAAM,sBAAsB,CAC1D,SAAS,EACT,MAAM,EACN,kBAAkB,EAClB,WAAW,CAAC,YAAY,CACzB,CAAA;QAED,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAA;QACb,CAAC;QAED,MAAM,KAAK,GAAqB;YAC9B,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,YAAY;YACZ,kBAAkB;YAClB,IAAI;YACJ,MAAM;YACN,UAAU;YACV,WAAW;YACX,iBAAiB;YACjB,MAAM;YACN,QAAQ;YACR,qBAAqB;YACrB,UAAU;YACV,IAAI,EAAE,SAAS;YACf,cAAc,EAAE,UAAU,CAAC,IAAI;YAC/B,OAAO;YACP,IAAI;YACJ,OAAO;YACP,YAAY;YACZ,UAAU,EAAE,EAAE;YACd,IAAI;YACJ,MAAM,EAAE,WAAW;YACnB,OAAO;SACR,CAAA;QAED,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QACxD,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QACxD,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAA;QAElD,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC,CAAC,CACL,CAAA;AACH,CAAC,CAAA"}
@@ -1,42 +1,42 @@
1
- import { StackCapability, StackPolicyBody } from "../../aws/cloudformation/model.js";
1
+ import { AnySchema } from "joi";
2
+ import { StackName } from "../../aws/cloudformation/model.js";
2
3
  import { InternalCredentialManager } from "../../aws/common/credentials.js";
3
4
  import { AccountId, IamRoleArn, Region, TagKey } from "../../aws/common/model.js";
4
5
  import { CommandPath } from "../../command/command-model.js";
5
- import { TemplateBucketConfig, TimeoutConfig } from "../../common/model.js";
6
- import { StackConfig } from "../../config/stack-config.js";
6
+ import { TimeoutConfig, Vars } from "../../common/model.js";
7
+ import { BaseStackConfig } from "../../config/stack-config.js";
7
8
  import { InternalCommandContext } from "../../context/command-context.js";
8
9
  import { HookRegistry } from "../../hooks/hook-registry.js";
9
10
  import { HookConfig } from "../../hooks/hook.js";
10
11
  import { ResolverRegistry } from "../../resolvers/resolver-registry.js";
11
12
  import { StackGroup } from "../../stacks/stack-group.js";
12
- import { InternalStack, RawTagValue, StackPath, Template } from "../../stacks/stack.js";
13
13
  import { CommandRole, Project } from "../../takomo-core/command.js";
14
14
  import { SchemaRegistry } from "../../takomo-stacks-model/schemas.js";
15
15
  import { TkmLogger } from "../../utils/logging.js";
16
16
  import { StacksConfigRepository } from "../model.js";
17
17
  import { StackConfigNode } from "./config-tree.js";
18
18
  import { ProcessStatus } from "./process-config-tree.js";
19
+ import { InternalStack, RawTagValue, StackPath } from "../../stacks/stack.js";
20
+ import { CustomStackHandlerRegistry } from "../../custom-stacks/custom-stack-handler-registry.js";
19
21
  export interface StackPropBuilderProps {
20
- readonly stackConfig: StackConfig;
22
+ readonly stackConfig: BaseStackConfig;
21
23
  readonly stackGroup: StackGroup;
22
- readonly blueprint?: StackConfig;
24
+ readonly blueprint?: BaseStackConfig;
23
25
  }
24
- export declare const buildTemplate: ({ stackConfig, blueprint }: StackPropBuilderProps, stackPath: StackPath) => Template;
26
+ export declare const validateData: (stackPath: StackPath, schemas: ReadonlyArray<AnySchema>, data: Vars) => void;
27
+ export declare const validateTags: (stackPath: StackPath, schemas: ReadonlyArray<AnySchema>, tags: Map<string, RawTagValue>) => void;
28
+ export declare const validateName: (stackPath: StackPath, schemas: ReadonlyArray<AnySchema>, name: StackName) => void;
25
29
  export declare const buildStackName: ({ stackConfig, blueprint, stackGroup }: StackPropBuilderProps, stackPath: StackPath) => string;
26
30
  export declare const buildRegions: ({ stackConfig, blueprint, stackGroup, }: StackPropBuilderProps) => ReadonlyArray<Region>;
27
31
  export declare const buildAccountIds: ({ stackConfig, blueprint, stackGroup, }: StackPropBuilderProps) => ReadonlyArray<AccountId>;
28
32
  export declare const buildCommandRole: ({ stackConfig, blueprint, stackGroup, }: StackPropBuilderProps) => CommandRole | undefined;
29
- export declare const buildCapabilities: ({ stackConfig, blueprint, stackGroup, }: StackPropBuilderProps) => ReadonlyArray<StackCapability> | undefined;
30
33
  export declare const buildIgnore: ({ stackConfig, blueprint, stackGroup, }: StackPropBuilderProps) => boolean;
31
34
  export declare const buildObsolete: ({ stackConfig, blueprint, stackGroup, }: StackPropBuilderProps) => boolean;
32
35
  export declare const buildTerminationProtection: ({ stackConfig, blueprint, stackGroup, }: StackPropBuilderProps) => boolean;
33
- export declare const buildStackPolicy: ({ stackConfig, blueprint, stackGroup, }: StackPropBuilderProps) => StackPolicyBody | undefined;
34
36
  export declare const buildProject: ({ stackConfig, blueprint, stackGroup, }: StackPropBuilderProps) => Project | undefined;
35
37
  export declare const buildTimeout: ({ stackConfig, blueprint, stackGroup, }: StackPropBuilderProps) => TimeoutConfig;
36
- export declare const buildTemplateBucket: ({ stackConfig, blueprint, stackGroup, }: StackPropBuilderProps) => TemplateBucketConfig | undefined;
37
38
  export declare const buildDependencies: ({ stackConfig, blueprint, stackGroup, }: StackPropBuilderProps) => ReadonlyArray<StackPath>;
38
- export declare const buildStackPolicyDuringUpdate: ({ stackConfig, blueprint, stackGroup, }: StackPropBuilderProps) => StackPolicyBody | undefined;
39
39
  export declare const buildData: ({ stackConfig, blueprint, stackGroup, }: StackPropBuilderProps) => Record<string, unknown>;
40
40
  export declare const buildTags: ({ stackConfig, blueprint, stackGroup, }: StackPropBuilderProps) => Map<TagKey, RawTagValue>;
41
41
  export declare const buildHookConfigs: ({ stackConfig, blueprint, stackGroup, }: StackPropBuilderProps) => ReadonlyArray<HookConfig>;
42
- export declare const buildStack: (ctx: InternalCommandContext, logger: TkmLogger, defaultCredentialManager: InternalCredentialManager, credentialManagers: Map<IamRoleArn, InternalCredentialManager>, resolverRegistry: ResolverRegistry, schemaRegistry: SchemaRegistry, hookRegistry: HookRegistry, node: StackConfigNode, stackGroup: StackGroup, commandPath: CommandPath, status: ProcessStatus, configRepository: StacksConfigRepository) => Promise<InternalStack[]>;
42
+ export declare const buildStack: (ctx: InternalCommandContext, logger: TkmLogger, defaultCredentialManager: InternalCredentialManager, credentialManagers: Map<IamRoleArn, InternalCredentialManager>, resolverRegistry: ResolverRegistry, schemaRegistry: SchemaRegistry, hookRegistry: HookRegistry, node: StackConfigNode, stackGroup: StackGroup, commandPath: CommandPath, status: ProcessStatus, configRepository: StacksConfigRepository, customStackHandlerRegistry: CustomStackHandlerRegistry) => Promise<InternalStack[]>;
@@ -1,43 +1,16 @@
1
- import * as R from "ramda";
2
- import { createAwsSchemas } from "../../schema/aws-schema.js";
3
- import { createStack, normalizeStackPath, } from "../../stacks/stack.js";
4
1
  import { StackPropertyDefaults } from "../../takomo-stacks-model/constants.js";
5
- import { isWithinCommandPath } from "../../takomo-stacks-model/util.js";
6
2
  import { mapToObject, mergeArrays, mergeMaps } from "../../utils/collections.js";
7
3
  import { TakomoError } from "../../utils/errors.js";
8
4
  import { merge } from "../../utils/objects.js";
9
- import { validate } from "../../utils/validation.js";
10
5
  import { createVariablesForStackConfigFile } from "./create-variables-for-stack-config-file.js";
11
- import { getCredentialManager } from "./get-credential-provider.js";
12
- import { initializeHooks } from "./hooks.js";
13
6
  import { makeStackName } from "./make-stack-name.js";
14
- import { mergeStackSchemas } from "./merge-stack-schemas.js";
15
- import { buildParameters } from "./parameters.js";
16
- const buildTemplateInternal = (stackPath, { inline, filename, dynamic }) => {
17
- if (inline) {
18
- return {
19
- dynamic,
20
- inline,
21
- };
22
- }
23
- return {
24
- dynamic,
25
- filename: filename ?? stackPath.slice(1),
26
- };
27
- };
28
- export const buildTemplate = ({ stackConfig, blueprint }, stackPath) => {
29
- if (stackConfig.template) {
30
- return buildTemplateInternal(stackPath, stackConfig.template);
31
- }
32
- if (blueprint?.template) {
33
- return buildTemplateInternal(stackPath, blueprint.template);
34
- }
35
- return {
36
- dynamic: true,
37
- filename: stackPath.slice(1),
38
- };
39
- };
40
- const validateData = (stackPath, schemas, data) => {
7
+ import { normalizeStackPath, } from "../../stacks/stack.js";
8
+ import { isStandardStackConfig } from "../../config/standard-stack-config.js";
9
+ import { buildStandardStack } from "./build-standard-stack.js";
10
+ import { isCustomStackConfig } from "../../config/custom-stack-config.js";
11
+ import { buildCustomStack } from "./build-custom-stack.js";
12
+ import { exhaustiveCheck } from "../../utils/exhaustive-check.js";
13
+ export const validateData = (stackPath, schemas, data) => {
41
14
  schemas.forEach((schema) => {
42
15
  const { error } = schema.validate(data, {
43
16
  abortEarly: false,
@@ -49,7 +22,7 @@ const validateData = (stackPath, schemas, data) => {
49
22
  }
50
23
  });
51
24
  };
52
- const validateTags = (stackPath, schemas, tags) => {
25
+ export const validateTags = (stackPath, schemas, tags) => {
53
26
  schemas.forEach((schema) => {
54
27
  const tagsObject = mapToObject(tags);
55
28
  const { error } = schema.validate(tagsObject, {
@@ -62,7 +35,7 @@ const validateTags = (stackPath, schemas, tags) => {
62
35
  }
63
36
  });
64
37
  };
65
- const validateName = (stackPath, schemas, name) => {
38
+ export const validateName = (stackPath, schemas, name) => {
66
39
  schemas.forEach((schema) => {
67
40
  const { error } = schema
68
41
  .label("name")
@@ -87,29 +60,20 @@ export const buildRegions = ({ stackConfig, blueprint, stackGroup, }) => {
87
60
  };
88
61
  export const buildAccountIds = ({ stackConfig, blueprint, stackGroup, }) => stackConfig.accountIds ?? blueprint?.accountIds ?? stackGroup.accountIds;
89
62
  export const buildCommandRole = ({ stackConfig, blueprint, stackGroup, }) => stackConfig.commandRole ?? blueprint?.commandRole ?? stackGroup.commandRole;
90
- export const buildCapabilities = ({ stackConfig, blueprint, stackGroup, }) => stackConfig.capabilities ?? blueprint?.capabilities ?? stackGroup.capabilities;
91
63
  export const buildIgnore = ({ stackConfig, blueprint, stackGroup, }) => stackConfig.ignore ?? blueprint?.ignore ?? stackGroup.ignore;
92
64
  export const buildObsolete = ({ stackConfig, blueprint, stackGroup, }) => stackConfig.obsolete ?? blueprint?.obsolete ?? stackGroup.obsolete;
93
65
  export const buildTerminationProtection = ({ stackConfig, blueprint, stackGroup, }) => stackConfig.terminationProtection ??
94
66
  blueprint?.terminationProtection ??
95
67
  stackGroup.terminationProtection;
96
- export const buildStackPolicy = ({ stackConfig, blueprint, stackGroup, }) => stackConfig.stackPolicy ?? blueprint?.stackPolicy ?? stackGroup.stackPolicy;
97
68
  export const buildProject = ({ stackConfig, blueprint, stackGroup, }) => stackConfig.project ?? blueprint?.project ?? stackGroup.project;
98
69
  export const buildTimeout = ({ stackConfig, blueprint, stackGroup, }) => stackConfig.timeout ??
99
70
  blueprint?.timeout ??
100
71
  stackGroup.timeout ??
101
72
  StackPropertyDefaults.timeout();
102
- export const buildTemplateBucket = ({ stackConfig, blueprint, stackGroup, }) => stackConfig.templateBucket ??
103
- blueprint?.templateBucket ??
104
- stackGroup.templateBucket ??
105
- StackPropertyDefaults.templateBucket();
106
73
  export const buildDependencies = ({ stackConfig, blueprint, stackGroup, }) => {
107
74
  const depends = stackConfig.depends ?? blueprint?.depends ?? StackPropertyDefaults.depends();
108
75
  return depends.map((d) => normalizeStackPath(stackGroup.path, d));
109
76
  };
110
- export const buildStackPolicyDuringUpdate = ({ stackConfig, blueprint, stackGroup, }) => stackConfig.stackPolicyDuringUpdate ??
111
- blueprint?.stackPolicyDuringUpdate ??
112
- stackGroup.stackPolicyDuringUpdate;
113
77
  export const buildData = ({ stackConfig, blueprint, stackGroup, }) => merge(stackGroup.data, blueprint?.data ?? {}, stackConfig.data);
114
78
  export const buildTags = ({ stackConfig, blueprint, stackGroup, }) => {
115
79
  const inheritTags = stackConfig.inheritTags ??
@@ -132,103 +96,18 @@ export const buildHookConfigs = ({ stackConfig, blueprint, stackGroup, }) => {
132
96
  equals: (a, b) => a.name === b.name,
133
97
  });
134
98
  };
135
- export const buildStack = async (ctx, logger, defaultCredentialManager, credentialManagers, resolverRegistry, schemaRegistry, hookRegistry, node, stackGroup, commandPath, status, configRepository) => {
136
- const { stackName } = createAwsSchemas({ regions: ctx.regions });
137
- logger.debug(`Build stack with path '${node.path}'`);
99
+ export const buildStack = async (ctx, logger, defaultCredentialManager, credentialManagers, resolverRegistry, schemaRegistry, hookRegistry, node, stackGroup, commandPath, status, configRepository, customStackHandlerRegistry) => {
138
100
  const stackPath = node.path;
101
+ logger.debug(`Build stack with path '${stackPath}'`);
139
102
  const stackVariables = createVariablesForStackConfigFile(ctx.variables, stackGroup, stackPath);
140
103
  const stackConfig = await node.getConfig(stackVariables);
141
- const blueprint = stackConfig.blueprint
142
- ? await configRepository.getBlueprint(stackConfig.blueprint, stackVariables)
143
- : undefined;
144
- const builderProps = {
145
- stackConfig,
146
- blueprint,
147
- stackGroup,
148
- };
149
- const hookConfigs = buildHookConfigs(builderProps);
150
- const name = buildStackName(builderProps, stackPath);
151
- const regions = buildRegions(builderProps);
152
- const commandRole = buildCommandRole(builderProps);
153
- const template = buildTemplate(builderProps, stackPath);
154
- const accountIds = buildAccountIds(builderProps);
155
- const capabilities = buildCapabilities(builderProps);
156
- const ignore = buildIgnore(builderProps);
157
- const obsolete = buildObsolete(builderProps);
158
- const terminationProtection = buildTerminationProtection(builderProps);
159
- const stackPolicy = buildStackPolicy(builderProps);
160
- const stackPolicyDuringUpdate = buildStackPolicyDuringUpdate(builderProps);
161
- const project = buildProject(builderProps);
162
- const parameters = await buildParameters(ctx, stackPath, mergeMaps(blueprint?.parameters ?? new Map(), stackConfig.parameters), resolverRegistry, schemaRegistry);
163
- if (regions.length === 0) {
164
- throw new TakomoError(`Stack ${stackPath} has no regions`);
104
+ if (isCustomStackConfig(stackConfig)) {
105
+ const customStackHandler = customStackHandlerRegistry.getHandler(stackConfig.customType);
106
+ return buildCustomStack(stackPath, ctx, logger, defaultCredentialManager, credentialManagers, resolverRegistry, schemaRegistry, hookRegistry, stackConfig, stackGroup, commandPath, status, customStackHandler);
165
107
  }
166
- validate(stackName, name, `Name of stack ${stackPath} is not valid`);
167
- R.uniq(Array.from(parameters.values())
168
- .reduce((collected, parameter) => {
169
- return [...collected, parameter.getIamRoleArns()];
170
- }, new Array())
171
- .flat())
172
- .map((iamRoleArn) => ({ iamRoleArn }))
173
- .forEach((commandRole) => {
174
- getCredentialManager(commandRole, defaultCredentialManager, credentialManagers);
175
- });
176
- const hooks = await initializeHooks(hookConfigs, hookRegistry);
177
- const credentialManager = await getCredentialManager(commandRole, defaultCredentialManager, credentialManagers);
178
- return await Promise.all(regions
179
- .filter((region) => isWithinCommandPath(commandPath, `${stackPath}/${region}`))
180
- .filter((region) => !status.isStackProcessed(`${stackPath}/${region}`))
181
- .map(async (region) => {
182
- const exactPath = `${stackPath}/${region}`;
183
- const stackLogger = logger.childLogger(exactPath);
184
- const getCloudFormationClient = async () => {
185
- const identity = await credentialManager.getCallerIdentity();
186
- return ctx.awsClientProvider.createCloudFormationClient({
187
- credentialProvider: credentialManager.getCredentialProvider(),
188
- region,
189
- identity,
190
- id: exactPath,
191
- logger: stackLogger,
192
- });
193
- };
194
- const schemas = await mergeStackSchemas(ctx, schemaRegistry, exactPath, stackGroup.schemas, stackConfig.schemas, blueprint?.schemas);
195
- const tags = buildTags(builderProps);
196
- const data = buildData(builderProps);
197
- const timeout = buildTimeout(builderProps);
198
- const templateBucket = buildTemplateBucket(builderProps);
199
- const dependencies = buildDependencies(builderProps);
200
- const props = {
201
- name,
202
- template,
203
- region,
204
- parameters,
205
- commandRole,
206
- credentialManager,
207
- hooks,
208
- ignore,
209
- obsolete,
210
- terminationProtection,
211
- capabilities,
212
- accountIds,
213
- getCloudFormationClient,
214
- stackPolicy,
215
- stackPolicyDuringUpdate,
216
- path: exactPath,
217
- stackGroupPath: stackGroup.path,
218
- project,
219
- tags,
220
- timeout,
221
- dependencies,
222
- dependents: [],
223
- templateBucket,
224
- data,
225
- logger: stackLogger,
226
- schemas,
227
- };
228
- validateData(exactPath, schemas?.data ?? [], props.data);
229
- validateTags(exactPath, schemas?.tags ?? [], props.tags);
230
- validateName(exactPath, schemas?.name ?? [], name);
231
- return createStack(props);
232
- }));
108
+ if (isStandardStackConfig(stackConfig)) {
109
+ return buildStandardStack(stackPath, ctx, logger, defaultCredentialManager, credentialManagers, resolverRegistry, schemaRegistry, hookRegistry, stackConfig, stackGroup, commandPath, status, configRepository);
110
+ }
111
+ return exhaustiveCheck(stackConfig);
233
112
  };
234
113
  //# sourceMappingURL=build-stack.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-stack.js","sourceRoot":"","sources":["../../../src/takomo-stacks-context/config/build-stack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-stack.js","sourceRoot":"","sources":["../../../src/takomo-stacks-context/config/build-stack.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ import { collectStacks } from "./collect-stacks.js";
11
11
  import { coreHookProviders } from "./hooks.js";
12
12
  import { processConfigTree } from "./process-config-tree.js";
13
13
  import { inMemoryCache } from "../../caches/cache.js";
14
+ import { coreCustomStackHandlerProviders, createCustomStackHandlerRegistry, } from "../../custom-stacks/custom-stack-handler-registry.js";
14
15
  export const validateCommandPath = (configTree, commandPath) => {
15
16
  if (!commandPath || commandPath === ROOT_STACK_GROUP_PATH) {
16
17
  return;
@@ -46,10 +47,14 @@ export const buildStacksContext = async ({ ctx, logger, credentialManager, comma
46
47
  await resolverRegistry.registerProviderFromNpmPackage(config);
47
48
  }
48
49
  const schemaRegistry = createSchemaRegistry(logger);
49
- await configRepository.loadExtensions(resolverRegistry, hookRegistry, schemaRegistry);
50
+ const customStackHandlerRegistry = createCustomStackHandlerRegistry({
51
+ logger,
52
+ });
53
+ coreCustomStackHandlerProviders().forEach((p) => customStackHandlerRegistry.registerHandler(p));
54
+ await configRepository.loadExtensions(resolverRegistry, hookRegistry, schemaRegistry, customStackHandlerRegistry);
50
55
  const credentialManagers = new Map();
51
56
  const templateEngine = configRepository.templateEngine;
52
- const rootStackGroup = await processConfigTree(ctx, logger, credentialManager, credentialManagers, resolverRegistry, schemaRegistry, hookRegistry, commandPath ?? ROOT_STACK_GROUP_PATH, configTree, configRepository);
57
+ const rootStackGroup = await processConfigTree(ctx, logger, credentialManager, credentialManagers, resolverRegistry, schemaRegistry, hookRegistry, commandPath ?? ROOT_STACK_GROUP_PATH, configTree, configRepository, customStackHandlerRegistry);
53
58
  const stackGroups = collectStackGroups(rootStackGroup);
54
59
  const stacks = collectStacks(stackGroups);
55
60
  const stacksByPath = arrayToMap(stacks, (s) => s.path);
@@ -61,6 +66,7 @@ export const buildStacksContext = async ({ ctx, logger, credentialManager, comma
61
66
  credentialManager,
62
67
  templateEngine,
63
68
  rootStackGroup,
69
+ customStackHandlerRegistry,
64
70
  stacks,
65
71
  concurrentStacks: 20,
66
72
  cache: inMemoryCache(),
@@ -1 +1 @@
1
- {"version":3,"file":"build-stacks-context.js","sourceRoot":"","sources":["../../../src/takomo-stacks-context/config/build-stacks-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-stacks-context.js","sourceRoot":"","sources":["../../../src/takomo-stacks-context/config/build-stacks-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { StackCapability, StackPolicyBody } from "../../aws/cloudformation/model.js";
2
+ import { InternalCredentialManager } from "../../aws/common/credentials.js";
3
+ import { IamRoleArn } from "../../aws/common/model.js";
4
+ import { CommandPath } from "../../command/command-model.js";
5
+ import { TemplateBucketConfig } from "../../common/model.js";
6
+ import { InternalCommandContext } from "../../context/command-context.js";
7
+ import { HookRegistry } from "../../hooks/hook-registry.js";
8
+ import { ResolverRegistry } from "../../resolvers/resolver-registry.js";
9
+ import { StackGroup } from "../../stacks/stack-group.js";
10
+ import { InternalStandardStack, Template } from "../../stacks/standard-stack.js";
11
+ import { SchemaRegistry } from "../../takomo-stacks-model/schemas.js";
12
+ import { TkmLogger } from "../../utils/logging.js";
13
+ import { StacksConfigRepository } from "../model.js";
14
+ import { ProcessStatus } from "./process-config-tree.js";
15
+ import { StackPath } from "../../stacks/stack.js";
16
+ import { StandardStackConfig } from "../../config/standard-stack-config.js";
17
+ export interface StandardStackPropBuilderProps {
18
+ readonly stackConfig: StandardStackConfig;
19
+ readonly stackGroup: StackGroup;
20
+ readonly blueprint?: StandardStackConfig;
21
+ }
22
+ export declare const buildTemplate: ({ stackConfig, blueprint }: StandardStackPropBuilderProps, stackPath: StackPath) => Template;
23
+ export declare const buildCapabilities: ({ stackConfig, blueprint, stackGroup, }: StandardStackPropBuilderProps) => ReadonlyArray<StackCapability> | undefined;
24
+ export declare const buildStackPolicy: ({ stackConfig, blueprint, stackGroup, }: StandardStackPropBuilderProps) => StackPolicyBody | undefined;
25
+ export declare const buildTemplateBucket: ({ stackConfig, blueprint, stackGroup, }: StandardStackPropBuilderProps) => TemplateBucketConfig | undefined;
26
+ export declare const buildStackPolicyDuringUpdate: ({ stackConfig, blueprint, stackGroup, }: StandardStackPropBuilderProps) => StackPolicyBody | undefined;
27
+ export declare const buildStandardStack: (stackPath: StackPath, ctx: InternalCommandContext, logger: TkmLogger, defaultCredentialManager: InternalCredentialManager, credentialManagers: Map<IamRoleArn, InternalCredentialManager>, resolverRegistry: ResolverRegistry, schemaRegistry: SchemaRegistry, hookRegistry: HookRegistry, stackConfig: StandardStackConfig, stackGroup: StackGroup, commandPath: CommandPath, status: ProcessStatus, configRepository: StacksConfigRepository) => Promise<InternalStandardStack[]>;