@kensio/yulin 1.10.2 → 1.10.4

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 (235) hide show
  1. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-config.d.ts +8 -17
  2. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-config.d.ts.map +1 -1
  3. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-config.js +24 -102
  4. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-config.js.map +1 -1
  5. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-cors-config.d.ts +13 -0
  6. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-cors-config.d.ts.map +1 -0
  7. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-cors-config.js +76 -0
  8. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-cors-config.js.map +1 -0
  9. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-custom-headers.d.ts +17 -0
  10. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-custom-headers.d.ts.map +1 -0
  11. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-custom-headers.js +45 -0
  12. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-custom-headers.js.map +1 -0
  13. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-field-reader.d.ts +37 -0
  14. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-field-reader.d.ts.map +1 -0
  15. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-field-reader.js +75 -0
  16. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-field-reader.js.map +1 -0
  17. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-security-headers.d.ts +11 -0
  18. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-security-headers.d.ts.map +1 -0
  19. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-security-headers.js +30 -0
  20. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-security-headers.js.map +1 -0
  21. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-security-values.d.ts +19 -0
  22. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-security-values.d.ts.map +1 -0
  23. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-security-values.js +72 -0
  24. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-security-values.js.map +1 -0
  25. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-server-timing.d.ts +13 -0
  26. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-server-timing.d.ts.map +1 -0
  27. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-server-timing.js +24 -0
  28. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-server-timing.js.map +1 -0
  29. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +2 -0
  30. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts.map +1 -1
  31. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js.map +1 -1
  32. package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts +2 -0
  33. package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts.map +1 -1
  34. package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.js.map +1 -1
  35. package/dist/service/cloudfront/controller/response-headers/sim-cf-response-headers-applicator.d.ts +1 -1
  36. package/dist/service/cloudfront/controller/response-headers/sim-cf-response-headers-applicator.d.ts.map +1 -1
  37. package/dist/service/cloudfront/controller/response-headers/sim-cf-response-headers-applicator.js +2 -2
  38. package/dist/service/cloudfront/controller/response-headers/sim-cf-response-headers-applicator.js.map +1 -1
  39. package/dist/service/cloudfront/controller/sim-cloudfront-controller.d.ts +1 -0
  40. package/dist/service/cloudfront/controller/sim-cloudfront-controller.d.ts.map +1 -1
  41. package/dist/service/cloudfront/controller/sim-cloudfront-controller.js +8 -1
  42. package/dist/service/cloudfront/controller/sim-cloudfront-controller.js.map +1 -1
  43. package/dist/service/cloudfront/controller/sim-cloudfront-error-response.d.ts +22 -0
  44. package/dist/service/cloudfront/controller/sim-cloudfront-error-response.d.ts.map +1 -0
  45. package/dist/service/cloudfront/controller/sim-cloudfront-error-response.js +31 -0
  46. package/dist/service/cloudfront/controller/sim-cloudfront-error-response.js.map +1 -0
  47. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.d.ts.map +1 -1
  48. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js +1 -1
  49. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js.map +1 -1
  50. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.d.ts +9 -0
  51. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.d.ts.map +1 -0
  52. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js +34 -0
  53. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js.map +1 -0
  54. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.d.ts +29 -0
  55. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.d.ts.map +1 -0
  56. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.js +51 -0
  57. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.js.map +1 -0
  58. package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.d.ts +2 -0
  59. package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.d.ts.map +1 -1
  60. package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.js +3 -1
  61. package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.js.map +1 -1
  62. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.d.ts +3 -0
  63. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.d.ts.map +1 -1
  64. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js +7 -32
  65. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js.map +1 -1
  66. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.d.ts +14 -1
  67. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.d.ts.map +1 -1
  68. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.js +16 -1
  69. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.js.map +1 -1
  70. package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.d.ts +7 -3
  71. package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.d.ts.map +1 -1
  72. package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.js +6 -3
  73. package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.js.map +1 -1
  74. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +11 -0
  75. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts.map +1 -1
  76. package/dist/service/cloudfront/error/sim-cloudfront.error.js +13 -0
  77. package/dist/service/cloudfront/error/sim-cloudfront.error.js.map +1 -1
  78. package/dist/service/cloudfront/origin/s3/sim-cf-s3-origin-responses.d.ts.map +1 -1
  79. package/dist/service/cloudfront/origin/s3/sim-cf-s3-origin-responses.js +7 -1
  80. package/dist/service/cloudfront/origin/s3/sim-cf-s3-origin-responses.js.map +1 -1
  81. package/dist/service/cloudfront/response-headers-policy/sim-cf-cors-origin-pattern.d.ts +27 -0
  82. package/dist/service/cloudfront/response-headers-policy/sim-cf-cors-origin-pattern.d.ts.map +1 -0
  83. package/dist/service/cloudfront/response-headers-policy/sim-cf-cors-origin-pattern.js +70 -0
  84. package/dist/service/cloudfront/response-headers-policy/sim-cf-cors-origin-pattern.js.map +1 -0
  85. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.d.ts +44 -0
  86. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.d.ts.map +1 -0
  87. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.js +111 -0
  88. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.js.map +1 -0
  89. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.d.ts +10 -2
  90. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.d.ts.map +1 -1
  91. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.js +14 -2
  92. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.js.map +1 -1
  93. package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +3 -0
  94. package/dist/service/cloudfront/sim-cloudfront-commands.d.ts.map +1 -1
  95. package/dist/service/cloudfront/sim-cloudfront-commands.js +3 -0
  96. package/dist/service/cloudfront/sim-cloudfront-commands.js.map +1 -1
  97. package/dist/service/cloudfront/sim-cloudfront.d.ts.map +1 -1
  98. package/dist/service/cloudfront/sim-cloudfront.js +1 -0
  99. package/dist/service/cloudfront/sim-cloudfront.js.map +1 -1
  100. package/dist/service/rekognition/label/sim-rekognition-label-declaration.d.ts +1 -1
  101. package/dist/service/rekognition/moderation/sim-rekognition-moderation-taxonomy.d.ts +2 -2
  102. package/dist/service/rekognition/moderation/sim-rekognition-moderation-taxonomy.js +3 -3
  103. package/dist/service/rekognition/moderation/sim-rekognition-moderation-taxonomy.js.map +1 -1
  104. package/dist/service/rekognition/sim-rekognition.d.ts +4 -4
  105. package/dist/service/rekognition/sim-rekognition.js +4 -4
  106. package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts +16 -0
  107. package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts.map +1 -1
  108. package/dist/service/s3/bucket/sim-s3-bucket-access.js +22 -1
  109. package/dist/service/s3/bucket/sim-s3-bucket-access.js.map +1 -1
  110. package/dist/service/s3/command/get-object/get-object-loader.d.ts +2 -1
  111. package/dist/service/s3/command/get-object/get-object-loader.d.ts.map +1 -1
  112. package/dist/service/s3/command/get-object/get-object-loader.js +5 -1
  113. package/dist/service/s3/command/get-object/get-object-loader.js.map +1 -1
  114. package/dist/service/s3/command/get-object/get-object.command.d.ts +5 -0
  115. package/dist/service/s3/command/get-object/get-object.command.d.ts.map +1 -1
  116. package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +3 -3
  117. package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts.map +1 -1
  118. package/dist/service/s3/command/list-objects/list-objects-page-builder.js +13 -17
  119. package/dist/service/s3/command/list-objects/list-objects-page-builder.js.map +1 -1
  120. package/dist/service/s3/command/list-objects/list-objects.command.d.ts +3 -8
  121. package/dist/service/s3/command/list-objects/list-objects.command.d.ts.map +1 -1
  122. package/dist/service/s3/command/list-objects/list-objects.handler.d.ts +3 -0
  123. package/dist/service/s3/command/list-objects/list-objects.handler.d.ts.map +1 -1
  124. package/dist/service/s3/command/list-objects/list-objects.handler.js +6 -2
  125. package/dist/service/s3/command/list-objects/list-objects.handler.js.map +1 -1
  126. package/dist/service/s3/command/list-objects-v2/list-objects-v2-continuation-token.d.ts +20 -0
  127. package/dist/service/s3/command/list-objects-v2/list-objects-v2-continuation-token.d.ts.map +1 -0
  128. package/dist/service/s3/command/list-objects-v2/list-objects-v2-continuation-token.js +29 -0
  129. package/dist/service/s3/command/list-objects-v2/list-objects-v2-continuation-token.js.map +1 -0
  130. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts +31 -0
  131. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts.map +1 -0
  132. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js +48 -0
  133. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js.map +1 -0
  134. package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts +41 -0
  135. package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts.map +1 -0
  136. package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.js +2 -0
  137. package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.js.map +1 -0
  138. package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.d.ts +41 -0
  139. package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.d.ts.map +1 -0
  140. package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js +64 -0
  141. package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js.map +1 -0
  142. package/dist/service/s3/command/object/sim-s3-object-commands.d.ts +8 -0
  143. package/dist/service/s3/command/object/sim-s3-object-commands.d.ts.map +1 -1
  144. package/dist/service/s3/command/object/sim-s3-object-commands.js +13 -0
  145. package/dist/service/s3/command/object/sim-s3-object-commands.js.map +1 -1
  146. package/dist/service/s3/command/put-object/put-object-builder.d.ts +10 -0
  147. package/dist/service/s3/command/put-object/put-object-builder.d.ts.map +1 -1
  148. package/dist/service/s3/command/put-object/put-object-builder.js +8 -0
  149. package/dist/service/s3/command/put-object/put-object-builder.js.map +1 -1
  150. package/dist/service/s3/command/put-object/put-object.command.d.ts +4 -0
  151. package/dist/service/s3/command/put-object/put-object.command.d.ts.map +1 -1
  152. package/dist/service/s3/command/put-object/put-object.handler.d.ts.map +1 -1
  153. package/dist/service/s3/command/put-object/put-object.handler.js +4 -1
  154. package/dist/service/s3/command/put-object/put-object.handler.js.map +1 -1
  155. package/dist/service/s3/command/sim-s3-bucket-command-state.d.ts +4 -1
  156. package/dist/service/s3/command/sim-s3-bucket-command-state.d.ts.map +1 -1
  157. package/dist/service/s3/command/sim-s3-command.types.d.ts +2 -1
  158. package/dist/service/s3/command/sim-s3-command.types.d.ts.map +1 -1
  159. package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts.map +1 -1
  160. package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +1 -2
  161. package/dist/service/s3/notification/event/sim-s3-object-event-builder.js.map +1 -1
  162. package/dist/service/s3/object/s3-object-etag.d.ts +20 -0
  163. package/dist/service/s3/object/s3-object-etag.d.ts.map +1 -0
  164. package/dist/service/s3/object/s3-object-etag.js +25 -0
  165. package/dist/service/s3/object/s3-object-etag.js.map +1 -0
  166. package/dist/service/s3/object/s3-object-listing-limits.d.ts +26 -0
  167. package/dist/service/s3/object/s3-object-listing-limits.d.ts.map +1 -0
  168. package/dist/service/s3/object/s3-object-listing-limits.js +46 -0
  169. package/dist/service/s3/object/s3-object-listing-limits.js.map +1 -0
  170. package/dist/service/s3/object/s3-object-listing.d.ts +51 -0
  171. package/dist/service/s3/object/s3-object-listing.d.ts.map +1 -0
  172. package/dist/service/s3/object/s3-object-listing.js +64 -0
  173. package/dist/service/s3/object/s3-object-listing.js.map +1 -0
  174. package/dist/service/s3/object/s3-object-response-headers.d.ts +23 -6
  175. package/dist/service/s3/object/s3-object-response-headers.d.ts.map +1 -1
  176. package/dist/service/s3/object/s3-object-response-headers.js +18 -8
  177. package/dist/service/s3/object/s3-object-response-headers.js.map +1 -1
  178. package/dist/service/s3/object/s3-object-summary.d.ts +33 -0
  179. package/dist/service/s3/object/s3-object-summary.d.ts.map +1 -0
  180. package/dist/service/s3/object/s3-object-summary.js +40 -0
  181. package/dist/service/s3/object/s3-object-summary.js.map +1 -0
  182. package/dist/service/s3/object/s3-object.d.ts +25 -0
  183. package/dist/service/s3/object/s3-object.d.ts.map +1 -1
  184. package/dist/service/s3/object/s3-object.js +31 -1
  185. package/dist/service/s3/object/s3-object.js.map +1 -1
  186. package/dist/service/s3/sdk/sim-s3-sdk-command-router.d.ts.map +1 -1
  187. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +4 -0
  188. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js.map +1 -1
  189. package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts.map +1 -1
  190. package/dist/service/s3/serve/sim-s3-rest-object-reader.js +6 -1
  191. package/dist/service/s3/serve/sim-s3-rest-object-reader.js.map +1 -1
  192. package/dist/service/s3/serve/website/sim-s3-website-object-loader.d.ts.map +1 -1
  193. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +6 -1
  194. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js.map +1 -1
  195. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +13 -4
  196. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts.map +1 -1
  197. package/dist/service/s3/serve/website/sim-s3-website-object.js +15 -6
  198. package/dist/service/s3/serve/website/sim-s3-website-object.js.map +1 -1
  199. package/dist/service/s3/sim-s3-commands.d.ts +6 -0
  200. package/dist/service/s3/sim-s3-commands.d.ts.map +1 -1
  201. package/dist/service/s3/sim-s3-commands.js +2 -0
  202. package/dist/service/s3/sim-s3-commands.js.map +1 -1
  203. package/dist/service/s3/sim-s3.d.ts +24 -34
  204. package/dist/service/s3/sim-s3.d.ts.map +1 -1
  205. package/dist/service/s3/sim-s3.js +32 -40
  206. package/dist/service/s3/sim-s3.js.map +1 -1
  207. package/dist/service/s3/storage/filesystem/filesystem-path-exists.d.ts +8 -0
  208. package/dist/service/s3/storage/filesystem/filesystem-path-exists.d.ts.map +1 -1
  209. package/dist/service/s3/storage/filesystem/filesystem-path-exists.js +11 -1
  210. package/dist/service/s3/storage/filesystem/filesystem-path-exists.js.map +1 -1
  211. package/dist/service/s3/storage/filesystem/s3-filesystem-object-file.d.ts +19 -0
  212. package/dist/service/s3/storage/filesystem/s3-filesystem-object-file.d.ts.map +1 -0
  213. package/dist/service/s3/storage/filesystem/s3-filesystem-object-file.js +55 -0
  214. package/dist/service/s3/storage/filesystem/s3-filesystem-object-file.js.map +1 -0
  215. package/dist/service/s3/storage/filesystem/s3-filesystem-object-keys.d.ts +14 -4
  216. package/dist/service/s3/storage/filesystem/s3-filesystem-object-keys.d.ts.map +1 -1
  217. package/dist/service/s3/storage/filesystem/s3-filesystem-object-keys.js +27 -5
  218. package/dist/service/s3/storage/filesystem/s3-filesystem-object-keys.js.map +1 -1
  219. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.d.ts +1 -2
  220. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.d.ts.map +1 -1
  221. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.js +10 -36
  222. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.js.map +1 -1
  223. package/dist/service/sns/signature/sim-sns-certificate.d.ts +9 -3
  224. package/dist/service/sns/signature/sim-sns-certificate.d.ts.map +1 -1
  225. package/dist/service/sns/signature/sim-sns-certificate.js +13 -8
  226. package/dist/service/sns/signature/sim-sns-certificate.js.map +1 -1
  227. package/dist/service/sns/signature/sim-sns-der.d.ts +16 -0
  228. package/dist/service/sns/signature/sim-sns-der.d.ts.map +1 -1
  229. package/dist/service/sns/signature/sim-sns-der.js +23 -0
  230. package/dist/service/sns/signature/sim-sns-der.js.map +1 -1
  231. package/package.json +1 -1
  232. package/dist/service/s3/notification/event/sim-s3-object-etag.d.ts +0 -8
  233. package/dist/service/s3/notification/event/sim-s3-object-etag.d.ts.map +0 -1
  234. package/dist/service/s3/notification/event/sim-s3-object-etag.js +0 -11
  235. package/dist/service/s3/notification/event/sim-s3-object-etag.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"list-objects.command.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects.command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAE3F;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,0BAA0B,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"list-objects.command.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects.command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE5E,YAAY,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,0BAA0B,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC"}
