@kensio/yulin 0.35.0 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (649) hide show
  1. package/README.md +37 -0
  2. package/dist/index.d.ts +5 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +5 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/serve/controller/factory/sim-aws-service-controller-factory.d.ts.map +1 -1
  7. package/dist/serve/controller/factory/sim-aws-service-controller-factory.js +4 -0
  8. package/dist/serve/controller/factory/sim-aws-service-controller-factory.js.map +1 -1
  9. package/dist/serve/controller/sim-aws-service-signing-name.d.ts +11 -0
  10. package/dist/serve/controller/sim-aws-service-signing-name.d.ts.map +1 -0
  11. package/dist/serve/controller/sim-aws-service-signing-name.js +25 -0
  12. package/dist/serve/controller/sim-aws-service-signing-name.js.map +1 -0
  13. package/dist/serve/controller/sim-service-controller.d.ts +29 -2
  14. package/dist/serve/controller/sim-service-controller.d.ts.map +1 -1
  15. package/dist/serve/controller/sim-service-controller.js +26 -1
  16. package/dist/serve/controller/sim-service-controller.js.map +1 -1
  17. package/dist/serve/http/request/sim-aws-received-request.d.ts +29 -0
  18. package/dist/serve/http/request/sim-aws-received-request.d.ts.map +1 -0
  19. package/dist/serve/http/request/sim-aws-received-request.js +53 -0
  20. package/dist/serve/http/request/sim-aws-received-request.js.map +1 -0
  21. package/dist/serve/http/request/sim-aws-request-authenticator.d.ts +31 -0
  22. package/dist/serve/http/request/sim-aws-request-authenticator.d.ts.map +1 -0
  23. package/dist/serve/http/request/sim-aws-request-authenticator.js +45 -0
  24. package/dist/serve/http/request/sim-aws-request-authenticator.js.map +1 -0
  25. package/dist/serve/http/response/sim-aws-auth-failure-response.d.ts +30 -0
  26. package/dist/serve/http/response/sim-aws-auth-failure-response.d.ts.map +1 -0
  27. package/dist/serve/http/response/sim-aws-auth-failure-response.js +51 -0
  28. package/dist/serve/http/response/sim-aws-auth-failure-response.js.map +1 -0
  29. package/dist/serve/http/response/sim-aws-response-hints.d.ts +35 -0
  30. package/dist/serve/http/response/sim-aws-response-hints.d.ts.map +1 -0
  31. package/dist/serve/http/response/sim-aws-response-hints.js +49 -0
  32. package/dist/serve/http/response/sim-aws-response-hints.js.map +1 -0
  33. package/dist/serve/http/sim-aws-http.d.ts +17 -0
  34. package/dist/serve/http/sim-aws-http.d.ts.map +1 -1
  35. package/dist/serve/http/sim-aws-http.js +34 -2
  36. package/dist/serve/http/sim-aws-http.js.map +1 -1
  37. package/dist/serve/http/url/sim-aws-local-url.d.ts +8 -0
  38. package/dist/serve/http/url/sim-aws-local-url.d.ts.map +1 -1
  39. package/dist/serve/http/url/sim-aws-local-url.js +14 -3
  40. package/dist/serve/http/url/sim-aws-local-url.js.map +1 -1
  41. package/dist/serve/index.d.ts +2 -0
  42. package/dist/serve/index.d.ts.map +1 -1
  43. package/dist/serve/index.js +2 -0
  44. package/dist/serve/index.js.map +1 -1
  45. package/dist/service/acm/certificate/sim-acm-certificate.d.ts +7 -0
  46. package/dist/service/acm/certificate/sim-acm-certificate.d.ts.map +1 -1
  47. package/dist/service/acm/certificate/sim-acm-certificate.js +5 -2
  48. package/dist/service/acm/certificate/sim-acm-certificate.js.map +1 -1
  49. package/dist/service/acm/command/request-certificate/request-cert-factory.d.ts +3 -0
  50. package/dist/service/acm/command/request-certificate/request-cert-factory.d.ts.map +1 -1
  51. package/dist/service/acm/command/request-certificate/request-cert-factory.js +4 -1
  52. package/dist/service/acm/command/request-certificate/request-cert-factory.js.map +1 -1
  53. package/dist/service/acm/command/request-certificate/request-certificate.handler.d.ts.map +1 -1
  54. package/dist/service/acm/command/request-certificate/request-certificate.handler.js +1 -0
  55. package/dist/service/acm/command/request-certificate/request-certificate.handler.js.map +1 -1
  56. package/dist/service/aws/caller/sim-aws-caller-resolver.d.ts +2 -1
  57. package/dist/service/aws/caller/sim-aws-caller-resolver.d.ts.map +1 -1
  58. package/dist/service/aws/caller/sim-aws-caller-resolver.js +5 -1
  59. package/dist/service/aws/caller/sim-aws-caller-resolver.js.map +1 -1
  60. package/dist/service/aws/caller/sim-aws-caller.d.ts +16 -1
  61. package/dist/service/aws/caller/sim-aws-caller.d.ts.map +1 -1
  62. package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts +3 -0
  63. package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts.map +1 -1
  64. package/dist/service/aws/factory/sim-aws-account-service-cache.js +13 -0
  65. package/dist/service/aws/factory/sim-aws-account-service-cache.js.map +1 -1
  66. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +35 -0
  67. package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
  68. package/dist/service/aws/factory/sim-aws-service-factory.js +45 -0
  69. package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
  70. package/dist/service/aws/sim-aws-properties.d.ts +36 -0
  71. package/dist/service/aws/sim-aws-properties.d.ts.map +1 -0
  72. package/dist/service/aws/sim-aws-properties.js +2 -0
  73. package/dist/service/aws/sim-aws-properties.js.map +1 -0
  74. package/dist/service/aws/sim-aws-timekeeping.d.ts +33 -0
  75. package/dist/service/aws/sim-aws-timekeeping.d.ts.map +1 -0
  76. package/dist/service/aws/sim-aws-timekeeping.js +49 -0
  77. package/dist/service/aws/sim-aws-timekeeping.js.map +1 -0
  78. package/dist/service/aws/sim-aws.d.ts +67 -7
  79. package/dist/service/aws/sim-aws.d.ts.map +1 -1
  80. package/dist/service/aws/sim-aws.js +81 -2
  81. package/dist/service/aws/sim-aws.js.map +1 -1
  82. package/dist/service/cloudformation/cdk/assets/sim-cdk-asset-bytes.d.ts +11 -0
  83. package/dist/service/cloudformation/cdk/assets/sim-cdk-asset-bytes.d.ts.map +1 -0
  84. package/dist/service/cloudformation/cdk/assets/sim-cdk-asset-bytes.js +57 -0
  85. package/dist/service/cloudformation/cdk/assets/sim-cdk-asset-bytes.js.map +1 -0
  86. package/dist/service/cloudformation/cdk/assets/sim-cdk-asset-publications.d.ts +55 -0
  87. package/dist/service/cloudformation/cdk/assets/sim-cdk-asset-publications.d.ts.map +1 -0
  88. package/dist/service/cloudformation/cdk/assets/sim-cdk-asset-publications.js +86 -0
  89. package/dist/service/cloudformation/cdk/assets/sim-cdk-asset-publications.js.map +1 -0
  90. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.d.ts +56 -0
  91. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.d.ts.map +1 -0
  92. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.js +112 -0
  93. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.js.map +1 -0
  94. package/dist/service/cloudformation/cdk/sim-cdk-out-context.d.ts +1 -0
  95. package/dist/service/cloudformation/cdk/sim-cdk-out-context.d.ts.map +1 -1
  96. package/dist/service/cloudformation/cdk/sim-cdk-out-context.js.map +1 -1
  97. package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-function-url-cfn.d.ts +29 -0
  98. package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-function-url-cfn.d.ts.map +1 -0
  99. package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-function-url-cfn.js +34 -0
  100. package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-function-url-cfn.js.map +1 -0
  101. package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.d.ts.map +1 -1
  102. package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.js +8 -0
  103. package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.js.map +1 -1
  104. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +5 -0
  105. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts.map +1 -1
  106. package/dist/service/cloudformation/stack/sim-cfn-stack.js +13 -0
  107. package/dist/service/cloudformation/stack/sim-cfn-stack.js.map +1 -1
  108. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts.map +1 -1
  109. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js +1 -0
  110. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js.map +1 -1
  111. package/dist/service/cloudfront/controller/sim-cloudfront-controller.d.ts +5 -5
  112. package/dist/service/cloudfront/controller/sim-cloudfront-controller.d.ts.map +1 -1
  113. package/dist/service/cloudfront/controller/sim-cloudfront-controller.js +5 -5
  114. package/dist/service/cloudfront/controller/sim-cloudfront-controller.js.map +1 -1
  115. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts +6 -0
  116. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts.map +1 -1
  117. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js +4 -2
  118. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js.map +1 -1
  119. package/dist/service/dynamodb/table/sim-dynamodb-table.js +1 -1
  120. package/dist/service/dynamodb/table/sim-dynamodb-table.js.map +1 -1
  121. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts +60 -0
  122. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts.map +1 -0
  123. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js +60 -0
  124. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js.map +1 -0
  125. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts +46 -0
  126. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts.map +1 -0
  127. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js +67 -0
  128. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js.map +1 -0
  129. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account-resolver.d.ts +37 -0
  130. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account-resolver.d.ts.map +1 -0
  131. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account-resolver.js +33 -0
  132. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account-resolver.js.map +1 -0
  133. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account.d.ts +21 -0
  134. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account.d.ts.map +1 -0
  135. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account.js +2 -0
  136. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account.js.map +1 -0
  137. package/dist/service/iam/authorize/caller-account/sim-iam-cross-account-caller.d.ts +34 -0
  138. package/dist/service/iam/authorize/caller-account/sim-iam-cross-account-caller.d.ts.map +1 -0
  139. package/dist/service/iam/authorize/caller-account/sim-iam-cross-account-caller.js +22 -0
  140. package/dist/service/iam/authorize/caller-account/sim-iam-cross-account-caller.js.map +1 -0
  141. package/dist/service/iam/authorize/caller-account/sim-iam-same-account-caller.d.ts +18 -0
  142. package/dist/service/iam/authorize/caller-account/sim-iam-same-account-caller.d.ts.map +1 -0
  143. package/dist/service/iam/authorize/caller-account/sim-iam-same-account-caller.js +16 -0
  144. package/dist/service/iam/authorize/caller-account/sim-iam-same-account-caller.js.map +1 -0
  145. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts +1 -2
  146. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts.map +1 -1
  147. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +39 -2
  148. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts.map +1 -1
  149. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +42 -8
  150. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js.map +1 -1
  151. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.d.ts +9 -0
  152. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.d.ts.map +1 -1
  153. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.d.ts.map +1 -1
  154. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.js +2 -0
  155. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.js.map +1 -1
  156. package/dist/service/iam/authorize/identity/sim-iam-account-identity-policies.d.ts +14 -0
  157. package/dist/service/iam/authorize/identity/sim-iam-account-identity-policies.d.ts.map +1 -0
  158. package/dist/service/iam/authorize/identity/sim-iam-account-identity-policies.js +2 -0
  159. package/dist/service/iam/authorize/identity/sim-iam-account-identity-policies.js.map +1 -0
  160. package/dist/service/iam/authorize/sim-iam-account-auth-z.d.ts +24 -1
  161. package/dist/service/iam/authorize/sim-iam-account-auth-z.d.ts.map +1 -1
  162. package/dist/service/iam/authorize/sim-iam-account-auth-z.js +18 -4
  163. package/dist/service/iam/authorize/sim-iam-account-auth-z.js.map +1 -1
  164. package/dist/service/iam/authorize/sim-iam-authorizer.d.ts +11 -2
  165. package/dist/service/iam/authorize/sim-iam-authorizer.d.ts.map +1 -1
  166. package/dist/service/iam/authorize/sim-iam-authorizer.js +14 -1
  167. package/dist/service/iam/authorize/sim-iam-authorizer.js.map +1 -1
  168. package/dist/service/iam/authorize/sim-iam-decision.d.ts +17 -5
  169. package/dist/service/iam/authorize/sim-iam-decision.d.ts.map +1 -1
  170. package/dist/service/iam/authorize/sim-iam-decision.js +27 -13
  171. package/dist/service/iam/authorize/sim-iam-decision.js.map +1 -1
  172. package/dist/service/iam/command/policy/create-policy/create-policy-record-factory.d.ts +1 -0
  173. package/dist/service/iam/command/policy/create-policy/create-policy-record-factory.d.ts.map +1 -1
  174. package/dist/service/iam/command/policy/create-policy/create-policy-record-factory.js +1 -2
  175. package/dist/service/iam/command/policy/create-policy/create-policy-record-factory.js.map +1 -1
  176. package/dist/service/iam/command/policy/create-policy/create-policy.handler.d.ts.map +1 -1
  177. package/dist/service/iam/command/policy/create-policy/create-policy.handler.js +1 -0
  178. package/dist/service/iam/command/policy/create-policy/create-policy.handler.js.map +1 -1
  179. package/dist/service/iam/command/role/create-role/create-role-record-factory.d.ts +1 -0
  180. package/dist/service/iam/command/role/create-role/create-role-record-factory.d.ts.map +1 -1
  181. package/dist/service/iam/command/role/create-role/create-role-record-factory.js +1 -2
  182. package/dist/service/iam/command/role/create-role/create-role-record-factory.js.map +1 -1
  183. package/dist/service/iam/command/role/create-role/create-role.handler.d.ts.map +1 -1
  184. package/dist/service/iam/command/role/create-role/create-role.handler.js +1 -0
  185. package/dist/service/iam/command/role/create-role/create-role.handler.js.map +1 -1
  186. package/dist/service/iam/command/sim-iam-command-handlers.d.ts +41 -0
  187. package/dist/service/iam/command/sim-iam-command-handlers.d.ts.map +1 -0
  188. package/dist/service/iam/command/sim-iam-command-handlers.js +42 -0
  189. package/dist/service/iam/command/sim-iam-command-handlers.js.map +1 -0
  190. package/dist/service/iam/command/user/create-access-key/create-access-key.handler.d.ts.map +1 -1
  191. package/dist/service/iam/command/user/create-access-key/create-access-key.handler.js +1 -0
  192. package/dist/service/iam/command/user/create-access-key/create-access-key.handler.js.map +1 -1
  193. package/dist/service/iam/command/user/create-user/create-user-record-factory.d.ts +1 -0
  194. package/dist/service/iam/command/user/create-user/create-user-record-factory.d.ts.map +1 -1
  195. package/dist/service/iam/command/user/create-user/create-user-record-factory.js +1 -1
  196. package/dist/service/iam/command/user/create-user/create-user-record-factory.js.map +1 -1
  197. package/dist/service/iam/command/user/create-user/create-user.handler.d.ts.map +1 -1
  198. package/dist/service/iam/command/user/create-user/create-user.handler.js +1 -0
  199. package/dist/service/iam/command/user/create-user/create-user.handler.js.map +1 -1
  200. package/dist/service/iam/credential/sim-iam-access-key-checks.d.ts +30 -0
  201. package/dist/service/iam/credential/sim-iam-access-key-checks.d.ts.map +1 -0
  202. package/dist/service/iam/credential/sim-iam-access-key-checks.js +67 -0
  203. package/dist/service/iam/credential/sim-iam-access-key-checks.js.map +1 -0
  204. package/dist/service/iam/credential/sim-iam-access-key.d.ts +6 -1
  205. package/dist/service/iam/credential/sim-iam-access-key.d.ts.map +1 -1
  206. package/dist/service/iam/credential/sim-iam-access-key.js +1 -1
  207. package/dist/service/iam/credential/sim-iam-access-key.js.map +1 -1
  208. package/dist/service/iam/credential/sim-iam-account-signing-credentials.d.ts +21 -0
  209. package/dist/service/iam/credential/sim-iam-account-signing-credentials.d.ts.map +1 -0
  210. package/dist/service/iam/credential/sim-iam-account-signing-credentials.js +28 -0
  211. package/dist/service/iam/credential/sim-iam-account-signing-credentials.js.map +1 -0
  212. package/dist/service/iam/credential/sim-iam-credential-registry.d.ts +28 -0
  213. package/dist/service/iam/credential/sim-iam-credential-registry.d.ts.map +1 -1
  214. package/dist/service/iam/credential/sim-iam-credential-registry.js +32 -43
  215. package/dist/service/iam/credential/sim-iam-credential-registry.js.map +1 -1
  216. package/dist/service/iam/credential/sim-iam-signing-credential.d.ts +32 -0
  217. package/dist/service/iam/credential/sim-iam-signing-credential.d.ts.map +1 -0
  218. package/dist/service/iam/credential/sim-iam-signing-credential.js +2 -0
  219. package/dist/service/iam/credential/sim-iam-signing-credential.js.map +1 -0
  220. package/dist/service/iam/index.d.ts +6 -0
  221. package/dist/service/iam/index.d.ts.map +1 -1
  222. package/dist/service/iam/index.js +4 -0
  223. package/dist/service/iam/index.js.map +1 -1
  224. package/dist/service/iam/registry/sim-iam-access-key-registry.d.ts +39 -0
  225. package/dist/service/iam/registry/sim-iam-access-key-registry.d.ts.map +1 -0
  226. package/dist/service/iam/registry/sim-iam-access-key-registry.js +47 -0
  227. package/dist/service/iam/registry/sim-iam-access-key-registry.js.map +1 -0
  228. package/dist/service/iam/registry/sim-iam-account-resolver.d.ts +8 -0
  229. package/dist/service/iam/registry/sim-iam-account-resolver.d.ts.map +1 -1
  230. package/dist/service/iam/registry/sim-iam-global-credential-resolver.d.ts +25 -0
  231. package/dist/service/iam/registry/sim-iam-global-credential-resolver.d.ts.map +1 -0
  232. package/dist/service/iam/registry/sim-iam-global-credential-resolver.js +31 -0
  233. package/dist/service/iam/registry/sim-iam-global-credential-resolver.js.map +1 -0
  234. package/dist/service/iam/registry/sim-iam-registry.d.ts +4 -0
  235. package/dist/service/iam/registry/sim-iam-registry.d.ts.map +1 -1
  236. package/dist/service/iam/registry/sim-iam-registry.js +7 -1
  237. package/dist/service/iam/registry/sim-iam-registry.js.map +1 -1
  238. package/dist/service/iam/request/error/sim-aws-request-auth.error.d.ts +27 -0
  239. package/dist/service/iam/request/error/sim-aws-request-auth.error.d.ts.map +1 -0
  240. package/dist/service/iam/request/error/sim-aws-request-auth.error.js +25 -0
  241. package/dist/service/iam/request/error/sim-aws-request-auth.error.js.map +1 -0
  242. package/dist/service/iam/request/sim-aws-caller-header.d.ts +28 -0
  243. package/dist/service/iam/request/sim-aws-caller-header.d.ts.map +1 -0
  244. package/dist/service/iam/request/sim-aws-caller-header.js +62 -0
  245. package/dist/service/iam/request/sim-aws-caller-header.js.map +1 -0
  246. package/dist/service/iam/request/sim-aws-request-caller-resolver.d.ts +49 -0
  247. package/dist/service/iam/request/sim-aws-request-caller-resolver.d.ts.map +1 -0
  248. package/dist/service/iam/request/sim-aws-request-caller-resolver.js +68 -0
  249. package/dist/service/iam/request/sim-aws-request-caller-resolver.js.map +1 -0
  250. package/dist/service/iam/request/sim-aws-request-caller.d.ts +50 -0
  251. package/dist/service/iam/request/sim-aws-request-caller.d.ts.map +1 -0
  252. package/dist/service/iam/request/sim-aws-request-caller.js +55 -0
  253. package/dist/service/iam/request/sim-aws-request-caller.js.map +1 -0
  254. package/dist/service/iam/sigv4/canonical/sigv4-byte-order.d.ts +9 -0
  255. package/dist/service/iam/sigv4/canonical/sigv4-byte-order.d.ts.map +1 -0
  256. package/dist/service/iam/sigv4/canonical/sigv4-byte-order.js +14 -0
  257. package/dist/service/iam/sigv4/canonical/sigv4-byte-order.js.map +1 -0
  258. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-headers.d.ts +22 -0
  259. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-headers.d.ts.map +1 -0
  260. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-headers.js +48 -0
  261. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-headers.js.map +1 -0
  262. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-path.d.ts +14 -0
  263. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-path.d.ts.map +1 -0
  264. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-path.js +31 -0
  265. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-path.js.map +1 -0
  266. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-query.d.ts +19 -0
  267. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-query.d.ts.map +1 -0
  268. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-query.js +78 -0
  269. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-query.js.map +1 -0
  270. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.d.ts +20 -0
  271. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.d.ts.map +1 -0
  272. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.js +36 -0
  273. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.js.map +1 -0
  274. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.d.ts +19 -0
  275. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.d.ts.map +1 -0
  276. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.js +52 -0
  277. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.js.map +1 -0
  278. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.d.ts +60 -0
  279. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.d.ts.map +1 -0
  280. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.js +68 -0
  281. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.js.map +1 -0
  282. package/dist/service/iam/sigv4/sigv4-uri-escape.d.ts +8 -0
  283. package/dist/service/iam/sigv4/sigv4-uri-escape.d.ts.map +1 -0
  284. package/dist/service/iam/sigv4/sigv4-uri-escape.js +10 -0
  285. package/dist/service/iam/sigv4/sigv4-uri-escape.js.map +1 -0
  286. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.d.ts +33 -0
  287. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.d.ts.map +1 -0
  288. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.js +70 -0
  289. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.js.map +1 -0
  290. package/dist/service/iam/sigv4/sim-iam-sigv4-credential-failure.d.ts +11 -0
  291. package/dist/service/iam/sigv4/sim-iam-sigv4-credential-failure.d.ts.map +1 -0
  292. package/dist/service/iam/sigv4/sim-iam-sigv4-credential-failure.js +45 -0
  293. package/dist/service/iam/sigv4/sim-iam-sigv4-credential-failure.js.map +1 -0
  294. package/dist/service/iam/sigv4/sim-iam-sigv4-credential-scope.d.ts +30 -0
  295. package/dist/service/iam/sigv4/sim-iam-sigv4-credential-scope.d.ts.map +1 -0
  296. package/dist/service/iam/sigv4/sim-iam-sigv4-credential-scope.js +52 -0
  297. package/dist/service/iam/sigv4/sim-iam-sigv4-credential-scope.js.map +1 -0
  298. package/dist/service/iam/sigv4/sim-iam-sigv4-expected-scope.d.ts +39 -0
  299. package/dist/service/iam/sigv4/sim-iam-sigv4-expected-scope.d.ts.map +1 -0
  300. package/dist/service/iam/sigv4/sim-iam-sigv4-expected-scope.js +52 -0
  301. package/dist/service/iam/sigv4/sim-iam-sigv4-expected-scope.js.map +1 -0
  302. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.d.ts +16 -0
  303. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.d.ts.map +1 -0
  304. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.js +31 -0
  305. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.js.map +1 -0
  306. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.d.ts +18 -0
  307. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.d.ts.map +1 -0
  308. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.js +25 -0
  309. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.js.map +1 -0
  310. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-match.d.ts +9 -0
  311. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-match.d.ts.map +1 -0
  312. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-match.js +26 -0
  313. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-match.js.map +1 -0
  314. package/dist/service/iam/sigv4/sim-iam-sigv4-signed-request.d.ts +19 -0
  315. package/dist/service/iam/sigv4/sim-iam-sigv4-signed-request.d.ts.map +1 -0
  316. package/dist/service/iam/sigv4/sim-iam-sigv4-signed-request.js +12 -0
  317. package/dist/service/iam/sigv4/sim-iam-sigv4-signed-request.js.map +1 -0
  318. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.d.ts +13 -0
  319. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.d.ts.map +1 -0
  320. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.js +18 -0
  321. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.js.map +1 -0
  322. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-key.d.ts +26 -0
  323. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-key.d.ts.map +1 -0
  324. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-key.js +40 -0
  325. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-key.js.map +1 -0
  326. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.d.ts +32 -0
  327. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.d.ts.map +1 -0
  328. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.js +45 -0
  329. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.js.map +1 -0
  330. package/dist/service/iam/sigv4/sim-iam-sigv4-verify-options.d.ts +17 -0
  331. package/dist/service/iam/sigv4/sim-iam-sigv4-verify-options.d.ts.map +1 -0
  332. package/dist/service/iam/sigv4/sim-iam-sigv4-verify-options.js +2 -0
  333. package/dist/service/iam/sigv4/sim-iam-sigv4-verify-options.js.map +1 -0
  334. package/dist/service/iam/sim-iam-account-parts.d.ts +58 -0
  335. package/dist/service/iam/sim-iam-account-parts.d.ts.map +1 -0
  336. package/dist/service/iam/sim-iam-account-parts.js +72 -0
  337. package/dist/service/iam/sim-iam-account-parts.js.map +1 -0
  338. package/dist/service/iam/sim-iam.d.ts +28 -21
  339. package/dist/service/iam/sim-iam.d.ts.map +1 -1
  340. package/dist/service/iam/sim-iam.js +42 -67
  341. package/dist/service/iam/sim-iam.js.map +1 -1
  342. package/dist/service/lambda/cfn/function/sim-cfn-lambda-cdk-assets-skip.d.ts +8 -6
  343. package/dist/service/lambda/cfn/function/sim-cfn-lambda-cdk-assets-skip.d.ts.map +1 -1
  344. package/dist/service/lambda/cfn/function/sim-cfn-lambda-cdk-assets-skip.js +12 -7
  345. package/dist/service/lambda/cfn/function/sim-cfn-lambda-cdk-assets-skip.js.map +1 -1
  346. package/dist/service/lambda/cfn/function/sim-cfn-lambda-code-input.d.ts +9 -1
  347. package/dist/service/lambda/cfn/function/sim-cfn-lambda-code-input.d.ts.map +1 -1
  348. package/dist/service/lambda/cfn/function/sim-cfn-lambda-code-input.js +5 -2
  349. package/dist/service/lambda/cfn/function/sim-cfn-lambda-code-input.js.map +1 -1
  350. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-creator.d.ts +1 -0
  351. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-creator.d.ts.map +1 -1
  352. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-creator.js +7 -1
  353. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-creator.js.map +1 -1
  354. package/dist/service/lambda/cfn/function/sim-cfn-lambda-property-parser.d.ts +6 -2
  355. package/dist/service/lambda/cfn/function/sim-cfn-lambda-property-parser.d.ts.map +1 -1
  356. package/dist/service/lambda/cfn/function/sim-cfn-lambda-property-parser.js +16 -3
  357. package/dist/service/lambda/cfn/function/sim-cfn-lambda-property-parser.js.map +1 -1
  358. package/dist/service/lambda/cfn/function/sim-cfn-lambda-runtime-skip.d.ts +29 -0
  359. package/dist/service/lambda/cfn/function/sim-cfn-lambda-runtime-skip.d.ts.map +1 -0
  360. package/dist/service/lambda/cfn/function/sim-cfn-lambda-runtime-skip.js +43 -0
  361. package/dist/service/lambda/cfn/function/sim-cfn-lambda-runtime-skip.js.map +1 -0
  362. package/dist/service/lambda/cfn/function/sim-cfn-lambda-target-function.d.ts +12 -0
  363. package/dist/service/lambda/cfn/function/sim-cfn-lambda-target-function.d.ts.map +1 -0
  364. package/dist/service/lambda/cfn/function/sim-cfn-lambda-target-function.js +20 -0
  365. package/dist/service/lambda/cfn/function/sim-cfn-lambda-target-function.js.map +1 -0
  366. package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-creator.d.ts +31 -0
  367. package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-creator.d.ts.map +1 -0
  368. package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-creator.js +48 -0
  369. package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-creator.js.map +1 -0
  370. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.d.ts +2 -0
  371. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.d.ts.map +1 -1
  372. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.js +12 -0
  373. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.js.map +1 -1
  374. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.d.ts +25 -0
  375. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.d.ts.map +1 -0
  376. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +35 -0
  377. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js.map +1 -0
  378. package/dist/service/lambda/command/add-permission/add-permission.command.d.ts +32 -0
  379. package/dist/service/lambda/command/add-permission/add-permission.command.d.ts.map +1 -0
  380. package/dist/service/lambda/command/add-permission/add-permission.command.js +2 -0
  381. package/dist/service/lambda/command/add-permission/add-permission.command.js.map +1 -0
  382. package/dist/service/lambda/command/add-permission/add-permission.handler.d.ts +31 -0
  383. package/dist/service/lambda/command/add-permission/add-permission.handler.d.ts.map +1 -0
  384. package/dist/service/lambda/command/add-permission/add-permission.handler.js +52 -0
  385. package/dist/service/lambda/command/add-permission/add-permission.handler.js.map +1 -0
  386. package/dist/service/lambda/command/authorize/sim-lambda-resource-policies.d.ts +13 -0
  387. package/dist/service/lambda/command/authorize/sim-lambda-resource-policies.d.ts.map +1 -0
  388. package/dist/service/lambda/command/authorize/sim-lambda-resource-policies.js +26 -0
  389. package/dist/service/lambda/command/authorize/sim-lambda-resource-policies.js.map +1 -0
  390. package/dist/service/lambda/command/create-function/create-function.handler.d.ts.map +1 -1
  391. package/dist/service/lambda/command/create-function/create-function.handler.js +1 -0
  392. package/dist/service/lambda/command/create-function/create-function.handler.js.map +1 -1
  393. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.d.ts +29 -0
  394. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.d.ts.map +1 -0
  395. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.js +5 -0
  396. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.js.map +1 -0
  397. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.d.ts +35 -0
  398. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.d.ts.map +1 -0
  399. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.js +47 -0
  400. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.js.map +1 -0
  401. package/dist/service/lambda/command/delete-function-url-config/delete-function-url-config.command.d.ts +26 -0
  402. package/dist/service/lambda/command/delete-function-url-config/delete-function-url-config.command.d.ts.map +1 -0
  403. package/dist/service/lambda/command/delete-function-url-config/delete-function-url-config.command.js +5 -0
  404. package/dist/service/lambda/command/delete-function-url-config/delete-function-url-config.command.js.map +1 -0
  405. package/dist/service/lambda/command/delete-function-url-config/delete-function-url-config.handler.d.ts +34 -0
  406. package/dist/service/lambda/command/delete-function-url-config/delete-function-url-config.handler.d.ts.map +1 -0
  407. package/dist/service/lambda/command/delete-function-url-config/delete-function-url-config.handler.js +38 -0
  408. package/dist/service/lambda/command/delete-function-url-config/delete-function-url-config.handler.js.map +1 -0
  409. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +50 -0
  410. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts.map +1 -0
  411. package/dist/service/lambda/command/function/sim-lambda-function-commands.js +35 -0
  412. package/dist/service/lambda/command/function/sim-lambda-function-commands.js.map +1 -0
  413. package/dist/service/lambda/command/function-url/function-url-authorizer.d.ts +29 -0
  414. package/dist/service/lambda/command/function-url/function-url-authorizer.d.ts.map +1 -0
  415. package/dist/service/lambda/command/function-url/function-url-authorizer.js +39 -0
  416. package/dist/service/lambda/command/function-url/function-url-authorizer.js.map +1 -0
  417. package/dist/service/lambda/command/function-url/function-url-input.d.ts +24 -0
  418. package/dist/service/lambda/command/function-url/function-url-input.d.ts.map +1 -0
  419. package/dist/service/lambda/command/function-url/function-url-input.js +49 -0
  420. package/dist/service/lambda/command/function-url/function-url-input.js.map +1 -0
  421. package/dist/service/lambda/command/function-url/sim-lambda-function-url-commands.d.ts +52 -0
  422. package/dist/service/lambda/command/function-url/sim-lambda-function-url-commands.d.ts.map +1 -0
  423. package/dist/service/lambda/command/function-url/sim-lambda-function-url-commands.js +49 -0
  424. package/dist/service/lambda/command/function-url/sim-lambda-function-url-commands.js.map +1 -0
  425. package/dist/service/lambda/command/get-function-url-config/get-function-url-config.command.d.ts +24 -0
  426. package/dist/service/lambda/command/get-function-url-config/get-function-url-config.command.d.ts.map +1 -0
  427. package/dist/service/lambda/command/get-function-url-config/get-function-url-config.command.js +5 -0
  428. package/dist/service/lambda/command/get-function-url-config/get-function-url-config.command.js.map +1 -0
  429. package/dist/service/lambda/command/get-function-url-config/get-function-url-config.handler.d.ts +34 -0
  430. package/dist/service/lambda/command/get-function-url-config/get-function-url-config.handler.d.ts.map +1 -0
  431. package/dist/service/lambda/command/get-function-url-config/get-function-url-config.handler.js +41 -0
  432. package/dist/service/lambda/command/get-function-url-config/get-function-url-config.handler.js.map +1 -0
  433. package/dist/service/lambda/command/get-policy/get-policy.command.d.ts +22 -0
  434. package/dist/service/lambda/command/get-policy/get-policy.command.d.ts.map +1 -0
  435. package/dist/service/lambda/command/get-policy/get-policy.command.js +2 -0
  436. package/dist/service/lambda/command/get-policy/get-policy.command.js.map +1 -0
  437. package/dist/service/lambda/command/get-policy/get-policy.handler.d.ts +35 -0
  438. package/dist/service/lambda/command/get-policy/get-policy.handler.d.ts.map +1 -0
  439. package/dist/service/lambda/command/get-policy/get-policy.handler.js +45 -0
  440. package/dist/service/lambda/command/get-policy/get-policy.handler.js.map +1 -0
  441. package/dist/service/lambda/command/invoke/invoke-authorizer.d.ts +8 -2
  442. package/dist/service/lambda/command/invoke/invoke-authorizer.d.ts.map +1 -1
  443. package/dist/service/lambda/command/invoke/invoke-authorizer.js +9 -2
  444. package/dist/service/lambda/command/invoke/invoke-authorizer.js.map +1 -1
  445. package/dist/service/lambda/command/invoke/invoke.handler.d.ts.map +1 -1
  446. package/dist/service/lambda/command/invoke/invoke.handler.js +4 -1
  447. package/dist/service/lambda/command/invoke/invoke.handler.js.map +1 -1
  448. package/dist/service/lambda/command/list-function-url-configs/list-function-url-configs.command.d.ts +25 -0
  449. package/dist/service/lambda/command/list-function-url-configs/list-function-url-configs.command.d.ts.map +1 -0
  450. package/dist/service/lambda/command/list-function-url-configs/list-function-url-configs.command.js +5 -0
  451. package/dist/service/lambda/command/list-function-url-configs/list-function-url-configs.command.js.map +1 -0
  452. package/dist/service/lambda/command/list-function-url-configs/list-function-url-configs.handler.d.ts +37 -0
  453. package/dist/service/lambda/command/list-function-url-configs/list-function-url-configs.handler.d.ts.map +1 -0
  454. package/dist/service/lambda/command/list-function-url-configs/list-function-url-configs.handler.js +46 -0
  455. package/dist/service/lambda/command/list-function-url-configs/list-function-url-configs.handler.js.map +1 -0
  456. package/dist/service/lambda/command/permission/sim-lambda-permission-commands.d.ts +40 -0
  457. package/dist/service/lambda/command/permission/sim-lambda-permission-commands.d.ts.map +1 -0
  458. package/dist/service/lambda/command/permission/sim-lambda-permission-commands.js +35 -0
  459. package/dist/service/lambda/command/permission/sim-lambda-permission-commands.js.map +1 -0
  460. package/dist/service/lambda/command/remove-permission/remove-permission.command.d.ts +21 -0
  461. package/dist/service/lambda/command/remove-permission/remove-permission.command.d.ts.map +1 -0
  462. package/dist/service/lambda/command/remove-permission/remove-permission.command.js +2 -0
  463. package/dist/service/lambda/command/remove-permission/remove-permission.command.js.map +1 -0
  464. package/dist/service/lambda/command/remove-permission/remove-permission.handler.d.ts +31 -0
  465. package/dist/service/lambda/command/remove-permission/remove-permission.handler.d.ts.map +1 -0
  466. package/dist/service/lambda/command/remove-permission/remove-permission.handler.js +36 -0
  467. package/dist/service/lambda/command/remove-permission/remove-permission.handler.js.map +1 -0
  468. package/dist/service/lambda/command/sim-lambda-command.types.d.ts +19 -0
  469. package/dist/service/lambda/command/sim-lambda-command.types.d.ts.map +1 -0
  470. package/dist/service/lambda/command/sim-lambda-command.types.js +9 -0
  471. package/dist/service/lambda/command/sim-lambda-command.types.js.map +1 -0
  472. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.d.ts +29 -0
  473. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.d.ts.map +1 -0
  474. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.js +5 -0
  475. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.js.map +1 -0
  476. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.d.ts +35 -0
  477. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.d.ts.map +1 -0
  478. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.js +48 -0
  479. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.js.map +1 -0
  480. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.d.ts +7 -0
  481. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.d.ts.map +1 -1
  482. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.js +4 -3
  483. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.js.map +1 -1
  484. package/dist/service/lambda/function/policy/sim-lambda-function-policy.d.ts +47 -0
  485. package/dist/service/lambda/function/policy/sim-lambda-function-policy.d.ts.map +1 -0
  486. package/dist/service/lambda/function/policy/sim-lambda-function-policy.js +79 -0
  487. package/dist/service/lambda/function/policy/sim-lambda-function-policy.js.map +1 -0
  488. package/dist/service/lambda/function/policy/sim-lambda-permission-principal.d.ts +11 -0
  489. package/dist/service/lambda/function/policy/sim-lambda-permission-principal.d.ts.map +1 -0
  490. package/dist/service/lambda/function/policy/sim-lambda-permission-principal.js +22 -0
  491. package/dist/service/lambda/function/policy/sim-lambda-permission-principal.js.map +1 -0
  492. package/dist/service/lambda/function/policy/sim-lambda-permission.d.ts +66 -0
  493. package/dist/service/lambda/function/policy/sim-lambda-permission.d.ts.map +1 -0
  494. package/dist/service/lambda/function/policy/sim-lambda-permission.js +101 -0
  495. package/dist/service/lambda/function/policy/sim-lambda-permission.js.map +1 -0
  496. package/dist/service/lambda/function/sim-lambda-function.d.ts +18 -0
  497. package/dist/service/lambda/function/sim-lambda-function.d.ts.map +1 -1
  498. package/dist/service/lambda/function/sim-lambda-function.js +15 -1
  499. package/dist/service/lambda/function/sim-lambda-function.js.map +1 -1
  500. package/dist/service/lambda/function/url/sim-lambda-function-lookup.d.ts +30 -0
  501. package/dist/service/lambda/function/url/sim-lambda-function-lookup.d.ts.map +1 -0
  502. package/dist/service/lambda/function/url/sim-lambda-function-lookup.js +36 -0
  503. package/dist/service/lambda/function/url/sim-lambda-function-lookup.js.map +1 -0
  504. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.d.ts +37 -0
  505. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.d.ts.map +1 -0
  506. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.js +42 -0
  507. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.js.map +1 -0
  508. package/dist/service/lambda/function/url/sim-lambda-function-url-host.d.ts +30 -0
  509. package/dist/service/lambda/function/url/sim-lambda-function-url-host.d.ts.map +1 -0
  510. package/dist/service/lambda/function/url/sim-lambda-function-url-host.js +29 -0
  511. package/dist/service/lambda/function/url/sim-lambda-function-url-host.js.map +1 -0
  512. package/dist/service/lambda/function/url/sim-lambda-function-url-store.d.ts +45 -0
  513. package/dist/service/lambda/function/url/sim-lambda-function-url-store.d.ts.map +1 -0
  514. package/dist/service/lambda/function/url/sim-lambda-function-url-store.js +72 -0
  515. package/dist/service/lambda/function/url/sim-lambda-function-url-store.js.map +1 -0
  516. package/dist/service/lambda/function/url/sim-lambda-function-url.d.ts +103 -0
  517. package/dist/service/lambda/function/url/sim-lambda-function-url.d.ts.map +1 -0
  518. package/dist/service/lambda/function/url/sim-lambda-function-url.js +92 -0
  519. package/dist/service/lambda/function/url/sim-lambda-function-url.js.map +1 -0
  520. package/dist/service/lambda/index.d.ts +1 -0
  521. package/dist/service/lambda/index.d.ts.map +1 -1
  522. package/dist/service/lambda/registry/sim-lambda-url-registry.d.ts +31 -0
  523. package/dist/service/lambda/registry/sim-lambda-url-registry.d.ts.map +1 -0
  524. package/dist/service/lambda/registry/sim-lambda-url-registry.js +43 -0
  525. package/dist/service/lambda/registry/sim-lambda-url-registry.js.map +1 -0
  526. package/dist/service/lambda/sdk/sim-lambda-sdk-command-router.d.ts.map +1 -1
  527. package/dist/service/lambda/sdk/sim-lambda-sdk-command-router.js +32 -0
  528. package/dist/service/lambda/sdk/sim-lambda-sdk-command-router.js.map +1 -1
  529. package/dist/service/lambda/serve/auth/sim-lambda-url-authorizer.d.ts +46 -0
  530. package/dist/service/lambda/serve/auth/sim-lambda-url-authorizer.d.ts.map +1 -0
  531. package/dist/service/lambda/serve/auth/sim-lambda-url-authorizer.js +47 -0
  532. package/dist/service/lambda/serve/auth/sim-lambda-url-authorizer.js.map +1 -0
  533. package/dist/service/lambda/serve/event/sim-lambda-url-body-encoding.d.ts +25 -0
  534. package/dist/service/lambda/serve/event/sim-lambda-url-body-encoding.d.ts.map +1 -0
  535. package/dist/service/lambda/serve/event/sim-lambda-url-body-encoding.js +53 -0
  536. package/dist/service/lambda/serve/event/sim-lambda-url-body-encoding.js.map +1 -0
  537. package/dist/service/lambda/serve/event/sim-lambda-url-event-builder.d.ts +36 -0
  538. package/dist/service/lambda/serve/event/sim-lambda-url-event-builder.d.ts.map +1 -0
  539. package/dist/service/lambda/serve/event/sim-lambda-url-event-builder.js +61 -0
  540. package/dist/service/lambda/serve/event/sim-lambda-url-event-builder.js.map +1 -0
  541. package/dist/service/lambda/serve/event/sim-lambda-url-event-time.d.ts +9 -0
  542. package/dist/service/lambda/serve/event/sim-lambda-url-event-time.d.ts.map +1 -0
  543. package/dist/service/lambda/serve/event/sim-lambda-url-event-time.js +38 -0
  544. package/dist/service/lambda/serve/event/sim-lambda-url-event-time.js.map +1 -0
  545. package/dist/service/lambda/serve/event/sim-lambda-url-event.type.d.ts +103 -0
  546. package/dist/service/lambda/serve/event/sim-lambda-url-event.type.d.ts.map +1 -0
  547. package/dist/service/lambda/serve/event/sim-lambda-url-event.type.js +2 -0
  548. package/dist/service/lambda/serve/event/sim-lambda-url-event.type.js.map +1 -0
  549. package/dist/service/lambda/serve/event/sim-lambda-url-iam-authorizer.d.ts +30 -0
  550. package/dist/service/lambda/serve/event/sim-lambda-url-iam-authorizer.d.ts.map +1 -0
  551. package/dist/service/lambda/serve/event/sim-lambda-url-iam-authorizer.js +55 -0
  552. package/dist/service/lambda/serve/event/sim-lambda-url-iam-authorizer.js.map +1 -0
  553. package/dist/service/lambda/serve/event/sim-lambda-url-request-context.d.ts +29 -0
  554. package/dist/service/lambda/serve/event/sim-lambda-url-request-context.d.ts.map +1 -0
  555. package/dist/service/lambda/serve/event/sim-lambda-url-request-context.js +54 -0
  556. package/dist/service/lambda/serve/event/sim-lambda-url-request-context.js.map +1 -0
  557. package/dist/service/lambda/serve/event/sim-lambda-url-request-parts.d.ts +26 -0
  558. package/dist/service/lambda/serve/event/sim-lambda-url-request-parts.d.ts.map +1 -0
  559. package/dist/service/lambda/serve/event/sim-lambda-url-request-parts.js +50 -0
  560. package/dist/service/lambda/serve/event/sim-lambda-url-request-parts.js.map +1 -0
  561. package/dist/service/lambda/serve/response/sim-lambda-url-error-response.d.ts +24 -0
  562. package/dist/service/lambda/serve/response/sim-lambda-url-error-response.d.ts.map +1 -0
  563. package/dist/service/lambda/serve/response/sim-lambda-url-error-response.js +35 -0
  564. package/dist/service/lambda/serve/response/sim-lambda-url-error-response.js.map +1 -0
  565. package/dist/service/lambda/serve/response/sim-lambda-url-response-builder.d.ts +21 -0
  566. package/dist/service/lambda/serve/response/sim-lambda-url-response-builder.d.ts.map +1 -0
  567. package/dist/service/lambda/serve/response/sim-lambda-url-response-builder.js +57 -0
  568. package/dist/service/lambda/serve/response/sim-lambda-url-response-builder.js.map +1 -0
  569. package/dist/service/lambda/serve/sim-lambda-controller.d.ts +42 -0
  570. package/dist/service/lambda/serve/sim-lambda-controller.d.ts.map +1 -0
  571. package/dist/service/lambda/serve/sim-lambda-controller.js +82 -0
  572. package/dist/service/lambda/serve/sim-lambda-controller.js.map +1 -0
  573. package/dist/service/lambda/serve/sim-lambda-url-router.d.ts +44 -0
  574. package/dist/service/lambda/serve/sim-lambda-url-router.d.ts.map +1 -0
  575. package/dist/service/lambda/serve/sim-lambda-url-router.js +47 -0
  576. package/dist/service/lambda/serve/sim-lambda-url-router.js.map +1 -0
  577. package/dist/service/lambda/sim-lambda.d.ts +52 -9
  578. package/dist/service/lambda/sim-lambda.d.ts.map +1 -1
  579. package/dist/service/lambda/sim-lambda.js +115 -44
  580. package/dist/service/lambda/sim-lambda.js.map +1 -1
  581. package/dist/service/route53/command/change-resource-record-sets/change-resource-record-sets.handler.d.ts.map +1 -1
  582. package/dist/service/route53/command/change-resource-record-sets/change-resource-record-sets.handler.js +3 -2
  583. package/dist/service/route53/command/change-resource-record-sets/change-resource-record-sets.handler.js.map +1 -1
  584. package/dist/service/route53/command/change-resource-record-sets/sim-route53-change-id.d.ts +10 -0
  585. package/dist/service/route53/command/change-resource-record-sets/sim-route53-change-id.d.ts.map +1 -0
  586. package/dist/service/route53/command/change-resource-record-sets/sim-route53-change-id.js +13 -0
  587. package/dist/service/route53/command/change-resource-record-sets/sim-route53-change-id.js.map +1 -0
  588. package/dist/service/route53/command/create-hosted-zone/create-hosted-zone.handler.js +1 -1
  589. package/dist/service/route53/command/create-hosted-zone/create-hosted-zone.handler.js.map +1 -1
  590. package/dist/service/route53/resolve/sim-r53-service-target-resolver.d.ts +12 -0
  591. package/dist/service/route53/resolve/sim-r53-service-target-resolver.d.ts.map +1 -1
  592. package/dist/service/route53/resolve/sim-r53-service-target-resolver.js +33 -1
  593. package/dist/service/route53/resolve/sim-r53-service-target-resolver.js.map +1 -1
  594. package/dist/service/route53/serve/sim-route53-controller.d.ts +2 -2
  595. package/dist/service/route53/serve/sim-route53-controller.d.ts.map +1 -1
  596. package/dist/service/route53/serve/sim-route53-controller.js +2 -2
  597. package/dist/service/route53/serve/sim-route53-controller.js.map +1 -1
  598. package/dist/service/s3/serve/sim-s3-controller.d.ts +2 -2
  599. package/dist/service/s3/serve/sim-s3-controller.d.ts.map +1 -1
  600. package/dist/service/s3/serve/sim-s3-controller.js +2 -1
  601. package/dist/service/s3/serve/sim-s3-controller.js.map +1 -1
  602. package/dist/service/sts/assume/sim-sts-assume-role-session-creator.d.ts +7 -0
  603. package/dist/service/sts/assume/sim-sts-assume-role-session-creator.d.ts.map +1 -1
  604. package/dist/service/sts/assume/sim-sts-assume-role-session-creator.js +4 -1
  605. package/dist/service/sts/assume/sim-sts-assume-role-session-creator.js.map +1 -1
  606. package/dist/service/sts/command/assume-role/assume-role.handler.d.ts.map +1 -1
  607. package/dist/service/sts/command/assume-role/assume-role.handler.js +1 -0
  608. package/dist/service/sts/command/assume-role/assume-role.handler.js.map +1 -1
  609. package/dist/util/background/background-due-tasks.d.ts +44 -0
  610. package/dist/util/background/background-due-tasks.d.ts.map +1 -0
  611. package/dist/util/background/background-due-tasks.js +71 -0
  612. package/dist/util/background/background-due-tasks.js.map +1 -0
  613. package/dist/util/background/background-jitter.d.ts +16 -0
  614. package/dist/util/background/background-jitter.d.ts.map +1 -0
  615. package/dist/util/background/background-jitter.js +23 -0
  616. package/dist/util/background/background-jitter.js.map +1 -0
  617. package/dist/util/background/background-settled-tasks.d.ts +17 -0
  618. package/dist/util/background/background-settled-tasks.d.ts.map +1 -0
  619. package/dist/util/background/background-settled-tasks.js +24 -0
  620. package/dist/util/background/background-settled-tasks.js.map +1 -0
  621. package/dist/util/background/background.d.ts +63 -2
  622. package/dist/util/background/background.d.ts.map +1 -1
  623. package/dist/util/background/background.js +35 -0
  624. package/dist/util/background/background.js.map +1 -1
  625. package/dist/util/background/non-deterministic-background.d.ts +24 -4
  626. package/dist/util/background/non-deterministic-background.d.ts.map +1 -1
  627. package/dist/util/background/non-deterministic-background.js +36 -13
  628. package/dist/util/background/non-deterministic-background.js.map +1 -1
  629. package/dist/util/clock/sim-clock-control.d.ts +94 -0
  630. package/dist/util/clock/sim-clock-control.d.ts.map +1 -0
  631. package/dist/util/clock/sim-clock-control.js +116 -0
  632. package/dist/util/clock/sim-clock-control.js.map +1 -0
  633. package/dist/util/clock/sim-clock-mode.d.ts +74 -0
  634. package/dist/util/clock/sim-clock-mode.d.ts.map +1 -0
  635. package/dist/util/clock/sim-clock-mode.js +58 -0
  636. package/dist/util/clock/sim-clock-mode.js.map +1 -0
  637. package/dist/util/clock/sim-clock.d.ts +41 -0
  638. package/dist/util/clock/sim-clock.d.ts.map +1 -0
  639. package/dist/util/clock/sim-clock.js +33 -0
  640. package/dist/util/clock/sim-clock.js.map +1 -0
  641. package/dist/util/clock/sim-controllable-clock.d.ts +55 -0
  642. package/dist/util/clock/sim-controllable-clock.d.ts.map +1 -0
  643. package/dist/util/clock/sim-controllable-clock.js +62 -0
  644. package/dist/util/clock/sim-controllable-clock.js.map +1 -0
  645. package/dist/util/clock/sim-duration.d.ts +44 -0
  646. package/dist/util/clock/sim-duration.d.ts.map +1 -0
  647. package/dist/util/clock/sim-duration.js +69 -0
  648. package/dist/util/clock/sim-duration.js.map +1 -0
  649. package/package.json +3 -1
