@aws-amplify/storage 6.6.0 → 6.6.1-storage-browser.37d5283.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/dist/cjs/errors/constants.js +8 -0
  2. package/dist/cjs/errors/constants.js.map +1 -0
  3. package/dist/cjs/errors/types/validation.js +20 -0
  4. package/dist/cjs/errors/types/validation.js.map +1 -1
  5. package/dist/cjs/providers/s3/apis/downloadData.js +3 -3
  6. package/dist/cjs/providers/s3/apis/downloadData.js.map +1 -1
  7. package/dist/cjs/providers/s3/apis/internal/copy.js +59 -14
  8. package/dist/cjs/providers/s3/apis/internal/copy.js.map +1 -1
  9. package/dist/cjs/providers/s3/apis/internal/getProperties.js +3 -4
  10. package/dist/cjs/providers/s3/apis/internal/getProperties.js.map +1 -1
  11. package/dist/cjs/providers/s3/apis/internal/getUrl.js +3 -3
  12. package/dist/cjs/providers/s3/apis/internal/getUrl.js.map +1 -1
  13. package/dist/cjs/providers/s3/apis/internal/list.js +4 -4
  14. package/dist/cjs/providers/s3/apis/internal/list.js.map +1 -1
  15. package/dist/cjs/providers/s3/apis/internal/remove.js +3 -4
  16. package/dist/cjs/providers/s3/apis/internal/remove.js.map +1 -1
  17. package/dist/cjs/providers/s3/apis/uploadData/multipart/initialUpload.js +22 -2
  18. package/dist/cjs/providers/s3/apis/uploadData/multipart/initialUpload.js.map +1 -1
  19. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadCache.js +3 -2
  20. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadCache.js.map +1 -1
  21. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadHandlers.js +19 -8
  22. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadHandlers.js.map +1 -1
  23. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadPartExecutor.js +20 -11
  24. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadPartExecutor.js.map +1 -1
  25. package/dist/cjs/providers/s3/apis/uploadData/putObjectJob.js +20 -7
  26. package/dist/cjs/providers/s3/apis/uploadData/putObjectJob.js.map +1 -1
  27. package/dist/cjs/providers/s3/apis/uploadData/validateObjectNotExists.js +25 -0
  28. package/dist/cjs/providers/s3/apis/uploadData/validateObjectNotExists.js.map +1 -0
  29. package/dist/cjs/providers/s3/utils/client/s3control/base.js +45 -0
  30. package/dist/cjs/providers/s3/utils/client/s3control/base.js.map +1 -0
  31. package/dist/cjs/providers/s3/utils/client/s3control/getDataAccess.js +58 -0
  32. package/dist/cjs/providers/s3/utils/client/s3control/getDataAccess.js.map +1 -0
  33. package/dist/cjs/providers/s3/utils/client/s3control/index.js +11 -0
  34. package/dist/cjs/providers/s3/utils/client/s3control/index.js.map +1 -0
  35. package/dist/cjs/providers/s3/utils/client/s3control/listCallerAccessGrants.js +59 -0
  36. package/dist/cjs/providers/s3/utils/client/s3control/listCallerAccessGrants.js.map +1 -0
  37. package/dist/cjs/providers/s3/utils/client/s3control/types.js.map +1 -0
  38. package/dist/cjs/providers/s3/utils/client/{abortMultipartUpload.js → s3data/abortMultipartUpload.js} +1 -1
  39. package/dist/cjs/providers/s3/utils/client/s3data/abortMultipartUpload.js.map +1 -0
  40. package/dist/cjs/providers/s3/utils/client/{base.js → s3data/base.js} +2 -2
  41. package/dist/cjs/providers/s3/utils/client/s3data/base.js.map +1 -0
  42. package/dist/cjs/providers/s3/utils/client/{completeMultipartUpload.js → s3data/completeMultipartUpload.js} +14 -9
  43. package/dist/cjs/providers/s3/utils/client/s3data/completeMultipartUpload.js.map +1 -0
  44. package/dist/cjs/providers/s3/utils/client/{copyObject.js → s3data/copyObject.js} +1 -1
  45. package/dist/cjs/providers/s3/utils/client/s3data/copyObject.js.map +1 -0
  46. package/dist/cjs/providers/s3/utils/client/{createMultipartUpload.js → s3data/createMultipartUpload.js} +7 -2
  47. package/dist/cjs/providers/s3/utils/client/s3data/createMultipartUpload.js.map +1 -0
  48. package/dist/cjs/providers/s3/utils/client/{deleteObject.js → s3data/deleteObject.js} +1 -1
  49. package/dist/cjs/providers/s3/utils/client/s3data/deleteObject.js.map +1 -0
  50. package/dist/cjs/providers/s3/utils/client/{getObject.js → s3data/getObject.js} +1 -1
  51. package/dist/cjs/providers/s3/utils/client/s3data/getObject.js.map +1 -0
  52. package/dist/cjs/providers/s3/utils/client/{headObject.js → s3data/headObject.js} +1 -1
  53. package/dist/cjs/providers/s3/utils/client/s3data/headObject.js.map +1 -0
  54. package/dist/cjs/providers/s3/utils/client/s3data/index.js.map +1 -0
  55. package/dist/cjs/providers/s3/utils/client/{listObjectsV2.js → s3data/listObjectsV2.js} +1 -1
  56. package/dist/cjs/providers/s3/utils/client/s3data/listObjectsV2.js.map +1 -0
  57. package/dist/cjs/providers/s3/utils/client/{listParts.js → s3data/listParts.js} +2 -1
  58. package/dist/cjs/providers/s3/utils/client/s3data/listParts.js.map +1 -0
  59. package/dist/cjs/providers/s3/utils/client/{putObject.js → s3data/putObject.js} +2 -1
  60. package/dist/cjs/providers/s3/utils/client/s3data/putObject.js.map +1 -0
  61. package/dist/cjs/providers/s3/utils/client/s3data/types.js +6 -0
  62. package/dist/cjs/providers/s3/utils/client/s3data/types.js.map +1 -0
  63. package/dist/cjs/providers/s3/utils/client/{uploadPart.js → s3data/uploadPart.js} +3 -2
  64. package/dist/cjs/providers/s3/utils/client/s3data/uploadPart.js.map +1 -0
  65. package/dist/cjs/providers/s3/utils/client/utils/index.js +3 -1
  66. package/dist/cjs/providers/s3/utils/client/utils/index.js.map +1 -1
  67. package/dist/cjs/providers/s3/utils/client/utils/retryDecider.js +61 -0
  68. package/dist/cjs/providers/s3/utils/client/utils/retryDecider.js.map +1 -0
  69. package/dist/cjs/providers/s3/utils/crc32.js +37 -0
  70. package/dist/cjs/providers/s3/utils/crc32.js.map +1 -0
  71. package/dist/cjs/providers/s3/utils/crc32.native.js +11 -0
  72. package/dist/cjs/providers/s3/utils/crc32.native.js.map +1 -0
  73. package/dist/cjs/providers/s3/utils/resolveIdentityId.js +14 -0
  74. package/dist/cjs/providers/s3/utils/resolveIdentityId.js.map +1 -0
  75. package/dist/cjs/providers/s3/utils/resolveS3ConfigAndInput.js +74 -14
  76. package/dist/cjs/providers/s3/utils/resolveS3ConfigAndInput.js.map +1 -1
  77. package/dist/cjs/providers/s3/utils/validateStorageOperationInput.js +4 -1
  78. package/dist/cjs/providers/s3/utils/validateStorageOperationInput.js.map +1 -1
  79. package/dist/cjs/providers/s3/utils/validateStorageOperationInputWithPrefix.js +4 -1
  80. package/dist/cjs/providers/s3/utils/validateStorageOperationInputWithPrefix.js.map +1 -1
  81. package/dist/cjs/storageBrowser/apis/constants.js +9 -0
  82. package/dist/cjs/storageBrowser/apis/constants.js.map +1 -0
  83. package/dist/cjs/storageBrowser/apis/getDataAccess.js +57 -0
  84. package/dist/cjs/storageBrowser/apis/getDataAccess.js.map +1 -0
  85. package/dist/cjs/storageBrowser/apis/listCallerAccessGrants.js +79 -0
  86. package/dist/cjs/storageBrowser/apis/listCallerAccessGrants.js.map +1 -0
  87. package/dist/cjs/storageBrowser/apis/types.js +6 -0
  88. package/dist/cjs/storageBrowser/apis/types.js.map +1 -0
  89. package/dist/cjs/storageBrowser/index.js +11 -0
  90. package/dist/cjs/storageBrowser/index.js.map +1 -0
  91. package/dist/cjs/storageBrowser/locationCredentialsStore/constants.js +9 -0
  92. package/dist/cjs/storageBrowser/locationCredentialsStore/constants.js.map +1 -0
  93. package/dist/cjs/storageBrowser/locationCredentialsStore/create.js +36 -0
  94. package/dist/cjs/storageBrowser/locationCredentialsStore/create.js.map +1 -0
  95. package/dist/cjs/storageBrowser/locationCredentialsStore/index.js +9 -0
  96. package/dist/cjs/storageBrowser/locationCredentialsStore/index.js.map +1 -0
  97. package/dist/cjs/storageBrowser/locationCredentialsStore/registry.js +58 -0
  98. package/dist/cjs/storageBrowser/locationCredentialsStore/registry.js.map +1 -0
  99. package/dist/cjs/storageBrowser/locationCredentialsStore/store.js +99 -0
  100. package/dist/cjs/storageBrowser/locationCredentialsStore/store.js.map +1 -0
  101. package/dist/cjs/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.js +15 -0
  102. package/dist/cjs/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.js.map +1 -0
  103. package/dist/cjs/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.js +29 -0
  104. package/dist/cjs/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.js.map +1 -0
  105. package/dist/cjs/storageBrowser/managedAuthConfigAdapter/createManagedAuthConfigAdapter.js +32 -0
  106. package/dist/cjs/storageBrowser/managedAuthConfigAdapter/createManagedAuthConfigAdapter.js.map +1 -0
  107. package/dist/cjs/storageBrowser/managedAuthConfigAdapter/index.js +9 -0
  108. package/dist/cjs/storageBrowser/managedAuthConfigAdapter/index.js.map +1 -0
  109. package/dist/cjs/storageBrowser/types.js +6 -0
  110. package/dist/cjs/storageBrowser/types.js.map +1 -0
  111. package/dist/esm/errors/constants.d.ts +1 -0
  112. package/dist/esm/errors/constants.mjs +6 -0
  113. package/dist/esm/errors/constants.mjs.map +1 -0
  114. package/dist/esm/errors/types/validation.d.ts +6 -1
  115. package/dist/esm/errors/types/validation.mjs +20 -0
  116. package/dist/esm/errors/types/validation.mjs.map +1 -1
  117. package/dist/esm/providers/s3/apis/downloadData.mjs +13 -13
  118. package/dist/esm/providers/s3/apis/downloadData.mjs.map +1 -1
  119. package/dist/esm/providers/s3/apis/internal/copy.mjs +69 -24
  120. package/dist/esm/providers/s3/apis/internal/copy.mjs.map +1 -1
  121. package/dist/esm/providers/s3/apis/internal/getProperties.mjs +13 -14
  122. package/dist/esm/providers/s3/apis/internal/getProperties.mjs.map +1 -1
  123. package/dist/esm/providers/s3/apis/internal/getUrl.mjs +13 -13
  124. package/dist/esm/providers/s3/apis/internal/getUrl.mjs.map +1 -1
  125. package/dist/esm/providers/s3/apis/internal/list.mjs +13 -13
  126. package/dist/esm/providers/s3/apis/internal/list.mjs.map +1 -1
  127. package/dist/esm/providers/s3/apis/internal/remove.mjs +13 -14
  128. package/dist/esm/providers/s3/apis/internal/remove.mjs.map +1 -1
  129. package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.d.ts +2 -1
  130. package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.mjs +32 -12
  131. package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.mjs.map +1 -1
  132. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.d.ts +3 -1
  133. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.mjs +13 -12
  134. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.mjs.map +1 -1
  135. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.mjs +27 -16
  136. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.mjs.map +1 -1
  137. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadPartExecutor.d.ts +3 -2
  138. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadPartExecutor.mjs +27 -18
  139. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadPartExecutor.mjs.map +1 -1
  140. package/dist/esm/providers/s3/apis/uploadData/putObjectJob.mjs +30 -17
  141. package/dist/esm/providers/s3/apis/uploadData/putObjectJob.mjs.map +1 -1
  142. package/dist/esm/providers/s3/apis/uploadData/validateObjectNotExists.d.ts +3 -0
  143. package/dist/esm/providers/s3/apis/uploadData/validateObjectNotExists.mjs +34 -0
  144. package/dist/esm/providers/s3/apis/uploadData/validateObjectNotExists.mjs.map +1 -0
  145. package/dist/esm/providers/s3/types/index.d.ts +1 -1
  146. package/dist/esm/providers/s3/types/inputs.d.ts +5 -2
  147. package/dist/esm/providers/s3/types/options.d.ts +38 -1
  148. package/dist/esm/providers/s3/utils/client/s3control/base.d.ts +31 -0
  149. package/dist/esm/providers/s3/utils/client/s3control/base.mjs +48 -0
  150. package/dist/esm/providers/s3/utils/client/s3control/base.mjs.map +1 -0
  151. package/dist/esm/providers/s3/utils/client/s3control/getDataAccess.d.ts +26 -0
  152. package/dist/esm/providers/s3/utils/client/s3control/getDataAccess.mjs +63 -0
  153. package/dist/esm/providers/s3/utils/client/s3control/getDataAccess.mjs.map +1 -0
  154. package/dist/esm/providers/s3/utils/client/s3control/index.d.ts +2 -0
  155. package/dist/esm/providers/s3/utils/client/s3control/index.mjs +3 -0
  156. package/dist/esm/providers/s3/utils/client/s3control/index.mjs.map +1 -0
  157. package/dist/esm/providers/s3/utils/client/s3control/listCallerAccessGrants.d.ts +26 -0
  158. package/dist/esm/providers/s3/utils/client/s3control/listCallerAccessGrants.mjs +64 -0
  159. package/dist/esm/providers/s3/utils/client/s3control/listCallerAccessGrants.mjs.map +1 -0
  160. package/dist/esm/providers/s3/utils/client/s3control/types.d.ts +176 -0
  161. package/dist/esm/providers/s3/utils/client/{abortMultipartUpload.d.ts → s3data/abortMultipartUpload.d.ts} +4 -4
  162. package/dist/esm/providers/s3/utils/client/{abortMultipartUpload.mjs → s3data/abortMultipartUpload.mjs} +6 -6
  163. package/dist/esm/providers/s3/utils/client/s3data/abortMultipartUpload.mjs.map +1 -0
  164. package/dist/esm/providers/s3/utils/client/{base.d.ts → s3data/base.d.ts} +1 -1
  165. package/dist/esm/providers/s3/utils/client/{base.mjs → s3data/base.mjs} +5 -5
  166. package/dist/esm/providers/s3/utils/client/s3data/base.mjs.map +1 -0
  167. package/dist/esm/providers/s3/utils/client/{completeMultipartUpload.d.ts → s3data/completeMultipartUpload.d.ts} +6 -6
  168. package/dist/esm/providers/s3/utils/client/{completeMultipartUpload.mjs → s3data/completeMultipartUpload.mjs} +20 -14
  169. package/dist/esm/providers/s3/utils/client/s3data/completeMultipartUpload.mjs.map +1 -0
  170. package/dist/esm/providers/s3/utils/client/{copyObject.d.ts → s3data/copyObject.d.ts} +4 -4
  171. package/dist/esm/providers/s3/utils/client/{copyObject.mjs → s3data/copyObject.mjs} +6 -6
  172. package/dist/esm/providers/s3/utils/client/s3data/copyObject.mjs.map +1 -0
  173. package/dist/esm/providers/s3/utils/client/{createMultipartUpload.d.ts → s3data/createMultipartUpload.d.ts} +4 -4
  174. package/dist/esm/providers/s3/utils/client/{createMultipartUpload.mjs → s3data/createMultipartUpload.mjs} +12 -7
  175. package/dist/esm/providers/s3/utils/client/s3data/createMultipartUpload.mjs.map +1 -0
  176. package/dist/esm/providers/s3/utils/client/{deleteObject.d.ts → s3data/deleteObject.d.ts} +4 -4
  177. package/dist/esm/providers/s3/utils/client/{deleteObject.mjs → s3data/deleteObject.mjs} +6 -6
  178. package/dist/esm/providers/s3/utils/client/s3data/deleteObject.mjs.map +1 -0
  179. package/dist/esm/providers/s3/utils/client/{getObject.d.ts → s3data/getObject.d.ts} +4 -4
  180. package/dist/esm/providers/s3/utils/client/{getObject.mjs → s3data/getObject.mjs} +7 -7
  181. package/dist/esm/providers/s3/utils/client/s3data/getObject.mjs.map +1 -0
  182. package/dist/esm/providers/s3/utils/client/{headObject.d.ts → s3data/headObject.d.ts} +4 -4
  183. package/dist/esm/providers/s3/utils/client/{headObject.mjs → s3data/headObject.mjs} +6 -6
  184. package/dist/esm/providers/s3/utils/client/s3data/headObject.mjs.map +1 -0
  185. package/dist/esm/providers/s3/utils/client/{listObjectsV2.d.ts → s3data/listObjectsV2.d.ts} +4 -4
  186. package/dist/esm/providers/s3/utils/client/{listObjectsV2.mjs → s3data/listObjectsV2.mjs} +6 -6
  187. package/dist/esm/providers/s3/utils/client/s3data/listObjectsV2.mjs.map +1 -0
  188. package/dist/esm/providers/s3/utils/client/{listParts.d.ts → s3data/listParts.d.ts} +4 -4
  189. package/dist/esm/providers/s3/utils/client/{listParts.mjs → s3data/listParts.mjs} +7 -6
  190. package/dist/esm/providers/s3/utils/client/s3data/listParts.mjs.map +1 -0
  191. package/dist/esm/providers/s3/utils/client/{putObject.d.ts → s3data/putObject.d.ts} +5 -5
  192. package/dist/esm/providers/s3/utils/client/{putObject.mjs → s3data/putObject.mjs} +7 -6
  193. package/dist/esm/providers/s3/utils/client/s3data/putObject.mjs.map +1 -0
  194. package/dist/esm/providers/s3/utils/client/s3data/types.mjs +2 -0
  195. package/dist/esm/providers/s3/utils/client/s3data/types.mjs.map +1 -0
  196. package/dist/esm/providers/s3/utils/client/{uploadPart.d.ts → s3data/uploadPart.d.ts} +5 -5
  197. package/dist/esm/providers/s3/utils/client/{uploadPart.mjs → s3data/uploadPart.mjs} +8 -7
  198. package/dist/esm/providers/s3/utils/client/s3data/uploadPart.mjs.map +1 -0
  199. package/dist/esm/providers/s3/utils/client/utils/index.d.ts +1 -0
  200. package/dist/esm/providers/s3/utils/client/utils/index.mjs +1 -0
  201. package/dist/esm/providers/s3/utils/client/utils/index.mjs.map +1 -1
  202. package/dist/esm/providers/s3/utils/client/utils/retryDecider.d.ts +13 -0
  203. package/dist/esm/providers/s3/utils/client/utils/retryDecider.mjs +59 -0
  204. package/dist/esm/providers/s3/utils/client/utils/retryDecider.mjs.map +1 -0
  205. package/dist/esm/providers/s3/utils/crc32.d.ts +6 -0
  206. package/dist/esm/providers/s3/utils/crc32.mjs +34 -0
  207. package/dist/esm/providers/s3/utils/crc32.mjs.map +1 -0
  208. package/dist/esm/providers/s3/utils/crc32.native.d.ts +2 -0
  209. package/dist/esm/providers/s3/utils/crc32.native.mjs +8 -0
  210. package/dist/esm/providers/s3/utils/crc32.native.mjs.map +1 -0
  211. package/dist/esm/providers/s3/utils/resolveIdentityId.d.ts +1 -0
  212. package/dist/esm/providers/s3/utils/resolveIdentityId.mjs +12 -0
  213. package/dist/esm/providers/s3/utils/resolveIdentityId.mjs.map +1 -0
  214. package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.d.ts +11 -2
  215. package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.mjs +72 -12
  216. package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.mjs.map +1 -1
  217. package/dist/esm/providers/s3/utils/validateStorageOperationInput.mjs +4 -1
  218. package/dist/esm/providers/s3/utils/validateStorageOperationInput.mjs.map +1 -1
  219. package/dist/esm/providers/s3/utils/validateStorageOperationInputWithPrefix.mjs +4 -1
  220. package/dist/esm/providers/s3/utils/validateStorageOperationInputWithPrefix.mjs.map +1 -1
  221. package/dist/esm/storageBrowser/apis/constants.d.ts +2 -0
  222. package/dist/esm/storageBrowser/apis/constants.mjs +7 -0
  223. package/dist/esm/storageBrowser/apis/constants.mjs.map +1 -0
  224. package/dist/esm/storageBrowser/apis/getDataAccess.d.ts +2 -0
  225. package/dist/esm/storageBrowser/apis/getDataAccess.mjs +57 -0
  226. package/dist/esm/storageBrowser/apis/getDataAccess.mjs.map +1 -0
  227. package/dist/esm/storageBrowser/apis/listCallerAccessGrants.d.ts +2 -0
  228. package/dist/esm/storageBrowser/apis/listCallerAccessGrants.mjs +79 -0
  229. package/dist/esm/storageBrowser/apis/listCallerAccessGrants.mjs.map +1 -0
  230. package/dist/esm/storageBrowser/apis/types.d.ts +18 -0
  231. package/dist/esm/storageBrowser/apis/types.mjs +2 -0
  232. package/dist/esm/storageBrowser/apis/types.mjs.map +1 -0
  233. package/dist/esm/storageBrowser/index.d.ts +6 -0
  234. package/dist/esm/storageBrowser/index.mjs +3 -0
  235. package/dist/esm/storageBrowser/index.mjs.map +1 -0
  236. package/dist/esm/storageBrowser/locationCredentialsStore/constants.d.ts +2 -0
  237. package/dist/esm/storageBrowser/locationCredentialsStore/constants.mjs +7 -0
  238. package/dist/esm/storageBrowser/locationCredentialsStore/constants.mjs.map +1 -0
  239. package/dist/esm/storageBrowser/locationCredentialsStore/create.d.ts +2 -0
  240. package/dist/esm/storageBrowser/locationCredentialsStore/create.mjs +34 -0
  241. package/dist/esm/storageBrowser/locationCredentialsStore/create.mjs.map +1 -0
  242. package/dist/esm/storageBrowser/locationCredentialsStore/index.d.ts +1 -0
  243. package/dist/esm/storageBrowser/locationCredentialsStore/index.mjs +2 -0
  244. package/dist/esm/storageBrowser/locationCredentialsStore/index.mjs.map +1 -0
  245. package/dist/esm/storageBrowser/locationCredentialsStore/registry.d.ts +23 -0
  246. package/dist/esm/storageBrowser/locationCredentialsStore/registry.mjs +54 -0
  247. package/dist/esm/storageBrowser/locationCredentialsStore/registry.mjs.map +1 -0
  248. package/dist/esm/storageBrowser/locationCredentialsStore/store.d.ts +35 -0
  249. package/dist/esm/storageBrowser/locationCredentialsStore/store.mjs +95 -0
  250. package/dist/esm/storageBrowser/locationCredentialsStore/store.mjs.map +1 -0
  251. package/dist/esm/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.d.ts +8 -0
  252. package/dist/esm/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.mjs +13 -0
  253. package/dist/esm/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.mjs.map +1 -0
  254. package/dist/esm/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.d.ts +8 -0
  255. package/dist/esm/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.mjs +27 -0
  256. package/dist/esm/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.mjs.map +1 -0
  257. package/dist/esm/storageBrowser/managedAuthConfigAdapter/createManagedAuthConfigAdapter.d.ts +19 -0
  258. package/dist/esm/storageBrowser/managedAuthConfigAdapter/createManagedAuthConfigAdapter.mjs +30 -0
  259. package/dist/esm/storageBrowser/managedAuthConfigAdapter/createManagedAuthConfigAdapter.mjs.map +1 -0
  260. package/dist/esm/storageBrowser/managedAuthConfigAdapter/index.d.ts +1 -0
  261. package/dist/esm/storageBrowser/managedAuthConfigAdapter/index.mjs +2 -0
  262. package/dist/esm/storageBrowser/managedAuthConfigAdapter/index.mjs.map +1 -0
  263. package/dist/esm/storageBrowser/types.d.ts +92 -0
  264. package/dist/esm/storageBrowser/types.mjs +2 -0
  265. package/dist/esm/storageBrowser/types.mjs.map +1 -0
  266. package/dist/esm/types/inputs.d.ts +3 -3
  267. package/package.json +117 -107
  268. package/src/errors/constants.ts +4 -0
  269. package/src/errors/types/validation.ts +21 -0
  270. package/src/providers/s3/apis/downloadData.ts +2 -2
  271. package/src/providers/s3/apis/internal/copy.ts +77 -23
  272. package/src/providers/s3/apis/internal/getProperties.ts +2 -3
  273. package/src/providers/s3/apis/internal/getUrl.ts +2 -2
  274. package/src/providers/s3/apis/internal/list.ts +3 -3
  275. package/src/providers/s3/apis/internal/remove.ts +2 -3
  276. package/src/providers/s3/apis/uploadData/multipart/initialUpload.ts +30 -1
  277. package/src/providers/s3/apis/uploadData/multipart/uploadCache.ts +4 -1
  278. package/src/providers/s3/apis/uploadData/multipart/uploadHandlers.ts +36 -17
  279. package/src/providers/s3/apis/uploadData/multipart/uploadPartExecutor.ts +23 -7
  280. package/src/providers/s3/apis/uploadData/putObjectJob.ts +22 -5
  281. package/src/providers/s3/apis/uploadData/validateObjectNotExists.ts +25 -0
  282. package/src/providers/s3/types/index.ts +2 -0
  283. package/src/providers/s3/types/inputs.ts +11 -1
  284. package/src/providers/s3/types/options.ts +51 -1
  285. package/src/providers/s3/utils/client/s3control/base.ts +70 -0
  286. package/src/providers/s3/utils/client/s3control/getDataAccess.ts +97 -0
  287. package/src/providers/s3/utils/client/s3control/index.ts +13 -0
  288. package/src/providers/s3/utils/client/s3control/listCallerAccessGrants.ts +104 -0
  289. package/src/providers/s3/utils/client/s3control/types.ts +213 -0
  290. package/src/providers/s3/utils/client/{abortMultipartUpload.ts → s3data/abortMultipartUpload.ts} +4 -3
  291. package/src/providers/s3/utils/client/{base.ts → s3data/base.ts} +2 -3
  292. package/src/providers/s3/utils/client/{completeMultipartUpload.ts → s3data/completeMultipartUpload.ts} +29 -18
  293. package/src/providers/s3/utils/client/{copyObject.ts → s3data/copyObject.ts} +4 -3
  294. package/src/providers/s3/utils/client/{createMultipartUpload.ts → s3data/createMultipartUpload.ts} +15 -8
  295. package/src/providers/s3/utils/client/{deleteObject.ts → s3data/deleteObject.ts} +7 -6
  296. package/src/providers/s3/utils/client/{getObject.ts → s3data/getObject.ts} +8 -7
  297. package/src/providers/s3/utils/client/{headObject.ts → s3data/headObject.ts} +4 -3
  298. package/src/providers/s3/utils/client/{listObjectsV2.ts → s3data/listObjectsV2.ts} +7 -6
  299. package/src/providers/s3/utils/client/{listParts.ts → s3data/listParts.ts} +9 -7
  300. package/src/providers/s3/utils/client/{putObject.ts → s3data/putObject.ts} +6 -3
  301. package/src/providers/s3/utils/client/{uploadPart.ts → s3data/uploadPart.ts} +13 -5
  302. package/src/providers/s3/utils/client/utils/index.ts +1 -0
  303. package/src/providers/s3/utils/client/utils/retryDecider.ts +81 -0
  304. package/src/providers/s3/utils/crc32.native.ts +11 -0
  305. package/src/providers/s3/utils/crc32.ts +51 -0
  306. package/src/providers/s3/utils/resolveIdentityId.ts +11 -0
  307. package/src/providers/s3/utils/resolveS3ConfigAndInput.ts +142 -16
  308. package/src/providers/s3/utils/validateStorageOperationInput.ts +5 -1
  309. package/src/providers/s3/utils/validateStorageOperationInputWithPrefix.ts +5 -1
  310. package/src/storageBrowser/apis/constants.ts +5 -0
  311. package/src/storageBrowser/apis/getDataAccess.ts +79 -0
  312. package/src/storageBrowser/apis/listCallerAccessGrants.ts +107 -0
  313. package/src/storageBrowser/apis/types.ts +33 -0
  314. package/src/storageBrowser/index.ts +25 -0
  315. package/src/storageBrowser/locationCredentialsStore/constants.ts +5 -0
  316. package/src/storageBrowser/locationCredentialsStore/create.ts +54 -0
  317. package/src/storageBrowser/locationCredentialsStore/index.ts +4 -0
  318. package/src/storageBrowser/locationCredentialsStore/registry.ts +88 -0
  319. package/src/storageBrowser/locationCredentialsStore/store.ts +161 -0
  320. package/src/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.ts +21 -0
  321. package/src/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.ts +40 -0
  322. package/src/storageBrowser/managedAuthConfigAdapter/createManagedAuthConfigAdapter.ts +53 -0
  323. package/src/storageBrowser/managedAuthConfigAdapter/index.ts +8 -0
  324. package/src/storageBrowser/types.ts +117 -0
  325. package/src/types/inputs.ts +7 -3
  326. package/dist/cjs/providers/s3/utils/client/abortMultipartUpload.js.map +0 -1
  327. package/dist/cjs/providers/s3/utils/client/base.js.map +0 -1
  328. package/dist/cjs/providers/s3/utils/client/completeMultipartUpload.js.map +0 -1
  329. package/dist/cjs/providers/s3/utils/client/copyObject.js.map +0 -1
  330. package/dist/cjs/providers/s3/utils/client/createMultipartUpload.js.map +0 -1
  331. package/dist/cjs/providers/s3/utils/client/deleteObject.js.map +0 -1
  332. package/dist/cjs/providers/s3/utils/client/getObject.js.map +0 -1
  333. package/dist/cjs/providers/s3/utils/client/headObject.js.map +0 -1
  334. package/dist/cjs/providers/s3/utils/client/index.js.map +0 -1
  335. package/dist/cjs/providers/s3/utils/client/listObjectsV2.js.map +0 -1
  336. package/dist/cjs/providers/s3/utils/client/listParts.js.map +0 -1
  337. package/dist/cjs/providers/s3/utils/client/putObject.js.map +0 -1
  338. package/dist/cjs/providers/s3/utils/client/types.js.map +0 -1
  339. package/dist/cjs/providers/s3/utils/client/uploadPart.js.map +0 -1
  340. package/dist/esm/providers/s3/utils/client/abortMultipartUpload.mjs.map +0 -1
  341. package/dist/esm/providers/s3/utils/client/base.mjs.map +0 -1
  342. package/dist/esm/providers/s3/utils/client/completeMultipartUpload.mjs.map +0 -1
  343. package/dist/esm/providers/s3/utils/client/copyObject.mjs.map +0 -1
  344. package/dist/esm/providers/s3/utils/client/createMultipartUpload.mjs.map +0 -1
  345. package/dist/esm/providers/s3/utils/client/deleteObject.mjs.map +0 -1
  346. package/dist/esm/providers/s3/utils/client/getObject.mjs.map +0 -1
  347. package/dist/esm/providers/s3/utils/client/headObject.mjs.map +0 -1
  348. package/dist/esm/providers/s3/utils/client/listObjectsV2.mjs.map +0 -1
  349. package/dist/esm/providers/s3/utils/client/listParts.mjs.map +0 -1
  350. package/dist/esm/providers/s3/utils/client/putObject.mjs.map +0 -1
  351. package/dist/esm/providers/s3/utils/client/uploadPart.mjs.map +0 -1
  352. /package/dist/cjs/providers/s3/utils/client/{types.js → s3control/types.js} +0 -0
  353. /package/dist/cjs/providers/s3/utils/client/{index.js → s3data/index.js} +0 -0
  354. /package/dist/esm/providers/s3/utils/client/{types.mjs → s3control/types.mjs} +0 -0
  355. /package/dist/esm/providers/s3/utils/client/{types.mjs.map → s3control/types.mjs.map} +0 -0
  356. /package/dist/esm/providers/s3/utils/client/{index.d.ts → s3data/index.d.ts} +0 -0
  357. /package/dist/esm/providers/s3/utils/client/{index.mjs → s3data/index.mjs} +0 -0
  358. /package/dist/esm/providers/s3/utils/client/{index.mjs.map → s3data/index.mjs.map} +0 -0
  359. /package/dist/esm/providers/s3/utils/client/{types.d.ts → s3data/types.d.ts} +0 -0
  360. /package/src/providers/s3/utils/client/{index.ts → s3data/index.ts} +0 -0
  361. /package/src/providers/s3/utils/client/{types.ts → s3data/types.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listObjectsV2.mjs","sources":["../../../../../../../src/providers/s3/utils/client/s3data/listObjectsV2.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { AmplifyUrl, AmplifyUrlSearchParams, } from '@aws-amplify/core/internals/utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { assignStringVariables, buildStorageServiceError, deserializeBoolean, deserializeNumber, deserializeTimestamp, emptyArrayGuard, map, parseXmlBody, parseXmlError, s3TransferHandler, } from '../utils';\nimport { defaultConfig } from './base';\nconst listObjectsV2Serializer = (input, endpoint) => {\n const headers = assignStringVariables({\n 'x-amz-request-payer': input.RequestPayer,\n 'x-amz-expected-bucket-owner': input.ExpectedBucketOwner,\n });\n const query = assignStringVariables({\n 'list-type': '2',\n 'continuation-token': input.ContinuationToken,\n delimiter: input.Delimiter,\n 'encoding-type': input.EncodingType,\n 'fetch-owner': input.FetchOwner,\n 'max-keys': input.MaxKeys,\n prefix: input.Prefix,\n 'start-after': input.StartAfter,\n });\n const url = new AmplifyUrl(endpoint.url.toString());\n url.search = new AmplifyUrlSearchParams(query).toString();\n return {\n method: 'GET',\n headers,\n url,\n };\n};\nconst listObjectsV2Deserializer = async (response) => {\n if (response.statusCode >= 300) {\n // error is always set when statusCode >= 300\n const error = (await parseXmlError(response));\n throw buildStorageServiceError(error, response.statusCode);\n }\n else {\n const parsed = await parseXmlBody(response);\n const contents = map(parsed, {\n CommonPrefixes: [\n 'CommonPrefixes',\n value => emptyArrayGuard(value, deserializeCommonPrefixList),\n ],\n Contents: [\n 'Contents',\n value => emptyArrayGuard(value, deserializeObjectList),\n ],\n ContinuationToken: 'ContinuationToken',\n Delimiter: 'Delimiter',\n EncodingType: 'EncodingType',\n IsTruncated: ['IsTruncated', deserializeBoolean],\n KeyCount: ['KeyCount', deserializeNumber],\n MaxKeys: ['MaxKeys', deserializeNumber],\n Name: 'Name',\n NextContinuationToken: 'NextContinuationToken',\n Prefix: 'Prefix',\n StartAfter: 'StartAfter',\n });\n return {\n $metadata: parseMetadata(response),\n ...contents,\n };\n }\n};\nconst deserializeCommonPrefixList = (output) => output.map(deserializeCommonPrefix);\nconst deserializeCommonPrefix = (output) => map(output, {\n Prefix: 'Prefix',\n});\nconst deserializeObjectList = (output) => output.map(deserializeObject);\nconst deserializeObject = (output) => map(output, {\n Key: 'Key',\n LastModified: ['LastModified', deserializeTimestamp],\n ETag: 'ETag',\n ChecksumAlgorithm: [\n 'ChecksumAlgorithm',\n value => emptyArrayGuard(value, deserializeChecksumAlgorithmList),\n ],\n Size: ['Size', deserializeNumber],\n StorageClass: 'StorageClass',\n Owner: ['Owner', deserializeOwner],\n});\nconst deserializeChecksumAlgorithmList = (output) => output.map(entry => String(entry));\nconst deserializeOwner = (output) => map(output, { DisplayName: 'DisplayName', ID: 'ID' });\nexport const listObjectsV2 = composeServiceApi(s3TransferHandler, listObjectsV2Serializer, listObjectsV2Deserializer, { ...defaultConfig, responseType: 'text' });\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AACA;AAMA,MAAM,uBAAuB,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK;AACrD,IAAI,MAAM,OAAO,GAAG,qBAAqB,CAAC;AAC1C,QAAQ,qBAAqB,EAAE,KAAK,CAAC,YAAY;AACjD,QAAQ,6BAA6B,EAAE,KAAK,CAAC,mBAAmB;AAChE,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,KAAK,GAAG,qBAAqB,CAAC;AACxC,QAAQ,WAAW,EAAE,GAAG;AACxB,QAAQ,oBAAoB,EAAE,KAAK,CAAC,iBAAiB;AACrD,QAAQ,SAAS,EAAE,KAAK,CAAC,SAAS;AAClC,QAAQ,eAAe,EAAE,KAAK,CAAC,YAAY;AAC3C,QAAQ,aAAa,EAAE,KAAK,CAAC,UAAU;AACvC,QAAQ,UAAU,EAAE,KAAK,CAAC,OAAO;AACjC,QAAQ,MAAM,EAAE,KAAK,CAAC,MAAM;AAC5B,QAAQ,aAAa,EAAE,KAAK,CAAC,UAAU;AACvC,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxD,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,sBAAsB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC9D,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,KAAK;AACrB,QAAQ,OAAO;AACf,QAAQ,GAAG;AACX,KAAK,CAAC;AACN,CAAC,CAAC;AACF,MAAM,yBAAyB,GAAG,OAAO,QAAQ,KAAK;AACtD,IAAI,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;AACpC;AACA,QAAQ,MAAM,KAAK,IAAI,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,QAAQ,MAAM,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;AACnE,KAAK;AACL,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;AACpD,QAAQ,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE;AACrC,YAAY,cAAc,EAAE;AAC5B,gBAAgB,gBAAgB;AAChC,gBAAgB,KAAK,IAAI,eAAe,CAAC,KAAK,EAAE,2BAA2B,CAAC;AAC5E,aAAa;AACb,YAAY,QAAQ,EAAE;AACtB,gBAAgB,UAAU;AAC1B,gBAAgB,KAAK,IAAI,eAAe,CAAC,KAAK,EAAE,qBAAqB,CAAC;AACtE,aAAa;AACb,YAAY,iBAAiB,EAAE,mBAAmB;AAClD,YAAY,SAAS,EAAE,WAAW;AAClC,YAAY,YAAY,EAAE,cAAc;AACxC,YAAY,WAAW,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;AAC5D,YAAY,QAAQ,EAAE,CAAC,UAAU,EAAE,iBAAiB,CAAC;AACrD,YAAY,OAAO,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC;AACnD,YAAY,IAAI,EAAE,MAAM;AACxB,YAAY,qBAAqB,EAAE,uBAAuB;AAC1D,YAAY,MAAM,EAAE,QAAQ;AAC5B,YAAY,UAAU,EAAE,YAAY;AACpC,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO;AACf,YAAY,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC;AAC9C,YAAY,GAAG,QAAQ;AACvB,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACF,MAAM,2BAA2B,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AACpF,MAAM,uBAAuB,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;AACxD,IAAI,MAAM,EAAE,QAAQ;AACpB,CAAC,CAAC,CAAC;AACH,MAAM,qBAAqB,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACxE,MAAM,iBAAiB,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;AAClD,IAAI,GAAG,EAAE,KAAK;AACd,IAAI,YAAY,EAAE,CAAC,cAAc,EAAE,oBAAoB,CAAC;AACxD,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,iBAAiB,EAAE;AACvB,QAAQ,mBAAmB;AAC3B,QAAQ,KAAK,IAAI,eAAe,CAAC,KAAK,EAAE,gCAAgC,CAAC;AACzE,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,iBAAiB,CAAC;AACrC,IAAI,YAAY,EAAE,cAAc;AAChC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC;AACtC,CAAC,CAAC,CAAC;AACH,MAAM,gCAAgC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACxF,MAAM,gBAAgB,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/E,MAAC,aAAa,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,EAAE,GAAG,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE;;;;"}
@@ -10,16 +10,16 @@ export declare const listParts: (config: {
10
10
  } | undefined) => {
11
11
  url: URL;
12
12
  })) | undefined;
