@kensio/yulin 1.21.3 → 1.21.5

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 (650) hide show
  1. package/dist/service/athena/engine/sim-athena-column-types.d.ts +2 -0
  2. package/dist/service/athena/engine/sim-athena-column-types.js +4 -0
  3. package/dist/service/athena/engine/sim-athena-delimited-format.d.ts +7 -0
  4. package/dist/service/athena/engine/sim-athena-delimited-format.js +51 -0
  5. package/dist/service/athena/engine/sim-athena-engine-result.js +5 -0
  6. package/dist/service/athena/engine/sim-athena-engine-run.d.ts +22 -2
  7. package/dist/service/athena/engine/sim-athena-engine-run.js +21 -31
  8. package/dist/service/athena/engine/sim-athena-loaded-tables.d.ts +10 -0
  9. package/dist/service/athena/engine/sim-athena-loaded-tables.js +35 -0
  10. package/dist/service/athena/engine/sim-athena-parquet-module.d.ts +25 -0
  11. package/dist/service/athena/engine/sim-athena-parquet-module.js +39 -0
  12. package/dist/service/athena/engine/sim-athena-parquet-records.d.ts +13 -0
  13. package/dist/service/athena/engine/sim-athena-parquet-records.js +57 -0
  14. package/dist/service/athena/engine/sim-athena-query-engine.d.ts +23 -5
  15. package/dist/service/athena/engine/sim-athena-query-engine.js +31 -10
  16. package/dist/service/athena/engine/sim-athena-record-reader.d.ts +12 -6
  17. package/dist/service/athena/engine/sim-athena-record-reader.js +28 -53
  18. package/dist/service/athena/engine/sim-athena-sql-translation.d.ts +15 -9
  19. package/dist/service/athena/engine/sim-athena-sql-translation.js +25 -13
  20. package/dist/service/athena/engine/sim-athena-sqlite-values.d.ts +5 -0
  21. package/dist/service/athena/engine/sim-athena-sqlite-values.js +24 -1
  22. package/dist/service/athena/engine/sim-athena-table-objects.d.ts +7 -2
  23. package/dist/service/athena/engine/sim-athena-table-objects.js +8 -4
  24. package/dist/service/athena/engine/sim-athena-table-rows.js +4 -3
  25. package/dist/service/athena/engine/sim-athena-turn-down.d.ts +26 -0
  26. package/dist/service/athena/engine/sim-athena-turn-down.js +43 -0
  27. package/dist/service/athena/execution/sim-athena-query-completion.d.ts +3 -1
  28. package/dist/service/athena/execution/sim-athena-query-completion.js +7 -1
  29. package/dist/service/athena/index.d.ts +1 -1
  30. package/dist/service/athena/index.js +1 -1
  31. package/dist/service/athena/result/sim-athena-query-answer.d.ts +12 -0
  32. package/dist/service/athena/result/sim-athena-query-answer.js +26 -4
  33. package/dist/service/athena/sim-athena-answered-query.fixture.d.ts +2 -0
  34. package/dist/service/athena/sim-athena-answered-query.fixture.js +1 -0
  35. package/dist/service/athena/sim-athena-engine.fixture.d.ts +20 -0
  36. package/dist/service/athena/sim-athena-engine.fixture.js +34 -0
  37. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.d.ts +23 -0
  38. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.js +37 -0
  39. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.d.ts +18 -13
  40. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.js +16 -24
  41. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.d.ts +2 -0
  42. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.js +1 -0
  43. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.d.ts +7 -0
  44. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.js +13 -1
  45. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.d.ts +6 -0
  46. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.js +7 -1
  47. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.d.ts +50 -0
  48. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.js +71 -0
  49. package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js +6 -1
  50. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.d.ts +5 -0
  51. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js +7 -0
  52. package/dist/service/cloudformation/cdk/sim-cdk-cloud-assembly.factory.d.ts +12 -0
  53. package/dist/service/cloudformation/cdk/sim-cdk-cloud-assembly.factory.js +16 -7
  54. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.d.ts +9 -0
  55. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.js +12 -0
  56. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.d.ts +42 -0
  57. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.js +69 -0
  58. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.d.ts +62 -0
  59. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.js +89 -0
  60. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.d.ts +31 -0
  61. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.js +59 -0
  62. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.d.ts +21 -0
  63. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.js +19 -0
  64. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.d.ts +17 -0
  65. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.js +18 -0
  66. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.d.ts +18 -0
  67. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.js +13 -0
  68. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.d.ts +45 -0
  69. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.js +52 -0
  70. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.d.ts +12 -0
  71. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.js +21 -0
  72. package/dist/service/cloudformation/changeset/sim-cfn-change-set.d.ts +54 -0
  73. package/dist/service/cloudformation/changeset/sim-cfn-change-set.js +49 -0
  74. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.d.ts +35 -0
  75. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.js +1 -0
  76. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.d.ts +53 -0
  77. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.js +83 -0
  78. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.d.ts +32 -0
  79. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.js +1 -0
  80. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.d.ts +38 -0
  81. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.js +80 -0
  82. package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +3 -0
  83. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +16 -13
  84. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.d.ts +22 -0
  85. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.js +1 -0
  86. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.d.ts +27 -0
  87. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.js +35 -0
  88. package/dist/service/cloudformation/command/delete-stack/delete-stack.command.d.ts +6 -0
  89. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.d.ts +11 -0
  90. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.js +15 -1
  91. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.d.ts +48 -0
  92. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.js +1 -0
  93. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.d.ts +23 -0
  94. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.js +52 -0
  95. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.d.ts +3 -0
  96. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js +8 -4
  97. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.d.ts +18 -6
  98. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.js +22 -7
  99. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js +1 -1
  100. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.d.ts +25 -0
  101. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.js +1 -0
  102. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.d.ts +31 -0
  103. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.js +37 -0
  104. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.d.ts +36 -0
  105. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.js +1 -0
  106. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.d.ts +26 -0
  107. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.js +39 -0
  108. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.d.ts +31 -0
  109. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.js +52 -0
  110. package/dist/service/cloudformation/command/update-stack/update-stack-template.d.ts +22 -0
  111. package/dist/service/cloudformation/command/update-stack/update-stack-template.js +34 -0
  112. package/dist/service/cloudformation/command/update-stack/update-stack.command.d.ts +17 -1
  113. package/dist/service/cloudformation/command/update-stack/update-stack.handler.d.ts +6 -0
  114. package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +15 -16
  115. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
  116. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-options-deployed.d.ts +10 -0
  117. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-options-deployed.js +14 -0
  118. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +11 -1
  119. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +3 -2
  120. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +5 -8
  121. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js +0 -14
  122. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +9 -0
  123. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +2 -0
  124. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +10 -0
  125. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
  126. package/dist/service/cloudformation/deploy/sim-cfn-template-file-updater.js +1 -0
  127. package/dist/service/cloudformation/error/sim-cloudformation.error.d.ts +21 -0
  128. package/dist/service/cloudformation/error/sim-cloudformation.error.js +25 -0
  129. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.d.ts +7 -0
  130. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.js +3 -1
  131. package/dist/service/cloudformation/parameters/sim-cfn-parameters.d.ts +9 -0
  132. package/dist/service/cloudformation/parameters/sim-cfn-parameters.js +12 -0
  133. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.d.ts +4 -0
  134. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.js +10 -0
  135. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.d.ts +44 -0
  136. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.js +33 -0
  137. package/dist/service/cloudformation/resource/sim-cfn-resource-record.d.ts +15 -0
  138. package/dist/service/cloudformation/resource/sim-cfn-resource-record.js +21 -1
  139. package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts +9 -7
  140. package/dist/service/cloudformation/resource/sim-cfn-resource.js +11 -11
  141. package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +8 -0
  142. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.d.ts +3 -3
  143. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.js +3 -3
  144. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.d.ts +4 -0
  145. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.js +9 -0
  146. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.d.ts +37 -0
  147. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.js +77 -0
  148. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.d.ts +51 -0
  149. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.js +10 -0
  150. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.d.ts +11 -0
  151. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.js +34 -0
  152. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.d.ts +21 -0
  153. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.js +31 -0
  154. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.d.ts +14 -0
  155. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.js +1 -0
  156. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.d.ts +26 -0
  157. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.js +58 -0
  158. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.d.ts +18 -0
  159. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.js +89 -0
  160. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.d.ts +15 -0
  161. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.js +65 -0
  162. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.d.ts +13 -0
  163. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.js +60 -0
  164. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.d.ts +13 -0
  165. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.js +50 -0
  166. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.d.ts +13 -0
  167. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.js +30 -0
  168. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.d.ts +26 -0
  169. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.js +44 -0
  170. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.d.ts +15 -0
  171. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.js +59 -0
  172. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.d.ts +11 -0
  173. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.js +43 -0
  174. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.d.ts +15 -0
  175. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.js +67 -0
  176. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.d.ts +26 -0
  177. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.js +61 -0
  178. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.d.ts +18 -0
  179. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.js +59 -0
  180. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api-template.factory.js +1 -1
  181. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.d.ts +4 -0
  182. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.js +12 -5
  183. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api-template.factory.js +1 -1
  184. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api.js +7 -3
  185. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-api-event.js +7 -3
  186. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.d.ts +26 -0
  187. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.js +88 -0
  188. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.d.ts +12 -0
  189. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.js +1 -0
  190. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-function-events.js +8 -5
  191. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-event.js +23 -1
  192. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.d.ts +9 -2
  193. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.js +5 -3
  194. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.d.ts +6 -1
  195. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.js +7 -1
  196. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.d.ts +19 -0
  197. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.js +69 -0
  198. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.d.ts +5 -0
  199. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.js +3 -1
  200. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.d.ts +8 -0
  201. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.js +8 -0
  202. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-url.js +1 -4
  203. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.d.ts +6 -4
  204. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.js +2 -4
  205. package/dist/service/cloudformation/sam/sim-cfn-sam-error.d.ts +31 -0
  206. package/dist/service/cloudformation/sam/sim-cfn-sam-error.js +17 -0
  207. package/dist/service/cloudformation/sam/sim-cfn-sam-expansion.js +11 -6
  208. package/dist/service/cloudformation/sdk/sim-cloudformation-sdk-command-router.js +20 -0
  209. package/dist/service/cloudformation/serve/sim-cloudformation-api.d.ts +4 -3
  210. package/dist/service/cloudformation/serve/sim-cloudformation-api.js +6 -3
  211. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.d.ts +10 -0
  212. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.js +94 -0
  213. package/dist/service/cloudformation/sim-cloudformation.d.ts +31 -0
  214. package/dist/service/cloudformation/sim-cloudformation.js +56 -9
  215. package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js +1 -0
  216. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.d.ts +20 -0
  217. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.js +23 -0
  218. package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts +6 -0
  219. package/dist/service/cloudformation/stack/sim-cfn-stack-deploy-context.d.ts +47 -0
  220. package/dist/service/cloudformation/stack/sim-cfn-stack-deploy-context.js +46 -0
  221. package/dist/service/cloudformation/stack/sim-cfn-stack-id.d.ts +30 -0
  222. package/dist/service/cloudformation/stack/sim-cfn-stack-id.js +24 -0
  223. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +53 -20
  224. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +79 -32
  225. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +28 -16
  226. package/dist/service/cloudformation/stack/sim-cfn-stack.js +60 -32
  227. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +21 -1
  228. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.d.ts +7 -1
  229. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.js +3 -1
  230. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
  231. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
  232. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +3 -0
  233. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
  234. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.d.ts +18 -0
  235. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.js +30 -0
  236. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.d.ts +9 -0
  237. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.js +14 -0
  238. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.d.ts +25 -14
  239. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.js +41 -24
  240. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.d.ts +9 -0
  241. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.js +14 -0
  242. package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js +6 -1
  243. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts +12 -3
  244. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js +29 -3
  245. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.d.ts +28 -0
  246. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.js +39 -0
  247. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts +25 -1
  248. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js +43 -11
  249. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.d.ts +7 -0
  250. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.js +29 -3
  251. package/dist/service/cloudformation/template/sim-cfn-command-template.d.ts +40 -0
  252. package/dist/service/cloudformation/template/sim-cfn-command-template.js +45 -0
  253. package/dist/service/cloudformation/template/sim-cfn-template.d.ts +7 -0
  254. package/dist/service/cloudformation/template/sim-cfn-template.js +15 -1
  255. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +2 -0
  256. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +49 -0
  257. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +1 -0
  258. package/dist/service/cloudfront/origin/s3/sim-cf-s3-origin-responses.js +1 -0
  259. package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +1 -1
  260. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.d.ts +5 -0
  261. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.js +17 -0
  262. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +5 -5
  263. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +24 -8
  264. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.d.ts +11 -8
  265. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.js +20 -8
  266. package/dist/service/dynamodb/command/query/sim-dynamodb-query.js +2 -0
  267. package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js +0 -1
  268. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts +14 -4
  269. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js +16 -4
  270. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.d.ts +17 -0
  271. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.js +39 -0
  272. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.d.ts +28 -0
  273. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.js +50 -0
  274. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js +12 -5
  275. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.d.ts +3 -3
  276. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js +3 -4
  277. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.d.ts +5 -16
  278. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.js +4 -21
  279. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.d.ts +15 -0
  280. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.js +18 -1
  281. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.d.ts +13 -0
  282. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.js +15 -0
  283. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +2 -0
  284. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +5 -3
  285. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.d.ts +21 -0
  286. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.js +37 -0
  287. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +6 -0
  288. package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
  289. package/dist/service/lambda/command/create-function/create-function.handler.js +5 -1
  290. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.d.ts +2 -3
  291. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.js +1 -0
  292. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +6 -0
  293. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +10 -0
  294. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +2 -6
  295. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +1 -0
  296. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
  297. package/dist/service/lambda/command/function-url/function-url-cors-constraints.d.ts +25 -0
  298. package/dist/service/lambda/command/function-url/function-url-cors-constraints.js +49 -0
  299. package/dist/service/lambda/command/function-url/function-url-cors-input.d.ts +25 -0
  300. package/dist/service/lambda/command/function-url/function-url-cors-input.js +57 -0
  301. package/dist/service/lambda/command/function-url/function-url-input.d.ts +7 -0
  302. package/dist/service/lambda/command/function-url/function-url-input.js +9 -0
  303. package/dist/service/lambda/command/invoke/async/sim-lambda-async-invocation.js +10 -13
  304. package/dist/service/lambda/command/invoke/async/sim-lambda-async-outcome.js +2 -0
  305. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.d.ts +13 -0
  306. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.js +12 -0
  307. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.d.ts +2 -0
  308. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.js +1 -0
  309. package/dist/service/lambda/destination/deliver/sim-lambda-destination-bus.js +1 -1
  310. package/dist/service/lambda/destination/deliver/sim-lambda-destination-function.js +8 -12
  311. package/dist/service/lambda/destination/deliver/sim-lambda-destination-queue.js +4 -3
  312. package/dist/service/lambda/destination/deliver/sim-lambda-destination-send.d.ts +2 -0
  313. package/dist/service/lambda/destination/deliver/sim-lambda-destination-topic.js +4 -3
  314. package/dist/service/lambda/destination/sim-aws-lambda-destinations.d.ts +4 -6
  315. package/dist/service/lambda/destination/sim-aws-lambda-destinations.js +6 -6
  316. package/dist/service/lambda/destination/sim-lambda-destination-targets.d.ts +3 -0
  317. package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +4 -9
  318. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +4 -9
  319. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.d.ts +22 -3
  320. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js +39 -9
  321. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts +7 -6
  322. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js +14 -12
  323. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts +9 -15
  324. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js +9 -16
  325. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts +10 -6
  326. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js +22 -12
  327. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.d.ts +23 -0
  328. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.js +18 -0
  329. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts +12 -13
  330. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js +24 -17
  331. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.d.ts +64 -0
  332. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.js +86 -0
  333. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +6 -0
  334. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +8 -1
  335. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts +6 -0
  336. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js +7 -0
  337. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +11 -1
  338. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +13 -0
  339. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.d.ts +39 -0
  340. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.js +46 -0
  341. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.d.ts +56 -0
  342. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.js +110 -0
  343. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.d.ts +5 -0
  344. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.js +7 -1
  345. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.d.ts +6 -0
  346. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.js +6 -0
  347. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts +6 -1
  348. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js +8 -6
  349. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts +10 -8
  350. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js +18 -1
  351. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +8 -2
  352. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +2 -1
  353. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +2 -11
  354. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +13 -39
  355. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +7 -0
  356. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +13 -7
  357. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.d.ts +23 -0
  358. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.js +42 -0
  359. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.d.ts +12 -4
  360. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.js +15 -5
  361. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +7 -0
  362. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +6 -2
  363. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.d.ts +26 -0
  364. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.js +84 -0
  365. package/dist/service/lambda/function/invoke/sim-lambda-invocation.d.ts +44 -0
  366. package/dist/service/lambda/function/invoke/sim-lambda-invocation.js +44 -0
  367. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.d.ts +6 -0
  368. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.js +1 -2
  369. package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts +6 -1
  370. package/dist/service/lambda/function/invoke/sim-lambda-process-output.js +19 -6
  371. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.d.ts +15 -0
  372. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.js +18 -0
  373. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.d.ts +12 -0
  374. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.js +28 -0
  375. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.d.ts +46 -0
  376. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.js +104 -0
  377. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.d.ts +24 -0
  378. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.js +27 -0
  379. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.d.ts +43 -0
  380. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.js +112 -0
  381. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.d.ts +57 -0
  382. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.js +79 -0
  383. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.d.ts +10 -0
  384. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.js +15 -0
  385. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.d.ts +11 -0
  386. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.js +24 -0
  387. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.d.ts +50 -0
  388. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.js +43 -0
  389. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +17 -0
  390. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +12 -1
  391. package/dist/service/lambda/function/logging/sim-lambda-output.d.ts +56 -0
  392. package/dist/service/lambda/function/logging/sim-lambda-output.js +62 -0
  393. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.d.ts +8 -0
  394. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.js +27 -1
  395. package/dist/service/lambda/function/sim-lambda-function.d.ts +1 -1
  396. package/dist/service/lambda/function/sim-lambda-function.js +11 -9
  397. package/dist/service/lambda/function/sim-lambda-function.type.d.ts +15 -0
  398. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.d.ts +16 -0
  399. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.d.ts +22 -0
  400. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.js +17 -0
  401. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.js +1 -0
  402. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.d.ts +2 -0
  403. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.js +2 -1
  404. package/dist/service/lambda/function/url/sim-lambda-function-url-store.d.ts +2 -0
  405. package/dist/service/lambda/function/url/sim-lambda-function-url.d.ts +16 -0
  406. package/dist/service/lambda/function/url/sim-lambda-function-url.js +16 -1
  407. package/dist/service/lambda/index.d.ts +1 -0
  408. package/dist/service/lambda/index.js +1 -0
  409. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.d.ts +50 -0
  410. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.js +96 -0
  411. package/dist/service/lambda/serve/sim-lambda-controller.d.ts +14 -0
  412. package/dist/service/lambda/serve/sim-lambda-controller.js +27 -0
  413. package/dist/service/lambda/sim-lambda-commands.d.ts +10 -0
  414. package/dist/service/lambda/sim-lambda-commands.js +11 -0
  415. package/dist/service/lambda/sim-lambda.d.ts +12 -0
  416. package/dist/service/lambda/sim-lambda.js +13 -0
  417. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.d.ts +67 -0
  418. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.js +69 -0
  419. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +4 -31
  420. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +7 -6
  421. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +5 -0
  422. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +8 -4
  423. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.d.ts +1 -14
  424. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.js +16 -8
  425. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.d.ts +41 -0
  426. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.js +1 -0
  427. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +14 -0
  428. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +32 -2
  429. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.d.ts +33 -0
  430. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.js +48 -0
  431. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.d.ts +16 -0
  432. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.js +44 -0
  433. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +8 -0
  434. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +27 -0
  435. package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
  436. package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +5 -0
  437. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +0 -3
  438. package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts +3 -0
  439. package/dist/service/s3/bucket/sim-s3-bucket-access.js +6 -2
  440. package/dist/service/s3/bucket/sim-s3-bucket-configuration.d.ts +84 -0
  441. package/dist/service/s3/bucket/sim-s3-bucket-configuration.js +115 -0
  442. package/dist/service/s3/bucket/sim-s3-bucket-maker.d.ts +31 -0
  443. package/dist/service/s3/bucket/sim-s3-bucket-maker.js +41 -0
  444. package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +10 -0
  445. package/dist/service/s3/bucket/sim-s3-bucket-objects.js +18 -0
  446. package/dist/service/s3/bucket/sim-s3-bucket-properties.d.ts +41 -0
  447. package/dist/service/s3/bucket/sim-s3-bucket-properties.js +1 -0
  448. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +11 -83
  449. package/dist/service/s3/bucket/sim-s3-bucket.js +14 -83
  450. package/dist/service/s3/bucket/sim-s3-public-read.fixture.d.ts +6 -0
  451. package/dist/service/s3/bucket/sim-s3-public-read.fixture.js +20 -6
  452. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.d.ts +58 -0
  453. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.js +73 -0
  454. package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +19 -1
  455. package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +20 -0
  456. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.d.ts +21 -0
  457. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.js +44 -0
  458. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +6 -0
  459. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +5 -4
  460. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +12 -5
  461. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.d.ts +21 -0
  462. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.js +30 -0
  463. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +1 -0
  464. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +14 -1
  465. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +41 -16
  466. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +3 -5
  467. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +7 -10
  468. package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +6 -1
  469. package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +5 -0
  470. package/dist/service/s3/command/copy-object/copy-object-builder.d.ts +10 -1
  471. package/dist/service/s3/command/copy-object/copy-object-builder.js +17 -1
  472. package/dist/service/s3/command/copy-object/copy-object.command.d.ts +11 -1
  473. package/dist/service/s3/command/copy-object/copy-object.handler.js +2 -1
  474. package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts +2 -2
  475. package/dist/service/s3/command/create-bucket/create-bucket.handler.js +4 -12
  476. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.command.d.ts +5 -1
  477. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.handler.js +7 -0
  478. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.d.ts +19 -0
  479. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.js +1 -0
  480. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.d.ts +30 -0
  481. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.js +38 -0
  482. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.d.ts +23 -0
  483. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.js +1 -0
  484. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.d.ts +22 -0
  485. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.js +42 -0
  486. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.d.ts +29 -0
  487. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.js +49 -0
  488. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.d.ts +22 -0
  489. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.js +30 -0
  490. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.d.ts +24 -0
  491. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.js +1 -0
  492. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.d.ts +31 -0
  493. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.js +39 -0
  494. package/dist/service/s3/command/get-object/get-object-authorizer.d.ts +11 -8
  495. package/dist/service/s3/command/get-object/get-object-authorizer.js +26 -34
  496. package/dist/service/s3/command/get-object/get-object-loader.d.ts +7 -3
  497. package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
  498. package/dist/service/s3/command/get-object/get-object.command.d.ts +2 -1
  499. package/dist/service/s3/command/get-object/get-object.handler.d.ts +4 -0
  500. package/dist/service/s3/command/get-object/get-object.handler.js +13 -7
  501. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.d.ts +29 -0
  502. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.js +1 -0
  503. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.d.ts +21 -0
  504. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.js +33 -0
  505. package/dist/service/s3/command/head-object/head-object-loader.js +2 -0
  506. package/dist/service/s3/command/head-object/head-object.command.d.ts +2 -1
  507. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.js +18 -0
  508. package/dist/service/s3/command/list-multipart-uploads/list-multipart-uploads.handler.js +1 -2
  509. package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +1 -2
  510. package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +5 -0
  511. package/dist/service/s3/command/list-objects/list-objects-page-builder.js +11 -6
  512. package/dist/service/s3/command/list-objects/list-objects.command.d.ts +5 -1
  513. package/dist/service/s3/command/list-objects/list-objects.handler.js +5 -0
  514. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts +6 -0
  515. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js +11 -5
  516. package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts +5 -1
  517. package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js +5 -0
  518. package/dist/service/s3/command/list-parts/list-parts.handler.js +3 -3
  519. package/dist/service/s3/command/multipart/sim-s3-multipart-access.js +1 -1
  520. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.d.ts +21 -0
  521. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.js +1 -0
  522. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.d.ts +31 -0
  523. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.js +41 -0
  524. package/dist/service/s3/command/put-object/put-object-builder.d.ts +5 -1
  525. package/dist/service/s3/command/put-object/put-object-builder.js +10 -1
  526. package/dist/service/s3/command/put-object/put-object.command.d.ts +5 -1
  527. package/dist/service/s3/command/put-object/put-object.handler.js +2 -1
  528. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.d.ts +37 -0
  529. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.js +1 -0
  530. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.d.ts +22 -0
  531. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.js +46 -0
  532. package/dist/service/s3/command/sim-s3-command.types.d.ts +6 -0
  533. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.d.ts +61 -0
  534. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.js +49 -0
  535. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.d.ts +30 -0
  536. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.js +27 -0
  537. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.d.ts +26 -0
  538. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.js +34 -0
  539. package/dist/service/s3/error/sim-s3-upload.error.d.ts +41 -0
  540. package/dist/service/s3/error/sim-s3-upload.error.js +47 -0
  541. package/dist/service/s3/error/sim-s3.error.d.ts +22 -34
  542. package/dist/service/s3/error/sim-s3.error.js +26 -40
  543. package/dist/service/s3/mount/sim-s3-mount.type.d.ts +10 -0
  544. package/dist/service/s3/notification/event/sim-s3-event-records.d.ts +3 -2
  545. package/dist/service/s3/notification/event/sim-s3-event-records.js +5 -3
  546. package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +33 -8
  547. package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +23 -9
  548. package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +5 -1
  549. package/dist/service/s3/notification/sim-s3-object-notifier.js +6 -0
  550. package/dist/service/s3/object/s3-key-encoding.d.ts +12 -0
  551. package/dist/service/s3/object/s3-key-encoding.js +14 -0
  552. package/dist/service/s3/object/s3-listing-encoding.d.ts +42 -0
  553. package/dist/service/s3/object/s3-listing-encoding.js +75 -0
  554. package/dist/service/s3/object/s3-object-response-headers.d.ts +40 -0
  555. package/dist/service/s3/object/s3-object-response-headers.js +49 -2
  556. package/dist/service/s3/object/s3-object-storage-report.d.ts +19 -0
  557. package/dist/service/s3/object/s3-object-storage-report.js +18 -0
  558. package/dist/service/s3/object/s3-object-summary.d.ts +2 -10
  559. package/dist/service/s3/object/s3-object-summary.js +1 -10
  560. package/dist/service/s3/object/s3-object-tags.d.ts +61 -0
  561. package/dist/service/s3/object/s3-object-tags.js +77 -0
  562. package/dist/service/s3/object/s3-object.d.ts +49 -0
  563. package/dist/service/s3/object/s3-object.js +52 -1
  564. package/dist/service/s3/object/s3-server-side-encryption.d.ts +30 -0
  565. package/dist/service/s3/object/s3-server-side-encryption.js +42 -0
  566. package/dist/service/s3/object/s3-storage-class.d.ts +45 -0
  567. package/dist/service/s3/object/s3-storage-class.js +67 -0
  568. package/dist/service/s3/object/s3-write-metadata.d.ts +17 -3
  569. package/dist/service/s3/object/s3-write-metadata.js +43 -0
  570. package/dist/service/s3/object/s3-write-storage.d.ts +27 -0
  571. package/dist/service/s3/object/s3-write-storage.js +21 -0
  572. package/dist/service/s3/object/s3-write-tagging.d.ts +24 -0
  573. package/dist/service/s3/object/s3-write-tagging.js +19 -0
  574. package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +12 -0
  575. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +2 -0
  576. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.d.ts +9 -0
  577. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.js +23 -0
  578. package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.js +22 -0
  579. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.d.ts +4 -0
  580. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.js +10 -0
  581. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.d.ts +7 -0
  582. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.js +30 -0
  583. package/dist/service/s3/serve/api/sim-s3-api-head-output.d.ts +4 -2
  584. package/dist/service/s3/serve/api/sim-s3-api-head-output.js +8 -2
  585. package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +0 -6
  586. package/dist/service/s3/serve/api/sim-s3-api-input.js +2 -13
  587. package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts +5 -0
  588. package/dist/service/s3/serve/api/sim-s3-api-listing.js +5 -0
  589. package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts +16 -0
  590. package/dist/service/s3/serve/api/sim-s3-api-object-input.js +34 -7
  591. package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts +18 -1
  592. package/dist/service/s3/serve/api/sim-s3-api-object-output.js +21 -2
  593. package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +22 -1
  594. package/dist/service/s3/serve/api/sim-s3-api-output.d.ts +5 -1
  595. package/dist/service/s3/serve/api/sim-s3-api-output.js +16 -5
  596. package/dist/service/s3/serve/api/sim-s3-api-request.d.ts +6 -5
  597. package/dist/service/s3/serve/api/sim-s3-api-request.js +55 -11
  598. package/dist/service/s3/serve/api/sim-s3-api-routes.js +2 -2
  599. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.d.ts +9 -0
  600. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.js +14 -0
  601. package/dist/service/s3/serve/api/sim-s3-api.d.ts +7 -1
  602. package/dist/service/s3/serve/api/sim-s3-api.js +7 -1
  603. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +1 -5
  604. package/dist/service/s3/serve/sim-s3-rest-controller.js +3 -17
  605. package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts +3 -0
  606. package/dist/service/s3/serve/sim-s3-rest-object-reader.js +8 -1
  607. package/dist/service/s3/serve/sim-s3-rest-upload.d.ts +20 -0
  608. package/dist/service/s3/serve/sim-s3-rest-upload.js +30 -0
  609. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +1 -0
  610. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +2 -0
  611. package/dist/service/s3/serve/website/sim-s3-website-object.js +3 -0
  612. package/dist/service/s3/sim-s3-commands.d.ts +10 -0
  613. package/dist/service/s3/sim-s3-commands.js +13 -0
  614. package/dist/service/s3/sim-s3-operations.d.ts +11 -4
  615. package/dist/service/s3/sim-s3-operations.js +17 -4
  616. package/dist/service/s3/sim-s3-tagging-operations.d.ts +21 -0
  617. package/dist/service/s3/sim-s3-tagging-operations.js +25 -0
  618. package/dist/service/s3/sim-s3.d.ts +28 -0
  619. package/dist/service/s3/sim-s3.js +38 -0
  620. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.d.ts +34 -0
  621. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.js +34 -0
  622. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.d.ts +9 -0
  623. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.js +24 -0
  624. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.d.ts +5 -4
  625. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.js +5 -3
  626. package/dist/service/s3/upload/sim-s3-completed-upload.js +5 -1
  627. package/dist/service/s3/upload/sim-s3-multipart-upload.d.ts +18 -0
  628. package/dist/service/s3/upload/sim-s3-multipart-upload.js +8 -0
  629. package/dist/service/s3/upload/sim-s3-multipart-uploads.d.ts +6 -0
  630. package/dist/service/s3/upload/sim-s3-multipart-uploads.js +5 -0
  631. package/dist/util/background/background-clock-waits.d.ts +52 -0
  632. package/dist/util/background/background-clock-waits.js +76 -0
  633. package/dist/util/background/background-jitter.js +1 -0
  634. package/dist/util/background/background-pending-tasks.d.ts +55 -0
  635. package/dist/util/background/background-pending-tasks.js +117 -0
  636. package/dist/util/background/background-settled-tasks.d.ts +4 -1
  637. package/dist/util/background/background-settled-tasks.js +4 -1
  638. package/dist/util/background/background.d.ts +43 -0
  639. package/dist/util/background/background.js +27 -19
  640. package/dist/util/background/non-deterministic-background.d.ts +12 -0
  641. package/dist/util/background/non-deterministic-background.js +24 -20
  642. package/dist/util/clock/sim-clock-control.js +23 -2
  643. package/docs/services/apigateway/README.md +3 -1
  644. package/docs/services/athena/README.md +126 -3
  645. package/docs/services/cloudformation/README.md +831 -67
  646. package/docs/services/cognito/README.md +5 -0
  647. package/docs/services/dynamodb/README.md +86 -11
  648. package/docs/services/lambda/README.md +603 -39
  649. package/docs/services/s3/README.md +688 -57
  650. package/package.json +8 -2
