@kensio/yulin 1.21.0 → 1.21.2

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 (529) hide show
  1. package/README.md +1 -0
  2. package/dist/sdk/router/resolve-sim-sdk-command-router.js +4 -0
  3. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +3 -0
  4. package/dist/service/aws/factory/sim-aws-lambda-collaborators.d.ts +2 -0
  5. package/dist/service/aws/factory/sim-aws-lambda-collaborators.js +3 -0
  6. package/dist/service/aws/factory/sim-aws-logs-collaborators.d.ts +7 -0
  7. package/dist/service/aws/factory/sim-aws-logs-collaborators.js +10 -0
  8. package/dist/service/aws/factory/sim-aws-self-contained-service-builder.d.ts +3 -0
  9. package/dist/service/aws/factory/sim-aws-self-contained-service-builder.js +5 -0
  10. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +3 -0
  11. package/dist/service/aws/factory/sim-aws-service-factory.js +4 -0
  12. package/dist/service/aws/sim-aws-account-region-scope.d.ts +3 -0
  13. package/dist/service/aws/sim-aws-account-region-scope.js +4 -0
  14. package/dist/service/aws/sim-aws-account.d.ts +3 -0
  15. package/dist/service/aws/sim-aws-account.js +4 -0
  16. package/dist/service/aws/sim-aws-region.d.ts +3 -0
  17. package/dist/service/aws/sim-aws-region.js +4 -0
  18. package/dist/service/aws/sim-aws-service-accessors.d.ts +3 -0
  19. package/dist/service/aws/sim-aws-service-accessors.js +4 -0
  20. package/dist/service/backup/cfn/sim-backup-cfn-plan-creator.d.ts +6 -0
  21. package/dist/service/backup/cfn/sim-backup-cfn-plan-creator.js +12 -0
  22. package/dist/service/backup/cfn/sim-backup-cfn-resource-deleter.d.ts +12 -0
  23. package/dist/service/backup/cfn/sim-backup-cfn-resource-deleter.js +31 -0
  24. package/dist/service/backup/cfn/sim-backup-cfn-resource-factory.d.ts +15 -0
  25. package/dist/service/backup/cfn/sim-backup-cfn-resource-factory.js +38 -0
  26. package/dist/service/backup/cfn/sim-backup-cfn-selection-creator.d.ts +6 -0
  27. package/dist/service/backup/cfn/sim-backup-cfn-selection-creator.js +17 -0
  28. package/dist/service/backup/cfn/sim-backup-cfn-vault-creator.d.ts +6 -0
  29. package/dist/service/backup/cfn/sim-backup-cfn-vault-creator.js +29 -0
  30. package/dist/service/backup/cfn/sim-cfn-backup-plan-properties.d.ts +11 -0
  31. package/dist/service/backup/cfn/sim-cfn-backup-plan-properties.js +37 -0
  32. package/dist/service/backup/cfn/sim-cfn-backup-properties.d.ts +12 -0
  33. package/dist/service/backup/cfn/sim-cfn-backup-properties.js +37 -0
  34. package/dist/service/backup/cfn/sim-cfn-backup-property-reader.d.ts +17 -0
  35. package/dist/service/backup/cfn/sim-cfn-backup-property-reader.js +62 -0
  36. package/dist/service/backup/cfn/sim-cfn-backup-resource-error.d.ts +7 -0
  37. package/dist/service/backup/cfn/sim-cfn-backup-resource-error.js +22 -0
  38. package/dist/service/backup/command/sim-backup-authorizer.d.ts +11 -0
  39. package/dist/service/backup/command/sim-backup-authorizer.js +24 -0
  40. package/dist/service/backup/command/sim-backup-command.types.d.ts +238 -0
  41. package/dist/service/backup/command/sim-backup-command.types.js +1 -0
  42. package/dist/service/backup/command/sim-backup-configuration-commands.d.ts +32 -0
  43. package/dist/service/backup/command/sim-backup-configuration-commands.js +138 -0
  44. package/dist/service/backup/command/sim-backup-job-commands.d.ts +23 -0
  45. package/dist/service/backup/command/sim-backup-job-commands.js +52 -0
  46. package/dist/service/backup/command/sim-backup-recovery-point-commands.d.ts +18 -0
  47. package/dist/service/backup/command/sim-backup-recovery-point-commands.js +38 -0
  48. package/dist/service/backup/command/sim-backup-request-options.d.ts +4 -0
  49. package/dist/service/backup/command/sim-backup-request-options.js +1 -0
  50. package/dist/service/backup/command/sim-backup-required-string.d.ts +2 -0
  51. package/dist/service/backup/command/sim-backup-required-string.js +8 -0
  52. package/dist/service/backup/error/sim-backup.error.d.ts +38 -0
  53. package/dist/service/backup/error/sim-backup.error.js +50 -0
  54. package/dist/service/backup/index.d.ts +9 -0
  55. package/dist/service/backup/index.js +7 -0
  56. package/dist/service/backup/job/sim-backup-job-input.d.ts +11 -0
  57. package/dist/service/backup/job/sim-backup-job-input.js +1 -0
  58. package/dist/service/backup/job/sim-backup-job-page.d.ts +22 -0
  59. package/dist/service/backup/job/sim-backup-job-page.js +54 -0
  60. package/dist/service/backup/job/sim-backup-job.d.ts +25 -0
  61. package/dist/service/backup/job/sim-backup-job.factory.d.ts +10 -0
  62. package/dist/service/backup/job/sim-backup-job.factory.js +24 -0
  63. package/dist/service/backup/job/sim-backup-job.js +54 -0
  64. package/dist/service/backup/job/sim-backup-jobs.d.ts +18 -0
  65. package/dist/service/backup/job/sim-backup-jobs.js +33 -0
  66. package/dist/service/backup/plan/sim-backup-plan-schedules.d.ts +21 -0
  67. package/dist/service/backup/plan/sim-backup-plan-schedules.js +66 -0
  68. package/dist/service/backup/plan/sim-backup-plan.d.ts +22 -0
  69. package/dist/service/backup/plan/sim-backup-plan.js +37 -0
  70. package/dist/service/backup/plan/sim-backup-rule.d.ts +9 -0
  71. package/dist/service/backup/plan/sim-backup-rule.js +71 -0
  72. package/dist/service/backup/recovery-point/sim-backup-recovery-point.d.ts +28 -0
  73. package/dist/service/backup/recovery-point/sim-backup-recovery-point.factory.d.ts +9 -0
  74. package/dist/service/backup/recovery-point/sim-backup-recovery-point.factory.js +23 -0
  75. package/dist/service/backup/recovery-point/sim-backup-recovery-point.js +62 -0
  76. package/dist/service/backup/sdk/sim-backup-sdk-command-router.d.ts +9 -0
  77. package/dist/service/backup/sdk/sim-backup-sdk-command-router.js +37 -0
  78. package/dist/service/backup/selection/sim-backup-selection.d.ts +22 -0
  79. package/dist/service/backup/selection/sim-backup-selection.js +43 -0
  80. package/dist/service/backup/sim-backup-arn.d.ts +7 -0
  81. package/dist/service/backup/sim-backup-arn.js +12 -0
  82. package/dist/service/backup/sim-backup-properties.d.ts +8 -0
  83. package/dist/service/backup/sim-backup-properties.js +1 -0
  84. package/dist/service/backup/sim-backup-resource-resolver.d.ts +24 -0
  85. package/dist/service/backup/sim-backup-resource-resolver.js +44 -0
  86. package/dist/service/backup/sim-backup-store.d.ts +29 -0
  87. package/dist/service/backup/sim-backup-store.js +80 -0
  88. package/dist/service/backup/sim-backup.d.ts +48 -0
  89. package/dist/service/backup/sim-backup.js +139 -0
  90. package/dist/service/backup/vault/sim-backup-vault-description.d.ts +12 -0
  91. package/dist/service/backup/vault/sim-backup-vault-description.js +15 -0
  92. package/dist/service/backup/vault/sim-backup-vault-lock-configuration.d.ts +5 -0
  93. package/dist/service/backup/vault/sim-backup-vault-lock-configuration.js +31 -0
  94. package/dist/service/backup/vault/sim-backup-vault-lock.d.ts +15 -0
  95. package/dist/service/backup/vault/sim-backup-vault-lock.js +23 -0
  96. package/dist/service/backup/vault/sim-backup-vault-recovery-points.d.ts +12 -0
  97. package/dist/service/backup/vault/sim-backup-vault-recovery-points.js +30 -0
  98. package/dist/service/backup/vault/sim-backup-vault-retention.d.ts +4 -0
  99. package/dist/service/backup/vault/sim-backup-vault-retention.js +20 -0
  100. package/dist/service/backup/vault/sim-backup-vault.d.ts +33 -0
  101. package/dist/service/backup/vault/sim-backup-vault.js +49 -0
  102. package/dist/service/cloudformation/resource/cfn/backup/sim-backup-cfn-value-adapter.d.ts +3 -0
  103. package/dist/service/cloudformation/resource/cfn/backup/sim-backup-cfn-value-adapter.js +66 -0
  104. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-cfn-value-adapter.js +6 -0
  105. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-metric-filter-cfn.d.ts +23 -0
  106. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-metric-filter-cfn.js +22 -0
  107. package/dist/service/cloudformation/resource/cfn/sim-cfn-service-value-adapters.js +2 -0
  108. package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-properties.d.ts +49 -0
  109. package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-properties.js +61 -0
  110. package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-property.type.d.ts +51 -0
  111. package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-property.type.js +1 -0
  112. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-factories.js +4 -0
  113. package/dist/service/cloudwatch/index.d.ts +1 -0
  114. package/dist/service/cloudwatch/index.js +1 -0
  115. package/dist/service/cloudwatch/sim-cloudwatch-commands.d.ts +2 -0
  116. package/dist/service/cloudwatch/sim-cloudwatch-commands.js +6 -0
  117. package/dist/service/cloudwatch/sim-cloudwatch.d.ts +9 -0
  118. package/dist/service/cloudwatch/sim-cloudwatch.js +10 -0
  119. package/dist/service/cloudwatch/write/sim-cloudwatch-service-writer.d.ts +58 -0
  120. package/dist/service/cloudwatch/write/sim-cloudwatch-service-writer.js +53 -0
  121. package/dist/service/cognito/command/auth/sim-cognito-admin-respond-to-challenge.d.ts +3 -0
  122. package/dist/service/cognito/command/auth/sim-cognito-admin-respond-to-challenge.js +8 -2
  123. package/dist/service/cognito/command/auth/sim-cognito-auth-commands.d.ts +3 -0
  124. package/dist/service/cognito/command/auth/sim-cognito-auth-commands.js +4 -0
  125. package/dist/service/cognito/command/auth/sim-cognito-auth-flow-runner.d.ts +11 -1
  126. package/dist/service/cognito/command/auth/sim-cognito-auth-flow-runner.js +13 -1
  127. package/dist/service/cognito/command/auth/sim-cognito-auth-resolver.d.ts +3 -0
  128. package/dist/service/cognito/command/auth/sim-cognito-auth-resolver.js +16 -4
  129. package/dist/service/cognito/command/auth/sim-cognito-get-tokens-from-refresh-token.d.ts +7 -0
  130. package/dist/service/cognito/command/auth/sim-cognito-get-tokens-from-refresh-token.js +11 -1
  131. package/dist/service/cognito/command/auth/sim-cognito-respond-to-challenge.d.ts +3 -0
  132. package/dist/service/cognito/command/auth/sim-cognito-respond-to-challenge.js +8 -2
  133. package/dist/service/cognito/command/hosted/hosted-auth.command.d.ts +19 -0
  134. package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.d.ts +1 -1
  135. package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.js +3 -2
  136. package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.d.ts +8 -0
  137. package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.js +11 -3
  138. package/dist/service/cognito/command/hosted/sim-cognito-hosted-passkey-sign-in.d.ts +11 -1
  139. package/dist/service/cognito/command/hosted/sim-cognito-hosted-passkey-sign-in.js +13 -2
  140. package/dist/service/cognito/command/hosted/sim-cognito-hosted-password-sign-in.d.ts +11 -1
  141. package/dist/service/cognito/command/hosted/sim-cognito-hosted-password-sign-in.js +11 -1
  142. package/dist/service/cognito/command/hosted/sim-cognito-hosted-sign-in.d.ts +7 -1
  143. package/dist/service/cognito/command/hosted/sim-cognito-hosted-sign-in.js +18 -7
  144. package/dist/service/cognito/command/hosted/sim-cognito-hosted-signed-in.d.ts +20 -3
  145. package/dist/service/cognito/command/hosted/sim-cognito-hosted-signed-in.js +19 -3
  146. package/dist/service/cognito/command/hosted/sim-cognito-token-endpoint.d.ts +2 -0
  147. package/dist/service/cognito/command/hosted/sim-cognito-token-grants.d.ts +8 -0
  148. package/dist/service/cognito/command/hosted/sim-cognito-token-grants.js +13 -4
  149. package/dist/service/cognito/command/sim-cognito-commands.d.ts +5 -0
  150. package/dist/service/cognito/command/sim-cognito-commands.js +22 -2
  151. package/dist/service/cognito/command/user/sim-cognito-confirm-sign-up-commands.d.ts +74 -0
  152. package/dist/service/cognito/command/user/sim-cognito-confirm-sign-up-commands.js +110 -0
  153. package/dist/service/cognito/command/user/sim-cognito-sign-up-commands.d.ts +5 -49
  154. package/dist/service/cognito/command/user/sim-cognito-sign-up-commands.js +7 -87
  155. package/dist/service/cognito/command/user/sim-cognito-user-commands.d.ts +4 -0
  156. package/dist/service/cognito/command/user/sim-cognito-user-commands.js +38 -29
  157. package/dist/service/cognito/error/sim-cognito-managed-login.error.d.ts +23 -0
  158. package/dist/service/cognito/error/sim-cognito-managed-login.error.js +36 -0
  159. package/dist/service/cognito/error/sim-cognito-throttle.error.d.ts +13 -0
  160. package/dist/service/cognito/error/sim-cognito-throttle.error.js +15 -0
  161. package/dist/service/cognito/index.d.ts +2 -0
  162. package/dist/service/cognito/index.js +2 -0
  163. package/dist/service/cognito/metric/sim-cognito-counted-request.d.ts +50 -0
  164. package/dist/service/cognito/metric/sim-cognito-counted-request.js +51 -0
  165. package/dist/service/cognito/metric/sim-cognito-metrics.d.ts +22 -0
  166. package/dist/service/cognito/metric/sim-cognito-metrics.js +26 -0
  167. package/dist/service/cognito/metric/sim-cognito-pool-metrics.d.ts +40 -0
  168. package/dist/service/cognito/metric/sim-cognito-pool-metrics.js +51 -0
  169. package/dist/service/cognito/metric/sim-cognito-throttled-request.d.ts +11 -0
  170. package/dist/service/cognito/metric/sim-cognito-throttled-request.js +15 -0
  171. package/dist/service/cognito/serve/page/sim-cognito-managed-login.d.ts +1 -0
  172. package/dist/service/cognito/serve/page/sim-cognito-managed-login.js +6 -1
  173. package/dist/service/cognito/serve/page/sim-cognito-page-markup.d.ts +4 -1
  174. package/dist/service/cognito/serve/page/sim-cognito-page-markup.js +6 -2
  175. package/dist/service/cognito/serve/page/sim-cognito-provider-page.d.ts +35 -0
  176. package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +50 -0
  177. package/dist/service/cognito/sim-cognito-identity-provider.d.ts +6 -0
  178. package/dist/service/cognito/sim-cognito-identity-provider.js +1 -0
  179. package/dist/service/cognito/sim-cognito-user-directory.js +3 -3
  180. package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code.d.ts +9 -0
  181. package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code.js +2 -0
  182. package/dist/service/cognito/user-pool/auth/sim-cognito-pool-auth.d.ts +8 -0
  183. package/dist/service/cognito/user-pool/auth/sim-cognito-pool-auth.js +8 -0
  184. package/dist/service/cognito/user-pool/auth/sim-cognito-request-throttle.d.ts +36 -0
  185. package/dist/service/cognito/user-pool/auth/sim-cognito-request-throttle.js +45 -0
  186. package/dist/service/cognito/user-pool/idp/sim-cognito-federated-sign-in.d.ts +42 -9
  187. package/dist/service/cognito/user-pool/idp/sim-cognito-federated-sign-in.js +56 -27
  188. package/dist/service/cognito/user-pool/idp/sim-cognito-federated-triggers.d.ts +52 -0
  189. package/dist/service/cognito/user-pool/idp/sim-cognito-federated-triggers.js +49 -0
  190. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +48 -0
  191. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +94 -0
  192. package/dist/service/cognito/user-pool/idp/sim-cognito-same-federated-identity.d.ts +13 -0
  193. package/dist/service/cognito/user-pool/idp/sim-cognito-same-federated-identity.js +19 -0
  194. package/dist/service/cognito/user-pool/idp/sim-cognito-user-pool-identity-provider.d.ts +7 -0
  195. package/dist/service/cognito/user-pool/idp/sim-cognito-user-pool-identity-provider.js +9 -0
  196. package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-name.d.ts +3 -2
  197. package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-name.js +3 -2
  198. package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-occasion.d.ts +18 -1
  199. package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-occasion.js +35 -18
  200. package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
  201. package/dist/service/lambda/command/create-function/create-function.handler.js +4 -1
  202. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
  203. package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +7 -11
  204. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +7 -8
  205. package/dist/service/lambda/event-source/poll/sim-lambda-stream-iterator-age.d.ts +11 -0
  206. package/dist/service/lambda/event-source/poll/sim-lambda-stream-iterator-age.js +31 -0
  207. package/dist/service/lambda/event-source/poll/sim-lambda-stream-sequence-numbers.d.ts +10 -0
  208. package/dist/service/lambda/event-source/poll/sim-lambda-stream-sequence-numbers.js +12 -0
  209. package/dist/service/lambda/function/sim-lambda-function.d.ts +3 -0
  210. package/dist/service/lambda/function/sim-lambda-function.js +6 -2
  211. package/dist/service/lambda/function/sim-lambda-function.type.d.ts +7 -0
  212. package/dist/service/lambda/metric/sim-lambda-function-metrics.d.ts +47 -0
  213. package/dist/service/lambda/metric/sim-lambda-function-metrics.js +83 -0
  214. package/dist/service/lambda/metric/sim-lambda-iterator-age.d.ts +29 -0
  215. package/dist/service/lambda/metric/sim-lambda-iterator-age.js +41 -0
  216. package/dist/service/lambda/metric/sim-lambda-metrics.d.ts +12 -0
  217. package/dist/service/lambda/metric/sim-lambda-metrics.js +13 -0
  218. package/dist/service/lambda/sim-lambda-commands.d.ts +2 -0
  219. package/dist/service/lambda/sim-lambda-commands.js +2 -1
  220. package/dist/service/logs/cfn/metric/sim-cfn-metric-dimension-values.d.ts +9 -0
  221. package/dist/service/logs/cfn/metric/sim-cfn-metric-dimension-values.js +25 -0
  222. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-creator.d.ts +30 -0
  223. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-creator.js +52 -0
  224. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-properties.d.ts +40 -0
  225. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-properties.js +66 -0
  226. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-property-rules.d.ts +19 -0
  227. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-property-rules.js +40 -0
  228. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-unsimulated-properties.d.ts +5 -0
  229. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-unsimulated-properties.js +23 -0
  230. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-value.d.ts +25 -0
  231. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-value.js +58 -0
  232. package/dist/service/logs/cfn/metric/sim-cfn-metric-transformation-values.d.ts +6 -0
  233. package/dist/service/logs/cfn/metric/sim-cfn-metric-transformation-values.js +19 -0
  234. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.d.ts +2 -0
  235. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +4 -0
  236. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +5 -3
  237. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +12 -3
  238. package/dist/service/logs/command/event/sim-logs-put-log-events.d.ts +3 -0
  239. package/dist/service/logs/command/event/sim-logs-put-log-events.js +3 -0
  240. package/dist/service/logs/command/group/sim-logs-log-group-commands.js +3 -3
  241. package/dist/service/logs/command/metric/metric-filter.command.d.ts +79 -0
  242. package/dist/service/logs/command/metric/metric-filter.command.js +1 -0
  243. package/dist/service/logs/command/metric/sim-logs-metric-filter-commands.d.ts +48 -0
  244. package/dist/service/logs/command/metric/sim-logs-metric-filter-commands.js +95 -0
  245. package/dist/service/logs/command/metric/sim-logs-metric-filter-input.d.ts +11 -0
  246. package/dist/service/logs/command/metric/sim-logs-metric-filter-input.js +79 -0
  247. package/dist/service/logs/command/sim-logs-command.types.d.ts +1 -0
  248. package/dist/service/logs/group/sim-logs-log-group.d.ts +6 -0
  249. package/dist/service/logs/group/sim-logs-log-group.js +6 -0
  250. package/dist/service/logs/index.d.ts +6 -0
  251. package/dist/service/logs/index.js +4 -0
  252. package/dist/service/logs/metric/cloudwatch/sim-aws-logs-metric-filter-metrics.d.ts +40 -0
  253. package/dist/service/logs/metric/cloudwatch/sim-aws-logs-metric-filter-metrics.js +78 -0
  254. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-datapoints.d.ts +25 -0
  255. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-datapoints.js +81 -0
  256. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-document.d.ts +57 -0
  257. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-document.js +85 -0
  258. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-json.d.ts +24 -0
  259. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-json.js +41 -0
  260. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-values.d.ts +20 -0
  261. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-values.js +39 -0
  262. package/dist/service/logs/metric/sim-logs-metric-datapoint.d.ts +25 -0
  263. package/dist/service/logs/metric/sim-logs-metric-datapoint.js +1 -0
  264. package/dist/service/logs/metric/sim-logs-metric-fan-out.d.ts +62 -0
  265. package/dist/service/logs/metric/sim-logs-metric-fan-out.js +116 -0
  266. package/dist/service/logs/metric/sim-logs-metric-filter-selection.d.ts +17 -0
  267. package/dist/service/logs/metric/sim-logs-metric-filter-selection.js +17 -0
  268. package/dist/service/logs/metric/sim-logs-metric-filter-store.d.ts +35 -0
  269. package/dist/service/logs/metric/sim-logs-metric-filter-store.js +47 -0
  270. package/dist/service/logs/metric/sim-logs-metric-filter.d.ts +49 -0
  271. package/dist/service/logs/metric/sim-logs-metric-filter.js +95 -0
  272. package/dist/service/logs/metric/sim-logs-metric-publication-failure.d.ts +31 -0
  273. package/dist/service/logs/metric/sim-logs-metric-publication-failure.js +12 -0
  274. package/dist/service/logs/metric/sim-logs-metric-publications.d.ts +11 -0
  275. package/dist/service/logs/metric/sim-logs-metric-publications.js +1 -0
  276. package/dist/service/logs/metric/sim-logs-metric-transformation.d.ts +45 -0
  277. package/dist/service/logs/metric/sim-logs-metric-transformation.js +127 -0
  278. package/dist/service/logs/sdk/sim-logs-sdk-command-router.js +12 -0
  279. package/dist/service/logs/sim-logs-commands.d.ts +12 -0
  280. package/dist/service/logs/sim-logs-commands.js +17 -0
  281. package/dist/service/logs/sim-logs-metric-operations.d.ts +31 -0
  282. package/dist/service/logs/sim-logs-metric-operations.js +37 -0
  283. package/dist/service/logs/sim-logs.d.ts +4 -3
  284. package/dist/service/logs/sim-logs.js +4 -3
  285. package/dist/service/logs/write/sim-logs-service-writer.d.ts +3 -0
  286. package/dist/service/logs/write/sim-logs-service-writer.js +5 -1
  287. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +32 -0
  288. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +31 -1
  289. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +13 -2
  290. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +18 -1
  291. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +17 -1
  292. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +27 -3
  293. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +45 -0
  294. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +90 -0
  295. package/dist/service/s3/bucket/lock/sim-s3-bucket-object-lock.d.ts +42 -0
  296. package/dist/service/s3/bucket/lock/sim-s3-bucket-object-lock.js +59 -0
  297. package/dist/service/s3/bucket/lock/sim-s3-default-retention.d.ts +8 -0
  298. package/dist/service/s3/bucket/lock/sim-s3-default-retention.js +15 -0
  299. package/dist/service/s3/bucket/lock/sim-s3-object-lock-configuration.d.ts +49 -0
  300. package/dist/service/s3/bucket/lock/sim-s3-object-lock-configuration.js +102 -0
  301. package/dist/service/s3/bucket/lock/sim-s3-object-lock-output.d.ts +14 -0
  302. package/dist/service/s3/bucket/lock/sim-s3-object-lock-output.js +1 -0
  303. package/dist/service/s3/bucket/lock/sim-s3-object-lock.d.ts +62 -0
  304. package/dist/service/s3/bucket/lock/sim-s3-object-lock.js +100 -0
  305. package/dist/service/s3/bucket/lock/sim-s3-object-retention.d.ts +55 -0
  306. package/dist/service/s3/bucket/lock/sim-s3-object-retention.js +82 -0
  307. package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
  308. package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +9 -1
  309. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.d.ts +1 -1
  310. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +1 -2
  311. package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +114 -0
  312. package/dist/service/s3/bucket/sim-s3-bucket-objects.js +148 -0
  313. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +30 -29
  314. package/dist/service/s3/bucket/sim-s3-bucket.js +42 -45
  315. package/dist/service/s3/bucket/sim-s3-object-deletion.d.ts +30 -0
  316. package/dist/service/s3/bucket/sim-s3-object-deletion.js +29 -0
  317. package/dist/service/s3/bucket/versioning/sim-s3-bucket-versioning.d.ts +61 -0
  318. package/dist/service/s3/bucket/versioning/sim-s3-bucket-versioning.js +65 -0
  319. package/dist/service/s3/bucket/versioning/sim-s3-bucket-versions.d.ts +97 -0
  320. package/dist/service/s3/bucket/versioning/sim-s3-bucket-versions.js +176 -0
  321. package/dist/service/s3/bucket/versioning/sim-s3-compare-keys.d.ts +10 -0
  322. package/dist/service/s3/bucket/versioning/sim-s3-compare-keys.js +16 -0
  323. package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +85 -0
  324. package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +101 -0
  325. package/dist/service/s3/bucket/versioning/sim-s3-object-versions.d.ts +52 -0
  326. package/dist/service/s3/bucket/versioning/sim-s3-object-versions.js +91 -0
  327. package/dist/service/s3/bucket/versioning/sim-s3-version-page.d.ts +32 -0
  328. package/dist/service/s3/bucket/versioning/sim-s3-version-page.js +45 -0
  329. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.d.ts +0 -5
  330. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +3 -14
  331. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +18 -1
  332. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +34 -1
  333. package/dist/service/s3/cfn/bucket/lock/sim-cfn-s3-bucket-object-lock-configuration.d.ts +37 -0
  334. package/dist/service/s3/cfn/bucket/lock/sim-cfn-s3-bucket-object-lock-configuration.js +78 -0
  335. package/dist/service/s3/cfn/bucket/replication/sim-cfn-s3-bucket-replication-rules.d.ts +20 -0
  336. package/dist/service/s3/cfn/bucket/replication/sim-cfn-s3-bucket-replication-rules.js +107 -0
  337. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.d.ts +14 -7
  338. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +29 -37
  339. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +62 -0
  340. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +89 -0
  341. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +9 -5
  342. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +16 -16
  343. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-rules.d.ts +9 -5
  344. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-rules.js +17 -6
  345. package/dist/service/s3/cfn/bucket/versioning/sim-cfn-s3-bucket-versioning-configuration.d.ts +19 -0
  346. package/dist/service/s3/cfn/bucket/versioning/sim-cfn-s3-bucket-versioning-configuration.js +28 -0
  347. package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +24 -0
  348. package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +30 -0
  349. package/dist/service/s3/command/complete-multipart-upload/complete-multipart-upload.command.d.ts +2 -0
  350. package/dist/service/s3/command/complete-multipart-upload/complete-multipart-upload.handler.js +3 -1
  351. package/dist/service/s3/command/copy-object/copy-object.command.d.ts +3 -1
  352. package/dist/service/s3/command/copy-object/copy-object.handler.js +3 -1
  353. package/dist/service/s3/command/delete-object/delete-object-version-removal.d.ts +50 -0
  354. package/dist/service/s3/command/delete-object/delete-object-version-removal.js +52 -0
  355. package/dist/service/s3/command/delete-object/delete-object.command.d.ts +19 -2
  356. package/dist/service/s3/command/delete-object/delete-object.handler.d.ts +7 -1
  357. package/dist/service/s3/command/delete-object/delete-object.handler.js +28 -16
  358. package/dist/service/s3/command/delete-object/sim-s3-notify-deleted.d.ts +24 -0
  359. package/dist/service/s3/command/delete-object/sim-s3-notify-deleted.js +32 -0
  360. package/dist/service/s3/command/delete-objects/delete-object-attempt.d.ts +6 -2
  361. package/dist/service/s3/command/delete-objects/delete-object-attempt.js +6 -2
  362. package/dist/service/s3/command/delete-objects/delete-objects-key-removal.js +10 -9
  363. package/dist/service/s3/command/delete-objects/delete-objects-outcome.js +9 -1
  364. package/dist/service/s3/command/delete-objects/delete-objects.command.d.ts +6 -0
  365. package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.command.d.ts +23 -0
  366. package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.command.js +1 -0
  367. package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.handler.d.ts +31 -0
  368. package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.handler.js +40 -0
  369. package/dist/service/s3/command/get-object/get-object-loader.d.ts +3 -2
  370. package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
  371. package/dist/service/s3/command/get-object/get-object.command.d.ts +9 -1
  372. package/dist/service/s3/command/get-object/get-object.handler.js +1 -1
  373. package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.command.d.ts +25 -0
  374. package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.command.js +1 -0
  375. package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.handler.d.ts +31 -0
  376. package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.handler.js +41 -0
  377. package/dist/service/s3/command/head-object/head-object-loader.d.ts +1 -1
  378. package/dist/service/s3/command/head-object/head-object-loader.js +7 -3
  379. package/dist/service/s3/command/head-object/head-object.command.d.ts +9 -1
  380. package/dist/service/s3/command/head-object/head-object.handler.js +1 -1
  381. package/dist/service/s3/command/list-object-versions/list-object-versions-listing.d.ts +31 -0
  382. package/dist/service/s3/command/list-object-versions/list-object-versions-listing.js +55 -0
  383. package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.d.ts +17 -0
  384. package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +34 -0
  385. package/dist/service/s3/command/list-object-versions/list-object-versions.command.d.ts +59 -0
  386. package/dist/service/s3/command/list-object-versions/list-object-versions.command.js +1 -0
  387. package/dist/service/s3/command/list-object-versions/list-object-versions.handler.d.ts +34 -0
  388. package/dist/service/s3/command/list-object-versions/list-object-versions.handler.js +62 -0
  389. package/dist/service/s3/command/object/sim-s3-read-object-version.d.ts +34 -0
  390. package/dist/service/s3/command/object/sim-s3-read-object-version.js +52 -0
  391. package/dist/service/s3/command/object-lock/sim-s3-locked-version.d.ts +11 -0
  392. package/dist/service/s3/command/object-lock/sim-s3-locked-version.js +27 -0
  393. package/dist/service/s3/command/object-lock/sim-s3-object-lock-authorizer.d.ts +42 -0
  394. package/dist/service/s3/command/object-lock/sim-s3-object-lock-authorizer.js +66 -0
  395. package/dist/service/s3/command/object-lock/sim-s3-object-lock-commands.d.ts +30 -0
  396. package/dist/service/s3/command/object-lock/sim-s3-object-lock-commands.js +41 -0
  397. package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.command.d.ts +21 -0
  398. package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.command.js +1 -0
  399. package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.handler.d.ts +31 -0
  400. package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.handler.js +44 -0
  401. package/dist/service/s3/command/put-object/put-object.command.d.ts +3 -0
  402. package/dist/service/s3/command/put-object/put-object.handler.js +10 -10
  403. package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.command.d.ts +24 -0
  404. package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.command.js +1 -0
  405. package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.handler.d.ts +32 -0
  406. package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.handler.js +41 -0
  407. package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.command.d.ts +21 -0
  408. package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.command.js +1 -0
  409. package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.handler.d.ts +32 -0
  410. package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.handler.js +47 -0
  411. package/dist/service/s3/command/put-object-retention/put-object-retention.command.d.ts +29 -0
  412. package/dist/service/s3/command/put-object-retention/put-object-retention.command.js +1 -0
  413. package/dist/service/s3/command/put-object-retention/put-object-retention.handler.d.ts +31 -0
  414. package/dist/service/s3/command/put-object-retention/put-object-retention.handler.js +42 -0
  415. package/dist/service/s3/command/sim-s3-command.types.d.ts +7 -0
  416. package/dist/service/s3/command/versioning/sim-s3-versioning-authorizer.d.ts +35 -0
  417. package/dist/service/s3/command/versioning/sim-s3-versioning-authorizer.js +57 -0
  418. package/dist/service/s3/command/versioning/sim-s3-versioning-commands.d.ts +26 -0
  419. package/dist/service/s3/command/versioning/sim-s3-versioning-commands.js +34 -0
  420. package/dist/service/s3/command/versioning/sim-s3-versioning-configuration-validation.d.ts +13 -0
  421. package/dist/service/s3/command/versioning/sim-s3-versioning-configuration-validation.js +28 -0
  422. package/dist/service/s3/error/sim-s3-object-lock.error.d.ts +22 -0
  423. package/dist/service/s3/error/sim-s3-object-lock.error.js +26 -0
  424. package/dist/service/s3/error/sim-s3.error.d.ts +22 -0
  425. package/dist/service/s3/error/sim-s3.error.js +26 -0
  426. package/dist/service/s3/notification/event/sim-s3-event-records.js +3 -0
  427. package/dist/service/s3/notification/event/sim-s3-event.type.d.ts +5 -3
  428. package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +15 -0
  429. package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +4 -1
  430. package/dist/service/s3/notification/event/sim-s3-object-event.d.ts +6 -0
  431. package/dist/service/s3/notification/event/sim-s3-object-event.js +2 -0
  432. package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +1 -1
  433. package/dist/service/s3/notification/sim-s3-object-notifier.js +2 -2
  434. package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.d.ts +10 -0
  435. package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +84 -0
  436. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +6 -132
  437. package/dist/service/s3/sdk/sim-s3-sdk-object-lock-routes.d.ts +10 -0
  438. package/dist/service/s3/sdk/sim-s3-sdk-object-lock-routes.js +28 -0
  439. package/dist/service/s3/sdk/sim-s3-sdk-object-routes.d.ts +7 -0
  440. package/dist/service/s3/sdk/sim-s3-sdk-object-routes.js +80 -0
  441. package/dist/service/s3/sim-s3-commands.d.ts +4 -0
  442. package/dist/service/s3/sim-s3-commands.js +6 -0
  443. package/dist/service/s3/sim-s3-operations.d.ts +5 -5
  444. package/dist/service/s3/sim-s3-operations.js +5 -6
  445. package/dist/service/s3/sim-s3-version-operations.d.ts +32 -0
  446. package/dist/service/s3/sim-s3-version-operations.js +45 -0
  447. package/dist/service/scheduler/command/schedule/schedule.command.d.ts +9 -2
  448. package/dist/service/scheduler/command/schedule/sim-scheduler-described-schedule.js +2 -0
  449. package/dist/service/scheduler/command/schedule/sim-scheduler-unsimulated-target.js +0 -6
  450. package/dist/service/scheduler/command/sim-scheduler-command.types.d.ts +1 -1
  451. package/dist/service/scheduler/command/sim-scheduler-commands.js +1 -0
  452. package/dist/service/scheduler/delivery/sim-aws-scheduler-dead-letters.d.ts +17 -0
  453. package/dist/service/scheduler/delivery/sim-aws-scheduler-dead-letters.js +29 -0
  454. package/dist/service/scheduler/delivery/sim-aws-scheduler-delivery-targets.d.ts +6 -1
  455. package/dist/service/scheduler/delivery/sim-aws-scheduler-delivery-targets.js +9 -0
  456. package/dist/service/scheduler/delivery/sim-scheduler-dead-letter-queue.d.ts +18 -0
  457. package/dist/service/scheduler/delivery/sim-scheduler-dead-letter-queue.js +62 -0
  458. package/dist/service/scheduler/delivery/sim-scheduler-delivery-attempt.d.ts +29 -0
  459. package/dist/service/scheduler/delivery/sim-scheduler-delivery-attempt.js +81 -0
  460. package/dist/service/scheduler/delivery/sim-scheduler-delivery-function.js +9 -5
  461. package/dist/service/scheduler/delivery/sim-scheduler-delivery.d.ts +11 -0
  462. package/dist/service/scheduler/delivery/sim-scheduler-no-delivery-targets.d.ts +5 -1
  463. package/dist/service/scheduler/delivery/sim-scheduler-no-delivery-targets.js +8 -0
  464. package/dist/service/scheduler/delivery/sim-scheduler-target-delivery.d.ts +4 -1
  465. package/dist/service/scheduler/delivery/sim-scheduler-target-delivery.js +20 -15
  466. package/dist/service/scheduler/index.d.ts +1 -1
  467. package/dist/service/scheduler/target/sim-scheduler-dead-letter-config.d.ts +15 -0
  468. package/dist/service/scheduler/target/sim-scheduler-dead-letter-config.js +24 -0
  469. package/dist/service/scheduler/target/sim-scheduler-retry-policy.d.ts +20 -0
  470. package/dist/service/scheduler/target/sim-scheduler-retry-policy.js +37 -0
  471. package/dist/service/scheduler/target/sim-scheduler-target.d.ts +6 -0
  472. package/dist/service/scheduler/target/sim-scheduler-target.js +12 -0
  473. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-commands.js +13 -5
  474. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.d.ts +1 -1
  475. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.js +9 -9
  476. package/dist/service/ses/command/send/send.command.d.ts +10 -1
  477. package/dist/service/ses/command/send/sim-ses-read-content.d.ts +2 -1
  478. package/dist/service/ses/command/send/sim-ses-send-email.js +1 -0
  479. package/dist/service/ses/command/send/sim-ses-service-send.js +1 -0
  480. package/dist/service/ses/command/send/sim-ses-simple-content.js +26 -5
  481. package/dist/service/ses/command/send/sim-ses-template-send.js +1 -0
  482. package/dist/service/ses/command/suppression/suppression.command.d.ts +3 -2
  483. package/dist/service/ses/configuration-set/sim-ses-configuration-set.d.ts +9 -10
  484. package/dist/service/ses/configuration-set/sim-ses-configuration-set.js +7 -8
  485. package/dist/service/ses/email/sim-ses-sent-email-store.d.ts +8 -0
  486. package/dist/service/ses/email/sim-ses-sent-email-store.js +17 -0
  487. package/dist/service/ses/email/sim-ses-sent-email.d.ts +18 -0
  488. package/dist/service/ses/email/sim-ses-sent-email.js +3 -0
  489. package/dist/service/ses/error/sim-ses.error.d.ts +10 -0
  490. package/dist/service/ses/error/sim-ses.error.js +10 -0
  491. package/dist/service/ses/feedback/sim-ses-feedback-recorder.d.ts +34 -0
  492. package/dist/service/ses/feedback/sim-ses-feedback-recorder.js +55 -0
  493. package/dist/service/ses/index.d.ts +3 -2
  494. package/dist/service/ses/index.js +2 -1
  495. package/dist/service/ses/sim-ses-commands.d.ts +2 -0
  496. package/dist/service/ses/sim-ses-commands.js +9 -0
  497. package/dist/service/ses/sim-ses-configuration-sets.d.ts +4 -4
  498. package/dist/service/ses/sim-ses-configuration-sets.js +4 -4
  499. package/dist/service/ses/sim-ses-suppression.d.ts +3 -2
  500. package/dist/service/ses/sim-ses-suppression.js +3 -2
  501. package/dist/service/ses/sim-ses-v2.d.ts +13 -0
  502. package/dist/service/ses/sim-ses-v2.js +13 -0
  503. package/dist/service/ses/suppression/sim-ses-suppressed-destination.d.ts +3 -4
  504. package/dist/service/ses/suppression/sim-ses-suppressed-destination.js +3 -4
  505. package/dist/service/ses/suppression/sim-ses-suppression-list.d.ts +4 -4
  506. package/dist/service/ses/suppression/sim-ses-suppression-list.js +4 -4
  507. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-encryption-rules.d.ts +15 -0
  508. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-encryption-rules.js +33 -0
  509. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.d.ts +16 -0
  510. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.js +33 -1
  511. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-names.d.ts +12 -6
  512. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-names.js +18 -13
  513. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.d.ts +1 -0
  514. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.js +9 -1
  515. package/dist/terraform/map/sim-tf-map-sqs-redrive.d.ts +4 -3
  516. package/dist/terraform/map/sim-tf-map-sqs-redrive.js +4 -3
  517. package/docs/README.md +1 -0
  518. package/docs/services/backup/README.md +553 -0
  519. package/docs/services/cloudformation/README.md +16 -6
  520. package/docs/services/cloudwatch/README.md +159 -3
  521. package/docs/services/cognito/README.md +370 -7
  522. package/docs/services/lambda/README.md +28 -0
  523. package/docs/services/logs/README.md +284 -3
  524. package/docs/services/s3/README.md +463 -20
  525. package/docs/services/scheduler/README.md +48 -9
  526. package/docs/services/ses/README.md +164 -41
  527. package/docs/services/sqs/README.md +47 -10
  528. package/llms.txt +1 -0
  529. package/package.json +7 -2
