@kensio/yulin 0.37.0 → 0.38.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 (488) hide show
  1. package/dist/sdk/router/resolve-sim-sdk-command-router.d.ts.map +1 -1
  2. package/dist/sdk/router/resolve-sim-sdk-command-router.js +3 -0
  3. package/dist/sdk/router/resolve-sim-sdk-command-router.js.map +1 -1
  4. package/dist/serve/controller/sim-service-controller.d.ts +13 -0
  5. package/dist/serve/controller/sim-service-controller.d.ts.map +1 -1
  6. package/dist/serve/controller/sim-service-controller.js.map +1 -1
  7. package/dist/serve/http/url/sim-aws-local-url.d.ts.map +1 -1
  8. package/dist/serve/http/url/sim-aws-local-url.js +5 -1
  9. package/dist/serve/http/url/sim-aws-local-url.js.map +1 -1
  10. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +8 -0
  11. package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
  12. package/dist/service/aws/factory/sim-aws-service-factory.js +14 -0
  13. package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
  14. package/dist/service/aws/sim-aws-account-region-scope.d.ts +5 -0
  15. package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
  16. package/dist/service/aws/sim-aws-account-region-scope.js +6 -0
  17. package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
  18. package/dist/service/aws/sim-aws-account.d.ts +5 -0
  19. package/dist/service/aws/sim-aws-account.d.ts.map +1 -1
  20. package/dist/service/aws/sim-aws-account.js +6 -0
  21. package/dist/service/aws/sim-aws-account.js.map +1 -1
  22. package/dist/service/aws/sim-aws-region.d.ts +5 -0
  23. package/dist/service/aws/sim-aws-region.d.ts.map +1 -1
  24. package/dist/service/aws/sim-aws-region.js +6 -0
  25. package/dist/service/aws/sim-aws-region.js.map +1 -1
  26. package/dist/service/aws/sim-aws-request-authentication.d.ts +35 -0
  27. package/dist/service/aws/sim-aws-request-authentication.d.ts.map +1 -0
  28. package/dist/service/aws/sim-aws-request-authentication.js +32 -0
  29. package/dist/service/aws/sim-aws-request-authentication.js.map +1 -0
  30. package/dist/service/aws/sim-aws.d.ts +7 -21
  31. package/dist/service/aws/sim-aws.d.ts.map +1 -1
  32. package/dist/service/aws/sim-aws.js +15 -26
  33. package/dist/service/aws/sim-aws.js.map +1 -1
  34. package/dist/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.d.ts.map +1 -1
  35. package/dist/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.js +1 -1
  36. package/dist/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.js.map +1 -1
  37. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js +1 -1
  38. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js.map +1 -1
  39. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.d.ts.map +1 -1
  40. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js +2 -1
  41. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js.map +1 -1
  42. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts +56 -0
  43. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts.map +1 -1
  44. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js +66 -0
  45. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js.map +1 -1
  46. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts +7 -1
  47. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts.map +1 -1
  48. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js +11 -1
  49. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js.map +1 -1
  50. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.d.ts +17 -0
  51. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.d.ts.map +1 -0
  52. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.js +24 -0
  53. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.js.map +1 -0
  54. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +10 -0
  55. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts.map +1 -1
  56. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +3 -1
  57. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js.map +1 -1
  58. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts +6 -1
  59. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts.map +1 -1
  60. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js +25 -16
  61. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js.map +1 -1
  62. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts +2 -1
  63. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts.map +1 -1
  64. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js +2 -1
  65. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js.map +1 -1
  66. package/dist/service/iam/authorize/match/sim-iam-principal-match.d.ts +39 -0
  67. package/dist/service/iam/authorize/match/sim-iam-principal-match.d.ts.map +1 -0
  68. package/dist/service/iam/authorize/match/sim-iam-principal-match.js +55 -0
  69. package/dist/service/iam/authorize/match/sim-iam-principal-match.js.map +1 -0
  70. package/dist/service/iam/authorize/sim-iam-decision.d.ts.map +1 -1
  71. package/dist/service/iam/authorize/sim-iam-decision.js +3 -2
  72. package/dist/service/iam/authorize/sim-iam-decision.js.map +1 -1
  73. package/dist/service/iam/index.d.ts +1 -0
  74. package/dist/service/iam/index.d.ts.map +1 -1
  75. package/dist/service/iam/index.js +1 -0
  76. package/dist/service/iam/index.js.map +1 -1
  77. package/dist/service/iam/request/sim-aws-request-caller-resolver.d.ts +21 -5
  78. package/dist/service/iam/request/sim-aws-request-caller-resolver.d.ts.map +1 -1
  79. package/dist/service/iam/request/sim-aws-request-caller-resolver.js +15 -9
  80. package/dist/service/iam/request/sim-aws-request-caller-resolver.js.map +1 -1
  81. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.d.ts +3 -1
  82. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.d.ts.map +1 -1
  83. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.js +6 -4
  84. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.js.map +1 -1
  85. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.d.ts +34 -14
  86. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.d.ts.map +1 -1
  87. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.js +56 -29
  88. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.js.map +1 -1
  89. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.d.ts +13 -1
  90. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.d.ts.map +1 -1
  91. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.js +14 -0
  92. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.js.map +1 -1
  93. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.d.ts +25 -0
  94. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.d.ts.map +1 -0
  95. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.js +41 -0
  96. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.js.map +1 -0
  97. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.d.ts +27 -0
  98. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.d.ts.map +1 -0
  99. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.js +41 -0
  100. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.js.map +1 -0
  101. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.d.ts +39 -0
  102. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.d.ts.map +1 -0
  103. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.js +59 -0
  104. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.js.map +1 -0
  105. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.d.ts +30 -0
  106. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.d.ts.map +1 -0
  107. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.js +64 -0
  108. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.js.map +1 -0
  109. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.d.ts +2 -1
  110. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.d.ts.map +1 -1
  111. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.js.map +1 -1
  112. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.d.ts +22 -1
  113. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.d.ts.map +1 -1
  114. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.js +49 -7
  115. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.js.map +1 -1
  116. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.d.ts +9 -2
  117. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.d.ts.map +1 -1
  118. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.js +5 -5
  119. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.js.map +1 -1
  120. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.d.ts +16 -0
  121. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.d.ts.map +1 -0
  122. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.js +2 -0
  123. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.js.map +1 -0
  124. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.d.ts +12 -3
  125. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.d.ts.map +1 -1
  126. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.js +9 -5
  127. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.js.map +1 -1
  128. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.d.ts +20 -4
  129. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.d.ts.map +1 -1
  130. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.js +52 -6
  131. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.js.map +1 -1
  132. package/dist/service/kms/command/alias/alias.command.d.ts +43 -0
  133. package/dist/service/kms/command/alias/alias.command.d.ts.map +1 -0
  134. package/dist/service/kms/command/alias/alias.command.js +2 -0
  135. package/dist/service/kms/command/alias/alias.command.js.map +1 -0
  136. package/dist/service/kms/command/alias/sim-kms-alias-commands.d.ts +34 -0
  137. package/dist/service/kms/command/alias/sim-kms-alias-commands.d.ts.map +1 -0
  138. package/dist/service/kms/command/alias/sim-kms-alias-commands.js +56 -0
  139. package/dist/service/kms/command/alias/sim-kms-alias-commands.js.map +1 -0
  140. package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts +38 -0
  141. package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts.map +1 -0
  142. package/dist/service/kms/command/authorize/sim-kms-authorizer.js +58 -0
  143. package/dist/service/kms/command/authorize/sim-kms-authorizer.js.map +1 -0
  144. package/dist/service/kms/command/crypto/crypto.command.d.ts +68 -0
  145. package/dist/service/kms/command/crypto/crypto.command.d.ts.map +1 -0
  146. package/dist/service/kms/command/crypto/crypto.command.js +2 -0
  147. package/dist/service/kms/command/crypto/crypto.command.js.map +1 -0
  148. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.d.ts +40 -0
  149. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.d.ts.map +1 -0
  150. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.js +58 -0
  151. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.js.map +1 -0
  152. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.d.ts +38 -0
  153. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.d.ts.map +1 -0
  154. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.js +74 -0
  155. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.js.map +1 -0
  156. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.d.ts +16 -0
  157. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.d.ts.map +1 -0
  158. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.js +50 -0
  159. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.js.map +1 -0
  160. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.d.ts +31 -0
  161. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.d.ts.map +1 -0
  162. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.js +35 -0
  163. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.js.map +1 -0
  164. package/dist/service/kms/command/key/key.command.d.ts +159 -0
  165. package/dist/service/kms/command/key/key.command.d.ts.map +1 -0
  166. package/dist/service/kms/command/key/key.command.js +2 -0
  167. package/dist/service/kms/command/key/key.command.js.map +1 -0
  168. package/dist/service/kms/command/key/sim-kms-key-commands.d.ts +41 -0
  169. package/dist/service/kms/command/key/sim-kms-key-commands.d.ts.map +1 -0
  170. package/dist/service/kms/command/key/sim-kms-key-commands.js +45 -0
  171. package/dist/service/kms/command/key/sim-kms-key-commands.js.map +1 -0
  172. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.d.ts +48 -0
  173. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.d.ts.map +1 -0
  174. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.js +67 -0
  175. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.js.map +1 -0
  176. package/dist/service/kms/command/key/sim-kms-key-policy-commands.d.ts +39 -0
  177. package/dist/service/kms/command/key/sim-kms-key-policy-commands.d.ts.map +1 -0
  178. package/dist/service/kms/command/key/sim-kms-key-policy-commands.js +57 -0
  179. package/dist/service/kms/command/key/sim-kms-key-policy-commands.js.map +1 -0
  180. package/dist/service/kms/command/key/sim-kms-key-type.d.ts +14 -0
  181. package/dist/service/kms/command/key/sim-kms-key-type.d.ts.map +1 -0
  182. package/dist/service/kms/command/key/sim-kms-key-type.js +31 -0
  183. package/dist/service/kms/command/key/sim-kms-key-type.js.map +1 -0
  184. package/dist/service/kms/command/key/sim-kms-list-keys.d.ts +29 -0
  185. package/dist/service/kms/command/key/sim-kms-list-keys.d.ts.map +1 -0
  186. package/dist/service/kms/command/key/sim-kms-list-keys.js +31 -0
  187. package/dist/service/kms/command/key/sim-kms-list-keys.js.map +1 -0
  188. package/dist/service/kms/command/key/sim-kms-pending-window.d.ts +17 -0
  189. package/dist/service/kms/command/key/sim-kms-pending-window.d.ts.map +1 -0
  190. package/dist/service/kms/command/key/sim-kms-pending-window.js +37 -0
  191. package/dist/service/kms/command/key/sim-kms-pending-window.js.map +1 -0
  192. package/dist/service/kms/command/sim-kms-command.types.d.ts +10 -0
  193. package/dist/service/kms/command/sim-kms-command.types.d.ts.map +1 -0
  194. package/dist/service/kms/command/sim-kms-command.types.js +2 -0
  195. package/dist/service/kms/command/sim-kms-command.types.js.map +1 -0
  196. package/dist/service/kms/error/sim-kms.error.d.ts +88 -0
  197. package/dist/service/kms/error/sim-kms.error.d.ts.map +1 -0
  198. package/dist/service/kms/error/sim-kms.error.js +101 -0
  199. package/dist/service/kms/error/sim-kms.error.js.map +1 -0
  200. package/dist/service/kms/index.d.ts +8 -0
  201. package/dist/service/kms/index.d.ts.map +1 -0
  202. package/dist/service/kms/index.js +6 -0
  203. package/dist/service/kms/index.js.map +1 -0
  204. package/dist/service/kms/key/sim-kms-alias.d.ts +45 -0
  205. package/dist/service/kms/key/sim-kms-alias.d.ts.map +1 -0
  206. package/dist/service/kms/key/sim-kms-alias.js +59 -0
  207. package/dist/service/kms/key/sim-kms-alias.js.map +1 -0
  208. package/dist/service/kms/key/sim-kms-ciphertext-blob.d.ts +43 -0
  209. package/dist/service/kms/key/sim-kms-ciphertext-blob.d.ts.map +1 -0
  210. package/dist/service/kms/key/sim-kms-ciphertext-blob.js +89 -0
  211. package/dist/service/kms/key/sim-kms-ciphertext-blob.js.map +1 -0
  212. package/dist/service/kms/key/sim-kms-encryption-context.d.ts +34 -0
  213. package/dist/service/kms/key/sim-kms-encryption-context.d.ts.map +1 -0
  214. package/dist/service/kms/key/sim-kms-encryption-context.js +39 -0
  215. package/dist/service/kms/key/sim-kms-encryption-context.js.map +1 -0
  216. package/dist/service/kms/key/sim-kms-key-factory.d.ts +36 -0
  217. package/dist/service/kms/key/sim-kms-key-factory.d.ts.map +1 -0
  218. package/dist/service/kms/key/sim-kms-key-factory.js +47 -0
  219. package/dist/service/kms/key/sim-kms-key-factory.js.map +1 -0
  220. package/dist/service/kms/key/sim-kms-key-identifier.d.ts +44 -0
  221. package/dist/service/kms/key/sim-kms-key-identifier.d.ts.map +1 -0
  222. package/dist/service/kms/key/sim-kms-key-identifier.js +81 -0
  223. package/dist/service/kms/key/sim-kms-key-identifier.js.map +1 -0
  224. package/dist/service/kms/key/sim-kms-key-lifecycle.d.ts +71 -0
  225. package/dist/service/kms/key/sim-kms-key-lifecycle.d.ts.map +1 -0
  226. package/dist/service/kms/key/sim-kms-key-lifecycle.js +106 -0
  227. package/dist/service/kms/key/sim-kms-key-lifecycle.js.map +1 -0
  228. package/dist/service/kms/key/sim-kms-key-material.d.ts +36 -0
  229. package/dist/service/kms/key/sim-kms-key-material.d.ts.map +1 -0
  230. package/dist/service/kms/key/sim-kms-key-material.js +74 -0
  231. package/dist/service/kms/key/sim-kms-key-material.js.map +1 -0
  232. package/dist/service/kms/key/sim-kms-key-metadata.d.ts +45 -0
  233. package/dist/service/kms/key/sim-kms-key-metadata.d.ts.map +1 -0
  234. package/dist/service/kms/key/sim-kms-key-metadata.js +44 -0
  235. package/dist/service/kms/key/sim-kms-key-metadata.js.map +1 -0
  236. package/dist/service/kms/key/sim-kms-key-policy.d.ts +45 -0
  237. package/dist/service/kms/key/sim-kms-key-policy.d.ts.map +1 -0
  238. package/dist/service/kms/key/sim-kms-key-policy.js +69 -0
  239. package/dist/service/kms/key/sim-kms-key-policy.js.map +1 -0
  240. package/dist/service/kms/key/sim-kms-key-store.d.ts +58 -0
  241. package/dist/service/kms/key/sim-kms-key-store.d.ts.map +1 -0
  242. package/dist/service/kms/key/sim-kms-key-store.js +111 -0
  243. package/dist/service/kms/key/sim-kms-key-store.js.map +1 -0
  244. package/dist/service/kms/key/sim-kms-key.d.ts +88 -0
  245. package/dist/service/kms/key/sim-kms-key.d.ts.map +1 -0
  246. package/dist/service/kms/key/sim-kms-key.js +106 -0
  247. package/dist/service/kms/key/sim-kms-key.js.map +1 -0
  248. package/dist/service/kms/key/sim-kms-policy-document.d.ts +30 -0
  249. package/dist/service/kms/key/sim-kms-policy-document.d.ts.map +1 -0
  250. package/dist/service/kms/key/sim-kms-policy-document.js +54 -0
  251. package/dist/service/kms/key/sim-kms-policy-document.js.map +1 -0
  252. package/dist/service/kms/sdk/sim-kms-sdk-command-router.d.ts +18 -0
  253. package/dist/service/kms/sdk/sim-kms-sdk-command-router.d.ts.map +1 -0
  254. package/dist/service/kms/sdk/sim-kms-sdk-command-router.js +80 -0
  255. package/dist/service/kms/sdk/sim-kms-sdk-command-router.js.map +1 -0
  256. package/dist/service/kms/sim-kms.d.ts +105 -0
  257. package/dist/service/kms/sim-kms.d.ts.map +1 -0
  258. package/dist/service/kms/sim-kms.js +187 -0
  259. package/dist/service/kms/sim-kms.js.map +1 -0
  260. package/dist/service/lambda/command/create-function/create-function.handler.d.ts.map +1 -1
  261. package/dist/service/lambda/command/create-function/create-function.handler.js +3 -0
  262. package/dist/service/lambda/command/create-function/create-function.handler.js.map +1 -1
  263. package/dist/service/lambda/function/code/sim-lambda-code-resolver.d.ts +6 -0
  264. package/dist/service/lambda/function/code/sim-lambda-code-resolver.d.ts.map +1 -1
  265. package/dist/service/lambda/function/code/sim-lambda-code-resolver.js +1 -0
  266. package/dist/service/lambda/function/code/sim-lambda-code-resolver.js.map +1 -1
  267. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +15 -0
  268. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts.map +1 -1
  269. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +5 -0
  270. package/dist/service/lambda/function/code/sim-lambda-executable-code.js.map +1 -1
  271. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.d.ts +3 -0
  272. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.d.ts.map +1 -1
  273. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.js +3 -0
  274. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.js.map +1 -1
  275. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +11 -0
  276. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts.map +1 -1
  277. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +7 -2
  278. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js.map +1 -1
  279. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +6 -5
  280. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts.map +1 -1
  281. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +10 -5
  282. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js.map +1 -1
  283. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.d.ts +53 -0
  284. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.d.ts.map +1 -0
  285. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.js +101 -0
  286. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.js.map +1 -0
  287. package/dist/service/lambda/function/sim-lambda-function.d.ts +8 -0
  288. package/dist/service/lambda/function/sim-lambda-function.d.ts.map +1 -1
  289. package/dist/service/lambda/function/sim-lambda-function.js +15 -1
  290. package/dist/service/lambda/function/sim-lambda-function.js.map +1 -1
  291. package/dist/service/lambda/serve/sim-lambda-url-router.js +1 -1
  292. package/dist/service/lambda/serve/sim-lambda-url-router.js.map +1 -1
  293. package/dist/service/route53/resolve/sim-r53-service-target-resolver.d.ts +14 -0
  294. package/dist/service/route53/resolve/sim-r53-service-target-resolver.d.ts.map +1 -1
  295. package/dist/service/route53/resolve/sim-r53-service-target-resolver.js +38 -0
  296. package/dist/service/route53/resolve/sim-r53-service-target-resolver.js.map +1 -1
  297. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.d.ts +7 -0
  298. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.d.ts.map +1 -0
  299. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.js +73 -0
  300. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.js.map +1 -0
  301. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.d.ts +61 -0
  302. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.d.ts.map +1 -0
  303. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.js +57 -0
  304. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.js.map +1 -0
  305. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.d.ts +19 -0
  306. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.d.ts.map +1 -0
  307. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.js +28 -0
  308. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.js.map +1 -0
  309. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.d.ts +18 -0
  310. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.d.ts.map +1 -0
  311. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.js +35 -0
  312. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.js.map +1 -0
  313. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.d.ts +11 -0
  314. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.d.ts.map +1 -0
  315. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.js +34 -0
  316. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.js.map +1 -0
  317. package/dist/service/s3/bucket/sim-s3-bucket-arn.d.ts +9 -0
  318. package/dist/service/s3/bucket/sim-s3-bucket-arn.d.ts.map +1 -0
  319. package/dist/service/s3/bucket/sim-s3-bucket-arn.js +10 -0
  320. package/dist/service/s3/bucket/sim-s3-bucket-arn.js.map +1 -0
  321. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +25 -0
  322. package/dist/service/s3/bucket/sim-s3-bucket.d.ts.map +1 -1
  323. package/dist/service/s3/bucket/sim-s3-bucket.js +34 -1
  324. package/dist/service/s3/bucket/sim-s3-bucket.js.map +1 -1
  325. package/dist/service/s3/bucket/sim-s3-endpoint-url.d.ts +16 -0
  326. package/dist/service/s3/bucket/sim-s3-endpoint-url.d.ts.map +1 -0
  327. package/dist/service/s3/bucket/sim-s3-endpoint-url.js +19 -0
  328. package/dist/service/s3/bucket/sim-s3-endpoint-url.js.map +1 -0
  329. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.d.ts +13 -0
  330. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.d.ts.map +1 -0
  331. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.js +36 -0
  332. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.js.map +1 -0
  333. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts +27 -0
  334. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts.map +1 -0
  335. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js +92 -0
  336. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js.map +1 -0
  337. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.d.ts +32 -0
  338. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.d.ts.map +1 -0
  339. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.js +55 -0
  340. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.js.map +1 -0
  341. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.d.ts +2 -4
  342. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.d.ts.map +1 -1
  343. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.js +10 -61
  344. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.js.map +1 -1
  345. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.d.ts +11 -0
  346. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.d.ts.map +1 -0
  347. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.js +22 -0
  348. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.js.map +1 -0
  349. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.d.ts +23 -0
  350. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.d.ts.map +1 -0
  351. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.js +36 -0
  352. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.js.map +1 -0
  353. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.d.ts +20 -0
  354. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.d.ts.map +1 -0
  355. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.js +2 -0
  356. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.js.map +1 -0
  357. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.d.ts +32 -0
  358. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.d.ts.map +1 -0
  359. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.js +37 -0
  360. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.js.map +1 -0
  361. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.d.ts +20 -0
  362. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.d.ts.map +1 -0
  363. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.js +2 -0
  364. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.js.map +1 -0
  365. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.d.ts +30 -0
  366. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.d.ts.map +1 -0
  367. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.js +35 -0
  368. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.js.map +1 -0
  369. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.d.ts +20 -0
  370. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.d.ts.map +1 -0
  371. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.js +33 -0
  372. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.js.map +1 -0
  373. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.d.ts +24 -0
  374. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.d.ts.map +1 -0
  375. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.js +2 -0
  376. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.js.map +1 -0
  377. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.d.ts +29 -0
  378. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.d.ts.map +1 -0
  379. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.js +40 -0
  380. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.js.map +1 -0
  381. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.d.ts +22 -0
  382. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.d.ts.map +1 -0
  383. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.js +2 -0
  384. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.js.map +1 -0
  385. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.d.ts +32 -0
  386. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.d.ts.map +1 -0
  387. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.js +39 -0
  388. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.js.map +1 -0
  389. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.d.ts +31 -0
  390. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.d.ts.map +1 -0
  391. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.js +48 -0
  392. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.js.map +1 -0
  393. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.d.ts +1 -0
  394. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.d.ts.map +1 -1
  395. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js +7 -6
  396. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js.map +1 -1
  397. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.d.ts +22 -0
  398. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.d.ts.map +1 -0
  399. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.js +2 -0
  400. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.js.map +1 -0
  401. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.d.ts +33 -0
  402. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.d.ts.map +1 -0
  403. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.js +40 -0
  404. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.js.map +1 -0
  405. package/dist/service/s3/command/require-sim-s3-bucket.d.ts +10 -0
  406. package/dist/service/s3/command/require-sim-s3-bucket.d.ts.map +1 -0
  407. package/dist/service/s3/command/require-sim-s3-bucket.js +16 -0
  408. package/dist/service/s3/command/require-sim-s3-bucket.js.map +1 -0
  409. package/dist/service/s3/command/sim-s3-command-handlers.d.ts +91 -0
  410. package/dist/service/s3/command/sim-s3-command-handlers.d.ts.map +1 -0
  411. package/dist/service/s3/command/sim-s3-command-handlers.js +115 -0
  412. package/dist/service/s3/command/sim-s3-command-handlers.js.map +1 -0
  413. package/dist/service/s3/command/sim-s3-command.types.d.ts +19 -0
  414. package/dist/service/s3/command/sim-s3-command.types.d.ts.map +1 -0
  415. package/dist/service/s3/command/sim-s3-command.types.js +8 -0
  416. package/dist/service/s3/command/sim-s3-command.types.js.map +1 -0
  417. package/dist/service/s3/error/sim-s3-checksum.error.d.ts +28 -0
  418. package/dist/service/s3/error/sim-s3-checksum.error.d.ts.map +1 -0
  419. package/dist/service/s3/error/sim-s3-checksum.error.js +32 -0
  420. package/dist/service/s3/error/sim-s3-checksum.error.js.map +1 -0
  421. package/dist/service/s3/error/sim-s3.error.d.ts +20 -0
  422. package/dist/service/s3/error/sim-s3.error.d.ts.map +1 -1
  423. package/dist/service/s3/error/sim-s3.error.js +24 -0
  424. package/dist/service/s3/error/sim-s3.error.js.map +1 -1
  425. package/dist/service/s3/sdk/sim-s3-sdk-command-router.d.ts.map +1 -1
  426. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +20 -0
  427. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js.map +1 -1
  428. package/dist/service/s3/serve/sim-s3-bucket-locator.d.ts +40 -0
  429. package/dist/service/s3/serve/sim-s3-bucket-locator.d.ts.map +1 -0
  430. package/dist/service/s3/serve/sim-s3-bucket-locator.js +59 -0
  431. package/dist/service/s3/serve/sim-s3-bucket-locator.js.map +1 -0
  432. package/dist/service/s3/serve/sim-s3-controller.d.ts +7 -0
  433. package/dist/service/s3/serve/sim-s3-controller.d.ts.map +1 -1
  434. package/dist/service/s3/serve/sim-s3-controller.js +14 -2
  435. package/dist/service/s3/serve/sim-s3-controller.js.map +1 -1
  436. package/dist/service/s3/serve/sim-s3-get-object-controller.d.ts +40 -6
  437. package/dist/service/s3/serve/sim-s3-get-object-controller.d.ts.map +1 -1
  438. package/dist/service/s3/serve/sim-s3-get-object-controller.js +80 -49
  439. package/dist/service/s3/serve/sim-s3-get-object-controller.js.map +1 -1
  440. package/dist/service/s3/serve/sim-s3-object-address.d.ts +42 -0
  441. package/dist/service/s3/serve/sim-s3-object-address.d.ts.map +1 -0
  442. package/dist/service/s3/serve/sim-s3-object-address.js +66 -0
  443. package/dist/service/s3/serve/sim-s3-object-address.js.map +1 -0
  444. package/dist/service/s3/serve/sim-s3-request-router.d.ts +18 -13
  445. package/dist/service/s3/serve/sim-s3-request-router.d.ts.map +1 -1
  446. package/dist/service/s3/serve/sim-s3-request-router.js +72 -48
  447. package/dist/service/s3/serve/sim-s3-request-router.js.map +1 -1
  448. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +36 -0
  449. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts.map +1 -0
  450. package/dist/service/s3/serve/sim-s3-rest-controller.js +92 -0
  451. package/dist/service/s3/serve/sim-s3-rest-controller.js.map +1 -0
  452. package/dist/service/s3/serve/sim-s3-rest-error-response.d.ts +28 -0
  453. package/dist/service/s3/serve/sim-s3-rest-error-response.d.ts.map +1 -0
  454. package/dist/service/s3/serve/sim-s3-rest-error-response.js +63 -0
  455. package/dist/service/s3/serve/sim-s3-rest-error-response.js.map +1 -0
  456. package/dist/service/s3/serve/sim-s3-rest-refusal.d.ts +7 -0
  457. package/dist/service/s3/serve/sim-s3-rest-refusal.d.ts.map +1 -0
  458. package/dist/service/s3/serve/sim-s3-rest-refusal.js +18 -0
  459. package/dist/service/s3/serve/sim-s3-rest-refusal.js.map +1 -0
  460. package/dist/service/s3/serve/sim-s3-route.d.ts +40 -0
  461. package/dist/service/s3/serve/sim-s3-route.d.ts.map +1 -0
  462. package/dist/service/s3/serve/sim-s3-route.js +7 -0
  463. package/dist/service/s3/serve/sim-s3-route.js.map +1 -0
  464. package/dist/service/s3/serve/sim-s3-upload-checksum.d.ts +27 -0
  465. package/dist/service/s3/serve/sim-s3-upload-checksum.d.ts.map +1 -0
  466. package/dist/service/s3/serve/sim-s3-upload-checksum.js +86 -0
  467. package/dist/service/s3/serve/sim-s3-upload-checksum.js.map +1 -0
  468. package/dist/service/s3/serve/website/sim-s3-website-object-loader.d.ts +51 -0
  469. package/dist/service/s3/serve/website/sim-s3-website-object-loader.d.ts.map +1 -0
  470. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +75 -0
  471. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js.map +1 -0
  472. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +18 -0
  473. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts.map +1 -0
  474. package/dist/service/s3/serve/website/sim-s3-website-object.js +28 -0
  475. package/dist/service/s3/serve/website/sim-s3-website-object.js.map +1 -0
  476. package/dist/service/s3/serve/website/sim-s3-website-responses.d.ts +27 -0
  477. package/dist/service/s3/serve/website/sim-s3-website-responses.d.ts.map +1 -0
  478. package/dist/service/s3/serve/website/sim-s3-website-responses.js +44 -0
  479. package/dist/service/s3/serve/website/sim-s3-website-responses.js.map +1 -0
  480. package/dist/service/s3/sim-s3.d.ts +34 -9
  481. package/dist/service/s3/sim-s3.d.ts.map +1 -1
  482. package/dist/service/s3/sim-s3.js +65 -55
  483. package/dist/service/s3/sim-s3.js.map +1 -1
  484. package/dist/util/clock/sim-clock-date.d.ts +20 -0
  485. package/dist/util/clock/sim-clock-date.d.ts.map +1 -0
  486. package/dist/util/clock/sim-clock-date.js +43 -0
  487. package/dist/util/clock/sim-clock-date.js.map +1 -0
  488. package/package.json +17 -11
