@kensio/yulin 1.20.13 → 1.20.15

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 (589) hide show
  1. package/{dist/config/oxlint/cffjs2.oxlintrc.json → cffjs2.oxlintrc.json} +1 -1
  2. package/dist/config/oxlint/cffjs2.oxlint.config.js +4 -3
  3. package/dist/service/acm/cfn/certificate/sim-cfn-acm-cert-creator.js +6 -4
  4. package/dist/service/acm/cfn/sim-cfn-acm-resource-factory.d.ts +2 -2
  5. package/dist/service/acm/cfn/sim-cfn-acm-resource-factory.js +3 -4
  6. package/dist/service/acm/cfn/validation/sim-cfn-acm-cert-validation.d.ts +2 -1
  7. package/dist/service/acm/cfn/validation/sim-cfn-acm-cert-validation.js +2 -2
  8. package/dist/service/acm/cfn/validation/sim-cfn-acm-validation-records.d.ts +2 -1
  9. package/dist/service/acm/cfn/validation/sim-cfn-acm-validation-records.js +4 -4
  10. package/dist/service/acm/sim-acm.d.ts +1 -1
  11. package/dist/service/acm/sim-acm.js +3 -2
  12. package/dist/service/apigateway/cfn/api/sim-cfn-rest-api-creator.d.ts +2 -1
  13. package/dist/service/apigateway/cfn/api/sim-cfn-rest-api-creator.js +11 -13
  14. package/dist/service/apigateway/cfn/authorizer/sim-cfn-rest-api-authorizer-creator.d.ts +2 -1
  15. package/dist/service/apigateway/cfn/authorizer/sim-cfn-rest-api-authorizer-creator.js +2 -4
  16. package/dist/service/apigateway/cfn/deployment/sim-cfn-rest-api-deployment-creator.d.ts +2 -1
  17. package/dist/service/apigateway/cfn/deployment/sim-cfn-rest-api-deployment-creator.js +2 -4
  18. package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-creator.d.ts +2 -1
  19. package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-creator.js +3 -5
  20. package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-integration.d.ts +2 -1
  21. package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-integration.js +3 -3
  22. package/dist/service/apigateway/cfn/resource/sim-cfn-rest-api-resource-creator.d.ts +2 -1
  23. package/dist/service/apigateway/cfn/resource/sim-cfn-rest-api-resource-creator.js +2 -4
  24. package/dist/service/apigateway/cfn/sim-cfn-api-gateway-resource-deleter.d.ts +2 -1
  25. package/dist/service/apigateway/cfn/sim-cfn-api-gateway-resource-deleter.js +3 -5
  26. package/dist/service/apigateway/cfn/sim-cfn-api-gateway-resource-factory.js +9 -7
  27. package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-deleter.d.ts +2 -7
  28. package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-deleter.js +12 -42
  29. package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-values.d.ts +10 -0
  30. package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-values.js +21 -0
  31. package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-creator.d.ts +2 -1
  32. package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-creator.js +2 -4
  33. package/dist/service/apigateway/serve/sim-api-gateway-router.js +5 -2
  34. package/dist/service/apigateway/sim-api-gateway-commands.d.ts +1 -1
  35. package/dist/service/apigateway/sim-api-gateway-commands.js +3 -2
  36. package/dist/service/apigatewayv2/cfn/api/sim-cfn-http-api-creator.d.ts +2 -1
  37. package/dist/service/apigatewayv2/cfn/api/sim-cfn-http-api-creator.js +5 -9
  38. package/dist/service/apigatewayv2/cfn/authorizer/sim-cfn-http-api-authorizer-creator.d.ts +2 -1
  39. package/dist/service/apigatewayv2/cfn/authorizer/sim-cfn-http-api-authorizer-creator.js +2 -4
  40. package/dist/service/apigatewayv2/cfn/domain/sim-cfn-api-mapping-creator.d.ts +2 -1
  41. package/dist/service/apigatewayv2/cfn/domain/sim-cfn-api-mapping-creator.js +2 -4
  42. package/dist/service/apigatewayv2/cfn/domain/sim-cfn-http-api-domain-creator.d.ts +2 -1
  43. package/dist/service/apigatewayv2/cfn/domain/sim-cfn-http-api-domain-creator.js +2 -4
  44. package/dist/service/apigatewayv2/cfn/integration/sim-cfn-http-api-integration-creator.d.ts +2 -1
  45. package/dist/service/apigatewayv2/cfn/integration/sim-cfn-http-api-integration-creator.js +2 -4
  46. package/dist/service/apigatewayv2/cfn/route/sim-cfn-http-api-route-creator.d.ts +2 -1
  47. package/dist/service/apigatewayv2/cfn/route/sim-cfn-http-api-route-creator.js +2 -4
  48. package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-deleter.d.ts +2 -9
  49. package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-deleter.js +19 -25
  50. package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-factory.d.ts +0 -5
  51. package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-factory.js +13 -29
  52. package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-unsupported.d.ts +5 -0
  53. package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-unsupported.js +19 -0
  54. package/dist/service/apigatewayv2/cfn/sim-cfn-http-api-part-deleter.d.ts +2 -1
  55. package/dist/service/apigatewayv2/cfn/sim-cfn-http-api-part-deleter.js +5 -13
  56. package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-stage-creator.d.ts +2 -1
  57. package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-stage-creator.js +2 -4
  58. package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-router.js +5 -2
  59. package/dist/service/apigatewayv2/sim-api-gateway-v2-commands.d.ts +1 -1
  60. package/dist/service/apigatewayv2/sim-api-gateway-v2-commands.js +3 -2
  61. package/dist/service/athena/cfn/named-query/sim-cfn-athena-named-query-creator.d.ts +3 -2
  62. package/dist/service/athena/cfn/named-query/sim-cfn-athena-named-query-creator.js +4 -6
  63. package/dist/service/athena/cfn/sim-athena-cfn-resource-factory.d.ts +2 -2
  64. package/dist/service/athena/cfn/sim-athena-cfn-resource-factory.js +7 -6
  65. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-creator.d.ts +3 -2
  66. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-creator.js +7 -11
  67. package/dist/service/athena/engine/sim-athena-aggregate-shims.d.ts +10 -5
  68. package/dist/service/athena/engine/sim-athena-aggregate-shims.js +19 -16
  69. package/dist/service/athena/engine/sim-athena-binary-shims.d.ts +16 -0
  70. package/dist/service/athena/engine/sim-athena-binary-shims.js +49 -0
  71. package/dist/service/athena/engine/sim-athena-binary-text.d.ts +21 -0
  72. package/dist/service/athena/engine/sim-athena-binary-text.js +87 -0
  73. package/dist/service/athena/engine/sim-athena-count-distinct.d.ts +15 -0
  74. package/dist/service/athena/engine/sim-athena-count-distinct.js +103 -0
  75. package/dist/service/athena/engine/sim-athena-distinct-values.d.ts +19 -0
  76. package/dist/service/athena/engine/sim-athena-distinct-values.js +37 -0
  77. package/dist/service/athena/engine/sim-athena-hash-words.d.ts +14 -0
  78. package/dist/service/athena/engine/sim-athena-hash-words.js +22 -0
  79. package/dist/service/athena/engine/sim-athena-murmur3-mixing.d.ts +15 -0
  80. package/dist/service/athena/engine/sim-athena-murmur3-mixing.js +37 -0
  81. package/dist/service/athena/engine/sim-athena-murmur3.d.ts +11 -0
  82. package/dist/service/athena/engine/sim-athena-murmur3.js +51 -0
  83. package/dist/service/athena/engine/sim-athena-shim-registry.d.ts +9 -0
  84. package/dist/service/athena/engine/sim-athena-shim-registry.js +30 -1
  85. package/dist/service/athena/engine/sim-athena-shims.js +2 -0
  86. package/dist/service/athena/engine/sim-athena-sql-rewrites.d.ts +4 -2
  87. package/dist/service/athena/engine/sim-athena-sql-rewrites.js +6 -3
  88. package/dist/service/athena/engine/sim-athena-xxhash64.d.ts +8 -0
  89. package/dist/service/athena/engine/sim-athena-xxhash64.js +82 -0
  90. package/dist/service/athena/sim-athena-executions.d.ts +1 -1
  91. package/dist/service/athena/sim-athena-executions.js +3 -2
  92. package/dist/service/bedrock/sim-bedrock.d.ts +1 -1
  93. package/dist/service/bedrock/sim-bedrock.js +3 -2
  94. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.d.ts +8 -0
  95. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.js +6 -4
  96. package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +4 -0
  97. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +4 -1
  98. package/dist/service/cloudformation/command/update-stack/update-stack.handler.d.ts +7 -0
  99. package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +3 -1
  100. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
  101. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +9 -2
  102. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +2 -1
  103. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +10 -3
  104. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js +4 -7
  105. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +10 -0
  106. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +4 -2
  107. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +11 -0
  108. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
  109. package/dist/service/cloudformation/deploy/sim-cfn-template-file-updater.js +1 -0
  110. package/dist/service/cloudformation/resource/caller/sim-cfn-resource-caller-options.d.ts +16 -0
  111. package/dist/service/cloudformation/resource/caller/sim-cfn-resource-caller-options.js +6 -0
  112. package/dist/service/cloudformation/resource/cfn/scheduler/sim-scheduler-cfn-value-adapter.js +50 -0
  113. package/dist/service/cloudformation/resource/resolve/property/sim-cfn-resource-property-resolver.d.ts +11 -4
  114. package/dist/service/cloudformation/resource/resolve/property/sim-cfn-resource-property-resolver.js +21 -8
  115. package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +21 -0
  116. package/dist/service/cloudformation/sim-cloudformation.d.ts +1 -1
  117. package/dist/service/cloudformation/sim-cloudformation.js +3 -2
  118. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.d.ts +3 -0
  119. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.js +4 -1
  120. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.d.ts +2 -0
  121. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.js +2 -1
  122. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +17 -2
  123. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +15 -4
  124. package/dist/service/cloudformation/stack/sim-cfn-stack.js +5 -5
  125. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +12 -0
  126. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
  127. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
  128. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +2 -0
  129. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
  130. package/dist/service/cloudformation/template/dynamic/make-sim-cfn-dynamic-references.d.ts +2 -0
  131. package/dist/service/cloudformation/template/dynamic/make-sim-cfn-dynamic-references.js +2 -2
  132. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-resolvers.d.ts +10 -0
  133. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-resolvers.js +4 -3
  134. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-scan.d.ts +11 -0
  135. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-scan.js +21 -0
  136. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-references.d.ts +24 -2
  137. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-references.js +50 -11
  138. package/dist/service/cloudformation/template/dynamic/sim-cfn-prefetched-dynamic-references.d.ts +42 -0
  139. package/dist/service/cloudformation/template/dynamic/sim-cfn-prefetched-dynamic-references.js +80 -0
  140. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.d.ts +5 -0
  141. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.js +10 -3
  142. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +2 -1
  143. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-deleter.d.ts +2 -1
  144. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-deleter.js +5 -7
  145. package/dist/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-creator.d.ts +3 -2
  146. package/dist/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-creator.js +6 -6
  147. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +2 -4
  148. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +7 -15
  149. package/dist/service/cloudfront/edge/sim-aws-cf-edge-functions.js +3 -2
  150. package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +1 -1
  151. package/dist/service/cloudfront/sim-cloudfront-commands.js +5 -2
  152. package/dist/service/cloudwatch/cfn/alarm/sim-cfn-alarm-creator.d.ts +3 -2
  153. package/dist/service/cloudwatch/cfn/alarm/sim-cfn-alarm-creator.js +4 -6
  154. package/dist/service/cloudwatch/cfn/sim-cloudwatch-cfn-resource-factory.d.ts +2 -2
  155. package/dist/service/cloudwatch/cfn/sim-cloudwatch-cfn-resource-factory.js +4 -3
  156. package/dist/service/cloudwatch/sim-cloudwatch-commands.d.ts +1 -1
  157. package/dist/service/cloudwatch/sim-cloudwatch-commands.js +3 -2
  158. package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-creator.d.ts +2 -1
  159. package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-creator.js +2 -4
  160. package/dist/service/cognito/cfn/domain/sim-cfn-cognito-domain-creator.d.ts +2 -1
  161. package/dist/service/cognito/cfn/domain/sim-cfn-cognito-domain-creator.js +2 -4
  162. package/dist/service/cognito/cfn/group/sim-cfn-cognito-group-creator.d.ts +2 -1
  163. package/dist/service/cognito/cfn/group/sim-cfn-cognito-group-creator.js +2 -4
  164. package/dist/service/cognito/cfn/idp/sim-cfn-cognito-idp-creator.d.ts +2 -1
  165. package/dist/service/cognito/cfn/idp/sim-cfn-cognito-idp-creator.js +2 -4
  166. package/dist/service/cognito/cfn/sim-cfn-cognito-resource-deleter.d.ts +2 -1
  167. package/dist/service/cognito/cfn/sim-cfn-cognito-resource-deleter.js +18 -24
  168. package/dist/service/cognito/cfn/sim-cfn-cognito-resource-factory.d.ts +2 -2
  169. package/dist/service/cognito/cfn/sim-cfn-cognito-resource-factory.js +9 -7
  170. package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-creator.d.ts +2 -1
  171. package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-creator.js +5 -7
  172. package/dist/service/cognito/sim-cognito-identity-provider.d.ts +1 -1
  173. package/dist/service/cognito/sim-cognito-identity-provider.js +3 -2
  174. package/dist/service/cognito/user-pool/trigger/sim-aws-cognito-trigger-functions.js +2 -1
  175. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.d.ts +2 -1
  176. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.js +2 -2
  177. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-deleter.d.ts +2 -1
  178. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-deleter.js +2 -4
  179. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.d.ts +2 -2
  180. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.js +6 -4
  181. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.d.ts +2 -1
  182. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.js +5 -7
  183. package/dist/service/dynamodb/sim-dynamodb.js +3 -2
  184. package/dist/service/ecs/cfn/cluster/sim-cfn-ecs-cluster-creator.d.ts +3 -2
  185. package/dist/service/ecs/cfn/cluster/sim-cfn-ecs-cluster-creator.js +4 -6
  186. package/dist/service/ecs/cfn/service/sim-cfn-ecs-service-creator.d.ts +3 -2
  187. package/dist/service/ecs/cfn/service/sim-cfn-ecs-service-creator.js +4 -4
  188. package/dist/service/ecs/cfn/sim-cfn-ecs-created-resource.d.ts +5 -0
  189. package/dist/service/ecs/cfn/sim-cfn-ecs-created-resource.js +9 -0
  190. package/dist/service/ecs/cfn/sim-ecs-cfn-resource-factory.d.ts +2 -2
  191. package/dist/service/ecs/cfn/sim-ecs-cfn-resource-factory.js +11 -16
  192. package/dist/service/ecs/cfn/task-definition/sim-cfn-ecs-task-definition-creator.d.ts +3 -2
  193. package/dist/service/ecs/cfn/task-definition/sim-cfn-ecs-task-definition-creator.js +4 -6
  194. package/dist/service/ecs/sim-ecs-commands.js +3 -2
  195. package/dist/service/ecs/task/run/sim-ecs-container-environment.d.ts +12 -10
  196. package/dist/service/ecs/task/run/sim-ecs-container-environment.js +16 -18
  197. package/dist/service/elbv2/cfn/listener/sim-cfn-elbv2-listener-creator.d.ts +3 -2
  198. package/dist/service/elbv2/cfn/listener/sim-cfn-elbv2-listener-creator.js +4 -6
  199. package/dist/service/elbv2/cfn/load-balancer/sim-cfn-elbv2-load-balancer-creator.d.ts +3 -2
  200. package/dist/service/elbv2/cfn/load-balancer/sim-cfn-elbv2-load-balancer-creator.js +4 -6
  201. package/dist/service/elbv2/cfn/rule/sim-cfn-elbv2-listener-rule-creator.d.ts +3 -2
  202. package/dist/service/elbv2/cfn/rule/sim-cfn-elbv2-listener-rule-creator.js +4 -4
  203. package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-deleter.d.ts +2 -1
  204. package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-deleter.js +5 -5
  205. package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-factory.d.ts +2 -2
  206. package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-factory.js +8 -6
  207. package/dist/service/elbv2/cfn/target-group/sim-cfn-elbv2-target-group-creator.d.ts +3 -2
  208. package/dist/service/elbv2/cfn/target-group/sim-cfn-elbv2-target-group-creator.js +7 -11
  209. package/dist/service/elbv2/serve/sim-elbv2-router.js +2 -1
  210. package/dist/service/elbv2/sim-elbv2.js +3 -3
  211. package/dist/service/eventbridge/cfn/bus/sim-cfn-event-bus-creator.d.ts +2 -1
  212. package/dist/service/eventbridge/cfn/bus/sim-cfn-event-bus-creator.js +2 -4
  213. package/dist/service/eventbridge/cfn/rule/sim-cfn-event-rule-creator.d.ts +2 -1
  214. package/dist/service/eventbridge/cfn/rule/sim-cfn-event-rule-creator.js +5 -5
  215. package/dist/service/eventbridge/cfn/sim-cfn-event-bridge-resource-deleter.d.ts +2 -1
  216. package/dist/service/eventbridge/cfn/sim-cfn-event-bridge-resource-deleter.js +7 -7
  217. package/dist/service/eventbridge/cfn/sim-event-bridge-cfn-resource-factory.js +5 -3
  218. package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-failures.d.ts +16 -0
  219. package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-failures.js +19 -0
  220. package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-function.js +2 -1
  221. package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-queue.js +2 -1
  222. package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-task.js +4 -1
  223. package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-topic.js +2 -1
  224. package/dist/service/eventbridge/delivery/sim-event-bridge-target-role.d.ts +8 -3
  225. package/dist/service/eventbridge/delivery/sim-event-bridge-target-role.js +9 -3
  226. package/dist/service/eventbridge/sim-event-bridge.d.ts +1 -1
  227. package/dist/service/eventbridge/sim-event-bridge.js +3 -2
  228. package/dist/service/firehose/cfn/delivery-stream/sim-cfn-firehose-delivery-stream-creator.d.ts +2 -1
  229. package/dist/service/firehose/cfn/delivery-stream/sim-cfn-firehose-delivery-stream-creator.js +2 -2
  230. package/dist/service/firehose/cfn/sim-cfn-firehose-resource-deleter.d.ts +2 -1
  231. package/dist/service/firehose/cfn/sim-cfn-firehose-resource-deleter.js +2 -4
  232. package/dist/service/firehose/cfn/sim-firehose-cfn-resource-factory.d.ts +1 -1
  233. package/dist/service/firehose/cfn/sim-firehose-cfn-resource-factory.js +4 -3
  234. package/dist/service/firehose/sim-firehose.d.ts +1 -1
  235. package/dist/service/firehose/sim-firehose.js +3 -2
  236. package/dist/service/glue/sim-glue.d.ts +1 -1
  237. package/dist/service/glue/sim-glue.js +3 -2
  238. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +15 -11
  239. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +5 -18
  240. package/dist/service/iam/authorize/context/sim-iam-derived-conditions.d.ts +42 -0
  241. package/dist/service/iam/authorize/context/sim-iam-derived-conditions.js +44 -0
  242. package/dist/service/iam/authorize/match/condition/arn/equals/sim-iam-arn-equals.js +2 -2
  243. package/dist/service/iam/authorize/match/condition/arn/like/sim-iam-arn-like.js +2 -2
  244. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-all-values-string-operator.d.ts +20 -0
  245. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-all-values-string-operator.js +27 -0
  246. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-any-value-string-operator.d.ts +21 -0
  247. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-any-value-string-operator.js +28 -0
  248. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-operator-factories.d.ts +5 -0
  249. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-operator-factories.js +36 -0
  250. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-scalar-string-operator.d.ts +20 -0
  251. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-scalar-string-operator.js +29 -0
  252. package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-number-lte.d.ts +1 -0
  253. package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-number-lte.js +1 -0
  254. package/dist/service/iam/authorize/match/condition/sim-iam-condition-match.d.ts +26 -0
  255. package/dist/service/iam/authorize/match/condition/sim-iam-condition-match.js +1 -0
  256. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator-parser.js +2 -0
  257. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator.d.ts +15 -0
  258. package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.d.ts +11 -3
  259. package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.js +29 -11
  260. package/dist/service/iam/authorize/match/condition/sim-iam-string-comparison.d.ts +24 -0
  261. package/dist/service/iam/authorize/match/condition/sim-iam-string-comparison.js +17 -0
  262. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.d.ts +1 -0
  263. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.js +1 -0
  264. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-equals.js +2 -1
  265. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-like.js +2 -4
  266. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.d.ts +1 -0
  267. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.js +1 -0
  268. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-equals.js +2 -1
  269. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-like.js +2 -4
  270. package/dist/service/iam/authorize/match/condition/string/equals/sim-iam-string-equals.js +2 -1
  271. package/dist/service/iam/authorize/match/condition/string/like/sim-iam-string-like.js +2 -4
  272. package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.d.ts +1 -0
  273. package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.js +1 -0
  274. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts +18 -1
  275. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js +32 -4
  276. package/dist/service/iam/authorize/sim-iam-decision.d.ts +12 -0
  277. package/dist/service/iam/authorize/sim-iam-decision.js +14 -0
  278. package/dist/service/iam/authorize/sim-iam-region-auth-z.d.ts +31 -0
  279. package/dist/service/iam/authorize/sim-iam-region-auth-z.js +65 -0
  280. package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statement.type.d.ts +31 -0
  281. package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statement.type.js +1 -0
  282. package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statements.d.ts +31 -0
  283. package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statements.js +43 -0
  284. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.d.ts +2 -1
  285. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.js +2 -4
  286. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.d.ts +2 -1
  287. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js +3 -3
  288. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.d.ts +2 -1
  289. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.js +7 -7
  290. package/dist/service/iam/cfn/role/sim-cfn-iam-role-creator.d.ts +2 -1
  291. package/dist/service/iam/cfn/role/sim-cfn-iam-role-creator.js +8 -8
  292. package/dist/service/iam/cfn/role/sim-cfn-iam-role-deleter.d.ts +2 -1
  293. package/dist/service/iam/cfn/role/sim-cfn-iam-role-deleter.js +10 -12
  294. package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.d.ts +2 -1
  295. package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.js +12 -16
  296. package/dist/service/iam/cfn/sim-cfn-iam-resource-factory.js +8 -5
  297. package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.d.ts +2 -1
  298. package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.js +11 -11
  299. package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.d.ts +4 -2
  300. package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.js +17 -3
  301. package/dist/service/iam/command/policy/create-policy/create-policy-input-resolver.js +4 -1
  302. package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.js +5 -1
  303. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.js +5 -1
  304. package/dist/service/iam/command/sim-iam-command-handlers.js +6 -1
  305. package/dist/service/iam/policy/parse/sim-iam-document-parser.d.ts +4 -1
  306. package/dist/service/iam/policy/parse/sim-iam-document-parser.js +13 -15
  307. package/dist/service/iam/policy/sim-iam-statement-label.d.ts +28 -0
  308. package/dist/service/iam/policy/sim-iam-statement-label.js +17 -0
  309. package/dist/service/iam/policy/sim-iam-statement-strings.d.ts +11 -0
  310. package/dist/service/iam/policy/sim-iam-statement-strings.js +27 -0
  311. package/dist/service/iam/validate/sim-iam-policy-document-validator.d.ts +9 -2
  312. package/dist/service/iam/validate/sim-iam-policy-document-validator.js +37 -19
  313. package/dist/service/kinesis/cfn/sim-cfn-kinesis-resource-deleter.d.ts +2 -1
  314. package/dist/service/kinesis/cfn/sim-cfn-kinesis-resource-deleter.js +2 -2
  315. package/dist/service/kinesis/cfn/sim-kinesis-cfn-resource-factory.d.ts +1 -1
  316. package/dist/service/kinesis/cfn/sim-kinesis-cfn-resource-factory.js +4 -3
  317. package/dist/service/kinesis/cfn/stream/sim-cfn-kinesis-stream-creator.d.ts +2 -1
  318. package/dist/service/kinesis/cfn/stream/sim-cfn-kinesis-stream-creator.js +5 -7
  319. package/dist/service/kinesis/sim-kinesis.d.ts +1 -1
  320. package/dist/service/kinesis/sim-kinesis.js +3 -2
  321. package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-creator.d.ts +2 -1
  322. package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-creator.js +2 -2
  323. package/dist/service/kms/cfn/key/sim-cfn-kms-key-creator.d.ts +6 -6
  324. package/dist/service/kms/cfn/key/sim-cfn-kms-key-creator.js +11 -11
  325. package/dist/service/kms/cfn/sim-cfn-kms-resource-deleter.d.ts +2 -1
  326. package/dist/service/kms/cfn/sim-cfn-kms-resource-deleter.js +3 -5
  327. package/dist/service/kms/cfn/sim-cfn-kms-resource-factory.d.ts +2 -1
  328. package/dist/service/kms/cfn/sim-cfn-kms-resource-factory.js +6 -4
  329. package/dist/service/kms/sim-kms-commands.d.ts +1 -1
  330. package/dist/service/kms/sim-kms-commands.js +3 -2
  331. package/dist/service/lambda/cfn/alias/sim-cfn-lambda-alias-creator.d.ts +2 -1
  332. package/dist/service/lambda/cfn/alias/sim-cfn-lambda-alias-creator.js +2 -2
  333. package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-creator.d.ts +2 -1
  334. package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-creator.js +2 -2
  335. package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-remover.d.ts +2 -1
  336. package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-remover.js +2 -4
  337. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-creator.d.ts +2 -1
  338. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-creator.js +2 -2
  339. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-creator.d.ts +2 -1
  340. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-creator.js +3 -4
  341. package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-creator.d.ts +2 -1
  342. package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-creator.js +2 -2
  343. package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-revoker.d.ts +2 -1
  344. package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-revoker.js +2 -2
  345. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-deleter.d.ts +2 -8
  346. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-deleter.js +18 -38
  347. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.d.ts +2 -2
  348. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.js +12 -9
  349. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.d.ts +2 -1
  350. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +2 -2
  351. package/dist/service/lambda/cfn/version/sim-cfn-lambda-version-creator.d.ts +2 -1
  352. package/dist/service/lambda/cfn/version/sim-cfn-lambda-version-creator.js +2 -2
  353. package/dist/service/lambda/function/code/sim-lambda-vm-zip-function.factory.d.ts +7 -0
  354. package/dist/service/lambda/function/code/sim-lambda-vm-zip-function.factory.js +1 -0
  355. package/dist/service/lambda/function/code/vm/sdk/sim-lambda-provided-sdk-module.d.ts +19 -0
  356. package/dist/service/lambda/function/code/vm/sdk/sim-lambda-provided-sdk-module.js +78 -0
  357. package/dist/service/lambda/function/code/vm/sdk/sim-lambda-sdk-packages-not-installed.error.d.ts +15 -0
  358. package/dist/service/lambda/function/code/vm/sdk/sim-lambda-sdk-packages-not-installed.error.js +27 -0
  359. package/dist/service/lambda/function/code/vm/sdk/sim-lambda-vm-sdk-module-provider.d.ts +9 -0
  360. package/dist/service/lambda/function/code/vm/sdk/sim-sdk-lambda-vm-module-provider.d.ts +10 -0
  361. package/dist/service/lambda/function/code/vm/sdk/sim-sdk-lambda-vm-module-provider.js +28 -34
  362. package/dist/service/lambda/function/code/vm/sim-lambda-host-modules.d.ts +15 -0
  363. package/dist/service/lambda/function/code/vm/sim-lambda-host-modules.js +31 -0
  364. package/dist/service/lambda/function/code/vm/sim-lambda-vm-module-resolver.d.ts +7 -0
  365. package/dist/service/lambda/function/code/vm/sim-lambda-vm-module-resolver.js +15 -0
  366. package/dist/service/lambda/function/code/vm/sim-lambda-vm-modules.js +5 -4
  367. package/dist/service/lambda/serve/sim-lambda-url-router.js +2 -1
  368. package/dist/service/lambda/sim-lambda-commands.d.ts +1 -1
  369. package/dist/service/lambda/sim-lambda-commands.js +3 -2
  370. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.d.ts +3 -2
  371. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.js +4 -6
  372. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.d.ts +3 -2
  373. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.js +4 -6
  374. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.d.ts +3 -2
  375. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.js +4 -4
  376. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.d.ts +2 -1
  377. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +4 -4
  378. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +2 -2
  379. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +7 -5
  380. package/dist/service/logs/sim-logs-commands.d.ts +1 -1
  381. package/dist/service/logs/sim-logs-commands.js +3 -2
  382. package/dist/service/logs/subscription/lambda/sim-logs-destination-permission.js +2 -1
  383. package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-creator.d.ts +3 -2
  384. package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-creator.js +4 -6
  385. package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-group-creator.d.ts +3 -2
  386. package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-group-creator.js +4 -6
  387. package/dist/service/personalize/cfn/sim-cfn-personalize-event-tracker-creator.d.ts +3 -2
  388. package/dist/service/personalize/cfn/sim-cfn-personalize-event-tracker-creator.js +4 -6
  389. package/dist/service/personalize/cfn/sim-cfn-personalize-schema-creator.d.ts +3 -2
  390. package/dist/service/personalize/cfn/sim-cfn-personalize-schema-creator.js +4 -4
  391. package/dist/service/personalize/cfn/sim-cfn-personalize-solution-creator.d.ts +3 -2
  392. package/dist/service/personalize/cfn/sim-cfn-personalize-solution-creator.js +4 -6
  393. package/dist/service/personalize/cfn/sim-personalize-cfn-resource-factory.d.ts +2 -2
  394. package/dist/service/personalize/cfn/sim-personalize-cfn-resource-factory.js +7 -6
  395. package/dist/service/personalize/sim-personalize-data-operations.d.ts +1 -1
  396. package/dist/service/personalize/sim-personalize-data-operations.js +3 -2
  397. package/dist/service/rekognition/sim-rekognition.d.ts +1 -1
  398. package/dist/service/rekognition/sim-rekognition.js +3 -2
  399. package/dist/service/route53/cfn/dnssec/sim-cfn-r53-ksk-creator.d.ts +3 -2
  400. package/dist/service/route53/cfn/dnssec/sim-cfn-r53-ksk-creator.js +5 -5
  401. package/dist/service/route53/cfn/dnssec/sim-cfn-r53-zone-signing-creator.d.ts +3 -2
  402. package/dist/service/route53/cfn/dnssec/sim-cfn-r53-zone-signing-creator.js +4 -8
  403. package/dist/service/route53/cfn/hosted-zone/sim-cfn-r53-zone-creator.d.ts +2 -1
  404. package/dist/service/route53/cfn/hosted-zone/sim-cfn-r53-zone-creator.js +2 -2
  405. package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.d.ts +9 -1
  406. package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.js +23 -2
  407. package/dist/service/route53/cfn/sim-cfn-route53-resource-deleter.d.ts +5 -3
  408. package/dist/service/route53/cfn/sim-cfn-route53-resource-deleter.js +9 -28
  409. package/dist/service/route53/cfn/sim-cfn-route53-resource-factory.js +9 -5
  410. package/dist/service/route53/sim-route53.d.ts +1 -1
  411. package/dist/service/route53/sim-route53.js +5 -2
  412. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.d.ts +3 -0
  413. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +6 -13
  414. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts +2 -1
  415. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js +3 -2
  416. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.d.ts +2 -1
  417. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.js +2 -2
  418. package/dist/service/s3/cfn/sim-cfn-s3-resource-deleter.d.ts +2 -1
  419. package/dist/service/s3/cfn/sim-cfn-s3-resource-deleter.js +3 -7
  420. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.d.ts +2 -2
  421. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.js +6 -4
  422. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js +4 -1
  423. package/dist/service/s3/notification/destination/lambda/sim-aws-s3-notification-functions.js +2 -1
  424. package/dist/service/s3/notification/destination/sns/sim-s3-notification-topic.js +2 -1
  425. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue.js +2 -1
  426. package/dist/service/s3/sim-s3-commands.d.ts +1 -1
  427. package/dist/service/s3/sim-s3-commands.js +3 -2
  428. package/dist/service/scheduler/cfn/sim-cfn-schedule-creator.d.ts +26 -0
  429. package/dist/service/scheduler/cfn/sim-cfn-schedule-creator.js +49 -0
  430. package/dist/service/scheduler/cfn/sim-cfn-schedule-group-creator.d.ts +31 -0
  431. package/dist/service/scheduler/cfn/sim-cfn-schedule-group-creator.js +48 -0
  432. package/dist/service/scheduler/cfn/sim-cfn-schedule-group-properties.d.ts +26 -0
  433. package/dist/service/scheduler/cfn/sim-cfn-schedule-group-properties.js +68 -0
  434. package/dist/service/scheduler/cfn/sim-cfn-schedule-properties.js +4 -10
  435. package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-error.d.ts +14 -3
  436. package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-error.js +28 -6
  437. package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-lookup.d.ts +10 -4
  438. package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-lookup.js +9 -6
  439. package/dist/service/scheduler/cfn/sim-scheduler-cfn-resource-factory.d.ts +6 -8
  440. package/dist/service/scheduler/cfn/sim-scheduler-cfn-resource-factory.js +20 -33
  441. package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.d.ts +9 -8
  442. package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.js +14 -15
  443. package/dist/service/scheduler/command/group/group.command.d.ts +90 -0
  444. package/dist/service/scheduler/command/group/group.command.js +1 -0
  445. package/dist/service/scheduler/command/group/sim-scheduler-described-group.d.ts +15 -0
  446. package/dist/service/scheduler/command/group/sim-scheduler-described-group.js +29 -0
  447. package/dist/service/scheduler/command/group/sim-scheduler-group-access.d.ts +57 -0
  448. package/dist/service/scheduler/command/group/sim-scheduler-group-access.js +70 -0
  449. package/dist/service/scheduler/command/group/sim-scheduler-group-commands.d.ts +46 -0
  450. package/dist/service/scheduler/command/group/sim-scheduler-group-commands.js +72 -0
  451. package/dist/service/scheduler/command/group/sim-scheduler-listed-groups.d.ts +6 -0
  452. package/dist/service/scheduler/command/group/sim-scheduler-listed-groups.js +10 -0
  453. package/dist/service/scheduler/command/group/sim-scheduler-unsimulated-group-input.d.ts +14 -0
  454. package/dist/service/scheduler/command/group/sim-scheduler-unsimulated-group-input.js +19 -0
  455. package/dist/service/scheduler/command/schedule/sim-scheduler-create-schedule.js +1 -0
  456. package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.d.ts +16 -0
  457. package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.js +23 -3
  458. package/dist/service/scheduler/command/sim-scheduler-command.types.d.ts +1 -0
  459. package/dist/service/scheduler/command/sim-scheduler-commands.d.ts +4 -0
  460. package/dist/service/scheduler/command/sim-scheduler-commands.js +14 -1
  461. package/dist/service/scheduler/delivery/sim-aws-scheduler-delivery-targets.js +1 -1
  462. package/dist/service/scheduler/delivery/sim-scheduler-delivery-failures.d.ts +16 -0
  463. package/dist/service/scheduler/delivery/sim-scheduler-delivery-failures.js +19 -0
  464. package/dist/service/scheduler/delivery/sim-scheduler-delivery-function.js +2 -1
  465. package/dist/service/scheduler/delivery/sim-scheduler-delivery-queue.js +2 -1
  466. package/dist/service/scheduler/delivery/sim-scheduler-delivery-topic.js +2 -1
  467. package/dist/service/scheduler/delivery/sim-scheduler-execution-role.d.ts +9 -3
  468. package/dist/service/scheduler/delivery/sim-scheduler-execution-role.js +10 -3
  469. package/dist/service/scheduler/group/sim-scheduler-schedule-group-arn.d.ts +11 -0
  470. package/dist/service/scheduler/group/sim-scheduler-schedule-group-arn.js +13 -0
  471. package/dist/service/scheduler/group/sim-scheduler-schedule-group-store.d.ts +46 -0
  472. package/dist/service/scheduler/group/sim-scheduler-schedule-group-store.js +65 -0
  473. package/dist/service/scheduler/group/sim-scheduler-schedule-group.d.ts +25 -0
  474. package/dist/service/scheduler/group/sim-scheduler-schedule-group.js +32 -0
  475. package/dist/service/scheduler/index.d.ts +3 -1
  476. package/dist/service/scheduler/index.js +3 -1
  477. package/dist/service/scheduler/schedule/sim-scheduler-schedule-name.d.ts +11 -9
  478. package/dist/service/scheduler/schedule/sim-scheduler-schedule-name.js +15 -18
  479. package/dist/service/scheduler/schedule/sim-scheduler-schedule-store.d.ts +7 -0
  480. package/dist/service/scheduler/schedule/sim-scheduler-schedule-store.js +13 -0
  481. package/dist/service/scheduler/schedule/sim-scheduler-schedule.d.ts +13 -0
  482. package/dist/service/scheduler/schedule/sim-scheduler-schedule.js +16 -0
  483. package/dist/service/scheduler/sdk/sim-scheduler-sdk-command-router.js +16 -0
  484. package/dist/service/scheduler/sim-scheduler-inspection.d.ts +14 -0
  485. package/dist/service/scheduler/sim-scheduler-inspection.js +15 -0
  486. package/dist/service/scheduler/sim-scheduler.d.ts +19 -1
  487. package/dist/service/scheduler/sim-scheduler.js +38 -2
  488. package/dist/service/secretsmanager/cfn/dynamic/sim-cfn-secrets-manager-dynamic-reference-resolver.d.ts +13 -15
  489. package/dist/service/secretsmanager/cfn/dynamic/sim-cfn-secrets-manager-dynamic-reference-resolver.js +22 -43
  490. package/dist/service/secretsmanager/cfn/dynamic/sim-cfn-secrets-manager-reference-stand-in.d.ts +9 -0
  491. package/dist/service/secretsmanager/cfn/dynamic/sim-cfn-secrets-manager-reference-stand-in.js +14 -0
  492. package/dist/service/secretsmanager/cfn/dynamic/sim-cfn-secrets-manager-reference-value.d.ts +12 -0
  493. package/dist/service/secretsmanager/cfn/dynamic/sim-cfn-secrets-manager-reference-value.js +29 -0
  494. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-creator.d.ts +2 -1
  495. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-creator.js +2 -2
  496. package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-resource-factory.d.ts +2 -2
  497. package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-resource-factory.js +4 -5
  498. package/dist/service/secretsmanager/sim-secrets-manager.d.ts +1 -1
  499. package/dist/service/secretsmanager/sim-secrets-manager.js +3 -2
  500. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.d.ts +3 -2
  501. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.js +4 -4
  502. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.d.ts +3 -2
  503. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.js +4 -8
  504. package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.d.ts +2 -2
  505. package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.js +7 -6
  506. package/dist/service/ses/cfn/template/sim-cfn-ses-template-creator.d.ts +3 -2
  507. package/dist/service/ses/cfn/template/sim-cfn-ses-template-creator.js +4 -8
  508. package/dist/service/ses/sim-ses-commands.d.ts +1 -1
  509. package/dist/service/ses/sim-ses-commands.js +3 -2
  510. package/dist/service/sns/cfn/sim-cfn-sns-resource-deleter.d.ts +5 -8
  511. package/dist/service/sns/cfn/sim-cfn-sns-resource-deleter.js +10 -28
  512. package/dist/service/sns/cfn/sim-sns-cfn-resource-factory.js +10 -5
  513. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-creator.d.ts +2 -1
  514. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-creator.js +2 -2
  515. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-creator.d.ts +2 -1
  516. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-creator.js +5 -7
  517. package/dist/service/sns/cfn/topic-policy/sim-cfn-sns-topic-policy-creator.d.ts +9 -1
  518. package/dist/service/sns/cfn/topic-policy/sim-cfn-sns-topic-policy-creator.js +20 -4
  519. package/dist/service/sns/delivery/lambda/sim-sns-delivery-function.js +2 -1
  520. package/dist/service/sns/delivery/sqs/sim-sns-delivery-queue.js +2 -1
  521. package/dist/service/sns/sim-sns.d.ts +1 -1
  522. package/dist/service/sns/sim-sns.js +3 -2
  523. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-creator.d.ts +2 -1
  524. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-creator.js +2 -4
  525. package/dist/service/sqs/cfn/queue-policy/sim-cfn-sqs-queue-policy-creator.d.ts +2 -1
  526. package/dist/service/sqs/cfn/queue-policy/sim-cfn-sqs-queue-policy-creator.js +4 -4
  527. package/dist/service/sqs/cfn/sim-cfn-sqs-resource-deleter.d.ts +2 -1
  528. package/dist/service/sqs/cfn/sim-cfn-sqs-resource-deleter.js +7 -7
  529. package/dist/service/sqs/cfn/sim-sqs-cfn-resource-factory.js +5 -3
  530. package/dist/service/sqs/sim-sqs.d.ts +1 -1
  531. package/dist/service/sqs/sim-sqs.js +3 -2
  532. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-dynamic-reference-resolver.d.ts +22 -6
  533. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-dynamic-reference-resolver.js +39 -24
  534. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-dynamic-reference-resolver.d.ts +10 -5
  535. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-dynamic-reference-resolver.js +10 -8
  536. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-creator.d.ts +2 -1
  537. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-creator.js +2 -2
  538. package/dist/service/ssm/cfn/sim-cfn-ssm-resource-factory.d.ts +2 -2
  539. package/dist/service/ssm/cfn/sim-cfn-ssm-resource-factory.js +4 -3
  540. package/dist/service/ssm/sim-ssm.d.ts +11 -3
  541. package/dist/service/ssm/sim-ssm.js +15 -6
  542. package/dist/service/stepfunctions/cfn/sim-cfn-step-functions-resource-deleter.d.ts +2 -1
  543. package/dist/service/stepfunctions/cfn/sim-cfn-step-functions-resource-deleter.js +2 -4
  544. package/dist/service/stepfunctions/cfn/sim-step-functions-cfn-resource-factory.d.ts +1 -1
  545. package/dist/service/stepfunctions/cfn/sim-step-functions-cfn-resource-factory.js +4 -3
  546. package/dist/service/stepfunctions/cfn/state-machine/sim-cfn-state-machine-creator.d.ts +2 -1
  547. package/dist/service/stepfunctions/cfn/state-machine/sim-cfn-state-machine-creator.js +2 -2
  548. package/dist/service/stepfunctions/task/sim-aws-states-task-targets.js +2 -4
  549. package/dist/service/stepfunctions/task/sim-states-execution-role.d.ts +3 -3
  550. package/dist/service/stepfunctions/task/sim-states-execution-role.js +4 -3
  551. package/dist/service/stepfunctions/task/sim-states-task-function.js +2 -1
  552. package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.d.ts +3 -0
  553. package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.js +2 -7
  554. package/dist/service/sts/auth-z/assume-role-source-account-auth-z.d.ts +6 -0
  555. package/dist/service/sts/auth-z/assume-role-source-account-auth-z.js +3 -0
  556. package/dist/service/sts/auth-z/assume-role-target-auth-z.d.ts +6 -0
  557. package/dist/service/sts/auth-z/assume-role-target-auth-z.js +3 -0
  558. package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.d.ts +6 -0
  559. package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.js +1 -0
  560. package/dist/service/sts/command/assume-role/assume-role.handler.d.ts +5 -0
  561. package/dist/service/sts/command/assume-role/assume-role.handler.js +2 -1
  562. package/dist/service/sts/service-role/sim-service-role-source.d.ts +33 -0
  563. package/dist/service/sts/service-role/sim-service-role-source.js +26 -0
  564. package/dist/service/sts/service-role/sim-service-role-target.d.ts +26 -0
  565. package/dist/service/sts/service-role/sim-service-role-target.js +27 -0
  566. package/dist/service/sts/service-role/sim-service-role.d.ts +16 -20
  567. package/dist/service/sts/service-role/sim-service-role.js +7 -21
  568. package/dist/service/sts/sim-sts.js +1 -0
  569. package/dist/service/wafv2/cfn/association/sim-cfn-waf-association-creator.d.ts +3 -2
  570. package/dist/service/wafv2/cfn/association/sim-cfn-waf-association-creator.js +4 -6
  571. package/dist/service/wafv2/cfn/ip-set/sim-cfn-waf-ip-set-creator.d.ts +3 -2
  572. package/dist/service/wafv2/cfn/ip-set/sim-cfn-waf-ip-set-creator.js +4 -4
  573. package/dist/service/wafv2/cfn/regex-pattern-set/sim-cfn-waf-regex-set-creator.d.ts +3 -2
  574. package/dist/service/wafv2/cfn/regex-pattern-set/sim-cfn-waf-regex-set-creator.js +4 -4
  575. package/dist/service/wafv2/cfn/sim-cfn-waf-resource-deleter.d.ts +2 -1
  576. package/dist/service/wafv2/cfn/sim-cfn-waf-resource-deleter.js +5 -5
  577. package/dist/service/wafv2/cfn/sim-waf-cfn-resource-factory.d.ts +2 -2
  578. package/dist/service/wafv2/cfn/sim-waf-cfn-resource-factory.js +8 -6
  579. package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-web-acl-creator.d.ts +3 -2
  580. package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-web-acl-creator.js +4 -6
  581. package/dist/service/wafv2/sim-wafv2-commands.d.ts +1 -1
  582. package/dist/service/wafv2/sim-wafv2-commands.js +3 -2
  583. package/dist/util/clock/sim-clock-control.d.ts +3 -1
  584. package/dist/util/clock/sim-clock-control.js +2 -0
  585. package/dist/util/clock/sim-controllable-clock.d.ts +3 -1
  586. package/dist/util/clock/sim-controllable-clock.js +2 -0
  587. package/dist/util/clock/sim-duration.d.ts +6 -2
  588. package/dist/util/clock/sim-duration.js +8 -1
  589. package/package.json +4 -3
