@kensio/yulin 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +2 -2
  2. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts.map +1 -1
  3. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +10 -6
  4. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js.map +1 -1
  5. package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts.map +1 -1
  6. package/dist/service/aws/factory/sim-aws-account-service-cache.js +2 -0
  7. package/dist/service/aws/factory/sim-aws-account-service-cache.js.map +1 -1
  8. package/dist/service/cloudformation/cdk/s3/bucket-notifications/configuration/sim-cdk-bucket-notification-configuration.d.ts +2 -0
  9. package/dist/service/cloudformation/cdk/s3/bucket-notifications/configuration/sim-cdk-bucket-notification-configuration.d.ts.map +1 -1
  10. package/dist/service/cloudformation/cdk/s3/bucket-notifications/configuration/sim-cdk-bucket-notification-configuration.js +15 -1
  11. package/dist/service/cloudformation/cdk/s3/bucket-notifications/configuration/sim-cdk-bucket-notification-configuration.js.map +1 -1
  12. package/dist/service/cloudformation/template/condition/sim-cfn-condition-comparison.d.ts +27 -0
  13. package/dist/service/cloudformation/template/condition/sim-cfn-condition-comparison.d.ts.map +1 -0
  14. package/dist/service/cloudformation/template/condition/sim-cfn-condition-comparison.js +44 -0
  15. package/dist/service/cloudformation/template/condition/sim-cfn-condition-comparison.js.map +1 -0
  16. package/dist/service/cloudformation/template/condition/sim-cfn-condition-evaluator.d.ts +36 -0
  17. package/dist/service/cloudformation/template/condition/sim-cfn-condition-evaluator.d.ts.map +1 -0
  18. package/dist/service/cloudformation/template/condition/sim-cfn-condition-evaluator.js +68 -0
  19. package/dist/service/cloudformation/template/condition/sim-cfn-condition-evaluator.js.map +1 -0
  20. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts +45 -0
  21. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts.map +1 -0
  22. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js +80 -0
  23. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js.map +1 -0
  24. package/dist/service/cloudformation/template/condition/sim-cfn-conditions.d.ts +28 -0
  25. package/dist/service/cloudformation/template/condition/sim-cfn-conditions.d.ts.map +1 -0
  26. package/dist/service/cloudformation/template/condition/sim-cfn-conditions.js +29 -0
  27. package/dist/service/cloudformation/template/condition/sim-cfn-conditions.js.map +1 -0
  28. package/dist/service/cloudformation/template/condition/sim-cfn-resource-conditions.d.ts +46 -0
  29. package/dist/service/cloudformation/template/condition/sim-cfn-resource-conditions.d.ts.map +1 -0
  30. package/dist/service/cloudformation/template/condition/sim-cfn-resource-conditions.js +94 -0
  31. package/dist/service/cloudformation/template/condition/sim-cfn-resource-conditions.js.map +1 -0
  32. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts +0 -1
  33. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts.map +1 -1
  34. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js +2 -14
  35. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js.map +1 -1
  36. package/dist/service/cloudformation/template/node/fn/if/sim-cfn-fn-if.d.ts +31 -0
  37. package/dist/service/cloudformation/template/node/fn/if/sim-cfn-fn-if.d.ts.map +1 -0
  38. package/dist/service/cloudformation/template/node/fn/if/sim-cfn-fn-if.js +52 -0
  39. package/dist/service/cloudformation/template/node/fn/if/sim-cfn-fn-if.js.map +1 -0
  40. package/dist/service/cloudformation/template/node/fn/select/sim-cfn-fn-select.d.ts +39 -0
  41. package/dist/service/cloudformation/template/node/fn/select/sim-cfn-fn-select.d.ts.map +1 -0
  42. package/dist/service/cloudformation/template/node/fn/select/sim-cfn-fn-select.js +82 -0
  43. package/dist/service/cloudformation/template/node/fn/select/sim-cfn-fn-select.js.map +1 -0
  44. package/dist/service/cloudformation/template/node/fn/split/sim-cfn-fn-split.d.ts +31 -0
  45. package/dist/service/cloudformation/template/node/fn/split/sim-cfn-fn-split.d.ts.map +1 -0
  46. package/dist/service/cloudformation/template/node/fn/split/sim-cfn-fn-split.js +45 -0
  47. package/dist/service/cloudformation/template/node/fn/split/sim-cfn-fn-split.js.map +1 -0
  48. package/dist/service/cloudformation/template/node/sim-cfn-list.d.ts +1 -1
  49. package/dist/service/cloudformation/template/node/sim-cfn-list.d.ts.map +1 -1
  50. package/dist/service/cloudformation/template/node/sim-cfn-list.js +3 -2
  51. package/dist/service/cloudformation/template/node/sim-cfn-list.js.map +1 -1
  52. package/dist/service/cloudformation/template/node/sim-cfn-object.d.ts.map +1 -1
  53. package/dist/service/cloudformation/template/node/sim-cfn-object.js +5 -1
  54. package/dist/service/cloudformation/template/node/sim-cfn-object.js.map +1 -1
  55. package/dist/service/cloudformation/template/parse/fn/if/sim-cfn-fn-if-parser.d.ts +19 -0
  56. package/dist/service/cloudformation/template/parse/fn/if/sim-cfn-fn-if-parser.d.ts.map +1 -0
  57. package/dist/service/cloudformation/template/parse/fn/if/sim-cfn-fn-if-parser.js +33 -0
  58. package/dist/service/cloudformation/template/parse/fn/if/sim-cfn-fn-if-parser.js.map +1 -0
  59. package/dist/service/cloudformation/template/parse/fn/select/sim-cfn-fn-select-parser.d.ts +26 -0
  60. package/dist/service/cloudformation/template/parse/fn/select/sim-cfn-fn-select-parser.d.ts.map +1 -0
  61. package/dist/service/cloudformation/template/parse/fn/select/sim-cfn-fn-select-parser.js +35 -0
  62. package/dist/service/cloudformation/template/parse/fn/select/sim-cfn-fn-select-parser.js.map +1 -0
  63. package/dist/service/cloudformation/template/parse/fn/sim-cfn-function-parser.d.ts +3 -0
  64. package/dist/service/cloudformation/template/parse/fn/sim-cfn-function-parser.d.ts.map +1 -1
  65. package/dist/service/cloudformation/template/parse/fn/sim-cfn-function-parser.js +18 -0
  66. package/dist/service/cloudformation/template/parse/fn/sim-cfn-function-parser.js.map +1 -1
  67. package/dist/service/cloudformation/template/parse/fn/split/sim-cfn-fn-split-parser.d.ts +25 -0
  68. package/dist/service/cloudformation/template/parse/fn/split/sim-cfn-fn-split-parser.d.ts.map +1 -0
  69. package/dist/service/cloudformation/template/parse/fn/split/sim-cfn-fn-split-parser.js +36 -0
  70. package/dist/service/cloudformation/template/parse/fn/split/sim-cfn-fn-split-parser.js.map +1 -0
  71. package/dist/service/cloudformation/template/resolve/sim-cfn-resolve-context.d.ts +14 -4
  72. package/dist/service/cloudformation/template/resolve/sim-cfn-resolve-context.d.ts.map +1 -1
  73. package/dist/service/cloudformation/template/resolve/sim-cfn-resolve-context.js +7 -5
  74. package/dist/service/cloudformation/template/resolve/sim-cfn-resolve-context.js.map +1 -1
  75. package/dist/service/cloudformation/template/sim-cfn-template-body-validator.d.ts.map +1 -1
  76. package/dist/service/cloudformation/template/sim-cfn-template-body-validator.js +4 -0
  77. package/dist/service/cloudformation/template/sim-cfn-template-body-validator.js.map +1 -1
  78. package/dist/service/cloudformation/template/sim-cfn-template.d.ts +14 -0
  79. package/dist/service/cloudformation/template/sim-cfn-template.d.ts.map +1 -1
  80. package/dist/service/cloudformation/template/sim-cfn-template.js +44 -12
  81. package/dist/service/cloudformation/template/sim-cfn-template.js.map +1 -1
  82. package/dist/service/cloudformation/template/value/sim-cfn-template-value-resolver.d.ts +20 -0
  83. package/dist/service/cloudformation/template/value/sim-cfn-template-value-resolver.d.ts.map +1 -1
  84. package/dist/service/cloudformation/template/value/sim-cfn-template-value-resolver.js +32 -2
  85. package/dist/service/cloudformation/template/value/sim-cfn-template-value-resolver.js.map +1 -1
  86. package/dist/service/cloudformation/template/value/sim-cfn-unresolved-expression.d.ts +11 -0
  87. package/dist/service/cloudformation/template/value/sim-cfn-unresolved-expression.d.ts.map +1 -0
  88. package/dist/service/cloudformation/template/value/sim-cfn-unresolved-expression.js +21 -0
  89. package/dist/service/cloudformation/template/value/sim-cfn-unresolved-expression.js.map +1 -0
  90. package/dist/service/cloudformation/template/value/sim-cfn-value-path.d.ts +22 -0
  91. package/dist/service/cloudformation/template/value/sim-cfn-value-path.d.ts.map +1 -0
  92. package/dist/service/cloudformation/template/value/sim-cfn-value-path.js +92 -0
  93. package/dist/service/cloudformation/template/value/sim-cfn-value-path.js.map +1 -0
  94. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +7 -0
  95. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts.map +1 -1
  96. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +2 -0
  97. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts.map +1 -1
  98. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js +1 -1
  99. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js.map +1 -1
  100. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.d.ts +10 -1
  101. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.d.ts.map +1 -1
  102. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.js +21 -1
  103. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.js.map +1 -1
  104. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.d.ts +24 -0
  105. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.d.ts.map +1 -0
  106. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.factory.d.ts +7 -0
  107. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.factory.d.ts.map +1 -0
  108. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.factory.js +38 -0
  109. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.factory.js.map +1 -0
  110. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.js +2 -0
  111. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.js.map +1 -0
  112. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +17 -0
  113. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts.map +1 -0
  114. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +37 -0
  115. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js.map +1 -0
  116. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.d.ts +38 -0
  117. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.d.ts.map +1 -0
  118. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +45 -0
  119. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js.map +1 -0
  120. package/dist/service/cloudfront/sim-cloudfront.d.ts +3 -0
  121. package/dist/service/cloudfront/sim-cloudfront.d.ts.map +1 -1
  122. package/dist/service/cloudfront/sim-cloudfront.js +4 -1
  123. package/dist/service/cloudfront/sim-cloudfront.js.map +1 -1
  124. package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.d.ts +4 -0
  125. package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.d.ts.map +1 -1
  126. package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.js +2 -0
  127. package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.js.map +1 -1
  128. package/dist/service/dynamodb/command/table/sim-dynamodb-create-table.d.ts +6 -0
  129. package/dist/service/dynamodb/command/table/sim-dynamodb-create-table.d.ts.map +1 -1
  130. package/dist/service/dynamodb/command/table/sim-dynamodb-create-table.js +11 -0
  131. package/dist/service/dynamodb/command/table/sim-dynamodb-create-table.js.map +1 -1
  132. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.d.ts +6 -5
  133. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.d.ts.map +1 -1
  134. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.js +6 -16
  135. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.js.map +1 -1
  136. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.d.ts +4 -4
  137. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.d.ts.map +1 -1
  138. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.js +4 -9
  139. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.js.map +1 -1
  140. package/dist/service/dynamodb/command/table/table.command.d.ts +2 -1
  141. package/dist/service/dynamodb/command/table/table.command.d.ts.map +1 -1
  142. package/dist/service/dynamodb/command/table/table.types.d.ts +4 -7
  143. package/dist/service/dynamodb/command/table/table.types.d.ts.map +1 -1
  144. package/dist/service/dynamodb/sim-dynamodb.d.ts +42 -60
  145. package/dist/service/dynamodb/sim-dynamodb.d.ts.map +1 -1
  146. package/dist/service/dynamodb/sim-dynamodb.js +48 -60
  147. package/dist/service/dynamodb/sim-dynamodb.js.map +1 -1
  148. package/dist/service/dynamodb/stream/sim-dynamodb-item-change.d.ts +34 -0
  149. package/dist/service/dynamodb/stream/sim-dynamodb-item-change.d.ts.map +1 -0
  150. package/dist/service/dynamodb/stream/sim-dynamodb-item-change.js +2 -0
  151. package/dist/service/dynamodb/stream/sim-dynamodb-item-change.js.map +1 -0
  152. package/dist/service/dynamodb/stream/sim-dynamodb-stream-activity.d.ts +42 -0
  153. package/dist/service/dynamodb/stream/sim-dynamodb-stream-activity.d.ts.map +1 -0
  154. package/dist/service/dynamodb/stream/sim-dynamodb-stream-activity.js +35 -0
  155. package/dist/service/dynamodb/stream/sim-dynamodb-stream-activity.js.map +1 -0
  156. package/dist/service/dynamodb/stream/sim-dynamodb-stream-arn.d.ts +22 -0
  157. package/dist/service/dynamodb/stream/sim-dynamodb-stream-arn.d.ts.map +1 -0
  158. package/dist/service/dynamodb/stream/sim-dynamodb-stream-arn.js +30 -0
  159. package/dist/service/dynamodb/stream/sim-dynamodb-stream-arn.js.map +1 -0
  160. package/dist/service/dynamodb/stream/sim-dynamodb-stream-images.d.ts +22 -0
  161. package/dist/service/dynamodb/stream/sim-dynamodb-stream-images.d.ts.map +1 -0
  162. package/dist/service/dynamodb/stream/sim-dynamodb-stream-images.js +27 -0
  163. package/dist/service/dynamodb/stream/sim-dynamodb-stream-images.js.map +1 -0
  164. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-keys.d.ts +15 -0
  165. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-keys.d.ts.map +1 -0
  166. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-keys.js +25 -0
  167. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-keys.js.map +1 -0
  168. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-size.d.ts +11 -0
  169. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-size.d.ts.map +1 -0
  170. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-size.js +74 -0
  171. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-size.js.map +1 -0
  172. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record.d.ts +49 -0
  173. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record.d.ts.map +1 -0
  174. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record.js +60 -0
  175. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record.js.map +1 -0
  176. package/dist/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.d.ts +18 -0
  177. package/dist/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.d.ts.map +1 -0
  178. package/dist/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.js +31 -0
  179. package/dist/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.js.map +1 -0
  180. package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard.d.ts +39 -0
  181. package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard.d.ts.map +1 -0
  182. package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard.js +64 -0
  183. package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard.js.map +1 -0
  184. package/dist/service/dynamodb/stream/sim-dynamodb-stream-specification.d.ts +28 -0
  185. package/dist/service/dynamodb/stream/sim-dynamodb-stream-specification.d.ts.map +1 -0
  186. package/dist/service/dynamodb/stream/sim-dynamodb-stream-specification.js +30 -0
  187. package/dist/service/dynamodb/stream/sim-dynamodb-stream-specification.js.map +1 -0
  188. package/dist/service/dynamodb/stream/sim-dynamodb-stream-store.d.ts +26 -0
  189. package/dist/service/dynamodb/stream/sim-dynamodb-stream-store.d.ts.map +1 -0
  190. package/dist/service/dynamodb/stream/sim-dynamodb-stream-store.js +29 -0
  191. package/dist/service/dynamodb/stream/sim-dynamodb-stream-store.js.map +1 -0
  192. package/dist/service/dynamodb/stream/sim-dynamodb-stream-update.d.ts +13 -0
  193. package/dist/service/dynamodb/stream/sim-dynamodb-stream-update.d.ts.map +1 -0
  194. package/dist/service/dynamodb/stream/sim-dynamodb-stream-update.js +48 -0
  195. package/dist/service/dynamodb/stream/sim-dynamodb-stream-update.js.map +1 -0
  196. package/dist/service/dynamodb/stream/sim-dynamodb-stream-view-type.d.ts +10 -0
  197. package/dist/service/dynamodb/stream/sim-dynamodb-stream-view-type.d.ts.map +1 -0
  198. package/dist/service/dynamodb/stream/sim-dynamodb-stream-view-type.js +38 -0
  199. package/dist/service/dynamodb/stream/sim-dynamodb-stream-view-type.js.map +1 -0
  200. package/dist/service/dynamodb/stream/sim-dynamodb-stream.d.ts +74 -0
  201. package/dist/service/dynamodb/stream/sim-dynamodb-stream.d.ts.map +1 -0
  202. package/dist/service/dynamodb/stream/sim-dynamodb-stream.js +82 -0
  203. package/dist/service/dynamodb/stream/sim-dynamodb-stream.js.map +1 -0
  204. package/dist/service/dynamodb/stream/sim-dynamodb-stream.types.d.ts +24 -0
  205. package/dist/service/dynamodb/stream/sim-dynamodb-stream.types.d.ts.map +1 -0
  206. package/dist/service/dynamodb/stream/sim-dynamodb-stream.types.js +2 -0
  207. package/dist/service/dynamodb/stream/sim-dynamodb-stream.types.js.map +1 -0
  208. package/dist/service/dynamodb/stream/sim-dynamodb-streamed-table.factory.d.ts +31 -0
  209. package/dist/service/dynamodb/stream/sim-dynamodb-streamed-table.factory.d.ts.map +1 -0
  210. package/dist/service/dynamodb/stream/sim-dynamodb-streamed-table.factory.js +45 -0
  211. package/dist/service/dynamodb/stream/sim-dynamodb-streamed-table.factory.js.map +1 -0
  212. package/dist/service/dynamodb/stream/sim-dynamodb-table-stream.d.ts +97 -0
  213. package/dist/service/dynamodb/stream/sim-dynamodb-table-stream.d.ts.map +1 -0
  214. package/dist/service/dynamodb/stream/sim-dynamodb-table-stream.js +135 -0
  215. package/dist/service/dynamodb/stream/sim-dynamodb-table-stream.js.map +1 -0
  216. package/dist/service/dynamodb/table/sim-dynamodb-table-description.d.ts.map +1 -1
  217. package/dist/service/dynamodb/table/sim-dynamodb-table-description.js +6 -0
  218. package/dist/service/dynamodb/table/sim-dynamodb-table-description.js.map +1 -1
  219. package/dist/service/dynamodb/table/sim-dynamodb-table-items.d.ts +33 -1
  220. package/dist/service/dynamodb/table/sim-dynamodb-table-items.d.ts.map +1 -1
  221. package/dist/service/dynamodb/table/sim-dynamodb-table-items.js +46 -1
  222. package/dist/service/dynamodb/table/sim-dynamodb-table-items.js.map +1 -1
  223. package/dist/service/dynamodb/table/sim-dynamodb-table-storage.d.ts +95 -0
  224. package/dist/service/dynamodb/table/sim-dynamodb-table-storage.d.ts.map +1 -0
  225. package/dist/service/dynamodb/table/sim-dynamodb-table-storage.js +120 -0
  226. package/dist/service/dynamodb/table/sim-dynamodb-table-storage.js.map +1 -0
  227. package/dist/service/dynamodb/table/sim-dynamodb-table-update.d.ts +2 -0
  228. package/dist/service/dynamodb/table/sim-dynamodb-table-update.d.ts.map +1 -1
  229. package/dist/service/dynamodb/table/sim-dynamodb-table-update.js +11 -6
  230. package/dist/service/dynamodb/table/sim-dynamodb-table-update.js.map +1 -1
  231. package/dist/service/dynamodb/table/sim-dynamodb-table.d.ts +33 -70
  232. package/dist/service/dynamodb/table/sim-dynamodb-table.d.ts.map +1 -1
  233. package/dist/service/dynamodb/table/sim-dynamodb-table.js +50 -93
  234. package/dist/service/dynamodb/table/sim-dynamodb-table.js.map +1 -1
  235. package/dist/service/dynamodb/table/sim-dynamodb-updatable-table.d.ts +6 -3
  236. package/dist/service/dynamodb/table/sim-dynamodb-updatable-table.d.ts.map +1 -1
  237. package/dist/service/dynamodb/time-to-live/sim-dynamodb-table-time-to-live.d.ts.map +1 -1
  238. package/dist/service/dynamodb/time-to-live/sim-dynamodb-table-time-to-live.js +5 -1
  239. package/dist/service/dynamodb/time-to-live/sim-dynamodb-table-time-to-live.js.map +1 -1
  240. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +5 -2
  241. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts.map +1 -1
  242. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +13 -8
  243. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js.map +1 -1
  244. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.d.ts +4 -0
  245. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.d.ts.map +1 -1
  246. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +32 -21
  247. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js.map +1 -1
  248. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.d.ts +1 -6
  249. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.d.ts.map +1 -1
  250. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.js +1 -22
  251. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.js.map +1 -1
  252. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.d.ts +2 -1
  253. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.d.ts.map +1 -1
  254. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +3 -2
  255. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js.map +1 -1
  256. package/dist/service/lambda/event-source/poll/sim-lambda-batch-item-failures.d.ts +17 -0
  257. package/dist/service/lambda/event-source/poll/sim-lambda-batch-item-failures.d.ts.map +1 -0
  258. package/dist/service/lambda/event-source/poll/sim-lambda-batch-item-failures.js +46 -0
  259. package/dist/service/lambda/event-source/poll/sim-lambda-batch-item-failures.js.map +1 -0
  260. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-batch-response.d.ts +39 -0
  261. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-batch-response.d.ts.map +1 -0
  262. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-batch-response.js +28 -0
  263. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-batch-response.js.map +1 -0
  264. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.d.ts +33 -7
  265. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.d.ts.map +1 -1
  266. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.js +7 -6
  267. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.js.map +1 -1
  268. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller-factory.d.ts +25 -0
  269. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller-factory.d.ts.map +1 -0
  270. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller-factory.js +16 -0
  271. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller-factory.js.map +1 -0
  272. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.d.ts +9 -69
  273. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.d.ts.map +1 -1
  274. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.js +1 -135
  275. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.js.map +1 -1
  276. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.d.ts +6 -30
  277. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.d.ts.map +1 -1
  278. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.js +9 -66
  279. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.js.map +1 -1
  280. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-delivery.d.ts +17 -0
  281. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-delivery.d.ts.map +1 -0
  282. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-delivery.js +17 -0
  283. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-delivery.js.map +1 -0
  284. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event-source-poller.d.ts +88 -0
  285. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event-source-poller.d.ts.map +1 -0
  286. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event-source-poller.js +132 -0
  287. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event-source-poller.js.map +1 -0
  288. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-polled-queue.d.ts +41 -0
  289. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-polled-queue.d.ts.map +1 -0
  290. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-polled-queue.js +60 -0
  291. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-polled-queue.js.map +1 -0
  292. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +23 -5
  293. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts.map +1 -1
  294. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +65 -12
  295. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js.map +1 -1
  296. package/dist/service/lambda/event-source/sim-lambda-event-source-arn.d.ts +23 -0
  297. package/dist/service/lambda/event-source/sim-lambda-event-source-arn.d.ts.map +1 -0
  298. package/dist/service/lambda/event-source/sim-lambda-event-source-arn.js +30 -0
  299. package/dist/service/lambda/event-source/sim-lambda-event-source-arn.js.map +1 -0
  300. package/dist/service/lambda/event-source/sim-lambda-event-source-batch-rules.d.ts +26 -0
  301. package/dist/service/lambda/event-source/sim-lambda-event-source-batch-rules.d.ts.map +1 -0
  302. package/dist/service/lambda/event-source/sim-lambda-event-source-batch-rules.js +35 -0
  303. package/dist/service/lambda/event-source/sim-lambda-event-source-batch-rules.js.map +1 -0
  304. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +6 -8
  305. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts.map +1 -1
  306. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +6 -9
  307. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js.map +1 -1
  308. package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.d.ts +5 -5
  309. package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.d.ts.map +1 -1
  310. package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.js +5 -5
  311. package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.js.map +1 -1
  312. package/dist/service/lambda/event-source/sim-lambda-event-source-polling-permission.d.ts +18 -0
  313. package/dist/service/lambda/event-source/sim-lambda-event-source-polling-permission.d.ts.map +1 -0
  314. package/dist/service/lambda/event-source/sim-lambda-event-source-polling-permission.js +23 -0
  315. package/dist/service/lambda/event-source/sim-lambda-event-source-polling-permission.js.map +1 -0
  316. package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.d.ts +7 -3
  317. package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.d.ts.map +1 -1
  318. package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.js +13 -21
  319. package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.js.map +1 -1
  320. package/dist/service/s3/bucket/notification/sim-s3-lambda-notification.d.ts +7 -25
  321. package/dist/service/s3/bucket/notification/sim-s3-lambda-notification.d.ts.map +1 -1
  322. package/dist/service/s3/bucket/notification/sim-s3-lambda-notification.js +10 -31
  323. package/dist/service/s3/bucket/notification/sim-s3-lambda-notification.js.map +1 -1
  324. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration-reader.d.ts +6 -10
  325. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration-reader.d.ts.map +1 -1
  326. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration-reader.js +16 -68
  327. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration-reader.js.map +1 -1
  328. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration.d.ts +17 -4
  329. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration.d.ts.map +1 -1
  330. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration.js +19 -10
  331. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration.js.map +1 -1
  332. package/dist/service/s3/bucket/notification/sim-s3-notification-ids.d.ts +9 -0
  333. package/dist/service/s3/bucket/notification/sim-s3-notification-ids.d.ts.map +1 -0
  334. package/dist/service/s3/bucket/notification/sim-s3-notification-ids.js +18 -0
  335. package/dist/service/s3/bucket/notification/sim-s3-notification-ids.js.map +1 -0
  336. package/dist/service/s3/bucket/notification/sim-s3-notification-overlap.d.ts +5 -3
  337. package/dist/service/s3/bucket/notification/sim-s3-notification-overlap.d.ts.map +1 -1
  338. package/dist/service/s3/bucket/notification/sim-s3-notification-overlap.js +3 -1
  339. package/dist/service/s3/bucket/notification/sim-s3-notification-overlap.js.map +1 -1
  340. package/dist/service/s3/bucket/notification/sim-s3-notification-properties.d.ts +19 -0
  341. package/dist/service/s3/bucket/notification/sim-s3-notification-properties.d.ts.map +1 -0
  342. package/dist/service/s3/bucket/notification/sim-s3-notification-properties.js +27 -0
  343. package/dist/service/s3/bucket/notification/sim-s3-notification-properties.js.map +1 -0
  344. package/dist/service/s3/bucket/notification/sim-s3-notification.d.ts +61 -0
  345. package/dist/service/s3/bucket/notification/sim-s3-notification.d.ts.map +1 -0
  346. package/dist/service/s3/bucket/notification/sim-s3-notification.js +50 -0
  347. package/dist/service/s3/bucket/notification/sim-s3-notification.js.map +1 -0
  348. package/dist/service/s3/bucket/notification/sim-s3-queue-notification.d.ts +21 -0
  349. package/dist/service/s3/bucket/notification/sim-s3-queue-notification.d.ts.map +1 -0
  350. package/dist/service/s3/bucket/notification/sim-s3-queue-notification.js +24 -0
  351. package/dist/service/s3/bucket/notification/sim-s3-queue-notification.js.map +1 -0
  352. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-destinations.d.ts +10 -0
  353. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-destinations.d.ts.map +1 -0
  354. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-destinations.js +31 -0
  355. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-destinations.js.map +1 -0
  356. package/dist/service/s3/cfn/bucket/notification/sim-cfn-s3-bucket-notification-configuration.d.ts +3 -0
  357. package/dist/service/s3/cfn/bucket/notification/sim-cfn-s3-bucket-notification-configuration.d.ts.map +1 -1
  358. package/dist/service/s3/cfn/bucket/notification/sim-cfn-s3-bucket-notification-configuration.js +30 -1
  359. package/dist/service/s3/cfn/bucket/notification/sim-cfn-s3-bucket-notification-configuration.js.map +1 -1
  360. package/dist/service/s3/command/get-bucket-notification-configuration/get-bucket-notification-configuration.command.d.ts +2 -1
  361. package/dist/service/s3/command/get-bucket-notification-configuration/get-bucket-notification-configuration.command.d.ts.map +1 -1
  362. package/dist/service/s3/command/put-bucket-notification-configuration/put-bucket-notification-configuration.command.d.ts +10 -1
  363. package/dist/service/s3/command/put-bucket-notification-configuration/put-bucket-notification-configuration.command.d.ts.map +1 -1
  364. package/dist/service/s3/notification/destination/lambda/sim-aws-s3-notification-functions.d.ts +0 -4
  365. package/dist/service/s3/notification/destination/lambda/sim-aws-s3-notification-functions.d.ts.map +1 -1
  366. package/dist/service/s3/notification/destination/lambda/sim-aws-s3-notification-functions.js +1 -4
  367. package/dist/service/s3/notification/destination/lambda/sim-aws-s3-notification-functions.js.map +1 -1
  368. package/dist/service/s3/notification/destination/sim-s3-notification-destination-check.d.ts.map +1 -1
  369. package/dist/service/s3/notification/destination/sim-s3-notification-destination-check.js +6 -4
  370. package/dist/service/s3/notification/destination/sim-s3-notification-destination-check.js.map +1 -1
  371. package/dist/service/s3/notification/destination/sim-s3-notification-destination.d.ts +20 -2
  372. package/dist/service/s3/notification/destination/sim-s3-notification-destination.d.ts.map +1 -1
  373. package/dist/service/s3/notification/destination/sim-s3-service-notification-destinations.d.ts +12 -10
  374. package/dist/service/s3/notification/destination/sim-s3-service-notification-destinations.d.ts.map +1 -1
  375. package/dist/service/s3/notification/destination/sim-s3-service-notification-destinations.js +19 -17
  376. package/dist/service/s3/notification/destination/sim-s3-service-notification-destinations.js.map +1 -1
  377. package/dist/service/s3/notification/destination/sim-s3-service-principal.d.ts +8 -0
  378. package/dist/service/s3/notification/destination/sim-s3-service-principal.d.ts.map +1 -0
  379. package/dist/service/s3/notification/destination/sim-s3-service-principal.js +8 -0
  380. package/dist/service/s3/notification/destination/sim-s3-service-principal.js.map +1 -0
  381. package/dist/service/s3/notification/destination/sqs/sim-aws-s3-notification-queues.d.ts +40 -0
  382. package/dist/service/s3/notification/destination/sqs/sim-aws-s3-notification-queues.d.ts.map +1 -0
  383. package/dist/service/s3/notification/destination/sqs/sim-aws-s3-notification-queues.js +52 -0
  384. package/dist/service/s3/notification/destination/sqs/sim-aws-s3-notification-queues.js.map +1 -0
  385. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue-arn.d.ts +33 -0
  386. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue-arn.d.ts.map +1 -0
  387. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue-arn.js +64 -0
  388. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue-arn.js.map +1 -0
  389. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue.d.ts +33 -0
  390. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue.d.ts.map +1 -0
  391. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue.js +55 -0
  392. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue.js.map +1 -0
  393. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queues.d.ts +23 -0
  394. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queues.d.ts.map +1 -0
  395. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queues.js +2 -0
  396. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queues.js.map +1 -0
  397. package/dist/service/s3/notification/destination/sqs/sim-s3-sqs-notification-destination.d.ts +40 -0
  398. package/dist/service/s3/notification/destination/sqs/sim-s3-sqs-notification-destination.d.ts.map +1 -0
  399. package/dist/service/s3/notification/destination/sqs/sim-s3-sqs-notification-destination.js +51 -0
  400. package/dist/service/s3/notification/destination/sqs/sim-s3-sqs-notification-destination.js.map +1 -0
  401. package/dist/service/s3/notification/sim-s3-notification-dispatcher.d.ts +2 -2
  402. package/dist/service/s3/notification/sim-s3-notification-dispatcher.d.ts.map +1 -1
  403. package/dist/service/s3/notification/sim-s3-notification-dispatcher.js +6 -3
  404. package/dist/service/s3/notification/sim-s3-notification-dispatcher.js.map +1 -1
  405. package/dist/service/sqs/command/authorize/sim-sqs-condition-context.d.ts.map +1 -1
  406. package/dist/service/sqs/command/authorize/sim-sqs-condition-context.js +9 -5
  407. package/dist/service/sqs/command/authorize/sim-sqs-condition-context.js.map +1 -1
  408. package/dist/service/sqs/command/authorize/sim-sqs-service-send-authorizer.d.ts +40 -0
  409. package/dist/service/sqs/command/authorize/sim-sqs-service-send-authorizer.d.ts.map +1 -0
  410. package/dist/service/sqs/command/authorize/sim-sqs-service-send-authorizer.js +40 -0
  411. package/dist/service/sqs/command/authorize/sim-sqs-service-send-authorizer.js.map +1 -0
  412. package/dist/service/sqs/command/sim-sqs-request-options.d.ts +16 -0
  413. package/dist/service/sqs/command/sim-sqs-request-options.d.ts.map +1 -1
  414. package/dist/service/sqs/command/sim-sqs-request-options.js +9 -0
  415. package/dist/service/sqs/command/sim-sqs-request-options.js.map +1 -1
  416. package/dist/service/sqs/index.d.ts +2 -2
  417. package/dist/service/sqs/index.d.ts.map +1 -1
  418. package/dist/service/sqs/index.js +2 -2
  419. package/dist/service/sqs/index.js.map +1 -1
  420. package/dist/service/sqs/queue/sim-sqs-queue-arn.d.ts +17 -2
  421. package/dist/service/sqs/queue/sim-sqs-queue-arn.d.ts.map +1 -1
  422. package/dist/service/sqs/queue/sim-sqs-queue-arn.js +9 -5
  423. package/dist/service/sqs/queue/sim-sqs-queue-arn.js.map +1 -1
  424. package/package.json +4 -4