@@ -1 +1 @@
1
- {"version":3,"file":"sim-iam-sigv4-request-date.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/sigv4/sim-iam-sigv4-request-date.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAItF;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,0BAA0B,GAChC,MAAM,CA2BR"}
1
+ {"version":3,"file":"sim-iam-sigv4-request-date.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/sigv4/sim-iam-sigv4-request-date.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAItF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,0BAA0B,GAChC,MAAM,CAMR;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,KAAK,EAAE,0BAA0B,EACjC,MAAM,EAAE,MAAM,GACb,MAAM,CAsBR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAiCzD"}
@@ -1,5 +1,5 @@
1
1
  import { SimIamIncompleteSignature } from "./error/sim-iam-sigv4.error.js";
2
- const amzDatePattern = /^(?<dateStamp>\d{8})T\d{6}Z$/;
2
+ const amzDatePattern = /^(?<dateStamp>\d{8})T(?<time>\d{6})Z$/;
3
3
  /**
4
4
  * Read the `X-Amz-Date` a request was signed at.
5
5
  *
@@ -11,21 +11,63 @@ const amzDatePattern = /^(?<dateStamp>\d{8})T\d{6}Z$/;
11
11
  * would buy nothing a caller could assert on, and would break every client that
12
12
  * stamps real time and has no way to know what time this simulation is keeping.
13
13
  * This is a documented divergence from real AWS, which enforces a five minute
14
- * window.
14
+ * window. A presigned URL is the exception: it states its own lifetime in
15
+ * `X-Amz-Expires`, and that lifetime is enforced, in simulated time.
15
16
  */