@@ -1,5 +1,15 @@
1
+ import { type SimClock } from "../clock/sim-clock.js";
2
+ import { type BackgroundDueTask } from "./background-due-tasks.js";
1
3
  export type BackgroundTask = () => Promise<void>;
2
- export interface BackgroundScheduler {
4
+ /**
5
+ * Scheduler for a simulator's asynchronous work, and the source of its time.
6
+ *
7
+ * Timekeeping and scheduling stay separate responsibilities: a scheduler holds
8
+ * a SimClock and delegates to it, rather than implementing time itself. They
9
+ * are combined in one interface because they travel together, so anything
10
+ * already given a scheduler can read simulated time without extra wiring.
11
+ */
12
+ export interface BackgroundScheduler extends SimClock {
3
13
  /**
4
14
  * Wait at a simulator sequencing point.
5
15
  *
@@ -9,18 +19,52 @@ export interface BackgroundScheduler {
9
19
  */
10
20
  sequence(): Promise<void>;
11
21
  schedule(task: BackgroundTask): void;
22
+ /**
23
+ * Schedule a task to happen once simulated time reaches an instant.
24
+ *
25
+ * Nothing dispatches it until the clock gets there, so scheduled work
26
+ * happens on the simulation's timeline rather than the host's.
27
+ */
28
+ scheduleAt(dueTime: Date, task: BackgroundTask): void;
29
+ }
30
+ interface BackgroundTasksProperties {
31
+ readonly clock?: SimClock;
12
32
  }
13
33
  export interface BackgroundCompleter {
14
34
  complete(): Promise<void>;
15
35
  }
36
+ /**
37
+ * Source of background work waiting on the clock.
38
+ *
39
+ * Whatever controls simulated time pulls due work from here as it moves the
40
+ * clock, which is what makes advancing time dispatch what falls due during the
41
+ * interval rather than everything at once at the end.
42
+ */
43
+ export interface BackgroundDueTaskSource {
44
+ /**
45
+ * Take the next task due at or before an instant, earliest first.
46
+ */
47
+ takeNextDueBy(instant: Date): BackgroundDueTask | undefined;
48
+ /**
49
+ * See how many tasks are waiting for simulated time to reach them.
50
+ */
51
+ readonly dueTaskCount: number;
52
+ }
16
53
  /**
17
54
  * Deterministic async background tasks scheduler.
18
55
  *
19
56
  * Tasks still run asynchronously, outside the current call stack, but dispatch in
20
57
  * the order they were scheduled.
21
58
  */
22
- export declare class BackgroundTasks implements BackgroundScheduler, BackgroundCompleter {
59
+ export declare class BackgroundTasks implements BackgroundScheduler, BackgroundCompleter, BackgroundDueTaskSource {
23
60
  private readonly pending;
61
+ private readonly dueTasks;
62
+ private readonly clock;
63
+ constructor(properties?: BackgroundTasksProperties);
64
+ /**
65
+ * Get the current time in this simulation.
66
+ */
67
+ now(): Date;
24
68
  /**
25
69
  * Wait at a deterministic sequencing point.
26
70
  */
@@ -29,14 +73,31 @@ export declare class BackgroundTasks implements BackgroundScheduler, BackgroundC
29
73
  * Schedule a task to happen asynchronously in the background.
30
74
  */
31
75
  schedule(task: BackgroundTask): void;
76
+ /**
77
+ * Schedule a task to happen once simulated time reaches an instant.
78
+ */
79
+ scheduleAt(dueTime: Date, task: BackgroundTask): void;
80
+ /**
81
+ * Take the next task due at or before an instant, earliest first.
82
+ */
83
+ takeNextDueBy(instant: Date): BackgroundDueTask | undefined;
32
84
  /**
33
85
  * Wait until all tasks currently scheduled have finished.
34
86
  * If tasks schedule more tasks, this will continue draining until idle.
87
+ *
88
+ * Work waiting on the clock is not waited for: it is not outstanding, it is
89
+ * scheduled for a simulated instant that has not arrived. Only moving the
90
+ * clock releases it.
35
91
  */
36
92
  complete(): Promise<void>;
37
93
  /**
38
94
  * See how many outstanding background tasks are scheduled.
39
95
  */
40
96
  get pendingTaskCount(): number;
97
+ /**
98
+ * See how many tasks are waiting for simulated time to reach them.
99
+ */
100
+ get dueTaskCount(): number;
41
101
  }
102
+ export {};
42
103
  //# sourceMappingURL=background.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"background.d.ts","sourceRoot":"","sources":["../../../src/util/background/background.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED;;;;;GAKG;AACH,qBAAa,eACX,YAAW,mBAAmB,EAAE,mBAAmB;IAEnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IAEpD;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAExB;IAED;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAqBnC;IAED;;;OAGG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAKrC;IAED;;OAEG;IACH,IAAW,gBAAgB,IAAI,MAAM,CAEpC;CACF"}
1
+ {"version":3,"file":"background.d.ts","sourceRoot":"","sources":["../../../src/util/background/background.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,uBAAuB,CAAC;AACpE,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACnD;;;;;;OAMG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAErC;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;CACvD;AAED,UAAU,yBAAyB;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,IAAI,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAE5D;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;GAKG;AACH,qBAAa,eACX,YAAW,mBAAmB,EAAE,mBAAmB,EAAE,uBAAuB;IAE5E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IAEjC,YAAY,UAAU,GAAE,yBAA8B,EAErD;IAED;;OAEG;IACH,GAAG,IAAI,IAAI,CAEV;IAED;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAExB;IAED;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAqBnC;IAED;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAEpD;IAED;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,IAAI,GAAG,iBAAiB,GAAG,SAAS,CAE1D;IAED;;;;;;;OAOG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAKrC;IAED;;OAEG;IACH,IAAW,gBAAgB,IAAI,MAAM,CAEpC;IAED;;OAEG;IACH,IAAW,YAAY,IAAI,MAAM,CAEhC;CACF"}
@@ -1,4 +1,6 @@
1
1
  /* eslint-disable unicorn/prefer-await */
2
+ import { SimRealClock } from "../clock/sim-clock.js";
3
+ import { BackgroundDueTasks, } from "./background-due-tasks.js";
2
4
  /**
3
5
  * Deterministic async background tasks scheduler.
4
6
  *
@@ -7,6 +9,17 @@
7
9
  */
8
10
  export class BackgroundTasks {
9
11
  pending = new Set();
12
+ dueTasks = new BackgroundDueTasks();
13
+ clock;
14
+ constructor(properties = {}) {
15
+ this.clock = properties.clock ?? new SimRealClock();
16
+ }
17
+ /**
18
+ * Get the current time in this simulation.
19
+ */
20
+ now() {
21
+ return this.clock.now();
22
+ }
10
23
  /**
11
24
  * Wait at a deterministic sequencing point.
12
25
  */
@@ -33,9 +46,25 @@ export class BackgroundTasks {
33
46
  });
34
47
  this.pending.add(promise);
35
48
  }
49
+ /**
50
+ * Schedule a task to happen once simulated time reaches an instant.
51
+ */
52
+ scheduleAt(dueTime, task) {
53
+ this.dueTasks.add(dueTime, task);
54
+ }
55
+ /**
56
+ * Take the next task due at or before an instant, earliest first.
57
+ */
58
+ takeNextDueBy(instant) {
59
+ return this.dueTasks.takeNextDueBy(instant);
60
+ }
36
61
  /**
37
62
  * Wait until all tasks currently scheduled have finished.
38
63
  * If tasks schedule more tasks, this will continue draining until idle.
64
+ *
65
+ * Work waiting on the clock is not waited for: it is not outstanding, it is
66
+ * scheduled for a simulated instant that has not arrived. Only moving the
67
+ * clock releases it.
39
68
  */
40
69
  async complete() {
41
70
  while (this.pending.size > 0) {
@@ -49,5 +78,11 @@ export class BackgroundTasks {
49
78
  get pendingTaskCount() {
50
79
  return this.pending.size;
51
80
  }
81
+ /**
82
+ * See how many tasks are waiting for simulated time to reach them.
83
+ */
84
+ get dueTaskCount() {
85
+ return this.dueTasks.size;
86
+ }
52
87
  }
53
88
  //# sourceMappingURL=background.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"background.js","sourceRoot":"","sources":["../../../src/util/background/background.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAqB1C;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAGT,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;IAEpD;;OAEG;IACH,QAAQ;QACN,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAoB;QAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC5C,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC;aAEC,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,CACH,GAAG,EAAE;YACH,EAAE;QACJ,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;YACjB,+DAA+D;YAC/D,qBAAqB;YACrB,MAAM,KAAK,CAAC;QACd,CAAC,CACF;aACA,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,QAAQ;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC7B,4CAA4C;YAC5C,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"background.js","sourceRoot":"","sources":["../../../src/util/background/background.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAE1C,OAAO,EAAiB,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAEL,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AA4DnC;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAGT,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;IACnC,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACpC,KAAK,CAAW;IAEjC,YAAY,UAAU,GAA8B,EAAE;QACpD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,IAAI,YAAY,EAAE,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAoB;QAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC5C,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC;aAEC,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,CACH,GAAG,EAAE;YACH,EAAE;QACJ,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;YACjB,+DAA+D;YAC/D,qBAAqB;YACrB,MAAM,KAAK,CAAC;QACd,CAAC,CACF;aACA,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAa,EAAE,IAAoB;QAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAAa;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,QAAQ;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC7B,4CAA4C;YAC5C,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;CACF"}
@@ -1,16 +1,25 @@
1
- import type { BackgroundCompleter, BackgroundScheduler, BackgroundTask } from "./background.js";
1
+ import type { BackgroundCompleter, BackgroundDueTaskSource, BackgroundScheduler, BackgroundTask } from "./background.js";
2
+ import { type SimClock } from "../clock/sim-clock.js";
3
+ import { type BackgroundDueTask } from "./background-due-tasks.js";
2
4
  /**
3
5
  * Non-deterministic async background tasks scheduler.
4
6
  *
5
7
  * Use this when you want to simulate asynchronous distributed operations
6
8
  * potentially completing out of sequence.
7
9
  */
8
- export declare class NonDeterministicBackgroundTasks implements BackgroundScheduler, BackgroundCompleter {
10
+ export declare class NonDeterministicBackgroundTasks implements BackgroundScheduler, BackgroundCompleter, BackgroundDueTaskSource {
9
11
  private readonly pending;
10
- private readonly maxJitterMs;
12
+ private readonly dueTasks;
13
+ private readonly jitter;
14
+ private readonly clock;
11
15
  constructor(properties?: {
12
16
  maxJitterMs?: number;
17
+ clock?: SimClock;
13
18
  });
19
+ /**
20
+ * Get the current time in this simulation.
21
+ */
22
+ now(): Date;
14
23
  /**
15
24
  * Wait at a non-deterministic sequencing point.
16
25
  */
@@ -19,6 +28,14 @@ export declare class NonDeterministicBackgroundTasks implements BackgroundSchedu
19
28
  * Schedule a task to happen asynchronously in the background.
20
29
  */
21
30
  schedule(task: BackgroundTask): void;
31
+ /**
32
+ * Schedule a task to happen once simulated time reaches an instant.
33
+ */
34
+ scheduleAt(dueTime: Date, task: BackgroundTask): void;
35
+ /**
36
+ * Take the next task due at or before an instant, earliest first.
37
+ */
38
+ takeNextDueBy(instant: Date): BackgroundDueTask | undefined;
22
39
  /**
23
40
  * Wait until all tasks currently scheduled have finished.
24
41
  * If tasks schedule more tasks, this will continue draining until idle.
@@ -28,6 +45,9 @@ export declare class NonDeterministicBackgroundTasks implements BackgroundSchedu
28
45
  * See how many outstanding background tasks are scheduled.
29
46
  */
30
47
  get pendingTaskCount(): number;
31
- private sleep;
48
+ /**
49
+ * See how many tasks are waiting for simulated time to reach them.
50
+ */
51
+ get dueTaskCount(): number;
32
52
  }
33
53
  //# sourceMappingURL=non-deterministic-background.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"non-deterministic-background.d.ts","sourceRoot":"","sources":["../../../src/util/background/non-deterministic-background.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACf,MAAM,iBAAiB,CAAC;AAIzB;;;;;GAKG;AACH,qBAAa,+BACX,YAAW,mBAAmB,EAAE,mBAAmB;IAEnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC,YAAY,UAAU,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,EAGpD;IAED;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAE9B;IAED;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAkBnC;IAED;;;OAGG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAcrC;IAED;;OAEG;IACH,IAAW,gBAAgB,IAAI,MAAM,CAEpC;YAEa,KAAK;CAKpB"}
1
+ {"version":3,"file":"non-deterministic-background.d.ts","sourceRoot":"","sources":["../../../src/util/background/non-deterministic-background.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,uBAAuB,CAAC;AACpE,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,2BAA2B,CAAC;AAMnC;;;;;GAKG;AACH,qBAAa,+BACX,YAAW,mBAAmB,EAAE,mBAAmB,EAAE,uBAAuB;IAE5E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IAEjC,YAAY,UAAU,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;KAAO,EAItE;IAED;;OAEG;IACH,GAAG,IAAI,IAAI,CAEV;IAED;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAE9B;IAED;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAkBnC;IAED;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAEpD;IAED;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,IAAI,GAAG,iBAAiB,GAAG,SAAS,CAE1D;IAED;;;OAGG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAQrC;IAED;;OAEG;IACH,IAAW,gBAAgB,IAAI,MAAM,CAEpC;IAED;;OAEG;IACH,IAAW,YAAY,IAAI,MAAM,CAEhC;CACF"}
@@ -1,3 +1,7 @@
1
+ import { SimRealClock } from "../clock/sim-clock.js";
2
+ import { BackgroundDueTasks, } from "./background-due-tasks.js";
3
+ import { BackgroundJitter } from "./background-jitter.js";
4
+ import { BackgroundSettledTasks } from "./background-settled-tasks.js";
1
5
  /* eslint-disable unicorn/prefer-await */
2
6
  /**
3
7
  * Non-deterministic async background tasks scheduler.
@@ -7,16 +11,25 @@
7
11
  */
8
12
  export class NonDeterministicBackgroundTasks {
9
13
  pending = new Set();
10
- maxJitterMs;
14
+ dueTasks = new BackgroundDueTasks();
15
+ jitter;
16
+ clock;
11
17
  constructor(properties = {}) {
12
- const { maxJitterMs = 5 } = properties;
13
- this.maxJitterMs = maxJitterMs;
18
+ const { maxJitterMs, clock = new SimRealClock() } = properties;
19
+ this.jitter = new BackgroundJitter(maxJitterMs);
20
+ this.clock = clock;
21
+ }
22
+ /**
23
+ * Get the current time in this simulation.
24
+ */
25
+ now() {
26
+ return this.clock.now();
14
27
  }
15
28
  /**
16
29
  * Wait at a non-deterministic sequencing point.
17
30
  */
18
31
  async sequence() {
19
- await this.sleep(Math.random() * this.maxJitterMs);
32
+ await this.jitter.wait();
20
33
  }
21
34
  /**
22
35
  * Schedule a task to happen asynchronously in the background.
@@ -36,6 +49,18 @@ export class NonDeterministicBackgroundTasks {
36
49
  });
37
50
  this.pending.add(promise);
38
51
  }
52
+ /**
53
+ * Schedule a task to happen once simulated time reaches an instant.
54
+ */
55
+ scheduleAt(dueTime, task) {
56
+ this.dueTasks.add(dueTime, task);
57
+ }
58
+ /**
59
+ * Take the next task due at or before an instant, earliest first.
60
+ */
61
+ takeNextDueBy(instant) {
62
+ return this.dueTasks.takeNextDueBy(instant);
63
+ }
39
64
  /**
40
65
  * Wait until all tasks currently scheduled have finished.
41
66
  * If tasks schedule more tasks, this will continue draining until idle.
@@ -44,11 +69,8 @@ export class NonDeterministicBackgroundTasks {
44
69
  while (this.pending.size > 0) {
45
70
  // eslint-disable-next-line no-await-in-loop
46
71
  const results = await Promise.allSettled(this.pending);
47
- // Check if any promises rejected and capture the first error
48
- const firstRejected = results.find((result) => result.status === "rejected");
49
- if (firstRejected !== undefined) {
50
- throw firstRejected.reason;
51
- }
72
+ // Surface a task that failed in the background to whoever waited here.
73
+ new BackgroundSettledTasks(results).throwFirstFailure();
52
74
  }
53
75
  }
54
76
  /**
@@ -57,10 +79,11 @@ export class NonDeterministicBackgroundTasks {
57
79
  get pendingTaskCount() {
58
80
  return this.pending.size;
59
81
  }
60
- async sleep(ms = 0) {
61
- await new Promise((resolve) => {
62
- setTimeout(resolve, ms);
63
- });
82
+ /**
83
+ * See how many tasks are waiting for simulated time to reach them.
84
+ */
85
+ get dueTaskCount() {
86
+ return this.dueTasks.size;
64
87
  }
65
88
  }
66
89
  //# sourceMappingURL=non-deterministic-background.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"non-deterministic-background.js","sourceRoot":"","sources":["../../../src/util/background/non-deterministic-background.ts"],"names":[],"mappings":"AAMA,0CAA0C;AAE1C;;;;;GAKG;AACH,MAAM,OAAO,+BAA+B;IAGzB,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;IACnC,WAAW,CAAS;IAErC,YAAY,UAAU,GAA6B,EAAE;QACnD,MAAM,EAAE,WAAW,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAoB;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE;aAC5B,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,CACH,GAAG,EAAE;YACH,EAAE;QACJ,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;YACjB,+DAA+D;YAC/D,qBAAqB;YACrB,MAAM,KAAK,CAAC;QACd,CAAC,CACF;aACA,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,QAAQ;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC7B,4CAA4C;YAC5C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvD,6DAA6D;YAC7D,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAChC,CAAC,MAAM,EAAmC,EAAE,CAC1C,MAAM,CAAC,MAAM,KAAK,UAAU,CAC/B,CAAC;YAEF,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,aAAa,CAAC,MAAM,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;QACxB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"non-deterministic-background.js","sourceRoot":"","sources":["../../../src/util/background/non-deterministic-background.ts"],"names":[],"mappings":"AAMA,OAAO,EAAiB,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAEL,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,0CAA0C;AAE1C;;;;;GAKG;AACH,MAAM,OAAO,+BAA+B;IAGzB,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;IACnC,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACpC,MAAM,CAAmB;IACzB,KAAK,CAAW;IAEjC,YAAY,UAAU,GAA+C,EAAE;QACrE,MAAM,EAAE,WAAW,EAAE,KAAK,GAAG,IAAI,YAAY,EAAE,EAAE,GAAG,UAAU,CAAC;QAC/D,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAoB;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE;aAC5B,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,CACH,GAAG,EAAE;YACH,EAAE;QACJ,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;YACjB,+DAA+D;YAC/D,qBAAqB;YACrB,MAAM,KAAK,CAAC;QACd,CAAC,CACF;aACA,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAa,EAAE,IAAoB;QAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAAa;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,QAAQ;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC7B,4CAA4C;YAC5C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEvD,uEAAuE;YACvE,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;CACF"}
@@ -0,0 +1,94 @@
1
+ import type { BackgroundCompleter, BackgroundDueTaskSource, BackgroundScheduler } from "../background/background.js";
2
+ import type { SimClock } from "./sim-clock.js";
3
+ import type { SimControllableClock } from "./sim-controllable-clock.js";
4
+ import { SimDuration, type SimDurationInput } from "./sim-duration.js";
5
+ /**
6
+ * The scheduler a clock control moves time for: it releases work waiting on the
7
+ * clock, and it can be waited on until the simulation settles.
8
+ */
9
+ export type SimClockControlBackground = BackgroundScheduler & BackgroundCompleter & BackgroundDueTaskSource;
10
+ interface SimClockControlProperties {
11
+ readonly clock: SimControllableClock;
12
+ readonly background: SimClockControlBackground;
13
+ }
14
+ /**
15
+ * Control over one simulation's sense of time.
16
+ *
17
+ * Moving the clock is only half of what a test needs. The other half is that
18
+ * whatever the passage of time should have caused has actually happened by the
19
+ * time the call returns, so the next line can assert rather than wait. So this
20
+ * class owns both the clock and the scheduler: advancing walks simulated time
21
+ * forward through everything that falls due in the interval, running each task
22
+ * at its own due time, and returns once nothing is left pending.
23
+ *
24
+ * Control is per simulation. Moving time here never touches another simulation
25
+ * or the real clock, which is what keeps a SimAws instance safe to construct
26
+ * per test case.
27
+ */
28
+ export declare class SimClockControl implements SimClock {
29
+ private readonly clock;
30
+ private readonly background;
31
+ constructor(properties: SimClockControlProperties);
32
+ /**
33
+ * Get the current simulated time.
34
+ */
35
+ now(): Date;
36
+ /**
37
+ * Whether simulated time is currently standing still.
38
+ */
39
+ get isFrozen(): boolean;
40
+ /**
41
+ * Stop simulated time where it currently reads.
42
+ *
43
+ * A frozen clock reports the same instant however long the host takes, so a
44
+ * slow test cannot drift past the state it set up.
45
+ */
46
+ freeze(): void;
47
+ /**
48
+ * Let simulated time pass by itself again, carrying on from where it stopped.
49
+ *
50
+ * Time then runs at real speed, offset by however far it has been moved, so
51
+ * "jump forward an hour and carry on" behaves as it sounds.
52
+ */
53
+ resume(): void;
54
+ /**
55
+ * Set simulated time to an instant, running whatever falls due on the way.
56
+ *
57
+ * Setting time backwards runs nothing: it simply moves the clock, and work
58
+ * already scheduled waits for time to reach it again.
59
+ *
60
+ * Work that fails throws from here, leaving the clock at the failed task's
61
+ * due time rather than at the instant asked for. Simulated time got that far
62
+ * and then something broke, and saying so is more use than claiming the whole
63
+ * interval elapsed. Whatever was still queued stays queued.
64
+ */
65
+ setTo(instant: Date): Promise<void>;
66
+ /**
67
+ * Move simulated time forward by a duration, running whatever falls due.
68
+ *
69
+ * Returns once the simulation has settled, so a test can advance and then
70
+ * assert without waiting again.
71
+ */
72
+ advanceBy(duration: SimDuration | SimDurationInput): Promise<void>;
73
+ /**
74
+ * Dispatch everything due at or before an instant, in due order.
75
+ *
76
+ * Each task runs with the clock reading its own due time rather than the
77
+ * final one, so a task that stamps a timestamp records when it happened. Work
78
+ * a task schedules for itself settles before the next due task is taken,
79
+ * which keeps cascading work in order too.
80
+ *
81
+ * The loop runs as long as work keeps falling due inside the interval, as
82
+ * draining does generally: a task that endlessly reschedules itself inside
83
+ * the interval is asking for endless work, and cutting it off part way would
84
+ * report a settled simulation that is nothing of the kind.
85
+ */
86
+ private runDueTasksUpTo;
87
+ /**
88
+ * Keep the clock moving forward: an overdue task runs at the current time
89
+ * rather than dragging simulated time backwards to when it should have run.
90
+ */
91
+ private laterOfNow;
92
+ }
93
+ export {};
94
+ //# sourceMappingURL=sim-clock-control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-clock-control.d.ts","sourceRoot":"","sources":["../../../src/util/clock/sim-clock-control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEvE;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,GACzD,mBAAmB,GACnB,uBAAuB,CAAC;AAE1B,UAAU,yBAAyB;IACjC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;CAChD;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IAEvD,YAAY,UAAU,EAAE,yBAAyB,EAGhD;IAED;;OAEG;IACH,GAAG,IAAI,IAAI,CAEV;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;;;OAKG;IACH,MAAM,IAAI,IAAI,CAEb;IAED;;;;;OAKG;IACH,MAAM,IAAI,IAAI,CAEb;IAED;;;;;;;;;;OAUG;IACG,KAAK,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAQxC;IAED;;;;;OAKG;IACG,SAAS,CAAC,QAAQ,EAAE,WAAW,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvE;IAED;;;;;;;;;;;;OAYG;YACW,eAAe;IAc7B;;;OAGG;IACH,OAAO,CAAC,UAAU;CASnB"}
@@ -0,0 +1,116 @@
1
+ import { SimDuration } from "./sim-duration.js";
2
+ /**
3
+ * Control over one simulation's sense of time.
4
+ *
5
+ * Moving the clock is only half of what a test needs. The other half is that
6
+ * whatever the passage of time should have caused has actually happened by the
7
+ * time the call returns, so the next line can assert rather than wait. So this
8
+ * class owns both the clock and the scheduler: advancing walks simulated time
9
+ * forward through everything that falls due in the interval, running each task
10
+ * at its own due time, and returns once nothing is left pending.
11
+ *
12
+ * Control is per simulation. Moving time here never touches another simulation
13
+ * or the real clock, which is what keeps a SimAws instance safe to construct
14
+ * per test case.
15
+ */
16
+ export class SimClockControl {
17
+ clock;
18
+ background;
19
+ constructor(properties) {
20
+ this.clock = properties.clock;
21
+ this.background = properties.background;
22
+ }
23
+ /**
24
+ * Get the current simulated time.
25
+ */
26
+ now() {
27
+ return this.clock.now();
28
+ }
29
+ /**
30
+ * Whether simulated time is currently standing still.
31
+ */
32
+ get isFrozen() {
33
+ return this.clock.isFrozen;
34
+ }
35
+ /**
36
+ * Stop simulated time where it currently reads.
37
+ *
38
+ * A frozen clock reports the same instant however long the host takes, so a
39
+ * slow test cannot drift past the state it set up.
40
+ */
41
+ freeze() {
42
+ this.clock.freeze();
43
+ }
44
+ /**
45
+ * Let simulated time pass by itself again, carrying on from where it stopped.
46
+ *
47
+ * Time then runs at real speed, offset by however far it has been moved, so
48
+ * "jump forward an hour and carry on" behaves as it sounds.
49
+ */
50
+ resume() {
51
+ this.clock.resume();
52
+ }
53
+ /**
54
+ * Set simulated time to an instant, running whatever falls due on the way.
55
+ *
56
+ * Setting time backwards runs nothing: it simply moves the clock, and work
57
+ * already scheduled waits for time to reach it again.
58
+ *
59
+ * Work that fails throws from here, leaving the clock at the failed task's
60
+ * due time rather than at the instant asked for. Simulated time got that far
61
+ * and then something broke, and saying so is more use than claiming the whole
62
+ * interval elapsed. Whatever was still queued stays queued.
63
+ */
64
+ async setTo(instant) {
65
+ if (instant.getTime() >= this.now().getTime()) {
66
+ await this.runDueTasksUpTo(instant);
67
+ }
68
+ this.clock.setTo(instant);
69
+ await this.background.complete();
70
+ }
71
+ /**
72
+ * Move simulated time forward by a duration, running whatever falls due.
73
+ *
74
+ * Returns once the simulation has settled, so a test can advance and then
75
+ * assert without waiting again.
76
+ */
77
+ async advanceBy(duration) {
78
+ const milliseconds = SimDuration.of(duration).toMilliseconds();
79
+ await this.setTo(new Date(this.now().getTime() + milliseconds));
80
+ }
81
+ /**
82
+ * Dispatch everything due at or before an instant, in due order.
83
+ *
84
+ * Each task runs with the clock reading its own due time rather than the
85
+ * final one, so a task that stamps a timestamp records when it happened. Work
86
+ * a task schedules for itself settles before the next due task is taken,
87
+ * which keeps cascading work in order too.
88
+ *
89
+ * The loop runs as long as work keeps falling due inside the interval, as
90
+ * draining does generally: a task that endlessly reschedules itself inside
91
+ * the interval is asking for endless work, and cutting it off part way would
92
+ * report a settled simulation that is nothing of the kind.
93
+ */
94
+ async runDueTasksUpTo(instant) {
95
+ let due = this.background.takeNextDueBy(instant);
96
+ while (due !== undefined) {
97
+ this.clock.setTo(this.laterOfNow(due.dueTime));
98
+ this.background.schedule(due.task);
99
+ // eslint-disable-next-line no-await-in-loop
100
+ await this.background.complete();
101
+ due = this.background.takeNextDueBy(instant);
102
+ }
103
+ }
104
+ /**
105
+ * Keep the clock moving forward: an overdue task runs at the current time
106
+ * rather than dragging simulated time backwards to when it should have run.
107
+ */
108
+ laterOfNow(instant) {
109
+ const now = this.now();
110
+ if (instant.getTime() < now.getTime()) {
111
+ return now;
112
+ }
113
+ return instant;
114
+ }
115
+ }
116
+ //# sourceMappingURL=sim-clock-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-clock-control.js","sourceRoot":"","sources":["../../../src/util/clock/sim-clock-control.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AAevE;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,eAAe;IACT,KAAK,CAAuB;IAC5B,UAAU,CAA4B;IAEvD,YAAY,UAAqC;QAC/C,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,MAAM;QACJ,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACH,MAAM;QACJ,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACtB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,CAAC,OAAa;QACvB,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE1B,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,QAAwC;QACtD,MAAM,YAAY,GAAG,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;QAE/D,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,KAAK,CAAC,eAAe,CAAC,OAAa;QACzC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEjD,OAAO,GAAG,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEnC,4CAA4C;YAC5C,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAEjC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,UAAU,CAAC,OAAa;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;YACtC,OAAO,GAAG,CAAC;QACb,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -0,0 +1,74 @@
1
+ import type { SimClock } from "./sim-clock.js";
2
+ /**
3
+ * How a controllable clock relates simulated time to the clock underneath it.
4
+ *
5
+ * There are two ways to be in control of time, and they answer different
6
+ * questions. A frozen clock is what a deterministic assertion wants: simulated
7
+ * time only moves when something moves it, so a slow test never drifts. A
8
+ * running clock offset from the one underneath is what "jump forward an hour and
9
+ * carry on" wants: time still passes by itself, just somewhere else on the
10
+ * timeline.
11
+ *
12
+ * Each mode knows how to become the other, so switching never loses the current
13
+ * simulated instant.
14
+ */
15
+ export interface SimClockMode {
16
+ /**
17
+ * Whether simulated time is standing still in this mode.
18
+ */
19
+ readonly isFrozen: boolean;
20
+ /**
21
+ * Get the simulated time this mode reports.
22
+ */
23
+ now(base: SimClock): Date;
24
+ /**
25
+ * Stop simulated time where it currently reads.
26
+ */
27
+ freeze(base: SimClock): SimClockMode;
28
+ /**
29
+ * Let simulated time run again from where it currently reads.
30
+ */
31
+ resume(base: SimClock): SimClockMode;
32
+ }
33
+ /**
34
+ * Simulated time stopped at an instant, moving only when something moves it.
35
+ */
36
+ export declare class SimFrozenClockMode implements SimClockMode {
37
+ readonly isFrozen = true;
38
+ private readonly instant;
39
+ constructor(instant: Date);
40
+ /**
41
+ * Get the instant this mode is stopped at.
42
+ */
43
+ now(): Date;
44
+ /**
45
+ * Stay stopped: freezing an already frozen clock changes nothing.
46
+ */
47
+ freeze(): SimClockMode;
48
+ /**
49
+ * Run again from the frozen instant, keeping it as the offset from the clock
50
+ * underneath, so no simulated time is gained or lost by resuming.
51
+ */
52
+ resume(base: SimClock): SimClockMode;
53
+ }
54
+ /**
55
+ * Simulated time passing by itself, shifted from the clock underneath.
56
+ */
57
+ export declare class SimRunningClockMode implements SimClockMode {
58
+ readonly isFrozen = false;
59
+ private readonly offsetMs;
60
+ constructor(offsetMs?: number);
61
+ /**
62
+ * Get the time the clock underneath reports, shifted by this offset.
63
+ */
64
+ now(base: SimClock): Date;
65
+ /**
66
+ * Stop at whatever simulated time currently reads.
67
+ */
68
+ freeze(base: SimClock): SimClockMode;
69
+ /**
70
+ * Keep running: resuming an already running clock changes nothing.
71
+ */
72
+ resume(): SimClockMode;
73
+ }
74
+ //# sourceMappingURL=sim-clock-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-clock-mode.d.ts","sourceRoot":"","sources":["../../../src/util/clock/sim-clock-mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAE1B;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAErC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;CACtC;AAED;;GAEG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACrD,SAAgB,QAAQ,QAAQ;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAO;IAE/B,YAAY,OAAO,EAAE,IAAI,EAExB;IAED;;OAEG;IACH,GAAG,IAAI,IAAI,CAEV;IAED;;OAEG;IACH,MAAM,IAAI,YAAY,CAErB;IAED;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAInC;CACF;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,YAAY;IACtD,SAAgB,QAAQ,SAAS;IAEjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,YAAY,QAAQ,SAAI,EAEvB;IAED;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAExB;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAEnC;IAED;;OAEG;IACH,MAAM,IAAI,YAAY,CAErB;CACF"}