@kensio/yulin 0.36.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 (545) 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-account-service-cache.d.ts.map +1 -1
  11. package/dist/service/aws/factory/sim-aws-account-service-cache.js +3 -0
  12. package/dist/service/aws/factory/sim-aws-account-service-cache.js.map +1 -1
  13. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +8 -0
  14. package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
  15. package/dist/service/aws/factory/sim-aws-service-factory.js +14 -0
  16. package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
  17. package/dist/service/aws/sim-aws-account-region-scope.d.ts +5 -0
  18. package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
  19. package/dist/service/aws/sim-aws-account-region-scope.js +6 -0
  20. package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
  21. package/dist/service/aws/sim-aws-account.d.ts +5 -0
  22. package/dist/service/aws/sim-aws-account.d.ts.map +1 -1
  23. package/dist/service/aws/sim-aws-account.js +6 -0
  24. package/dist/service/aws/sim-aws-account.js.map +1 -1
  25. package/dist/service/aws/sim-aws-region.d.ts +5 -0
  26. package/dist/service/aws/sim-aws-region.d.ts.map +1 -1
  27. package/dist/service/aws/sim-aws-region.js +6 -0
  28. package/dist/service/aws/sim-aws-region.js.map +1 -1
  29. package/dist/service/aws/sim-aws-request-authentication.d.ts +35 -0
  30. package/dist/service/aws/sim-aws-request-authentication.d.ts.map +1 -0
  31. package/dist/service/aws/sim-aws-request-authentication.js +32 -0
  32. package/dist/service/aws/sim-aws-request-authentication.js.map +1 -0
  33. package/dist/service/aws/sim-aws.d.ts +7 -21
  34. package/dist/service/aws/sim-aws.d.ts.map +1 -1
  35. package/dist/service/aws/sim-aws.js +15 -26
  36. package/dist/service/aws/sim-aws.js.map +1 -1
  37. package/dist/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.d.ts.map +1 -1
  38. package/dist/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.js +1 -1
  39. package/dist/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.js.map +1 -1
  40. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js +1 -1
  41. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js.map +1 -1
  42. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.d.ts.map +1 -1
  43. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js +2 -1
  44. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js.map +1 -1
  45. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts +116 -0
  46. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts.map +1 -0
  47. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js +126 -0
  48. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js.map +1 -0
  49. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts +52 -0
  50. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts.map +1 -0
  51. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js +77 -0
  52. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js.map +1 -0
  53. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account-resolver.d.ts +37 -0
  54. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account-resolver.d.ts.map +1 -0
  55. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account-resolver.js +33 -0
  56. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account-resolver.js.map +1 -0
  57. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account.d.ts +21 -0
  58. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account.d.ts.map +1 -0
  59. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account.js +2 -0
  60. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account.js.map +1 -0
  61. package/dist/service/iam/authorize/caller-account/sim-iam-cross-account-caller.d.ts +34 -0
  62. package/dist/service/iam/authorize/caller-account/sim-iam-cross-account-caller.d.ts.map +1 -0
  63. package/dist/service/iam/authorize/caller-account/sim-iam-cross-account-caller.js +22 -0
  64. package/dist/service/iam/authorize/caller-account/sim-iam-cross-account-caller.js.map +1 -0
  65. package/dist/service/iam/authorize/caller-account/sim-iam-same-account-caller.d.ts +18 -0
  66. package/dist/service/iam/authorize/caller-account/sim-iam-same-account-caller.d.ts.map +1 -0
  67. package/dist/service/iam/authorize/caller-account/sim-iam-same-account-caller.js +16 -0
  68. package/dist/service/iam/authorize/caller-account/sim-iam-same-account-caller.js.map +1 -0
  69. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.d.ts +17 -0
  70. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.d.ts.map +1 -0
  71. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.js +24 -0
  72. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.js.map +1 -0
  73. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts +1 -2
  74. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts.map +1 -1
  75. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +49 -2
  76. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts.map +1 -1
  77. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +44 -8
  78. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js.map +1 -1
  79. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.d.ts +9 -0
  80. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.d.ts.map +1 -1
  81. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.d.ts.map +1 -1
  82. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.js +2 -0
  83. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.js.map +1 -1
  84. package/dist/service/iam/authorize/identity/sim-iam-account-identity-policies.d.ts +14 -0
  85. package/dist/service/iam/authorize/identity/sim-iam-account-identity-policies.d.ts.map +1 -0
  86. package/dist/service/iam/authorize/identity/sim-iam-account-identity-policies.js +2 -0
  87. package/dist/service/iam/authorize/identity/sim-iam-account-identity-policies.js.map +1 -0
  88. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts +6 -1
  89. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts.map +1 -1
  90. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js +25 -16
  91. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js.map +1 -1
  92. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts +2 -1
  93. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts.map +1 -1
  94. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js +2 -1
  95. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js.map +1 -1
  96. package/dist/service/iam/authorize/match/sim-iam-principal-match.d.ts +39 -0
  97. package/dist/service/iam/authorize/match/sim-iam-principal-match.d.ts.map +1 -0
  98. package/dist/service/iam/authorize/match/sim-iam-principal-match.js +55 -0
  99. package/dist/service/iam/authorize/match/sim-iam-principal-match.js.map +1 -0
  100. package/dist/service/iam/authorize/sim-iam-account-auth-z.d.ts +24 -1
  101. package/dist/service/iam/authorize/sim-iam-account-auth-z.d.ts.map +1 -1
  102. package/dist/service/iam/authorize/sim-iam-account-auth-z.js +18 -4
  103. package/dist/service/iam/authorize/sim-iam-account-auth-z.js.map +1 -1
  104. package/dist/service/iam/authorize/sim-iam-authorizer.d.ts +11 -2
  105. package/dist/service/iam/authorize/sim-iam-authorizer.d.ts.map +1 -1
  106. package/dist/service/iam/authorize/sim-iam-authorizer.js +14 -1
  107. package/dist/service/iam/authorize/sim-iam-authorizer.js.map +1 -1
  108. package/dist/service/iam/authorize/sim-iam-decision.d.ts +17 -5
  109. package/dist/service/iam/authorize/sim-iam-decision.d.ts.map +1 -1
  110. package/dist/service/iam/authorize/sim-iam-decision.js +29 -14
  111. package/dist/service/iam/authorize/sim-iam-decision.js.map +1 -1
  112. package/dist/service/iam/command/sim-iam-command-handlers.d.ts +41 -0
  113. package/dist/service/iam/command/sim-iam-command-handlers.d.ts.map +1 -0
  114. package/dist/service/iam/command/sim-iam-command-handlers.js +42 -0
  115. package/dist/service/iam/command/sim-iam-command-handlers.js.map +1 -0
  116. package/dist/service/iam/index.d.ts +1 -0
  117. package/dist/service/iam/index.d.ts.map +1 -1
  118. package/dist/service/iam/index.js +1 -0
  119. package/dist/service/iam/index.js.map +1 -1
  120. package/dist/service/iam/registry/sim-iam-account-resolver.d.ts +8 -0
  121. package/dist/service/iam/registry/sim-iam-account-resolver.d.ts.map +1 -1
  122. package/dist/service/iam/registry/sim-iam-registry.d.ts +4 -0
  123. package/dist/service/iam/registry/sim-iam-registry.d.ts.map +1 -1
  124. package/dist/service/iam/registry/sim-iam-registry.js +7 -1
  125. package/dist/service/iam/registry/sim-iam-registry.js.map +1 -1
  126. package/dist/service/iam/request/sim-aws-request-caller-resolver.d.ts +21 -5
  127. package/dist/service/iam/request/sim-aws-request-caller-resolver.d.ts.map +1 -1
  128. package/dist/service/iam/request/sim-aws-request-caller-resolver.js +15 -9
  129. package/dist/service/iam/request/sim-aws-request-caller-resolver.js.map +1 -1
  130. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.d.ts +3 -1
  131. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.d.ts.map +1 -1
  132. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.js +6 -4
  133. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.js.map +1 -1
  134. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.d.ts +34 -14
  135. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.d.ts.map +1 -1
  136. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.js +56 -29
  137. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.js.map +1 -1
  138. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.d.ts +13 -1
  139. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.d.ts.map +1 -1
  140. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.js +14 -0
  141. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.js.map +1 -1
  142. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.d.ts +25 -0
  143. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.d.ts.map +1 -0
  144. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.js +41 -0
  145. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.js.map +1 -0
  146. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.d.ts +27 -0
  147. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.d.ts.map +1 -0
  148. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.js +41 -0
  149. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.js.map +1 -0
  150. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.d.ts +39 -0
  151. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.d.ts.map +1 -0
  152. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.js +59 -0
  153. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.js.map +1 -0
  154. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.d.ts +30 -0
  155. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.d.ts.map +1 -0
  156. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.js +64 -0
  157. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.js.map +1 -0
  158. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.d.ts +2 -1
  159. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.d.ts.map +1 -1
  160. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.js.map +1 -1
  161. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.d.ts +22 -1
  162. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.d.ts.map +1 -1
  163. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.js +49 -7
  164. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.js.map +1 -1
  165. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.d.ts +9 -2
  166. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.d.ts.map +1 -1
  167. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.js +5 -5
  168. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.js.map +1 -1
  169. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.d.ts +16 -0
  170. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.d.ts.map +1 -0
  171. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.js +2 -0
  172. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.js.map +1 -0
  173. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.d.ts +12 -3
  174. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.d.ts.map +1 -1
  175. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.js +9 -5
  176. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.js.map +1 -1
  177. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.d.ts +20 -4
  178. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.d.ts.map +1 -1
  179. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.js +52 -6
  180. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.js.map +1 -1
  181. package/dist/service/iam/sim-iam-account-parts.d.ts +58 -0
  182. package/dist/service/iam/sim-iam-account-parts.d.ts.map +1 -0
  183. package/dist/service/iam/sim-iam-account-parts.js +72 -0
  184. package/dist/service/iam/sim-iam-account-parts.js.map +1 -0
  185. package/dist/service/iam/sim-iam.d.ts +28 -21
  186. package/dist/service/iam/sim-iam.d.ts.map +1 -1
  187. package/dist/service/iam/sim-iam.js +42 -71
  188. package/dist/service/iam/sim-iam.js.map +1 -1
  189. package/dist/service/kms/command/alias/alias.command.d.ts +43 -0
  190. package/dist/service/kms/command/alias/alias.command.d.ts.map +1 -0
  191. package/dist/service/kms/command/alias/alias.command.js +2 -0
  192. package/dist/service/kms/command/alias/alias.command.js.map +1 -0
  193. package/dist/service/kms/command/alias/sim-kms-alias-commands.d.ts +34 -0
  194. package/dist/service/kms/command/alias/sim-kms-alias-commands.d.ts.map +1 -0
  195. package/dist/service/kms/command/alias/sim-kms-alias-commands.js +56 -0
  196. package/dist/service/kms/command/alias/sim-kms-alias-commands.js.map +1 -0
  197. package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts +38 -0
  198. package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts.map +1 -0
  199. package/dist/service/kms/command/authorize/sim-kms-authorizer.js +58 -0
  200. package/dist/service/kms/command/authorize/sim-kms-authorizer.js.map +1 -0
  201. package/dist/service/kms/command/crypto/crypto.command.d.ts +68 -0
  202. package/dist/service/kms/command/crypto/crypto.command.d.ts.map +1 -0
  203. package/dist/service/kms/command/crypto/crypto.command.js +2 -0
  204. package/dist/service/kms/command/crypto/crypto.command.js.map +1 -0
  205. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.d.ts +40 -0
  206. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.d.ts.map +1 -0
  207. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.js +58 -0
  208. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.js.map +1 -0
  209. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.d.ts +38 -0
  210. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.d.ts.map +1 -0
  211. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.js +74 -0
  212. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.js.map +1 -0
  213. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.d.ts +16 -0
  214. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.d.ts.map +1 -0
  215. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.js +50 -0
  216. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.js.map +1 -0
  217. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.d.ts +31 -0
  218. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.d.ts.map +1 -0
  219. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.js +35 -0
  220. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.js.map +1 -0
  221. package/dist/service/kms/command/key/key.command.d.ts +159 -0
  222. package/dist/service/kms/command/key/key.command.d.ts.map +1 -0
  223. package/dist/service/kms/command/key/key.command.js +2 -0
  224. package/dist/service/kms/command/key/key.command.js.map +1 -0
  225. package/dist/service/kms/command/key/sim-kms-key-commands.d.ts +41 -0
  226. package/dist/service/kms/command/key/sim-kms-key-commands.d.ts.map +1 -0
  227. package/dist/service/kms/command/key/sim-kms-key-commands.js +45 -0
  228. package/dist/service/kms/command/key/sim-kms-key-commands.js.map +1 -0
  229. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.d.ts +48 -0
  230. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.d.ts.map +1 -0
  231. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.js +67 -0
  232. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.js.map +1 -0
  233. package/dist/service/kms/command/key/sim-kms-key-policy-commands.d.ts +39 -0
  234. package/dist/service/kms/command/key/sim-kms-key-policy-commands.d.ts.map +1 -0
  235. package/dist/service/kms/command/key/sim-kms-key-policy-commands.js +57 -0
  236. package/dist/service/kms/command/key/sim-kms-key-policy-commands.js.map +1 -0
  237. package/dist/service/kms/command/key/sim-kms-key-type.d.ts +14 -0
  238. package/dist/service/kms/command/key/sim-kms-key-type.d.ts.map +1 -0
  239. package/dist/service/kms/command/key/sim-kms-key-type.js +31 -0
  240. package/dist/service/kms/command/key/sim-kms-key-type.js.map +1 -0
  241. package/dist/service/kms/command/key/sim-kms-list-keys.d.ts +29 -0
  242. package/dist/service/kms/command/key/sim-kms-list-keys.d.ts.map +1 -0
  243. package/dist/service/kms/command/key/sim-kms-list-keys.js +31 -0
  244. package/dist/service/kms/command/key/sim-kms-list-keys.js.map +1 -0
  245. package/dist/service/kms/command/key/sim-kms-pending-window.d.ts +17 -0
  246. package/dist/service/kms/command/key/sim-kms-pending-window.d.ts.map +1 -0
  247. package/dist/service/kms/command/key/sim-kms-pending-window.js +37 -0
  248. package/dist/service/kms/command/key/sim-kms-pending-window.js.map +1 -0
  249. package/dist/service/kms/command/sim-kms-command.types.d.ts +10 -0
  250. package/dist/service/kms/command/sim-kms-command.types.d.ts.map +1 -0
  251. package/dist/service/kms/command/sim-kms-command.types.js +2 -0
  252. package/dist/service/kms/command/sim-kms-command.types.js.map +1 -0
  253. package/dist/service/kms/error/sim-kms.error.d.ts +88 -0
  254. package/dist/service/kms/error/sim-kms.error.d.ts.map +1 -0
  255. package/dist/service/kms/error/sim-kms.error.js +101 -0
  256. package/dist/service/kms/error/sim-kms.error.js.map +1 -0
  257. package/dist/service/kms/index.d.ts +8 -0
  258. package/dist/service/kms/index.d.ts.map +1 -0
  259. package/dist/service/kms/index.js +6 -0
  260. package/dist/service/kms/index.js.map +1 -0
  261. package/dist/service/kms/key/sim-kms-alias.d.ts +45 -0
  262. package/dist/service/kms/key/sim-kms-alias.d.ts.map +1 -0
  263. package/dist/service/kms/key/sim-kms-alias.js +59 -0
  264. package/dist/service/kms/key/sim-kms-alias.js.map +1 -0
  265. package/dist/service/kms/key/sim-kms-ciphertext-blob.d.ts +43 -0
  266. package/dist/service/kms/key/sim-kms-ciphertext-blob.d.ts.map +1 -0
  267. package/dist/service/kms/key/sim-kms-ciphertext-blob.js +89 -0
  268. package/dist/service/kms/key/sim-kms-ciphertext-blob.js.map +1 -0
  269. package/dist/service/kms/key/sim-kms-encryption-context.d.ts +34 -0
  270. package/dist/service/kms/key/sim-kms-encryption-context.d.ts.map +1 -0
  271. package/dist/service/kms/key/sim-kms-encryption-context.js +39 -0
  272. package/dist/service/kms/key/sim-kms-encryption-context.js.map +1 -0
  273. package/dist/service/kms/key/sim-kms-key-factory.d.ts +36 -0
  274. package/dist/service/kms/key/sim-kms-key-factory.d.ts.map +1 -0
  275. package/dist/service/kms/key/sim-kms-key-factory.js +47 -0
  276. package/dist/service/kms/key/sim-kms-key-factory.js.map +1 -0
  277. package/dist/service/kms/key/sim-kms-key-identifier.d.ts +44 -0
  278. package/dist/service/kms/key/sim-kms-key-identifier.d.ts.map +1 -0
  279. package/dist/service/kms/key/sim-kms-key-identifier.js +81 -0
  280. package/dist/service/kms/key/sim-kms-key-identifier.js.map +1 -0
  281. package/dist/service/kms/key/sim-kms-key-lifecycle.d.ts +71 -0
  282. package/dist/service/kms/key/sim-kms-key-lifecycle.d.ts.map +1 -0
  283. package/dist/service/kms/key/sim-kms-key-lifecycle.js +106 -0
  284. package/dist/service/kms/key/sim-kms-key-lifecycle.js.map +1 -0
  285. package/dist/service/kms/key/sim-kms-key-material.d.ts +36 -0
  286. package/dist/service/kms/key/sim-kms-key-material.d.ts.map +1 -0
  287. package/dist/service/kms/key/sim-kms-key-material.js +74 -0
  288. package/dist/service/kms/key/sim-kms-key-material.js.map +1 -0
  289. package/dist/service/kms/key/sim-kms-key-metadata.d.ts +45 -0
  290. package/dist/service/kms/key/sim-kms-key-metadata.d.ts.map +1 -0
  291. package/dist/service/kms/key/sim-kms-key-metadata.js +44 -0
  292. package/dist/service/kms/key/sim-kms-key-metadata.js.map +1 -0
  293. package/dist/service/kms/key/sim-kms-key-policy.d.ts +45 -0
  294. package/dist/service/kms/key/sim-kms-key-policy.d.ts.map +1 -0
  295. package/dist/service/kms/key/sim-kms-key-policy.js +69 -0
  296. package/dist/service/kms/key/sim-kms-key-policy.js.map +1 -0
  297. package/dist/service/kms/key/sim-kms-key-store.d.ts +58 -0
  298. package/dist/service/kms/key/sim-kms-key-store.d.ts.map +1 -0
  299. package/dist/service/kms/key/sim-kms-key-store.js +111 -0
  300. package/dist/service/kms/key/sim-kms-key-store.js.map +1 -0
  301. package/dist/service/kms/key/sim-kms-key.d.ts +88 -0
  302. package/dist/service/kms/key/sim-kms-key.d.ts.map +1 -0
  303. package/dist/service/kms/key/sim-kms-key.js +106 -0
  304. package/dist/service/kms/key/sim-kms-key.js.map +1 -0
  305. package/dist/service/kms/key/sim-kms-policy-document.d.ts +30 -0
  306. package/dist/service/kms/key/sim-kms-policy-document.d.ts.map +1 -0
  307. package/dist/service/kms/key/sim-kms-policy-document.js +54 -0
  308. package/dist/service/kms/key/sim-kms-policy-document.js.map +1 -0
  309. package/dist/service/kms/sdk/sim-kms-sdk-command-router.d.ts +18 -0
  310. package/dist/service/kms/sdk/sim-kms-sdk-command-router.d.ts.map +1 -0
  311. package/dist/service/kms/sdk/sim-kms-sdk-command-router.js +80 -0
  312. package/dist/service/kms/sdk/sim-kms-sdk-command-router.js.map +1 -0
  313. package/dist/service/kms/sim-kms.d.ts +105 -0
  314. package/dist/service/kms/sim-kms.d.ts.map +1 -0
  315. package/dist/service/kms/sim-kms.js +187 -0
  316. package/dist/service/kms/sim-kms.js.map +1 -0
  317. package/dist/service/lambda/command/create-function/create-function.handler.d.ts.map +1 -1
  318. package/dist/service/lambda/command/create-function/create-function.handler.js +3 -0
  319. package/dist/service/lambda/command/create-function/create-function.handler.js.map +1 -1
  320. package/dist/service/lambda/function/code/sim-lambda-code-resolver.d.ts +6 -0
  321. package/dist/service/lambda/function/code/sim-lambda-code-resolver.d.ts.map +1 -1
  322. package/dist/service/lambda/function/code/sim-lambda-code-resolver.js +1 -0
  323. package/dist/service/lambda/function/code/sim-lambda-code-resolver.js.map +1 -1
  324. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +15 -0
  325. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts.map +1 -1
  326. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +5 -0
  327. package/dist/service/lambda/function/code/sim-lambda-executable-code.js.map +1 -1
  328. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.d.ts +3 -0
  329. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.d.ts.map +1 -1
  330. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.js +3 -0
  331. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.js.map +1 -1
  332. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +11 -0
  333. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts.map +1 -1
  334. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +7 -2
  335. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js.map +1 -1
  336. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +6 -5
  337. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts.map +1 -1
  338. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +10 -5
  339. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js.map +1 -1
  340. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.d.ts +53 -0
  341. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.d.ts.map +1 -0
  342. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.js +101 -0
  343. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.js.map +1 -0
  344. package/dist/service/lambda/function/sim-lambda-function.d.ts +8 -0
  345. package/dist/service/lambda/function/sim-lambda-function.d.ts.map +1 -1
  346. package/dist/service/lambda/function/sim-lambda-function.js +15 -1
  347. package/dist/service/lambda/function/sim-lambda-function.js.map +1 -1
  348. package/dist/service/lambda/serve/sim-lambda-url-router.js +1 -1
  349. package/dist/service/lambda/serve/sim-lambda-url-router.js.map +1 -1
  350. package/dist/service/route53/resolve/sim-r53-service-target-resolver.d.ts +14 -0
  351. package/dist/service/route53/resolve/sim-r53-service-target-resolver.d.ts.map +1 -1
  352. package/dist/service/route53/resolve/sim-r53-service-target-resolver.js +38 -0
  353. package/dist/service/route53/resolve/sim-r53-service-target-resolver.js.map +1 -1
  354. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.d.ts +7 -0
  355. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.d.ts.map +1 -0
  356. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.js +73 -0
  357. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.js.map +1 -0
  358. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.d.ts +61 -0
  359. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.d.ts.map +1 -0
  360. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.js +57 -0
  361. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.js.map +1 -0
  362. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.d.ts +19 -0
  363. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.d.ts.map +1 -0
  364. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.js +28 -0
  365. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.js.map +1 -0
  366. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.d.ts +18 -0
  367. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.d.ts.map +1 -0
  368. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.js +35 -0
  369. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.js.map +1 -0
  370. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.d.ts +11 -0
  371. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.d.ts.map +1 -0
  372. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.js +34 -0
  373. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.js.map +1 -0
  374. package/dist/service/s3/bucket/sim-s3-bucket-arn.d.ts +9 -0
  375. package/dist/service/s3/bucket/sim-s3-bucket-arn.d.ts.map +1 -0
  376. package/dist/service/s3/bucket/sim-s3-bucket-arn.js +10 -0
  377. package/dist/service/s3/bucket/sim-s3-bucket-arn.js.map +1 -0
  378. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +25 -0
  379. package/dist/service/s3/bucket/sim-s3-bucket.d.ts.map +1 -1
  380. package/dist/service/s3/bucket/sim-s3-bucket.js +34 -1
  381. package/dist/service/s3/bucket/sim-s3-bucket.js.map +1 -1
  382. package/dist/service/s3/bucket/sim-s3-endpoint-url.d.ts +16 -0
  383. package/dist/service/s3/bucket/sim-s3-endpoint-url.d.ts.map +1 -0
  384. package/dist/service/s3/bucket/sim-s3-endpoint-url.js +19 -0
  385. package/dist/service/s3/bucket/sim-s3-endpoint-url.js.map +1 -0
  386. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.d.ts +13 -0
  387. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.d.ts.map +1 -0
  388. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.js +36 -0
  389. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.js.map +1 -0
  390. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts +27 -0
  391. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts.map +1 -0
  392. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js +92 -0
  393. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js.map +1 -0
  394. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.d.ts +32 -0
  395. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.d.ts.map +1 -0
  396. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.js +55 -0
  397. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.js.map +1 -0
  398. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.d.ts +2 -4
  399. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.d.ts.map +1 -1
  400. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.js +10 -61
  401. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.js.map +1 -1
  402. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.d.ts +11 -0
  403. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.d.ts.map +1 -0
  404. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.js +22 -0
  405. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.js.map +1 -0
  406. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.d.ts +23 -0
  407. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.d.ts.map +1 -0
  408. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.js +36 -0
  409. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.js.map +1 -0
  410. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.d.ts +20 -0
  411. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.d.ts.map +1 -0
  412. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.js +2 -0
  413. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.js.map +1 -0
  414. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.d.ts +32 -0
  415. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.d.ts.map +1 -0
  416. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.js +37 -0
  417. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.js.map +1 -0
  418. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.d.ts +20 -0
  419. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.d.ts.map +1 -0
  420. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.js +2 -0
  421. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.js.map +1 -0
  422. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.d.ts +30 -0
  423. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.d.ts.map +1 -0
  424. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.js +35 -0
  425. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.js.map +1 -0
  426. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.d.ts +20 -0
  427. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.d.ts.map +1 -0
  428. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.js +33 -0
  429. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.js.map +1 -0
  430. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.d.ts +24 -0
  431. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.d.ts.map +1 -0
  432. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.js +2 -0
  433. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.js.map +1 -0
  434. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.d.ts +29 -0
  435. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.d.ts.map +1 -0
  436. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.js +40 -0
  437. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.js.map +1 -0
  438. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.d.ts +22 -0
  439. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.d.ts.map +1 -0
  440. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.js +2 -0
  441. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.js.map +1 -0
  442. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.d.ts +32 -0
  443. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.d.ts.map +1 -0
  444. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.js +39 -0
  445. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.js.map +1 -0
  446. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.d.ts +31 -0
  447. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.d.ts.map +1 -0
  448. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.js +48 -0
  449. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.js.map +1 -0
  450. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.d.ts +1 -0
  451. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.d.ts.map +1 -1
  452. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js +7 -6
  453. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js.map +1 -1
  454. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.d.ts +22 -0
  455. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.d.ts.map +1 -0
  456. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.js +2 -0
  457. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.js.map +1 -0
  458. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.d.ts +33 -0
  459. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.d.ts.map +1 -0
  460. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.js +40 -0
  461. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.js.map +1 -0
  462. package/dist/service/s3/command/require-sim-s3-bucket.d.ts +10 -0
  463. package/dist/service/s3/command/require-sim-s3-bucket.d.ts.map +1 -0
  464. package/dist/service/s3/command/require-sim-s3-bucket.js +16 -0
  465. package/dist/service/s3/command/require-sim-s3-bucket.js.map +1 -0
  466. package/dist/service/s3/command/sim-s3-command-handlers.d.ts +91 -0
  467. package/dist/service/s3/command/sim-s3-command-handlers.d.ts.map +1 -0
  468. package/dist/service/s3/command/sim-s3-command-handlers.js +115 -0
  469. package/dist/service/s3/command/sim-s3-command-handlers.js.map +1 -0
  470. package/dist/service/s3/command/sim-s3-command.types.d.ts +19 -0
  471. package/dist/service/s3/command/sim-s3-command.types.d.ts.map +1 -0
  472. package/dist/service/s3/command/sim-s3-command.types.js +8 -0
  473. package/dist/service/s3/command/sim-s3-command.types.js.map +1 -0
  474. package/dist/service/s3/error/sim-s3-checksum.error.d.ts +28 -0
  475. package/dist/service/s3/error/sim-s3-checksum.error.d.ts.map +1 -0
  476. package/dist/service/s3/error/sim-s3-checksum.error.js +32 -0
  477. package/dist/service/s3/error/sim-s3-checksum.error.js.map +1 -0
  478. package/dist/service/s3/error/sim-s3.error.d.ts +20 -0
  479. package/dist/service/s3/error/sim-s3.error.d.ts.map +1 -1
  480. package/dist/service/s3/error/sim-s3.error.js +24 -0
  481. package/dist/service/s3/error/sim-s3.error.js.map +1 -1
  482. package/dist/service/s3/sdk/sim-s3-sdk-command-router.d.ts.map +1 -1
  483. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +20 -0
  484. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js.map +1 -1
  485. package/dist/service/s3/serve/sim-s3-bucket-locator.d.ts +40 -0
  486. package/dist/service/s3/serve/sim-s3-bucket-locator.d.ts.map +1 -0
  487. package/dist/service/s3/serve/sim-s3-bucket-locator.js +59 -0
  488. package/dist/service/s3/serve/sim-s3-bucket-locator.js.map +1 -0
  489. package/dist/service/s3/serve/sim-s3-controller.d.ts +7 -0
  490. package/dist/service/s3/serve/sim-s3-controller.d.ts.map +1 -1
  491. package/dist/service/s3/serve/sim-s3-controller.js +14 -2
  492. package/dist/service/s3/serve/sim-s3-controller.js.map +1 -1
  493. package/dist/service/s3/serve/sim-s3-get-object-controller.d.ts +40 -6
  494. package/dist/service/s3/serve/sim-s3-get-object-controller.d.ts.map +1 -1
  495. package/dist/service/s3/serve/sim-s3-get-object-controller.js +80 -49
  496. package/dist/service/s3/serve/sim-s3-get-object-controller.js.map +1 -1
  497. package/dist/service/s3/serve/sim-s3-object-address.d.ts +42 -0
  498. package/dist/service/s3/serve/sim-s3-object-address.d.ts.map +1 -0
  499. package/dist/service/s3/serve/sim-s3-object-address.js +66 -0
  500. package/dist/service/s3/serve/sim-s3-object-address.js.map +1 -0
  501. package/dist/service/s3/serve/sim-s3-request-router.d.ts +18 -13
  502. package/dist/service/s3/serve/sim-s3-request-router.d.ts.map +1 -1
  503. package/dist/service/s3/serve/sim-s3-request-router.js +72 -48
  504. package/dist/service/s3/serve/sim-s3-request-router.js.map +1 -1
  505. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +36 -0
  506. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts.map +1 -0
  507. package/dist/service/s3/serve/sim-s3-rest-controller.js +92 -0
  508. package/dist/service/s3/serve/sim-s3-rest-controller.js.map +1 -0
  509. package/dist/service/s3/serve/sim-s3-rest-error-response.d.ts +28 -0
  510. package/dist/service/s3/serve/sim-s3-rest-error-response.d.ts.map +1 -0
  511. package/dist/service/s3/serve/sim-s3-rest-error-response.js +63 -0
  512. package/dist/service/s3/serve/sim-s3-rest-error-response.js.map +1 -0
  513. package/dist/service/s3/serve/sim-s3-rest-refusal.d.ts +7 -0
  514. package/dist/service/s3/serve/sim-s3-rest-refusal.d.ts.map +1 -0
  515. package/dist/service/s3/serve/sim-s3-rest-refusal.js +18 -0
  516. package/dist/service/s3/serve/sim-s3-rest-refusal.js.map +1 -0
  517. package/dist/service/s3/serve/sim-s3-route.d.ts +40 -0
  518. package/dist/service/s3/serve/sim-s3-route.d.ts.map +1 -0
  519. package/dist/service/s3/serve/sim-s3-route.js +7 -0
  520. package/dist/service/s3/serve/sim-s3-route.js.map +1 -0
  521. package/dist/service/s3/serve/sim-s3-upload-checksum.d.ts +27 -0
  522. package/dist/service/s3/serve/sim-s3-upload-checksum.d.ts.map +1 -0
  523. package/dist/service/s3/serve/sim-s3-upload-checksum.js +86 -0
  524. package/dist/service/s3/serve/sim-s3-upload-checksum.js.map +1 -0
  525. package/dist/service/s3/serve/website/sim-s3-website-object-loader.d.ts +51 -0
  526. package/dist/service/s3/serve/website/sim-s3-website-object-loader.d.ts.map +1 -0
  527. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +75 -0
  528. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js.map +1 -0
  529. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +18 -0
  530. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts.map +1 -0
  531. package/dist/service/s3/serve/website/sim-s3-website-object.js +28 -0
  532. package/dist/service/s3/serve/website/sim-s3-website-object.js.map +1 -0
  533. package/dist/service/s3/serve/website/sim-s3-website-responses.d.ts +27 -0
  534. package/dist/service/s3/serve/website/sim-s3-website-responses.d.ts.map +1 -0
  535. package/dist/service/s3/serve/website/sim-s3-website-responses.js +44 -0
  536. package/dist/service/s3/serve/website/sim-s3-website-responses.js.map +1 -0
  537. package/dist/service/s3/sim-s3.d.ts +34 -9
  538. package/dist/service/s3/sim-s3.d.ts.map +1 -1
  539. package/dist/service/s3/sim-s3.js +65 -55
  540. package/dist/service/s3/sim-s3.js.map +1 -1
  541. package/dist/util/clock/sim-clock-date.d.ts +20 -0
  542. package/dist/util/clock/sim-clock-date.d.ts.map +1 -0
  543. package/dist/util/clock/sim-clock-date.js +43 -0
  544. package/dist/util/clock/sim-clock-date.js.map +1 -0
  545. package/package.json +17 -11