16
17
  export function simIamSigV4RequestDate(headers, scope) {
17
- const amzDate = headers.get("x-amz-date");
18
+ return simIamSigV4CheckedAmzDate(headers.get("x-amz-date"), scope, "X-Amz-Date header");
19
+ }
20
+ /**
21
+ * Check a signing stamp from wherever the request carried it.
22
+ *
23
+ * A presigned URL states the same value in its query string rather than in a
24
+ * header, so the source is named by the caller and appears in any complaint
25
+ * about the stamp.
26
+ */
27
+ export function simIamSigV4CheckedAmzDate(amzDate, scope, source) {
18
28
  if (amzDate === null || amzDate.length === 0) {
19
- throw new SimIamIncompleteSignature("Signed request carries no X-Amz-Date header");
29
+ throw new SimIamIncompleteSignature(`Signed request carries no ${source}`);
20
30
  }
21
31
  const dateStamp = amzDatePattern.exec(amzDate)?.groups?.["dateStamp"];
22
32
  if (dateStamp === undefined) {
23
- throw new SimIamIncompleteSignature(`X-Amz-Date ${amzDate} must be an ISO 8601 basic stamp, ` +
24
- `YYYYMMDDTHHMMSSZ`);
33
+ throw new SimIamIncompleteSignature(`${source} ${amzDate} must be an ISO 8601 basic stamp, YYYYMMDDTHHMMSSZ`);
25
34
  }
26
35
  if (dateStamp !== scope.dateStamp) {
27
- throw new SimIamIncompleteSignature(`X-Amz-Date ${amzDate} is not on the day its credential scope names, ${scope.dateStamp}`);
36
+ throw new SimIamIncompleteSignature(`${source} ${amzDate} is not on the day its credential scope names, ${scope.dateStamp}`);
28
37
  }
29
38
  return amzDate;
30
39
  }
