@kensio/yulin 0.32.0 → 0.33.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 (612) hide show
  1. package/dist/docs/tsconfig.tsbuildinfo +1 -1
  2. package/dist/index.d.ts +0 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +0 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/serve/http/local-server/sim-aws-local-server.d.ts.map +1 -1
  7. package/dist/serve/http/local-server/sim-aws-local-server.js +4 -2
  8. package/dist/serve/http/local-server/sim-aws-local-server.js.map +1 -1
  9. package/dist/serve/http/sim-aws-http.d.ts.map +1 -1
  10. package/dist/serve/http/sim-aws-http.js +2 -1
  11. package/dist/serve/http/sim-aws-http.js.map +1 -1
  12. package/dist/service/acm/certificate/sim-acm-certificate.d.ts.map +1 -1
  13. package/dist/service/acm/certificate/sim-acm-certificate.js +2 -2
  14. package/dist/service/acm/certificate/sim-acm-certificate.js.map +1 -1
  15. package/dist/service/acm/cfn/property/sim-cfn-acm-cert-prop-reader.d.ts.map +1 -1
  16. package/dist/service/acm/cfn/property/sim-cfn-acm-cert-prop-reader.js +2 -2
  17. package/dist/service/acm/cfn/property/sim-cfn-acm-cert-prop-reader.js.map +1 -1
  18. package/dist/service/acm/command/describe-certificate/describe-certificate-authorizer.d.ts +31 -0
  19. package/dist/service/acm/command/describe-certificate/describe-certificate-authorizer.d.ts.map +1 -0
  20. package/dist/service/acm/command/describe-certificate/describe-certificate-authorizer.js +41 -0
  21. package/dist/service/acm/command/describe-certificate/describe-certificate-authorizer.js.map +1 -0
  22. package/dist/service/acm/command/describe-certificate/describe-certificate.handler.d.ts +13 -1
  23. package/dist/service/acm/command/describe-certificate/describe-certificate.handler.d.ts.map +1 -1
  24. package/dist/service/acm/command/describe-certificate/describe-certificate.handler.js +12 -2
  25. package/dist/service/acm/command/describe-certificate/describe-certificate.handler.js.map +1 -1
  26. package/dist/service/acm/command/list-certificates/list-certificates-authorizer.d.ts +31 -0
  27. package/dist/service/acm/command/list-certificates/list-certificates-authorizer.d.ts.map +1 -0
  28. package/dist/service/acm/command/list-certificates/list-certificates-authorizer.js +41 -0
  29. package/dist/service/acm/command/list-certificates/list-certificates-authorizer.js.map +1 -0
  30. package/dist/service/acm/command/list-certificates/list-certificates-page-builder.d.ts +82 -0
  31. package/dist/service/acm/command/list-certificates/list-certificates-page-builder.d.ts.map +1 -0
  32. package/dist/service/acm/command/list-certificates/list-certificates-page-builder.js +128 -0
  33. package/dist/service/acm/command/list-certificates/list-certificates-page-builder.js.map +1 -0
  34. package/dist/service/acm/command/list-certificates/list-certificates.handler.d.ts +21 -7
  35. package/dist/service/acm/command/list-certificates/list-certificates.handler.d.ts.map +1 -1
  36. package/dist/service/acm/command/list-certificates/list-certificates.handler.js +22 -50
  37. package/dist/service/acm/command/list-certificates/list-certificates.handler.js.map +1 -1
  38. package/dist/service/acm/command/request-certificate/request-certificate-authorizer.d.ts +28 -0
  39. package/dist/service/acm/command/request-certificate/request-certificate-authorizer.d.ts.map +1 -0
  40. package/dist/service/acm/command/request-certificate/request-certificate-authorizer.js +38 -0
  41. package/dist/service/acm/command/request-certificate/request-certificate-authorizer.js.map +1 -0
  42. package/dist/service/acm/command/request-certificate/request-certificate-validator.d.ts +25 -0
  43. package/dist/service/acm/command/request-certificate/request-certificate-validator.d.ts.map +1 -0
  44. package/dist/service/acm/command/request-certificate/request-certificate-validator.js +32 -0
  45. package/dist/service/acm/command/request-certificate/request-certificate-validator.js.map +1 -0
  46. package/dist/service/acm/command/request-certificate/request-certificate.handler.d.ts +15 -2
  47. package/dist/service/acm/command/request-certificate/request-certificate.handler.d.ts.map +1 -1
  48. package/dist/service/acm/command/request-certificate/request-certificate.handler.js +19 -10
  49. package/dist/service/acm/command/request-certificate/request-certificate.handler.js.map +1 -1
  50. package/dist/service/acm/sim-acm.d.ts +10 -3
  51. package/dist/service/acm/sim-acm.d.ts.map +1 -1
  52. package/dist/service/acm/sim-acm.js +13 -7
  53. package/dist/service/acm/sim-acm.js.map +1 -1
  54. package/dist/service/aws/caller/sim-aws-account-root-principal.d.ts.map +1 -1
  55. package/dist/service/aws/caller/sim-aws-account-root-principal.js +1 -3
  56. package/dist/service/aws/caller/sim-aws-account-root-principal.js.map +1 -1
  57. package/dist/service/aws/caller/sim-aws-caller-resolver.d.ts +40 -0
  58. package/dist/service/aws/caller/sim-aws-caller-resolver.d.ts.map +1 -0
  59. package/dist/service/aws/caller/sim-aws-caller-resolver.js +62 -0
  60. package/dist/service/aws/caller/sim-aws-caller-resolver.js.map +1 -0
  61. package/dist/service/aws/caller/sim-aws-caller.d.ts +23 -25
  62. package/dist/service/aws/caller/sim-aws-caller.d.ts.map +1 -1
  63. package/dist/service/aws/caller/sim-aws-caller.js +1 -6
  64. package/dist/service/aws/caller/sim-aws-caller.js.map +1 -1
  65. package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts.map +1 -1
  66. package/dist/service/aws/factory/sim-aws-account-service-cache.js +10 -5
  67. package/dist/service/aws/factory/sim-aws-account-service-cache.js.map +1 -1
  68. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +9 -4
  69. package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
  70. package/dist/service/aws/factory/sim-aws-service-factory.js +20 -4
  71. package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
  72. package/dist/service/aws/sim-aws-account-region-scope.d.ts +7 -2
  73. package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
  74. package/dist/service/aws/sim-aws-account-region-scope.js +8 -2
  75. package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
  76. package/dist/service/aws/sim-aws-account.d.ts +6 -1
  77. package/dist/service/aws/sim-aws-account.d.ts.map +1 -1
  78. package/dist/service/aws/sim-aws-account.js +7 -1
  79. package/dist/service/aws/sim-aws-account.js.map +1 -1
  80. package/dist/service/aws/sim-aws-region.d.ts +1 -1
  81. package/dist/service/aws/sim-aws-region.d.ts.map +1 -1
  82. package/dist/service/aws/sim-aws-region.js +1 -1
  83. package/dist/service/aws/sim-aws-region.js.map +1 -1
  84. package/dist/service/aws/sim-aws.d.ts +5 -0
  85. package/dist/service/aws/sim-aws.d.ts.map +1 -1
  86. package/dist/service/aws/sim-aws.js +6 -0
  87. package/dist/service/aws/sim-aws.js.map +1 -1
  88. package/dist/service/cloudformation/bind/validate/sim-cfn-exec-binding-matcher.js +1 -1
  89. package/dist/service/cloudformation/bind/validate/sim-cfn-exec-binding-matcher.js.map +1 -1
  90. package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js +1 -1
  91. package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js.map +1 -1
  92. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.d.ts.map +1 -1
  93. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js +9 -6
  94. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js.map +1 -1
  95. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.d.ts.map +1 -1
  96. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js +4 -1
  97. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js.map +1 -1
  98. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.d.ts.map +1 -1
  99. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js +5 -2
  100. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js.map +1 -1
  101. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cff-cfn.factory.js +3 -3
  102. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cff-cfn.factory.js.map +1 -1
  103. package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts.map +1 -1
  104. package/dist/service/cloudformation/resource/sim-cfn-resource.js +3 -2
  105. package/dist/service/cloudformation/resource/sim-cfn-resource.js.map +1 -1
  106. package/dist/service/cloudformation/sim-cloudformation.d.ts +2 -2
  107. package/dist/service/cloudformation/sim-cloudformation.d.ts.map +1 -1
  108. package/dist/service/cloudformation/sim-cloudformation.js +12 -12
  109. package/dist/service/cloudformation/sim-cloudformation.js.map +1 -1
  110. package/dist/service/cloudformation/stack/output/sim-cfn-stack-output-resolver.d.ts.map +1 -1
  111. package/dist/service/cloudformation/stack/output/sim-cfn-stack-output-resolver.js +3 -2
  112. package/dist/service/cloudformation/stack/output/sim-cfn-stack-output-resolver.js.map +1 -1
  113. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +5 -5
  114. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts.map +1 -1
  115. package/dist/service/cloudformation/stack/sim-cfn-stack.js +8 -7
  116. package/dist/service/cloudformation/stack/sim-cfn-stack.js.map +1 -1
  117. package/dist/service/cloudformation/template/node/fn/sub/resolve/sim-cfn-fn-sub-unresolved-value.d.ts.map +1 -1
  118. package/dist/service/cloudformation/template/node/fn/sub/resolve/sim-cfn-fn-sub-unresolved-value.js +3 -1
  119. package/dist/service/cloudformation/template/node/fn/sub/resolve/sim-cfn-fn-sub-unresolved-value.js.map +1 -1
  120. package/dist/service/cloudformation/template/node/fn/sub/resolve/sim-cfn-fn-sub-variable-resolver.js +4 -2
  121. package/dist/service/cloudformation/template/node/fn/sub/resolve/sim-cfn-fn-sub-variable-resolver.js.map +1 -1
  122. package/dist/service/cloudformation/template/node/fn/sub/sim-cfn-fn-sub.d.ts.map +1 -1
  123. package/dist/service/cloudformation/template/node/fn/sub/sim-cfn-fn-sub.js +2 -2
  124. package/dist/service/cloudformation/template/node/fn/sub/sim-cfn-fn-sub.js.map +1 -1
  125. package/dist/service/cloudformation/template/node/fn/sub/template/sim-cfn-fn-sub-template.d.ts.map +1 -1
  126. package/dist/service/cloudformation/template/node/fn/sub/template/sim-cfn-fn-sub-template.js +2 -1
  127. package/dist/service/cloudformation/template/node/fn/sub/template/sim-cfn-fn-sub-template.js.map +1 -1
  128. package/dist/service/cloudformation/template/node/sim-cfn-object.d.ts.map +1 -1
  129. package/dist/service/cloudformation/template/node/sim-cfn-object.js +4 -1
  130. package/dist/service/cloudformation/template/node/sim-cfn-object.js.map +1 -1
  131. package/dist/service/cloudformation/template/parse/node/sim-cfn-node-parser.d.ts.map +1 -1
  132. package/dist/service/cloudformation/template/parse/node/sim-cfn-node-parser.js +2 -1
  133. package/dist/service/cloudformation/template/parse/node/sim-cfn-node-parser.js.map +1 -1
  134. package/dist/service/cloudformation/template/sim-cfn-template.d.ts.map +1 -1
  135. package/dist/service/cloudformation/template/sim-cfn-template.js +2 -1
  136. package/dist/service/cloudformation/template/sim-cfn-template.js.map +1 -1
  137. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +2 -2
  138. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts.map +1 -1
  139. package/dist/service/cloudfront/cff/sim-cloudfront-function.d.ts.map +1 -1
  140. package/dist/service/cloudfront/cff/sim-cloudfront-function.js +1 -1
  141. package/dist/service/cloudfront/cff/sim-cloudfront-function.js.map +1 -1
  142. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-create-input-builder.d.ts.map +1 -1
  143. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-create-input-builder.js +3 -2
  144. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-create-input-builder.js.map +1 -1
  145. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.d.ts.map +1 -1
  146. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.js +3 -2
  147. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.js.map +1 -1
  148. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts.map +1 -1
  149. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +3 -2
  150. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js.map +1 -1
  151. package/dist/service/cloudfront/command/create-distribution/create-distribution-authorizer.d.ts +27 -0
  152. package/dist/service/cloudfront/command/create-distribution/create-distribution-authorizer.d.ts.map +1 -0
  153. package/dist/service/cloudfront/command/create-distribution/create-distribution-authorizer.js +37 -0
  154. package/dist/service/cloudfront/command/create-distribution/create-distribution-authorizer.js.map +1 -0
  155. package/dist/service/cloudfront/command/create-distribution/create-distribution.cmd.d.ts +8 -8
  156. package/dist/service/cloudfront/command/create-distribution/create-distribution.cmd.d.ts.map +1 -1
  157. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +8 -1
  158. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts.map +1 -1
  159. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js +10 -2
  160. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js.map +1 -1
  161. package/dist/service/cloudfront/command/create-function/create-function-authorizer.d.ts +26 -0
  162. package/dist/service/cloudfront/command/create-function/create-function-authorizer.d.ts.map +1 -0
  163. package/dist/service/cloudfront/command/create-function/create-function-authorizer.js +35 -0
  164. package/dist/service/cloudfront/command/create-function/create-function-authorizer.js.map +1 -0
  165. package/dist/service/cloudfront/command/create-function/create-function.cmd.d.ts +2 -2
  166. package/dist/service/cloudfront/command/create-function/create-function.cmd.d.ts.map +1 -1
  167. package/dist/service/cloudfront/command/create-function/create-function.handler.d.ts +8 -1
  168. package/dist/service/cloudfront/command/create-function/create-function.handler.d.ts.map +1 -1
  169. package/dist/service/cloudfront/command/create-function/create-function.handler.js +12 -3
  170. package/dist/service/cloudfront/command/create-function/create-function.handler.js.map +1 -1
  171. package/dist/service/cloudfront/command/get-distribution/get-distribution-authorizer.d.ts +27 -0
  172. package/dist/service/cloudfront/command/get-distribution/get-distribution-authorizer.d.ts.map +1 -0
  173. package/dist/service/cloudfront/command/get-distribution/get-distribution-authorizer.js +36 -0
  174. package/dist/service/cloudfront/command/get-distribution/get-distribution-authorizer.js.map +1 -0
  175. package/dist/service/cloudfront/command/get-distribution/get-distribution.cmd.d.ts +2 -2
  176. package/dist/service/cloudfront/command/get-distribution/get-distribution.cmd.d.ts.map +1 -1
  177. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.d.ts +10 -1
  178. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.d.ts.map +1 -1
  179. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.js +10 -2
  180. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.js.map +1 -1
  181. package/dist/service/cloudfront/controller/sim-cloudfront-controller.d.ts.map +1 -1
  182. package/dist/service/cloudfront/controller/sim-cloudfront-controller.js +2 -1
  183. package/dist/service/cloudfront/controller/sim-cloudfront-controller.js.map +1 -1
  184. package/dist/service/cloudfront/distribution/configurator/sim-cff-associations-configure.d.ts.map +1 -1
  185. package/dist/service/cloudfront/distribution/configurator/sim-cff-associations-configure.js +19 -16
  186. package/dist/service/cloudfront/distribution/configurator/sim-cff-associations-configure.js.map +1 -1
  187. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js +3 -3
  188. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js.map +1 -1
  189. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts +2 -2
  190. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts.map +1 -1
  191. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js +3 -3
  192. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js.map +1 -1
  193. package/dist/service/cloudfront/origin/s3/sim-cloudfront-s3-origin.d.ts.map +1 -1
  194. package/dist/service/cloudfront/origin/s3/sim-cloudfront-s3-origin.js +3 -2
  195. package/dist/service/cloudfront/origin/s3/sim-cloudfront-s3-origin.js.map +1 -1
  196. package/dist/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.d.ts.map +1 -1
  197. package/dist/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.js +6 -3
  198. package/dist/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.js.map +1 -1
  199. package/dist/service/cloudfront/router/alternate-domain/sim-cf-alternate-domain-router.js +3 -1
  200. package/dist/service/cloudfront/router/alternate-domain/sim-cf-alternate-domain-router.js.map +1 -1
  201. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.d.ts.map +1 -1
  202. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js +2 -1
  203. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js.map +1 -1
  204. package/dist/service/cloudfront/sim-cloudfront.d.ts +10 -3
  205. package/dist/service/cloudfront/sim-cloudfront.d.ts.map +1 -1
  206. package/dist/service/cloudfront/sim-cloudfront.js +14 -7
  207. package/dist/service/cloudfront/sim-cloudfront.js.map +1 -1
  208. package/dist/service/dynamodb/command/list-tables/list-tables.handler.js +1 -1
  209. package/dist/service/dynamodb/command/list-tables/list-tables.handler.js.map +1 -1
  210. package/dist/service/dynamodb/item/dynamodb-item-attribute.d.ts.map +1 -1
  211. package/dist/service/dynamodb/item/dynamodb-item-attribute.js +10 -7
  212. package/dist/service/dynamodb/item/dynamodb-item-attribute.js.map +1 -1
  213. package/dist/service/dynamodb/table/dynamodb-key-schema.d.ts +3 -6
  214. package/dist/service/dynamodb/table/dynamodb-key-schema.d.ts.map +1 -1
  215. package/dist/service/dynamodb/table/dynamodb-key-schema.js +12 -12
  216. package/dist/service/dynamodb/table/dynamodb-key-schema.js.map +1 -1
  217. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-auth-z-id-pol-coordinator.d.ts +38 -0
  218. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-auth-z-id-pol-coordinator.d.ts.map +1 -0
  219. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-auth-z-id-pol-coordinator.js +41 -0
  220. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-auth-z-id-pol-coordinator.js.map +1 -0
  221. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-resolver.d.ts +54 -0
  222. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-resolver.d.ts.map +1 -0
  223. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-resolver.js +52 -0
  224. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-resolver.js.map +1 -0
  225. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-src-builder.d.ts +51 -0
  226. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-src-builder.d.ts.map +1 -0
  227. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-src-builder.js +74 -0
  228. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-src-builder.js.map +1 -0
  229. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts +9 -27
  230. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts.map +1 -1
  231. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.js +12 -39
  232. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.js.map +1 -1
  233. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +30 -10
  234. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts.map +1 -1
  235. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +30 -9
  236. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js.map +1 -1
  237. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.d.ts +11 -4
  238. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.d.ts.map +1 -1
  239. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.d.ts +2 -2
  240. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.d.ts.map +1 -1
  241. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.js +12 -1
  242. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.js.map +1 -1
  243. package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-num-lte.d.ts +34 -0
  244. package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-num-lte.d.ts.map +1 -0
  245. package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-num-lte.js +52 -0
  246. package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-num-lte.js.map +1 -0
  247. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator-parser.d.ts +14 -0
  248. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator-parser.d.ts.map +1 -0
  249. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator-parser.js +46 -0
  250. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator-parser.js.map +1 -0
  251. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator.d.ts +15 -0
  252. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator.d.ts.map +1 -0
  253. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator.js +2 -0
  254. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator.js.map +1 -0
  255. package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.d.ts +27 -0
  256. package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.d.ts.map +1 -0
  257. package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.js +52 -0
  258. package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.js.map +1 -0
  259. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.d.ts +13 -0
  260. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.d.ts.map +1 -0
  261. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.js +21 -0
  262. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.js.map +1 -0
  263. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-equals.d.ts +8 -0
  264. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-equals.d.ts.map +1 -0
  265. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-equals.js +10 -0
  266. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-equals.js.map +1 -0
  267. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-like.d.ts +8 -0
  268. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-like.d.ts.map +1 -0
  269. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-like.js +13 -0
  270. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-like.js.map +1 -0
  271. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.d.ts +13 -0
  272. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.d.ts.map +1 -0
  273. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.js +21 -0
  274. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.js.map +1 -0
  275. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-equals.d.ts +8 -0
  276. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-equals.d.ts.map +1 -0
  277. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-equals.js +10 -0
  278. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-equals.js.map +1 -0
  279. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-like.d.ts +8 -0
  280. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-like.d.ts.map +1 -0
  281. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-like.js +13 -0
  282. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-like.js.map +1 -0
  283. package/dist/service/iam/authorize/match/condition/string/equals/sim-iam-string-equals.d.ts +8 -0
  284. package/dist/service/iam/authorize/match/condition/string/equals/sim-iam-string-equals.d.ts.map +1 -0
  285. package/dist/service/iam/authorize/match/condition/string/equals/sim-iam-string-equals.js +10 -0
  286. package/dist/service/iam/authorize/match/condition/string/equals/sim-iam-string-equals.js.map +1 -0
  287. package/dist/service/iam/authorize/match/condition/string/like/sim-iam-string-like.d.ts +8 -0
  288. package/dist/service/iam/authorize/match/condition/string/like/sim-iam-string-like.d.ts.map +1 -0
  289. package/dist/service/iam/authorize/match/condition/string/like/sim-iam-string-like.js +13 -0
  290. package/dist/service/iam/authorize/match/condition/string/like/sim-iam-string-like.js.map +1 -0
  291. package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.d.ts +16 -0
  292. package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.d.ts.map +1 -0
  293. package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.js +20 -0
  294. package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.js.map +1 -0
  295. package/dist/service/iam/authorize/match/condition/string/sim-iam-string-values.d.ts +8 -0
  296. package/dist/service/iam/authorize/match/condition/string/sim-iam-string-values.d.ts.map +1 -0
  297. package/dist/service/iam/authorize/match/condition/string/sim-iam-string-values.js +17 -0
  298. package/dist/service/iam/authorize/match/condition/string/sim-iam-string-values.js.map +1 -0
  299. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts +59 -0
  300. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts.map +1 -0
  301. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js +119 -0
  302. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js.map +1 -0
  303. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts +14 -31
  304. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts.map +1 -1
  305. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js +25 -80
  306. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js.map +1 -1
  307. package/dist/service/iam/authorize/sim-iam-authorizer.d.ts +5 -1
  308. package/dist/service/iam/authorize/sim-iam-authorizer.d.ts.map +1 -1
  309. package/dist/service/iam/authorize/sim-iam-authorizer.js +1 -1
  310. package/dist/service/iam/authorize/sim-iam-authorizer.js.map +1 -1
  311. package/dist/service/iam/authorize/sim-iam-decision.d.ts +19 -0
  312. package/dist/service/iam/authorize/sim-iam-decision.d.ts.map +1 -1
  313. package/dist/service/iam/authorize/sim-iam-decision.js +27 -0
  314. package/dist/service/iam/authorize/sim-iam-decision.js.map +1 -1
  315. package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.d.ts +53 -0
  316. package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.d.ts.map +1 -0
  317. package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.js +38 -0
  318. package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.js.map +1 -0
  319. package/dist/service/iam/authorize/sim-iam-wildcard.d.ts +1 -1
  320. package/dist/service/iam/authorize/sim-iam-wildcard.js +7 -5
  321. package/dist/service/iam/authorize/sim-iam-wildcard.js.map +1 -1
  322. package/dist/service/iam/command/policy/list-policies/list-policies.handler.d.ts +2 -2
  323. package/dist/service/iam/command/policy/list-policies/list-policies.handler.d.ts.map +1 -1
  324. package/dist/service/iam/command/policy/list-policies/list-policies.handler.js +10 -10
  325. package/dist/service/iam/command/policy/list-policies/list-policies.handler.js.map +1 -1
  326. package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.d.ts.map +1 -1
  327. package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.js +2 -2
  328. package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.js.map +1 -1
  329. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.cmd.d.ts +12 -0
  330. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.cmd.d.ts.map +1 -0
  331. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.cmd.js +2 -0
  332. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.cmd.js.map +1 -0
  333. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.d.ts +28 -0
  334. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.d.ts.map +1 -0
  335. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.js +43 -0
  336. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.js.map +1 -0
  337. package/dist/service/iam/command/role/create-role/create-role.handler.d.ts +2 -1
  338. package/dist/service/iam/command/role/create-role/create-role.handler.d.ts.map +1 -1
  339. package/dist/service/iam/command/role/create-role/create-role.handler.js +6 -3
  340. package/dist/service/iam/command/role/create-role/create-role.handler.js.map +1 -1
  341. package/dist/service/iam/command/role/get-role/get-role.cmd.d.ts +2 -1
  342. package/dist/service/iam/command/role/get-role/get-role.cmd.d.ts.map +1 -1
  343. package/dist/service/iam/command/role/list-roles/list-roles.handler.d.ts +2 -2
  344. package/dist/service/iam/command/role/list-roles/list-roles.handler.d.ts.map +1 -1
  345. package/dist/service/iam/command/role/list-roles/list-roles.handler.js +11 -11
  346. package/dist/service/iam/command/role/list-roles/list-roles.handler.js.map +1 -1
  347. package/dist/service/iam/command/user/create-access-key/create-access-key.cmd.d.ts +17 -0
  348. package/dist/service/iam/command/user/create-access-key/create-access-key.cmd.d.ts.map +1 -0
  349. package/dist/service/iam/command/user/create-access-key/create-access-key.cmd.js +2 -0
  350. package/dist/service/iam/command/user/create-access-key/create-access-key.cmd.js.map +1 -0
  351. package/dist/service/iam/command/user/create-access-key/create-access-key.handler.d.ts +28 -0
  352. package/dist/service/iam/command/user/create-access-key/create-access-key.handler.d.ts.map +1 -0
  353. package/dist/service/iam/command/user/create-access-key/create-access-key.handler.js +59 -0
  354. package/dist/service/iam/command/user/create-access-key/create-access-key.handler.js.map +1 -0
  355. package/dist/service/iam/command/user/create-user/create-user-record-factory.d.ts +25 -0
  356. package/dist/service/iam/command/user/create-user/create-user-record-factory.d.ts.map +1 -0
  357. package/dist/service/iam/command/user/create-user/create-user-record-factory.js +39 -0
  358. package/dist/service/iam/command/user/create-user/create-user-record-factory.js.map +1 -0
  359. package/dist/service/iam/command/user/create-user/create-user.cmd.d.ts +18 -0
  360. package/dist/service/iam/command/user/create-user/create-user.cmd.d.ts.map +1 -0
  361. package/dist/service/iam/command/user/create-user/create-user.cmd.js +2 -0
  362. package/dist/service/iam/command/user/create-user/create-user.cmd.js.map +1 -0
  363. package/dist/service/iam/command/user/create-user/create-user.handler.d.ts +26 -0
  364. package/dist/service/iam/command/user/create-user/create-user.handler.d.ts.map +1 -0
  365. package/dist/service/iam/command/user/create-user/create-user.handler.js +47 -0
  366. package/dist/service/iam/command/user/create-user/create-user.handler.js.map +1 -0
  367. package/dist/service/iam/credential/error/sim-iam-credential.error.d.ts +36 -0
  368. package/dist/service/iam/credential/error/sim-iam-credential.error.d.ts.map +1 -0
  369. package/dist/service/iam/credential/error/sim-iam-credential.error.js +66 -0
  370. package/dist/service/iam/credential/error/sim-iam-credential.error.js.map +1 -0
  371. package/dist/service/iam/credential/session/sim-iam-assumed-role-principal-factory.d.ts +35 -0
  372. package/dist/service/iam/credential/session/sim-iam-assumed-role-principal-factory.d.ts.map +1 -0
  373. package/dist/service/iam/credential/session/sim-iam-assumed-role-principal-factory.js +46 -0
  374. package/dist/service/iam/credential/session/sim-iam-assumed-role-principal-factory.js.map +1 -0
  375. package/dist/service/iam/credential/session/sim-iam-session-cred-gen.d.ts +21 -0
  376. package/dist/service/iam/credential/session/sim-iam-session-cred-gen.d.ts.map +1 -0
  377. package/dist/service/iam/credential/session/sim-iam-session-cred-gen.js +17 -0
  378. package/dist/service/iam/credential/session/sim-iam-session-cred-gen.js.map +1 -0
  379. package/dist/service/iam/credential/session/sim-iam-session-manager.d.ts +44 -0
  380. package/dist/service/iam/credential/session/sim-iam-session-manager.d.ts.map +1 -0
  381. package/dist/service/iam/credential/session/sim-iam-session-manager.js +62 -0
  382. package/dist/service/iam/credential/session/sim-iam-session-manager.js.map +1 -0
  383. package/dist/service/iam/credential/session/sim-iam-session.d.ts +33 -0
  384. package/dist/service/iam/credential/session/sim-iam-session.d.ts.map +1 -0
  385. package/dist/service/iam/credential/session/sim-iam-session.js +40 -0
  386. package/dist/service/iam/credential/session/sim-iam-session.js.map +1 -0
  387. package/dist/service/iam/credential/sim-aws-credentials.d.ts +21 -0
  388. package/dist/service/iam/credential/sim-aws-credentials.d.ts.map +1 -0
  389. package/dist/service/iam/credential/sim-aws-credentials.js +2 -0
  390. package/dist/service/iam/credential/sim-aws-credentials.js.map +1 -0
  391. package/dist/service/iam/credential/sim-iam-access-key.d.ts +44 -0
  392. package/dist/service/iam/credential/sim-iam-access-key.d.ts.map +1 -0
  393. package/dist/service/iam/credential/sim-iam-access-key.js +57 -0
  394. package/dist/service/iam/credential/sim-iam-access-key.js.map +1 -0
  395. package/dist/service/iam/credential/sim-iam-credential-registry.d.ts +21 -0
  396. package/dist/service/iam/credential/sim-iam-credential-registry.d.ts.map +1 -0
  397. package/dist/service/iam/credential/sim-iam-credential-registry.js +75 -0
  398. package/dist/service/iam/credential/sim-iam-credential-registry.js.map +1 -0
  399. package/dist/service/iam/credential/user/sim-iam-user-credential-generator.d.ts +20 -0
  400. package/dist/service/iam/credential/user/sim-iam-user-credential-generator.d.ts.map +1 -0
  401. package/dist/service/iam/credential/user/sim-iam-user-credential-generator.js +16 -0
  402. package/dist/service/iam/credential/user/sim-iam-user-credential-generator.js.map +1 -0
  403. package/dist/service/iam/error/sim-iam-caller-identifier.d.ts +25 -0
  404. package/dist/service/iam/error/sim-iam-caller-identifier.d.ts.map +1 -0
  405. package/dist/service/iam/error/sim-iam-caller-identifier.js +32 -0
  406. package/dist/service/iam/error/sim-iam-caller-identifier.js.map +1 -0
  407. package/dist/service/iam/error/sim-iam.error.d.ts +26 -0
  408. package/dist/service/iam/error/sim-iam.error.d.ts.map +1 -1
  409. package/dist/service/iam/error/sim-iam.error.js +25 -0
  410. package/dist/service/iam/error/sim-iam.error.js.map +1 -1
  411. package/dist/service/iam/policy/sim-iam-policy.d.ts +4 -2
  412. package/dist/service/iam/policy/sim-iam-policy.d.ts.map +1 -1
  413. package/dist/service/iam/registry/sim-iam-account-resolver.d.ts +16 -0
  414. package/dist/service/iam/registry/sim-iam-account-resolver.d.ts.map +1 -0
  415. package/dist/service/iam/registry/sim-iam-account-resolver.js +2 -0
  416. package/dist/service/iam/registry/sim-iam-account-resolver.js.map +1 -0
  417. package/dist/service/iam/registry/sim-iam-registry.d.ts +19 -73
  418. package/dist/service/iam/registry/sim-iam-registry.d.ts.map +1 -1
  419. package/dist/service/iam/registry/sim-iam-registry.js +25 -85
  420. package/dist/service/iam/registry/sim-iam-registry.js.map +1 -1
  421. package/dist/service/iam/role/arn/sim-iam-role-arn-parser.d.ts +16 -0
  422. package/dist/service/iam/role/arn/sim-iam-role-arn-parser.d.ts.map +1 -0
  423. package/dist/service/iam/role/arn/sim-iam-role-arn-parser.js +41 -0
  424. package/dist/service/iam/role/arn/sim-iam-role-arn-parser.js.map +1 -0
  425. package/dist/service/iam/role/arn/sim-iam-role-arn.d.ts +14 -0
  426. package/dist/service/iam/role/arn/sim-iam-role-arn.d.ts.map +1 -0
  427. package/dist/service/iam/role/arn/sim-iam-role-arn.js +9 -0
  428. package/dist/service/iam/role/arn/sim-iam-role-arn.js.map +1 -0
  429. package/dist/service/iam/role/sim-iam-role.factory.js +1 -1
  430. package/dist/service/iam/role/sim-iam-role.factory.js.map +1 -1
  431. package/dist/service/iam/sim-iam.d.ts +38 -5
  432. package/dist/service/iam/sim-iam.d.ts.map +1 -1
  433. package/dist/service/iam/sim-iam.js +69 -14
  434. package/dist/service/iam/sim-iam.js.map +1 -1
  435. package/dist/service/iam/user/arn/sim-iam-user-arn.d.ts +14 -0
  436. package/dist/service/iam/user/arn/sim-iam-user-arn.d.ts.map +1 -0
  437. package/dist/service/iam/user/arn/sim-iam-user-arn.js +8 -0
  438. package/dist/service/iam/user/arn/sim-iam-user-arn.js.map +1 -0
  439. package/dist/service/iam/user/sim-iam-user-id.d.ts +6 -0
  440. package/dist/service/iam/user/sim-iam-user-id.d.ts.map +1 -0
  441. package/dist/service/iam/user/sim-iam-user-id.js +10 -0
  442. package/dist/service/iam/user/sim-iam-user-id.js.map +1 -0
  443. package/dist/service/iam/user/sim-iam-user-path.d.ts +5 -0
  444. package/dist/service/iam/user/sim-iam-user-path.d.ts.map +1 -0
  445. package/dist/service/iam/user/sim-iam-user-path.js +13 -0
  446. package/dist/service/iam/user/sim-iam-user-path.js.map +1 -0
  447. package/dist/service/iam/user/sim-iam-user.d.ts +31 -0
  448. package/dist/service/iam/user/sim-iam-user.d.ts.map +1 -0
  449. package/dist/service/iam/user/sim-iam-user.js +2 -0
  450. package/dist/service/iam/user/sim-iam-user.js.map +1 -0
  451. package/dist/service/iam/validate/trust/sim-iam-trust-policy-doc-validator.d.ts +22 -0
  452. package/dist/service/iam/validate/trust/sim-iam-trust-policy-doc-validator.d.ts.map +1 -0
  453. package/dist/service/iam/validate/trust/sim-iam-trust-policy-doc-validator.js +85 -0
  454. package/dist/service/iam/validate/trust/sim-iam-trust-policy-doc-validator.js.map +1 -0
  455. package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.d.ts.map +1 -1
  456. package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.js +2 -1
  457. package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.js.map +1 -1
  458. package/dist/service/route53/cfn/record-set/build/sim-cfn-r53-record-set-builder.d.ts.map +1 -1
  459. package/dist/service/route53/cfn/record-set/build/sim-cfn-r53-record-set-builder.js +3 -2
  460. package/dist/service/route53/cfn/record-set/build/sim-cfn-r53-record-set-builder.js.map +1 -1
  461. package/dist/service/route53/cfn/record-set/resolve/sim-cfn-r53-rec-set-zone-resolver.js +3 -1
  462. package/dist/service/route53/cfn/record-set/resolve/sim-cfn-r53-rec-set-zone-resolver.js.map +1 -1
  463. package/dist/service/route53/command/create-hosted-zone/create-hosted-zone.handler.js +3 -1
  464. package/dist/service/route53/command/create-hosted-zone/create-hosted-zone.handler.js.map +1 -1
  465. package/dist/service/route53/command/list-hosted-zones-by-name/list-hosted-zones-by-name.js +1 -1
  466. package/dist/service/route53/command/list-hosted-zones-by-name/list-hosted-zones-by-name.js.map +1 -1
  467. package/dist/service/route53/hosted-zone/sim-route53-hosted-zone.js +6 -6
  468. package/dist/service/route53/hosted-zone/sim-route53-hosted-zone.js.map +1 -1
  469. package/dist/service/s3/bucket/name-availability/sim-s3-bucket-name-availability.d.ts.map +1 -1
  470. package/dist/service/s3/bucket/name-availability/sim-s3-bucket-name-availability.js +5 -4
  471. package/dist/service/s3/bucket/name-availability/sim-s3-bucket-name-availability.js.map +1 -1
  472. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +11 -0
  473. package/dist/service/s3/bucket/sim-s3-bucket.d.ts.map +1 -1
  474. package/dist/service/s3/bucket/sim-s3-bucket.js +15 -1
  475. package/dist/service/s3/bucket/sim-s3-bucket.js.map +1 -1
  476. package/dist/service/s3/bucket/website/redirect/s3-bucket-website-redirects.d.ts.map +1 -1
  477. package/dist/service/s3/bucket/website/redirect/s3-bucket-website-redirects.js +6 -3
  478. package/dist/service/s3/bucket/website/redirect/s3-bucket-website-redirects.js.map +1 -1
  479. package/dist/service/s3/bucket/website/sim-s3-bucket-website.js +1 -1
  480. package/dist/service/s3/bucket/website/sim-s3-bucket-website.js.map +1 -1
  481. package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts +8 -1
  482. package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts.map +1 -1
  483. package/dist/service/s3/command/create-bucket/create-bucket.handler.js +23 -5
  484. package/dist/service/s3/command/create-bucket/create-bucket.handler.js.map +1 -1
  485. package/dist/service/s3/command/get-object/get-object-authorizer.d.ts +24 -0
  486. package/dist/service/s3/command/get-object/get-object-authorizer.d.ts.map +1 -0
  487. package/dist/service/s3/command/get-object/get-object-authorizer.js +44 -0
  488. package/dist/service/s3/command/get-object/get-object-authorizer.js.map +1 -0
  489. package/dist/service/s3/command/get-object/get-object-loader.d.ts +26 -0
  490. package/dist/service/s3/command/get-object/get-object-loader.d.ts.map +1 -0
  491. package/dist/service/s3/command/get-object/get-object-loader.js +36 -0
  492. package/dist/service/s3/command/get-object/get-object-loader.js.map +1 -0
  493. package/dist/service/s3/command/get-object/get-object.handler.d.ts +18 -2
  494. package/dist/service/s3/command/get-object/get-object.handler.d.ts.map +1 -1
  495. package/dist/service/s3/command/get-object/get-object.handler.js +21 -15
  496. package/dist/service/s3/command/get-object/get-object.handler.js.map +1 -1
  497. package/dist/service/s3/command/list-buckets/list-buckets-authorizer.d.ts +34 -0
  498. package/dist/service/s3/command/list-buckets/list-buckets-authorizer.d.ts.map +1 -0
  499. package/dist/service/s3/command/list-buckets/list-buckets-authorizer.js +44 -0
  500. package/dist/service/s3/command/list-buckets/list-buckets-authorizer.js.map +1 -0
  501. package/dist/service/s3/command/list-buckets/list-buckets-page-builder.d.ts +65 -0
  502. package/dist/service/s3/command/list-buckets/list-buckets-page-builder.d.ts.map +1 -0
  503. package/dist/service/s3/command/list-buckets/list-buckets-page-builder.js +94 -0
  504. package/dist/service/s3/command/list-buckets/list-buckets-page-builder.js.map +1 -0
  505. package/dist/service/s3/command/list-buckets/list-buckets.handler.d.ts +16 -4
  506. package/dist/service/s3/command/list-buckets/list-buckets.handler.d.ts.map +1 -1
  507. package/dist/service/s3/command/list-buckets/list-buckets.handler.js +18 -34
  508. package/dist/service/s3/command/list-buckets/list-buckets.handler.js.map +1 -1
  509. package/dist/service/s3/command/list-objects/list-objects-authorizer.d.ts +35 -0
  510. package/dist/service/s3/command/list-objects/list-objects-authorizer.d.ts.map +1 -0
  511. package/dist/service/s3/command/list-objects/list-objects-authorizer.js +53 -0
  512. package/dist/service/s3/command/list-objects/list-objects-authorizer.js.map +1 -0
  513. package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +30 -0
  514. package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts.map +1 -0
  515. package/dist/service/s3/command/list-objects/list-objects-page-builder.js +43 -0
  516. package/dist/service/s3/command/list-objects/list-objects-page-builder.js.map +1 -0
  517. package/dist/service/s3/command/list-objects/list-objects.handler.d.ts +14 -2
  518. package/dist/service/s3/command/list-objects/list-objects.handler.d.ts.map +1 -1
  519. package/dist/service/s3/command/list-objects/list-objects.handler.js +26 -27
  520. package/dist/service/s3/command/list-objects/list-objects.handler.js.map +1 -1
  521. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy-authorizer.d.ts +20 -0
  522. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy-authorizer.d.ts.map +1 -0
  523. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy-authorizer.js +30 -0
  524. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy-authorizer.js.map +1 -0
  525. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.cmd.d.ts +21 -0
  526. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.cmd.d.ts.map +1 -0
  527. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.cmd.js +2 -0
  528. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.cmd.js.map +1 -0
  529. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.d.ts +30 -0
  530. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.d.ts.map +1 -0
  531. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js +43 -0
  532. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js.map +1 -0
  533. package/dist/service/s3/command/put-bucket-website/put-bucket-website-authorizer.d.ts +37 -0
  534. package/dist/service/s3/command/put-bucket-website/put-bucket-website-authorizer.d.ts.map +1 -0
  535. package/dist/service/s3/command/put-bucket-website/put-bucket-website-authorizer.js +47 -0
  536. package/dist/service/s3/command/put-bucket-website/put-bucket-website-authorizer.js.map +1 -0
  537. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.d.ts +13 -1
  538. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.d.ts.map +1 -1
  539. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.js +12 -2
  540. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.js.map +1 -1
  541. package/dist/service/s3/command/put-object/put-object-authorizer.d.ts +24 -0
  542. package/dist/service/s3/command/put-object/put-object-authorizer.d.ts.map +1 -0
  543. package/dist/service/s3/command/put-object/put-object-authorizer.js +44 -0
  544. package/dist/service/s3/command/put-object/put-object-authorizer.js.map +1 -0
  545. package/dist/service/s3/command/put-object/put-object-builder.d.ts +45 -0
  546. package/dist/service/s3/command/put-object/put-object-builder.d.ts.map +1 -0
  547. package/dist/service/s3/command/put-object/put-object-builder.js +70 -0
  548. package/dist/service/s3/command/put-object/put-object-builder.js.map +1 -0
  549. package/dist/service/s3/command/put-object/put-object.handler.d.ts +19 -4
  550. package/dist/service/s3/command/put-object/put-object.handler.d.ts.map +1 -1
  551. package/dist/service/s3/command/put-object/put-object.handler.js +19 -28
  552. package/dist/service/s3/command/put-object/put-object.handler.js.map +1 -1
  553. package/dist/service/s3/serve/sim-s3-get-obj-controller.js +1 -1
  554. package/dist/service/s3/serve/sim-s3-get-obj-controller.js.map +1 -1
  555. package/dist/service/s3/sim-s3.d.ts +18 -6
  556. package/dist/service/s3/sim-s3.d.ts.map +1 -1
  557. package/dist/service/s3/sim-s3.js +34 -13
  558. package/dist/service/s3/sim-s3.js.map +1 -1
  559. package/dist/service/s3/storage/s3-memory-storage.js +1 -1
  560. package/dist/service/s3/storage/s3-memory-storage.js.map +1 -1
  561. package/dist/service/sts/assume/sim-sts-assume-role-request-parser.d.ts +57 -0
  562. package/dist/service/sts/assume/sim-sts-assume-role-request-parser.d.ts.map +1 -0
  563. package/dist/service/sts/assume/sim-sts-assume-role-request-parser.js +79 -0
  564. package/dist/service/sts/assume/sim-sts-assume-role-request-parser.js.map +1 -0
  565. package/dist/service/sts/assume/sim-sts-assume-role-session-creator.d.ts +52 -0
  566. package/dist/service/sts/assume/sim-sts-assume-role-session-creator.d.ts.map +1 -0
  567. package/dist/service/sts/assume/sim-sts-assume-role-session-creator.js +64 -0
  568. package/dist/service/sts/assume/sim-sts-assume-role-session-creator.js.map +1 -0
  569. package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.d.ts +57 -0
  570. package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.d.ts.map +1 -0
  571. package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.js +68 -0
  572. package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.js.map +1 -0
  573. package/dist/service/sts/auth-z/assume-role-src-acc-auth-z.d.ts +45 -0
  574. package/dist/service/sts/auth-z/assume-role-src-acc-auth-z.d.ts.map +1 -0
  575. package/dist/service/sts/auth-z/assume-role-src-acc-auth-z.js +48 -0
  576. package/dist/service/sts/auth-z/assume-role-src-acc-auth-z.js.map +1 -0
  577. package/dist/service/sts/auth-z/assume-role-target-auth-z.d.ts +48 -0
  578. package/dist/service/sts/auth-z/assume-role-target-auth-z.d.ts.map +1 -0
  579. package/dist/service/sts/auth-z/assume-role-target-auth-z.js +50 -0
  580. package/dist/service/sts/auth-z/assume-role-target-auth-z.js.map +1 -0
  581. package/dist/service/sts/auth-z/assume-role-trust-grant-classifier.d.ts +57 -0
  582. package/dist/service/sts/auth-z/assume-role-trust-grant-classifier.d.ts.map +1 -0
  583. package/dist/service/sts/auth-z/assume-role-trust-grant-classifier.js +85 -0
  584. package/dist/service/sts/auth-z/assume-role-trust-grant-classifier.js.map +1 -0
  585. package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.d.ts +45 -0
  586. package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.d.ts.map +1 -0
  587. package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.js +64 -0
  588. package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.js.map +1 -0
  589. package/dist/service/sts/auth-z/resolve/assume-role-target-resolver.d.ts +44 -0
  590. package/dist/service/sts/auth-z/resolve/assume-role-target-resolver.d.ts.map +1 -0
  591. package/dist/service/sts/auth-z/resolve/assume-role-target-resolver.js +62 -0
  592. package/dist/service/sts/auth-z/resolve/assume-role-target-resolver.js.map +1 -0
  593. package/dist/service/sts/command/assume-role/assume-role.cmd.d.ts +45 -0
  594. package/dist/service/sts/command/assume-role/assume-role.cmd.d.ts.map +1 -0
  595. package/dist/service/sts/command/assume-role/assume-role.cmd.js +2 -0
  596. package/dist/service/sts/command/assume-role/assume-role.cmd.js.map +1 -0
  597. package/dist/service/sts/command/assume-role/assume-role.handler.d.ts +40 -0
  598. package/dist/service/sts/command/assume-role/assume-role.handler.d.ts.map +1 -0
  599. package/dist/service/sts/command/assume-role/assume-role.handler.js +69 -0
  600. package/dist/service/sts/command/assume-role/assume-role.handler.js.map +1 -0
  601. package/dist/service/sts/sim-sts.d.ts +31 -0
  602. package/dist/service/sts/sim-sts.d.ts.map +1 -0
  603. package/dist/service/sts/sim-sts.js +34 -0
  604. package/dist/service/sts/sim-sts.js.map +1 -0
  605. package/dist/tsconfig.tsbuildinfo +1 -1
  606. package/dist/util/background/background.d.ts.map +1 -1
  607. package/dist/util/background/background.js +2 -0
  608. package/dist/util/background/background.js.map +1 -1
  609. package/dist/util/background/non-deterministic-background.d.ts.map +1 -1
  610. package/dist/util/background/non-deterministic-background.js +1 -0
  611. package/dist/util/background/non-deterministic-background.js.map +1 -1
  612. package/package.json +23 -22