@@ -0,0 +1,36 @@
1
+ /**
2
+ * The kinds of request a pool counts, and can be told to turn away.
3
+ *
4
+ * These are the four real Cognito keeps a `*Successes` and a `*Throttles`
5
+ * metric for. The operation names the pair rather than either metric, because
6
+ * one request writes to both.
7
+ */
8
+ export type SimCognitoThrottledOperation = "SignIn" | "SignUp" | "TokenRefresh" | "Federation";
9
+ /**
10
+ * How many requests of each kind a pool has been told to turn away.
11
+ *
12
+ * Real Cognito turns a request away when the account has gone over a rate
13
+ * limit, and those limits are per account and mostly undocumented. Working one
14
+ * out here would be inventing a number, and a test asserting against an
15
+ * invented number proves nothing about a real pool. So a test says how many
16
+ * requests to refuse instead, and the pool refuses that many and no more.
17
+ *
18
+ * A pool refuses nothing until a test asks it to.
19
+ */
20
+ export declare class SimCognitoRequestThrottle {
21
+ #private;
22
+ /** Turn away the next `count` sign-in requests. */
23
+ signIns(count: number): void;
24
+ /** Turn away the next `count` registrations. */
25
+ signUps(count: number): void;
26
+ /** Turn away the next `count` renewals from a refresh token. */
27
+ tokenRefreshes(count: number): void;
28
+ /** Turn away the next `count` sign-ins through an identity provider. */
29
+ federations(count: number): void;
30
+ /**
31
+ * Take one refusal for this operation, answering with whether there was one
32
+ * to take. A request that takes one is the request being turned away.
33
+ */
34
+ takesOne(operation: SimCognitoThrottledOperation): boolean;
35
+ private queue;
36
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * How many requests of each kind a pool has been told to turn away.
3
+ *
4
+ * Real Cognito turns a request away when the account has gone over a rate
5
+ * limit, and those limits are per account and mostly undocumented. Working one
6
+ * out here would be inventing a number, and a test asserting against an
7
+ * invented number proves nothing about a real pool. So a test says how many
8
+ * requests to refuse instead, and the pool refuses that many and no more.
9
+ *
10
+ * A pool refuses nothing until a test asks it to.
11
+ */
12
+ export class SimCognitoRequestThrottle {
13
+ #queued = new Map();
14
+ /** Turn away the next `count` sign-in requests. */
15
+ signIns(count) {
16
+ this.queue("SignIn", count);
17
+ }
18
+ /** Turn away the next `count` registrations. */
19
+ signUps(count) {
20
+ this.queue("SignUp", count);
21
+ }
22
+ /** Turn away the next `count` renewals from a refresh token. */
23
+ tokenRefreshes(count) {
24
+ this.queue("TokenRefresh", count);
25
+ }
26
+ /** Turn away the next `count` sign-ins through an identity provider. */
27
+ federations(count) {
28
+ this.queue("Federation", count);
29
+ }
30
+ /**
31
+ * Take one refusal for this operation, answering with whether there was one
32
+ * to take. A request that takes one is the request being turned away.
33
+ */
34
+ takesOne(operation) {
35
+ const left = this.#queued.get(operation) ?? 0;
36
+ if (left < 1) {
37
+ return false;
38
+ }
39
+ this.#queued.set(operation, left - 1);
40
+ return true;
41
+ }
42
+ queue(operation, count) {
43
+ this.#queued.set(operation, (this.#queued.get(operation) ?? 0) + count);
44
+ }
45
+ }
@@ -1,13 +1,24 @@
1
+ import type { SimCognitoUserPoolClient } from "../client/sim-cognito-user-pool-client.js";
1
2
  import type { SimCognitoUserPool } from "../sim-cognito-user-pool.js";
3
+ import type { SimCognitoUserPoolTriggers } from "../trigger/sim-cognito-user-pool-triggers.js";
2
4
  import type { SimCognitoUser } from "../user/sim-cognito-user.js";
3
5
  import type { SimCognitoUserFactory } from "../user/sim-cognito-user-factory.js";
6
+ import type { SimCognitoExternalUser } from "./sim-cognito-external-user.js";
4
7
  import type { SimCognitoUserPoolIdentityProvider } from "./sim-cognito-user-pool-identity-provider.js";
5
8
  interface SimCognitoFederatedSignInProperties {
6
9
  readonly userFactory: SimCognitoUserFactory;
10
+ readonly triggers: SimCognitoUserPoolTriggers;
7
11
  }
8
12
  interface SimCognitoFederatedSignInRequest {
9
13
  readonly pool: SimCognitoUserPool;
14
+ readonly client: SimCognitoUserPoolClient;
10
15
  readonly provider: SimCognitoUserPoolIdentityProvider;
16
+ /**
17
+ * Who the provider is signing in, which the caller settled before getting
18
+ * here: the user `signInAs` put at the provider, or the one the stand-in
19
+ * page for it posted back.
20
+ */
21
+ readonly externalUser: SimCognitoExternalUser;
11
22
  readonly now: Date;
12
23
  }
13
24
  /**
@@ -24,23 +35,45 @@ interface SimCognitoFederatedSignInRequest {
24
35
  * The provider's claims reach the user through the provider's attribute
25
36
  * mapping, on every sign-in rather than only the first, because real Cognito
26
37
  * updates a mapped attribute when the value at the provider changes.
38
+ *
39
+ * Which triggers fire depends on whether the pool has met this subject before.
40
+ * A first sign-in is a sign-up, and runs `PreSignUp` and `PostConfirmation`.
41
+ * Every sign-in after it is an authentication, and runs `PreAuthentication`
42
+ * and `PostAuthentication`. That is the split AWS documents for federated
43
+ * users, and it means a handler creating a profile record on first sight of a
44
+ * user runs once for a Google user rather than on every visit.
27
45
  */
28
46
  export declare class SimCognitoFederatedSignIn {
29
47
  private readonly userFactory;
48
+ private readonly triggers;
30
49
  constructor(properties: SimCognitoFederatedSignInProperties);
31
50
  /**
32
- * Refuse a sign-in that would take over a user it did not create.
51
+ * Sign the user signed in at the provider in to the pool.
52
+ */
53
+ signIn(request: SimCognitoFederatedSignInRequest): Promise<SimCognitoUser>;
54
+ /**
55
+ * Sign in a subject the pool already holds a user for.
56
+ *
57
+ * `PreAuthentication` runs before the mapped attributes are brought up to
58
+ * date, so a handler that refuses the sign-in leaves the user as it was.
33
59
  *
34
- * A username is only reserved by being taken, and a pool's own user may
35
- * validly be called `Google_1234`, so the user found by name is only the
36
- * federated one when its identity says so. Signing in as it otherwise would
37
- * hand an application a token for someone else's account, which is worth
38
- * refusing rather than guessing at.
60
+ * A disabled user is refused after that trigger and not before it, which is
61
+ * the order the API sign-ins use: real Cognito hands the trigger the user to
62
+ * decide about, and a sign-in the pool is going to refuse reaches it too.
39
63
  */
40
- private static requireSameIdentity;
64
+ private returningUser;
41
65
  /**
42
- * Sign the user signed in at the provider in to the pool.
66
+ * Build and sign in the pool's user for a subject it has never seen.
67
+ *
68
+ * The order is the sign-up's order. `PreSignUp` runs on a user that is not
69
+ * in the pool yet, so a handler that throws leaves the pool without it, and
70
+ * `PostConfirmation` runs on the user the pool now holds.
71
+ *
72
+ * `autoConfirmUser` has nothing to do here. A federated user is created in
73
+ * `EXTERNAL_PROVIDER` and never passes through `UNCONFIRMED`, so there is no
74
+ * confirmation for a handler to skip. `autoVerifyEmail` and `autoVerifyPhone`
75
+ * are applied, as they are for a sign-up.
43
76
  */
44
- signIn(request: SimCognitoFederatedSignInRequest): SimCognitoUser;
77
+ private newUser;
45
78
  }
46
79
  export {};
@@ -1,6 +1,8 @@
1
- import { SimCognitoUsernameExistsException } from "../../error/sim-cognito.error.js";
2
- import { requireSimCognitoUsername } from "../user/sim-cognito-username.js";
1
+ import { requireSimCognitoEnabled } from "../auth/sim-cognito-sign-in.js";
2
+ import { requireSimCognitoUsername, } from "../user/sim-cognito-username.js";
3
3
  import { SimCognitoFederatedIdentity } from "./sim-cognito-federated-identity.js";
4
+ import { SimCognitoFederatedTriggers } from "./sim-cognito-federated-triggers.js";
5
+ import { requireSimCognitoSameFederatedIdentity } from "./sim-cognito-same-federated-identity.js";
4
6
  /**
5
7
  * Signs an external user in to a pool, creating the pool's own user for it the
6
8
  * first time.
@@ -15,45 +17,69 @@ import { SimCognitoFederatedIdentity } from "./sim-cognito-federated-identity.js
15
17
  * The provider's claims reach the user through the provider's attribute
16
18
  * mapping, on every sign-in rather than only the first, because real Cognito
17
19
  * updates a mapped attribute when the value at the provider changes.
20
+ *
21
+ * Which triggers fire depends on whether the pool has met this subject before.
22
+ * A first sign-in is a sign-up, and runs `PreSignUp` and `PostConfirmation`.
23
+ * Every sign-in after it is an authentication, and runs `PreAuthentication`
24
+ * and `PostAuthentication`. That is the split AWS documents for federated
25
+ * users, and it means a handler creating a profile record on first sight of a
26
+ * user runs once for a Google user rather than on every visit.
18
27
  */
19
28
  export class SimCognitoFederatedSignIn {
20
29
  userFactory;
30
+ triggers;
21
31
  constructor(properties) {
22
32
  this.userFactory = properties.userFactory;
23
- }
24
- /**
25
- * Refuse a sign-in that would take over a user it did not create.
26
- *
27
- * A username is only reserved by being taken, and a pool's own user may
28
- * validly be called `Google_1234`, so the user found by name is only the
29
- * federated one when its identity says so. Signing in as it otherwise would
30
- * hand an application a token for someone else's account, which is worth
31
- * refusing rather than guessing at.
32
- */
33
- static requireSameIdentity(existing, provider) {
34
- const { identity } = existing;
35
- const externalUser = provider.requireSignedInUser();
36
- if (identity?.providerName !== provider.name ||
37
- identity.userId !== externalUser.subject) {
38
- throw new SimCognitoUsernameExistsException(`User ${existing.username} already exists in user pool ` +
39
- `${provider.userPoolId} and is not the ${provider.name} user this ` +
40
- `sign-in is for.`);
41
- }
33
+ this.triggers = new SimCognitoFederatedTriggers({
34
+ triggers: properties.triggers,
35
+ });
42
36
  }
43
37
  /**
44
38
  * Sign the user signed in at the provider in to the pool.
45
39
  */
46
- signIn(request) {
47
- const { pool, provider, now } = request;
48
- const externalUser = provider.requireSignedInUser();
40
+ async signIn(request) {
41
+ const { pool, provider, externalUser } = request;
49
42
  const username = requireSimCognitoUsername(`${provider.name}_${externalUser.subject}`);
50
43
  const attributes = provider.attributeMapping.attributesFor(externalUser);
51
44
  const existing = pool.findUser(username);
52
45
  if (existing !== undefined) {
53
- SimCognitoFederatedSignIn.requireSameIdentity(existing, provider);
54
- existing.updateAttributes(attributes);
55
- return existing;
46
+ requireSimCognitoSameFederatedIdentity(existing, provider, externalUser);
47
+ return this.returningUser(request, existing, attributes);
56
48
  }
49
+ return this.newUser(request, username, attributes);
50
+ }
51
+ /**
52
+ * Sign in a subject the pool already holds a user for.
53
+ *
54
+ * `PreAuthentication` runs before the mapped attributes are brought up to
55
+ * date, so a handler that refuses the sign-in leaves the user as it was.
56
+ *
57
+ * A disabled user is refused after that trigger and not before it, which is
58
+ * the order the API sign-ins use: real Cognito hands the trigger the user to
59
+ * decide about, and a sign-in the pool is going to refuse reaches it too.
60
+ */
61
+ async returningUser(request, user, attributes) {
62
+ const { pool, client } = request;
63
+ await this.triggers.beforeSignIn({ pool, client, user });
64
+ requireSimCognitoEnabled(user);
65
+ user.updateAttributes(attributes);
66
+ await this.triggers.afterSignIn({ pool, client, user });
67
+ return user;
68
+ }
69
+ /**
70
+ * Build and sign in the pool's user for a subject it has never seen.
71
+ *
72
+ * The order is the sign-up's order. `PreSignUp` runs on a user that is not
73
+ * in the pool yet, so a handler that throws leaves the pool without it, and
74
+ * `PostConfirmation` runs on the user the pool now holds.
75
+ *
76
+ * `autoConfirmUser` has nothing to do here. A federated user is created in
77
+ * `EXTERNAL_PROVIDER` and never passes through `UNCONFIRMED`, so there is no
78
+ * confirmation for a handler to skip. `autoVerifyEmail` and `autoVerifyPhone`
79
+ * are applied, as they are for a sign-up.
80
+ */
81
+ async newUser(request, username, attributes) {
82
+ const { pool, client, provider, externalUser, now } = request;
57
83
  const user = this.userFactory.federated({
58
84
  username,
59
85
  attributes,
@@ -66,7 +92,10 @@ export class SimCognitoFederatedSignIn {
66
92
  createdAt: now,
67
93
  }),
68
94
  });
95
+ const preSignUp = await this.triggers.beforeSignUp({ pool, client, user });
96
+ preSignUp.verifyAttributesOf(user);
69
97
  pool.addUser(user);
98
+ await this.triggers.afterSignUp({ pool, client, user });
70
99
  return user;
71
100
  }
72
101
  }
@@ -0,0 +1,52 @@
1
+ import type { SimCognitoUserPoolClient } from "../client/sim-cognito-user-pool-client.js";
2
+ import type { SimCognitoUserPool } from "../sim-cognito-user-pool.js";
3
+ import type { SimCognitoPreSignUpResponse } from "../trigger/sim-cognito-pre-sign-up-response.js";
4
+ import type { SimCognitoUserPoolTriggers } from "../trigger/sim-cognito-user-pool-triggers.js";
5
+ import type { SimCognitoUser } from "../user/sim-cognito-user.js";
6
+ interface SimCognitoFederatedTriggersProperties {
7
+ readonly triggers: SimCognitoUserPoolTriggers;
8
+ }
9
+ interface SimCognitoFederatedTriggerContext {
10
+ readonly pool: SimCognitoUserPool;
11
+ readonly client: SimCognitoUserPoolClient;
12
+ readonly user: SimCognitoUser;
13
+ }
14
+ /**
15
+ * The triggers a sign-in at an identity provider runs, in the order they run.
16
+ *
17
+ * AWS documents two sets. A subject the pool has never seen is signing up, and
18
+ * runs `PreSignUp` and then `PostConfirmation`. A subject it already holds a
19
+ * user for is authenticating, and runs `PreAuthentication` and then
20
+ * `PostAuthentication`. Keeping the pair here rather than in the sign-in makes
21
+ * the two sequences the whole of what this says.
22
+ */
23
+ export declare class SimCognitoFederatedTriggers {
24
+ private readonly triggers;
25
+ constructor(properties: SimCognitoFederatedTriggersProperties);
26
+ /**
27
+ * Run the trigger that guards a first sign-in, and answer with what its
28
+ * handler asked for.
29
+ *
30
+ * It runs on a user the pool has yet to be given, so a handler that throws
31
+ * leaves the pool without it.
32
+ */
33
+ beforeSignUp(context: SimCognitoFederatedTriggerContext): Promise<SimCognitoPreSignUpResponse>;
34
+ /**
35
+ * Run the trigger that follows a first sign-in, on the user the pool now
36
+ * holds.
37
+ *
38
+ * The source is the one a local confirmation reports, so an application
39
+ * writing its own user record from that handler writes one for a federated
40
+ * user without adding anything.
41
+ */
42
+ afterSignUp(context: SimCognitoFederatedTriggerContext): Promise<void>;
43
+ /**
44
+ * Run the trigger that guards a sign-in by a subject the pool already knows.
45
+ */
46
+ beforeSignIn(context: SimCognitoFederatedTriggerContext): Promise<void>;
47
+ /**
48
+ * Run the trigger that follows one.
49
+ */
50
+ afterSignIn(context: SimCognitoFederatedTriggerContext): Promise<void>;
51
+ }
52
+ export {};
@@ -0,0 +1,49 @@
1
+ import { SimCognitoTriggerOccasion } from "../trigger/sim-cognito-trigger-occasion.js";
2
+ /**
3
+ * The triggers a sign-in at an identity provider runs, in the order they run.
4
+ *
5
+ * AWS documents two sets. A subject the pool has never seen is signing up, and
6
+ * runs `PreSignUp` and then `PostConfirmation`. A subject it already holds a
7
+ * user for is authenticating, and runs `PreAuthentication` and then
8
+ * `PostAuthentication`. Keeping the pair here rather than in the sign-in makes
9
+ * the two sequences the whole of what this says.
10
+ */
11
+ export class SimCognitoFederatedTriggers {
12
+ triggers;
13
+ constructor(properties) {
14
+ this.triggers = properties.triggers;
15
+ }
16
+ /**
17
+ * Run the trigger that guards a first sign-in, and answer with what its
18
+ * handler asked for.
19
+ *
20
+ * It runs on a user the pool has yet to be given, so a handler that throws
21
+ * leaves the pool without it.
22
+ */
23
+ async beforeSignUp(context) {
24
+ return this.triggers.preSignUp(SimCognitoTriggerOccasion.externalProviderSignUp, context);
25
+ }
26
+ /**
27
+ * Run the trigger that follows a first sign-in, on the user the pool now
28
+ * holds.
29
+ *
30
+ * The source is the one a local confirmation reports, so an application
31
+ * writing its own user record from that handler writes one for a federated
32
+ * user without adding anything.
33
+ */
34
+ async afterSignUp(context) {
35
+ await this.triggers.postConfirmation(SimCognitoTriggerOccasion.confirmSignUp, context);
36
+ }
37
+ /**
38
+ * Run the trigger that guards a sign-in by a subject the pool already knows.
39
+ */
40
+ async beforeSignIn(context) {
41
+ await this.triggers.preAuthentication(context);
42
+ }
43
+ /**
44
+ * Run the trigger that follows one.
45
+ */
46
+ async afterSignIn(context) {
47
+ await this.triggers.postAuthentication(context);
48
+ }
49
+ }
@@ -0,0 +1,48 @@
1
+ import type { SimCognitoAuthorizeInput } from "../../command/hosted/hosted-auth.command.js";
2
+ import { SimCognitoExternalUser } from "./sim-cognito-external-user.js";
3
+ import type { SimCognitoUserPoolIdentityProvider } from "./sim-cognito-user-pool-identity-provider.js";
4
+ /**
5
+ * What a claim field is called on the stand-in provider page.
6
+ *
7
+ * The names after it are the provider's own claim names, so they are prefixed
8
+ * to keep them apart from the authorize parameters the form posts beside them.
9
+ */
10
+ export declare const simCognitoClaimFieldPrefix = "claim_";
11
+ /**
12
+ * The claim names a provider's attribute mapping reads.
13
+ *
14
+ * The mapping is keyed by pool attribute and valued by claim, so the values
15
+ * are what a provider would have asserted and what the page asks for.
16
+ */
17
+ export declare function simCognitoMappedClaimNames(provider: SimCognitoUserPoolIdentityProvider): readonly string[];
18
+ /**
19
+ * What one claim field is pre-filled with, so that the page signs a user in
20
+ * when nobody edits it.
21
+ *
22
+ * An address has to look like one, because a pool that verifies or aliases by
23
+ * email holds it to that. Everything else is a name as far as this knows.
24
+ */
25
+ export declare function simCognitoDefaultClaim(claimName: string): string;
26
+ /**
27
+ * The subject the page pre-fills, which says on its face where it came from.
28
+ */
29
+ export declare function simCognitoDefaultSubject(provider: SimCognitoUserPoolIdentityProvider): string;
30
+ /**
31
+ * The external user an authorize request presented, where it presented one.
32
+ *
33
+ * This is the stand-in page for a provider coming back. Nothing is kept on the
34
+ * provider afterwards, because real Cognito asks the provider afresh on every
35
+ * authorize request, and `signInAs` stays what a test says it with.
36
+ */
37
+ export declare function simCognitoPresentedExternalUser(input: SimCognitoAuthorizeInput): SimCognitoExternalUser | undefined;
38
+ /**
39
+ * Who a provider is signing in for one authorize request.
40
+ *
41
+ * A request presenting a subject of its own is the stand-in page for the
42
+ * provider coming back, and it wins, because real Cognito asks the provider
43
+ * afresh every time rather than remembering the last answer. Where it presents
44
+ * none, the user `signInAs` put at the provider signs in. Where there is
45
+ * neither, the request is refused with what a served domain draws that page
46
+ * from.
47
+ */
48
+ export declare function requireSimCognitoSigningInAt(provider: SimCognitoUserPoolIdentityProvider, input: SimCognitoAuthorizeInput): SimCognitoExternalUser;
@@ -0,0 +1,94 @@
1
+ import { SimCognitoProviderSignInRequired } from "../../error/sim-cognito-managed-login.error.js";
2
+ import { SimCognitoExternalUser } from "./sim-cognito-external-user.js";
3
+ /**
4
+ * What a claim field is called on the stand-in provider page.
5
+ *
6
+ * The names after it are the provider's own claim names, so they are prefixed
7
+ * to keep them apart from the authorize parameters the form posts beside them.
8
+ */
9
+ export const simCognitoClaimFieldPrefix = "claim_";
10
+ /**
11
+ * The address a claim the page reads as an email address is pre-filled with.
12
+ *
13
+ * `example.com` is reserved for exactly this, so nothing a person leaves
14
+ * unedited can reach a real mailbox.
15
+ */
16
+ const defaultAddress = "someone@example.com";
17
+ /**
18
+ * What every other claim is pre-filled with.
19
+ */
20
+ const defaultClaimValue = "Someone";
21
+ /**
22
+ * The claim names a provider's attribute mapping reads.
23
+ *
24
+ * The mapping is keyed by pool attribute and valued by claim, so the values
25
+ * are what a provider would have asserted and what the page asks for.
26
+ */
27
+ export function simCognitoMappedClaimNames(provider) {
28
+ return [...new Set(Object.values(provider.attributeMapping.toOutput()))];
29
+ }
30
+ /**
31
+ * What one claim field is pre-filled with, so that the page signs a user in
32
+ * when nobody edits it.
33
+ *
34
+ * An address has to look like one, because a pool that verifies or aliases by
35
+ * email holds it to that. Everything else is a name as far as this knows.
36
+ */
37
+ export function simCognitoDefaultClaim(claimName) {
38
+ return claimName.toLowerCase().includes("email")
39
+ ? defaultAddress
40
+ : defaultClaimValue;
41
+ }
42
+ /**
43
+ * The subject the page pre-fills, which says on its face where it came from.
44
+ */
45
+ export function simCognitoDefaultSubject(provider) {
46
+ return `simulated-${provider.name.toLowerCase()}-subject`;
47
+ }
48
+ /**
49
+ * The external user an authorize request presented, where it presented one.
50
+ *
51
+ * This is the stand-in page for a provider coming back. Nothing is kept on the
52
+ * provider afterwards, because real Cognito asks the provider afresh on every
53
+ * authorize request, and `signInAs` stays what a test says it with.
54
+ */
55
+ export function simCognitoPresentedExternalUser(input) {
56
+ const { subject } = input;
57
+ if (subject === undefined || subject === "") {
58
+ return undefined;
59
+ }
60
+ return new SimCognitoExternalUser({
61
+ Subject: subject,
62
+ Claims: simCognitoPresentedClaims(input),
63
+ });
64
+ }
65
+ /**
66
+ * Who a provider is signing in for one authorize request.
67
+ *
68
+ * A request presenting a subject of its own is the stand-in page for the
69
+ * provider coming back, and it wins, because real Cognito asks the provider
70
+ * afresh every time rather than remembering the last answer. Where it presents
71
+ * none, the user `signInAs` put at the provider signs in. Where there is
72
+ * neither, the request is refused with what a served domain draws that page
73
+ * from.
74
+ */
75
+ export function requireSimCognitoSigningInAt(provider, input) {
76
+ const presented = simCognitoPresentedExternalUser(input) ?? provider.signedInUser;
77
+ if (presented === undefined) {
78
+ throw new SimCognitoProviderSignInRequired(provider.name);
79
+ }
80
+ return presented;
81
+ }
82
+ /**
83
+ * The claims a posted form carried, by the provider's own claim names.
84
+ */
85
+ function simCognitoPresentedClaims(input) {
86
+ const claims = {};
87
+ const fields = Object.entries(input);
88
+ for (const [name, value] of fields) {
89
+ if (value !== undefined && name.startsWith(simCognitoClaimFieldPrefix)) {
90
+ claims[name.slice(simCognitoClaimFieldPrefix.length)] = value;
91
+ }
92
+ }
93
+ return claims;
94
+ }
@@ -0,0 +1,13 @@
1
+ import type { SimCognitoUser } from "../user/sim-cognito-user.js";
2
+ import type { SimCognitoExternalUser } from "./sim-cognito-external-user.js";
3
+ import type { SimCognitoUserPoolIdentityProvider } from "./sim-cognito-user-pool-identity-provider.js";
4
+ /**
5
+ * Refuse a federated sign-in that would take over a user it did not create.
6
+ *
7
+ * A username is only reserved by being taken, and a pool's own user may validly
8
+ * be called `Google_1234`, so the user found by name is the federated one only
9
+ * when its identity says so. Signing in as it otherwise would hand an
10
+ * application a token for someone else's account, which is worth refusing
11
+ * rather than guessing at.
12
+ */
13
+ export declare function requireSimCognitoSameFederatedIdentity(existing: SimCognitoUser, provider: SimCognitoUserPoolIdentityProvider, externalUser: SimCognitoExternalUser): void;
@@ -0,0 +1,19 @@
1
+ import { SimCognitoUsernameExistsException } from "../../error/sim-cognito.error.js";
2
+ /**
3
+ * Refuse a federated sign-in that would take over a user it did not create.
4
+ *
5
+ * A username is only reserved by being taken, and a pool's own user may validly
6
+ * be called `Google_1234`, so the user found by name is the federated one only
7
+ * when its identity says so. Signing in as it otherwise would hand an
8
+ * application a token for someone else's account, which is worth refusing
9
+ * rather than guessing at.
10
+ */
11
+ export function requireSimCognitoSameFederatedIdentity(existing, provider, externalUser) {
12
+ const { identity } = existing;
13
+ if (identity?.providerName !== provider.name ||
14
+ identity.userId !== externalUser.subject) {
15
+ throw new SimCognitoUsernameExistsException(`User ${existing.username} already exists in user pool ` +
16
+ `${provider.userPoolId} and is not the ${provider.name} user this ` +
17
+ `sign-in is for.`);
18
+ }
19
+ }
@@ -69,6 +69,13 @@ export declare class SimCognitoUserPoolIdentityProvider {
69
69
  * Sign out of this provider, so a further authorize request finds nobody.
70
70
  */
71
71
  signOut(): void;
72
+ /**
73
+ * The user signed in at this provider, where anything has put one there.
74
+ *
75
+ * A request that presents an external user of its own reads this first, to
76
+ * find out whether it has to ask for one.
77
+ */
78
+ get signedInUser(): SimCognitoExternalUser | undefined;
72
79
  /**
73
80
  * The user this provider signs in, or a refusal.
74
81
  *
@@ -88,6 +88,15 @@ export class SimCognitoUserPoolIdentityProvider {
88
88
  signOut() {
89
89
  this.externalUser = undefined;
90
90
  }
91
+ /**
92
+ * The user signed in at this provider, where anything has put one there.
93
+ *
94
+ * A request that presents an external user of its own reads this first, to
95
+ * find out whether it has to ask for one.
96
+ */
97
+ get signedInUser() {
98
+ return this.externalUser;
99
+ }
91
100
  /**
92
101
  * The user this provider signs in, or a refusal.
93
102
  *
@@ -3,8 +3,9 @@
3
3
  *
4
4
  * These are the ones that fire around a sign-up, around a sign-in, around a
5
5
  * message, and over the tokens a sign-in hands out, which is the part of a
6
- * user's life this simulation has. A pool federates with nobody, so the
7
- * federation triggers would never run whatever a pool named for them.
6
+ * user's life this simulation has. A federated sign-in reaches four of them,
7
+ * under the sources real Cognito reports for a user arriving from an identity
8
+ * provider.
8
9
  */
9
10
  export declare const simCognitoTriggerNames: readonly ["PreSignUp", "PostConfirmation", "PreAuthentication", "PostAuthentication", "PreTokenGeneration", "CustomMessage"];
10
11
  export type SimCognitoTriggerName = (typeof simCognitoTriggerNames)[number];
@@ -3,8 +3,9 @@
3
3
  *
4
4
  * These are the ones that fire around a sign-up, around a sign-in, around a
5
5
  * message, and over the tokens a sign-in hands out, which is the part of a
6
- * user's life this simulation has. A pool federates with nobody, so the
7
- * federation triggers would never run whatever a pool named for them.
6
+ * user's life this simulation has. A federated sign-in reaches four of them,
7
+ * under the sources real Cognito reports for a user arriving from an identity
8
+ * provider.
8
9
  */
9
10
  export const simCognitoTriggerNames = [
10
11
  "PreSignUp",
@@ -25,6 +25,15 @@ export declare class SimCognitoTriggerOccasion {
25
25
  * confirmation.
26
26
  */
27
27
  static readonly adminCreateUser: SimCognitoTriggerOccasion;
28
+ /**
29
+ * An external subject signing in at an identity provider for the first time.
30
+ *
31
+ * Real Cognito builds the pool's own user for a federated subject through
32
+ * the sign-up path, so the trigger that guards a sign-up guards this too.
33
+ * The attributes it carries are the ones the provider's `AttributeMapping`
34
+ * produced, which is what the handler has to decide on.
35
+ */
36
+ static readonly externalProviderSignUp: SimCognitoTriggerOccasion;
28
37
  /**
29
38
  * A signed-up user reaching `CONFIRMED`.
30
39
  *
@@ -53,6 +62,14 @@ export declare class SimCognitoTriggerOccasion {
53
62
  * The tokens a sign-in hands out.
54
63
  */
55
64
  static readonly tokenGeneration: SimCognitoTriggerOccasion;
65
+ /**
66
+ * The tokens a sign-in at an identity provider hands out.
67
+ *
68
+ * Real Cognito reports this source for a federated grant alone. A local
69
+ * user signing in at managed login reports `TokenGeneration_Authentication`,
70
+ * the same source its API sign-in reports.
71
+ */
72
+ static readonly hostedTokenGeneration: SimCognitoTriggerOccasion;
56
73
  /**
57
74
  * The tokens handed out where a sign-in finishes by answering the new
58
75
  * password challenge.
@@ -99,7 +116,7 @@ export declare class SimCognitoTriggerOccasion {
99
116
  /**
100
117
  * The `CustomMessage` occasion a message is being sent on.
101
118
  *
102
- * One trigger covers all three, and the source is the only thing telling a
119
+ * One trigger covers all five, and the source is the only thing telling a
103
120
  * handler which it is firing for, so an application customising one message
104
121
  * and not another branches on it.
105
122
  */