40
+ /**
41
+ * The instant an `X-Amz-Date` stamp names.
42
+ *
43
+ * The stamp is ISO 8601 basic form, which `Date` does not parse, so the
44
+ * separators of the extended form are put back before it is read.
45
+ *
46
+ * The result is checked to name the day and time it was built from. Digits
47
+ * alone do not make a date: `Date` reads 24:60:00 as no instant at all, and
48
+ * quietly rolls February 30th forward into March, which would give a presigned
49
+ * URL a window nothing signed. Both are refused rather than honoured.
50
+ */
51
+ export function simIamSigV4SignedAt(amzDate) {
52
+ const parts = amzDatePattern.exec(amzDate)?.groups;
53
+ /* v8 ignore if -- a stamp is always checked before it is read */
54
+ if (parts === undefined) {
55
+ throw new SimIamIncompleteSignature(`X-Amz-Date ${amzDate} is not an ISO 8601 basic stamp`);
56
+ }
57
+ const dateStamp = String(parts["dateStamp"]);
58
+ const time = String(parts["time"]);
59
+ const date = [
60
+ dateStamp.slice(0, 4),
61
+ dateStamp.slice(4, 6),
62
+ dateStamp.slice(6, 8),
63
+ ].join("-");
64
+ const clockTime = [time.slice(0, 2), time.slice(2, 4), time.slice(4, 6)].join(":");
65
+ const signedAt = new Date(`${date}T${clockTime}Z`);
66
+ if (Number.isNaN(signedAt.getTime()) ||
67
+ signedAt.toISOString() !== `${date}T${clockTime}.000Z`) {
68
+ throw new SimIamIncompleteSignature(`X-Amz-Date ${amzDate} is not a real instant: there is no ` +
69
+ `${clockTime} on ${date}`);
70
+ }
71
+ return signedAt;
72
+ }
31
73
  //# sourceMappingURL=sim-iam-sigv4-request-date.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-iam-sigv4-request-date.js","sourceRoot":"","sources":["../../../../src/service/iam/sigv4/sim-iam-sigv4-request-date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG3E,MAAM,cAAc,GAAG,8BAA8B,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAgB,EAChB,KAAiC;IAEjC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE1C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,yBAAyB,CACjC,6CAA6C,CAC9C,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC;IAEtE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,yBAAyB,CACjC,cAAc,OAAO,oCAAoC;YACvD,kBAAkB,CACrB,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,IAAI,yBAAyB,CACjC,cAAc,OAAO,kDACnB,KAAK,CAAC,SACR,EAAE,CACH,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"sim-iam-sigv4-request-date.js","sourceRoot":"","sources":["../../../../src/service/iam/sigv4/sim-iam-sigv4-request-date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG3E,MAAM,cAAc,GAAG,uCAAuC,CAAC;AAE/D;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAgB,EAChB,KAAiC;IAEjC,OAAO,yBAAyB,CAC9B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EACzB,KAAK,EACL,mBAAmB,CACpB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAsB,EACtB,KAAiC,EACjC,MAAc;IAEd,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,yBAAyB,CAAC,6BAA6B,MAAM,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC;IAEtE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,yBAAyB,CACjC,GAAG,MAAM,IAAI,OAAO,oDAAoD,CACzE,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,IAAI,yBAAyB,CACjC,GAAG,MAAM,IAAI,OAAO,kDAClB,KAAK,CAAC,SACR,EAAE,CACH,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEnD,iEAAiE;IACjE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,yBAAyB,CACjC,cAAc,OAAO,iCAAiC,CACvD,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG;QACX,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACrB,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACrB,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;KACtB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAC3E,GAAG,CACJ,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC;IAEnD,IACE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAChC,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,IAAI,SAAS,OAAO,EACtD,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,cAAc,OAAO,sCAAsC;YACzD,GAAG,SAAS,OAAO,IAAI,EAAE,CAC5B,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,10 +1,17 @@