@@ -3,11 +3,13 @@ import type { SimListObjectsCommand, SimListObjectsCommandOutput } from "./list-
3
3
  import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
4
4
  import { type BackgroundScheduler } from "../../../../util/background/background.js";
5
5
  import { type SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
6
+ import { SimS3ObjectListingLimits } from "../../object/s3-object-listing-limits.js";
6
7
  import type { SimS3RequestOptions } from "../sim-s3-request-options.js";
7
8
  interface ListObjectsCommandHandlerProperties {
8
9
  readonly buckets: Map<SimS3BucketName, SimS3Bucket>;
9
10
  readonly iam?: SimIamInterServiceAuthZ;
10
11
  readonly background?: BackgroundScheduler;
12
+ readonly listing?: SimS3ObjectListingLimits;
11
13
  }
12
14
  /**
13
15
  * Simulated S3 ListObjectsCommand handler.
@@ -19,6 +21,7 @@ export declare class ListObjectsCommandHandler implements CommandHandler<SimList
19
21
  private readonly authorizer;
20
22
  private readonly pageBuilder;
21
23
  private readonly background;
24
+ private readonly listing;
22
25
  constructor(properties: ListObjectsCommandHandlerProperties);
23
26
  /**
24
27
  * Coordinate validation, Bucket resolution, authorization, and pagination.
@@ -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,2BAA2B,CAAC;AACnC,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,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIxE,UAAU,mCAAmC;IAC3C,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;;;;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,UAAU,EAAE,mCAAmC,EAU1D;IAED;;;;;;OAMG;IACG,MAAM,CACV,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,2BAA2B,CAAC,CA0BtC;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,2BAA2B,CAAC;AACnC,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;AAEhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIxE,UAAU,mCAAmC;IAC3C,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;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,wBAAwB,CAAC;CAC7C;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;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD,YAAY,UAAU,EAAE,mCAAmC,EAY1D;IAED;;;;;;OAMG;IACG,MAAM,CACV,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,2BAA2B,CAAC,CA8BtC;CACF"}
@@ -2,6 +2,8 @@ import { assertDefined } from "../../../../util/type-guard/defined.js";
2
2
  import { SimS3NoSuchBucket } from "../../error/sim-s3.error.js";
3
3
  import { BackgroundTasks, } from "../../../../util/background/background.js";
4
4
  import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
5
+ import { simS3EffectiveMaxKeys } from "../../object/s3-object-listing.js";
6
+ import { SimS3ObjectListingLimits } from "../../object/s3-object-listing-limits.js";
5
7
  import { ListObjectsAuthorizer } from "./list-objects-authorizer.js";
6
8
  import { ListObjectsPageBuilder } from "./list-objects-page-builder.js";
7
9
  /**
@@ -14,11 +16,13 @@ export class ListObjectsCommandHandler {
14
16
  authorizer;
15
17
  pageBuilder = new ListObjectsPageBuilder();
16
18
  background;
19
+ listing;
17
20
  constructor(properties) {
18
- const { buckets, iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), } = properties;
21
+ const { buckets, iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), listing = new SimS3ObjectListingLimits(), } = properties;
19
22
  this.buckets = buckets;
20
23
  this.authorizer = new ListObjectsAuthorizer({ iam });
21
24
  this.background = background;
25
+ this.listing = listing;
22
26
  }
23
27
  /**
24
28
  * Coordinate validation, Bucket resolution, authorization, and pagination.
@@ -36,7 +40,7 @@ export class ListObjectsCommandHandler {
36
40
  }
37
41
  // Complete request sequencing before authorization and storage access.
38
42
  await this.background.sequence();
39
- const maxKeys = command.input.MaxKeys ?? 1000;
43
+ const maxKeys = simS3EffectiveMaxKeys(command.input.MaxKeys, this.listing.maxKeysPerPage);
40
44
  this.authorizer.authorize({
41
45
  bucket,
42
46
  prefix: command.input.Prefix,
@@ -1 +1 @@
1
- {"version":3,"file":"list-objects.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,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;AAQxE;;;;GAIG;AACH,MAAM,OAAO,yBAAyB;IAInB,OAAO,CAAoC;IAC3C,UAAU,CAAwB;IAClC,WAAW,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAC3C,UAAU,CAAsB;IAEjD,YAAY,UAA+C;QACzD,MAAM,EACJ,OAAO,EACP,GAAG,GAAG,IAAI,kBAAkB,EAAE,EAC9B,UAAU,GAAG,IAAI,eAAe,EAAE,GACnC,GAAG,UAAU,CAAC;QAEf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CACV,OAA8B,EAC9B,OAA6B;QAE7B,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;QAEvE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,MAAyB,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,uEAAuE;QACvE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YACxB,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,OAAO;YACP,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAClC,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"list-objects.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,kBAAkB,GAEnB,MAAM,wDAAwD,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAEpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AASxE;;;;GAIG;AACH,MAAM,OAAO,yBAAyB;IAInB,OAAO,CAAoC;IAC3C,UAAU,CAAwB;IAClC,WAAW,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAC3C,UAAU,CAAsB;IAChC,OAAO,CAA2B;IAEnD,YAAY,UAA+C;QACzD,MAAM,EACJ,OAAO,EACP,GAAG,GAAG,IAAI,kBAAkB,EAAE,EAC9B,UAAU,GAAG,IAAI,eAAe,EAAE,EAClC,OAAO,GAAG,IAAI,wBAAwB,EAAE,GACzC,GAAG,UAAU,CAAC;QAEf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CACV,OAA8B,EAC9B,OAA6B;QAE7B,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;QAEvE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,MAAyB,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,uEAAuE;QACvE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,MAAM,OAAO,GAAG,qBAAqB,CACnC,OAAO,CAAC,KAAK,CAAC,OAAO,EACrB,IAAI,CAAC,OAAO,CAAC,cAAc,CAC5B,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YACxB,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,OAAO;YACP,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAClC,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The token a truncated ListObjectsV2 page hands back to resume from.
3
+ *
4
+ * Real S3 treats this as opaque and so should a caller, so the simulation makes
5
+ * it look opaque rather than handing back the key it stands for. What it
6
+ * actually holds is that key, encoded, which is all a listing needs to carry on
7
+ * from where it stopped.
8
+ */
9
+ export declare function simS3ContinuationToken(lastKey: string): string;
10
+ /**
11
+ * Read the key a continuation token resumes after.
12
+ *
13
+ * A token that was not one this simulation issued is refused rather than
14
+ * quietly listing from somewhere arbitrary, since a caller inventing one has a
15
+ * bug that a plausible-looking page would hide. The check is a round trip,
16
+ * because base64 decoding accepts a good deal that never encodes to the same
17
+ * thing again.
18
+ */
19
+ export declare function simS3ContinuationTokenKey(token: string): string;
20
+ //# sourceMappingURL=list-objects-v2-continuation-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-objects-v2-continuation-token.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects-v2/list-objects-v2-continuation-token.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAU/D"}
@@ -0,0 +1,29 @@
1
+ import { SimS3InvalidArgument } from "../../error/sim-s3.error.js";
2
+ /**
3
+ * The token a truncated ListObjectsV2 page hands back to resume from.
4
+ *
5
+ * Real S3 treats this as opaque and so should a caller, so the simulation makes
6
+ * it look opaque rather than handing back the key it stands for. What it
7
+ * actually holds is that key, encoded, which is all a listing needs to carry on
8
+ * from where it stopped.
9
+ */
10
+ export function simS3ContinuationToken(lastKey) {
11
+ return Buffer.from(lastKey, "utf8").toString("base64");
12
+ }
13
+ /**
14
+ * Read the key a continuation token resumes after.
15
+ *
16
+ * A token that was not one this simulation issued is refused rather than
17
+ * quietly listing from somewhere arbitrary, since a caller inventing one has a
18
+ * bug that a plausible-looking page would hide. The check is a round trip,
19
+ * because base64 decoding accepts a good deal that never encodes to the same
20
+ * thing again.
21
+ */
22
+ export function simS3ContinuationTokenKey(token) {
23
+ const key = Buffer.from(token, "base64").toString("utf8");
24
+ if (key === "" || simS3ContinuationToken(key) !== token) {
25
+ throw new SimS3InvalidArgument(`Not a continuation token simulated S3 issued: ${token}`);
26
+ }
27
+ return key;
28
+ }
29
+ //# sourceMappingURL=list-objects-v2-continuation-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-objects-v2-continuation-token.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects-v2/list-objects-v2-continuation-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE1D,IAAI,GAAG,KAAK,EAAE,IAAI,sBAAsB,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;QACxD,MAAM,IAAI,oBAAoB,CAC5B,iDAAiD,KAAK,EAAE,CACzD,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
2
+ import type { SimListObjectsV2CommandOutput } from "./list-objects-v2.command.js";
3
+ interface ListObjectsV2PageInput {
4
+ readonly bucket: SimS3Bucket;
5
+ readonly prefix?: string | undefined;
6
+ readonly continuationToken?: string | undefined;
7
+ readonly startAfter?: string | undefined;
8
+ readonly maxKeys: number;
9
+ }
10
+ /**
11
+ * Reads, orders, and paginates Objects for a ListObjectsV2 response.
12
+ *
13
+ * Authorization is completed by the command handler before this class is
14
+ * called, as it is for the first version of the operation, so a denied request
15
+ * cannot examine Object keys or sizes.
16
+ *
17
+ * The keys on a page are chosen exactly as ListObjects chooses them. What
18
+ * differs is how a caller says where to carry on from: a continuation token
19
+ * from the previous page, which wins, or a StartAfter key that positions the
20
+ * first page only. That is why real S3 ignores StartAfter once a listing is
21
+ * under way, and so does this.
22
+ */
23
+ export declare class ListObjectsV2PageBuilder {
24
+ /**
25
+ * Build one response page from the authorized Bucket listing.
26
+ */
27
+ build(input: ListObjectsV2PageInput): Promise<SimListObjectsV2CommandOutput>;
28
+ private resumeAfter;
29
+ }
30
+ export {};
31
+ //# sourceMappingURL=list-objects-v2-page-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-objects-v2-page-builder.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects-v2/list-objects-v2-page-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAOjE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAElF,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,wBAAwB;IACnC;;OAEG;IACG,KAAK,CACT,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,6BAA6B,CAAC,CAsBxC;IAED,OAAO,CAAC,WAAW;CAKpB"}
@@ -0,0 +1,48 @@
1
+ import { simS3ObjectPage } from "../../object/s3-object-listing.js";
2
+ import { simS3ObjectSummaries } from "../../object/s3-object-summary.js";
3
+ import { simS3ContinuationToken, simS3ContinuationTokenKey, } from "./list-objects-v2-continuation-token.js";
4
+ /**
5
+ * Reads, orders, and paginates Objects for a ListObjectsV2 response.
6
+ *
7
+ * Authorization is completed by the command handler before this class is
8
+ * called, as it is for the first version of the operation, so a denied request
9
+ * cannot examine Object keys or sizes.
10
+ *
11
+ * The keys on a page are chosen exactly as ListObjects chooses them. What
12
+ * differs is how a caller says where to carry on from: a continuation token
13
+ * from the previous page, which wins, or a StartAfter key that positions the
14
+ * first page only. That is why real S3 ignores StartAfter once a listing is
15
+ * under way, and so does this.
16
+ */
17
+ export class ListObjectsV2PageBuilder {
18
+ /**
19
+ * Build one response page from the authorized Bucket listing.
20
+ */
21
+ async build(input) {
22
+ const page = simS3ObjectPage({
23
+ objects: await input.bucket.listObjects(input.prefix),
24
+ startAfter: this.resumeAfter(input),
25
+ maxKeys: input.maxKeys,
26
+ });
27
+ return {
28
+ Contents: simS3ObjectSummaries(page.objects),
29
+ Name: input.bucket.bucketName,
30
+ Prefix: input.prefix,
31
+ MaxKeys: input.maxKeys,
32
+ KeyCount: page.objects.length,
33
+ IsTruncated: page.isTruncated,
34
+ ContinuationToken: input.continuationToken,
35
+ NextContinuationToken: page.resumeAfter === undefined
36
+ ? undefined
37
+ : simS3ContinuationToken(page.resumeAfter),
38
+ StartAfter: input.startAfter,
39
+ $metadata: {},
40
+ };
41
+ }
42
+ resumeAfter(input) {
43
+ return input.continuationToken === undefined
44
+ ? input.startAfter
45
+ : simS3ContinuationTokenKey(input.continuationToken);
46
+ }
47
+ }
48
+ //# sourceMappingURL=list-objects-v2-page-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-objects-v2-page-builder.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects-v2/list-objects-v2-page-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,yCAAyC,CAAC;AAWjD;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,wBAAwB;IACnC;;OAEG;IACH,KAAK,CAAC,KAAK,CACT,KAA6B;QAE7B,MAAM,IAAI,GAAG,eAAe,CAAC;YAC3B,OAAO,EAAE,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;YACrD,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACnC,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5C,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,qBAAqB,EACnB,IAAI,CAAC,WAAW,KAAK,SAAS;gBAC5B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC;YAC9C,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,KAA6B;QAC/C,OAAO,KAAK,CAAC,iBAAiB,KAAK,SAAS;YAC1C,CAAC,CAAC,KAAK,CAAC,UAAU;YAClB,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;CACF"}
@@ -0,0 +1,41 @@
1
+ import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
2
+ import type { SimS3ObjectSummary } from "../../object/s3-object-summary.js";
3
+ /**
4
+ * Minimal structural sim S3 ListObjectsV2 command.
5
+ */
6
+ export interface SimListObjectsV2Command {
7
+ readonly input: SimListObjectsV2CommandInput;
8
+ }
9
+ /**
10
+ * Minimal structural sim S3 ListObjectsV2 input.
11
+ *
12
+ * `ContinuationToken` resumes a truncated listing and takes precedence over
13
+ * `StartAfter`, which only positions the first page.
14
+ */
15
+ export interface SimListObjectsV2CommandInput {
16
+ readonly Bucket?: string | undefined;
17
+ readonly Prefix?: string | undefined;
18
+ readonly MaxKeys?: number | undefined;
19
+ readonly ContinuationToken?: string | undefined;
20
+ readonly StartAfter?: string | undefined;
21
+ }
22
+ /**
23
+ * Minimal structural sim S3 ListObjectsV2 output.
24
+ *
25
+ * `KeyCount` is what makes this version worth using over the first: it says how
26
+ * many keys came back without the caller having to measure `Contents`, which
27
+ * may be absent rather than empty.
28
+ */
29
+ export interface SimListObjectsV2CommandOutput {
30
+ readonly Contents?: SimS3ObjectSummary[] | undefined;
31
+ readonly Name?: string;
32
+ readonly Prefix?: string | undefined;
33
+ readonly MaxKeys?: number;
34
+ readonly KeyCount?: number;
35
+ readonly IsTruncated?: boolean;
36
+ readonly ContinuationToken?: string | undefined;
37
+ readonly NextContinuationToken?: string | undefined;
38
+ readonly StartAfter?: string | undefined;
39
+ readonly $metadata: SimResponseMetadata;
40
+ }
41
+ //# sourceMappingURL=list-objects-v2.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-objects-v2.command.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects-v2/list-objects-v2.command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE,4BAA4B,CAAC;CAC9C;AAED;;;;;GAKG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=list-objects-v2.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-objects-v2.command.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects-v2/list-objects-v2.command.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import type { CommandHandler } from "../../../../command/command-handler.js";
2
+ import type { SimListObjectsV2Command, SimListObjectsV2CommandOutput } from "./list-objects-v2.command.js";
3
+ import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
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 { SimS3ObjectListingLimits } from "../../object/s3-object-listing-limits.js";
7
+ import type { SimS3RequestOptions } from "../sim-s3-request-options.js";
8
+ interface ListObjectsV2CommandHandlerProperties {
9
+ readonly buckets: Map<SimS3BucketName, SimS3Bucket>;
10
+ readonly iam?: SimIamInterServiceAuthZ;
11
+ readonly background?: BackgroundScheduler;
12
+ readonly listing?: SimS3ObjectListingLimits;
13
+ }
14
+ /**
15
+ * Simulated S3 ListObjectsV2Command handler.
16
+ *
17
+ * The second version of the operation is the one current tooling reaches for.
18
+ * It authorizes identically to the first, against `s3:ListBucket` on the
19
+ * Bucket, and lists the same keys; the difference is a continuation token in
20
+ * place of a marker, and a response that counts the keys it returned.
21
+ *
22
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/ListObjectsV2Command/
23
+ */
24
+ export declare class ListObjectsV2CommandHandler implements CommandHandler<SimListObjectsV2Command, SimListObjectsV2CommandOutput> {
25
+ private readonly buckets;
26
+ private readonly authorizer;
27
+ private readonly pageBuilder;
28
+ private readonly background;
29
+ private readonly listing;
30
+ constructor(properties: ListObjectsV2CommandHandlerProperties);
31
+ /**
32
+ * Coordinate validation, Bucket resolution, authorization, and pagination.
33
+ *
34
+ * Bucket lookup occurs before authorization so missing Buckets retain their
35
+ * existing S3 error behavior. Authorization occurs before storage listing so
36
+ * a denied caller cannot inspect Object keys or sizes.
37
+ */
38
+ handle(command: SimListObjectsV2Command, options?: SimS3RequestOptions): Promise<SimListObjectsV2CommandOutput>;
39
+ }
40
+ export {};
41
+ //# sourceMappingURL=list-objects-v2.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-objects-v2.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects-v2/list-objects-v2.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,uBAAuB,EACvB,6BAA6B,EAC9B,MAAM,8BAA8B,CAAC;AACtC,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;AAEhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIxE,UAAU,qCAAqC;IAC7C,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;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,wBAAwB,CAAC;CAC7C;AAED;;;;;;;;;GASG;AACH,qBAAa,2BAA4B,YAAW,cAAc,CAChE,uBAAuB,EACvB,6BAA6B,CAC9B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAC9D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD,YAAY,UAAU,EAAE,qCAAqC,EAY5D;IAED;;;;;;OAMG;IACG,MAAM,CACV,OAAO,EAAE,uBAAuB,EAChC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,6BAA6B,CAAC,CA+BxC;CACF"}
@@ -0,0 +1,64 @@
1
+ import { assertDefined } from "../../../../util/type-guard/defined.js";
2
+ import { SimS3NoSuchBucket } from "../../error/sim-s3.error.js";
3
+ import { BackgroundTasks, } from "../../../../util/background/background.js";
4
+ import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
5
+ import { simS3EffectiveMaxKeys } from "../../object/s3-object-listing.js";
6
+ import { SimS3ObjectListingLimits } from "../../object/s3-object-listing-limits.js";
7
+ import { ListObjectsAuthorizer } from "../list-objects/list-objects-authorizer.js";
8
+ import { ListObjectsV2PageBuilder } from "./list-objects-v2-page-builder.js";
9
+ /**
10
+ * Simulated S3 ListObjectsV2Command handler.
11
+ *
12
+ * The second version of the operation is the one current tooling reaches for.
13
+ * It authorizes identically to the first, against `s3:ListBucket` on the
14
+ * Bucket, and lists the same keys; the difference is a continuation token in
15
+ * place of a marker, and a response that counts the keys it returned.
16
+ *
17
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/ListObjectsV2Command/
18
+ */
19
+ export class ListObjectsV2CommandHandler {
20
+ buckets;
21
+ authorizer;
22
+ pageBuilder = new ListObjectsV2PageBuilder();
23
+ background;
24
+ listing;
25
+ constructor(properties) {
26
+ const { buckets, iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), listing = new SimS3ObjectListingLimits(), } = properties;
27
+ this.buckets = buckets;
28
+ this.authorizer = new ListObjectsAuthorizer({ iam });
29
+ this.background = background;
30
+ this.listing = listing;
31
+ }
32
+ /**
33
+ * Coordinate validation, Bucket resolution, authorization, and pagination.
34
+ *
35
+ * Bucket lookup occurs before authorization so missing Buckets retain their
36
+ * existing S3 error behavior. Authorization occurs before storage listing so
37
+ * a denied caller cannot inspect Object keys or sizes.
38
+ */
39
+ async handle(command, options) {
40
+ assertDefined(command.input.Bucket, "ListObjectsV2Command.input.Bucket");
41
+ const bucketName = command.input.Bucket;
42
+ const bucket = this.buckets.get(bucketName);
43
+ if (bucket === undefined) {
44
+ throw new SimS3NoSuchBucket(`No S3 Bucket named ${bucketName}`);
45
+ }
46
+ // Complete request sequencing before authorization and storage access.
47
+ await this.background.sequence();
48
+ const maxKeys = simS3EffectiveMaxKeys(command.input.MaxKeys, this.listing.maxKeysPerPage);
49
+ this.authorizer.authorize({
50
+ bucket,
51
+ prefix: command.input.Prefix,
52
+ maxKeys,
53
+ options,
54
+ });
55
+ return await this.pageBuilder.build({
56
+ bucket,
57
+ prefix: command.input.Prefix,
58
+ continuationToken: command.input.ContinuationToken,
59
+ startAfter: command.input.StartAfter,
60
+ maxKeys,
61
+ });
62
+ }
63
+ }
64
+ //# sourceMappingURL=list-objects-v2.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-objects-v2.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects-v2/list-objects-v2.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,kBAAkB,GAEnB,MAAM,wDAAwD,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAEpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAS7E;;;;;;;;;GASG;AACH,MAAM,OAAO,2BAA2B;IAIrB,OAAO,CAAoC;IAC3C,UAAU,CAAwB;IAClC,WAAW,GAAG,IAAI,wBAAwB,EAAE,CAAC;IAC7C,UAAU,CAAsB;IAChC,OAAO,CAA2B;IAEnD,YAAY,UAAiD;QAC3D,MAAM,EACJ,OAAO,EACP,GAAG,GAAG,IAAI,kBAAkB,EAAE,EAC9B,UAAU,GAAG,IAAI,eAAe,EAAE,EAClC,OAAO,GAAG,IAAI,wBAAwB,EAAE,GACzC,GAAG,UAAU,CAAC;QAEf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CACV,OAAgC,EAChC,OAA6B;QAE7B,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,mCAAmC,CAAC,CAAC;QAEzE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,MAAyB,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,uEAAuE;QACvE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,MAAM,OAAO,GAAG,qBAAqB,CACnC,OAAO,CAAC,KAAK,CAAC,OAAO,EACrB,IAAI,CAAC,OAAO,CAAC,cAAc,CAC5B,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YACxB,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,OAAO;YACP,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAClC,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,iBAAiB,EAAE,OAAO,CAAC,KAAK,CAAC,iBAAiB;YAClD,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU;YACpC,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -7,6 +7,10 @@ import type { SimS3RequestOptions } from "../sim-s3-request-options.js";
7
7
  export declare class SimS3ObjectCommands {
8
8
  private readonly state;
9
9
  constructor(state: SimS3BucketCommandState);
10
+ /**
11
+ * Change how many keys one page of a listing holds.
12
+ */
13
+ configureMaxKeysPerPage(maxKeys: number): void;
10
14
  /**
11
15
  * Store an Object in a Bucket.
12
16
  */
@@ -27,5 +31,9 @@ export declare class SimS3ObjectCommands {
27
31
  * List the Objects in a Bucket.
28
32
  */
29
33
  list(command: simS3Commands.SimListObjectsCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimListObjectsCommandOutput>;
34
+ /**
35
+ * List the Objects in a Bucket, the way current tooling asks.
36
+ */
37
+ listV2(command: simS3Commands.SimListObjectsV2Command, options?: SimS3RequestOptions): Promise<simS3Commands.SimListObjectsV2CommandOutput>;
30
38
  }
31
39
  //# sourceMappingURL=sim-s3-object-commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3-object-commands.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/object/sim-s3-object-commands.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,KAAK,KAAK,aAAa,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAEhD,YAAY,KAAK,EAAE,uBAAuB,EAEzC;IAED;;OAEG;IACG,GAAG,CACP,OAAO,EAAE,aAAa,CAAC,mBAAmB,EAC1C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAKlD;IAED;;OAEG;IACG,GAAG,CACP,OAAO,EAAE,aAAa,CAAC,mBAAmB,EAC1C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAKlD;IAED;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,aAAa,CAAC,sBAAsB,EAC7C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAKrD;IAED;;OAEG;IACG,UAAU,CACd,OAAO,EAAE,aAAa,CAAC,uBAAuB,EAC9C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAKtD;IAED;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,aAAa,CAAC,qBAAqB,EAC5C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAKpD;CACF"}
1
+ {"version":3,"file":"sim-s3-object-commands.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/object/sim-s3-object-commands.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,KAAK,KAAK,aAAa,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAEhD,YAAY,KAAK,EAAE,uBAAuB,EAEzC;IAED;;OAEG;IACH,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;IAED;;OAEG;IACG,GAAG,CACP,OAAO,EAAE,aAAa,CAAC,mBAAmB,EAC1C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAKlD;IAED;;OAEG;IACG,GAAG,CACP,OAAO,EAAE,aAAa,CAAC,mBAAmB,EAC1C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAKlD;IAED;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,aAAa,CAAC,sBAAsB,EAC7C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAKrD;IAED;;OAEG;IACG,UAAU,CACd,OAAO,EAAE,aAAa,CAAC,uBAAuB,EAC9C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAKtD;IAED;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,aAAa,CAAC,qBAAqB,EAC5C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAKpD;IAED;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,aAAa,CAAC,uBAAuB,EAC9C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAKtD;CACF"}
@@ -2,6 +2,7 @@ import { DeleteObjectCommandHandler } from "../delete-object/delete-object.handl
2
2
  import { DeleteObjectsCommandHandler } from "../delete-objects/delete-objects.handler.js";
3
3
  import { GetObjectCommandHandler } from "../get-object/get-object.handler.js";
4
4
  import { ListObjectsCommandHandler } from "../list-objects/list-objects.handler.js";
5
+ import { ListObjectsV2CommandHandler } from "../list-objects-v2/list-objects-v2.handler.js";
5
6
  import { PutObjectCommandHandler } from "../put-object/put-object.handler.js";
6
7
  /**
7
8
  * The Object commands of one simulated S3 scope.
@@ -11,6 +12,12 @@ export class SimS3ObjectCommands {
11
12
  constructor(state) {
12
13
  this.state = state;
13
14
  }
15
+ /**
16
+ * Change how many keys one page of a listing holds.
17
+ */
18
+ configureMaxKeysPerPage(maxKeys) {
19
+ this.state.listing.configureMaxKeysPerPage(maxKeys);
20
+ }
14
21
  /**
15
22
  * Store an Object in a Bucket.
16
23
  */
@@ -41,5 +48,11 @@ export class SimS3ObjectCommands {
41
48
  async list(command, options) {
42
49
  return await new ListObjectsCommandHandler(this.state).handle(command, options);
43
50
  }
51
+ /**
52
+ * List the Objects in a Bucket, the way current tooling asks.
53
+ */
54
+ async listV2(command, options) {
55
+ return await new ListObjectsV2CommandHandler(this.state).handle(command, options);
56
+ }
44
57
  }
45
58
  //# sourceMappingURL=sim-s3-object-commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3-object-commands.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/object/sim-s3-object-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAK9E;;GAEG;AACH,MAAM,OAAO,mBAAmB;IACb,KAAK,CAA0B;IAEhD,YAAY,KAA8B;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CACP,OAA0C,EAC1C,OAA6B;QAE7B,OAAO,MAAM,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CACzD,OAAO,EACP,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CACP,OAA0C,EAC1C,OAA6B;QAE7B,OAAO,MAAM,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CACzD,OAAO,EACP,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,OAA6C,EAC7C,OAA6B;QAE7B,OAAO,MAAM,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAC5D,OAAO,EACP,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,OAA8C,EAC9C,OAA6B;QAE7B,OAAO,MAAM,IAAI,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAC7D,OAAO,EACP,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,OAA4C,EAC5C,OAA6B;QAE7B,OAAO,MAAM,IAAI,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAC3D,OAAO,EACP,OAAO,CACR,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"sim-s3-object-commands.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/object/sim-s3-object-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAC5F,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAK9E;;GAEG;AACH,MAAM,OAAO,mBAAmB;IACb,KAAK,CAA0B;IAEhD,YAAY,KAA8B;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,uBAAuB,CAAC,OAAe;QACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CACP,OAA0C,EAC1C,OAA6B;QAE7B,OAAO,MAAM,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CACzD,OAAO,EACP,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CACP,OAA0C,EAC1C,OAA6B;QAE7B,OAAO,MAAM,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CACzD,OAAO,EACP,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,OAA6C,EAC7C,OAA6B;QAE7B,OAAO,MAAM,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAC5D,OAAO,EACP,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,OAA8C,EAC9C,OAA6B;QAE7B,OAAO,MAAM,IAAI,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAC7D,OAAO,EACP,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,OAA4C,EAC5C,OAA6B;QAE7B,OAAO,MAAM,IAAI,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAC3D,OAAO,EACP,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,OAA8C,EAC9C,OAA6B;QAE7B,OAAO,MAAM,IAAI,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAC7D,OAAO,EACP,OAAO,CACR,CAAC;IACJ,CAAC;CACF"}
@@ -1,5 +1,9 @@
1
1
  import { SimS3Object } from "../../object/s3-object.js";
2
2
  import type { SimPutObjectCommand } from "./put-object.command.js";
3
+ import type { SimClock } from "../../../../util/clock/sim-clock.js";
4
+ interface PutObjectBuilderProperties {
5
+ readonly clock: SimClock;
6
+ }
3
7
  /**
4
8
  * Converts the supported PutObject request fields into a stored sim S3 Object.
5
9
  *
@@ -15,12 +19,17 @@ import type { SimPutObjectCommand } from "./put-object.command.js";
15
19
  * added here when the simulation gains support for them.
16
20
  */
17
21
  export declare class PutObjectBuilder {
22
+ private readonly clock;
23
+ constructor(properties: PutObjectBuilderProperties);
18
24
  /**
19
25
  * Build the Object that will be written to Bucket storage.
20
26
  *
21
27
  * This method performs conversion only. Callers must complete request
22
28
  * validation and authorization before invoking it so failed authorization
23
29
  * cannot trigger body processing or lead to storage mutation.
30
+ *
31
+ * The Object is dated by the simulation's clock rather than the host's, so a
32
+ * test that freezes time gets a last-modified time it can assert on.
24
33
  */
25
34
  build(command: SimPutObjectCommand): SimS3Object;
26
35
  /**
@@ -51,4 +60,5 @@ export declare class PutObjectBuilder {
51
60
  */
52
61
  private toBuffer;
53
62
  }
63
+ export {};
54
64
  //# sourceMappingURL=put-object-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"put-object-builder.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-object/put-object-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAuB,MAAM,2BAA2B,CAAC;AAE7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAgB;IAC3B;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,WAAW,CAO/C;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,UAAU;IAclB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ;CAiBjB"}
1
+ {"version":3,"file":"put-object-builder.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-object/put-object-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAuB,MAAM,2BAA2B,CAAC;AAE7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAEpE,UAAU,0BAA0B;IAClC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IAEjC,YAAY,UAAU,EAAE,0BAA0B,EAEjD;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,WAAW,CAQ/C;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,UAAU;IAclB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ;CAiBjB"}
@@ -16,12 +16,19 @@ import { assertDefined } from "../../../../util/type-guard/defined.js";
16
16
  * added here when the simulation gains support for them.
17
17
  */
18
18
  export class PutObjectBuilder {
19
+ clock;
20
+ constructor(properties) {
21
+ this.clock = properties.clock;
22
+ }
19
23
  /**
20
24
  * Build the Object that will be written to Bucket storage.
21
25
  *
22
26
  * This method performs conversion only. Callers must complete request
23
27
  * validation and authorization before invoking it so failed authorization
24
28
  * cannot trigger body processing or lead to storage mutation.
29
+ *
30
+ * The Object is dated by the simulation's clock rather than the host's, so a
31
+ * test that freezes time gets a last-modified time it can assert on.
25
32
  */
26
33
  build(command) {
27
34
  assertDefined(command.input.Key, "PutObjectCommand.input.Key");
@@ -29,6 +36,7 @@ export class PutObjectBuilder {
29
36
  key: command.input.Key,
30
37
  body: this.toBuffer(command.input.Body),
31
38
  metadata: new SimS3ObjectMetadata(this.toMetadata(command)),
39
+ lastModified: this.clock.now(),
32
40
  });
33
41
  }
34
42
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"put-object-builder.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-object/put-object-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAEvE;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,gBAAgB;IAC3B;;;;;;OAMG;IACH,KAAK,CAAC,OAA4B;QAChC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;QAC/D,OAAO,IAAI,WAAW,CAAC;YACrB,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG;YACtB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YACvC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACK,UAAU,CAAC,OAA4B;QAC7C,MAAM,QAAQ,GAA2B,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEvE,KAAK,MAAM,MAAM,IAAI,0BAA0B,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAEhE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YAChC,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACK,eAAe,CACrB,KAAgC;QAEhC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACK,QAAQ,CAAC,IAA0C;QACzD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"put-object-builder.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-object/put-object-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAOvE;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,gBAAgB;IACV,KAAK,CAAW;IAEjC,YAAY,UAAsC;QAChD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;IAChC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,OAA4B;QAChC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;QAC/D,OAAO,IAAI,WAAW,CAAC;YACrB,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG;YACtB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YACvC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC3D,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;SAC/B,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACK,UAAU,CAAC,OAA4B;QAC7C,MAAM,QAAQ,GAA2B,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEvE,KAAK,MAAM,MAAM,IAAI,0BAA0B,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAEhE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YAChC,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACK,eAAe,CACrB,KAAgC;QAEhC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACK,QAAQ,CAAC,IAA0C;QACzD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;CACF"}
@@ -29,8 +29,12 @@ export interface SimPutObjectCommandInput {
29
29
  }
30
30
  /**
31
31
  * Minimal structural sim S3 PutObject output.
32
+ *
33
+ * `ETag` is the quoted MD5 of the body S3 has just stored, which is what a
34
+ * caller keeps to recognise the same content later without reading it back.
32
35
  */
33
36
  export interface SimPutObjectCommandOutput {
37
+ readonly ETag?: string;
34
38
  readonly $metadata: SimResponseMetadata;
35
39
  }
36
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"put-object.command.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-object/put-object.command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAE3F;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAC;CAC1C;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,UAAU,GACV,MAAM,GACN,IAAI,GACJ,QAAQ,GACR,cAAc,CAAC,UAAU,CAAC,GAC1B,SAAS,CAAC"}
1
+ {"version":3,"file":"put-object.command.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-object/put-object.command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAE3F;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAC;CAC1C;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CACrC;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,UAAU,GACV,MAAM,GACN,IAAI,GACJ,QAAQ,GACR,cAAc,CAAC,UAAU,CAAC,GAC1B,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"put-object.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-object/put-object.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAExF,UAAU,iCAAiC;IACzC,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;IAC1C,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;CAC7C;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,cAAc,CAC5D,mBAAmB,EACnB,yBAAyB,CAC1B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IACxD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IAEpD,YAAY,UAAU,EAAE,iCAAiC,EAUxD;IAED;;;;;;;;;;;OAWG;IACG,MAAM,CACV,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,yBAAyB,CAAC,CA6BpC;CACF"}
1
+ {"version":3,"file":"put-object.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-object/put-object.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAGxF,UAAU,iCAAiC;IACzC,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;IAC1C,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;CAC7C;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,cAAc,CAC5D,mBAAmB,EACnB,yBAAyB,CAC1B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IAEpD,YAAY,UAAU,EAAE,iCAAiC,EAWxD;IAED;;;;;;;;;;;OAWG;IACG,MAAM,CACV,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,yBAAyB,CAAC,CA8BpC;CACF"}