@@ -0,0 +1,34 @@
1
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
2
+ import type { SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
3
+ interface ListBucketsAuthorizerProps {
4
+ readonly iam: SimIamInterServiceAuthZ;
5
+ }
6
+ /**
7
+ * Applies IAM authorization to an S3 ListBuckets request.
8
+ *
9
+ * AWS maps the ListBuckets API operation to the S3:ListAllMyBuckets IAM
10
+ * action. Despite the action name, this permission does not use individual
11
+ * Bucket ARNs. AWS documents it as an account-level listing permission whose
12
+ * resource is "*".
13
+ *
14
+ * Authorization therefore applies to the complete operation. An allowed caller
15
+ * receives the account's Bucket listing, subject to request pagination and
16
+ * prefix filtering. A denied caller receives AccessDenied rather than a
17
+ * filtered or empty result.
18
+ */
19
+ export declare class ListBucketsAuthorizer {
20
+ private static readonly action;
21
+ private static readonly resource;
22
+ private readonly iam;
23
+ constructor(props: ListBucketsAuthorizerProps);
24
+ /**
25
+ * Ensure the caller may list the simulated Account's S3 Buckets.
26
+ *
27
+ * The caller is passed through unchanged so sim IAM can distinguish an
28
+ * omitted caller, which defaults to Account root, from an explicit anonymous
29
+ * caller, which has no identity policy permissions.
30
+ */
31
+ authorize(caller?: SimAwsCaller): void;
32
+ }
33
+ export {};
34
+ //# sourceMappingURL=list-buckets-authorizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-buckets-authorizer.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets-authorizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wDAAwD,CAAC;AAGtG,UAAU,0BAA0B;IAClC,QAAQ,CAAC,GAAG,EAAE,uBAAuB,CAAC;CACvC;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAyB;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAO;IAEvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA0B;IAE9C,YAAY,KAAK,EAAE,0BAA0B,EAE5C;IAED;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAcrC;CACF"}
@@ -0,0 +1,44 @@
1
+ import { SimIamAccessDenied } from "../../../iam/error/sim-iam.error.js";
2
+ /**
3
+ * Applies IAM authorization to an S3 ListBuckets request.
4
+ *
5
+ * AWS maps the ListBuckets API operation to the S3:ListAllMyBuckets IAM
6
+ * action. Despite the action name, this permission does not use individual
7
+ * Bucket ARNs. AWS documents it as an account-level listing permission whose
8
+ * resource is "*".
9
+ *
10
+ * Authorization therefore applies to the complete operation. An allowed caller
11
+ * receives the account's Bucket listing, subject to request pagination and
12
+ * prefix filtering. A denied caller receives AccessDenied rather than a
13
+ * filtered or empty result.
14
+ */
15
+ export class ListBucketsAuthorizer {
16
+ static action = "s3:ListAllMyBuckets";
17
+ static resource = "*";
18
+ iam;
19
+ constructor(props) {
20
+ this.iam = props.iam;
21
+ }
22
+ /**
23
+ * Ensure the caller may list the simulated Account's S3 Buckets.
24
+ *
25
+ * The caller is passed through unchanged so sim IAM can distinguish an
26
+ * omitted caller, which defaults to Account root, from an explicit anonymous
27
+ * caller, which has no identity policy permissions.
28
+ */
29
+ authorize(caller) {
30
+ const decision = this.iam.authorize({
31
+ action: ListBucketsAuthorizer.action,
32
+ resource: ListBucketsAuthorizer.resource,
33
+ caller,
34
+ });
35
+ if (decision.isDenied) {
36
+ throw new SimIamAccessDenied({
37
+ principal: decision.caller.principal,
38
+ action: ListBucketsAuthorizer.action,
39
+ resource: ListBucketsAuthorizer.resource,
40
+ });
41
+ }
42
+ }
43
+ }
44
+ //# sourceMappingURL=list-buckets-authorizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-buckets-authorizer.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets-authorizer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAMzE;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,qBAAqB;IACxB,MAAM,CAAU,MAAM,GAAG,qBAAqB,CAAC;IAC/C,MAAM,CAAU,QAAQ,GAAG,GAAG,CAAC;IAEtB,GAAG,CAA0B;IAE9C,YAAY,KAAiC;QAC3C,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,MAAqB;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAClC,MAAM,EAAE,qBAAqB,CAAC,MAAM;YACpC,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;YACxC,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,kBAAkB,CAAC;gBAC3B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;gBACpC,MAAM,EAAE,qBAAqB,CAAC,MAAM;gBACpC,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;aACzC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,65 @@
1
+ import type { SimListBucketsCommandInput, SimListBucketsCommandOutput } from "./list-buckets.cmd.js";
2
+ import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
3
+ interface ListBucketsPageBuilderProps {
4
+ readonly buckets: ReadonlyMap<SimS3BucketName, SimS3Bucket>;
5
+ }
6
+ type ListBucketsPage = Omit<SimListBucketsCommandOutput, "$metadata">;
7
+ /**
8
+ * Builds one page of an S3 ListBuckets response.
9
+ *
10
+ * IAM authorization remains in the command handler because it controls whether
11
+ * Bucket state may be read at all. This class handles the data operations that
12
+ * happen after authorization: stable ordering, prefix filtering, continuation
13
+ * token interpretation, page selection, and generation of the next token.
14
+ *
15
+ * Continuation tokens encode the final Bucket name from the previous page. Since
16
+ * Bucket names are globally unique and the collection is sorted by name, that
17
+ * name provides a stable position from which to continue. If the referenced
18
+ * Bucket is absent, listing restarts at the beginning rather than producing a
19
+ * negative array index.
20
+ */
21
+ export declare class ListBucketsPageBuilder {
22
+ private readonly buckets;
23
+ constructor(props: ListBucketsPageBuilderProps);
24
+ /**
25
+ * Build the response fields for one ListBuckets page.
26
+ *
27
+ * Response metadata is owned by the command handler, so it is not included in
28
+ * this result. Keeping protocol metadata outside this class lets the pagination
29
+ * logic remain focused on Bucket collection state and request parameters.
30
+ */
31
+ build(input: SimListBucketsCommandInput): ListBucketsPage;
32
+ /**
33
+ * Return Buckets in the name order used by continuation tokens.
34
+ *
35
+ * A new array is sorted so listing cannot change insertion order in the
36
+ * service's Bucket map. Prefix filtering happens after sorting, preserving the
37
+ * same relative order for filtered and unfiltered requests.
38
+ */
39
+ private matchingBuckets;
40
+ /**
41
+ * Find the first Bucket to include after a continuation token.
42
+ *
43
+ * The token identifies the last Bucket returned by the preceding page, so the
44
+ * next page starts one position later. A missing or unknown token position maps
45
+ * to index zero, matching the previous handler behavior.
46
+ */
47
+ private startIndex;
48
+ /**
49
+ * Create a token only when another Bucket remains after this page.
50
+ *
51
+ * Empty pages have no final Bucket from which to form a token. A final page
52
+ * also omits the token so callers can detect completion.
53
+ */
54
+ private nextContinuationToken;
55
+ /**
56
+ * Encode a Bucket name as an opaque URL-safe continuation token.
57
+ */
58
+ private makeContinuationToken;
59
+ /**
60
+ * Recover the Bucket name represented by a continuation token.
61
+ */
62
+ private parseContinuationToken;
63
+ }
64
+ export {};
65
+ //# sourceMappingURL=list-buckets-page-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-buckets-page-builder.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets-page-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAEvC,UAAU,2BAA2B;IACnC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;CAC7D;AAED,KAAK,eAAe,GAAG,IAAI,CAAC,2BAA2B,EAAE,WAAW,CAAC,CAAC;AAEtE;;;;;;;;;;;;;GAaG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4C;IAEpE,YAAY,KAAK,EAAE,2BAA2B,EAE7C;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,0BAA0B,GAAG,eAAe,CAoBxD;IAED;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IASvB;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;IAgBlB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAG/B"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Builds one page of an S3 ListBuckets response.
3
+ *
4
+ * IAM authorization remains in the command handler because it controls whether
5
+ * Bucket state may be read at all. This class handles the data operations that
6
+ * happen after authorization: stable ordering, prefix filtering, continuation
7
+ * token interpretation, page selection, and generation of the next token.
8
+ *
9
+ * Continuation tokens encode the final Bucket name from the previous page. Since
10
+ * Bucket names are globally unique and the collection is sorted by name, that
11
+ * name provides a stable position from which to continue. If the referenced
12
+ * Bucket is absent, listing restarts at the beginning rather than producing a
13
+ * negative array index.
14
+ */
15
+ export class ListBucketsPageBuilder {
16
+ buckets;
17
+ constructor(props) {
18
+ this.buckets = props.buckets;
19
+ }
20
+ /**
21
+ * Build the response fields for one ListBuckets page.
22
+ *
23
+ * Response metadata is owned by the command handler, so it is not included in
24
+ * this result. Keeping protocol metadata outside this class lets the pagination
25
+ * logic remain focused on Bucket collection state and request parameters.
26
+ */
27
+ build(input) {
28
+ const matchingBuckets = this.matchingBuckets(input.Prefix);
29
+ const startIndex = this.startIndex(matchingBuckets, input.ContinuationToken);
30
+ const maxBuckets = input.MaxBuckets ?? 10_000;
31
+ const page = matchingBuckets.slice(startIndex, startIndex + maxBuckets);
32
+ return {
33
+ Buckets: page.map((bucket) => ({
34
+ Name: bucket.bucketName,
35
+ })),
36
+ ContinuationToken: this.nextContinuationToken(page, startIndex, matchingBuckets.length),
37
+ Prefix: input.Prefix,
38
+ };
39
+ }
40
+ /**
41
+ * Return Buckets in the name order used by continuation tokens.
42
+ *
43
+ * A new array is sorted so listing cannot change insertion order in the
44
+ * service's Bucket map. Prefix filtering happens after sorting, preserving the
45
+ * same relative order for filtered and unfiltered requests.
46
+ */
47
+ matchingBuckets(prefix) {
48
+ const buckets = this.buckets.values().toArray();
49
+ buckets.sort((a, b) => a.bucketName.localeCompare(b.bucketName));
50
+ return prefix === undefined
51
+ ? buckets
52
+ : buckets.filter((bucket) => bucket.bucketName.startsWith(prefix));
53
+ }
54
+ /**
55
+ * Find the first Bucket to include after a continuation token.
56
+ *
57
+ * The token identifies the last Bucket returned by the preceding page, so the
58
+ * next page starts one position later. A missing or unknown token position maps
59
+ * to index zero, matching the previous handler behavior.
60
+ */
61
+ startIndex(buckets, continuationToken) {
62
+ if (continuationToken === undefined) {
63
+ return 0;
64
+ }
65
+ const startBucketName = this.parseContinuationToken(continuationToken);
66
+ return Math.max(0, buckets.findIndex((bucket) => bucket.bucketName === startBucketName) + 1);
67
+ }
68
+ /**
69
+ * Create a token only when another Bucket remains after this page.
70
+ *
71
+ * Empty pages have no final Bucket from which to form a token. A final page
72
+ * also omits the token so callers can detect completion.
73
+ */
74
+ nextContinuationToken(page, startIndex, matchingBucketCount) {
75
+ const lastBucket = page.at(-1);
76
+ const hasMoreBuckets = startIndex + page.length < matchingBucketCount;
77
+ return hasMoreBuckets && lastBucket !== undefined
78
+ ? this.makeContinuationToken(lastBucket.bucketName)
79
+ : undefined;
80
+ }
81
+ /**
82
+ * Encode a Bucket name as an opaque URL-safe continuation token.
83
+ */
84
+ makeContinuationToken(bucketName) {
85
+ return Buffer.from(bucketName, "utf8").toString("base64url");
86
+ }
87
+ /**
88
+ * Recover the Bucket name represented by a continuation token.
89
+ */
90
+ parseContinuationToken(token) {
91
+ return Buffer.from(token, "base64url").toString("utf8");
92
+ }
93
+ }
94
+ //# sourceMappingURL=list-buckets-page-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-buckets-page-builder.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets-page-builder.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,sBAAsB;IAChB,OAAO,CAA4C;IAEpE,YAAY,KAAkC;QAC5C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAiC;QACrC,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAChC,eAAe,EACf,KAAK,CAAC,iBAAiB,CACxB,CAAC;QACF,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC;QAC9C,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC;QAExE,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC7B,IAAI,EAAE,MAAM,CAAC,UAAU;aACxB,CAAC,CAAC;YACH,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,CAC3C,IAAI,EACJ,UAAU,EACV,eAAe,CAAC,MAAM,CACvB;YACD,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,eAAe,CAAC,MAAe;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAEjE,OAAO,MAAM,KAAK,SAAS;YACzB,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;OAMG;IACK,UAAU,CAChB,OAA+B,EAC/B,iBAA0B;QAE1B,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;QAEvE,OAAO,IAAI,CAAC,GAAG,CACb,CAAC,EACD,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,eAAe,CAAC,GAAG,CAAC,CACzE,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,qBAAqB,CAC3B,IAA4B,EAC5B,UAAkB,EAClB,mBAA2B;QAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,cAAc,GAAG,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC;QAEtE,OAAO,cAAc,IAAI,UAAU,KAAK,SAAS;YAC/C,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,UAAU,CAAC;YACnD,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,UAAkB;QAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,KAAa;QAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;CACF"}
@@ -2,25 +2,37 @@ import type { CommandHandler } from "../../../../command/command-handler.js";
2
2
  import type { SimListBucketsCommand, SimListBucketsCommandOutput } from "./list-buckets.cmd.js";
3
3
  import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
4
4
  import { type BackgroundScheduler } from "../../../../util/background/background.js";
5
+ import { type SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
6
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
5
7
  interface ListBucketsCommandHandlerProps {
6
8
  readonly buckets: Map<SimS3BucketName, SimS3Bucket>;
9
+ readonly iam?: SimIamInterServiceAuthZ;
7
10
  readonly background?: BackgroundScheduler;
8
11
  }
12
+ interface ListBucketsCommandHandlerOptions {
13
+ readonly caller?: SimAwsCaller;
14
+ }
9
15
  /**
10
16
  * Simulated S3 ListBucketsCommand handler.
11
17
  *
12
18
  * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/ListBucketsCommand/
13
19
  */
14
20
  export declare class ListBucketsCommandHandler implements CommandHandler<SimListBucketsCommand, SimListBucketsCommandOutput> {
15
- private readonly buckets;
21
+ private readonly authorizer;
22
+ private readonly pageBuilder;
16
23
  private readonly background;
17
24
  constructor(props: ListBucketsCommandHandlerProps);
18
25
  /**
19
26
  * Simulate listing S3 Buckets.
27
+ *
28
+ * Authorization happens before the page builder reads Bucket state. AWS treats
29
+ * ListBuckets as one account-level operation and does not return a partial
30
+ * result containing only Bucket ARNs matched by the caller's policies.
31
+ *
32
+ * Once authorized, page construction is delegated so this handler remains
33
+ * focused on coordinating request-level concerns.
20
34
  */
21
- handle(cmd: SimListBucketsCommand): Promise<SimListBucketsCommandOutput>;
22
- private static makeContinuationToken;
23
- private static parseContinuationToken;
35
+ handle(cmd: SimListBucketsCommand, opts?: ListBucketsCommandHandlerOptions): Promise<SimListBucketsCommandOutput>;
24
36
  }
25
37
  export {};
26
38
  //# sourceMappingURL=list-buckets.handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-buckets.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AAEnD,UAAU,8BAA8B;IACtC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,cAAc,CAC9D,qBAAqB,EACrB,2BAA2B,CAC5B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,YAAY,KAAK,EAAE,8BAA8B,EAIhD;IAED;;OAEG;IACG,MAAM,CACV,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,2BAA2B,CAAC,CAgDtC;IAED,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAIpC,OAAO,CAAC,MAAM,CAAC,sBAAsB;CAGtC"}
1
+ {"version":3,"file":"list-buckets.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAI1E,UAAU,8BAA8B;IACtC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED,UAAU,gCAAgC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,cAAc,CAC9D,qBAAqB,EACrB,2BAA2B,CAC5B;IACC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,YAAY,KAAK,EAAE,8BAA8B,EAShD;IAED;;;;;;;;;OASG;IACG,MAAM,CACV,GAAG,EAAE,qBAAqB,EAC1B,IAAI,CAAC,EAAE,gCAAgC,GACtC,OAAO,CAAC,2BAA2B,CAAC,CAUtC;CACF"}
@@ -1,56 +1,40 @@
1
1
  import { BackgroundTasks, } from "../../../../util/background/background.js";
2
+ import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
3
+ import { ListBucketsAuthorizer } from "./list-buckets-authorizer.js";
4
+ import { ListBucketsPageBuilder } from "./list-buckets-page-builder.js";
2
5
  /**
3
6
  * Simulated S3 ListBucketsCommand handler.
4
7
  *
5
8
  * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/ListBucketsCommand/
6
9
  */
7
10
  export class ListBucketsCommandHandler {
8
- buckets;
11
+ authorizer;
12
+ pageBuilder;
9
13
  background;
10
14
  constructor(props) {
11
- const { buckets, background = new BackgroundTasks() } = props;
12
- this.buckets = buckets;
15
+ const { buckets, iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), } = props;
16
+ this.authorizer = new ListBucketsAuthorizer({ iam });
17
+ this.pageBuilder = new ListBucketsPageBuilder({ buckets });
13
18
  this.background = background;
14
19
  }
15
20
  /**
16
21
  * Simulate listing S3 Buckets.
22
+ *
23
+ * Authorization happens before the page builder reads Bucket state. AWS treats
24
+ * ListBuckets as one account-level operation and does not return a partial
25
+ * result containing only Bucket ARNs matched by the caller's policies.
26
+ *
27
+ * Once authorized, page construction is delegated so this handler remains
28
+ * focused on coordinating request-level concerns.
17
29
  */
18
- async handle(cmd) {
30
+ async handle(cmd, opts) {
19
31
  // Allow for potential non-deterministic sequencing of async events.
20
32
  await this.background.sequence();
21
- const buckets = [...this.buckets.values()];
22
- buckets.sort((a, b) => a.bucketName.localeCompare(b.bucketName));
23
- const prefix = cmd.input.Prefix;
24
- const continuationToken = cmd.input.ContinuationToken;
25
- const maxBuckets = cmd.input.MaxBuckets ?? 10_000;
26
- const matchingBuckets = prefix === undefined
27
- ? buckets
28
- : buckets.filter((bucket) => bucket.bucketName.startsWith(prefix));
29
- const startBucketName = continuationToken === undefined
30
- ? undefined
31
- : ListBucketsCommandHandler.parseContinuationToken(continuationToken);
32
- const startIndex = startBucketName === undefined
33
- ? 0
34
- : Math.max(0, matchingBuckets.findIndex((bucket) => bucket.bucketName === startBucketName) + 1);
35
- const page = matchingBuckets.slice(startIndex, startIndex + maxBuckets);
36
- const lastBucket = page.at(-1);
37
- const hasMoreBuckets = startIndex + page.length < matchingBuckets.length;
33
+ this.authorizer.authorize(opts?.caller);
38
34
  return {
39
- Buckets: page.map((bucket) => ({
40
- Name: bucket.bucketName,
41
- })),
42
- ContinuationToken: hasMoreBuckets && lastBucket !== undefined
43
- ? ListBucketsCommandHandler.makeContinuationToken(lastBucket.bucketName)
44
- : undefined,
45
- Prefix: prefix,
35
+ ...this.pageBuilder.build(cmd.input),
46
36
  $metadata: {},
47
37
  };
48
38
  }
49
- static makeContinuationToken(bucketName) {
50
- return Buffer.from(bucketName, "utf8").toString("base64url");
51
- }
52
- static parseContinuationToken(token) {
53
- return Buffer.from(token, "base64url").toString("utf8");
54
- }
55
39
  }
56
40
  //# sourceMappingURL=list-buckets.handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-buckets.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AAOnD;;;;GAIG;AACH,MAAM,OAAO,yBAAyB;IAInB,OAAO,CAAoC;IAC3C,UAAU,CAAsB;IAEjD,YAAY,KAAqC;QAC/C,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,eAAe,EAAE,EAAE,GAAG,KAAK,CAAC;QAC9D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,GAA0B;QAE1B,oEAAoE;QACpE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAEjE,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,MAAM,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC;QACtD,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC;QAElD,MAAM,eAAe,GACnB,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAEvE,MAAM,eAAe,GACnB,iBAAiB,KAAK,SAAS;YAC7B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,yBAAyB,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;QAE1E,MAAM,UAAU,GACd,eAAe,KAAK,SAAS;YAC3B,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,IAAI,CAAC,GAAG,CACN,CAAC,EACD,eAAe,CAAC,SAAS,CACvB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,eAAe,CAClD,GAAG,CAAC,CACN,CAAC;QAER,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,cAAc,GAAG,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QAEzE,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC7B,IAAI,EAAE,MAAM,CAAC,UAAU;aACxB,CAAC,CAAC;YACH,iBAAiB,EACf,cAAc,IAAI,UAAU,KAAK,SAAS;gBACxC,CAAC,CAAC,yBAAyB,CAAC,qBAAqB,CAC7C,UAAU,CAAC,UAAU,CACtB;gBACH,CAAC,CAAC,SAAS;YACf,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,UAAkB;QACrD,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/D,CAAC;IAEO,MAAM,CAAC,sBAAsB,CAAC,KAAa;QACjD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;CACF"}
1
+ {"version":3,"file":"list-buckets.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,kBAAkB,GAEnB,MAAM,wDAAwD,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAYxE;;;;GAIG;AACH,MAAM,OAAO,yBAAyB;IAInB,UAAU,CAAwB;IAClC,WAAW,CAAyB;IACpC,UAAU,CAAsB;IAEjD,YAAY,KAAqC;QAC/C,MAAM,EACJ,OAAO,EACP,GAAG,GAAG,IAAI,kBAAkB,EAAE,EAC9B,UAAU,GAAG,IAAI,eAAe,EAAE,GACnC,GAAG,KAAK,CAAC;QACV,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,IAAI,sBAAsB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CACV,GAA0B,EAC1B,IAAuC;QAEvC,oEAAoE;QACpE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAExC,OAAO;YACL,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;YACpC,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,35 @@
1
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
2
+ import type { SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
3
+ import type { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
4
+ interface ListObjectsAuthorizerProps {
5
+ readonly iam: SimIamInterServiceAuthZ;
6
+ }
7
+ interface ListObjectsAuthorizationInput {
8
+ readonly bucket: SimS3Bucket;
9
+ readonly prefix?: string | undefined;
10
+ readonly maxKeys: number;
11
+ readonly caller?: SimAwsCaller | undefined;
12
+ }
13
+ /**
14
+ * Applies IAM authorization to an S3 ListObjects request.
15
+ *
16
+ * AWS authorizes both ListObjects and ListObjectsV2 with the `s3:ListBucket`
17
+ * action. The resource is the Bucket ARN because listing examines a Bucket's
18
+ * key namespace rather than reading any individual Object.
19
+ *
20
+ * Prefix and maximum-result constraints are request attributes used by IAM
21
+ * policies to limit which listings a principal may perform. They are supplied
22
+ * as S3 condition keys so policy evaluation can distinguish, for example, a
23
+ * permitted app prefix from a restricted private prefix.
24
+ */
25
+ export declare class ListObjectsAuthorizer {
26
+ private static readonly action;
27
+ private readonly iam;
28
+ constructor(props: ListObjectsAuthorizerProps);
29
+ /**
30
+ * Ensure the caller may list the requested portion of the Bucket namespace.
31
+ */
32
+ authorize(input: ListObjectsAuthorizationInput): void;
33
+ }
34
+ export {};
35
+ //# sourceMappingURL=list-objects-authorizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-objects-authorizer.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects-authorizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wDAAwD,CAAC;AAEtG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,UAAU,0BAA0B;IAClC,QAAQ,CAAC,GAAG,EAAE,uBAAuB,CAAC;CACvC;AAED,UAAU,6BAA6B;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CAC5C;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAEjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA0B;IAE9C,YAAY,KAAK,EAAE,0BAA0B,EAE5C;IAED;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,6BAA6B,GAAG,IAAI,CA8BpD;CACF"}
@@ -0,0 +1,53 @@
1
+ import { SimIamAccessDenied } from "../../../iam/error/sim-iam.error.js";
2
+ /**
3
+ * Applies IAM authorization to an S3 ListObjects request.
4
+ *
5
+ * AWS authorizes both ListObjects and ListObjectsV2 with the `s3:ListBucket`
6
+ * action. The resource is the Bucket ARN because listing examines a Bucket's
7
+ * key namespace rather than reading any individual Object.
8
+ *
9
+ * Prefix and maximum-result constraints are request attributes used by IAM
10
+ * policies to limit which listings a principal may perform. They are supplied
11
+ * as S3 condition keys so policy evaluation can distinguish, for example, a
12
+ * permitted app prefix from a restricted private prefix.
13
+ */
14
+ export class ListObjectsAuthorizer {
15
+ static action = "s3:ListBucket";
16
+ iam;
17
+ constructor(props) {
18
+ this.iam = props.iam;
19
+ }
20
+ /**
21
+ * Ensure the caller may list the requested portion of the Bucket namespace.
22
+ */
23
+ authorize(input) {
24
+ const resource = `arn:aws:s3:::${input.bucket.bucketName}`;
25
+ const policy = input.bucket.getPolicy();
26
+ const decision = this.iam.authorize({
27
+ action: ListObjectsAuthorizer.action,
28
+ resource,
29
+ caller: input.caller,
30
+ conditionContext: {
31
+ "s3:prefix": input.prefix ?? "",
32
+ "s3:max-keys": input.maxKeys,
33
+ },
34
+ resourcePolicies: policy === undefined
35
+ ? []
36
+ : [
37
+ {
38
+ document: policy,
39
+ policyName: "BucketPolicy",
40
+ resourceArn: resource,
41
+ },
42
+ ],
43
+ });
44
+ if (decision.isDenied) {
45
+ throw new SimIamAccessDenied({
46
+ principal: decision.caller.principal,
47
+ action: ListObjectsAuthorizer.action,
48
+ resource,
49
+ });
50
+ }
51
+ }
52
+ }
53
+ //# sourceMappingURL=list-objects-authorizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-objects-authorizer.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects-authorizer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAczE;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,qBAAqB;IACxB,MAAM,CAAU,MAAM,GAAG,eAAe,CAAC;IAEhC,GAAG,CAA0B;IAE9C,YAAY,KAAiC;QAC3C,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAAoC;QAC5C,MAAM,QAAQ,GAAG,gBAAgB,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAClC,MAAM,EAAE,qBAAqB,CAAC,MAAM;YACpC,QAAQ;YACR,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,gBAAgB,EAAE;gBAChB,WAAW,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;gBAC/B,aAAa,EAAE,KAAK,CAAC,OAAO;aAC7B;YACD,gBAAgB,EACd,MAAM,KAAK,SAAS;gBAClB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE;wBACE,QAAQ,EAAE,MAAM;wBAChB,UAAU,EAAE,cAAc;wBAC1B,WAAW,EAAE,QAAQ;qBACtB;iBACF;SACR,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,kBAAkB,CAAC;gBAC3B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;gBACpC,MAAM,EAAE,qBAAqB,CAAC,MAAM;gBACpC,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,30 @@
1
+ import type { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
2
+ import type { SimListObjectsCommandOutput } from "./list-objects.cmd.js";
3
+ interface ListObjectsPageInput {
4
+ readonly bucket: SimS3Bucket;
5
+ readonly prefix?: string | undefined;
6
+ readonly marker?: string | undefined;
7
+ readonly maxKeys: number;
8
+ }
9
+ /**
10
+ * Reads, orders, and paginates Objects for a ListObjects response.
11
+ *
12
+ * Authorization is completed by the command handler before this class is
13
+ * called. Keeping storage access here, behind that boundary, prevents a denied
14
+ * request from examining Object keys or sizes.
15
+ *
16
+ * S3 returns keys in lexicographical order. The marker is exclusive, so a page
17
+ * begins after the matching key. If the marker does not identify a stored key,
18
+ * this simulation retains its existing behavior and starts from the beginning.
19
+ *
20
+ * NextMarker is returned only when another page exists and identifies the final
21
+ * key in the current page.
22
+ */
23
+ export declare class ListObjectsPageBuilder {
24
+ /**
25
+ * Build one response page from the authorized Bucket listing.
26
+ */
27
+ build(input: ListObjectsPageInput): Promise<SimListObjectsCommandOutput>;
28
+ }
29
+ export {};
30
+ //# sourceMappingURL=list-objects-page-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-objects-page-builder.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects-page-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEzE,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;IACG,KAAK,CACT,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,2BAA2B,CAAC,CA8BtC;CACF"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Reads, orders, and paginates Objects for a ListObjects response.
3
+ *
4
+ * Authorization is completed by the command handler before this class is
5
+ * called. Keeping storage access here, behind that boundary, prevents a denied
6
+ * request from examining Object keys or sizes.
7
+ *
8
+ * S3 returns keys in lexicographical order. The marker is exclusive, so a page
9
+ * begins after the matching key. If the marker does not identify a stored key,
10
+ * this simulation retains its existing behavior and starts from the beginning.
11
+ *
12
+ * NextMarker is returned only when another page exists and identifies the final
13
+ * key in the current page.
14
+ */
15
+ export class ListObjectsPageBuilder {
16
+ /**
17
+ * Build one response page from the authorized Bucket listing.
18
+ */
19
+ async build(input) {
20
+ const objects = await input.bucket.listObjects(input.prefix);
21
+ objects.sort((a, b) => a.key.localeCompare(b.key));
22
+ const startIndex = input.marker === undefined
23
+ ? 0
24
+ : Math.max(0, objects.findIndex((object) => object.key === input.marker) + 1);
25
+ const page = objects.slice(startIndex, startIndex + input.maxKeys);
26
+ const lastObject = page.at(-1);
27
+ const isTruncated = startIndex + page.length < objects.length;
28
+ return {
29
+ Contents: page.map((object) => ({
30
+ Key: object.key,
31
+ Size: object.body.length,
32
+ })),
33
+ Name: input.bucket.bucketName,
34
+ Prefix: input.prefix,
35
+ Marker: input.marker,
36
+ MaxKeys: input.maxKeys,
37
+ IsTruncated: isTruncated,
38
+ NextMarker: isTruncated && lastObject !== undefined ? lastObject.key : undefined,
39
+ $metadata: {},
40
+ };
41
+ }
42
+ }
43
+ //# sourceMappingURL=list-objects-page-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-objects-page-builder.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects-page-builder.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,sBAAsB;IACjC;;OAEG;IACH,KAAK,CAAC,KAAK,CACT,KAA2B;QAE3B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEnD,MAAM,UAAU,GACd,KAAK,CAAC,MAAM,KAAK,SAAS;YACxB,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,IAAI,CAAC,GAAG,CACN,CAAC,EACD,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAC/D,CAAC;QAER,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE9D,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC9B,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;aACzB,CAAC,CAAC;YACH,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW,EAAE,WAAW;YACxB,UAAU,EACR,WAAW,IAAI,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;YACtE,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
@@ -2,10 +2,16 @@ import type { CommandHandler } from "../../../../command/command-handler.js";
2
2
  import type { SimListObjectsCommand, SimListObjectsCommandOutput } from "./list-objects.cmd.js";
3
3
  import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
4
4
  import { type BackgroundScheduler } from "../../../../util/background/background.js";
5
+ import { type SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
6
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
5
7
  interface ListObjectsCommandHandlerProps {
6
8
  readonly buckets: Map<SimS3BucketName, SimS3Bucket>;
9
+ readonly iam?: SimIamInterServiceAuthZ;
7
10
  readonly background?: BackgroundScheduler;
8
11
  }
12
+ interface ListObjectsCommandHandlerOptions {
13
+ readonly caller?: SimAwsCaller;
14
+ }
9
15
  /**
10
16
  * Simulated S3 ListObjectsCommand handler.
11
17
  *
@@ -13,12 +19,18 @@ interface ListObjectsCommandHandlerProps {
13
19
  */
14
20
  export declare class ListObjectsCommandHandler implements CommandHandler<SimListObjectsCommand, SimListObjectsCommandOutput> {
15
21
  private readonly buckets;
22
+ private readonly authorizer;
23
+ private readonly pageBuilder;
16
24
  private readonly background;
17
25
  constructor(props: ListObjectsCommandHandlerProps);
18
26
  /**
19
- * Simulate listing Objects in an S3 Bucket.
27
+ * Coordinate validation, Bucket resolution, authorization, and pagination.
28
+ *
29
+ * Bucket lookup occurs before authorization so missing Buckets retain their
30
+ * existing S3 error behavior. Authorization occurs before storage listing so
31
+ * a denied caller cannot inspect Object keys or sizes.
20
32
  */
21
- handle(cmd: SimListObjectsCommand): Promise<SimListObjectsCommandOutput>;
33
+ handle(cmd: SimListObjectsCommand, opts?: ListObjectsCommandHandlerOptions): Promise<SimListObjectsCommandOutput>;
22
34
  }
23
35
  export {};
24
36
  //# sourceMappingURL=list-objects.handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-objects.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AAEnD,UAAU,8BAA8B;IACtC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,cAAc,CAC9D,qBAAqB,EACrB,2BAA2B,CAC5B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,YAAY,KAAK,EAAE,8BAA8B,EAIhD;IAED;;OAEG;IACG,MAAM,CACV,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,2BAA2B,CAAC,CA0CtC;CACF"}
1
+ {"version":3,"file":"list-objects.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAI1E,UAAU,8BAA8B;IACtC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED,UAAU,gCAAgC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,cAAc,CAC9D,qBAAqB,EACrB,2BAA2B,CAC5B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,YAAY,KAAK,EAAE,8BAA8B,EAUhD;IAED;;;;;;OAMG;IACG,MAAM,CACV,GAAG,EAAE,qBAAqB,EAC1B,IAAI,CAAC,EAAE,gCAAgC,GACtC,OAAO,CAAC,2BAA2B,CAAC,CA0BtC;CACF"}