@@ -0,0 +1,92 @@
1
+ import { SimS3RestErrorResponse } from "./sim-s3-rest-error-response.js";
2
+ import { SimS3UploadChecksum } from "./sim-s3-upload-checksum.js";
3
+ /**
4
+ * Serves Object requests that arrived at the simulated S3 REST endpoint.
5
+ *
6
+ * Everything goes through the ordinary command handlers rather than reaching
7
+ * into Bucket storage, so an HTTP request is authorized exactly as the same
8
+ * operation is when an SDK client makes it in process. That is the point of
9
+ * this endpoint: a presigned URL grants no more than the principal who signed
10
+ * it has, and it is IAM that decides what that is.
11
+ */
12
+ export class SimS3RestController {
13
+ simAws;
14
+ constructor(properties) {
15
+ this.simAws = properties.simAws;
16
+ }
17
+ /**
18
+ * Serve a REST Object request as the principal the boundary resolved.
19
+ */
20
+ async handleRequest(route, serviceRequest) {
21
+ const errors = new SimS3RestErrorResponse({
22
+ bucketName: route.bucket.bucketName,
23
+ objectKey: route.objectKey,
24
+ });
25
+ try {
26
+ return await this.serve(route, serviceRequest);
27
+ }
28
+ catch (error) {
29
+ return errors.build(error);
30
+ }
31
+ }
32
+ async serve(route, serviceRequest) {
33
+ if (serviceRequest.request.method === "PUT") {
34
+ return await this.putObject(route, serviceRequest);
35
+ }
36
+ return await this.getObject(route, serviceRequest);
37
+ }
38
+ async getObject(route, serviceRequest) {
39
+ const output = await this.s3For(route).getObject({ input: { Bucket: route.bucket.bucketName, Key: route.objectKey } }, { caller: serviceRequest.caller.toCaller() });
40
+ const body = await bodyBytes(output.Body);
41
+ const contentType = output.Metadata?.["content-type"];
42
+ const headers = {
43
+ "content-length": String(body.length),
44
+ ...(contentType !== undefined && { "content-type": contentType }),
45
+ };
46
+ if (serviceRequest.request.method === "HEAD") {
47
+ return new Response(undefined, { status: 200, headers });
48
+ }
49
+ return new Response(body, { status: 200, headers });
50
+ }
51
+ /**
52
+ * Store an uploaded Object.
53
+ *
54
+ * The stated checksum is checked before anything is stored, as real S3 does,
55
+ * so an upload that would be refused there is refused here rather than
56
+ * quietly landing in the Bucket.
57
+ */
58
+ async putObject(route, serviceRequest) {
59
+ const { request, body } = serviceRequest;
60
+ SimS3UploadChecksum.stated(new URL(request.url), request.headers)?.check(body);
61
+ const contentType = request.headers.get("content-type") ?? undefined;
62
+ await this.s3For(route).putObject({
63
+ input: {
64
+ Bucket: route.bucket.bucketName,
65
+ Key: route.objectKey,
66
+ Body: body ?? new Uint8Array(),
67
+ ...(contentType !== undefined && { ContentType: contentType }),
68
+ },
69
+ }, { caller: serviceRequest.caller.toCaller() });
70
+ return new Response(undefined, { status: 200 });
71
+ }
72
+ s3For(route) {
73
+ return this.simAws
74
+ .accountRegionScope(route.bucketScope.accountId, route.bucketScope.regionName)
75
+ .s3();
76
+ }
77
+ }
78
+ /**
79
+ * Read a GetObject response body into the bytes an HTTP response carries.
80
+ */
81
+ async function bodyBytes(body) {
82
+ /* v8 ignore if -- the loader always answers with a body */
83
+ if (body === undefined) {
84
+ return Buffer.alloc(0);
85
+ }
86
+ const chunks = [];
87
+ for await (const chunk of body) {
88
+ chunks.push(Buffer.from(chunk));
89
+ }
90
+ return Buffer.concat(chunks);
91
+ }
92
+ //# sourceMappingURL=sim-s3-rest-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-rest-controller.js","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-rest-controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ interface SimS3RestErrorProperties {
2
+ readonly bucketName: string;
3
+ readonly objectKey: string;
4
+ }
5
+ /**
6
+ * Turns a refused S3 REST request into the response real S3 answers with.
7
+ *
8
+ * S3 is one of the few AWS services that still answers its REST endpoint in
9
+ * XML rather than JSON, and clients parse it: the AWS SDK reads `Code` out of
10
+ * this document to decide which exception to raise. Answering anything else
11
+ * would leave a simulated failure unrecognisable to the code under test.
12
+ */
13
+ export declare class SimS3RestErrorResponse {
14
+ private readonly bucketName;
15
+ private readonly objectKey;
16
+ constructor(properties: SimS3RestErrorProperties);
17
+ /**
18
+ * Build the response for an error raised while serving an Object request.
19
+ *
20
+ * Anything the simulator does not recognise is re-raised rather than
21
+ * flattened into a plausible S3 error, so a bug in the simulation cannot
22
+ * masquerade as an AWS failure the test then asserts on.
23
+ */
24
+ build(error: unknown): Response;
25
+ private xml;
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=sim-s3-rest-error-response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-rest-error-response.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-rest-error-response.ts"],"names":[],"mappings":"AAIA,UAAU,wBAAwB;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,YAAY,UAAU,EAAE,wBAAwB,EAG/C;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAkB9B;IAED,OAAO,CAAC,GAAG;CAmBZ"}
@@ -0,0 +1,63 @@
1
+ import { SimIamAccessDenied } from "../../iam/error/sim-iam.error.js";
2
+ import { SimS3Error } from "../error/sim-s3.error.js";
3
+ import { SimS3ChecksumMismatch } from "../error/sim-s3-checksum.error.js";
4
+ /**
5
+ * Turns a refused S3 REST request into the response real S3 answers with.
6
+ *
7
+ * S3 is one of the few AWS services that still answers its REST endpoint in
8
+ * XML rather than JSON, and clients parse it: the AWS SDK reads `Code` out of
9
+ * this document to decide which exception to raise. Answering anything else
10
+ * would leave a simulated failure unrecognisable to the code under test.
11
+ */
12
+ export class SimS3RestErrorResponse {
13
+ bucketName;
14
+ objectKey;
15
+ constructor(properties) {
16
+ this.bucketName = properties.bucketName;
17
+ this.objectKey = properties.objectKey;
18
+ }
19
+ /**
20
+ * Build the response for an error raised while serving an Object request.
21
+ *
22
+ * Anything the simulator does not recognise is re-raised rather than
23
+ * flattened into a plausible S3 error, so a bug in the simulation cannot
24
+ * masquerade as an AWS failure the test then asserts on.
25
+ */
26
+ build(error) {
27
+ if (error instanceof SimIamAccessDenied) {
28
+ return this.xml(403, "AccessDenied", error.message);
29
+ }
30
+ if (error instanceof SimS3ChecksumMismatch) {
31
+ return this.xml(400, error.name, error.message);
32
+ }
33
+ if (error instanceof SimS3Error) {
34
+ return this.xml(error.$metadata.httpStatusCode ?? 400, error.name, error.message);
35
+ }
36
+ throw error;
37
+ }
38
+ xml(status, code, message) {
39
+ const body = [
40
+ `<?xml version="1.0" encoding="UTF-8"?>`,
41
+ `<Error>`,
42
+ ` <Code>${escapeXml(code)}</Code>`,
43
+ ` <Message>${escapeXml(message)}</Message>`,
44
+ ` <BucketName>${escapeXml(this.bucketName)}</BucketName>`,
45
+ ` <Key>${escapeXml(this.objectKey)}</Key>`,
46
+ `</Error>`,
47
+ ``,
48
+ ].join("\n");
49
+ return new Response(body, {
50
+ status,
51
+ headers: {
52
+ "content-type": "application/xml",
53
+ },
54
+ });
55
+ }
56
+ }
57
+ function escapeXml(value) {
58
+ return value
59
+ .replaceAll("&", "&amp;")
60
+ .replaceAll("<", "&lt;")
61
+ .replaceAll(">", "&gt;");
62
+ }
63
+ //# sourceMappingURL=sim-s3-rest-error-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-rest-error-response.js","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-rest-error-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAO1E;;;;;;;GAOG;AACH,MAAM,OAAO,sBAAsB;IAChB,UAAU,CAAS;IACnB,SAAS,CAAS;IAEnC,YAAY,UAAoC;QAC9C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAc;QAClB,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,GAAG,CACb,KAAK,CAAC,SAAS,CAAC,cAAc,IAAI,GAAG,EACrC,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,OAAO,CACd,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;IAEO,GAAG,CAAC,MAAc,EAAE,IAAY,EAAE,OAAe;QACvD,MAAM,IAAI,GAAG;YACX,wCAAwC;YACxC,SAAS;YACT,WAAW,SAAS,CAAC,IAAI,CAAC,SAAS;YACnC,cAAc,SAAS,CAAC,OAAO,CAAC,YAAY;YAC5C,iBAAiB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe;YAC1D,UAAU,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ;YAC3C,UAAU;YACV,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;YACxB,MAAM;YACN,OAAO,EAAE;gBACP,cAAc,EAAE,iBAAiB;aAClC;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK;SACT,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;SACxB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { SimS3ObjectAddress } from "./sim-s3-object-address.js";
2
+ import { type SimS3RouteFailure } from "./sim-s3-route.js";
3
+ /**
4
+ * Whether a REST request asks for something simulated S3 does not serve.
5
+ */
6
+ export declare function simS3RestRefusal(method: string, address: SimS3ObjectAddress): SimS3RouteFailure | undefined;
7
+ //# sourceMappingURL=sim-s3-rest-refusal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-rest-refusal.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-rest-refusal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,mBAAmB,CAAC;AAI3B;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,kBAAkB,GAC1B,iBAAiB,GAAG,SAAS,CAmB/B"}
@@ -0,0 +1,18 @@
1
+ import { simS3RouteFailure as failure, } from "./sim-s3-route.js";
2
+ const restMethods = new Set(["GET", "HEAD", "PUT"]);
3
+ /**
4
+ * Whether a REST request asks for something simulated S3 does not serve.
5
+ */
6
+ export function simS3RestRefusal(method, address) {
7
+ if (!restMethods.has(method)) {
8
+ return failure(501, `Simulated S3 does not serve ${method} over its REST endpoint. ` +
9
+ `GET, HEAD and PUT of an Object are simulated.\n`);
10
+ }
11
+ if (address.objectKey.length === 0) {
12
+ return failure(501, `Simulated S3 serves Object requests over its REST endpoint, and this ` +
13
+ `request names Bucket ${address.bucketName} with no Object key. ` +
14
+ `Bucket operations are not served over HTTP.\n`);
15
+ }
16
+ return undefined;
17
+ }
18
+ //# sourceMappingURL=sim-s3-rest-refusal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-rest-refusal.js","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-rest-refusal.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,iBAAiB,IAAI,OAAO,GAC7B,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,OAA2B;IAE3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,OAAO,CACZ,GAAG,EACH,+BAA+B,MAAM,2BAA2B;YAC9D,iDAAiD,CACpD,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,OAAO,CACZ,GAAG,EACH,uEAAuE;YACrE,wBAAwB,OAAO,CAAC,UAAU,uBAAuB;YACjE,+CAA+C,CAClD,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
2
+ import type { SimS3Bucket } from "../bucket/sim-s3-bucket.js";
3
+ /**
4
+ * A request the static website endpoint should answer, as the caller the
5
+ * authentication boundary resolved.
6
+ *
7
+ * The Bucket's scope is carried because serving goes through that scope's
8
+ * GetObject command, so the website endpoint authorizes exactly as the REST
9
+ * endpoint does.
10
+ */
11
+ export interface SimS3WebsiteRoute {
12
+ readonly action: "website";
13
+ readonly bucket: SimS3Bucket;
14
+ readonly bucketScope: SimAwsAccountRegionScope;
15
+ readonly objectKey: string;
16
+ }
17
+ /**
18
+ * An Object request the REST API endpoint should answer, as the caller the
19
+ * authentication boundary resolved.
20
+ */
21
+ export interface SimS3RestObjectRoute {
22
+ readonly action: "restObject";
23
+ readonly bucket: SimS3Bucket;
24
+ readonly bucketScope: SimAwsAccountRegionScope;
25
+ readonly objectKey: string;
26
+ }
27
+ /**
28
+ * A request that cannot be routed to a simulated S3 action.
29
+ */
30
+ export interface SimS3RouteFailure {
31
+ readonly action: "failure";
32
+ readonly statusCode: number;
33
+ readonly message: string;
34
+ }
35
+ export type SimS3Route = SimS3WebsiteRoute | SimS3RestObjectRoute | SimS3RouteFailure;
36
+ /**
37
+ * A route that answers the request with a refusal rather than an S3 action.
38
+ */
39
+ export declare function simS3RouteFailure(statusCode: number, message: string): SimS3RouteFailure;
40
+ //# sourceMappingURL=sim-s3-route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-route.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,wBAAwB,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,wBAAwB,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,UAAU,GACpB,iBAAiB,GAAG,oBAAoB,GAAG,iBAAiB,CAAC;AAE/D;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,iBAAiB,CAEnB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * A route that answers the request with a refusal rather than an S3 action.
3
+ */
4
+ export function simS3RouteFailure(statusCode, message) {
5
+ return { action: "failure", statusCode, message };
6
+ }
7
+ //# sourceMappingURL=sim-s3-route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-route.js","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-route.ts"],"names":[],"mappings":"AAyCA;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,OAAe;IAEf,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACpD,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * The checksum an upload states its body should hash to.
3
+ *
4
+ * S3's flexible checksums travel as `x-amz-checksum-<algorithm>`, in a header
5
+ * on an ordinary request and in the query string of a presigned URL, where the
6
+ * signature covers them. Checking one is the difference between an upload that
7
+ * would work against real S3 and one that only appears to.
8
+ */
9
+ export declare class SimS3UploadChecksum {
10
+ private readonly algorithm;
11
+ private readonly declared;
12
+ private constructor();
13
+ /**
14
+ * Read the checksum an upload states, from wherever it carried it.
15
+ *
16
+ * The query string is read first because that is where a presigned URL puts
17
+ * it, and a request that carries both should be judged by the one the
18
+ * signature covers.
19
+ */
20
+ static stated(url: URL, headers: Headers): SimS3UploadChecksum | undefined;
21
+ /**
22
+ * Refuse an upload whose body does not hash to the stated checksum.
23
+ */
24
+ check(body: Uint8Array | undefined): void;
25
+ private computed;
26
+ }
27
+ //# sourceMappingURL=sim-s3-upload-checksum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-upload-checksum.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-upload-checksum.ts"],"names":[],"mappings":"AAgBA;;;;;;;GAOG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,OAAO,eAGN;IAED;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,mBAAmB,GAAG,SAAS,CAkBzE;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,CAcxC;IAED,OAAO,CAAC,QAAQ;CAkBjB"}
@@ -0,0 +1,86 @@
1
+ import { createHash } from "node:crypto";
2
+ import { crc32 } from "../../../util/zip/crc32.js";
3
+ import { SimS3ChecksumMismatch, SimS3UnsupportedChecksum, } from "../error/sim-s3-checksum.error.js";
4
+ const checksumPrefix = "x-amz-checksum-";
5
+ /**
6
+ * The parameter naming which algorithm was used, rather than a checksum value.
7
+ */
8
+ const algorithmParameter = "x-amz-checksum-algorithm";
9
+ /**
10
+ * The checksum an upload states its body should hash to.
11
+ *
12
+ * S3's flexible checksums travel as `x-amz-checksum-<algorithm>`, in a header
13
+ * on an ordinary request and in the query string of a presigned URL, where the
14
+ * signature covers them. Checking one is the difference between an upload that
15
+ * would work against real S3 and one that only appears to.
16
+ */
17
+ export class SimS3UploadChecksum {
18
+ algorithm;
19
+ declared;
20
+ constructor(algorithm, declared) {
21
+ this.algorithm = algorithm;
22
+ this.declared = declared;
23
+ }
24
+ /**
25
+ * Read the checksum an upload states, from wherever it carried it.
26
+ *
27
+ * The query string is read first because that is where a presigned URL puts
28
+ * it, and a request that carries both should be judged by the one the
29
+ * signature covers.
30
+ */
31
+ static stated(url, headers) {
32
+ for (const [name, value] of url.searchParams) {
33
+ const algorithm = checksumAlgorithm(name);
34
+ if (algorithm !== undefined) {
35
+ return new SimS3UploadChecksum(algorithm, value);
36
+ }
37
+ }
38
+ for (const [name, value] of headers) {
39
+ const algorithm = checksumAlgorithm(name);
40
+ if (algorithm !== undefined) {
41
+ return new SimS3UploadChecksum(algorithm, value);
42
+ }
43
+ }
44
+ return undefined;
45
+ }
46
+ /**
47
+ * Refuse an upload whose body does not hash to the stated checksum.
48
+ */
49
+ check(body) {
50
+ const bytes = body ?? new Uint8Array();
51
+ const computed = this.computed(bytes);
52
+ if (computed === this.declared) {
53
+ return;
54
+ }
55
+ throw new SimS3ChecksumMismatch(`The ${this.algorithm.toUpperCase()} checksum of the uploaded body is ` +
56
+ `${computed}, not the ${this.declared} the request states. An AWS SDK ` +
57
+ `presigned PUT states the checksum of an empty body unless the client ` +
58
+ `is built with requestChecksumCalculation: "WHEN_REQUIRED".`);
59
+ }
60
+ computed(bytes) {
61
+ if (this.algorithm === "crc32") {
62
+ const digest = Buffer.alloc(4);
63
+ digest.writeUInt32BE(crc32(bytes));
64
+ return digest.toString("base64");
65
+ }
66
+ if (this.algorithm === "sha1" || this.algorithm === "sha256") {
67
+ return createHash(this.algorithm).update(bytes).digest("base64");
68
+ }
69
+ throw new SimS3UnsupportedChecksum(`Simulated S3 cannot compute the ${this.algorithm.toUpperCase()} ` +
70
+ `checksum this upload states, so it refuses the upload rather than ` +
71
+ `storing a body nothing has checked. CRC32, SHA1 and SHA256 are ` +
72
+ `simulated.`);
73
+ }
74
+ }
75
+ /**
76
+ * The algorithm a checksum parameter or header names, if it names one.
77
+ */
78
+ function checksumAlgorithm(name) {
79
+ const lowerCased = name.toLowerCase();
80
+ if (!lowerCased.startsWith(checksumPrefix) ||
81
+ lowerCased === algorithmParameter) {
82
+ return undefined;
83
+ }
84
+ return lowerCased.slice(checksumPrefix.length);
85
+ }
86
+ //# sourceMappingURL=sim-s3-upload-checksum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-upload-checksum.js","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-upload-checksum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAEnD,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,mCAAmC,CAAC;AAE3C,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAEzC;;GAEG;AACH,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,OAAO,mBAAmB;IACb,SAAS,CAAS;IAClB,QAAQ,CAAS;IAElC,YAAoB,SAAiB,EAAE,QAAgB;QACrD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,GAAQ,EAAE,OAAgB;QACtC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YAC7C,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAE1C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,IAAI,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAE1C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,IAAI,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAA4B;QAChC,MAAM,KAAK,GAAG,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEtC,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,qBAAqB,CAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,oCAAoC;YACrE,GAAG,QAAQ,aAAa,IAAI,CAAC,QAAQ,kCAAkC;YACvE,uEAAuE;YACvE,4DAA4D,CAC/D,CAAC;IACJ,CAAC;IAEO,QAAQ,CAAC,KAAiB;QAChC,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACnC,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC7D,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,IAAI,wBAAwB,CAChC,mCAAmC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG;YAChE,oEAAoE;YACpE,iEAAiE;YACjE,YAAY,CACf,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEtC,IACE,CAAC,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC;QACtC,UAAU,KAAK,kBAAkB,EACjC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,51 @@
1
+ import type { SimAwsServiceRequest } from "../../../../serve/controller/sim-service-controller.js";
2
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
3
+ import type { SimAws } from "../../../aws/sim-aws.js";
4
+ import type { SimS3WebsiteRoute } from "../sim-s3-route.js";
5
+ import type { SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
6
+ import type { SimS3 } from "../../sim-s3.js";
7
+ import { SimS3WebsiteObject } from "./sim-s3-website-object.js";
8
+ interface SimS3WebsiteObjectLoaderProperties {
9
+ readonly simS3: SimS3;
10
+ readonly bucketName: SimS3BucketName;
11
+ readonly caller: SimAwsCaller;
12
+ }
13
+ /**
14
+ * Reads Objects for the static website endpoint as the requesting principal.
15
+ *
16
+ * Everything goes through the ordinary GetObject command, so a website request
17
+ * is authorized by the same IAM code path an in-process SDK call goes through.
18
+ * A browser presenting nothing is anonymous, and anonymous holds nothing unless
19
+ * the Bucket policy grants it, which is what makes a Bucket that is not
20
+ * publicly readable answer 403 here as it does in real S3.
21
+ */
22
+ export declare class SimS3WebsiteObjectLoader {
23
+ private readonly simS3;
24
+ private readonly bucketName;
25
+ private readonly caller;
26
+ constructor(properties: SimS3WebsiteObjectLoaderProperties);
27
+ /**
28
+ * A loader for one routed website request, reading from the scope that owns
29
+ * the Bucket as the principal the boundary resolved.
30
+ */
31
+ static forRoute(simAws: SimAws, route: SimS3WebsiteRoute, serviceRequest: SimAwsServiceRequest): SimS3WebsiteObjectLoader;
32
+ /**
33
+ * Load an Object, or nothing when the Bucket holds no such key.
34
+ *
35
+ * A denial is raised rather than reported as absence, because the two mean
36
+ * different things to a website visitor: one is 404, the other 403.
37
+ */
38
+ load(objectKey: string): Promise<SimS3WebsiteObject | undefined>;
39
+ /**
40
+ * Load an Object the site only needs if it is readable, treating a denial as
41
+ * absence.
42
+ *
43
+ * The folder index probe and the error document are looked up to decide what
44
+ * to serve rather than because the visitor asked for them, so a denial on
45
+ * either should fall through to the next option instead of becoming the
46
+ * answer.
47
+ */
48
+ loadIfPermitted(objectKey: string): Promise<SimS3WebsiteObject | undefined>;
49
+ }
50
+ export {};
51
+ //# sourceMappingURL=sim-s3-website-object-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-website-object-loader.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/serve/website/sim-s3-website-object-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAC;AACnG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,UAAU,kCAAkC;IAC1C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IAEtC,YAAY,UAAU,EAAE,kCAAkC,EAIzD;IAED;;;OAGG;IACH,MAAM,CAAC,QAAQ,CACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,iBAAiB,EACxB,cAAc,EAAE,oBAAoB,GACnC,wBAAwB,CAW1B;IAED;;;;;OAKG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAkBrE;IAED;;;;;;;;OAQG;IACG,eAAe,CACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAUzC;CACF"}
@@ -0,0 +1,75 @@
1
+ import { SimIamAccessDenied } from "../../../iam/error/sim-iam.error.js";
2
+ import { SimS3NoSuchKey } from "../../error/sim-s3.error.js";
3
+ import { simS3BodyToBuffer } from "../../storage/s3-body-buffer.js";
4
+ import { SimS3WebsiteObject } from "./sim-s3-website-object.js";
5
+ /**
6
+ * Reads Objects for the static website endpoint as the requesting principal.
7
+ *
8
+ * Everything goes through the ordinary GetObject command, so a website request
9
+ * is authorized by the same IAM code path an in-process SDK call goes through.
10
+ * A browser presenting nothing is anonymous, and anonymous holds nothing unless
11
+ * the Bucket policy grants it, which is what makes a Bucket that is not
12
+ * publicly readable answer 403 here as it does in real S3.
13
+ */
14
+ export class SimS3WebsiteObjectLoader {
15
+ simS3;
16
+ bucketName;
17
+ caller;
18
+ constructor(properties) {
19
+ this.simS3 = properties.simS3;
20
+ this.bucketName = properties.bucketName;
21
+ this.caller = properties.caller;
22
+ }
23
+ /**
24
+ * A loader for one routed website request, reading from the scope that owns
25
+ * the Bucket as the principal the boundary resolved.
26
+ */
27
+ static forRoute(simAws, route, serviceRequest) {
28
+ return new SimS3WebsiteObjectLoader({
29
+ simS3: simAws
30
+ .accountRegionScope(route.bucketScope.accountId, route.bucketScope.regionName)
31
+ .s3(),
32
+ bucketName: route.bucket.bucketName,
33
+ caller: serviceRequest.caller.toCaller(),
34
+ });
35
+ }
36
+ /**
37
+ * Load an Object, or nothing when the Bucket holds no such key.
38
+ *
39
+ * A denial is raised rather than reported as absence, because the two mean
40
+ * different things to a website visitor: one is 404, the other 403.
41
+ */
42
+ async load(objectKey) {
43
+ try {
44
+ const output = await this.simS3.getObject({ input: { Bucket: this.bucketName, Key: objectKey } }, { caller: this.caller });
45
+ return new SimS3WebsiteObject(await simS3BodyToBuffer(output.Body), output.Metadata?.["content-type"]);
46
+ }
47
+ catch (error) {
48
+ if (error instanceof SimS3NoSuchKey) {
49
+ return undefined;
50
+ }
51
+ throw error;
52
+ }
53
+ }
54
+ /**
55
+ * Load an Object the site only needs if it is readable, treating a denial as
56
+ * absence.
57
+ *
58
+ * The folder index probe and the error document are looked up to decide what
59
+ * to serve rather than because the visitor asked for them, so a denial on
60
+ * either should fall through to the next option instead of becoming the
61
+ * answer.
62
+ */
63
+ async loadIfPermitted(objectKey) {
64
+ try {
65
+ return await this.load(objectKey);
66
+ }
67
+ catch (error) {
68
+ if (error instanceof SimIamAccessDenied) {
69
+ return undefined;
70
+ }
71
+ throw error;
72
+ }
73
+ }
74
+ }
75
+ //# sourceMappingURL=sim-s3-website-object-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-website-object-loader.js","sourceRoot":"","sources":["../../../../../src/service/s3/serve/website/sim-s3-website-object-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAQhE;;;;;;;;GAQG;AACH,MAAM,OAAO,wBAAwB;IAClB,KAAK,CAAQ;IACb,UAAU,CAAkB;IAC5B,MAAM,CAAe;IAEtC,YAAY,UAA8C;QACxD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,QAAQ,CACb,MAAc,EACd,KAAwB,EACxB,cAAoC;QAEpC,OAAO,IAAI,wBAAwB,CAAC;YAClC,KAAK,EAAE,MAAM;iBACV,kBAAkB,CACjB,KAAK,CAAC,WAAW,CAAC,SAAS,EAC3B,KAAK,CAAC,WAAW,CAAC,UAAU,CAC7B;iBACA,EAAE,EAAE;YACP,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;YACnC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE;SACzC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,SAAiB;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CACvC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EACtD,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACxB,CAAC;YAEF,OAAO,IAAI,kBAAkB,CAC3B,MAAM,iBAAiB,CAAC,MAAM,CAAC,IAA6B,CAAC,EAC7D,MAAM,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,CAClC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;gBACpC,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,eAAe,CACnB,SAAiB;QAEjB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;gBACxC,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * An Object the static website endpoint is about to serve.
3
+ *
4
+ * The website endpoint reads Objects through the ordinary GetObject command
5
+ * rather than out of Bucket storage, so what it gets back is a stream and a
6
+ * metadata record. This is that, collapsed into the two things an HTTP
7
+ * response needs.
8
+ */
9
+ export declare class SimS3WebsiteObject {
10
+ readonly body: Buffer;
11
+ readonly contentType: string | undefined;
12
+ constructor(body: Buffer, contentType: string | undefined);
13
+ /**
14
+ * The headers describing this Object in a website response.
15
+ */
16
+ headers(): Record<string, string>;
17
+ }
18
+ //# sourceMappingURL=sim-s3-website-object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-website-object.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/serve/website/sim-s3-website-object.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,qBAAa,kBAAkB;aAEX,IAAI,EAAE,MAAM;aACZ,WAAW,EAAE,MAAM,GAAG,SAAS;IAFjD,YACkB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAAG,SAAS,EAC7C;IAEJ;;OAEG;IACH,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOhC;CACF"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * An Object the static website endpoint is about to serve.
3
+ *
4
+ * The website endpoint reads Objects through the ordinary GetObject command
5
+ * rather than out of Bucket storage, so what it gets back is a stream and a
6
+ * metadata record. This is that, collapsed into the two things an HTTP
7
+ * response needs.
8
+ */
9
+ export class SimS3WebsiteObject {
10
+ body;
11
+ contentType;
12
+ constructor(body, contentType) {
13
+ this.body = body;
14
+ this.contentType = contentType;
15
+ }
16
+ /**
17
+ * The headers describing this Object in a website response.
18
+ */
19
+ headers() {
20
+ return {
21
+ "content-length": String(this.body.length),
22
+ ...(this.contentType !== undefined && {
23
+ "content-type": this.contentType,
24
+ }),
25
+ };
26
+ }
27
+ }
28
+ //# sourceMappingURL=sim-s3-website-object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-website-object.js","sourceRoot":"","sources":["../../../../../src/service/s3/serve/website/sim-s3-website-object.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAkB;IAEX,IAAI;IACJ,WAAW;IAF7B,YACkB,IAAY,EACZ,WAA+B;oBAD/B,IAAI;2BACJ,WAAW;IAC1B,CAAC;IAEJ;;OAEG;IACH,OAAO;QACL,OAAO;YACL,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAC1C,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI;gBACpC,cAAc,EAAE,IAAI,CAAC,WAAW;aACjC,CAAC;SACH,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,27 @@
1
+ import type { SimS3WebsiteObject } from "./sim-s3-website-object.js";
2
+ /**
3
+ * The HTTP responses the simulated S3 static website endpoint answers with.
4
+ *
5
+ * Kept apart from the controller because deciding what to serve and building
6
+ * the response that serves it are separate jobs, and only the first one is
7
+ * interesting.
8
+ */
9
+ export declare class SimS3WebsiteResponses {
10
+ /**
11
+ * Serve an Object, with no body when the request was a HEAD.
12
+ */
13
+ foundObject(object: SimS3WebsiteObject, request: Request, status?: number): Response;
14
+ /**
15
+ * Refuse a request for an Object the caller may not read.
16
+ */
17
+ accessDenied(bucketName: string): Response;
18
+ /**
19
+ * Refuse a request to a Bucket that is not serving a website at all.
20
+ */
21
+ websiteNotEnabled(bucketName: string): Response;
22
+ /**
23
+ * Report an Object the Bucket does not hold.
24
+ */
25
+ notFound(bucketName: string, objectKey: string): Response;
26
+ }
27
+ //# sourceMappingURL=sim-s3-website-responses.d.ts.map