13
- retryDecider?: (((response?: HttpResponse | undefined, error?: unknown) => Promise<boolean>) & ((response?: HttpResponse | undefined, error?: unknown) => Promise<boolean>)) | undefined;
13
+ retryDecider?: (((response?: HttpResponse | undefined, error?: unknown, middlewareContext?: import("@aws-amplify/core/internals/aws-client-utils").MiddlewareContext | undefined) => Promise<import("@aws-amplify/core/internals/aws-client-utils").RetryDeciderOutput>) & ((response?: HttpResponse | undefined, error?: unknown, middlewareContext?: import("@aws-amplify/core/internals/aws-client-utils").MiddlewareContext | undefined) => Promise<import("@aws-amplify/core/internals/aws-client-utils").RetryDeciderOutput>)) | undefined;
14
14
  computeDelay?: ((attempt: number) => number) | undefined;
15
15
  userAgentValue?: string | undefined;
16
16
  useAccelerateEndpoint?: boolean | undefined;
17
17
  uriEscapePath?: boolean | undefined;
18
18
  } & {
19
- credentials: import("@aws-amplify/core/internals/aws-client-utils").Credentials | (() => Promise<import("@aws-amplify/core/internals/aws-client-utils").Credentials>);
19
+ credentials: import("@aws-amplify/core/internals/aws-client-utils").Credentials | ((options?: import("@aws-amplify/core/internals/aws-client-utils").CredentialsProviderOptions | undefined) => Promise<import("@aws-amplify/core/internals/aws-client-utils").Credentials>);
20
20
  region: string;
21
- onDownloadProgress?: ((event: import("../../../..").TransferProgressEvent) => void) | undefined;
22
- onUploadProgress?: ((event: import("../../../..").TransferProgressEvent) => void) | undefined;
21
+ onDownloadProgress?: ((event: import("../../../../..").TransferProgressEvent) => void) | undefined;
22
+ onUploadProgress?: ((event: import("../../../../..").TransferProgressEvent) => void) | undefined;
23
23
  abortSignal?: AbortSignal | undefined;
24
24
  customEndpoint?: string | undefined;
25
25
  forcePathStyle?: boolean | undefined;
@@ -1,14 +1,14 @@
1
1
  import { parseMetadata } from '@aws-amplify/core/internals/aws-client-utils';
2
2
  import { AmplifyUrl, AmplifyUrlSearchParams } from '@aws-amplify/core/internals/utils';
3
3
  import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';
4
- import { defaultConfig } from './base.mjs';
5
- import { parseXmlError, parseXmlBody } from './utils/parsePayload.mjs';
6
- import { s3TransferHandler } from './runtime/s3TransferHandler/fetch.mjs';
4
+ import { parseXmlError, parseXmlBody } from '../utils/parsePayload.mjs';
5
+ import { s3TransferHandler } from '../runtime/s3TransferHandler/fetch.mjs';
7
6
  import 'fast-xml-parser';
8
- import './runtime/s3TransferHandler/xhr.mjs';
7
+ import '../runtime/s3TransferHandler/xhr.mjs';
9
8
  import 'buffer';
10
- import { buildStorageServiceError, map, emptyArrayGuard, deserializeNumber } from './utils/deserializeHelpers.mjs';
11
- import { validateS3RequiredParameter, serializePathnameObjectKey } from './utils/serializeHelpers.mjs';
9
+ import { buildStorageServiceError, map, emptyArrayGuard, deserializeNumber } from '../utils/deserializeHelpers.mjs';
10
+ import { validateS3RequiredParameter, serializePathnameObjectKey } from '../utils/serializeHelpers.mjs';
11
+ import { defaultConfig } from './base.mjs';
12
12
 
13
13
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
14
14
  // SPDX-License-Identifier: Apache-2.0
@@ -51,6 +51,7 @@ const deserializeCompletedPartList = (input) => input.map(item => map(item, {
51
51
  PartNumber: ['PartNumber', deserializeNumber],
52
52
  ETag: 'ETag',
53
53
  Size: ['Size', deserializeNumber],
54
+ ChecksumCRC32: 'ChecksumCRC32',
54
55
  }));
55
56
  const listParts = composeServiceApi(s3TransferHandler, listPartsSerializer, listPartsDeserializer, { ...defaultConfig, responseType: 'text' });
56
57
 
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listParts.mjs","sources":["../../../../../../../src/providers/s3/utils/client/s3data/listParts.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { AmplifyUrl, AmplifyUrlSearchParams, } from '@aws-amplify/core/internals/utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { buildStorageServiceError, deserializeNumber, emptyArrayGuard, map, parseXmlBody, parseXmlError, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils';\nimport { defaultConfig } from './base';\nconst listPartsSerializer = async (input, endpoint) => {\n const headers = {};\n const url = new AmplifyUrl(endpoint.url.toString());\n validateS3RequiredParameter(!!input.Key, 'Key');\n url.pathname = serializePathnameObjectKey(url, input.Key);\n validateS3RequiredParameter(!!input.UploadId, 'UploadId');\n url.search = new AmplifyUrlSearchParams({\n uploadId: input.UploadId,\n }).toString();\n return {\n method: 'GET',\n headers,\n url,\n };\n};\nconst listPartsDeserializer = async (response) => {\n if (response.statusCode >= 300) {\n const error = (await parseXmlError(response));\n throw buildStorageServiceError(error, response.statusCode);\n }\n else {\n const parsed = await parseXmlBody(response);\n const contents = map(parsed, {\n UploadId: 'UploadId',\n Parts: [\n 'Part',\n value => emptyArrayGuard(value, deserializeCompletedPartList),\n ],\n });\n return {\n $metadata: parseMetadata(response),\n ...contents,\n };\n }\n};\nconst deserializeCompletedPartList = (input) => input.map(item => map(item, {\n PartNumber: ['PartNumber', deserializeNumber],\n ETag: 'ETag',\n Size: ['Size', deserializeNumber],\n ChecksumCRC32: 'ChecksumCRC32',\n}));\nexport const listParts = composeServiceApi(s3TransferHandler, listPartsSerializer, listPartsDeserializer, { ...defaultConfig, responseType: 'text' });\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AACA;AAMA,MAAM,mBAAmB,GAAG,OAAO,KAAK,EAAE,QAAQ,KAAK;AACvD,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;AACvB,IAAI,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxD,IAAI,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACpD,IAAI,GAAG,CAAC,QAAQ,GAAG,0BAA0B,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9D,IAAI,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC9D,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,sBAAsB,CAAC;AAC5C,QAAQ,QAAQ,EAAE,KAAK,CAAC,QAAQ;AAChC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;AAClB,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,KAAK;AACrB,QAAQ,OAAO;AACf,QAAQ,GAAG;AACX,KAAK,CAAC;AACN,CAAC,CAAC;AACF,MAAM,qBAAqB,GAAG,OAAO,QAAQ,KAAK;AAClD,IAAI,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;AACpC,QAAQ,MAAM,KAAK,IAAI,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,QAAQ,MAAM,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;AACnE,KAAK;AACL,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;AACpD,QAAQ,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE;AACrC,YAAY,QAAQ,EAAE,UAAU;AAChC,YAAY,KAAK,EAAE;AACnB,gBAAgB,MAAM;AACtB,gBAAgB,KAAK,IAAI,eAAe,CAAC,KAAK,EAAE,4BAA4B,CAAC;AAC7E,aAAa;AACb,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO;AACf,YAAY,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC;AAC9C,YAAY,GAAG,QAAQ;AACvB,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACF,MAAM,4BAA4B,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE;AAC5E,IAAI,UAAU,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC;AACjD,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,iBAAiB,CAAC;AACrC,IAAI,aAAa,EAAE,eAAe;AAClC,CAAC,CAAC,CAAC,CAAC;AACQ,MAAC,SAAS,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,EAAE,GAAG,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { Endpoint, HttpResponse } from '@aws-amplify/core/internals/aws-client-utils';
2
2
  import type { PutObjectCommandInput, PutObjectCommandOutput } from './types';
3
- export type PutObjectInput = Pick<PutObjectCommandInput, 'Bucket' | 'Key' | 'Body' | 'ACL' | 'CacheControl' | 'ContentDisposition' | 'ContentEncoding' | 'ContentType' | 'ContentMD5' | 'Expires' | 'Metadata' | 'Tagging'>;
3
+ export type PutObjectInput = Pick<PutObjectCommandInput, 'Bucket' | 'Key' | 'Body' | 'ACL' | 'CacheControl' | 'ContentDisposition' | 'ContentEncoding' | 'ContentType' | 'ContentMD5' | 'Expires' | 'Metadata' | 'Tagging' | 'ChecksumCRC32'>;
4
4
  export type PutObjectOutput = Pick<PutObjectCommandOutput, '$metadata' | 'ETag' | 'VersionId'>;
5
5
  export declare const putObject: (config: {
6
6
  responseType?: "blob" | "text" | undefined;
@@ -10,16 +10,16 @@ export declare const putObject: (config: {
10
10
  } | undefined) => {
11
11
  url: URL;
12
12
  })) | undefined;
13
- retryDecider?: (((response?: HttpResponse | undefined, error?: unknown) => Promise<boolean>) & ((response?: HttpResponse | undefined, error?: unknown) => Promise<boolean>)) | undefined;
13
+ retryDecider?: (((response?: HttpResponse | undefined, error?: unknown, middlewareContext?: import("@aws-amplify/core/internals/aws-client-utils").MiddlewareContext | undefined) => Promise<import("@aws-amplify/core/internals/aws-client-utils").RetryDeciderOutput>) & ((response?: HttpResponse | undefined, error?: unknown, middlewareContext?: import("@aws-amplify/core/internals/aws-client-utils").MiddlewareContext | undefined) => Promise<import("@aws-amplify/core/internals/aws-client-utils").RetryDeciderOutput>)) | undefined;
14
14
  computeDelay?: ((attempt: number) => number) | undefined;
15
15
  userAgentValue?: string | undefined;
16
16
  useAccelerateEndpoint?: boolean | undefined;
17
17
  uriEscapePath?: boolean | undefined;
18
18
  } & {
19
- credentials: import("@aws-amplify/core/internals/aws-client-utils").Credentials | (() => Promise<import("@aws-amplify/core/internals/aws-client-utils").Credentials>);
19
+ credentials: import("@aws-amplify/core/internals/aws-client-utils").Credentials | ((options?: import("@aws-amplify/core/internals/aws-client-utils").CredentialsProviderOptions | undefined) => Promise<import("@aws-amplify/core/internals/aws-client-utils").Credentials>);
20
20
  region: string;
21
- onDownloadProgress?: ((event: import("../../../..").TransferProgressEvent) => void) | undefined;
22
- onUploadProgress?: ((event: import("../../../..").TransferProgressEvent) => void) | undefined;
21
+ onDownloadProgress?: ((event: import("../../../../..").TransferProgressEvent) => void) | undefined;
22
+ onUploadProgress?: ((event: import("../../../../..").TransferProgressEvent) => void) | undefined;
23
23
  abortSignal?: AbortSignal | undefined;
24
24
  customEndpoint?: string | undefined;
25
25
  forcePathStyle?: boolean | undefined;
@@ -1,14 +1,14 @@
1
1
  import { parseMetadata } from '@aws-amplify/core/internals/aws-client-utils';
2
2
  import { AmplifyUrl } from '@aws-amplify/core/internals/utils';
3
3
  import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';
4
- import { defaultConfig } from './base.mjs';
5
- import { parseXmlError } from './utils/parsePayload.mjs';
6
- import { s3TransferHandler } from './runtime/s3TransferHandler/fetch.mjs';
4
+ import { parseXmlError } from '../utils/parsePayload.mjs';
5
+ import { s3TransferHandler } from '../runtime/s3TransferHandler/fetch.mjs';
7
6
  import 'fast-xml-parser';
8
- import './runtime/s3TransferHandler/xhr.mjs';
7
+ import '../runtime/s3TransferHandler/xhr.mjs';
9
8
  import 'buffer';
10
- import { buildStorageServiceError, map } from './utils/deserializeHelpers.mjs';
11
- import { serializeObjectConfigsToHeaders, assignStringVariables, validateS3RequiredParameter, serializePathnameObjectKey } from './utils/serializeHelpers.mjs';
9
+ import { buildStorageServiceError, map } from '../utils/deserializeHelpers.mjs';
10
+ import { serializeObjectConfigsToHeaders, assignStringVariables, validateS3RequiredParameter, serializePathnameObjectKey } from '../utils/serializeHelpers.mjs';
11
+ import { defaultConfig } from './base.mjs';
12
12
 
13
13
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
14
14
  // SPDX-License-Identifier: Apache-2.0
@@ -19,6 +19,7 @@ const putObjectSerializer = async (input, endpoint) => {
19
19
  ContentType: input.ContentType ?? 'application/octet-stream',
20
20
  })),