1
- import type { SimIamSigV4Authorization } from "./sim-iam-sigv4-authorization.js";
1
+ import type { SimIamSigV4PayloadDeclaration } from "./canonical/sim-iam-sigv4-payload-hash.js";
2
+ import type { SimIamSigV4SignatureStatement } from "./sim-iam-sigv4-signature-statement.js";
2
3
  import type { SimIamSigV4SignedRequest } from "./sim-iam-sigv4-signed-request.js";
3
4
  interface SimIamSigV4SignatureCheckInput {
4
5
  readonly signedRequest: SimIamSigV4SignedRequest;
5
- readonly authorization: SimIamSigV4Authorization;
6
+ readonly statement: SimIamSigV4SignatureStatement;
6
7
  readonly signingKey: Buffer;
7
8
  readonly amzDate: string;
9
+ /**
10
+ * How the request declared its payload hash. Omitted for a header-signed
11
+ * request, which declares it in a header the canonical request can read for
12
+ * itself.
13
+ */
14
+ readonly payload?: SimIamSigV4PayloadDeclaration | undefined;
8
15
  }
9
16
  /**
10
17
  * Rebuild the signature the request should carry, and refuse it otherwise.
@@ -1 +1 @@
1
- {"version":3,"file":"sim-iam-sigv4-signature-check.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/sigv4/sim-iam-sigv4-signature-check.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAMlF,UAAU,8BAA8B;IACtC,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAC;IACjD,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAC;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,8BAA8B,GACpC,IAAI,CAwBN"}
1
+ {"version":3,"file":"sim-iam-sigv4-signature-check.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/sigv4/sim-iam-sigv4-signature-check.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAG/F,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AAC5F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAMlF,UAAU,8BAA8B;IACtC,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,6BAA6B,CAAC;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,6BAA6B,GAAG,SAAS,CAAC;CAC9D;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,8BAA8B,GACpC,IAAI,CAyBN"}
@@ -10,16 +10,16 @@ import { simIamSigV4Signature, simIamSigV4StringToSign, } from "./sim-iam-sigv4-
10
10
  * the bytes the simulator signed over.
11
11
  */
12
12
  export function simIamSigV4CheckSignature(input) {
13
- const { signedRequest, authorization, signingKey, amzDate } = input;
14
- const canonicalRequest = new SimIamSigV4CanonicalRequest(signedRequest, authorization.signedHeaderNames).toString();
13
+ const { signedRequest, statement, signingKey, amzDate, payload } = input;
14
+ const canonicalRequest = new SimIamSigV4CanonicalRequest(signedRequest, statement.signedHeaderNames, payload).toString();
15
15
  const expected = simIamSigV4Signature(signingKey, simIamSigV4StringToSign({
16
16
  amzDate,
17
- scope: authorization.scope,
17
+ scope: statement.scope,
18
18
  canonicalRequest,
19
19
  }));
20
- if (!simIamSigV4SignaturesMatch(expected, authorization.signature)) {
20
+ if (!simIamSigV4SignaturesMatch(expected, statement.signature)) {
21
21
  throw new SimIamSignatureDoesNotMatch(`Request signature does not match the signature the simulator ` +
22
- `calculated for access key ${authorization.accessKeyId}`, canonicalRequest);
22
+ `calculated for access key ${statement.accessKeyId}`, canonicalRequest);
23
23
  }
24
24
  }
25
25
  //# sourceMappingURL=sim-iam-sigv4-signature-check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-iam-sigv4-signature-check.js","sourceRoot":"","sources":["../../../../src/service/iam/sigv4/sim-iam-sigv4-signature-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAC7F,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAE7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AASxC;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAqC;IAErC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEpE,MAAM,gBAAgB,GAAG,IAAI,2BAA2B,CACtD,aAAa,EACb,aAAa,CAAC,iBAAiB,CAChC,CAAC,QAAQ,EAAE,CAAC;IAEb,MAAM,QAAQ,GAAG,oBAAoB,CACnC,UAAU,EACV,uBAAuB,CAAC;QACtB,OAAO;QACP,KAAK,EAAE,aAAa,CAAC,KAAK;QAC1B,gBAAgB;KACjB,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,2BAA2B,CACnC,+DAA+D;YAC7D,6BAA6B,aAAa,CAAC,WAAW,EAAE,EAC1D,gBAAgB,CACjB,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"sim-iam-sigv4-signature-check.js","sourceRoot":"","sources":["../../../../src/service/iam/sigv4/sim-iam-sigv4-signature-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAE7F,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAGhF,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AAexC;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAqC;IAErC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEzE,MAAM,gBAAgB,GAAG,IAAI,2BAA2B,CACtD,aAAa,EACb,SAAS,CAAC,iBAAiB,EAC3B,OAAO,CACR,CAAC,QAAQ,EAAE,CAAC;IAEb,MAAM,QAAQ,GAAG,oBAAoB,CACnC,UAAU,EACV,uBAAuB,CAAC;QACtB,OAAO;QACP,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,gBAAgB;KACjB,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,2BAA2B,CACnC,+DAA+D;YAC7D,6BAA6B,SAAS,CAAC,WAAW,EAAE,EACtD,gBAAgB,CACjB,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { SimIamSigV4CredentialScope } from "./sim-iam-sigv4-credential-scope.js";
2
+ /**
3
+ * What a request states about the signature it carries.
4
+ *
5
+ * SigV4 offers the same facts in two places: an `Authorization` header, or the
6
+ * query string of a presigned URL. Everything downstream of parsing needs only
7
+ * these four, so verification is written against this rather than against
8
+ * either form, and the two differ only in how they are read off the request.
9
+ */
10
+ export interface SimIamSigV4SignatureStatement {
11
+ readonly accessKeyId: string;
12
+ readonly scope: SimIamSigV4CredentialScope;
13
+ readonly signedHeaderNames: readonly string[];
14
+ readonly signature: string;
15
+ }
16
+ //# sourceMappingURL=sim-iam-sigv4-signature-statement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-iam-sigv4-signature-statement.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/sigv4/sim-iam-sigv4-signature-statement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAEtF;;;;;;;GAOG;AACH,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,0BAA0B,CAAC;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sim-iam-sigv4-signature-statement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-iam-sigv4-signature-statement.js","sourceRoot":"","sources":["../../../../src/service/iam/sigv4/sim-iam-sigv4-signature-statement.ts"],"names":[],"mappings":""}
@@ -1,6 +1,11 @@
1
1
  import type { SimIamSigningCredential, SimIamSigningCredentialResolver } from "../credential/sim-iam-signing-credential.js";