@@ -0,0 +1,103 @@
1
+ /** The name the rewrite calls, which the aggregate shims register. */
2
+ export const countDistinctShim = "count_distinct";
3
+ /** Where one `count(DISTINCT` opens, however the statement spaced it. */
4
+ const opening = /\bcount\s*\(\s*DISTINCT\b/giu;
5
+ /** One name in a column reference, quoted or bare. */
6
+ const namePart = /^(?:"[^"]*"|[A-Za-z_]\w*)$/u;
7
+ /**
8
+ * `count(DISTINCT <expression>)`, written as a call the parser will take.
9
+ *
10
+ * The parser's Athena grammar takes a column after `DISTINCT` and nothing else,
11
+ * so `count(DISTINCT concat(a, b))` is refused outright and the whole query
12
+ * falls back. SQLite takes the same expression happily, and so does Athena, so
13
+ * the gap is the grammar rather than the engine.
14
+ *
15
+ * A plain column is left alone, since that already parses and SQLite counts it
16
+ * natively. Everything else becomes a call to one aggregate of the simulator's
17
+ * own, which counts the distinct values the same way.
18
+ */
19
+ export function simAthenaCountDistinct(sql) {
20
+ const quoted = quotedPositions(sql);
21
+ let rewritten = "";
22
+ let read = 0;
23
+ opening.lastIndex = 0;
24
+ for (let match = opening.exec(sql); match !== null; match = opening.exec(sql)) {
25
+ const closes = closingParenthesis(sql, opening.lastIndex, quoted);
26
+ if (closes === undefined || quoted.at(match.index) === true) {
27
+ continue;
28
+ }
29
+ const argument = sql.slice(opening.lastIndex, closes).trim();
30
+ if (isColumnReference(argument)) {
31
+ continue;
32
+ }
33
+ rewritten += `${sql.slice(read, match.index)}${countDistinctShim}(${argument})`;
34
+ read = closes + 1;
35
+ opening.lastIndex = read;
36
+ }
37
+ return rewritten + sql.slice(read);
38
+ }
39
+ /**
40
+ * Whether this argument is a column the grammar would have taken as it stands.
41
+ *
42
+ * A quoted name carrying a dot of its own reads here as two names and fails
43
+ * this. The call is then rewritten, and the rewrite answers the same way.
44
+ */
45
+ function isColumnReference(argument) {
46
+ return argument.split(".").every((part) => namePart.test(part.trim()));
47
+ }
48
+ /**
49
+ * Whether the character at each position sits inside quotes.
50
+ *
51
+ * Both of SQL's quotes are tracked. A single quote opens a string literal and a
52
+ * double quote opens a delimited identifier, and either is free to carry the
53
+ * text of a call. Rewriting inside a literal would change the value a
54
+ * comparison is made against, and rewriting inside an identifier would name a
55
+ * different column.
56
+ *
57
+ * SQL escapes a quote inside either by doubling it, which reads here as one
58
+ * quoted run ending and another starting. The positions in between land the
59
+ * same way whichever reading is taken.
60
+ */
61
+ function quotedPositions(sql) {
62
+ const inside = [];
63
+ let quote;
64
+ for (const character of quotableCharacters(sql)) {
65
+ if (quote === undefined && (character === "'" || character === '"')) {
66
+ quote = character;
67
+ }
68
+ else if (quote === character) {
69
+ quote = undefined;
70
+ }
71
+ inside.push(quote !== undefined);
72
+ }
73
+ return inside;
74
+ }
75
+ /** Each character of the statement, by position rather than by code point. */
76
+ function* quotableCharacters(sql) {
77
+ for (let at = 0; at < sql.length; at += 1) {
78
+ yield sql.charAt(at);
79
+ }
80
+ }
81
+ /**
82
+ * Where the parenthesis that opened this call closes, or nothing where the
83
+ * statement never closes it.
84
+ *
85
+ * Depth is counted so that a call carrying calls of its own is read whole, and
86
+ * a parenthesis inside quotes is passed over so that it is not counted.
87
+ */
88
+ function closingParenthesis(sql, from, quoted) {
89
+ let depth = 0;
90
+ for (let at = from; at < sql.length; at += 1) {
91
+ const character = quoted.at(at) === true ? "" : sql.charAt(at);
92
+ if (character === "(") {
93
+ depth += 1;
94
+ }
95
+ else if (character === ")") {
96
+ if (depth === 0) {
97
+ return at;
98
+ }
99
+ depth -= 1;
100
+ }
101
+ }
102
+ return undefined;
103
+ }
@@ -0,0 +1,19 @@
1
+ import type { SQLOutputValue } from "node:sqlite";
2
+ /**
3
+ * The values one aggregate has seen, as SQLite will carry them between rows.
4
+ *
5
+ * SQLite holds an accumulator as one of its own values rather than as an
6
+ * object, so the set travels as the JSON text of its keys.
7
+ */
8
+ export type SimAthenaDistinctValues = string;
9
+ /** An empty accumulator, which is what an aggregate over no rows answers from. */
10
+ export declare const noDistinctValues: SimAthenaDistinctValues;
11
+ /**
12
+ * This value with one more added, where it is not null.
13
+ *
14
+ * Trino and SQLite both leave a null out of a distinct count, so a null row
15
+ * adds nothing.
16
+ */
17
+ export declare function withDistinctValue(accumulator: SimAthenaDistinctValues, value: SQLOutputValue): SimAthenaDistinctValues;
18
+ /** How many distinct values this accumulator saw. */
19
+ export declare function countedDistinctValues(accumulator: SimAthenaDistinctValues): number;
@@ -0,0 +1,37 @@
1
+ /** An empty accumulator, which is what an aggregate over no rows answers from. */
2
+ export const noDistinctValues = "[]";
3
+ /**
4
+ * This value with one more added, where it is not null.
5
+ *
6
+ * Trino and SQLite both leave a null out of a distinct count, so a null row
7
+ * adds nothing.
8
+ */
9
+ export function withDistinctValue(accumulator, value) {
10
+ if (value === null) {
11
+ return accumulator;
12
+ }
13
+ const seen = new Set(JSON.parse(accumulator));
14
+ seen.add(keyOf(value));
15
+ return JSON.stringify([...seen]);
16
+ }
17
+ /** How many distinct values this accumulator saw. */
18
+ export function countedDistinctValues(accumulator) {
19
+ return JSON.parse(accumulator).length;
20
+ }
21
+ /**
22
+ * One value as the key that tells it apart from the others.
23
+ *
24
+ * The tag is what keeps the number `1` and the text `'1'` apart, which is how
25
+ * SQLite keeps them apart too. A whole number arrives as a `bigint` or as a
26
+ * `number` by its size alone, so both take the same tag and the same spelling.
27
+ * Bytes are keyed by their hex, since a digest is a blob here and two rows
28
+ * carrying the same digest are one value.
29
+ */
30
+ function keyOf(value) {
31
+ if (typeof value === "string") {
32
+ return `s:${value}`;
33
+ }
34
+ return value instanceof Uint8Array
35
+ ? `b:${Buffer.from(value).toString("hex")}`
36
+ : `n:${String(value)}`;
37
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * The 64-bit arithmetic both hand-written hashes are built on.
3
+ *
4
+ * Neither xxHash64 nor MurmurHash3 has an implementation in Node, and both are
5
+ * defined over 64-bit words. A BigInt carries as many bits as it is given, so
6
+ * every operation masks its answer back down to the width the algorithm works
7
+ * in.
8
+ */
9
+ /** Every bit of one 64-bit word. */
10
+ export declare const hashWord: bigint;
11
+ /** One word rotated left, with the bits carried off the top brought back in. */
12
+ export declare function rotateWord(value: bigint, by: number): bigint;
13
+ /** Whatever bytes are left over, read as the low end of a word. */
14
+ export declare function partialWord(bytes: Uint8Array): bigint;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The 64-bit arithmetic both hand-written hashes are built on.
3
+ *
4
+ * Neither xxHash64 nor MurmurHash3 has an implementation in Node, and both are
5
+ * defined over 64-bit words. A BigInt carries as many bits as it is given, so
6
+ * every operation masks its answer back down to the width the algorithm works
7
+ * in.
8
+ */
9
+ /** Every bit of one 64-bit word. */
10
+ export const hashWord = (1n << 64n) - 1n;
11
+ /** One word rotated left, with the bits carried off the top brought back in. */
12
+ export function rotateWord(value, by) {
13
+ return ((value << BigInt(by)) | (value >> BigInt(64 - by))) & hashWord;
14
+ }
15
+ /** Whatever bytes are left over, read as the low end of a word. */
16
+ export function partialWord(bytes) {
17
+ let value = 0n;
18
+ for (const [index, byte] of bytes.entries()) {
19
+ value |= BigInt(byte) << BigInt(8 * index);
20
+ }
21
+ return value;
22
+ }
@@ -0,0 +1,15 @@
1
+ /** The two accumulators MurmurHash3 carries, the low half first. */
2
+ export type SimAthenaMurmurHalves = readonly [bigint, bigint];
3
+ /** Two words scrambled into the keys one round mixes in. */
4
+ export declare function murmurKeys(low: bigint, high: bigint): SimAthenaMurmurHalves;
5
+ /**
6
+ * Both accumulators taken through one round, the low half leading.
7
+ *
8
+ * The high half is crossed with the low half the round has just written, which
9
+ * is what carries a block into every later one.
10
+ */
11
+ export declare function murmurRound(halves: SimAthenaMurmurHalves, keys: SimAthenaMurmurHalves): SimAthenaMurmurHalves;
12
+ /** Each accumulator with the other added into it, the low half first. */
13
+ export declare function murmurCrossed(halves: SimAthenaMurmurHalves): SimAthenaMurmurHalves;
14
+ /** The final mix, which spreads every bit of one half over its word. */
15
+ export declare function murmurAvalanche(value: bigint): bigint;
@@ -0,0 +1,37 @@
1
+ import { hashWord as word, rotateWord as rotate, } from "./sim-athena-hash-words.js";
2
+ const constant1 = 0x87c37b91114253d5n;
3
+ const constant2 = 0x4cf5ad432745937fn;
4
+ /** Two words scrambled into the keys one round mixes in. */
5
+ export function murmurKeys(low, high) {
6
+ return [
7
+ scramble(low, constant1, 31, constant2),
8
+ scramble(high, constant2, 33, constant1),
9
+ ];
10
+ }
11
+ /**
12
+ * Both accumulators taken through one round, the low half leading.
13
+ *
14
+ * The high half is crossed with the low half the round has just written, which
15
+ * is what carries a block into every later one.
16
+ */
17
+ export function murmurRound(halves, keys) {
18
+ const low = mixed(halves[0] ^ keys[0], halves[1], 27, 0x52dce729n);
19
+ return [low, mixed(halves[1] ^ keys[1], low, 31, 0x38495ab5n)];
20
+ }
21
+ /** Each accumulator with the other added into it, the low half first. */
22
+ export function murmurCrossed(halves) {
23
+ const low = (halves[0] + halves[1]) & word;
24
+ return [low, (halves[1] + low) & word];
25
+ }
26
+ /** The final mix, which spreads every bit of one half over its word. */
27
+ export function murmurAvalanche(value) {
28
+ let spread = ((value ^ (value >> 33n)) * 0xff51afd7ed558ccdn) & word;
29
+ spread = ((spread ^ (spread >> 33n)) * 0xc4ceb9fe1a85ec53n) & word;
30
+ return spread ^ (spread >> 33n);
31
+ }
32
+ function scramble(value, before, by, after) {
33
+ return (rotate((value * before) & word, by) * after) & word;
34
+ }
35
+ function mixed(half, other, by, added) {
36
+ return ((rotate(half, by) + other) * 5n + added) & word;
37
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The 128-bit MurmurHash3 of these bytes, seeded with zero, as Trino's
3
+ * `murmur3` seeds it.
4
+ *
5
+ * This is the x64 variant, which answers differently from the x86 one of the
6
+ * same width. Trino writes each half of the answer little-endian, which is what
7
+ * makes `to_hex(murmur3(from_hex('69A69A69')))` read as
8
+ * `BA5855635569B42F4920372CA0E396EF`. That is the one worked example Trino's
9
+ * own documentation carries.
10
+ */
11
+ export declare function simAthenaMurmur3(bytes: Uint8Array): Uint8Array;
@@ -0,0 +1,51 @@
1
+ import { partialWord } from "./sim-athena-hash-words.js";
2
+ import { murmurAvalanche, murmurCrossed, murmurKeys, murmurRound, } from "./sim-athena-murmur3-mixing.js";
3
+ /** How many bytes one round of the body reads. */
4
+ const block = 16;
5
+ /**
6
+ * The 128-bit MurmurHash3 of these bytes, seeded with zero, as Trino's
7
+ * `murmur3` seeds it.
8
+ *
9
+ * This is the x64 variant, which answers differently from the x86 one of the
10
+ * same width. Trino writes each half of the answer little-endian, which is what
11
+ * makes `to_hex(murmur3(from_hex('69A69A69')))` read as
12
+ * `BA5855635569B42F4920372CA0E396EF`. That is the one worked example Trino's
13
+ * own documentation carries.
14
+ */
15
+ export function simAthenaMurmur3(bytes) {
16
+ const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
17
+ const body = bytes.length - (bytes.length % block);
18
+ let halves = [0n, 0n];
19
+ for (let at = 0; at < body; at += block) {
20
+ halves = murmurRound(halves, murmurKeys(view.getBigUint64(at, true), view.getBigUint64(at + 8, true)));
21
+ }
22
+ return written(finish(halves, bytes.subarray(body), bytes.length));
23
+ }
24
+ /**
25
+ * Whatever the body left over, then the final mix over both accumulators.
26
+ *
27
+ * The tail bytes are read low to high, which is the little-endian read of a
28
+ * partial word. Neither half is rotated for them and neither is crossed with
29
+ * the other, and a tail short enough to leave a half empty scrambles a zero
30
+ * into it, which changes nothing.
31
+ */
32
+ function finish(halves, tail, length) {
33
+ const keys = murmurKeys(partialWord(tail.subarray(0, 8)), partialWord(tail.subarray(8)));
34
+ const counted = BigInt(length);
35
+ const carried = murmurCrossed([
36
+ halves[0] ^ keys[0] ^ counted,
37
+ halves[1] ^ keys[1] ^ counted,
38
+ ]);
39
+ return murmurCrossed([
40
+ murmurAvalanche(carried[0]),
41
+ murmurAvalanche(carried[1]),
42
+ ]);
43
+ }
44
+ /** Both halves as bytes, each one written little-endian, as Trino writes them. */
45
+ function written(halves) {
46
+ const digest = new Uint8Array(block);
47
+ const view = new DataView(digest.buffer);
48
+ view.setBigUint64(0, halves[0], true);
49
+ view.setBigUint64(8, halves[1], true);
50
+ return digest;
51
+ }
@@ -21,3 +21,12 @@ export declare function isExplicitNull(values: readonly SQLOutputValue[], index:
21
21
  export declare function shimText(value: SQLOutputValue | undefined): string | undefined;
22
22
  /** One argument as a number, or nothing where it is not one. */
23
23
  export declare function shimNumber(value: SQLOutputValue | undefined): number | undefined;
24
+ /**
25
+ * One argument as bytes, or nothing where it is null.
26
+ *
27
+ * The binary functions take a `varbinary`, and Trino refuses text where one is
28
+ * wanted rather than converting it. SQLite has no such analysis to run, so a
29
+ * column of text reaching `sha256` without a `to_utf8` around it is hashed as
30
+ * its UTF-8 bytes, which is what the missing call would have produced.
31
+ */
32
+ export declare function shimBytes(value: SQLOutputValue | undefined): Uint8Array | undefined;
@@ -6,7 +6,20 @@
6
6
  * with an optional argument would stop resolving.
7
7
  */
8
8
  export function simAthenaScalarShim(database, name, implementation) {
9
- database.function(name, { varargs: true, deterministic: true }, implementation);
9
+ database.function(name, { varargs: true, deterministic: true }, (...values) => withEmptyBytes(implementation(...values)));
10
+ }
11
+ /**
12
+ * One answer, with an empty `varbinary` written so that SQLite keeps it.
13
+ *
14
+ * `node:sqlite` reads a zero length typed array as SQL NULL where its backing
15
+ * store carries no pointer, and `TextEncoder` answers with exactly that over an
16
+ * empty string. Copying those bytes gives the empty blob back, and `to_utf8('')`
17
+ * then answers the empty `varbinary` Trino answers with rather than a null.
18
+ */
19
+ function withEmptyBytes(answered) {
20
+ return answered instanceof Uint8Array && answered.length === 0
21
+ ? Buffer.alloc(0)
22
+ : answered;
10
23
  }
11
24
  /**
12
25
  * Whether an optional argument was written as an explicit `NULL`.
@@ -30,3 +43,19 @@ export function shimNumber(value) {
30
43
  const parsed = Number(value);
31
44
  return Number.isFinite(parsed) ? parsed : undefined;
32
45
  }
46
+ /**
47
+ * One argument as bytes, or nothing where it is null.
48
+ *
49
+ * The binary functions take a `varbinary`, and Trino refuses text where one is
50
+ * wanted rather than converting it. SQLite has no such analysis to run, so a
51
+ * column of text reaching `sha256` without a `to_utf8` around it is hashed as
52
+ * its UTF-8 bytes, which is what the missing call would have produced.
53
+ */
54
+ export function shimBytes(value) {
55
+ if (value === null || value === undefined) {
56
+ return undefined;
57
+ }
58
+ return value instanceof Uint8Array
59
+ ? value
60
+ : new TextEncoder().encode(String(value));
61
+ }
@@ -1,5 +1,6 @@
1
1
  import { simAthenaInstallAggregateShims } from "./sim-athena-aggregate-shims.js";
2
2
  import { simAthenaInstallArrayShims } from "./sim-athena-array-shims.js";
3
+ import { simAthenaInstallBinaryShims } from "./sim-athena-binary-shims.js";
3
4
  import { simAthenaInstallClockShims } from "./sim-athena-clock-shims.js";
4
5
  import { simAthenaInstallDateArithmeticShims } from "./sim-athena-date-arithmetic-shims.js";
5
6
  import { simAthenaInstallDateShims } from "./sim-athena-date-shims.js";
@@ -24,6 +25,7 @@ export function simAthenaInstallShims(database, startedAt) {
24
25
  simAthenaInstallJsonDocumentShims(database);
25
26
  simAthenaInstallArrayShims(database);
26
27
  simAthenaInstallStringShims(database);
28
+ simAthenaInstallBinaryShims(database);
27
29
  simAthenaInstallRegexpShims(database);
28
30
  simAthenaInstallUrlShims(database);
29
31
  simAthenaInstallAggregateShims(database);
@@ -7,11 +7,13 @@ export interface SimAthenaParserSql {
7
7
  /**
8
8
  * The statement as the parser's Athena grammar will take it.
9
9
  *
10
- * The two rewrites close a gap in that grammar rather than a gap in SQLite.
10
+ * Every rewrite here closes a gap in that grammar rather than a gap in SQLite.
11
11
  * `try_cast` becomes a plain cast, which changes meaning in the forgiving
12
12
  * direction, since SQLite already answers with a value where a cast fails
13
13
  * rather than failing the query. Trino writes `OFFSET` before `LIMIT` and every
14
- * other dialect writes it after.
14
+ * other dialect writes it after. `count(DISTINCT <expression>)` becomes a call
15
+ * to an aggregate of the simulator's own, since the grammar takes a column
16
+ * after `DISTINCT` and nothing else.
15
17
  */
16
18
  export declare function simAthenaSqlForParser(sql: string): SimAthenaParserSql;
17
19
  /**
@@ -1,3 +1,4 @@
1
+ import { simAthenaCountDistinct } from "./sim-athena-count-distinct.js";
1
2
  /**
2
3
  * `WITH ORDINALITY`, which the parser's Athena grammar refuses outright.
3
4
  *
@@ -9,14 +10,16 @@ const withOrdinality = /\s+WITH\s+ORDINALITY\b/giu;
9
10
  /**
10
11
  * The statement as the parser's Athena grammar will take it.
11
12
  *
12
- * The two rewrites close a gap in that grammar rather than a gap in SQLite.
13
+ * Every rewrite here closes a gap in that grammar rather than a gap in SQLite.
13
14
  * `try_cast` becomes a plain cast, which changes meaning in the forgiving
14
15
  * direction, since SQLite already answers with a value where a cast fails
15
16
  * rather than failing the query. Trino writes `OFFSET` before `LIMIT` and every
16
- * other dialect writes it after.
17
+ * other dialect writes it after. `count(DISTINCT <expression>)` becomes a call
18
+ * to an aggregate of the simulator's own, since the grammar takes a column
19
+ * after `DISTINCT` and nothing else.
17
20
  */
18
21
  export function simAthenaSqlForParser(sql) {
19
- const rewritten = sql
22
+ const rewritten = simAthenaCountDistinct(sql)
20
23
  .replaceAll(/\btry_cast\s*\(/giu, "CAST(")
21
24
  .replaceAll(/\bOFFSET\s+(\d+)\s+LIMIT\s+(\d+)/giu, (_match, offset, limit) => `LIMIT ${limit} OFFSET ${offset}`);
22
25
  const forParser = rewritten.replaceAll(withOrdinality, "");
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The xxHash64 of these bytes, seeded with zero, as Trino's `xxhash64` seeds
3
+ * it.
4
+ *
5
+ * Trino answers with the eight bytes of the hash written big-endian, which is
6
+ * what makes `to_hex(xxhash64(to_utf8('hello')))` read as `26C7827D889F6DA3`.
7
+ */
8
+ export declare function simAthenaXxHash64(bytes: Uint8Array): Uint8Array;
@@ -0,0 +1,82 @@
1
+ import { hashWord as word, rotateWord as rotate, } from "./sim-athena-hash-words.js";
2
+ const prime1 = 11400714785074694791n;
3
+ const prime2 = 14029467366897019727n;
4
+ const prime3 = 1609587929392839161n;
5
+ const prime4 = 9650029242287828579n;
6
+ const prime5 = 2870177450012600261n;
7
+ /** How many bytes one round of the four-lane body reads. */
8
+ const stripe = 32;
9
+ /**
10
+ * The xxHash64 of these bytes, seeded with zero, as Trino's `xxhash64` seeds
11
+ * it.
12
+ *
13
+ * Trino answers with the eight bytes of the hash written big-endian, which is
14
+ * what makes `to_hex(xxhash64(to_utf8('hello')))` read as `26C7827D889F6DA3`.
15
+ */
16
+ export function simAthenaXxHash64(bytes) {
17
+ const digest = new Uint8Array(8);
18
+ new DataView(digest.buffer).setBigUint64(0, hashOf(bytes), false);
19
+ return digest;
20
+ }
21
+ function hashOf(bytes) {
22
+ const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
23
+ const body = bytes.length - (bytes.length % stripe);
24
+ let hash = bytes.length < stripe ? prime5 : mixedLanes(view, body);
25
+ hash = (hash + BigInt(bytes.length)) & word;
26
+ return avalanche(tail(view, bytes, hash, body));
27
+ }
28
+ /**
29
+ * The four lanes the body is read into, mixed back down to one word.
30
+ *
31
+ * Each lane takes every fourth eight bytes, which is what lets the real
32
+ * implementation read four of them at once.
33
+ */
34
+ function mixedLanes(view, body) {
35
+ let lanes = [
36
+ { value: (prime1 + prime2) & word, rotation: 1 },
37
+ { value: prime2, rotation: 7 },
38
+ { value: 0n, rotation: 12 },
39
+ { value: -prime1 & word, rotation: 18 },
40
+ ];
41
+ for (let at = 0; at < body; at += stripe) {
42
+ lanes = lanes.map((lane, index) => ({
43
+ ...lane,
44
+ value: round(lane.value, view.getBigUint64(at + index * 8, true)),
45
+ }));
46
+ }
47
+ let hash = lanes.reduce((sum, lane) => (sum + rotate(lane.value, lane.rotation)) & word, 0n);
48
+ for (const lane of lanes) {
49
+ hash = ((hash ^ round(0n, lane.value)) * prime1 + prime4) & word;
50
+ }
51
+ return hash;
52
+ }
53
+ /**
54
+ * Whatever the body left over, read eight bytes at a time, then four, then one.
55
+ */
56
+ function tail(view, bytes, hash, body) {
57
+ let mixed = hash;
58
+ let at = body;
59
+ for (; at + 8 <= bytes.length; at += 8) {
60
+ const lane = round(0n, view.getBigUint64(at, true));
61
+ mixed = (rotate(mixed ^ lane, 27) * prime1 + prime4) & word;
62
+ }
63
+ if (at + 4 <= bytes.length) {
64
+ const lane = (BigInt(view.getUint32(at, true)) * prime1) & word;
65
+ mixed = (rotate(mixed ^ lane, 23) * prime2 + prime3) & word;
66
+ at += 4;
67
+ }
68
+ for (; at < bytes.length; at += 1) {
69
+ const lane = (BigInt(view.getUint8(at)) * prime5) & word;
70
+ mixed = (rotate(mixed ^ lane, 11) * prime1) & word;
71
+ }
72
+ return mixed;
73
+ }
74
+ /** The final mix, which spreads every bit of the accumulator over the word. */
75
+ function avalanche(hash) {
76
+ let mixed = ((hash ^ (hash >> 33n)) * prime2) & word;
77
+ mixed = ((mixed ^ (mixed >> 29n)) * prime3) & word;
78
+ return mixed ^ (mixed >> 32n);
79
+ }
80
+ function round(lane, input) {
81
+ return (rotate((lane + input * prime2) & word, 31) * prime1) & word;
82
+ }
@@ -1,6 +1,6 @@
1
1
  import { type BackgroundScheduler } from "../../util/background/background.js";
2
2
  import type { SimAwsAccountRegionScope } from "../aws/sim-aws-account-region-scope.js";
3
- import { type SimIamInterServiceAuthZ } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
3
+ import type { SimIamInterServiceAuthZ } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
4
4
  import type * as simAthenaCommands from "./command/sim-athena-command.types.js";
5
5
  import { SimAthenaCommands } from "./command/sim-athena-commands.js";
6
6
  import type { SimAthenaRequestOptions } from "./command/sim-athena-request-options.js";
@@ -1,6 +1,6 @@
1
1
  import { BackgroundTasks, } from "../../util/background/background.js";
2
2
  import { simAwsAccountRegionScopeFactory } from "../aws/sim-aws-account-region-scope.factory.js";
3
- import { SimIamAllowAllAuth, } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
3
+ import { simIamInRegion } from "../iam/authorize/sim-iam-region-auth-z.js";
4
4
  import { SimAthenaCommands } from "./command/sim-athena-commands.js";
5
5
  import { SimAthenaQueryEngine } from "./engine/sim-athena-query-engine.js";
6
6
  import { simAthenaTableObjects, } from "./engine/sim-athena-table-objects.js";
@@ -49,7 +49,8 @@ export class SimAthenaExecutions {
49
49
  #results = new SimAthenaQueryResults();
50
50
  #engine = new SimAthenaQueryEngine();
51
51
  constructor(properties = {}) {
52
- const { accountRegionScope = simAwsAccountRegionScopeFactory.make(), iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), } = properties;
52
+ const { accountRegionScope = simAwsAccountRegionScopeFactory.make(), background = new BackgroundTasks(), } = properties;
53
+ const iam = simIamInRegion(properties.iam, accountRegionScope.regionName);
53
54
  const writer = new SimAthenaResultWriter({
54
55
  s3: properties.s3 ?? new SimAthenaNoResultDestination(),
55
56
  });
@@ -1,6 +1,6 @@
1
1
  import type { SimSdkCommandRouter } from "../../sdk/router/sim-sdk-command-router.type.js";
2
2
  import { type BackgroundScheduler } from "../../util/background/background.js";
3
- import { type SimIamInterServiceAuthZ } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
3
+ import type { SimIamInterServiceAuthZ } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
4
4
  import type { SimAwsAccountRegionScope } from "../aws/sim-aws-account-region-scope.js";
5
5
  import type { SimConverseCommand, SimConverseCommandOutput } from "./command/converse/converse.command.js";
6
6
  import type { SimConverseStreamCommand, SimConverseStreamCommandOutput } from "./command/converse/converse-stream.command.js";
@@ -1,5 +1,5 @@
1
1
  import { BackgroundTasks, } from "../../util/background/background.js";
2
- import { SimIamAllowAllAuth, } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
2
+ import { simIamInRegion } from "../iam/authorize/sim-iam-region-auth-z.js";
3
3
  import { simAwsAccountRegionScopeFactory } from "../aws/sim-aws-account-region-scope.factory.js";
4
4
  import { SimBedrockAuthorizer } from "./command/authorize/sim-bedrock-authorizer.js";
5
5
  import { SimBedrockConverseHandler } from "./command/converse/sim-bedrock-converse.js";
@@ -31,7 +31,8 @@ export class SimBedrock {
31
31
  background;
32
32
  sdkRouter = new SimBedrockSdkCommandRouter(this);
33
33
  constructor(properties = {}) {
34
- const { accountRegionScope = simAwsAccountRegionScopeFactory.make(), iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), } = properties;
34
+ const { accountRegionScope = simAwsAccountRegionScopeFactory.make(), background = new BackgroundTasks(), } = properties;
35
+ const iam = simIamInRegion(properties.iam, accountRegionScope.regionName);
35
36
  const commandProperties = {
36
37
  responses: this.responseRules,
37
38
  authorizer: new SimBedrockAuthorizer({ iam }),
@@ -1,11 +1,19 @@
1
1
  import type { SimAws } from "../../../aws/sim-aws.js";
2
2
  import type { SimAwsAccountRegionScope } from "../../../aws/sim-aws-account-region-scope.js";
3
3
  import type { SimCdkOutContext } from "../sim-cdk-out-context.js";
4
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
4
5
  interface SimCdkAssetsPublisherProperties {
5
6
  readonly simAws: SimAws;
6
7
  readonly accountRegionScope: SimAwsAccountRegionScope;
7
8
  readonly stackName?: string | undefined;
8
9
  readonly cdkOutContext?: SimCdkOutContext | undefined;
10
+ /**
11
+ * The principal the deployment runs as, which the staging Bucket is created
12
+ * and written to as. A real `cdk deploy` publishes assets before
13
+ * CloudFormation sees the template, and it publishes them as somebody; a
14
+ * deployment that names a caller is what says who.
15
+ */
16
+ readonly caller?: SimAwsCaller | undefined;
9
17
  }
10
18
  /**
11
19
  * Publishes a CDK cloud assembly's file assets into simulated S3.
@@ -1,6 +1,7 @@
1
1
  import { SimCfnPseudoParameters } from "../../parameters/pseudo/sim-cfn-pseudo-parameters.js";
2
2
  import { SimCdkAssetPublications, } from "./sim-cdk-asset-publications.js";
3
3
  import { readSimCdkAssetBytes } from "./sim-cdk-asset-bytes.js";
4
+ import { simCfnResourceCallerOptions, } from "../../resource/caller/sim-cfn-resource-caller-options.js";
4
5
  /**
5
6
  * Publishes a CDK cloud assembly's file assets into simulated S3.
6
7
  *
@@ -51,14 +52,15 @@ export class SimCdkAssetsPublisher {
51
52
  return;
52
53
  }
53
54
  const s3 = this.stagingS3();
54
- await this.ensureBucket(s3, publication.bucketName);
55
+ const options = simCfnResourceCallerOptions(this.properties.caller);
56
+ await this.ensureBucket(s3, publication.bucketName, options);
55
57
  await s3.putObject({
56
58
  input: {
57
59
  Bucket: publication.bucketName,
58
60
  Key: publication.objectKey,
59
61
  Body: assetBytes,
60
62
  },
61
- });
63
+ }, options);
62
64
  }
63
65
  /**
64
66
  * Create the staging Bucket if this is the first asset published into it,
@@ -71,12 +73,12 @@ export class SimCdkAssetsPublisher {
71
73
  * wanted, whoever created it. Anything else, such as the name already being
72
74
  * taken in another scope, is a real failure and is reported.
73
75
  */
74
- async ensureBucket(s3, bucketName) {
76
+ async ensureBucket(s3, bucketName, options) {
75
77
  if (s3.getSimBucketByName(bucketName) !== undefined) {
76
78
  return;
77
79
  }
78
80
  try {
79
- await s3.createBucket({ input: { Bucket: bucketName } });
81
+ await s3.createBucket({ input: { Bucket: bucketName } }, options);
80
82
  }
81
83
  catch (error) {
82
84
  if (s3.getSimBucketByName(bucketName) === undefined) {