@kensio/yulin 1.17.0 → 1.17.1

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 (302) hide show
  1. package/dist/service/acm/certificate/register-sim-acm-certificate.d.ts +41 -0
  2. package/dist/service/acm/certificate/register-sim-acm-certificate.d.ts.map +1 -0
  3. package/dist/service/acm/certificate/register-sim-acm-certificate.js +60 -0
  4. package/dist/service/acm/certificate/register-sim-acm-certificate.js.map +1 -0
  5. package/dist/service/acm/command/request-certificate/request-certificate.handler.d.ts +9 -0
  6. package/dist/service/acm/command/request-certificate/request-certificate.handler.d.ts.map +1 -1
  7. package/dist/service/acm/command/request-certificate/request-certificate.handler.js +18 -1
  8. package/dist/service/acm/command/request-certificate/request-certificate.handler.js.map +1 -1
  9. package/dist/service/acm/sim-acm.d.ts +15 -0
  10. package/dist/service/acm/sim-acm.d.ts.map +1 -1
  11. package/dist/service/acm/sim-acm.js +21 -0
  12. package/dist/service/acm/sim-acm.js.map +1 -1
  13. package/dist/service/cloudformation/cdk/sim-cdk-assembly-selection.d.ts +4 -0
  14. package/dist/service/cloudformation/cdk/sim-cdk-assembly-selection.d.ts.map +1 -1
  15. package/dist/service/cloudformation/cdk/sim-cdk-assembly-selection.js +7 -2
  16. package/dist/service/cloudformation/cdk/sim-cdk-assembly-selection.js.map +1 -1
  17. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.d.ts +1 -1
  18. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.d.ts.map +1 -1
  19. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +6 -4
  20. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js.map +1 -1
  21. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +4 -0
  22. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts.map +1 -1
  23. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js.map +1 -1
  24. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +25 -2
  25. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts.map +1 -1
  26. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js +13 -0
  27. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js.map +1 -1
  28. package/dist/service/cloudformation/index.d.ts +1 -1
  29. package/dist/service/cloudformation/index.d.ts.map +1 -1
  30. package/dist/service/cloudformation/resource/cfn/iam/sim-iam-cfn-value-adapter.d.ts.map +1 -1
  31. package/dist/service/cloudformation/resource/cfn/iam/sim-iam-cfn-value-adapter.js +4 -0
  32. package/dist/service/cloudformation/resource/cfn/iam/sim-iam-cfn-value-adapter.js.map +1 -1
  33. package/dist/service/cloudformation/resource/cfn/iam/sim-iam-user-cfn.d.ts +28 -0
  34. package/dist/service/cloudformation/resource/cfn/iam/sim-iam-user-cfn.d.ts.map +1 -0
  35. package/dist/service/cloudformation/resource/cfn/iam/sim-iam-user-cfn.js +33 -0
  36. package/dist/service/cloudformation/resource/cfn/iam/sim-iam-user-cfn.js.map +1 -0
  37. package/dist/service/cloudformation/resource/resolve/property/sim-cfn-resource-property-resolver.d.ts +6 -0
  38. package/dist/service/cloudformation/resource/resolve/property/sim-cfn-resource-property-resolver.d.ts.map +1 -1
  39. package/dist/service/cloudformation/resource/resolve/property/sim-cfn-resource-property-resolver.js +3 -0
  40. package/dist/service/cloudformation/resource/resolve/property/sim-cfn-resource-property-resolver.js.map +1 -1
  41. package/dist/service/cloudformation/resource/sim-cfn-resource-record.d.ts.map +1 -1
  42. package/dist/service/cloudformation/resource/sim-cfn-resource-record.js +1 -0
  43. package/dist/service/cloudformation/resource/sim-cfn-resource-record.js.map +1 -1
  44. package/dist/service/cloudformation/template/dynamic/make-sim-cfn-dynamic-references.d.ts +1 -0
  45. package/dist/service/cloudformation/template/dynamic/make-sim-cfn-dynamic-references.d.ts.map +1 -1
  46. package/dist/service/cloudformation/template/dynamic/make-sim-cfn-dynamic-references.js +2 -1
  47. package/dist/service/cloudformation/template/dynamic/make-sim-cfn-dynamic-references.js.map +1 -1
  48. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-resolvers.d.ts.map +1 -1
  49. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-resolvers.js +4 -0
  50. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-resolvers.js.map +1 -1
  51. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference.type.d.ts +19 -1
  52. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference.type.d.ts.map +1 -1
  53. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-references.d.ts +6 -0
  54. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-references.d.ts.map +1 -1
  55. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-references.js +9 -3
  56. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-references.js.map +1 -1
  57. package/dist/service/cloudfront/command/create-function/create-function-code-size.d.ts +23 -0
  58. package/dist/service/cloudfront/command/create-function/create-function-code-size.d.ts.map +1 -0
  59. package/dist/service/cloudfront/command/create-function/create-function-code-size.js +33 -0
  60. package/dist/service/cloudfront/command/create-function/create-function-code-size.js.map +1 -0
  61. package/dist/service/cloudfront/command/create-function/create-function.handler.d.ts.map +1 -1
  62. package/dist/service/cloudfront/command/create-function/create-function.handler.js +2 -0
  63. package/dist/service/cloudfront/command/create-function/create-function.handler.js.map +1 -1
  64. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +11 -0
  65. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts.map +1 -1
  66. package/dist/service/cloudfront/error/sim-cloudfront.error.js +13 -0
  67. package/dist/service/cloudfront/error/sim-cloudfront.error.js.map +1 -1
  68. package/dist/service/cloudfront/index.d.ts +1 -1
  69. package/dist/service/cloudfront/index.d.ts.map +1 -1
  70. package/dist/service/cloudfront/index.js +1 -1
  71. package/dist/service/cloudfront/index.js.map +1 -1
  72. package/dist/service/cognito/command/sim-cognito-commands.d.ts +6 -0
  73. package/dist/service/cognito/command/sim-cognito-commands.d.ts.map +1 -1
  74. package/dist/service/cognito/command/sim-cognito-commands.js +22 -6
  75. package/dist/service/cognito/command/sim-cognito-commands.js.map +1 -1
  76. package/dist/service/cognito/error/sim-cognito.error.d.ts +22 -0
  77. package/dist/service/cognito/error/sim-cognito.error.d.ts.map +1 -1
  78. package/dist/service/cognito/error/sim-cognito.error.js +26 -0
  79. package/dist/service/cognito/error/sim-cognito.error.js.map +1 -1
  80. package/dist/service/cognito/index.d.ts +2 -1
  81. package/dist/service/cognito/index.d.ts.map +1 -1
  82. package/dist/service/cognito/index.js +1 -1
  83. package/dist/service/cognito/index.js.map +1 -1
  84. package/dist/service/cognito/sim-cognito-identity-provider.d.ts +24 -0
  85. package/dist/service/cognito/sim-cognito-identity-provider.d.ts.map +1 -1
  86. package/dist/service/cognito/sim-cognito-identity-provider.js +26 -0
  87. package/dist/service/cognito/sim-cognito-identity-provider.js.map +1 -1
  88. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-factory.d.ts +9 -0
  89. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-factory.d.ts.map +1 -1
  90. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-factory.js +2 -2
  91. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-factory.js.map +1 -1
  92. package/dist/service/cognito/user-pool/register-sim-cognito-user-pool-client.d.ts +22 -0
  93. package/dist/service/cognito/user-pool/register-sim-cognito-user-pool-client.d.ts.map +1 -0
  94. package/dist/service/cognito/user-pool/register-sim-cognito-user-pool-client.js +36 -0
  95. package/dist/service/cognito/user-pool/register-sim-cognito-user-pool-client.js.map +1 -0
  96. package/dist/service/cognito/user-pool/register-sim-cognito-user-pool.d.ts +25 -0
  97. package/dist/service/cognito/user-pool/register-sim-cognito-user-pool.d.ts.map +1 -0
  98. package/dist/service/cognito/user-pool/register-sim-cognito-user-pool.js +30 -0
  99. package/dist/service/cognito/user-pool/register-sim-cognito-user-pool.js.map +1 -0
  100. package/dist/service/cognito/user-pool/sim-cognito-registration.types.d.ts +40 -0
  101. package/dist/service/cognito/user-pool/sim-cognito-registration.types.d.ts.map +1 -0
  102. package/dist/service/cognito/user-pool/sim-cognito-registration.types.js +2 -0
  103. package/dist/service/cognito/user-pool/sim-cognito-registration.types.js.map +1 -0
  104. package/dist/service/cognito/user-pool/sim-cognito-registrations.d.ts +34 -0
  105. package/dist/service/cognito/user-pool/sim-cognito-registrations.d.ts.map +1 -0
  106. package/dist/service/cognito/user-pool/sim-cognito-registrations.js +28 -0
  107. package/dist/service/cognito/user-pool/sim-cognito-registrations.js.map +1 -0
  108. package/dist/service/cognito/user-pool/sim-cognito-user-pool-factory.d.ts +9 -0
  109. package/dist/service/cognito/user-pool/sim-cognito-user-pool-factory.d.ts.map +1 -1
  110. package/dist/service/cognito/user-pool/sim-cognito-user-pool-factory.js +3 -2
  111. package/dist/service/cognito/user-pool/sim-cognito-user-pool-factory.js.map +1 -1
  112. package/dist/service/cognito/user-pool/sim-cognito-user-pool-id.d.ts +9 -0
  113. package/dist/service/cognito/user-pool/sim-cognito-user-pool-id.d.ts.map +1 -1
  114. package/dist/service/cognito/user-pool/sim-cognito-user-pool-id.js +18 -0
  115. package/dist/service/cognito/user-pool/sim-cognito-user-pool-id.js.map +1 -1
  116. package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.d.ts +8 -0
  117. package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.d.ts.map +1 -1
  118. package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.js +15 -1
  119. package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.js.map +1 -1
  120. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.d.ts +40 -0
  121. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.d.ts.map +1 -0
  122. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.js +65 -0
  123. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.js.map +1 -0
  124. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.d.ts +1 -0
  125. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.d.ts.map +1 -1
  126. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js +5 -0
  127. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js.map +1 -1
  128. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.d.ts +11 -20
  129. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.d.ts.map +1 -1
  130. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.js +29 -61
  131. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.js.map +1 -1
  132. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-properties-parser.d.ts +38 -0
  133. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-properties-parser.d.ts.map +1 -0
  134. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-properties-parser.js +79 -0
  135. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-properties-parser.js.map +1 -0
  136. package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.d.ts +2 -2
  137. package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.d.ts.map +1 -1
  138. package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.js +4 -2
  139. package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.js.map +1 -1
  140. package/dist/service/iam/cfn/sim-cfn-iam-policies-parser.d.ts +35 -0
  141. package/dist/service/iam/cfn/sim-cfn-iam-policies-parser.d.ts.map +1 -0
  142. package/dist/service/iam/cfn/{role/sim-cfn-iam-role-policies-parser.js → sim-cfn-iam-policies-parser.js} +17 -12
  143. package/dist/service/iam/cfn/sim-cfn-iam-policies-parser.js.map +1 -0
  144. package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.d.ts +11 -0
  145. package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.d.ts.map +1 -1
  146. package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.js +25 -0
  147. package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.js.map +1 -1
  148. package/dist/service/iam/cfn/sim-cfn-iam-resource-factory.d.ts +1 -0
  149. package/dist/service/iam/cfn/sim-cfn-iam-resource-factory.d.ts.map +1 -1
  150. package/dist/service/iam/cfn/sim-cfn-iam-resource-factory.js +6 -0
  151. package/dist/service/iam/cfn/sim-cfn-iam-resource-factory.js.map +1 -1
  152. package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.d.ts +28 -0
  153. package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.d.ts.map +1 -0
  154. package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.js +67 -0
  155. package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.js.map +1 -0
  156. package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.d.ts +26 -0
  157. package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.d.ts.map +1 -0
  158. package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.js +29 -0
  159. package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.js.map +1 -0
  160. package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.d.ts +38 -0
  161. package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.d.ts.map +1 -0
  162. package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.js +80 -0
  163. package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.js.map +1 -0
  164. package/dist/service/iam/command/sim-iam-command.types.d.ts +3 -0
  165. package/dist/service/iam/command/sim-iam-command.types.d.ts.map +1 -1
  166. package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.command.d.ts +9 -0
  167. package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.command.d.ts.map +1 -0
  168. package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.command.js +2 -0
  169. package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.command.js.map +1 -0
  170. package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.handler.d.ts +30 -0
  171. package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.handler.d.ts.map +1 -0
  172. package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.handler.js +44 -0
  173. package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.handler.js.map +1 -0
  174. package/dist/service/iam/command/user/create-login-profile/create-login-profile.command.d.ts +16 -0
  175. package/dist/service/iam/command/user/create-login-profile/create-login-profile.command.d.ts.map +1 -0
  176. package/dist/service/iam/command/user/create-login-profile/create-login-profile.command.js +2 -0
  177. package/dist/service/iam/command/user/create-login-profile/create-login-profile.command.js.map +1 -0
  178. package/dist/service/iam/command/user/create-login-profile/create-login-profile.handler.d.ts +32 -0
  179. package/dist/service/iam/command/user/create-login-profile/create-login-profile.handler.d.ts.map +1 -0
  180. package/dist/service/iam/command/user/create-login-profile/create-login-profile.handler.js +59 -0
  181. package/dist/service/iam/command/user/create-login-profile/create-login-profile.handler.js.map +1 -0
  182. package/dist/service/iam/command/user/create-user/create-user-record-factory.d.ts.map +1 -1
  183. package/dist/service/iam/command/user/create-user/create-user-record-factory.js +1 -0
  184. package/dist/service/iam/command/user/create-user/create-user-record-factory.js.map +1 -1
  185. package/dist/service/iam/command/user/delete-user/delete-user.command.d.ts +19 -0
  186. package/dist/service/iam/command/user/delete-user/delete-user.command.d.ts.map +1 -0
  187. package/dist/service/iam/command/user/delete-user/delete-user.command.js +2 -0
  188. package/dist/service/iam/command/user/delete-user/delete-user.command.js.map +1 -0
  189. package/dist/service/iam/command/user/delete-user/delete-user.handler.d.ts +34 -0
  190. package/dist/service/iam/command/user/delete-user/delete-user.handler.d.ts.map +1 -0
  191. package/dist/service/iam/command/user/delete-user/delete-user.handler.js +51 -0
  192. package/dist/service/iam/command/user/delete-user/delete-user.handler.js.map +1 -0
  193. package/dist/service/iam/command/user/sim-iam-user-command-handlers.d.ts +15 -0
  194. package/dist/service/iam/command/user/sim-iam-user-command-handlers.d.ts.map +1 -1
  195. package/dist/service/iam/command/user/sim-iam-user-command-handlers.js +36 -0
  196. package/dist/service/iam/command/user/sim-iam-user-command-handlers.js.map +1 -1
  197. package/dist/service/iam/sdk/sim-iam-sdk-command-router.d.ts.map +1 -1
  198. package/dist/service/iam/sdk/sim-iam-sdk-command-router.js +12 -0
  199. package/dist/service/iam/sdk/sim-iam-sdk-command-router.js.map +1 -1
  200. package/dist/service/iam/sim-iam.d.ts +12 -0
  201. package/dist/service/iam/sim-iam.d.ts.map +1 -1
  202. package/dist/service/iam/sim-iam.js +18 -0
  203. package/dist/service/iam/sim-iam.js.map +1 -1
  204. package/dist/service/iam/user/sim-iam-user-login-profile.d.ts +14 -0
  205. package/dist/service/iam/user/sim-iam-user-login-profile.d.ts.map +1 -0
  206. package/dist/service/iam/user/sim-iam-user-login-profile.js +2 -0
  207. package/dist/service/iam/user/sim-iam-user-login-profile.js.map +1 -0
  208. package/dist/service/iam/user/sim-iam-user.d.ts +8 -0
  209. package/dist/service/iam/user/sim-iam-user.d.ts.map +1 -1
  210. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +6 -5
  211. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts.map +1 -1
  212. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +7 -6
  213. package/dist/service/lambda/function/code/sim-lambda-executable-code.js.map +1 -1
  214. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +11 -3
  215. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts.map +1 -1
  216. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +13 -7
  217. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js.map +1 -1
  218. package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts +104 -0
  219. package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts.map +1 -0
  220. package/dist/service/lambda/function/invoke/sim-lambda-process-output.js +133 -0
  221. package/dist/service/lambda/function/invoke/sim-lambda-process-output.js.map +1 -0
  222. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +10 -0
  223. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts.map +1 -1
  224. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +11 -0
  225. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js.map +1 -1
  226. package/dist/service/lambda/function/sim-lambda-function.d.ts +2 -1
  227. package/dist/service/lambda/function/sim-lambda-function.d.ts.map +1 -1
  228. package/dist/service/lambda/function/sim-lambda-function.js +5 -2
  229. package/dist/service/lambda/function/sim-lambda-function.js.map +1 -1
  230. package/dist/service/s3/command/get-object/get-object-loader.d.ts +5 -3
  231. package/dist/service/s3/command/get-object/get-object-loader.d.ts.map +1 -1
  232. package/dist/service/s3/command/get-object/get-object-loader.js +19 -4
  233. package/dist/service/s3/command/get-object/get-object-loader.js.map +1 -1
  234. package/dist/service/s3/command/get-object/get-object.command.d.ts +13 -0
  235. package/dist/service/s3/command/get-object/get-object.command.d.ts.map +1 -1
  236. package/dist/service/s3/command/get-object/get-object.handler.d.ts +3 -0
  237. package/dist/service/s3/command/get-object/get-object.handler.d.ts.map +1 -1
  238. package/dist/service/s3/command/get-object/get-object.handler.js +4 -1
  239. package/dist/service/s3/command/get-object/get-object.handler.js.map +1 -1
  240. package/dist/service/s3/error/sim-s3.error.d.ts +13 -0
  241. package/dist/service/s3/error/sim-s3.error.d.ts.map +1 -1
  242. package/dist/service/s3/error/sim-s3.error.js +15 -0
  243. package/dist/service/s3/error/sim-s3.error.js.map +1 -1
  244. package/dist/service/s3/object/s3-object-range.d.ts +26 -0
  245. package/dist/service/s3/object/s3-object-range.d.ts.map +1 -0
  246. package/dist/service/s3/object/s3-object-range.js +89 -0
  247. package/dist/service/s3/object/s3-object-range.js.map +1 -0
  248. package/dist/service/s3/object/s3-object-response-headers.d.ts +7 -1
  249. package/dist/service/s3/object/s3-object-response-headers.d.ts.map +1 -1
  250. package/dist/service/s3/object/s3-object-response-headers.js +5 -1
  251. package/dist/service/s3/object/s3-object-response-headers.js.map +1 -1
  252. package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +0 -14
  253. package/dist/service/s3/serve/api/sim-s3-api-input.d.ts.map +1 -1
  254. package/dist/service/s3/serve/api/sim-s3-api-input.js +0 -29
  255. package/dist/service/s3/serve/api/sim-s3-api-input.js.map +1 -1
  256. package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts +27 -0
  257. package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts.map +1 -0
  258. package/dist/service/s3/serve/api/sim-s3-api-object-input.js +47 -0
  259. package/dist/service/s3/serve/api/sim-s3-api-object-input.js.map +1 -0
  260. package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts +5 -0
  261. package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts.map +1 -1
  262. package/dist/service/s3/serve/api/sim-s3-api-object-output.js +8 -1
  263. package/dist/service/s3/serve/api/sim-s3-api-object-output.js.map +1 -1
  264. package/dist/service/s3/serve/api/sim-s3-api-object-routes.d.ts.map +1 -1
  265. package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +2 -2
  266. package/dist/service/s3/serve/api/sim-s3-api-object-routes.js.map +1 -1
  267. package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts +5 -0
  268. package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts.map +1 -1
  269. package/dist/service/s3/serve/sim-s3-rest-object-reader.js +20 -3
  270. package/dist/service/s3/serve/sim-s3-rest-object-reader.js.map +1 -1
  271. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-dynamic-reference-resolver.d.ts +0 -7
  272. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-dynamic-reference-resolver.d.ts.map +1 -1
  273. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-dynamic-reference-resolver.js +7 -41
  274. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-dynamic-reference-resolver.js.map +1 -1
  275. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-body.d.ts +14 -0
  276. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-body.d.ts.map +1 -0
  277. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-body.js +26 -0
  278. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-body.js.map +1 -0
  279. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-stand-in.d.ts +11 -0
  280. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-stand-in.d.ts.map +1 -0
  281. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-stand-in.js +16 -0
  282. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-stand-in.js.map +1 -0
  283. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-dynamic-reference-resolver.d.ts +40 -0
  284. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-dynamic-reference-resolver.d.ts.map +1 -0
  285. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-dynamic-reference-resolver.js +67 -0
  286. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-dynamic-reference-resolver.js.map +1 -0
  287. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-reference-properties.d.ts +8 -0
  288. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-reference-properties.d.ts.map +1 -0
  289. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-reference-properties.js +61 -0
  290. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-reference-properties.js.map +1 -0
  291. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-refusals.d.ts +19 -0
  292. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-refusals.d.ts.map +1 -0
  293. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-refusals.js +37 -0
  294. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-refusals.js.map +1 -0
  295. package/dist/service/ssm/sim-ssm.d.ts +5 -0
  296. package/dist/service/ssm/sim-ssm.d.ts.map +1 -1
  297. package/dist/service/ssm/sim-ssm.js +7 -0
  298. package/dist/service/ssm/sim-ssm.js.map +1 -1
  299. package/package.json +1 -1
  300. package/dist/service/iam/cfn/role/sim-cfn-iam-role-policies-parser.d.ts +0 -25
  301. package/dist/service/iam/cfn/role/sim-cfn-iam-role-policies-parser.d.ts.map +0 -1
  302. package/dist/service/iam/cfn/role/sim-cfn-iam-role-policies-parser.js.map +0 -1