21
21
  ...assignStringVariables({ 'content-md5': input.ContentMD5 }),
22
+ ...assignStringVariables({ 'x-amz-checksum-crc32': input.ChecksumCRC32 }),
22
23
  };
23
24
  const url = new AmplifyUrl(endpoint.url.toString());
24
25
  validateS3RequiredParameter(!!input.Key, 'Key');
@@ -0,0 +1 @@
1
+ {"version":3,"file":"putObject.mjs","sources":["../../../../../../../src/providers/s3/utils/client/s3data/putObject.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { AmplifyUrl } from '@aws-amplify/core/internals/utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { assignStringVariables, buildStorageServiceError, map, parseXmlError, s3TransferHandler, serializeObjectConfigsToHeaders, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils';\nimport { defaultConfig } from './base';\nconst putObjectSerializer = async (input, endpoint) => {\n const headers = {\n ...(await serializeObjectConfigsToHeaders({\n ...input,\n ContentType: input.ContentType ?? 'application/octet-stream',\n })),\n ...assignStringVariables({ 'content-md5': input.ContentMD5 }),\n ...assignStringVariables({ 'x-amz-checksum-crc32': input.ChecksumCRC32 }),\n };\n const url = new AmplifyUrl(endpoint.url.toString());\n validateS3RequiredParameter(!!input.Key, 'Key');\n url.pathname = serializePathnameObjectKey(url, input.Key);\n return {\n method: 'PUT',\n headers,\n url,\n body: input.Body,\n };\n};\nconst putObjectDeserializer = async (response) => {\n if (response.statusCode >= 300) {\n const error = (await parseXmlError(response));\n throw buildStorageServiceError(error, response.statusCode);\n }\n else {\n return {\n ...map(response.headers, {\n ETag: 'etag',\n VersionId: 'x-amz-version-id',\n }),\n $metadata: parseMetadata(response),\n };\n }\n};\nexport const putObject = composeServiceApi(s3TransferHandler, putObjectSerializer, putObjectDeserializer, { ...defaultConfig, responseType: 'text' });\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AACA;AAMA,MAAM,mBAAmB,GAAG,OAAO,KAAK,EAAE,QAAQ,KAAK;AACvD,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,IAAI,MAAM,+BAA+B,CAAC;AAClD,YAAY,GAAG,KAAK;AACpB,YAAY,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,0BAA0B;AACxE,SAAS,CAAC,CAAC;AACX,QAAQ,GAAG,qBAAqB,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;AACrE,QAAQ,GAAG,qBAAqB,CAAC,EAAE,sBAAsB,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;AACjF,KAAK,CAAC;AACN,IAAI,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxD,IAAI,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACpD,IAAI,GAAG,CAAC,QAAQ,GAAG,0BAA0B,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9D,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,KAAK;AACrB,QAAQ,OAAO;AACf,QAAQ,GAAG;AACX,QAAQ,IAAI,EAAE,KAAK,CAAC,IAAI;AACxB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,MAAM,qBAAqB,GAAG,OAAO,QAAQ,KAAK;AAClD,IAAI,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;AACpC,QAAQ,MAAM,KAAK,IAAI,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,QAAQ,MAAM,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;AACnE,KAAK;AACL,SAAS;AACT,QAAQ,OAAO;AACf,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;AACrC,gBAAgB,IAAI,EAAE,MAAM;AAC5B,gBAAgB,SAAS,EAAE,kBAAkB;AAC7C,aAAa,CAAC;AACd,YAAY,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC;AAC9C,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACU,MAAC,SAAS,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,EAAE,GAAG,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE;;;;"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  import { Endpoint, HttpResponse } from '@aws-amplify/core/internals/aws-client-utils';
2
2
  import type { UploadPartCommandInput, UploadPartCommandOutput } from './types';
3
- export type UploadPartInput = Pick<UploadPartCommandInput, 'PartNumber' | 'Body' | 'UploadId' | 'Bucket' | 'Key' | 'ContentMD5'>;
3
+ export type UploadPartInput = Pick<UploadPartCommandInput, 'PartNumber' | 'Body' | 'UploadId' | 'Bucket' | 'Key' | 'ContentMD5' | 'ChecksumCRC32'>;
4
4
  export type UploadPartOutput = Pick<UploadPartCommandOutput, '$metadata' | 'ETag'>;
5
5
  export declare const uploadPart: (config: {
6
6
  responseType?: "blob" | "text" | undefined;
@@ -10,16 +10,16 @@ export declare const uploadPart: (config: {
10
10
  } | undefined) => {
11
11
  url: URL;
12
12
  })) | undefined;
13
- retryDecider?: (((response?: HttpResponse | undefined, error?: unknown) => Promise<boolean>) & ((response?: HttpResponse | undefined, error?: unknown) => Promise<boolean>)) | undefined;
13
+ retryDecider?: (((response?: HttpResponse | undefined, error?: unknown, middlewareContext?: import("@aws-amplify/core/internals/aws-client-utils").MiddlewareContext | undefined) => Promise<import("@aws-amplify/core/internals/aws-client-utils").RetryDeciderOutput>) & ((response?: HttpResponse | undefined, error?: unknown, middlewareContext?: import("@aws-amplify/core/internals/aws-client-utils").MiddlewareContext | undefined) => Promise<import("@aws-amplify/core/internals/aws-client-utils").RetryDeciderOutput>)) | undefined;
14
14
  computeDelay?: ((attempt: number) => number) | undefined;
15
15
  userAgentValue?: string | undefined;
16
16
  useAccelerateEndpoint?: boolean | undefined;
17
17
  uriEscapePath?: boolean | undefined;
18
18
  } & {
19
- credentials: import("@aws-amplify/core/internals/aws-client-utils").Credentials | (() => Promise<import("@aws-amplify/core/internals/aws-client-utils").Credentials>);
19
+ credentials: import("@aws-amplify/core/internals/aws-client-utils").Credentials | ((options?: import("@aws-amplify/core/internals/aws-client-utils").CredentialsProviderOptions | undefined) => Promise<import("@aws-amplify/core/internals/aws-client-utils").Credentials>);
20
20
  region: string;
21
- onDownloadProgress?: ((event: import("../../../..").TransferProgressEvent) => void) | undefined;
22
- onUploadProgress?: ((event: import("../../../..").TransferProgressEvent) => void) | undefined;
21
+ onDownloadProgress?: ((event: import("../../../../..").TransferProgressEvent) => void) | undefined;
22
+ onUploadProgress?: ((event: import("../../../../..").TransferProgressEvent) => void) | undefined;
23
23
  abortSignal?: AbortSignal | undefined;
24
24
  customEndpoint?: string | undefined;
25
25
  forcePathStyle?: boolean | undefined;
@@ -1,22 +1,23 @@
1
1
  import { parseMetadata } from '@aws-amplify/core/internals/aws-client-utils';
2
2
  import { AmplifyUrl, AmplifyUrlSearchParams } from '@aws-amplify/core/internals/utils';
3
3
  import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';
4
- import { defaultConfig } from './base.mjs';
5
- import { parseXmlError } from './utils/parsePayload.mjs';
6
- import { s3TransferHandler } from './runtime/s3TransferHandler/fetch.mjs';
4
+ import { parseXmlError } from '../utils/parsePayload.mjs';
5
+ import { s3TransferHandler } from '../runtime/s3TransferHandler/fetch.mjs';
7
6
  import 'fast-xml-parser';
8
- import './runtime/s3TransferHandler/xhr.mjs';
7
+ import '../runtime/s3TransferHandler/xhr.mjs';
9
8
  import 'buffer';
10
- import { buildStorageServiceError, map } from './utils/deserializeHelpers.mjs';
11
- import { assignStringVariables, validateS3RequiredParameter, serializePathnameObjectKey } from './utils/serializeHelpers.mjs';
9
+ import { buildStorageServiceError, map } from '../utils/deserializeHelpers.mjs';
10
+ import { assignStringVariables, validateS3RequiredParameter, serializePathnameObjectKey } from '../utils/serializeHelpers.mjs';
11
+ import { defaultConfig } from './base.mjs';
12
12
 
13
13
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
14
14
  // SPDX-License-Identifier: Apache-2.0
15
15
  const uploadPartSerializer = async (input, endpoint) => {
16
16
  const headers = {
17
+ ...assignStringVariables({ 'x-amz-checksum-crc32': input.ChecksumCRC32 }),
17
18
  ...assignStringVariables({ 'content-md5': input.ContentMD5 }),
19
+ 'content-type': 'application/octet-stream',
18
20
  };
19
- headers['content-type'] = 'application/octet-stream';
20
21
  const url = new AmplifyUrl(endpoint.url.toString());
21
22
  validateS3RequiredParameter(!!input.Key, 'Key');
22
23
  url.pathname = serializePathnameObjectKey(url, input.Key);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploadPart.mjs","sources":["../../../../../../../src/providers/s3/utils/client/s3data/uploadPart.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { AmplifyUrl, AmplifyUrlSearchParams, } from '@aws-amplify/core/internals/utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { assignStringVariables, buildStorageServiceError, map, parseXmlError, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils';\nimport { defaultConfig } from './base';\nconst uploadPartSerializer = async (input, endpoint) => {\n const headers = {\n ...assignStringVariables({ 'x-amz-checksum-crc32': input.ChecksumCRC32 }),\n ...assignStringVariables({ 'content-md5': input.ContentMD5 }),\n 'content-type': 'application/octet-stream',\n };\n const url = new AmplifyUrl(endpoint.url.toString());\n validateS3RequiredParameter(!!input.Key, 'Key');\n url.pathname = serializePathnameObjectKey(url, input.Key);\n validateS3RequiredParameter(!!input.PartNumber, 'PartNumber');\n validateS3RequiredParameter(!!input.UploadId, 'UploadId');\n url.search = new AmplifyUrlSearchParams({\n partNumber: input.PartNumber + '',\n uploadId: input.UploadId,\n }).toString();\n return {\n method: 'PUT',\n headers,\n url,\n body: input.Body,\n };\n};\nconst uploadPartDeserializer = async (response) => {\n if (response.statusCode >= 300) {\n const error = (await parseXmlError(response));\n throw buildStorageServiceError(error, response.statusCode);\n }\n else {\n return {\n ...map(response.headers, {\n ETag: 'etag',\n }),\n $metadata: parseMetadata(response),\n };\n }\n};\nexport const uploadPart = composeServiceApi(s3TransferHandler, uploadPartSerializer, uploadPartDeserializer, { ...defaultConfig, responseType: 'text' });\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AACA;AAMA,MAAM,oBAAoB,GAAG,OAAO,KAAK,EAAE,QAAQ,KAAK;AACxD,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,GAAG,qBAAqB,CAAC,EAAE,sBAAsB,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;AACjF,QAAQ,GAAG,qBAAqB,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;AACrE,QAAQ,cAAc,EAAE,0BAA0B;AAClD,KAAK,CAAC;AACN,IAAI,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxD,IAAI,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACpD,IAAI,GAAG,CAAC,QAAQ,GAAG,0BAA0B,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9D,IAAI,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAClE,IAAI,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC9D,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,sBAAsB,CAAC;AAC5C,QAAQ,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,EAAE;AACzC,QAAQ,QAAQ,EAAE,KAAK,CAAC,QAAQ;AAChC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;AAClB,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,KAAK;AACrB,QAAQ,OAAO;AACf,QAAQ,GAAG;AACX,QAAQ,IAAI,EAAE,KAAK,CAAC,IAAI;AACxB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,MAAM,sBAAsB,GAAG,OAAO,QAAQ,KAAK;AACnD,IAAI,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;AACpC,QAAQ,MAAM,KAAK,IAAI,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,QAAQ,MAAM,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;AACnE,KAAK;AACL,SAAS;AACT,QAAQ,OAAO;AACf,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;AACrC,gBAAgB,IAAI,EAAE,MAAM;AAC5B,aAAa,CAAC;AACd,YAAY,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC;AAC9C,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACU,MAAC,UAAU,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,EAAE,GAAG,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE;;;;"}
@@ -2,3 +2,4 @@ export { parseXmlBody, parseXmlError } from './parsePayload';
2
2
  export { SEND_DOWNLOAD_PROGRESS_EVENT, SEND_UPLOAD_PROGRESS_EVENT, s3TransferHandler, CANCELED_ERROR_MESSAGE, CONTENT_SHA256_HEADER, toBase64, } from '../runtime';
3
3
  export { buildStorageServiceError, deserializeBoolean, deserializeMetadata, deserializeNumber, deserializeTimestamp, emptyArrayGuard, map, } from './deserializeHelpers';
4
4
  export { assignStringVariables, serializeObjectConfigsToHeaders, serializePathnameObjectKey, validateS3RequiredParameter, } from './serializeHelpers';
5
+ export { retryDecider } from './retryDecider';
@@ -6,4 +6,5 @@ import '../runtime/s3TransferHandler/xhr.mjs';
6
6
  export { toBase64 } from '../runtime/base64/index.native.mjs';
7
7
  export { buildStorageServiceError, deserializeBoolean, deserializeMetadata, deserializeNumber, deserializeTimestamp, emptyArrayGuard, map } from './deserializeHelpers.mjs';
8
8
  export { assignStringVariables, serializeObjectConfigsToHeaders, serializePathnameObjectKey, validateS3RequiredParameter } from './serializeHelpers.mjs';
9
+ export { retryDecider } from './retryDecider.mjs';
9
10
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,13 @@
1
+ import { HttpResponse, MiddlewareContext, RetryDeciderOutput } from '@aws-amplify/core/internals/aws-client-utils';
2
+ /**
3
+ * Function to decide if the S3 request should be retried. For S3 APIs, we support forceRefresh option
4
+ * for {@link LocationCredentialsProvider | LocationCredentialsProvider } option. It's set when S3 returns
5
+ * credentials expired error. In the retry decider, we detect this response and set flag to signify a retry
6
+ * attempt. The retry attempt would invoke the LocationCredentialsProvider with forceRefresh option set.
7
+ *
8
+ * @param response Optional response of the request.
9
+ * @param error Optional error thrown from previous attempts.
10
+ * @param middlewareContext Optional context object to store data between retries.
11
+ * @returns True if the request should be retried.
12
+ */
13
+ export declare const retryDecider: (response?: HttpResponse, error?: unknown, middlewareContext?: MiddlewareContext) => Promise<RetryDeciderOutput>;
@@ -0,0 +1,59 @@
1
+ import { getRetryDecider } from '@aws-amplify/core/internals/aws-client-utils';
2
+ import { parseXmlError } from './parsePayload.mjs';
3
+
4
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
5
+ // SPDX-License-Identifier: Apache-2.0
6
+ /**
7
+ * Function to decide if the S3 request should be retried. For S3 APIs, we support forceRefresh option
8
+ * for {@link LocationCredentialsProvider | LocationCredentialsProvider } option. It's set when S3 returns
9
+ * credentials expired error. In the retry decider, we detect this response and set flag to signify a retry
10
+ * attempt. The retry attempt would invoke the LocationCredentialsProvider with forceRefresh option set.
11
+ *
12
+ * @param response Optional response of the request.
13
+ * @param error Optional error thrown from previous attempts.
14
+ * @param middlewareContext Optional context object to store data between retries.
15
+ * @returns True if the request should be retried.
16
+ */
17
+ const retryDecider = async (response, error, middlewareContext) => {
18
+ const defaultRetryDecider = getRetryDecider(parseXmlError);
19
+ const defaultRetryDecision = await defaultRetryDecider(response, error);
20
+ if (!response || response.statusCode < 300) {
21
+ return { retryable: false };
22
+ }
23
+ const parsedError = await parseXmlError(response);
24
+ const errorCode = parsedError?.name;
25
+ const errorMessage = parsedError?.message;
26
+ const isCredentialsExpired = isCredentialsExpiredError(errorCode, errorMessage);
27
+ return {
28
+ retryable: defaultRetryDecision.retryable ||
29
+ // If we know the previous retry attempt sets isCredentialsExpired in the
30
+ // middleware context, we don't want to retry anymore.
31
+ !!(isCredentialsExpired && !middlewareContext?.isCredentialsExpired),
32
+ isCredentialsExpiredError: isCredentialsExpired,
33
+ };
34
+ };
35
+ // Ref: https://github.com/aws/aws-sdk-js/blob/54829e341181b41573c419bd870dd0e0f8f10632/lib/event_listeners.js#L522-L541
36
+ const INVALID_TOKEN_ERROR_CODES = [
37
+ 'RequestExpired',
38
+ 'ExpiredTokenException',
39
+ 'ExpiredToken',
40
+ ];
41
+ /**
42
+ * Given an error code, returns true if it is related to invalid credentials.
43
+ *
44
+ * @param errorCode String representation of some error.
45
+ * @returns True if given error indicates the credentials used to authorize request
46
+ * are invalid.
47
+ */
48
+ const isCredentialsExpiredError = (errorCode, errorMessage) => {
49
+ const isExpiredTokenError = !!errorCode && INVALID_TOKEN_ERROR_CODES.includes(errorCode);
50
+ // Ref: https://github.com/aws/aws-sdk-js/blob/54829e341181b41573c419bd870dd0e0f8f10632/lib/event_listeners.js#L536-L539
51
+ const isExpiredSignatureError = !!errorCode &&
52
+ !!errorMessage &&
53
+ errorCode.includes('Signature') &&
54
+ errorMessage.includes('expired');
55
+ return isExpiredTokenError || isExpiredSignatureError;
56
+ };
57
+
58
+ export { retryDecider };
59
+ //# sourceMappingURL=retryDecider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryDecider.mjs","sources":["../../../../../../../src/providers/s3/utils/client/utils/retryDecider.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getRetryDecider, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { parseXmlError } from './parsePayload';\n/**\n * Function to decide if the S3 request should be retried. For S3 APIs, we support forceRefresh option\n * for {@link LocationCredentialsProvider | LocationCredentialsProvider } option. It's set when S3 returns\n * credentials expired error. In the retry decider, we detect this response and set flag to signify a retry\n * attempt. The retry attempt would invoke the LocationCredentialsProvider with forceRefresh option set.\n *\n * @param response Optional response of the request.\n * @param error Optional error thrown from previous attempts.\n * @param middlewareContext Optional context object to store data between retries.\n * @returns True if the request should be retried.\n */\nexport const retryDecider = async (response, error, middlewareContext) => {\n const defaultRetryDecider = getRetryDecider(parseXmlError);\n const defaultRetryDecision = await defaultRetryDecider(response, error);\n if (!response || response.statusCode < 300) {\n return { retryable: false };\n }\n const parsedError = await parseXmlError(response);\n const errorCode = parsedError?.name;\n const errorMessage = parsedError?.message;\n const isCredentialsExpired = isCredentialsExpiredError(errorCode, errorMessage);\n return {\n retryable: defaultRetryDecision.retryable ||\n // If we know the previous retry attempt sets isCredentialsExpired in the\n // middleware context, we don't want to retry anymore.\n !!(isCredentialsExpired && !middlewareContext?.isCredentialsExpired),\n isCredentialsExpiredError: isCredentialsExpired,\n };\n};\n// Ref: https://github.com/aws/aws-sdk-js/blob/54829e341181b41573c419bd870dd0e0f8f10632/lib/event_listeners.js#L522-L541\nconst INVALID_TOKEN_ERROR_CODES = [\n 'RequestExpired',\n 'ExpiredTokenException',\n 'ExpiredToken',\n];\n/**\n * Given an error code, returns true if it is related to invalid credentials.\n *\n * @param errorCode String representation of some error.\n * @returns True if given error indicates the credentials used to authorize request\n * are invalid.\n */\nconst isCredentialsExpiredError = (errorCode, errorMessage) => {\n const isExpiredTokenError = !!errorCode && INVALID_TOKEN_ERROR_CODES.includes(errorCode);\n // Ref: https://github.com/aws/aws-sdk-js/blob/54829e341181b41573c419bd870dd0e0f8f10632/lib/event_listeners.js#L536-L539\n const isExpiredSignatureError = !!errorCode &&\n !!errorMessage &&\n errorCode.includes('Signature') &&\n errorMessage.includes('expired');\n return isExpiredTokenError || isExpiredSignatureError;\n};\n"],"names":[],"mappings":";;;AAAA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,YAAY,GAAG,OAAO,QAAQ,EAAE,KAAK,EAAE,iBAAiB,KAAK;AAC1E,IAAI,MAAM,mBAAmB,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;AAC/D,IAAI,MAAM,oBAAoB,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC5E,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,UAAU,GAAG,GAAG,EAAE;AAChD,QAAQ,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACpC,KAAK;AACL,IAAI,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;AACtD,IAAI,MAAM,SAAS,GAAG,WAAW,EAAE,IAAI,CAAC;AACxC,IAAI,MAAM,YAAY,GAAG,WAAW,EAAE,OAAO,CAAC;AAC9C,IAAI,MAAM,oBAAoB,GAAG,yBAAyB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACpF,IAAI,OAAO;AACX,QAAQ,SAAS,EAAE,oBAAoB,CAAC,SAAS;AACjD;AACA;AACA,YAAY,CAAC,EAAE,oBAAoB,IAAI,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;AAChF,QAAQ,yBAAyB,EAAE,oBAAoB;AACvD,KAAK,CAAC;AACN,EAAE;AACF;AACA,MAAM,yBAAyB,GAAG;AAClC,IAAI,gBAAgB;AACpB,IAAI,uBAAuB;AAC3B,IAAI,cAAc;AAClB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,yBAAyB,GAAG,CAAC,SAAS,EAAE,YAAY,KAAK;AAC/D,IAAI,MAAM,mBAAmB,GAAG,CAAC,CAAC,SAAS,IAAI,yBAAyB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC7F;AACA,IAAI,MAAM,uBAAuB,GAAG,CAAC,CAAC,SAAS;AAC/C,QAAQ,CAAC,CAAC,YAAY;AACtB,QAAQ,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;AACvC,QAAQ,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzC,IAAI,OAAO,mBAAmB,IAAI,uBAAuB,CAAC;AAC1D,CAAC;;;;"}
@@ -0,0 +1,6 @@
1
+ export interface CRC32Checksum {
2
+ checksumArrayBuffer: ArrayBuffer;
3
+ checksum: string;
4
+ seed: number;
5
+ }
6
+ export declare const calculateContentCRC32: (content: Blob | string | ArrayBuffer | ArrayBufferView, seed?: number) => Promise<CRC32Checksum | undefined>;
@@ -0,0 +1,34 @@
1
+ import crc32 from 'crc-32';
2
+
3
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
+ // SPDX-License-Identifier: Apache-2.0
5
+ const calculateContentCRC32 = async (content, seed = 0) => {
6
+ let internalSeed = seed;
7
+ let blob;
8
+ if (content instanceof Blob) {
9
+ blob = content;
10
+ }
11
+ else {
12
+ blob = new Blob([content]);
13
+ }
14
+ await blob.stream().pipeTo(new WritableStream({
15
+ write(chunk) {
16
+ internalSeed = crc32.buf(chunk, internalSeed) >>> 0;
17
+ },
18
+ }));
19
+ const hex = internalSeed.toString(16).padStart(8, '0');
20
+ return {
21
+ checksumArrayBuffer: hexToArrayBuffer(hex),
22
+ checksum: hexToBase64(hex),
23
+ seed: internalSeed,
24
+ };
25
+ };
26
+ const hexToArrayBuffer = (hexString) => new Uint8Array((hexString.match(/\w{2}/g) ?? []).map(h => parseInt(h, 16)))
27
+ .buffer;
28
+ const hexToBase64 = (hexString) => btoa(hexString
29
+ .match(/\w{2}/g)
30
+ .map((a) => String.fromCharCode(parseInt(a, 16)))
31
+ .join(''));
32
+
33
+ export { calculateContentCRC32 };
34
+ //# sourceMappingURL=crc32.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crc32.mjs","sources":["../../../../../src/providers/s3/utils/crc32.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport crc32 from 'crc-32';\nexport const calculateContentCRC32 = async (content, seed = 0) => {\n let internalSeed = seed;\n let blob;\n if (content instanceof Blob) {\n blob = content;\n }\n else {\n blob = new Blob([content]);\n }\n await blob.stream().pipeTo(new WritableStream({\n write(chunk) {\n internalSeed = crc32.buf(chunk, internalSeed) >>> 0;\n },\n }));\n const hex = internalSeed.toString(16).padStart(8, '0');\n return {\n checksumArrayBuffer: hexToArrayBuffer(hex),\n checksum: hexToBase64(hex),\n seed: internalSeed,\n };\n};\nconst hexToArrayBuffer = (hexString) => new Uint8Array((hexString.match(/\\w{2}/g) ?? []).map(h => parseInt(h, 16)))\n .buffer;\nconst hexToBase64 = (hexString) => btoa(hexString\n .match(/\\w{2}/g)\n .map((a) => String.fromCharCode(parseInt(a, 16)))\n .join(''));\n"],"names":[],"mappings":";;AAAA;AACA;AAEY,MAAC,qBAAqB,GAAG,OAAO,OAAO,EAAE,IAAI,GAAG,CAAC,KAAK;AAClE,IAAI,IAAI,YAAY,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,IAAI,CAAC;AACb,IAAI,IAAI,OAAO,YAAY,IAAI,EAAE;AACjC,QAAQ,IAAI,GAAG,OAAO,CAAC;AACvB,KAAK;AACL,SAAS;AACT,QAAQ,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC;AAClD,QAAQ,KAAK,CAAC,KAAK,EAAE;AACrB,YAAY,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AAChE,SAAS;AACT,KAAK,CAAC,CAAC,CAAC;AACR,IAAI,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3D,IAAI,OAAO;AACX,QAAQ,mBAAmB,EAAE,gBAAgB,CAAC,GAAG,CAAC;AAClD,QAAQ,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC;AAClC,QAAQ,IAAI,EAAE,YAAY;AAC1B,KAAK,CAAC;AACN,EAAE;AACF,MAAM,gBAAgB,GAAG,CAAC,SAAS,KAAK,IAAI,UAAU,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACnH,KAAK,MAAM,CAAC;AACZ,MAAM,WAAW,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;AACjD,KAAK,KAAK,CAAC,QAAQ,CAAC;AACpB,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;;;;"}
@@ -0,0 +1,2 @@
1
+ import { CRC32Checksum } from './crc32';
2
+ export declare const calculateContentCRC32: (content: Blob | string | ArrayBuffer | ArrayBufferView, _seed?: number) => Promise<CRC32Checksum | undefined>;
@@ -0,0 +1,8 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ const calculateContentCRC32 = async (content, _seed = 0) => {
4
+ return undefined;
5
+ };
6
+
7
+ export { calculateContentCRC32 };
8
+ //# sourceMappingURL=crc32.native.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crc32.native.mjs","sources":["../../../../../src/providers/s3/utils/crc32.native.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const calculateContentCRC32 = async (content, _seed = 0) => {\n return undefined;\n};\n"],"names":[],"mappings":"AAAA;AACA;AACY,MAAC,qBAAqB,GAAG,OAAO,OAAO,EAAE,KAAK,GAAG,CAAC,KAAK;AACnE,IAAI,OAAO,SAAS,CAAC;AACrB;;;;"}
@@ -0,0 +1 @@
1
+ export declare const resolveIdentityId: (identityId?: string) => string;
@@ -0,0 +1,12 @@
1
+ import { StorageValidationErrorCode } from '../../../errors/types/validation.mjs';
2
+ import { assertValidationError } from '../../../errors/utils/assertValidationError.mjs';
3
+
4
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
5
+ // SPDX-License-Identifier: Apache-2.0
6
+ const resolveIdentityId = (identityId) => {
7
+ assertValidationError(!!identityId, StorageValidationErrorCode.NoIdentityId);
8
+ return identityId;
9
+ };
10
+
11
+ export { resolveIdentityId };
12
+ //# sourceMappingURL=resolveIdentityId.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveIdentityId.mjs","sources":["../../../../../src/providers/s3/utils/resolveIdentityId.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { StorageValidationErrorCode } from '../../../errors/types/validation';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nexport const resolveIdentityId = (identityId) => {\n assertValidationError(!!identityId, StorageValidationErrorCode.NoIdentityId);\n return identityId;\n};\n"],"names":[],"mappings":";;;AAAA;AACA;AAGY,MAAC,iBAAiB,GAAG,CAAC,UAAU,KAAK;AACjD,IAAI,qBAAqB,CAAC,CAAC,CAAC,UAAU,EAAE,0BAA0B,CAAC,YAAY,CAAC,CAAC;AACjF,IAAI,OAAO,UAAU,CAAC;AACtB;;;;"}
@@ -1,9 +1,13 @@
1
1
  import { AmplifyClassV6, StorageAccessLevel } from '@aws-amplify/core';
2
- import { ResolvedS3Config } from '../types/options';
2
+ import { StorageOperationInputWithKey, StorageOperationInputWithPath, StorageOperationInputWithPrefix } from '../../../types/inputs';
3
+ import { CopyInput, CopyWithPathInput } from '../types';
4
+ import { LocationCredentialsProvider, ResolvedS3Config, StorageBucket } from '../types/options';
3
5
  interface S3ApiOptions {
4
6
  accessLevel?: StorageAccessLevel;
5
7
  targetIdentityId?: string;
6
8
  useAccelerateEndpoint?: boolean;
9
+ locationCredentialsProvider?: LocationCredentialsProvider;
10
+ bucket?: StorageBucket;
7
11
  }
8
12
  interface ResolvedS3ConfigAndInput {
9
13
  s3Config: ResolvedS3Config;
@@ -12,6 +16,9 @@ interface ResolvedS3ConfigAndInput {
12
16
  isObjectLockEnabled?: boolean;
13
17
  identityId?: string;
14
18
  }
19
+ export type DeprecatedStorageInput = StorageOperationInputWithKey | StorageOperationInputWithPrefix | CopyInput;
20
+ export type CallbackPathStorageInput = StorageOperationInputWithPath | CopyWithPathInput;
21
+ type StorageInput = DeprecatedStorageInput | CallbackPathStorageInput;
15
22
  /**
16
23
  * resolve the common input options for S3 API handlers from Amplify configuration and library options.
17
24
  *
@@ -23,5 +30,7 @@ interface ResolvedS3ConfigAndInput {
23
30
  *
24
31
  * @internal
25
32
  */
26
- export declare const resolveS3ConfigAndInput: (amplify: AmplifyClassV6, apiOptions?: S3ApiOptions) => Promise<ResolvedS3ConfigAndInput>;
33
+ export declare const resolveS3ConfigAndInput: (amplify: AmplifyClassV6, apiInput?: StorageInput & {
34
+ options?: S3ApiOptions;
35
+ }) => Promise<ResolvedS3ConfigAndInput>;
27
36
  export {};
@@ -1,6 +1,8 @@
1
1
  import { assertValidationError } from '../../../errors/utils/assertValidationError.mjs';
2
2
  import { StorageValidationErrorCode } from '../../../errors/types/validation.mjs';
3
3
  import { resolvePrefix } from '../../../utils/resolvePrefix.mjs';
4
+ import { StorageError } from '../../../errors/StorageError.mjs';
5
+ import { INVALID_STORAGE_INPUT } from '../../../errors/constants.mjs';
4
6
  import { DEFAULT_ACCESS_LEVEL, LOCAL_TESTING_S3_ENDPOINT } from './constants.mjs';
5
7
 
6
8
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
@@ -16,35 +18,45 @@ import { DEFAULT_ACCESS_LEVEL, LOCAL_TESTING_S3_ENDPOINT } from './constants.mjs
16
18
  *
17
19
  * @internal
18
20
  */
19
- const resolveS3ConfigAndInput = async (amplify, apiOptions) => {
21
+ const resolveS3ConfigAndInput = async (amplify, apiInput) => {
22
+ const { options: apiOptions } = apiInput ?? {};
20
23
  /**
21
24
  * IdentityId is always cached in memory so we can safely make calls here. It
22
25
  * should be stable even for unauthenticated users, regardless of credentials.
23
26
  */
24
27
  const { identityId } = await amplify.Auth.fetchAuthSession();
25
- assertValidationError(!!identityId, StorageValidationErrorCode.NoIdentityId);
26
28
  /**
27
29
  * A credentials provider function instead of a static credentials object is
28
30
  * used because the long-running tasks like multipart upload may span over the
29
31
  * credentials expiry. Auth.fetchAuthSession() automatically refreshes the
30
32
  * credentials if they are expired.
33
+ *
34
+ * The optional forceRefresh option is set when the S3 service returns expired
35
+ * tokens error in the previous API call attempt.
31
36
  */
32
- const credentialsProvider = async () => {
33
- const { credentials } = await amplify.Auth.fetchAuthSession();
37
+ const credentialsProvider = async (options) => {
38
+ if (isLocationCredentialsProvider(apiOptions)) {
39
+ assertStorageInput(apiInput);
40
+ }
41
+ // TODO: forceRefresh option of fetchAuthSession would refresh both tokens and
42
+ // AWS credentials. So we do not support forceRefreshing from the Auth until
43
+ // we support refreshing only the credentials.
44
+ const { credentials } = isLocationCredentialsProvider(apiOptions)
45
+ ? await apiOptions.locationCredentialsProvider(options)
46
+ : await amplify.Auth.fetchAuthSession();
34
47
  assertValidationError(!!credentials, StorageValidationErrorCode.NoCredentials);
35
48
  return credentials;
36
49
  };
37
- const { bucket, region, dangerouslyConnectToHttpEndpointForTesting } = amplify.getConfig()?.Storage?.S3 ?? {};
50
+ const { bucket: defaultBucket, region: defaultRegion, dangerouslyConnectToHttpEndpointForTesting, buckets, } = amplify.getConfig()?.Storage?.S3 ?? {};
51
+ const { bucket = defaultBucket, region = defaultRegion } = (apiOptions?.bucket && resolveBucketConfig(apiOptions, buckets)) || {};
38
52
  assertValidationError(!!bucket, StorageValidationErrorCode.NoBucket);
39
53
  assertValidationError(!!region, StorageValidationErrorCode.NoRegion);
40
54
  const { defaultAccessLevel, prefixResolver = resolvePrefix, isObjectLockEnabled, } = amplify.libraryOptions?.Storage?.S3 ?? {};
41
- const keyPrefix = await prefixResolver({
42
- accessLevel: apiOptions?.accessLevel ?? defaultAccessLevel ?? DEFAULT_ACCESS_LEVEL,
43
- // use conditional assign to make tsc happy because StorageOptions is a union type that may not have targetIdentityId
44
- targetIdentityId: apiOptions?.accessLevel === 'protected'
45
- ? (apiOptions?.targetIdentityId ?? identityId)
46
- : identityId,
47
- });
55
+ const accessLevel = apiOptions?.accessLevel ?? defaultAccessLevel ?? DEFAULT_ACCESS_LEVEL;
56
+ const targetIdentityId = accessLevel === 'protected'
57
+ ? (apiOptions?.targetIdentityId ?? identityId)
58
+ : identityId;
59
+ const keyPrefix = await prefixResolver({ accessLevel, targetIdentityId });
48
60
  return {
49
61
  s3Config: {
50
62
  credentials: credentialsProvider,
@@ -63,6 +75,54 @@ const resolveS3ConfigAndInput = async (amplify, apiOptions) => {
63
75
  isObjectLockEnabled,
64
76
  };
65
77
  };
78
+ const isLocationCredentialsProvider = (options) => {
79
+ return !!options?.locationCredentialsProvider;
80
+ };
81
+ const isInputWithCallbackPath = (input) => {
82
+ return ((input?.path &&
83
+ typeof input.path === 'function') ||
84
+ (input?.destination?.path &&
85
+ typeof input.destination?.path === 'function') ||
86
+ (input?.source?.path &&
87
+ typeof input.source?.path === 'function'));
88
+ };
89
+ const isDeprecatedInput = (input) => {
90
+ return (isInputWithKey(input) ||
91
+ isInputWithPrefix(input) ||
92
+ isInputWithCopySourceOrDestination(input));
93
+ };
94
+ const assertStorageInput = (input) => {
95
+ if (isDeprecatedInput(input) || isInputWithCallbackPath(input)) {
96
+ throw new StorageError({
97
+ name: INVALID_STORAGE_INPUT,
98
+ message: 'The input needs to have a path as a string value.',
99
+ recoverySuggestion: 'Please provide a valid path as a string value for the input.',
100
+ });
101
+ }
102
+ };
103
+ const isInputWithKey = (input) => {
104
+ return !!(typeof input.key === 'string');
105
+ };
106
+ const isInputWithPrefix = (input) => {
107
+ return !!(typeof input.prefix === 'string');
108
+ };
109
+ const isInputWithCopySourceOrDestination = (input) => {
110
+ return !!(typeof input.source?.key === 'string' ||
111
+ typeof input.destination?.key === 'string');
112
+ };
113
+ const resolveBucketConfig = (apiOptions, buckets) => {
114
+ if (typeof apiOptions.bucket === 'string') {
115
+ const bucketConfig = buckets?.[apiOptions.bucket];
116
+ assertValidationError(!!bucketConfig, StorageValidationErrorCode.InvalidStorageBucket);
117
+ return { bucket: bucketConfig.bucketName, region: bucketConfig.region };
118
+ }
119
+ if (typeof apiOptions.bucket === 'object') {
120
+ return {
121
+ bucket: apiOptions.bucket.bucketName,
122
+ region: apiOptions.bucket.region,
123
+ };
124
+ }
125
+ };
66
126
 
67
127
  export { resolveS3ConfigAndInput };
68
128
  //# sourceMappingURL=resolveS3ConfigAndInput.mjs.map