@@ -1,16 +1,17 @@
1
1
  import type * as simS3Commands from "./command/sim-s3-command.types.js";
2
2
  import type { SimS3RequestOptions } from "./command/sim-s3-request-options.js";
3
- import { SimS3VersionOperations } from "./sim-s3-version-operations.js";
3
+ import { SimS3TaggingOperations } from "./sim-s3-tagging-operations.js";
4
4
  /**
5
5
  * The AWS operations simulated S3 answers. One delegation per SDK Command,
6
6
  * onto the handler in `SimS3Commands` that runs it.
7
7
  *
8
8
  * `SimS3` extends this. A caller reaches every operation on the one service
9
9
  * object, alongside the simulator-only controls `SimS3` holds itself. The
10
- * operations that make a Bucket keep what it held are on
11
- * `SimS3VersionOperations`, which this extends.
10
+ * operations that tag an Object are on `SimS3TaggingOperations`, and the ones
11
+ * that make a Bucket keep what it held are on `SimS3VersionOperations` below
12
+ * it, both of which this extends.
12
13
  */
13
- export declare abstract class SimS3Operations extends SimS3VersionOperations {
14
+ export declare abstract class SimS3Operations extends SimS3TaggingOperations {
14
15
  /** Handle a Create Bucket Command from the SDK. */
15
16
  createBucket(command: simS3Commands.SimCreateBucketCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimCreateBucketCommandOutput>;
16
17
  /** Handle a Head Bucket Command from the SDK. */
@@ -33,6 +34,12 @@ export declare abstract class SimS3Operations extends SimS3VersionOperations {
33
34
  getPublicAccessBlock(command: simS3Commands.SimGetPublicAccessBlockCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimGetPublicAccessBlockCommandOutput>;
34
35
  /** Handle a Delete Public Access Block Command from the SDK. */
35
36
  deletePublicAccessBlock(command: simS3Commands.SimDeletePublicAccessBlockCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimDeletePublicAccessBlockCommandOutput>;
37
+ /** Handle a Put Bucket Encryption Command from the SDK. */
38
+ putBucketEncryption(command: simS3Commands.SimPutBucketEncryptionCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimPutBucketEncryptionCommandOutput>;
39
+ /** Handle a Get Bucket Encryption Command from the SDK. */
40
+ getBucketEncryption(command: simS3Commands.SimGetBucketEncryptionCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimGetBucketEncryptionCommandOutput>;
41
+ /** Handle a Delete Bucket Encryption Command from the SDK. */
42
+ deleteBucketEncryption(command: simS3Commands.SimDeleteBucketEncryptionCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimDeleteBucketEncryptionCommandOutput>;
36
43
  /** Handle a Put Bucket Website Command from the SDK. */
37
44
  putBucketWebsite(command: simS3Commands.SimPutBucketWebsiteCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimPutBucketWebsiteCommandOutput>;
38
45
  /** Handle a Put Bucket Notification Configuration Command from the SDK. */
@@ -1,14 +1,15 @@
1
- import { SimS3VersionOperations } from "./sim-s3-version-operations.js";
1
+ import { SimS3TaggingOperations } from "./sim-s3-tagging-operations.js";
2
2
  /**
3
3
  * The AWS operations simulated S3 answers. One delegation per SDK Command,
4
4
  * onto the handler in `SimS3Commands` that runs it.
5
5
  *
6
6
  * `SimS3` extends this. A caller reaches every operation on the one service
7
7
  * object, alongside the simulator-only controls `SimS3` holds itself. The
8
- * operations that make a Bucket keep what it held are on
9
- * `SimS3VersionOperations`, which this extends.
8
+ * operations that tag an Object are on `SimS3TaggingOperations`, and the ones
9
+ * that make a Bucket keep what it held are on `SimS3VersionOperations` below
10
+ * it, both of which this extends.
10
11
  */
11
- export class SimS3Operations extends SimS3VersionOperations {
12
+ export class SimS3Operations extends SimS3TaggingOperations {
12
13
  /** Handle a Create Bucket Command from the SDK. */
13
14
  async createBucket(command, options) {
14
15
  return await this.commands.buckets.create(command, options);
@@ -53,6 +54,18 @@ export class SimS3Operations extends SimS3VersionOperations {
53
54
  async deletePublicAccessBlock(command, options) {
54
55
  return await this.commands.publicAccessBlocks.delete(command, options);
55
56
  }
57
+ /** Handle a Put Bucket Encryption Command from the SDK. */
58
+ async putBucketEncryption(command, options) {
59
+ return await this.commands.encryption.put(command, options);
60
+ }
61
+ /** Handle a Get Bucket Encryption Command from the SDK. */
62
+ async getBucketEncryption(command, options) {
63
+ return await this.commands.encryption.get(command, options);
64
+ }
65
+ /** Handle a Delete Bucket Encryption Command from the SDK. */
66
+ async deleteBucketEncryption(command, options) {
67
+ return await this.commands.encryption.delete(command, options);
68
+ }
56
69
  /** Handle a Put Bucket Website Command from the SDK. */
57
70
  async putBucketWebsite(command, options) {
58
71
  return await this.commands.buckets.putWebsite(command, options);
@@ -0,0 +1,21 @@
1
+ import type * as simS3Commands from "./command/sim-s3-command.types.js";
2
+ import type { SimS3RequestOptions } from "./command/sim-s3-request-options.js";
3
+ import { SimS3VersionOperations } from "./sim-s3-version-operations.js";
4
+ /**
5
+ * The AWS operations that hold tags against an Object.
6
+ *
7
+ * They sit together because real S3 grants each of them a permission of its
8
+ * own, and none of them is reachable through the read and the write of the
9
+ * Object they name.
10
+ *
11
+ * `SimS3Operations` extends this, and `SimS3` extends that, so a caller reaches
12
+ * all of them on the one service object.
13
+ */
14
+ export declare abstract class SimS3TaggingOperations extends SimS3VersionOperations {
15
+ /** Handle a Put Object Tagging Command from the SDK. */
16
+ putObjectTagging(command: simS3Commands.SimPutObjectTaggingCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimPutObjectTaggingCommandOutput>;
17
+ /** Handle a Get Object Tagging Command from the SDK. */
18
+ getObjectTagging(command: simS3Commands.SimGetObjectTaggingCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimGetObjectTaggingCommandOutput>;
19
+ /** Handle a Delete Object Tagging Command from the SDK. */
20
+ deleteObjectTagging(command: simS3Commands.SimDeleteObjectTaggingCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimDeleteObjectTaggingCommandOutput>;
21
+ }
@@ -0,0 +1,25 @@
1
+ import { SimS3VersionOperations } from "./sim-s3-version-operations.js";
2
+ /**
3
+ * The AWS operations that hold tags against an Object.
4
+ *
5
+ * They sit together because real S3 grants each of them a permission of its
6
+ * own, and none of them is reachable through the read and the write of the
7
+ * Object they name.
8
+ *
9
+ * `SimS3Operations` extends this, and `SimS3` extends that, so a caller reaches
10
+ * all of them on the one service object.
11
+ */
12
+ export class SimS3TaggingOperations extends SimS3VersionOperations {
13
+ /** Handle a Put Object Tagging Command from the SDK. */
14
+ async putObjectTagging(command, options) {
15
+ return await this.commands.objectTagging.put(command, options);
16
+ }
17
+ /** Handle a Get Object Tagging Command from the SDK. */
18
+ async getObjectTagging(command, options) {
19
+ return await this.commands.objectTagging.get(command, options);
20
+ }
21
+ /** Handle a Delete Object Tagging Command from the SDK. */
22
+ async deleteObjectTagging(command, options) {
23
+ return await this.commands.objectTagging.delete(command, options);
24
+ }
25
+ }
@@ -5,6 +5,7 @@ import { type SimS3Properties } from "./sim-s3-commands.js";
5
5
  import { SimS3Operations } from "./sim-s3-operations.js";
6
6
  import type { SimSdkCommandRouter } from "../../sdk/router/sim-sdk-command-router.type.js";
7
7
  import type { SimS3NotificationDeliveryFailure } from "./notification/sim-s3-notification-failures.js";
8
+ import type { SimS3ObjectNotifier } from "./notification/sim-s3-object-notifier.js";
8
9
  import type { SimS3MountFilesystemOptions } from "./mount/sim-s3-mount.type.js";
9
10
  /**
10
11
  * Simulated S3. Handles SDK commands. Emulates AWS behaviour and state.
@@ -17,9 +18,25 @@ import type { SimS3MountFilesystemOptions } from "./mount/sim-s3-mount.type.js";
17
18
  */
18
19
  export declare class SimS3 extends SimS3Operations {
19
20
  private readonly bucketAccess;
21
+ private readonly bucketMaker;
20
22
  private readonly cfnFactory;
21
23
  private readonly sdkRouter;
22
24
  constructor(properties?: SimS3Properties);
25
+ /**
26
+ * Make a Bucket in this scope without a `CreateBucketCommand`, and so
27
+ * without a principal to authorize.
28
+ *
29
+ * This is for a Bucket real AWS has provisioned before the code under test
30
+ * runs, which nothing in the simulation is deploying. The CDK bootstrap
31
+ * staging Bucket is the one the simulator makes for itself: `cdk deploy`
32
+ * publishes assets into a Bucket the bootstrap stack created, and a
33
+ * deployment that had to create it would be charged permissions no real
34
+ * deployment needs.
35
+ *
36
+ * A name this scope cannot take is reported the way `CreateBucketCommand`
37
+ * reports it.
38
+ */
39
+ makeSimBucket(bucketName: SimS3BucketName | string): SimS3Bucket;
23
40
  /**
24
41
  * Change how many keys one page of an Object listing holds, which real S3
25
42
  * fixes at a thousand.
@@ -36,6 +53,17 @@ export declare class SimS3 extends SimS3Operations {
36
53
  * real S3 tells the caller who wrote the Object nothing about a delivery.
37
54
  */
38
55
  getNotificationDeliveryFailures(): readonly SimS3NotificationDeliveryFailure[];
56
+ /**
57
+ * Get the notifier this scope's Object commands raise their events through.
58
+ *
59
+ * A write that reaches a Bucket without going through an S3 command still
60
+ * owes the Bucket's destinations an event. A CDK BucketDeployment is one. It
61
+ * stands in for a provider function that syncs a directory into the Bucket,
62
+ * and the Bucket notifies whatever it was configured to notify. One notifier
63
+ * serves the scope, so the events a deployment raises are sequenced against
64
+ * the commands' own rather than starting a sequence beside them.
65
+ */
66
+ objectNotifier(): SimS3ObjectNotifier;
39
67
  /**
40
68
  * Get the simulated S3 REST API endpoint URL for this Region, which is what
41
69
  * an AWS SDK S3 client, and the presigner built on it, is configured with.
@@ -1,5 +1,6 @@
1
1
  import { SimS3GlobalRegistry } from "./sim-s3-global-registry.js";
2
2
  import { SimS3BucketAccess } from "./bucket/sim-s3-bucket-access.js";
3
+ import { SimS3BucketMaker } from "./bucket/sim-s3-bucket-maker.js";
3
4
  import { SimS3CloudFormationResourceFactory } from "./cfn/sim-cfn-s3-resource-factory.js";
4
5
  import { simAwsAccountRegionScopeFactory } from "../aws/sim-aws-account-region-scope.factory.js";
5
6
  import { SimS3Commands } from "./sim-s3-commands.js";
@@ -16,6 +17,7 @@ import { SimS3SdkCommandRouter } from "./sdk/sim-s3-sdk-command-router.js";
16
17
  */
17
18
  export class SimS3 extends SimS3Operations {
18
19
  bucketAccess;
20
+ bucketMaker;
19
21
  cfnFactory = new SimS3CloudFormationResourceFactory(this);
20
22
  sdkRouter = new SimS3SdkCommandRouter(this);
21
23
  constructor(properties = {}) {
@@ -32,6 +34,29 @@ export class SimS3 extends SimS3Operations {
32
34
  accountRegionScope,
33
35
  s3GlobalRegistry,
34
36
  });
37
+ this.bucketMaker = new SimS3BucketMaker({
38
+ accountRegionScope,
39
+ buckets,
40
+ s3GlobalRegistry,
41
+ background: this.commands.background,
42
+ });
43
+ }
44
+ /**
45
+ * Make a Bucket in this scope without a `CreateBucketCommand`, and so
46
+ * without a principal to authorize.
47
+ *
48
+ * This is for a Bucket real AWS has provisioned before the code under test
49
+ * runs, which nothing in the simulation is deploying. The CDK bootstrap
50
+ * staging Bucket is the one the simulator makes for itself: `cdk deploy`
51
+ * publishes assets into a Bucket the bootstrap stack created, and a
52
+ * deployment that had to create it would be charged permissions no real
53
+ * deployment needs.
54
+ *
55
+ * A name this scope cannot take is reported the way `CreateBucketCommand`
56
+ * reports it.
57
+ */
58
+ makeSimBucket(bucketName) {
59
+ return this.bucketMaker.make(bucketName);
35
60
  }
36
61
  /**
37
62
  * Change how many keys one page of an Object listing holds, which real S3
@@ -55,6 +80,19 @@ export class SimS3 extends SimS3Operations {
55
80
  getNotificationDeliveryFailures() {
56
81
  return this.commands.objectNotifier.deliveryFailures;
57
82
  }
83
+ /**
84
+ * Get the notifier this scope's Object commands raise their events through.
85
+ *
86
+ * A write that reaches a Bucket without going through an S3 command still
87
+ * owes the Bucket's destinations an event. A CDK BucketDeployment is one. It
88
+ * stands in for a provider function that syncs a directory into the Bucket,
89
+ * and the Bucket notifies whatever it was configured to notify. One notifier
90
+ * serves the scope, so the events a deployment raises are sequenced against
91
+ * the commands' own rather than starting a sequence beside them.
92
+ */
93
+ objectNotifier() {
94
+ return this.commands.objectNotifier;
95
+ }
58
96
  /**
59
97
  * Get the simulated S3 REST API endpoint URL for this Region, which is what
60
98
  * an AWS SDK S3 client, and the presigner built on it, is configured with.
@@ -0,0 +1,34 @@
1
+ import { FilesystemS3BucketStorage, type FilesystemS3BucketStorageProperties } from "./s3-filesystem-storage.js";
2
+ interface FilesystemS3MountStorageProperties extends FilesystemS3BucketStorageProperties {
3
+ /**
4
+ * Whether the mount asked to be able to delete the files under it.
5
+ */
6
+ readonly allowDelete?: boolean | undefined;
7
+ }
8
+ /**
9
+ * Filesystem-backed storage for a mount that asked to be able to delete.
10
+ *
11
+ * A mounted Bucket refuses a delete by default, for the reason
12
+ * `FilesystemS3BucketStorage.deleteObject` gives. `allowDelete` on the mount
13
+ * is what puts this in its place, and the Bucket then deletes the way an
14
+ * in-memory one does.
15
+ */
16
+ export declare class DeletingFilesystemS3BucketStorage extends FilesystemS3BucketStorage {
17
+ /**
18
+ * Remove the file backing a simulated Object.
19
+ *
20
+ * The removal is reported, so the Bucket raises the event a removal raises,
21
+ * and the key goes through the same safety checks a read and a write do. A
22
+ * delete naming a path or a file type those refuse is refused here too.
23
+ */
24
+ deleteObject(key: string): Promise<boolean>;
25
+ }
26
+ /**
27
+ * The storage a mounted directory gets, deleting only where the mount said so.
28
+ *
29
+ * The choice is made once, when the directory is mounted, so a Bucket that may
30
+ * delete and a Bucket that may not are two different pieces of storage rather
31
+ * than one holding a flag.
32
+ */
33
+ export declare function filesystemS3MountStorage(properties: FilesystemS3MountStorageProperties): FilesystemS3BucketStorage;
34
+ export {};
@@ -0,0 +1,34 @@
1
+ import { unlinkFilesystemS3File } from "./s3-filesystem-deletion.js";
2
+ import { FilesystemS3BucketStorage, } from "./s3-filesystem-storage.js";
3
+ /**
4
+ * Filesystem-backed storage for a mount that asked to be able to delete.
5
+ *
6
+ * A mounted Bucket refuses a delete by default, for the reason
7
+ * `FilesystemS3BucketStorage.deleteObject` gives. `allowDelete` on the mount
8
+ * is what puts this in its place, and the Bucket then deletes the way an
9
+ * in-memory one does.
10
+ */
11
+ export class DeletingFilesystemS3BucketStorage extends FilesystemS3BucketStorage {
12
+ /**
13
+ * Remove the file backing a simulated Object.
14
+ *
15
+ * The removal is reported, so the Bucket raises the event a removal raises,
16
+ * and the key goes through the same safety checks a read and a write do. A
17
+ * delete naming a path or a file type those refuse is refused here too.
18
+ */
19
+ async deleteObject(key) {
20
+ return await unlinkFilesystemS3File(this.objectKeys.filePathFor(key));
21
+ }
22
+ }
23
+ /**
24
+ * The storage a mounted directory gets, deleting only where the mount said so.
25
+ *
26
+ * The choice is made once, when the directory is mounted, so a Bucket that may
27
+ * delete and a Bucket that may not are two different pieces of storage rather
28
+ * than one holding a flag.
29
+ */
30
+ export function filesystemS3MountStorage(properties) {
31
+ return properties.allowDelete === true
32
+ ? new DeletingFilesystemS3BucketStorage(properties)
33
+ : new FilesystemS3BucketStorage(properties);
34
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Remove one file, reporting whether there was one to remove.
3
+ *
4
+ * A key the directory does not hold is what an idempotent S3 delete of a
5
+ * missing Object looks like, and the Bucket raises no removal event for it.
6
+ * The directory the file was in stays where it is, since a Bucket has no
7
+ * directories for an empty one to be.
8
+ */
9
+ export declare function unlinkFilesystemS3File(filePath: string): Promise<boolean>;
@@ -0,0 +1,24 @@
1
+ import { unlink } from "node:fs/promises";
2
+ import { isMissingFilesystemPathError } from "./filesystem-path-exists.js";
3
+ /**
4
+ * Remove one file, reporting whether there was one to remove.
5
+ *
6
+ * A key the directory does not hold is what an idempotent S3 delete of a
7
+ * missing Object looks like, and the Bucket raises no removal event for it.
8
+ * The directory the file was in stays where it is, since a Bucket has no
9
+ * directories for an empty one to be.
10
+ */
11
+ export async function unlinkFilesystemS3File(filePath) {
12
+ try {
13
+ // oxlint-disable-next-line security/detect-non-literal-fs-filename
14
+ await unlink(filePath);
15
+ }
16
+ catch (error) {
17
+ if (isMissingFilesystemPathError(error)) {
18
+ return false;
19
+ }
20
+ /* v8 ignore next */
21
+ throw error;
22
+ }
23
+ return true;
24
+ }
@@ -1,7 +1,8 @@
1
1
  import type { SimS3BucketStorage } from "../s3-bucket-storage.js";
2
2
  import type { SimS3Object } from "../../object/s3-object.js";
3
+ import { FilesystemS3ObjectKeys } from "./s3-filesystem-object-keys.js";
3
4
  import { SimS3DeclaredSystemMetadata } from "../../object/s3-declared-system-metadata.js";
4
- interface FilesystemS3BucketStorageProperties {
5
+ export interface FilesystemS3BucketStorageProperties {
5
6
  readonly directoryPath: string;
6
7
  readonly allowedDirectoryNames?: readonly string[];
7
8
  readonly additionalFileExtensions?: readonly string[];
@@ -21,9 +22,9 @@ interface FilesystemS3BucketStorageProperties {
21
22
  * potential safety issues.
22
23
  */
23
24
  export declare class FilesystemS3BucketStorage implements SimS3BucketStorage {
25
+ protected readonly objectKeys: FilesystemS3ObjectKeys;
24
26
  private readonly directoryPath;
25
27
  private readonly safety;
26
- private readonly objectKeys;
27
28
  private readonly systemMetadata;
28
29
  constructor(properties: FilesystemS3BucketStorageProperties);
29
30
  /**
@@ -45,8 +46,8 @@ export declare class FilesystemS3BucketStorage implements SimS3BucketStorage {
45
46
  * a Bucket at an ordinary directory of the user's, and the safety checks here
46
47
  * are local-development tooling rather than a sandbox boundary. Unlinking
47
48
  * someone's files because a test called DeleteObject is the wrong default, so
48
- * filesystem-backed Buckets are read and written but never emptied.
49
+ * a mount that wants deletes asks for one with `allowDelete` and gets
50
+ * `DeletingFilesystemS3BucketStorage` in place of this.
49
51
  */
50
52
  deleteObject(key: string): Promise<boolean>;
51
53
  }
52
- export {};
@@ -16,9 +16,9 @@ import { filesystemS3ObjectFile } from "./s3-filesystem-object-file.js";
16
16
  * potential safety issues.
17
17
  */
18
18
  export class FilesystemS3BucketStorage {
19
+ objectKeys;
19
20
  directoryPath;
20
21
  safety;
21
- objectKeys;
22
22
  systemMetadata;
23
23
  constructor(properties) {
24
24
  this.systemMetadata =
@@ -76,11 +76,13 @@ export class FilesystemS3BucketStorage {
76
76
  * a Bucket at an ordinary directory of the user's, and the safety checks here
77
77
  * are local-development tooling rather than a sandbox boundary. Unlinking
78
78
  * someone's files because a test called DeleteObject is the wrong default, so
79
- * filesystem-backed Buckets are read and written but never emptied.
79
+ * a mount that wants deletes asks for one with `allowDelete` and gets
80
+ * `DeletingFilesystemS3BucketStorage` in place of this.
80
81
  */
81
82
  deleteObject(key) {
82
83
  return Promise.reject(new SimS3NotImplemented(`Simulated S3 will not delete ${key} from filesystem-backed storage ` +
83
84
  `at ${this.directoryPath}, because it would remove a real file. ` +
84
- `Use the default in-memory Bucket storage to simulate deletion.`));
85
+ `Mount the directory with { allowDelete: true } to allow it, or use ` +
86
+ `the default in-memory Bucket storage to simulate deletion.`));
85
87
  }
86
88
  }
@@ -1,4 +1,5 @@
1
- import { SimS3InvalidPart, SimS3InvalidPartOrder, SimS3MalformedXml, } from "../error/sim-s3.error.js";
1
+ import { SimS3MalformedXml } from "../error/sim-s3.error.js";
2
+ import { SimS3InvalidPart, SimS3InvalidPartOrder, } from "../error/sim-s3-upload.error.js";
2
3
  import { SimS3Object } from "../object/s3-object.js";
3
4
  import { simS3MultipartETag, simS3UnquotedETag, } from "../object/s3-object-etag.js";
4
5
  /**
@@ -28,6 +29,9 @@ export function simS3CompletedUploadObject(properties) {
28
29
  metadata: upload.metadata,
29
30
  lastModified: properties.completedAt,
30
31
  etag: simS3MultipartETag(stored.map((part) => part.etag)),
32
+ storageClass: upload.storageClass,
33
+ serverSideEncryption: upload.serverSideEncryption,
34
+ tags: upload.tags,
31
35
  });
32
36
  }
33
37
  /**
@@ -1,5 +1,8 @@
1
1
  import type { Brand } from "../../../util/brand.type.js";
2
2
  import type { SimS3ObjectMetadata } from "../object/s3-object.js";
3
+ import { SimS3ObjectTagSet } from "../object/s3-object-tags.js";
4
+ import type { SimS3ServerSideEncryption } from "../object/s3-server-side-encryption.js";
5
+ import { type SimS3StorageClass } from "../object/s3-storage-class.js";
3
6
  export type SimS3UploadId = Brand<string, "SimS3UploadId">;
4
7
  /**
5
8
  * One numbered part of a multipart upload, as S3 holds it between the
@@ -21,6 +24,18 @@ interface SimS3MultipartUploadProperties {
21
24
  readonly key: string;
22
25
  readonly metadata: SimS3ObjectMetadata;
23
26
  readonly initiated: Date;
27
+ /**
28
+ * Where and how the completed Object will be stored. Real S3 takes both at
29
+ * `CreateMultipartUpload`, alongside the metadata, rather than at completion.
30
+ */
31
+ readonly storageClass?: SimS3StorageClass;
32
+ readonly serverSideEncryption?: SimS3ServerSideEncryption | undefined;
33
+ /**
34
+ * The tags the completed Object will carry. Real S3 takes these at
35
+ * `CreateMultipartUpload` too, for the same reason it takes the metadata
36
+ * there: the request describing the Object arrives before its bytes.
37
+ */
38
+ readonly tags?: SimS3ObjectTagSet | undefined;
24
39
  }
25
40
  /**
26
41
  * A simulated S3 multipart upload in progress.
@@ -40,6 +55,9 @@ export declare class SimS3MultipartUpload {
40
55
  readonly key: string;
41
56
  readonly metadata: SimS3ObjectMetadata;
42
57
  readonly initiated: Date;
58
+ readonly storageClass: SimS3StorageClass;
59
+ readonly serverSideEncryption: SimS3ServerSideEncryption | undefined;
60
+ readonly tags: SimS3ObjectTagSet;
43
61
  private readonly parts;
44
62
  constructor(properties: SimS3MultipartUploadProperties);
45
63
  /**
@@ -1,4 +1,6 @@
1
1
  import { createHash } from "node:crypto";
2
+ import { SimS3ObjectTagSet } from "../object/s3-object-tags.js";
3
+ import { simS3DefaultStorageClass, } from "../object/s3-storage-class.js";
2
4
  /**
3
5
  * One numbered part of a multipart upload, as S3 holds it between the
4
6
  * `UploadPart` that stored it and the `CompleteMultipartUpload` that joins it
@@ -37,12 +39,18 @@ export class SimS3MultipartUpload {
37
39
  key;
38
40
  metadata;
39
41
  initiated;
42
+ storageClass;
43
+ serverSideEncryption;
44
+ tags;
40
45
  parts = new Map();
41
46
  constructor(properties) {
42
47
  this.uploadId = properties.uploadId;
43
48
  this.key = properties.key;
44
49
  this.metadata = properties.metadata;
45
50
  this.initiated = new Date(properties.initiated);
51
+ this.storageClass = properties.storageClass ?? simS3DefaultStorageClass;
52
+ this.serverSideEncryption = properties.serverSideEncryption;
53
+ this.tags = properties.tags ?? SimS3ObjectTagSet.empty();
46
54
  }
47
55
  /**
48
56
  * Store a numbered part, replacing whatever was under that number.
@@ -1,9 +1,15 @@
1
1
  import type { SimS3ObjectMetadata } from "../object/s3-object.js";
2
+ import type { SimS3ObjectTagSet } from "../object/s3-object-tags.js";
3
+ import type { SimS3ServerSideEncryption } from "../object/s3-server-side-encryption.js";
4
+ import type { SimS3StorageClass } from "../object/s3-storage-class.js";
2
5
  import { SimS3MultipartUpload, type SimS3UploadId } from "./sim-s3-multipart-upload.js";
3
6
  interface SimS3StartUploadProperties {
4
7
  readonly key: string;
5
8
  readonly metadata: SimS3ObjectMetadata;
6
9
  readonly initiated: Date;
10
+ readonly storageClass?: SimS3StorageClass;
11
+ readonly serverSideEncryption?: SimS3ServerSideEncryption | undefined;
12
+ readonly tags?: SimS3ObjectTagSet | undefined;
7
13
  }
8
14
  /**
9
15
  * The multipart uploads one Bucket has in progress.
@@ -23,6 +23,11 @@ export class SimS3MultipartUploads {
23
23
  key: properties.key,
24
24
  metadata: properties.metadata,
25
25
  initiated: properties.initiated,
26
+ ...(properties.storageClass !== undefined && {
27
+ storageClass: properties.storageClass,
28
+ }),
29
+ serverSideEncryption: properties.serverSideEncryption,
30
+ tags: properties.tags,
26
31
  });
27
32
  this.uploads.set(upload.uploadId, upload);
28
33
  return upload;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * How many things one running scheduled task is waiting on the clock for.
3
+ */
4
+ export interface BackgroundClockWait {
5
+ count: number;
6
+ }
7
+ /**
8
+ * Which scheduled tasks are waiting for the clock rather than for the host.
9
+ *
10
+ * Completing a simulation waits for the work that can still get somewhere on
11
+ * its own. A task blocked on an instant the clock has not reached is not that
12
+ * kind of work: only moving the clock releases it, and whatever moves the
13
+ * clock is what waits for completion. Left in, it would be waiting for itself.
14
+ *
15
+ * A task says so for itself, from wherever inside it the wait happens, so a
16
+ * scheduler needs no way of telling one kind of work from another. Code
17
+ * running outside a scheduled task has nothing to say, and changes nothing by
18
+ * saying it, which is what keeps this invisible to a caller who holds the
19
+ * promise itself.
20
+ */
21
+ export declare class BackgroundClockWaits {
22
+ private readonly storage;
23
+ private started;
24
+ /**
25
+ * Run outstanding work with a record of what it waits on the clock for.
26
+ */
27
+ around<T>(wait: BackgroundClockWait, work: () => Promise<T>): Promise<T>;
28
+ /**
29
+ * The work in a set that is neither waiting on the clock nor the work asking
30
+ * about it.
31
+ */
32
+ runnable(held: ReadonlyMap<Promise<unknown>, BackgroundClockWait>): Promise<unknown>[];
33
+ /**
34
+ * Whether the code running now is already inside outstanding work, and so
35
+ * already counted.
36
+ */
37
+ get inWork(): boolean;
38
+ /**
39
+ * Say that the task running now is waiting for simulated time to reach an
40
+ * instant, and get back the way to say it no longer is.
41
+ */
42
+ begin(): () => void;
43
+ /**
44
+ * Resolves the next time a task starts waiting on the clock.
45
+ *
46
+ * Whoever is waiting for the simulation to complete takes this alongside the
47
+ * tasks it is waiting for, so a task that parks part way through stops the
48
+ * wait rather than extending it forever.
49
+ */
50
+ get next(): Promise<undefined>;
51
+ private wake;
52
+ }
@@ -0,0 +1,76 @@
1
+ import { AsyncLocalStorage } from "node:async_hooks";
2
+ /**
3
+ * Which scheduled tasks are waiting for the clock rather than for the host.
4
+ *
5
+ * Completing a simulation waits for the work that can still get somewhere on
6
+ * its own. A task blocked on an instant the clock has not reached is not that
7
+ * kind of work: only moving the clock releases it, and whatever moves the
8
+ * clock is what waits for completion. Left in, it would be waiting for itself.
9
+ *
10
+ * A task says so for itself, from wherever inside it the wait happens, so a
11
+ * scheduler needs no way of telling one kind of work from another. Code
12
+ * running outside a scheduled task has nothing to say, and changes nothing by
13
+ * saying it, which is what keeps this invisible to a caller who holds the
14
+ * promise itself.
15
+ */
16
+ export class BackgroundClockWaits {
17
+ storage = new AsyncLocalStorage();
18
+ started = Promise.withResolvers();
19
+ /**
20
+ * Run outstanding work with a record of what it waits on the clock for.
21
+ */
22
+ async around(wait, work) {
23
+ return await this.storage.run(wait, work);
24
+ }
25
+ /**
26
+ * The work in a set that is neither waiting on the clock nor the work asking
27
+ * about it.
28
+ */
29
+ runnable(held) {
30
+ const own = this.storage.getStore();
31
+ return held
32
+ .entries()
33
+ .filter(([, wait]) => wait.count === 0 && wait !== own)
34
+ .map(([promise]) => promise)
35
+ .toArray();
36
+ }
37
+ /**
38
+ * Whether the code running now is already inside outstanding work, and so
39
+ * already counted.
40
+ */
41
+ get inWork() {
42
+ return this.storage.getStore() !== undefined;
43
+ }
44
+ /**
45
+ * Say that the task running now is waiting for simulated time to reach an
46
+ * instant, and get back the way to say it no longer is.
47
+ */
48
+ begin() {
49
+ const wait = this.storage.getStore();
50
+ if (wait === undefined) {
51
+ return () => {
52
+ // Nothing scheduled is waiting, so nothing stops waiting either.
53
+ };
54
+ }
55
+ wait.count += 1;
56
+ this.wake();
57
+ return () => {
58
+ wait.count -= 1;
59
+ };
60
+ }
61
+ /**
62
+ * Resolves the next time a task starts waiting on the clock.
63
+ *
64
+ * Whoever is waiting for the simulation to complete takes this alongside the
65
+ * tasks it is waiting for, so a task that parks part way through stops the
66
+ * wait rather than extending it forever.
67
+ */
68
+ get next() {
69
+ return this.started.promise;
70
+ }
71
+ wake() {
72
+ const { resolve } = this.started;
73
+ this.started = Promise.withResolvers();
74
+ resolve(undefined);
75
+ }
76
+ }
@@ -1,3 +1,4 @@
1
+ import { setTimeout } from "node:timers";
1
2
  /**
2
3
  * A short random pause between scheduling a task and running it.
3
4
  *