@@ -0,0 +1,133 @@
1
+ import { AsyncLocalStorage } from "node:async_hooks";
2
+ import { StringDecoder } from "node:string_decoder";
3
+ import { format } from "node:util";
4
+ /**
5
+ * The console methods an invocation's output is taken from.
6
+ *
7
+ * These are the ones that format their arguments the way `console.log` does,
8
+ * so what is recorded is what the host console prints. `console.trace` and
9
+ * `console.dir` decorate their output, and recording a plain format of their
10
+ * arguments would put something in the log group that the handler never
11
+ * printed. Both still reach the host console, and both are recorded when the
12
+ * host console goes on to write them to `process.stdout`.
13
+ */
14
+ const CONSOLE_METHODS = ["log", "info", "debug", "warn", "error"];
15
+ /**
16
+ * The real process globals, read when the patch is installed.
17
+ */
18
+ function hostProcessGlobals() {
19
+ return {
20
+ console: globalThis.console,
21
+ stdout: process.stdout,
22
+ stderr: process.stderr,
23
+ };
24
+ }
25
+ /**
26
+ * What a sim Lambda handler running in the host scope prints.
27
+ *
28
+ * A handler backed by a real in-process function is a closure over its own
29
+ * module scope, so it prints through the host process's console and streams
30
+ * like any other code in the test run. Zip code has a vm sandbox with streams
31
+ * of its own and needs none of this. Node.js asynchronous context tracking
32
+ * bridges the gap for the in-process case, exactly as it does for the clock
33
+ * and for process.env: the invocation's sink is held in an AsyncLocalStorage
34
+ * store, and a write resolves to it while it is set.
35
+ *
36
+ * The store follows the invocation across await points, so concurrent
37
+ * invocations each record to their own function's log group, and output from
38
+ * the rest of the test run reaches the host console alone.
39
+ *
40
+ * Both the console and the standard streams are patched, because a test runner
41
+ * commonly replaces the global console with one of its own that writes
42
+ * somewhere else. Vitest does, which means a patch on `process.stdout` alone
43
+ * would see a handler's direct writes and miss every `console.log` it made.
44
+ * The console patch delegates outside the store, so a line the host console
45
+ * passes on to `process.stdout` is recorded once.
46
+ *
47
+ * The process globals are taken from a function so that a test can build an
48
+ * instance over streams it can watch. Everything else shares the one below.
49
+ */
50
+ export class SimLambdaProcessOutput {
51
+ processGlobals;
52
+ storage = new AsyncLocalStorage();
53
+ installed = false;
54
+ constructor(processGlobals = hostProcessGlobals) {
55
+ this.processGlobals = processGlobals;
56
+ }
57
+ /**
58
+ * Run an invocation with the given sink recording what it prints.
59
+ */
60
+ async run(sink, run) {
61
+ this.install();
62
+ return await this.storage.run(sink, run);
63
+ }
64
+ /**
65
+ * Tee the process console and standard streams into the invocation store.
66
+ *
67
+ * Installed on the first invocation that has somewhere to record rather than
68
+ * at import, so a test run that only ever invokes zip code, or that builds a
69
+ * function standalone outside a SimAws instance, is left completely alone.
70
+ *
71
+ * With no invocation running, both patches forward and record nothing, so an
72
+ * installed patch behaves exactly like no patch at all. Neither is ever
73
+ * removed: removing one would be unsafe while another invocation is in
74
+ * flight, and there is nothing to gain.
75
+ */
76
+ install() {
77
+ if (this.installed) {
78
+ return;
79
+ }
80
+ this.installed = true;
81
+ const globals = this.processGlobals();
82
+ this.patchConsole(globals.console);
83
+ this.patchStream(globals.stdout);
84
+ this.patchStream(globals.stderr);
85
+ }
86
+ /**
87
+ * Record what the console prints during an invocation.
88
+ *
89
+ * The host method is held from install time. A test runner that wraps the
90
+ * console afterwards wraps the patch, so its own interception still sees
91
+ * every write, and one that replaces the console object outright takes the
92
+ * patch with it and gets the output the handler wrote.
93
+ */
94
+ patchConsole(hostConsole) {
95
+ for (const method of CONSOLE_METHODS) {
96
+ // oxlint-disable-next-line security/detect-object-injection -- one of this module's own fixed method names.
97
+ const hostMethod = hostConsole[method].bind(hostConsole);
98
+ // oxlint-disable-next-line security/detect-object-injection -- one of this module's own fixed method names.
99
+ hostConsole[method] = (...arguments_) => {
100
+ this.storage.getStore()?.write(`${format(...arguments_)}\n`);
101
+ // Delegated outside the store, because the host console writing to
102
+ // process.stdout would otherwise record the same line a second time.
103
+ this.storage.exit(() => {
104
+ hostMethod(...arguments_);
105
+ });
106
+ };
107
+ }
108
+ }
109
+ /**
110
+ * Record what is written to one of the process's standard streams.
111
+ *
112
+ * Chunks are decoded as one stream rather than one at a time. A handler
113
+ * writing bytes in pieces can split a multibyte character across two writes,
114
+ * and decoding each chunk on its own would record a replacement character in
115
+ * place of both halves.
116
+ */
117
+ patchStream(hostStream) {
118
+ const hostWrite = hostStream.write.bind(hostStream);
119
+ const decoder = new StringDecoder("utf8");
120
+ hostStream.write = (chunk, ...rest) => {
121
+ const sink = this.storage.getStore();
122
+ if (sink !== undefined) {
123
+ sink.write(typeof chunk === "string" ? chunk : decoder.write(Buffer.from(chunk)));
124
+ }
125
+ return hostWrite(chunk, ...rest);
126
+ };
127
+ }
128
+ }
129
+ /**
130
+ * Shared because it patches process globals: one patch, one store.
131
+ */
132
+ export const simLambdaProcessOutput = new SimLambdaProcessOutput();
133
+ //# sourceMappingURL=sim-lambda-process-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-process-output.js","sourceRoot":"","sources":["../../../../../src/service/lambda/function/invoke/sim-lambda-process-output.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { SimClock } from "../../../../util/clock/sim-clock.js";
2
2
  import type { SimLogsServiceWriter } from "../../../logs/write/sim-logs-service-writer.js";