@@ -0,0 +1,33 @@
1
+ import { assertDefined } from "../../../../../../util/type-guard/defined.js";
2
+ import { SimCfnFnIf as SimCfnFunctionIf } from "../../../node/fn/if/sim-cfn-fn-if.js";
3
+ /**
4
+ * Parses CloudFormation Fn::If values.
5
+ */
6
+ export class SimCfnFnIfParser {
7
+ valueParser;
8
+ constructor(valueParser) {
9
+ this.valueParser = valueParser;
10
+ }
11
+ /**
12
+ * Parse and validate the value inside a Fn::If expression.
13
+ *
14
+ * Both branches are parsed, because a branch that is not valid template
15
+ * syntax is a template mistake whichever way the Condition falls. Only
16
+ * resolving is deferred to the branch the Condition selects.
17
+ */
18
+ parse(value) {
19
+ if (!Array.isArray(value) || value.length !== 3) {
20
+ throw new Error("Sim CloudFormation Fn::If value must be [conditionName, valueIfTrue, valueIfFalse]");
21
+ }
22
+ const conditionName = value[0];
23
+ const whenTrue = value[1];
24
+ const whenFalse = value[2];
25
+ assertDefined(whenTrue, "Fn::If value if true");
26
+ assertDefined(whenFalse, "Fn::If value if false");
27
+ if (typeof conditionName !== "string") {
28
+ throw new TypeError("Sim CloudFormation Fn::If condition name must be a string");
29
+ }
30
+ return new SimCfnFunctionIf(conditionName, this.valueParser.parse(whenTrue), this.valueParser.parse(whenFalse));
31
+ }
32
+ }
33
+ //# sourceMappingURL=sim-cfn-fn-if-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-fn-if-parser.js","sourceRoot":"","sources":["../../../../../../../src/service/cloudformation/template/parse/fn/if/sim-cfn-fn-if-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAItF;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACE,WAAW;IAAxC,YAA6B,WAA8B;2BAA9B,WAAW;IAAsB,CAAC;IAE/D;;;;;;OAMG;IACH,KAAK,CAAC,KAA0B;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAE3B,aAAa,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;QAChD,aAAa,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAElD,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,IAAI,SAAS,CACjB,2DAA2D,CAC5D,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,gBAAgB,CACzB,aAAa,EACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAChC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAClC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,26 @@
1
+ import { SimCfnFnSelect as SimCfnFunctionSelect } from "../../../node/fn/select/sim-cfn-fn-select.js";
2
+ import type { SimCfnTemplateValue } from "../../../value/sim-cfn-template-value.js";
3
+ import type { SimCfnValueParser } from "../../value/sim-cfn-value-parser.type.js";
4
+ /**
5
+ * Parses CloudFormation Fn::Select values.
6
+ *
7
+ * Fn::Select has the shape:
8
+ *
9
+ * {
10
+ * "Fn::Select": [2, { "Fn::Split": ["/", "https://example.com/path"] }]
11
+ * }
12
+ *
13
+ * Both arguments go through the recursive value parser. The index may be a Ref
14
+ * to a Parameter, and the list may be a literal list or another intrinsic
15
+ * function that yields one. Whether they resolve to a whole number and a list
16
+ * is a resolution-time question, so it belongs to the node rather than here.
17
+ */
18
+ export declare class SimCfnFnSelectParser {
19
+ private readonly valueParser;
20
+ constructor(valueParser: SimCfnValueParser);
21
+ /**
22
+ * Parse and validate the value inside a Fn::Select expression.
23
+ */
24
+ parse(value: SimCfnTemplateValue): SimCfnFunctionSelect;
25
+ }
26
+ //# sourceMappingURL=sim-cfn-fn-select-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-fn-select-parser.d.ts","sourceRoot":"","sources":["../../../../../../../src/service/cloudformation/template/parse/fn/select/sim-cfn-fn-select-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACtG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAGlF;;;;;;;;;;;;;GAaG;AACH,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAAxC,YAA6B,WAAW,EAAE,iBAAiB,EAAI;IAE/D;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAgBtD;CACF"}
@@ -0,0 +1,35 @@
1
+ import { SimCfnFnSelect as SimCfnFunctionSelect } from "../../../node/fn/select/sim-cfn-fn-select.js";
2
+ import { assertDefined } from "../../../../../../util/type-guard/defined.js";
3
+ /**
4
+ * Parses CloudFormation Fn::Select values.
5
+ *
6
+ * Fn::Select has the shape:
7
+ *
8
+ * {
9
+ * "Fn::Select": [2, { "Fn::Split": ["/", "https://example.com/path"] }]
10
+ * }
11
+ *
12
+ * Both arguments go through the recursive value parser. The index may be a Ref
13
+ * to a Parameter, and the list may be a literal list or another intrinsic
14
+ * function that yields one. Whether they resolve to a whole number and a list
15
+ * is a resolution-time question, so it belongs to the node rather than here.
16
+ */
17
+ export class SimCfnFnSelectParser {
18
+ valueParser;
19
+ constructor(valueParser) {
20
+ this.valueParser = valueParser;
21
+ }
22
+ /**
23
+ * Parse and validate the value inside a Fn::Select expression.
24
+ */
25
+ parse(value) {
26
+ if (!Array.isArray(value) || value.length !== 2) {
27
+ throw new Error("Sim CloudFormation Fn::Select value must be [index, values]");
28
+ }
29
+ const [index, values] = value;
30
+ assertDefined(index, "Fn::Select index");
31
+ assertDefined(values, "Fn::Select values");
32
+ return new SimCfnFunctionSelect(this.valueParser.parse(index), this.valueParser.parse(values));
33
+ }
34
+ }
35
+ //# sourceMappingURL=sim-cfn-fn-select-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-fn-select-parser.js","sourceRoot":"","sources":["../../../../../../../src/service/cloudformation/template/parse/fn/select/sim-cfn-fn-select-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAGtG,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAE7E;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,oBAAoB;IACF,WAAW;IAAxC,YAA6B,WAA8B;2BAA9B,WAAW;IAAsB,CAAC;IAE/D;;OAEG;IACH,KAAK,CAAC,KAA0B;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;QAE9B,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACzC,aAAa,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAE3C,OAAO,IAAI,oBAAoB,CAC7B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAC7B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAC/B,CAAC;IACJ,CAAC;CACF"}
@@ -20,6 +20,9 @@ export declare class SimCfnFunctionParser {
20
20
  private readonly fnFindInMapParser;
21
21
  private readonly fnJoinParser;
22
22
  private readonly fnSubParser;
23
+ private readonly fnIfParser;
24
+ private readonly fnSplitParser;
25
+ private readonly fnSelectParser;
23
26
  constructor(valueParser: SimCfnValueParser);
24
27
  /**
25
28
  * Parse a CloudFormation intrinsic function object, if this object is one.
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-function-parser.d.ts","sourceRoot":"","sources":["../../../../../../src/service/cloudformation/template/parse/fn/sim-cfn-function-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAGjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAK/E;;;;;;;;;;;;;GAaG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgC;IAClE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2B;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IAEtD,YAAY,WAAW,EAAE,iBAAiB,EAKzC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,UAAU,GAAG,SAAS,CAkBxE;IAED,OAAO,CAAC,sBAAsB;IAyB9B,OAAO,CAAC,iCAAiC;IAczC,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,uBAAuB;CAGhC"}
1
+ {"version":3,"file":"sim-cfn-function-parser.d.ts","sourceRoot":"","sources":["../../../../../../src/service/cloudformation/template/parse/fn/sim-cfn-function-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAGjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAQ/E;;;;;;;;;;;;;GAaG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgC;IAClE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2B;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAE5D,YAAY,WAAW,EAAE,iBAAiB,EAQzC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,UAAU,GAAG,SAAS,CAkBxE;IAED,OAAO,CAAC,sBAAsB;IAqC9B,OAAO,CAAC,iCAAiC;IAczC,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,uBAAuB;CAGhC"}
@@ -2,6 +2,9 @@ import { SimCfnFnGetAttParser as SimCfnFunctionGetAttParser } from "./get-att/si
2
2
  import { SimCfnFnJoinParser as SimCfnFunctionJoinParser } from "./join/sim-cfn-fn-join-parser.js";
3
3
  import { SimCfnFnSubParser as SimCfnFunctionSubParser } from "./sub/sim-cfn-fn-sub-parser.js";
4
4
  import { SimCfnFnFindInMapParser as SimCfnFunctionFindInMapParser } from "./find-in-map/sim-cfn-fn-find-in-map-parser.js";
5
+ import { SimCfnFnIfParser as SimCfnFunctionIfParser } from "./if/sim-cfn-fn-if-parser.js";
6
+ import { SimCfnFnSplitParser as SimCfnFunctionSplitParser } from "./split/sim-cfn-fn-split-parser.js";
7
+ import { SimCfnFnSelectParser as SimCfnFunctionSelectParser } from "./select/sim-cfn-fn-select-parser.js";
5
8
  import { assertDefined } from "../../../../../util/type-guard/defined.js";
6
9
  /**
7
10
  * Parses CloudFormation intrinsic function objects.
@@ -22,11 +25,17 @@ export class SimCfnFunctionParser {
22
25
  fnFindInMapParser;
23
26
  fnJoinParser;
24
27
  fnSubParser;
28
+ fnIfParser;
29
+ fnSplitParser;
30
+ fnSelectParser;
25
31
  constructor(valueParser) {
26
32
  this.fnGetAttParser = new SimCfnFunctionGetAttParser();
27
33
  this.fnFindInMapParser = new SimCfnFunctionFindInMapParser(valueParser);
28
34
  this.fnJoinParser = new SimCfnFunctionJoinParser(valueParser);
29
35
  this.fnSubParser = new SimCfnFunctionSubParser(valueParser);
36
+ this.fnIfParser = new SimCfnFunctionIfParser(valueParser);
37
+ this.fnSplitParser = new SimCfnFunctionSplitParser(valueParser);
38
+ this.fnSelectParser = new SimCfnFunctionSelectParser(valueParser);
30
39
  }
31
40
  /**
32
41
  * Parse a CloudFormation intrinsic function object, if this object is one.
@@ -61,6 +70,15 @@ export class SimCfnFunctionParser {
61
70
  if (functionName === "Fn::FindInMap") {
62
71
  return this.fnFindInMapParser.parse(value);
63
72
  }
73
+ if (functionName === "Fn::If") {
74
+ return this.fnIfParser.parse(value);
75
+ }
76
+ if (functionName === "Fn::Split") {
77
+ return this.fnSplitParser.parse(value);
78
+ }
79
+ if (functionName === "Fn::Select") {
80
+ return this.fnSelectParser.parse(value);
81
+ }
64
82
  throw new Error(`Unsupported Sim CloudFormation intrinsic function ${functionName}`);
65
83
  }
66
84
  assertNoMalformedIntrinsicSibling(entries) {
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-function-parser.js","sourceRoot":"","sources":["../../../../../../src/service/cloudformation/template/parse/fn/sim-cfn-function-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-cfn-function-parser.js","sourceRoot":"","sources":["../../../../../../src/service/cloudformation/template/parse/fn/sim-cfn-function-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { SimCfnFnSplit as SimCfnFunctionSplit } from "../../../node/fn/split/sim-cfn-fn-split.js";
2
+ import type { SimCfnTemplateValue } from "../../../value/sim-cfn-template-value.js";
3
+ import type { SimCfnValueParser } from "../../value/sim-cfn-value-parser.type.js";
4
+ /**
5
+ * Parses CloudFormation Fn::Split values.
6
+ *
7
+ * Fn::Split has the shape:
8
+ *
9
+ * {
10
+ * "Fn::Split": ["/", { "Fn::GetAtt": ["Url", "FunctionUrl"] }]
11
+ * }
12
+ *
13
+ * The delimiter is a literal string, as CloudFormation requires. The source
14
+ * string goes through the recursive value parser, because it may be a literal,
15
+ * a Ref, or another intrinsic function.
16
+ */
17
+ export declare class SimCfnFnSplitParser {
18
+ private readonly valueParser;
19
+ constructor(valueParser: SimCfnValueParser);
20
+ /**
21
+ * Parse and validate the value inside a Fn::Split expression.
22
+ */
23
+ parse(value: SimCfnTemplateValue): SimCfnFunctionSplit;
24
+ }
25
+ //# sourceMappingURL=sim-cfn-fn-split-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-fn-split-parser.d.ts","sourceRoot":"","sources":["../../../../../../../src/service/cloudformation/template/parse/fn/split/sim-cfn-fn-split-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAGlF;;;;;;;;;;;;GAYG;AACH,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAAxC,YAA6B,WAAW,EAAE,iBAAiB,EAAI;IAE/D;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAkBrD;CACF"}
@@ -0,0 +1,36 @@
1
+ import { SimCfnFnSplit as SimCfnFunctionSplit } from "../../../node/fn/split/sim-cfn-fn-split.js";
2
+ import { assertDefined } from "../../../../../../util/type-guard/defined.js";
3
+ /**
4
+ * Parses CloudFormation Fn::Split values.
5
+ *
6
+ * Fn::Split has the shape:
7
+ *
8
+ * {
9
+ * "Fn::Split": ["/", { "Fn::GetAtt": ["Url", "FunctionUrl"] }]
10
+ * }
11
+ *
12
+ * The delimiter is a literal string, as CloudFormation requires. The source
13
+ * string goes through the recursive value parser, because it may be a literal,
14
+ * a Ref, or another intrinsic function.
15
+ */
16
+ export class SimCfnFnSplitParser {
17
+ valueParser;
18
+ constructor(valueParser) {
19
+ this.valueParser = valueParser;
20
+ }
21
+ /**
22
+ * Parse and validate the value inside a Fn::Split expression.
23
+ */
24
+ parse(value) {
25
+ if (!Array.isArray(value) || value.length !== 2) {
26
+ throw new Error("Sim CloudFormation Fn::Split value must be [delimiter, sourceString]");
27
+ }
28
+ const [delimiter, source] = value;
29
+ if (typeof delimiter !== "string") {
30
+ throw new TypeError("Sim CloudFormation Fn::Split delimiter must be a string");
31
+ }
32
+ assertDefined(source, "Fn::Split source string");
33
+ return new SimCfnFunctionSplit(delimiter, this.valueParser.parse(source));
34
+ }
35
+ }
36
+ //# sourceMappingURL=sim-cfn-fn-split-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-fn-split-parser.js","sourceRoot":"","sources":["../../../../../../../src/service/cloudformation/template/parse/fn/split/sim-cfn-fn-split-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAGlG,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAE7E;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,mBAAmB;IACD,WAAW;IAAxC,YAA6B,WAA8B;2BAA9B,WAAW;IAAsB,CAAC;IAE/D;;OAEG;IACH,KAAK,CAAC,KAA0B;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;QAElC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,IAAI,SAAS,CACjB,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QAED,aAAa,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;QAEjD,OAAO,IAAI,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC;CACF"}
@@ -2,14 +2,24 @@ import type { SimCfnParameters } from "../../parameters/sim-cfn-parameters.js";
2
2
  import type { SimCfnResourceRefResolver as SimCfnResourceReferenceResolver } from "./sim-cfn-resource-ref-resolver.js";
3
3
  import type { SimCfnPseudoParameters } from "../../parameters/pseudo/sim-cfn-pseudo-parameters.js";
4
4
  import type { SimCfnMappings } from "../mapping/sim-cfn-mappings.js";
5
+ import type { SimCfnConditions } from "../condition/sim-cfn-conditions.js";
6
+ interface SimCfnResolveContextProperties {
7
+ readonly parameters: SimCfnParameters;
8
+ readonly resources?: SimCfnResourceReferenceResolver | undefined;
9
+ readonly pseudoParameters?: SimCfnPseudoParameters | undefined;
10
+ readonly mappings?: SimCfnMappings | undefined;
11
+ readonly conditions?: SimCfnConditions | undefined;
12
+ }
5
13
  /**
6
14
  * Context available while resolving a parsed CloudFormation node tree.
7
15
  */
8
16
  export declare class SimCfnResolveContext {
9
17
  readonly parameters: SimCfnParameters;
10
- readonly resources?: SimCfnResourceReferenceResolver | undefined;
11
- readonly pseudoParameters?: SimCfnPseudoParameters | undefined;
12
- readonly mappings?: SimCfnMappings | undefined;
13
- constructor(parameters: SimCfnParameters, resources?: SimCfnResourceReferenceResolver | undefined, pseudoParameters?: SimCfnPseudoParameters | undefined, mappings?: SimCfnMappings | undefined);
18
+ readonly resources: SimCfnResourceReferenceResolver | undefined;
19
+ readonly pseudoParameters: SimCfnPseudoParameters | undefined;
20
+ readonly mappings: SimCfnMappings | undefined;
21
+ readonly conditions: SimCfnConditions | undefined;
22
+ constructor(properties: SimCfnResolveContextProperties);
14
23
  }
24
+ export {};
15
25
  //# sourceMappingURL=sim-cfn-resolve-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-resolve-context.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudformation/template/resolve/sim-cfn-resolve-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,KAAK,EAAE,yBAAyB,IAAI,+BAA+B,EAAE,MAAM,oCAAoC,CAAC;AACvH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE;;GAEG;AACH,qBAAa,oBAAoB;IAE7B,QAAQ,CAAC,UAAU,EAAE,gBAAgB;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,+BAA+B,GAAG,SAAS;IAChE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,sBAAsB,GAAG,SAAS;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS;IAJhD,YACW,UAAU,EAAE,gBAAgB,EAC5B,SAAS,CAAC,EAAE,+BAA+B,GAAG,SAAS,EACvD,gBAAgB,CAAC,EAAE,sBAAsB,GAAG,SAAS,EACrD,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,EAC5C;CACL"}
1
+ {"version":3,"file":"sim-cfn-resolve-context.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudformation/template/resolve/sim-cfn-resolve-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,KAAK,EAAE,yBAAyB,IAAI,+BAA+B,EAAE,MAAM,oCAAoC,CAAC;AACvH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,UAAU,8BAA8B;IACtC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,+BAA+B,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACpD;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,SAAgB,UAAU,EAAE,gBAAgB,CAAC;IAC7C,SAAgB,SAAS,EAAE,+BAA+B,GAAG,SAAS,CAAC;IACvE,SAAgB,gBAAgB,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACrE,SAAgB,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAC;IACrD,SAAgB,UAAU,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAEzD,YAAY,UAAU,EAAE,8BAA8B,EAMrD;CACF"}
@@ -6,11 +6,13 @@ export class SimCfnResolveContext {
6
6
  resources;
7
7
  pseudoParameters;
8
8
  mappings;
9
- constructor(parameters, resources, pseudoParameters, mappings) {
10
- this.parameters = parameters;
11
- this.resources = resources;
12
- this.pseudoParameters = pseudoParameters;
13
- this.mappings = mappings;
9
+ conditions;
10
+ constructor(properties) {
11
+ this.parameters = properties.parameters;
12
+ this.resources = properties.resources;
13
+ this.pseudoParameters = properties.pseudoParameters;
14
+ this.mappings = properties.mappings;
15
+ this.conditions = properties.conditions;
14
16
  }
15
17
  }
16
18
  //# sourceMappingURL=sim-cfn-resolve-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-resolve-context.js","sourceRoot":"","sources":["../../../../../src/service/cloudformation/template/resolve/sim-cfn-resolve-context.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAEpB,UAAU;IACV,SAAS;IACT,gBAAgB;IAChB,QAAQ;IAJnB,YACW,UAA4B,EAC5B,SAAuD,EACvD,gBAAqD,EACrD,QAAqC;0BAHrC,UAAU;yBACV,SAAS;gCACT,gBAAgB;wBAChB,QAAQ;IAChB,CAAC;CACL"}
1
+ {"version":3,"file":"sim-cfn-resolve-context.js","sourceRoot":"","sources":["../../../../../src/service/cloudformation/template/resolve/sim-cfn-resolve-context.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,MAAM,OAAO,oBAAoB;IACf,UAAU,CAAmB;IAC7B,SAAS,CAA8C;IACvD,gBAAgB,CAAqC;IACrD,QAAQ,CAA6B;IACrC,UAAU,CAA+B;IAEzD,YAAY,UAA0C;QACpD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IAC1C,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-template-body-validator.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudformation/template/sim-cfn-template-body-validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,UAAU,qCAAqC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED;;;;;GAKG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAE/C,YAAY,UAAU,EAAE,qCAAqC,EAG5D;IAED;;OAEG;IACH,QAAQ,IAAI,IAAI,CAmBf;IAED,OAAO,CAAC,KAAK;CAKd"}
1
+ {"version":3,"file":"sim-cfn-template-body-validator.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudformation/template/sim-cfn-template-body-validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,UAAU,qCAAqC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED;;;;;GAKG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAE/C,YAAY,UAAU,EAAE,qCAAqC,EAG5D;IAED;;OAEG;IACH,QAAQ,IAAI,IAAI,CA0Bf;IAED,OAAO,CAAC,KAAK;CAKd"}
@@ -29,6 +29,10 @@ export class SimCfnTemplateBodyValidator {
29
29
  !isRecord(this.template.Parameters)) {
30
30
  throw this.error("Parameters must be an object");
31
31
  }
32
+ if (this.template.Conditions !== undefined &&
33
+ !isRecord(this.template.Conditions)) {
34
+ throw this.error("Conditions must be an object");
35
+ }
32
36
  }
33
37
  error(detail) {
34
38
  return new Error(`Sim CloudFormation Stack ${this.stackName ?? "unknown"} ${detail}`);
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-template-body-validator.js","sourceRoot":"","sources":["../../../../src/service/cloudformation/template/sim-cfn-template-body-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAQ9D;;;;;GAKG;AACH,MAAM,OAAO,2BAA2B;IACrB,QAAQ,CAAwB;IAChC,SAAS,CAAqB;IAE/C,YAAY,UAAiD;QAC3D,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC/D,CAAC;QAED,IACE,IAAI,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS;YACtC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EACnC,CAAC;YACD,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,MAAc;QAC1B,OAAO,IAAI,KAAK,CACd,4BAA4B,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,MAAM,EAAE,CACpE,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cfn-template-body-validator.js","sourceRoot":"","sources":["../../../../src/service/cloudformation/template/sim-cfn-template-body-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAQ9D;;;;;GAKG;AACH,MAAM,OAAO,2BAA2B;IACrB,QAAQ,CAAwB;IAChC,SAAS,CAAqB;IAE/C,YAAY,UAAiD;QAC3D,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC/D,CAAC;QAED,IACE,IAAI,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS;YACtC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EACnC,CAAC;YACD,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACnD,CAAC;QAED,IACE,IAAI,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS;YACtC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EACnC,CAAC;YACD,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,MAAc;QAC1B,OAAO,IAAI,KAAK,CACd,4BAA4B,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,MAAM,EAAE,CACpE,CAAC;IACJ,CAAC;CACF"}
@@ -5,6 +5,7 @@ import { type JSONString } from "../../../util/type-guard/json.js";
5
5
  import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
6
6
  import { SimCfnPseudoParameters } from "../parameters/pseudo/sim-cfn-pseudo-parameters.js";
7
7
  import type { SimCfnMappings } from "./mapping/sim-cfn-mappings.js";
8
+ import type { SimCfnConditions, SimCfnConditionsSection } from "./condition/sim-cfn-conditions.js";
8
9
  /**
9
10
  * Parsed CloudFormation template body accepted by the simulator.
10
11
  *
@@ -13,6 +14,7 @@ import type { SimCfnMappings } from "./mapping/sim-cfn-mappings.js";
13
14
  export interface CfnTemplateBodyRecord {
14
15
  readonly Parameters?: Record<string, SimCfnParameterDefinition> | undefined;
15
16
  readonly Mappings?: SimCfnMappings | undefined;
17
+ readonly Conditions?: SimCfnConditionsSection | undefined;
16
18
  readonly Resources: Record<string, SimCfnTemplateValue>;
17
19
  readonly Outputs?: Record<string, SimCfnTemplateValue> | undefined;
18
20
  readonly [sectionName: string]: Record<string, SimCfnParameterDefinition> | Record<string, SimCfnTemplateValue> | SimCfnTemplateValue | undefined;
@@ -46,6 +48,7 @@ export declare class SimCfnTemplate {
46
48
  readonly stackName: string | undefined;
47
49
  readonly parameters: SimCfnParameters;
48
50
  private readonly accountRegionScope;
51
+ private evaluatedConditions;
49
52
  constructor(properties: SimCfnTemplateProperties);
50
53
  /**
51
54
  * Parse a JSON CloudFormation template body.
@@ -56,6 +59,9 @@ export declare class SimCfnTemplate {
56
59
  *
57
60
  * Parameters and parameter-only intrinsic functions are resolved here.
58
61
  * Refs to other Resources are left unresolved because the referenced Resources do not exist yet; they are resolved at Resource creation time.
62
+ *
63
+ * A Resource whose `Condition` attribute is false is left out entirely, so
64
+ * the Stack never has a Resource the template conditioned out.
59
65
  */
60
66
  resourceTemplates(): SimCfnResourceTemplateRecord[];
61
67
  /**
@@ -71,6 +77,14 @@ export declare class SimCfnTemplate {
71
77
  * https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/pseudo-parameter-reference.html
72
78
  */
73
79
  pseudoParameters(): SimCfnPseudoParameters;
80
+ /**
81
+ * Get the template Conditions, evaluated against this Stack's Parameters.
82
+ *
83
+ * A Condition reads only Parameters and pseudo parameters, so the section is
84
+ * evaluated once and the answers reused by every Resource and Output.
85
+ */
86
+ conditions(): SimCfnConditions;
87
+ private valueResolver;
74
88
  }
75
89
  export {};
76
90
  //# sourceMappingURL=sim-cfn-template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-template.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudformation/template/sim-cfn-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,mCAAmC,CAAC;AAG3C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS,CAAC;IAC5E,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACxD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,SAAS,CAAC;IACnE,QAAQ,EAAE,WAAW,EAAE,MAAM,GACzB,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GACzC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GACnC,mBAAmB,GACnB,SAAS,CAAC;CACf;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;CAC9C;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;CAC9C;AAED,UAAU,wBAAwB;IAChC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;CACpE;AAED,UAAU,gCAAgC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;CACpE;AAED;;;;GAIG;AACH,qBAAa,cAAc;IACzB,SAAgB,QAAQ,EAAE,qBAAqB,CAAC;IAChD,SAAgB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,SAAgB,UAAU,EAAE,gBAAgB,CAAC;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;IAE1E,YAAY,UAAU,EAAE,wBAAwB,EAa/C;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CACb,YAAY,EAAE,UAAU,CAAC,qBAAqB,CAAC,EAC/C,UAAU,GAAE,gCAAqC,GAChD,cAAc,CAoBhB;IAED;;;;;OAKG;IACH,iBAAiB,IAAI,4BAA4B,EAAE,CAelD;IAED;;;;;OAKG;IACH,eAAe,IAAI,0BAA0B,EAAE,CAe9C;IAED;;;;OAIG;IACH,gBAAgB,IAAI,sBAAsB,CAKzC;CACF"}
1
+ {"version":3,"file":"sim-cfn-template.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudformation/template/sim-cfn-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,mCAAmC,CAAC;AAG3C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,mCAAmC,CAAC;AAG3C;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS,CAAC;IAC5E,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACxD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,SAAS,CAAC;IACnE,QAAQ,EAAE,WAAW,EAAE,MAAM,GACzB,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GACzC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GACnC,mBAAmB,GACnB,SAAS,CAAC;CACf;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;CAC9C;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;CAC9C;AAED,UAAU,wBAAwB;IAChC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;CACpE;AAED,UAAU,gCAAgC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;CACpE;AAED;;;;GAIG;AACH,qBAAa,cAAc;IACzB,SAAgB,QAAQ,EAAE,qBAAqB,CAAC;IAChD,SAAgB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,SAAgB,UAAU,EAAE,gBAAgB,CAAC;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;IAC1E,OAAO,CAAC,mBAAmB,CAA+B;IAE1D,YAAY,UAAU,EAAE,wBAAwB,EAa/C;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CACb,YAAY,EAAE,UAAU,CAAC,qBAAqB,CAAC,EAC/C,UAAU,GAAE,gCAAqC,GAChD,cAAc,CAoBhB;IAED;;;;;;;;OAQG;IACH,iBAAiB,IAAI,4BAA4B,EAAE,CAwBlD;IAED;;;;;OAKG;IACH,eAAe,IAAI,0BAA0B,EAAE,CAc9C;IAED;;;;OAIG;IACH,gBAAgB,IAAI,sBAAsB,CAKzC;IAED;;;;;OAKG;IACH,UAAU,IAAI,gBAAgB,CAY7B;IAED,OAAO,CAAC,aAAa;CAQtB"}
@@ -4,6 +4,8 @@ import { isRecord } from "../../../util/type-guard/record.js";
4
4
  import { SimCfnTemplateBodyValidator } from "./sim-cfn-template-body-validator.js";
5
5
  import { jsonParse } from "../../../util/type-guard/json.js";
6
6
  import { SimCfnPseudoParameters } from "../parameters/pseudo/sim-cfn-pseudo-parameters.js";
7
+ import { SimCfnConditionEvaluator } from "./condition/sim-cfn-condition-evaluator.js";
8
+ import { SimCfnResourceConditions } from "./condition/sim-cfn-resource-conditions.js";
7
9
  /**
8
10
  * Convenience wrapper over a plain parsed CloudFormation template object.
9
11
  *
@@ -14,6 +16,7 @@ export class SimCfnTemplate {
14
16
  stackName;
15
17
  parameters;
16
18
  accountRegionScope;
19
+ evaluatedConditions;
17
20
  constructor(properties) {
18
21
  const { template, parameters, stackName, accountRegionScope } = properties;
19
22
  this.template = template;
@@ -48,21 +51,28 @@ export class SimCfnTemplate {
48
51
  *
49
52
  * Parameters and parameter-only intrinsic functions are resolved here.
50
53
  * Refs to other Resources are left unresolved because the referenced Resources do not exist yet; they are resolved at Resource creation time.
54
+ *
55
+ * A Resource whose `Condition` attribute is false is left out entirely, so
56
+ * the Stack never has a Resource the template conditioned out.
51
57
  */
52
58
  resourceTemplates() {
53
- const valueResolver = new SimCfnTemplateValueResolver({
54
- parameters: this.parameters,
55
- pseudoParameters: this.pseudoParameters(),
56
- mappings: this.template.Mappings,
59
+ const valueResolver = this.valueResolver();
60
+ const resourceConditions = new SimCfnResourceConditions({
61
+ resources: this.template.Resources,
62
+ conditions: this.conditions(),
63
+ stackName: this.stackName,
57
64
  });
58
- return Object.entries(this.template.Resources)
65
+ const resourceTemplates = Object.entries(this.template.Resources)
59
66
  .filter((entry) => {
60
67
  return isRecord(entry[1]);
61
68
  })
69
+ .filter(([logicalId]) => !resourceConditions.excludes(logicalId))
62
70
  .map(([logicalId, resourceTemplate]) => ({
63
71
  logicalId,
64
- template: valueResolver.resolveRecord(resourceTemplate),
72
+ template: valueResolver.resolveRecordFor(`Sim CloudFormation Resource ${logicalId}`, resourceTemplate),
65
73
  }));
74
+ resourceConditions.assertNotReferenced(resourceTemplates);
75
+ return resourceTemplates;
66
76
  }
67
77
  /**
68
78
  * Get Output template entries with parameter-only expressions resolved.
@@ -71,18 +81,14 @@ export class SimCfnTemplate {
71
81
  * Outputs are resolved after Resource creation.
72
82
  */
73
83
  outputTemplates() {
74
- const valueResolver = new SimCfnTemplateValueResolver({
75
- parameters: this.parameters,
76
- pseudoParameters: this.pseudoParameters(),
77
- mappings: this.template.Mappings,
78
- });
84
+ const valueResolver = this.valueResolver();
79
85
  return Object.entries(this.template.Outputs ?? {})
80
86
  .filter((entry) => {
81
87
  return isRecord(entry[1]);
82
88
  })
83
89
  .map(([outputKey, outputTemplate]) => ({
84
90
  outputKey,
85
- template: valueResolver.resolveRecord(outputTemplate),
91
+ template: valueResolver.resolveRecordFor(`Sim CloudFormation Output ${outputKey}`, outputTemplate),
86
92
  }));
87
93
  }
88
94
  /**
@@ -96,5 +102,31 @@ export class SimCfnTemplate {
96
102
  stackName: this.stackName,
97
103
  });
98
104
  }
105
+ /**
106
+ * Get the template Conditions, evaluated against this Stack's Parameters.
107
+ *
108
+ * A Condition reads only Parameters and pseudo parameters, so the section is
109
+ * evaluated once and the answers reused by every Resource and Output.
110
+ */
111
+ conditions() {
112
+ this.evaluatedConditions ??= new SimCfnConditionEvaluator({
113
+ conditions: this.template.Conditions,
114
+ stackName: this.stackName,
115
+ valueResolver: new SimCfnTemplateValueResolver({
116
+ parameters: this.parameters,
117
+ pseudoParameters: this.pseudoParameters(),
118
+ mappings: this.template.Mappings,
119
+ }),
120
+ }).evaluate();
121
+ return this.evaluatedConditions;
122
+ }
123
+ valueResolver() {
124
+ return new SimCfnTemplateValueResolver({
125
+ parameters: this.parameters,
126
+ pseudoParameters: this.pseudoParameters(),
127
+ mappings: this.template.Mappings,
128
+ conditions: this.conditions(),
129
+ });
130
+ }
99
131
  }
100
132
  //# sourceMappingURL=sim-cfn-template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-template.js","sourceRoot":"","sources":["../../../../src/service/cloudformation/template/sim-cfn-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-cfn-template.js","sourceRoot":"","sources":["../../../../src/service/cloudformation/template/sim-cfn-template.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,13 @@ import type { SimCfnTemplateValue, SimCfnTemplateValueRecord } from "./sim-cfn-t
3
3
  import type { SimCfnResourceRefResolver as SimCfnResourceReferenceResolver } from "../resolve/sim-cfn-resource-ref-resolver.js";
4
4
  import type { SimCfnPseudoParameters } from "../../parameters/pseudo/sim-cfn-pseudo-parameters.js";
5
5
  import type { SimCfnMappings } from "../mapping/sim-cfn-mappings.js";
6
+ import type { SimCfnConditions } from "../condition/sim-cfn-conditions.js";
6
7
  interface SimCfnTemplateValueResolverProperties {
7
8
  readonly parameters: SimCfnParameters;
8
9
  readonly resources?: SimCfnResourceReferenceResolver | undefined;
9
10
  readonly pseudoParameters?: SimCfnPseudoParameters | undefined;
10
11
  readonly mappings?: SimCfnMappings | undefined;
12
+ readonly conditions?: SimCfnConditions | undefined;
11
13
  }
12
14
  /**
13
15
  * Resolve supported CloudFormation value expressions inside template values.
@@ -21,8 +23,26 @@ export declare class SimCfnTemplateValueResolver {
21
23
  resolve(value: SimCfnTemplateValue): SimCfnTemplateValue;
22
24
  /**
23
25
  * Resolve every value in a CloudFormation template object.
26
+ *
27
+ * A value that cannot be resolved carries the name it was stored under, so
28
+ * the caller can say which property of which Resource was at fault.
24
29
  */
25
30
  resolveRecord(value: SimCfnTemplateValueRecord): SimCfnTemplateValueRecord;
31
+ /**
32
+ * Resolve every value in a template object belonging to a named subject.
33
+ *
34
+ * The subject is the Resource or Output the object came from, which this
35
+ * resolver has no way to know. A value that fails to resolve is named with
36
+ * both, so a template author is told where to look.
37
+ */
38
+ resolveRecordFor(subject: string, value: SimCfnTemplateValueRecord): SimCfnTemplateValueRecord;
39
+ /**
40
+ * Resolve one entry, naming it if the value underneath fails.
41
+ *
42
+ * Parsing happens outside the catch, because a value that does not parse
43
+ * fails with a message that already quotes the expression at fault.
44
+ */
45
+ private resolveEntry;
26
46
  }
27
47
  export {};
28
48
  //# sourceMappingURL=sim-cfn-template-value-resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-template-value-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudformation/template/value/sim-cfn-template-value-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE/E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,yBAAyB,IAAI,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAChI,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAEnG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,UAAU,qCAAqC;IAC7C,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,+BAA+B,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CAChD;AAED;;GAEG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAE/C,YAAY,UAAU,EAAE,qCAAqC,EAO5D;IAED;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAEvD;IAED;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,yBAAyB,GAAG,yBAAyB,CAOzE;CACF"}
1
+ {"version":3,"file":"sim-cfn-template-value-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudformation/template/value/sim-cfn-template-value-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE/E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,yBAAyB,IAAI,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAChI,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAEnG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAM3E,UAAU,qCAAqC;IAC7C,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,+BAA+B,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACpD;AAED;;GAEG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAE/C,YAAY,UAAU,EAAE,qCAAqC,EAQ5D;IAED;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAEvD;IAED;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,yBAAyB,GAAG,yBAAyB,CAOzE;IAED;;;;;;OAMG;IACH,gBAAgB,CACd,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,yBAAyB,GAC/B,yBAAyB,CAE3B;IAED;;;;;OAKG;IACH,OAAO,CAAC,YAAY;CAQrB"}