2
- import type { SimIamSigV4Authorization } from "./sim-iam-sigv4-authorization.js";
3
- import type { SimIamSigV4SignedRequest } from "./sim-iam-sigv4-signed-request.js";
2
+ import type { SimIamSigV4SignatureStatement } from "./sim-iam-sigv4-signature-statement.js";
3
+ interface SimIamSigV4SigningCredentialInput {
4
+ readonly credentials: SimIamSigningCredentialResolver;
5
+ readonly statement: SimIamSigV4SignatureStatement;
6
+ readonly sessionToken: string | undefined;
7
+ readonly now: Date | undefined;
8
+ }
4
9
  /**
5
10
  * Find the signing key the request claims to have been signed with.
6
11
  *
@@ -8,6 +13,10 @@ import type { SimIamSigV4SignedRequest } from "./sim-iam-sigv4-signed-request.js
8
13
  * named access key would have derived rather than for the secret itself, and
9
14
  * the signature comparison settles whether the signer really held it. Any
10
15
  * rejection is restated in the vocabulary a signed request is answered in.
16
+ *
17
+ * The session token comes from wherever the request carried it: a header on a
18
+ * header-signed request, a query parameter on a presigned URL.
11
19
  */
12
- export declare function simIamSigV4SigningCredential(credentials: SimIamSigningCredentialResolver, signedRequest: SimIamSigV4SignedRequest, authorization: SimIamSigV4Authorization, now: Date | undefined): SimIamSigningCredential;
20
+ export declare function simIamSigV4SigningCredential(input: SimIamSigV4SigningCredentialInput): SimIamSigningCredential;
21
+ export {};
13
22
  //# sourceMappingURL=sim-iam-sigv4-signing-credentials.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-iam-sigv4-signing-credentials.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/sigv4/sim-iam-sigv4-signing-credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,+BAA+B,EAChC,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAElF;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,+BAA+B,EAC5C,aAAa,EAAE,wBAAwB,EACvC,aAAa,EAAE,wBAAwB,EACvC,GAAG,EAAE,IAAI,GAAG,SAAS,GACpB,uBAAuB,CAUzB"}
1
+ {"version":3,"file":"sim-iam-sigv4-signing-credentials.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/sigv4/sim-iam-sigv4-signing-credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,+BAA+B,EAChC,MAAM,6CAA6C,CAAC;AAErD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AAE5F,UAAU,iCAAiC;IACzC,QAAQ,CAAC,WAAW,EAAE,+BAA+B,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,6BAA6B,CAAC;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,GAAG,EAAE,IAAI,GAAG,SAAS,CAAC;CAChC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,iCAAiC,GACvC,uBAAuB,CAWzB"}
@@ -6,12 +6,16 @@ import { simIamSigV4CredentialFailure } from "./sim-iam-sigv4-credential-failure
6
6
  * named access key would have derived rather than for the secret itself, and
7
7
  * the signature comparison settles whether the signer really held it. Any
8
8
  * rejection is restated in the vocabulary a signed request is answered in.
9
+ *
10
+ * The session token comes from wherever the request carried it: a header on a
11
+ * header-signed request, a query parameter on a presigned URL.
9
12
  */