3
+ import type { SimLambdaOutputSink } from "./sim-lambda-output-sink.js";
3
4
  import type { SimLambdaExecutableCode } from "../code/sim-lambda-executable-code.js";
4
5
  interface SimLambdaFunctionLoggingProperties {
5
6
  readonly functionName: string;
@@ -43,6 +44,15 @@ export declare class SimLambdaFunctionLogging {
43
44
  * Have this function's code record what it writes.
44
45
  */
45
46
  recordFrom(code: SimLambdaExecutableCode): void;
47
+ /**
48
+ * Where this function's output goes, once its execution environment has
49
+ * cold started.
50
+ *
51
+ * Code with streams of its own is given this through recordFrom. Host-scope
52
+ * code has none, and its invocation runs with this as the sink the process
53
+ * console and standard streams tee into.
54
+ */
55
+ outputSink(): SimLambdaOutputSink | undefined;
46
56
  /**
47
57
  * Run an invocation, recording whatever it left unterminated once it is
48
58
  * over.
@@ -1 +1 @@
1
- {"version":3,"file":"sim-lambda-function-logging.d.ts","sourceRoot":"","sources":["../../../../../src/service/lambda/function/logging/sim-lambda-function-logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAOrF,UAAU,kCAAkC;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;CAClD;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,wBAAwB;;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAO9B,YAAY,UAAU,EAAE,kCAAkC,EAIzD;IAED;;;;;;;;;OASG;IACH,aAAa,IAAI,MAAM,CAKtB;IAED;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,uBAAuB,GAAG,IAAI,CAM9C;IAED;;;;;;;OAOG;IACG,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAMjD;IAED,OAAO,CAAC,SAAS;CAclB"}
1
+ {"version":3,"file":"sim-lambda-function-logging.d.ts","sourceRoot":"","sources":["../../../../../src/service/lambda/function/logging/sim-lambda-function-logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAOrF,UAAU,kCAAkC;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;CAClD;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,wBAAwB;;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAO9B,YAAY,UAAU,EAAE,kCAAkC,EAIzD;IAED;;;;;;;;;OASG;IACH,aAAa,IAAI,MAAM,CAKtB;IAED;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,uBAAuB,GAAG,IAAI,CAM9C;IAED;;;;;;;OAOG;IACH,UAAU,IAAI,mBAAmB,GAAG,SAAS,CAE5C;IAED;;;;;;;OAOG;IACG,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAMjD;IAED,OAAO,CAAC,SAAS;CAclB"}
@@ -49,6 +49,17 @@ export class SimLambdaFunctionLogging {
49
49
  code.recordOutputTo(writer);
50
50
  }
51
51
  }
52
+ /**
53
+ * Where this function's output goes, once its execution environment has
54
+ * cold started.
55
+ *
56
+ * Code with streams of its own is given this through recordFrom. Host-scope
57
+ * code has none, and its invocation runs with this as the sink the process
58
+ * console and standard streams tee into.
59
+ */
60
+ outputSink() {
61
+ return this.#writer;
62
+ }
52
63
  /**
53
64
  * Run an invocation, recording whatever it left unterminated once it is
54
65
  * over.
@@ -1 +1 @@
1
- {"version":3,"file":"sim-lambda-function-logging.js","sourceRoot":"","sources":["../../../../../src/service/lambda/function/logging/sim-lambda-function-logging.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AAazC;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,wBAAwB;IAC1B,YAAY,CAAS;IAErB,KAAK,CAAmC;IACxC,MAAM,CAAW;IAC1B,OAAO,CAAiC;IACxC,cAAc,CAAqB;IAEnC,YAAY,UAA8C;QACxD,IAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACnE,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;IACjC,CAAC;IAED;;;;;;;;;OASG;IACH,aAAa;QACX,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAE/D,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAA6B;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAE5B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CAAI,GAAqB;QACnC,IAAI,CAAC;YACH,OAAO,MAAM,GAAG,EAAE,CAAC;QACrB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAEO,SAAS;QACf,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QAExB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,kBAAkB,CAAC;gBACpC,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,aAAa;gBACb,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"sim-lambda-function-logging.js","sourceRoot":"","sources":["../../../../../src/service/lambda/function/logging/sim-lambda-function-logging.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AAazC;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,wBAAwB;IAC1B,YAAY,CAAS;IAErB,KAAK,CAAmC;IACxC,MAAM,CAAW;IAC1B,OAAO,CAAiC;IACxC,cAAc,CAAqB;IAEnC,YAAY,UAA8C;QACxD,IAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACnE,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;IACjC,CAAC;IAED;;;;;;;;;OASG;IACH,aAAa;QACX,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAE/D,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAA6B;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAE5B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CAAI,GAAqB;QACnC,IAAI,CAAC;YACH,OAAO,MAAM,GAAG,EAAE,CAAC;QACrB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAEO,SAAS;QACf,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QAExB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,kBAAkB,CAAC;gBACpC,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,aAAa;gBACb,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;CACF"}
@@ -144,7 +144,8 @@ export declare class SimLambdaFunction {
144
144
  invoke(event: unknown): Promise<unknown>;
145
145
  /**
146
146
  * Run an invocation with the process globals host-scope code reads bridged
147
- * to this simulation: the current time, and the HTTP clients it reaches for.
147
+ * to this simulation: the current time, the HTTP clients it reaches for,
148
+ * and the console and streams it prints through.
148
149
  */
149
150
  private runInHostScope;
150
151
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sim-lambda-function.d.ts","sourceRoot":"","sources":["../../../../src/service/lambda/function/sim-lambda-function.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-lambda-function.d.ts","sourceRoot":"","sources":["../../../../src/service/lambda/function/sim-lambda-function.ts"],"names":[],"mappings":"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"}
@@ -149,13 +149,16 @@ export class SimLambdaFunction {
149
149
  }
150
150
  /**
151
151
  * Run an invocation with the process globals host-scope code reads bridged
152
- * to this simulation: the current time, and the HTTP clients it reaches for.
152
+ * to this simulation: the current time, the HTTP clients it reaches for,
153
+ * and the console and streams it prints through.
153
154
  */
154
155
  async runInHostScope(run) {
155
156
  if (!this.code.runsInHostScope) {
156
157
  return await run();
157
158
  }
158
- return await runSimLambdaInHostScope({ clock: this.clock, outboundHttp: this.outboundHttp }, run);
159
+ const { clock, outboundHttp } = this;
160
+ const output = this.logging.outputSink();
161
+ return await runSimLambdaInHostScope({ clock, outboundHttp, output }, run);
159
162
  }
160
163
  }
161
164
  //# sourceMappingURL=sim-lambda-function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-lambda-function.js","sourceRoot":"","sources":["../../../../src/service/lambda/function/sim-lambda-function.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-lambda-function.js","sourceRoot":"","sources":["../../../../src/service/lambda/function/sim-lambda-function.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,8 @@ import type { SimGetObjectCommandOutput } from "./get-object.command.js";
11
11
  * response is a representation of the stored Object:
12
12
  *
13
13
  * - a missing storage entry becomes the S3 NoSuchKey error;
14
- * - the stored Buffer becomes the readable response body;
14
+ * - the stored Buffer, or the part of it the read asked for, becomes the
15
+ * readable response body;
15
16
  * - stored metadata becomes SDK response metadata;
16
17
  * - the Object's content hash and write time become its ETag and LastModified.
17
18
  *
@@ -20,8 +21,9 @@ import type { SimGetObjectCommandOutput } from "./get-object.command.js";
20
21
  */
21
22
  export declare class GetObjectLoader {
22
23
  /**
23
- * Read an Object from the resolved Bucket and build its SDK command output.
24
+ * Read an Object, or the range of it that was asked for, from the resolved
25
+ * Bucket, and build its SDK command output.
24
26
  */
25
- load(bucket: SimS3Bucket, key: string): Promise<SimGetObjectCommandOutput>;
27
+ load(bucket: SimS3Bucket, key: string, rangeHeader?: string): Promise<SimGetObjectCommandOutput>;
26
28
  }
27
29
  //# sourceMappingURL=get-object-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-object-loader.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/get-object/get-object-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,eAAe;IAC1B;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,yBAAyB,CAAC,CAapC;CACF"}
1
+ {"version":3,"file":"get-object-loader.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/get-object/get-object-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAOjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,eAAe;IAC1B;;;OAGG;IACG,IAAI,CACR,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,MAAM,EACX,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,yBAAyB,CAAC,CA2BpC;CACF"}
@@ -1,6 +1,7 @@
1
1
  import { Readable } from "node:stream";
2
2
  import { SimS3NoSuchKey } from "../../error/sim-s3.error.js";
3
3
  import { simS3QuotedETag } from "../../object/s3-object-etag.js";
4
+ import { simS3ContentRange, simS3ReadObjectRange, } from "../../object/s3-object-range.js";
4
5
  /**
5
6
  * Loads an authorized S3 Object and converts it to a GetObject response.
6
7
  *
@@ -12,7 +13,8 @@ import { simS3QuotedETag } from "../../object/s3-object-etag.js";
12
13
  * response is a representation of the stored Object:
13
14
  *
14
15
  * - a missing storage entry becomes the S3 NoSuchKey error;
15
- * - the stored Buffer becomes the readable response body;
16
+ * - the stored Buffer, or the part of it the read asked for, becomes the
17
+ * readable response body;
16
18
  * - stored metadata becomes SDK response metadata;
17
19
  * - the Object's content hash and write time become its ETag and LastModified.
18
20
  *
@@ -21,18 +23,31 @@ import { simS3QuotedETag } from "../../object/s3-object-etag.js";
21
23
  */
22
24
  export class GetObjectLoader {
23
25
  /**
24
- * Read an Object from the resolved Bucket and build its SDK command output.
26
+ * Read an Object, or the range of it that was asked for, from the resolved
27
+ * Bucket, and build its SDK command output.
25
28
  */
26
- async load(bucket, key) {
29
+ async load(bucket, key, rangeHeader) {
27
30
  const object = await bucket.getObject(key);
28
31
  if (object === undefined) {
29
32
  throw new SimS3NoSuchKey(`No S3 Object named ${key}`);
30
33
  }
34
+ const size = object.body.length;
35
+ const range = simS3ReadObjectRange(rangeHeader, size);
36
+ const body = range === undefined
37
+ ? object.body
38
+ : object.body.subarray(range.start, range.end + 1);
31
39
  return {
32
- Body: Readable.from([object.body]),
40
+ Body: Readable.from([body]),
33
41
  Metadata: object.metadata.values,
42
+ // The ETag identifies the Object rather than the bytes being sent. A
43
+ // client reading it in pieces compares the value across them to see
44
+ // whether the Object changed underneath it.
34
45
  ETag: simS3QuotedETag(object.etag),
35
46
  LastModified: object.lastModified,
47
+ ContentLength: body.length,
48
+ ...(range !== undefined && {
49
+ ContentRange: simS3ContentRange(range, size),
50
+ }),
36
51
  $metadata: {},
37
52
  };
38
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-object-loader.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/get-object/get-object-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,eAAe;IAC1B;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,MAAmB,EACnB,GAAW;QAEX,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,cAAc,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YAChC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC;YAClC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"get-object-loader.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/get-object/get-object-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AAGzC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,eAAe;IAC1B;;;OAGG;IACH,KAAK,CAAC,IAAI,CACR,MAAmB,EACnB,GAAW,EACX,WAAoB;QAEpB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,cAAc,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,IAAI,GACR,KAAK,KAAK,SAAS;YACjB,CAAC,CAAC,MAAM,CAAC,IAAI;YACb,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAEvD,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YAChC,qEAAqE;YACrE,oEAAoE;YACpE,4CAA4C;YAC5C,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC;YAClC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,aAAa,EAAE,IAAI,CAAC,MAAM;YAC1B,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI;gBACzB,YAAY,EAAE,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC;aAC7C,CAAC;YACF,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
@@ -12,18 +12,31 @@ export interface SimGetObjectCommand {
12
12
  export interface SimGetObjectCommandInput {
13
13
  readonly Bucket?: string | undefined;
14
14
  readonly Key?: string | undefined;
15
+ /**
16
+ * The bytes of the Object to read, as an HTTP `Range` header: `bytes=0-499`,
17
+ * `bytes=500-` or `bytes=-500`. A read that states no range reads the whole
18
+ * Object.
19
+ */
20
+ readonly Range?: string | undefined;
15
21
  }
16
22
  /**
17
23
  * Minimal structural sim S3 GetObject output.
18
24
  *
19
25
  * `ETag` is quoted, as real S3 and the SDK give it. `LastModified` is when the
20
26
  * Object was written, by the simulation's clock.
27
+ *
28
+ * `ContentLength` describes the body being sent rather than the Object, so a
29
+ * ranged read reports the size of its slice. `ContentRange` says which bytes
30
+ * of the Object those are, and is set only for a read that asked for some of
31
+ * them.
21
32
  */
22
33
  export interface SimGetObjectCommandOutput {
23
34
  readonly Body?: Readable;
24
35
  readonly Metadata?: Record<string, string>;
25
36
  readonly ETag?: string;
26
37
  readonly LastModified?: Date;
38
+ readonly ContentLength?: number;
39
+ readonly ContentRange?: string;
27
40
  readonly $metadata: SimResponseMetadata;
28
41
  }
29
42
  //# sourceMappingURL=get-object.command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-object.command.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/get-object/get-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;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC"}
1
+ {"version":3,"file":"get-object.command.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/get-object/get-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;;GAEG;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;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC"}
@@ -30,6 +30,9 @@ export declare class GetObjectCommandHandler implements CommandHandler<SimGetObj
30
30
  * - authorization occurs before key lookup so denied callers cannot determine
31
31
  * whether an Object exists;
32
32
  * - the loader performs storage access only after authorization succeeds.
33
+ *
34
+ * A stated `Range` reaches the loader with the key, since which bytes of an
35
+ * Object a caller may read is not something IAM decides.
33
36
  */
34
37
  handle(command: SimGetObjectCommand, options?: SimS3RequestOptions): Promise<SimGetObjectCommandOutput>;
35
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-object.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/get-object/get-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;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,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;CAC3C;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,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,YAAY,UAAU,EAAE,iCAAiC,EASxD;IAED;;;;;;;;;;OAUG;IACG,MAAM,CACV,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,yBAAyB,CAAC,CAgBpC;CACF"}
1
+ {"version":3,"file":"get-object.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/get-object/get-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;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,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;CAC3C;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,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,YAAY,UAAU,EAAE,iCAAiC,EASxD;IAED;;;;;;;;;;;;;OAaG;IACG,MAAM,CACV,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,yBAAyB,CAAC,CAoBpC;CACF"}
@@ -30,6 +30,9 @@ export class GetObjectCommandHandler {
30
30
  * - authorization occurs before key lookup so denied callers cannot determine
31
31
  * whether an Object exists;
32
32
  * - the loader performs storage access only after authorization succeeds.
33
+ *
34
+ * A stated `Range` reaches the loader with the key, since which bytes of an
35
+ * Object a caller may read is not something IAM decides.
33
36
  */
34
37
  async handle(command, options) {
35
38
  assertDefined(command.input.Bucket, "GetObjectCommand.input.Bucket");
@@ -42,7 +45,7 @@ export class GetObjectCommandHandler {
42
45
  // Complete request sequencing before authorization and storage access.
43
46
  await this.background.sequence();
44
47
  this.authorizer.authorize(bucket, command.input.Key, options);
45
- return await this.loader.load(bucket, command.input.Key);
48
+ return await this.loader.load(bucket, command.input.Key, command.input.Range);
46
49
  }
47
50
  }
48
51
  //# sourceMappingURL=get-object.handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-object.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/get-object/get-object.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,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQzD;;;;GAIG;AACH,MAAM,OAAO,uBAAuB;IAIjB,OAAO,CAAoC;IAC3C,UAAU,CAAsB;IAChC,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IAC/B,UAAU,CAAsB;IAEjD,YAAY,UAA6C;QACvD,MAAM,EACJ,OAAO,EACP,GAAG,GAAG,IAAI,kBAAkB,EAAE,EAC9B,UAAU,GAAG,IAAI,eAAe,EAAE,GACnC,GAAG,UAAU,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,CACV,OAA4B,EAC5B,OAA6B;QAE7B,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QACrE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;QAE/D,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,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE9D,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC;CACF"}
1
+ {"version":3,"file":"get-object.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/get-object/get-object.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,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQzD;;;;GAIG;AACH,MAAM,OAAO,uBAAuB;IAIjB,OAAO,CAAoC;IAC3C,UAAU,CAAsB;IAChC,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IAC/B,UAAU,CAAsB;IAEjD,YAAY,UAA6C;QACvD,MAAM,EACJ,OAAO,EACP,GAAG,GAAG,IAAI,kBAAkB,EAAE,EAC9B,UAAU,GAAG,IAAI,eAAe,EAAE,GACnC,GAAG,UAAU,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,MAAM,CACV,OAA4B,EAC5B,OAA6B;QAE7B,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QACrE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;QAE/D,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,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE9D,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAC3B,MAAM,EACN,OAAO,CAAC,KAAK,CAAC,GAAG,EACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CACpB,CAAC;IACJ,CAAC;CACF"}
@@ -154,4 +154,17 @@ export declare class SimS3InvalidPartOrder extends SimS3Error {
154
154
  readonly name = "InvalidPartOrder";
155
155
  constructor(message: string);
156
156
  }
157
+ /**
158
+ * Simulated S3 InvalidRange error.
159
+ *
160
+ * A read whose `Range` names bytes the Object does not hold, which real S3
161
+ * refuses with `416 Range Not Satisfiable` rather than answering with the
162
+ * bytes it does hold. A client that asked for a range it cannot have has
163
+ * misjudged the Object's size, and reading a different slice than the one it
164
+ * asked for would leave it assembling a file out of the wrong pieces.
165
+ */
166
+ export declare class SimS3InvalidRange extends SimS3Error {
167
+ readonly name = "InvalidRange";
168
+ constructor(message: string);
169
+ }
157
170
  //# sourceMappingURL=sim-s3.error.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3.error.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/error/sim-s3.error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;aAGjB,SAAS,EAAE,kBAAkB;IAF/C,YACE,OAAO,EAAE,MAAM,EACC,SAAS,GAAE,kBAAuB,EAGnD;CACF;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;IAC/C,SAAyB,IAAI,kBAAkB;IAE/C,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC5C,SAAyB,IAAI,eAAe;IAE5C,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;;GAOG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAC3C,SAAyB,IAAI,cAAc;IAE3C,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,uBAAwB,SAAQ,UAAU;IACrD,SAAyB,IAAI,wBAAwB;IAErD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;IAC/C,SAAyB,IAAI,kBAAkB;IAE/C,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,UAAU;IACtD,SAAyB,IAAI,yBAAyB;IAEtD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,UAAU;IAC1D,SAAyB,IAAI,6BAA6B;IAE1D,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;IACjD,SAAyB,IAAI,oBAAoB;IAEjD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;IAC/C,SAAyB,IAAI,kBAAkB;IAE/C,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,UAAU;IAClD,SAAyB,IAAI,qBAAqB;IAElD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;IACjD,SAAyB,IAAI,oBAAoB;IAEjD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,UAAU;IACpD,SAAyB,IAAI,uBAAuB;IAEpD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;IAC/C,SAAyB,IAAI,kBAAkB;IAE/C,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;;GAOG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,SAAyB,IAAI,iBAAiB;IAE9C,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,UAAU;IACnD,SAAyB,IAAI,sBAAsB;IAEnD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF"}
1
+ {"version":3,"file":"sim-s3.error.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/error/sim-s3.error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;aAGjB,SAAS,EAAE,kBAAkB;IAF/C,YACE,OAAO,EAAE,MAAM,EACC,SAAS,GAAE,kBAAuB,EAGnD;CACF;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;IAC/C,SAAyB,IAAI,kBAAkB;IAE/C,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC5C,SAAyB,IAAI,eAAe;IAE5C,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;;GAOG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAC3C,SAAyB,IAAI,cAAc;IAE3C,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,uBAAwB,SAAQ,UAAU;IACrD,SAAyB,IAAI,wBAAwB;IAErD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;IAC/C,SAAyB,IAAI,kBAAkB;IAE/C,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,UAAU;IACtD,SAAyB,IAAI,yBAAyB;IAEtD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,UAAU;IAC1D,SAAyB,IAAI,6BAA6B;IAE1D,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;IACjD,SAAyB,IAAI,oBAAoB;IAEjD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;IAC/C,SAAyB,IAAI,kBAAkB;IAE/C,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,UAAU;IAClD,SAAyB,IAAI,qBAAqB;IAElD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;IACjD,SAAyB,IAAI,oBAAoB;IAEjD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,UAAU;IACpD,SAAyB,IAAI,uBAAuB;IAEpD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;IAC/C,SAAyB,IAAI,kBAAkB;IAE/C,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;;GAOG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,SAAyB,IAAI,iBAAiB;IAE9C,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,UAAU;IACnD,SAAyB,IAAI,sBAAsB;IAEnD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;;;GAQG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;IAC/C,SAAyB,IAAI,kBAAkB;IAE/C,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF"}
@@ -181,4 +181,19 @@ export class SimS3InvalidPartOrder extends SimS3Error {
181
181
  super(message, { httpStatusCode: 400 });
182
182
  }
183
183
  }
184
+ /**
185
+ * Simulated S3 InvalidRange error.
186
+ *
187
+ * A read whose `Range` names bytes the Object does not hold, which real S3
188
+ * refuses with `416 Range Not Satisfiable` rather than answering with the
189
+ * bytes it does hold. A client that asked for a range it cannot have has
190
+ * misjudged the Object's size, and reading a different slice than the one it
191
+ * asked for would leave it assembling a file out of the wrong pieces.
192
+ */
193
+ export class SimS3InvalidRange extends SimS3Error {
194
+ name = "InvalidRange";
195
+ constructor(message) {
196
+ super(message, { httpStatusCode: 416 });
197
+ }
198
+ }
184
199
  //# sourceMappingURL=sim-s3.error.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3.error.js","sourceRoot":"","sources":["../../../../src/service/s3/error/sim-s3.error.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-s3.error.js","sourceRoot":"","sources":["../../../../src/service/s3/error/sim-s3.error.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * The bytes of an Object a read asked for, as offsets into it.
3
+ */
4
+ export interface SimS3ObjectRange {
5
+ readonly start: number;
6
+ /** Inclusive, as the last byte of an HTTP byte range is. */
7
+ readonly end: number;
8
+ }
9
+ /**
10
+ * Resolve the `Range` of a read against the Object it was sent for.
11
+ *
12
+ * `undefined` means the whole Object, and covers both a read that asked for no
13
+ * range and one whose `Range` S3 does not answer. HTTP has an unsatisfiable
14
+ * range refused and an unreadable one ignored, and S3 follows it. A range S3
15
+ * cannot make sense of leaves the response as it would have been without it.
16
+ * A range naming bytes the Object does not hold is refused outright.
17
+ *
18
+ * https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
19
+ */
20
+ export declare function simS3ReadObjectRange(header: string | undefined, size: number): SimS3ObjectRange | undefined;
21
+ /**
22
+ * How a response describes the bytes it carries. It names them by offset, and
23
+ * gives the size of the Object they came from.
24
+ */
25
+ export declare function simS3ContentRange(range: SimS3ObjectRange, size: number): string;
26
+ //# sourceMappingURL=s3-object-range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3-object-range.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/object/s3-object-range.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAaD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,MAAM,GACX,gBAAgB,GAAG,SAAS,CAiB9B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,MAAM,GACX,MAAM,CAER"}