10
- export function simIamSigV4SigningCredential(credentials, signedRequest, authorization, now) {
11
- return simIamSigV4CredentialFailure(authorization.accessKeyId, () => credentials.signingCredentialFor({
12
- accessKeyId: authorization.accessKeyId,
13
- sessionToken: signedRequest.headers.get("x-amz-security-token") ?? undefined,
14
- scope: authorization.scope,
13
+ export function simIamSigV4SigningCredential(input) {
14
+ const { credentials, statement, sessionToken, now } = input;
15
+ return simIamSigV4CredentialFailure(statement.accessKeyId, () => credentials.signingCredentialFor({
16
+ accessKeyId: statement.accessKeyId,
17
+ sessionToken,
18
+ scope: statement.scope,
15
19
  now,
16
20
  }));
17
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sim-iam-sigv4-signing-credentials.js","sourceRoot":"","sources":["../../../../src/service/iam/sigv4/sim-iam-sigv4-signing-credentials.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAGrF;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,WAA4C,EAC5C,aAAuC,EACvC,aAAuC,EACvC,GAAqB;IAErB,OAAO,4BAA4B,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAClE,WAAW,CAAC,oBAAoB,CAAC;QAC/B,WAAW,EAAE,aAAa,CAAC,WAAW;QACtC,YAAY,EACV,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,SAAS;QAChE,KAAK,EAAE,aAAa,CAAC,KAAK;QAC1B,GAAG;KACJ,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sim-iam-sigv4-signing-credentials.js","sourceRoot":"","sources":["../../../../src/service/iam/sigv4/sim-iam-sigv4-signing-credentials.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAUrF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,4BAA4B,CAC1C,KAAwC;IAExC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAE5D,OAAO,4BAA4B,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,EAAE,CAC9D,WAAW,CAAC,oBAAoB,CAAC;QAC/B,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,YAAY;QACZ,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,GAAG;KACJ,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -12,10 +12,16 @@ interface SimIamSigV4VerifierProperties {
12
12
  * principal made the request, which is exactly the question the IAM
13
13
  * authorization already built has no way to ask of an HTTP request.
14
14
  *
15
- * Verification needs no clock. The signing date is an input to the signing key
16
- * and comes from the request, so a correctly signed request verifies whenever
17
- * it arrives. Only the credentials behind it can go stale, and that is judged in
18
- * simulated time by the registry.
15
+ * A signature arrives in one of two forms, an `Authorization` header or the
16
+ * query string of a presigned URL, and both are verified here. The work either
17
+ * way is the same canonical request against the same signing key; only where
18
+ * the claims are read from, and whether a lifetime is stated, differ.
19
+ *
20
+ * Verifying a header-signed request needs no clock. The signing date is an
21
+ * input to the signing key and comes from the request, so a correctly signed
22
+ * request verifies whenever it arrives. Only the credentials behind it can go
23
+ * stale, and that is judged in simulated time by the registry. A presigned URL
24
+ * is the exception, because it states its own expiry.
19
25
  */
20
26
  export declare class SimIamSigV4Verifier {
21
27
  private readonly credentials;
@@ -27,6 +33,16 @@ export declare class SimIamSigV4Verifier {
27
33
  * with when the request cannot be attributed to a registered access key.
28
34
  */
29
35
  verify(signedRequest: SimIamSigV4SignedRequest, options?: SimIamSigV4VerifyOptions): SimIamCredentialIdentity;
36
+ private verifyHeaderSigned;
37
+ /**
38
+ * Verify a presigned URL.
39
+ *
40
+ * Expiry is checked before the signature, because an expired URL is the
41
+ * likeliest reason a presigned request fails and "this expired" is a far
42
+ * more useful thing to be told than "this signature does not match". The
43
+ * expiry is signed, so a URL cannot claim a longer life than it was given.
44
+ */
45
+ private verifyPresigned;
30
46
  }
31
47
  export {};
32
48
  //# sourceMappingURL=sim-iam-sigv4-verifier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-iam-sigv4-verifier.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/sigv4/sim-iam-sigv4-verifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAKnG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAElF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAElF,UAAU,6BAA6B;IACrC,QAAQ,CAAC,WAAW,EAAE,+BAA+B,CAAC;CACvD;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAE9D,YAAY,UAAU,EAAE,6BAA6B,EAEpD;IAED;;;;;OAKG;IACH,MAAM,CACJ,aAAa,EAAE,wBAAwB,EACvC,OAAO,GAAE,wBAA6B,GACrC,wBAAwB,CA4B1B;CACF"}
1
+ {"version":3,"file":"sim-iam-sigv4-verifier.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/sigv4/sim-iam-sigv4-verifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAOnG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAElF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAElF,UAAU,6BAA6B;IACrC,QAAQ,CAAC,WAAW,EAAE,+BAA+B,CAAC;CACvD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAE9D,YAAY,UAAU,EAAE,6BAA6B,EAEpD;IAED;;;;;OAKG;IACH,MAAM,CACJ,aAAa,EAAE,wBAAwB,EACvC,OAAO,GAAE,wBAA6B,GACrC,wBAAwB,CAM1B;IAED,OAAO,CAAC,kBAAkB;IAkC1B;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;CA4BxB"}
@@ -1,3 +1,5 @@
1
+ import { SimIamSigV4PayloadDeclaration } from "./canonical/sim-iam-sigv4-payload-hash.js";
2
+ import { SimIamSigV4PresignedQuery } from "./presign/sim-iam-sigv4-presigned-query.js";
1
3
  import { SimIamSigV4Authorization } from "./sim-iam-sigv4-authorization.js";
2
4
  import { simIamSigV4CheckExpectedScope } from "./sim-iam-sigv4-expected-scope.js";
3
5
  import { simIamSigV4CheckSignature } from "./sim-iam-sigv4-signature-check.js";
@@ -10,10 +12,16 @@ import { simIamSigV4SigningCredential } from "./sim-iam-sigv4-signing-credential
10
12
  * principal made the request, which is exactly the question the IAM
11
13
  * authorization already built has no way to ask of an HTTP request.
12
14
  *
13
- * Verification needs no clock. The signing date is an input to the signing key
14
- * and comes from the request, so a correctly signed request verifies whenever
15
- * it arrives. Only the credentials behind it can go stale, and that is judged in
16
- * simulated time by the registry.
15
+ * A signature arrives in one of two forms, an `Authorization` header or the
16
+ * query string of a presigned URL, and both are verified here. The work either
17
+ * way is the same canonical request against the same signing key; only where
18
+ * the claims are read from, and whether a lifetime is stated, differ.
19
+ *
20
+ * Verifying a header-signed request needs no clock. The signing date is an
21
+ * input to the signing key and comes from the request, so a correctly signed
22
+ * request verifies whenever it arrives. Only the credentials behind it can go
23
+ * stale, and that is judged in simulated time by the registry. A presigned URL
24
+ * is the exception, because it states its own expiry.
17
25
  */
18
26
  export class SimIamSigV4Verifier {
19
27
  credentials;
@@ -27,19 +35,57 @@ export class SimIamSigV4Verifier {
27
35
  * with when the request cannot be attributed to a registered access key.
28
36
  */
29
37
  verify(signedRequest, options = {}) {
38
+ if (SimIamSigV4PresignedQuery.carriedBy(signedRequest.url)) {
39
+ return this.verifyPresigned(signedRequest, options);
40
+ }
41
+ return this.verifyHeaderSigned(signedRequest, options);
42
+ }
43
+ verifyHeaderSigned(signedRequest, options) {
30
44
  const authorization = SimIamSigV4Authorization.parse(signedRequest.headers.get("authorization"));
31
45
  // Checked before anything else can fail on it, so a signature made for the
32
46
  // wrong endpoint says so rather than looking like a bad secret.
33
47
  simIamSigV4CheckExpectedScope(options.expectedScope, authorization.scope);
34
48
  const amzDate = simIamSigV4RequestDate(signedRequest.headers, authorization.scope);
35
- const { signingKey, identity } = simIamSigV4SigningCredential(this.credentials, signedRequest, authorization, options.now);
49
+ const { signingKey, identity } = simIamSigV4SigningCredential({
50
+ credentials: this.credentials,
51
+ statement: authorization,
52
+ sessionToken: signedRequest.headers.get("x-amz-security-token") ?? undefined,
53
+ now: options.now,
54
+ });
36
55
  simIamSigV4CheckSignature({
37
56
  signedRequest,
38
- authorization,
57
+ statement: authorization,
39
58
  signingKey,
40
59
  amzDate,
41
60
  });
42
61
  return identity;
43
62
  }
63
+ /**
64
+ * Verify a presigned URL.
65
+ *
66
+ * Expiry is checked before the signature, because an expired URL is the
67
+ * likeliest reason a presigned request fails and "this expired" is a far
68
+ * more useful thing to be told than "this signature does not match". The
69
+ * expiry is signed, so a URL cannot claim a longer life than it was given.
70
+ */
71
+ verifyPresigned(signedRequest, options) {
72
+ const presigned = SimIamSigV4PresignedQuery.parse(signedRequest.url);
73
+ simIamSigV4CheckExpectedScope(options.expectedScope, presigned.scope);
74
+ presigned.checkNotExpired(options.now ?? new Date());
75
+ const { signingKey, identity } = simIamSigV4SigningCredential({
76
+ credentials: this.credentials,
77
+ statement: presigned,
78
+ sessionToken: presigned.sessionToken,
79
+ now: options.now,
80
+ });
81
+ simIamSigV4CheckSignature({
82
+ signedRequest,
83
+ statement: presigned,
84
+ signingKey,
85
+ amzDate: presigned.amzDate,
86
+ payload: SimIamSigV4PayloadDeclaration.fromPresignedQuery(signedRequest.url),
87
+ });
88
+ return identity;
89
+ }
44
90
  }
45
91
  //# sourceMappingURL=sim-iam-sigv4-verifier.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-iam-sigv4-verifier.js","sourceRoot":"","sources":["../../../../src/service/iam/sigv4/sim-iam-sigv4-verifier.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAOtF;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,mBAAmB;IACb,WAAW,CAAkC;IAE9D,YAAY,UAAyC;QACnD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CACJ,aAAuC,EACvC,OAAO,GAA6B,EAAE;QAEtC,MAAM,aAAa,GAAG,wBAAwB,CAAC,KAAK,CAClD,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAC3C,CAAC;QAEF,2EAA2E;QAC3E,gEAAgE;QAChE,6BAA6B,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QAE1E,MAAM,OAAO,GAAG,sBAAsB,CACpC,aAAa,CAAC,OAAO,EACrB,aAAa,CAAC,KAAK,CACpB,CAAC;QACF,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,4BAA4B,CAC3D,IAAI,CAAC,WAAW,EAChB,aAAa,EACb,aAAa,EACb,OAAO,CAAC,GAAG,CACZ,CAAC;QAEF,yBAAyB,CAAC;YACxB,aAAa;YACb,aAAa;YACb,UAAU;YACV,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
1
+ {"version":3,"file":"sim-iam-sigv4-verifier.js","sourceRoot":"","sources":["../../../../src/service/iam/sigv4/sim-iam-sigv4-verifier.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAOtF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,mBAAmB;IACb,WAAW,CAAkC;IAE9D,YAAY,UAAyC;QACnD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CACJ,aAAuC,EACvC,OAAO,GAA6B,EAAE;QAEtC,IAAI,yBAAyB,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAEO,kBAAkB,CACxB,aAAuC,EACvC,OAAiC;QAEjC,MAAM,aAAa,GAAG,wBAAwB,CAAC,KAAK,CAClD,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAC3C,CAAC;QAEF,2EAA2E;QAC3E,gEAAgE;QAChE,6BAA6B,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QAE1E,MAAM,OAAO,GAAG,sBAAsB,CACpC,aAAa,CAAC,OAAO,EACrB,aAAa,CAAC,KAAK,CACpB,CAAC;QACF,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,4BAA4B,CAAC;YAC5D,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,aAAa;YACxB,YAAY,EACV,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,SAAS;YAChE,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAC;QAEH,yBAAyB,CAAC;YACxB,aAAa;YACb,SAAS,EAAE,aAAa;YACxB,UAAU;YACV,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;OAOG;IACK,eAAe,CACrB,aAAuC,EACvC,OAAiC;QAEjC,MAAM,SAAS,GAAG,yBAAyB,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAErE,6BAA6B,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QACtE,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QAErD,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,4BAA4B,CAAC;YAC5D,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,SAAS;YACpB,YAAY,EAAE,SAAS,CAAC,YAAY;YACpC,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAC;QAEH,yBAAyB,CAAC;YACxB,aAAa;YACb,SAAS,EAAE,SAAS;YACpB,UAAU;YACV,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,OAAO,EAAE,6BAA6B,CAAC,kBAAkB,CACvD,aAAa,CAAC,GAAG,CAClB;SACF,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
@@ -0,0 +1,43 @@
1
+ import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
2
+ /**
3
+ * Minimal structural sim KMS CreateAlias command.
4
+ *
5
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/kms/command/CreateAliasCommand/
6
+ */
7
+ export interface SimCreateAliasCommand {
8
+ readonly input: SimCreateAliasCommandInput;
9
+ }
10
+ export interface SimCreateAliasCommandInput {
11
+ readonly AliasName?: string | undefined;
12
+ readonly TargetKeyId?: string | undefined;
13
+ }
14
+ export interface SimCreateAliasCommandOutput {
15
+ readonly $metadata: SimResponseMetadata;
16
+ }
17
+ /**
18
+ * Minimal structural sim KMS ListAliases command.
19
+ *
20
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/kms/command/ListAliasesCommand/
21
+ */
22
+ export interface SimListAliasesCommand {
23
+ readonly input?: SimListAliasesCommandInput | undefined;
24
+ }
25
+ export interface SimListAliasesCommandInput {
26
+ /**
27
+ * Narrows the result to the aliases of one key. Real KMS returns every alias
28
+ * in the Region when this is omitted.
29
+ */
30
+ readonly KeyId?: string | undefined;
31
+ readonly Limit?: number | undefined;
32
+ }
33
+ export interface SimListAliasesCommandEntry {
34
+ readonly AliasName: string;
35
+ readonly AliasArn: string;
36
+ readonly TargetKeyId: string;
37
+ }
38
+ export interface SimListAliasesCommandOutput {
39
+ readonly Aliases?: readonly SimListAliasesCommandEntry[] | undefined;
40
+ readonly Truncated?: boolean | undefined;
41
+ readonly $metadata: SimResponseMetadata;
42
+ }
43
+ //# sourceMappingURL=alias.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alias.command.d.ts","sourceRoot":"","sources":["../../../../../src/service/kms/command/alias/alias.command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAE3F;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,0BAA0B,CAAC;CAC5C;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;CACzD;AAED,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,0BAA0B,EAAE,GAAG,SAAS,CAAC;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=alias.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alias.command.js","sourceRoot":"","sources":["../../../../../src/service/kms/command/alias/alias.command.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
2
+ import type { SimKmsKeyStore } from "../../key/sim-kms-key-store.js";
3
+ import type { SimKmsAuthorizer } from "../authorize/sim-kms-authorizer.js";
4
+ import type { SimCreateAliasCommand, SimCreateAliasCommandOutput, SimListAliasesCommand, SimListAliasesCommandOutput } from "./alias.command.js";
5
+ interface SimKmsAliasCommandsProperties {
6
+ readonly keys: SimKmsKeyStore;
7
+ readonly authorizer: SimKmsAuthorizer;
8
+ }
9
+ interface SimKmsAliasCommandOptions {
10
+ readonly caller?: SimAwsCaller;
11
+ }
12
+ /**
13
+ * The alias commands of one simulated KMS scope.
14
+ */
15
+ export declare class SimKmsAliasCommands {
16
+ private readonly keys;
17
+ private readonly authorizer;
18
+ private readonly aliasName;
19
+ constructor(properties: SimKmsAliasCommandsProperties);
20
+ /**
21
+ * Point a new alias at a key.
22
+ *
23
+ * Real KMS checks kms:CreateAlias against both the alias and the target key.
24
+ * Only the key is checked here, because the key is what the alias gives
25
+ * access to and it is the half that carries a policy.
26
+ */
27
+ create(command: SimCreateAliasCommand, options?: SimKmsAliasCommandOptions): SimCreateAliasCommandOutput;
28
+ /**
29
+ * List aliases, optionally narrowed to one key's.
30
+ */
31
+ list(command: SimListAliasesCommand, options?: SimKmsAliasCommandOptions): SimListAliasesCommandOutput;
32
+ }
33
+ export {};
34
+ //# sourceMappingURL=sim-kms-alias-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-kms-alias-commands.d.ts","sourceRoot":"","sources":["../../../../../src/service/kms/command/alias/sim-kms-alias-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAG1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AAE5B,UAAU,6BAA6B;IACrC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;CACvC;AAED,UAAU,yBAAyB;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IAEnD,YAAY,UAAU,EAAE,6BAA6B,EAGpD;IAED;;;;;;OAMG;IACH,MAAM,CACJ,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE,yBAAyB,GAClC,2BAA2B,CAc7B;IAED;;OAEG;IACH,IAAI,CACF,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE,yBAAyB,GAClC,2BAA2B,CAyB7B;CACF"}
@@ -0,0 +1,56 @@
1
+ import { SimKmsValidationException } from "../../error/sim-kms.error.js";
2
+ import { SimKmsAliasName } from "../../key/sim-kms-alias.js";
3
+ /**
4
+ * The alias commands of one simulated KMS scope.
5
+ */
6
+ export class SimKmsAliasCommands {
7
+ keys;
8
+ authorizer;
9
+ aliasName = new SimKmsAliasName();
10
+ constructor(properties) {
11
+ this.keys = properties.keys;
12
+ this.authorizer = properties.authorizer;
13
+ }
14
+ /**
15
+ * Point a new alias at a key.
16
+ *
17
+ * Real KMS checks kms:CreateAlias against both the alias and the target key.
18
+ * Only the key is checked here, because the key is what the alias gives
19
+ * access to and it is the half that carries a policy.
20
+ */
21
+ create(command, options) {
22
+ const aliasName = command.input.AliasName;
23
+ if (aliasName === undefined) {
24
+ throw new SimKmsValidationException("AliasName is required");
25
+ }
26
+ this.aliasName.validateCustomerAlias(aliasName);
27
+ const key = this.keys.require(command.input.TargetKeyId);
28
+ this.authorizer.authorizeKey("kms:CreateAlias", key, options?.caller);
29
+ this.keys.addAlias(aliasName, key);
30
+ return { $metadata: {} };
31
+ }
32
+ /**
33
+ * List aliases, optionally narrowed to one key's.
34
+ */
35
+ list(command, options) {
36
+ this.authorizer.authorizeAccount("kms:ListAliases", options?.caller);
37
+ const keyId = command.input?.KeyId;
38
+ const aliases = this.keys
39
+ .aliasesFor(keyId === undefined ? undefined : this.keys.require(keyId).keyId)
40
+ .map((alias) => ({
41
+ AliasName: alias.aliasName,
42
+ AliasArn: alias.arn,
43
+ TargetKeyId: alias.targetKeyId,
44
+ }));
45
+ const limit = command.input?.Limit;
46
+ if (limit === undefined || aliases.length <= limit) {
47
+ return { $metadata: {}, Aliases: aliases, Truncated: false };
48
+ }
49
+ return {
50
+ $metadata: {},
51
+ Aliases: aliases.slice(0, limit),
52
+ Truncated: true,
53
+ };
54
+ }
55
+ }
56
+ //# sourceMappingURL=sim-kms-alias-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-kms-alias-commands.js","sourceRoot":"","sources":["../../../../../src/service/kms/command/alias/sim-kms-alias-commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAmB7D;;GAEG;AACH,MAAM,OAAO,mBAAmB;IACb,IAAI,CAAiB;IACrB,UAAU,CAAmB;IAC7B,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;IAEnD,YAAY,UAAyC;QACnD,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CACJ,OAA8B,EAC9B,OAAmC;QAEnC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QAE1C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,yBAAyB,CAAC,uBAAuB,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAEhD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,iBAAiB,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAEnC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,CACF,OAA8B,EAC9B,OAAmC;QAEnC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAErE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI;aACtB,UAAU,CACT,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CACjE;aACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACf,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,GAAG;YACnB,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC,CAAC,CAAC;QAEN,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;QAEnC,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;YACnD,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC/D,CAAC;QAED,OAAO;YACL,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;YAChC,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,38 @@
1
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
2
+ import type { SimAwsAccountRegionScope } from "../../../aws/sim-aws-account-region-scope.js";
3
+ import type { SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
4
+ import type { SimKmsKey } from "../../key/sim-kms-key.js";
5
+ interface SimKmsAuthorizerProperties {
6
+ readonly iam: SimIamInterServiceAuthZ;
7
+ readonly accountRegionScope: SimAwsAccountRegionScope;
8
+ }
9
+ /**
10
+ * Applies simulated IAM authorization to KMS requests.
11
+ *
12
+ * KMS splits into two kinds of request, and they authorize differently:
13
+ *
14
+ * - operations on an existing key, where the key policy is mandatory and must
15
+ * allow the request, so an identity policy alone never reaches the key;
16
+ * - operations with no key to speak of, such as CreateKey and ListKeys, which
17
+ * real KMS gives no resource-level permissions and so are authorized against
18
+ * `*` with identity policies alone.
19
+ */
20
+ export declare class SimKmsAuthorizer {
21
+ private readonly iam;
22
+ private readonly accountRegionScope;
23
+ constructor(properties: SimKmsAuthorizerProperties);
24
+ /**
25
+ * Ensure the caller may perform an action on a key.
26
+ *
27
+ * The key's policy is supplied as the resource side and is required to
28
+ * allow: this is the rule that makes a KMS key policy the root of trust for
29
+ * its key rather than one more input to the decision.
30
+ */
31
+ authorizeKey(action: string, key: SimKmsKey, caller?: SimAwsCaller): void;
32
+ /**
33
+ * Ensure the caller may perform an action that names no particular key.
34
+ */
35
+ authorizeAccount(action: string, caller?: SimAwsCaller): void;
36
+ }
37
+ export {};
38
+ //# sourceMappingURL=sim-kms-authorizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-kms-authorizer.d.ts","sourceRoot":"","sources":["../../../../../src/service/kms/command/authorize/sim-kms-authorizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wDAAwD,CAAC;AAEtG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,UAAU,0BAA0B;IAClC,QAAQ,CAAC,GAAG,EAAE,uBAAuB,CAAC;IACtC,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;CACvD;AAED;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA0B;IAC9C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAE9D,YAAY,UAAU,EAAE,0BAA0B,EAGjD;IAED;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAgBxE;IAED;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAY5D;CACF"}