@aws-amplify/storage 5.9.6-unstable.7762f1a.0 → 6.0.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 (559) hide show
  1. package/README.md +3 -0
  2. package/lib/errors/CanceledError.d.ts +16 -0
  3. package/lib/errors/CanceledError.js +31 -0
  4. package/lib/errors/StorageError.d.ts +4 -0
  5. package/lib/errors/StorageError.js +15 -0
  6. package/lib/errors/types/validation.d.ts +14 -0
  7. package/lib/errors/types/validation.js +50 -0
  8. package/lib/errors/utils/assertValidationError.d.ts +2 -0
  9. package/lib/errors/utils/assertValidationError.js +14 -0
  10. package/lib/index.d.ts +6 -4
  11. package/lib/index.js +14 -21
  12. package/lib/providers/s3/apis/copy.d.ts +12 -0
  13. package/lib/providers/s3/apis/copy.js +21 -0
  14. package/lib/providers/s3/apis/downloadData.d.ts +32 -0
  15. package/lib/providers/s3/apis/downloadData.js +81 -0
  16. package/lib/providers/s3/apis/getProperties.d.ts +11 -0
  17. package/lib/providers/s3/apis/getProperties.js +20 -0
  18. package/lib/providers/s3/apis/getUrl.d.ts +18 -0
  19. package/lib/providers/s3/apis/getUrl.js +27 -0
  20. package/lib/providers/s3/apis/index.d.ts +7 -0
  21. package/lib/providers/s3/apis/index.js +19 -0
  22. package/lib/providers/s3/apis/internal/copy.d.ts +3 -0
  23. package/lib/providers/s3/apis/internal/copy.js +33 -0
  24. package/lib/providers/s3/apis/internal/getProperties.d.ts +4 -0
  25. package/lib/providers/s3/apis/internal/getProperties.js +30 -0
  26. package/lib/providers/s3/apis/internal/getUrl.d.ts +3 -0
  27. package/lib/providers/s3/apis/internal/getUrl.js +39 -0
  28. package/lib/providers/s3/apis/internal/list.d.ts +3 -0
  29. package/lib/providers/s3/apis/internal/list.js +71 -0
  30. package/lib/providers/s3/apis/internal/remove.d.ts +3 -0
  31. package/lib/providers/s3/apis/internal/remove.js +25 -0
  32. package/lib/providers/s3/apis/list.d.ts +22 -0
  33. package/lib/providers/s3/apis/list.js +11 -0
  34. package/lib/providers/s3/apis/remove.d.ts +9 -0
  35. package/lib/providers/s3/apis/remove.js +18 -0
  36. package/lib/providers/s3/apis/server/copy.d.ts +3 -0
  37. package/lib/providers/s3/apis/server/copy.js +11 -0
  38. package/lib/providers/s3/apis/server/getProperties.d.ts +3 -0
  39. package/lib/providers/s3/apis/server/getProperties.js +11 -0
  40. package/lib/providers/s3/apis/server/getUrl.d.ts +3 -0
  41. package/lib/providers/s3/apis/server/getUrl.js +11 -0
  42. package/lib/providers/s3/apis/server/index.d.ts +5 -0
  43. package/lib/providers/s3/apis/server/index.js +15 -0
  44. package/lib/providers/s3/apis/server/list.d.ts +23 -0
  45. package/lib/providers/s3/apis/server/list.js +11 -0
  46. package/lib/providers/s3/apis/server/remove.d.ts +3 -0
  47. package/lib/providers/s3/apis/server/remove.js +11 -0
  48. package/lib/providers/s3/apis/uploadData/byteLength.d.ts +5 -0
  49. package/lib/providers/s3/apis/uploadData/byteLength.js +37 -0
  50. package/lib/providers/s3/apis/uploadData/index.d.ts +50 -0
  51. package/lib/providers/s3/apis/uploadData/index.js +88 -0
  52. package/lib/providers/s3/apis/uploadData/multipart/calculatePartSize.d.ts +1 -0
  53. package/lib/providers/s3/apis/uploadData/multipart/calculatePartSize.js +19 -0
  54. package/lib/providers/s3/apis/uploadData/multipart/getDataChunker.d.ts +7 -0
  55. package/lib/providers/s3/apis/uploadData/multipart/getDataChunker.js +52 -0
  56. package/lib/providers/s3/apis/uploadData/multipart/index.d.ts +1 -0
  57. package/lib/providers/s3/apis/uploadData/multipart/index.js +7 -0
  58. package/lib/providers/s3/apis/uploadData/multipart/initialUpload.d.ts +30 -0
  59. package/lib/providers/s3/apis/uploadData/multipart/initialUpload.js +87 -0
  60. package/lib/providers/s3/apis/uploadData/multipart/progressTracker.d.ts +14 -0
  61. package/lib/providers/s3/apis/uploadData/multipart/progressTracker.js +29 -0
  62. package/lib/providers/s3/apis/uploadData/multipart/uploadCache.d.ts +41 -0
  63. package/lib/providers/s3/apis/uploadData/multipart/uploadCache.js +82 -0
  64. package/lib/providers/s3/apis/uploadData/multipart/uploadHandlers.d.ts +14 -0
  65. package/lib/providers/s3/apis/uploadData/multipart/uploadHandlers.js +197 -0
  66. package/lib/providers/s3/apis/uploadData/multipart/uploadPartExecutor.d.ts +17 -0
  67. package/lib/providers/s3/apis/uploadData/multipart/uploadPartExecutor.js +50 -0
  68. package/lib/providers/s3/apis/uploadData/putObjectJob.d.ts +8 -0
  69. package/lib/providers/s3/apis/uploadData/putObjectJob.js +48 -0
  70. package/lib/providers/s3/index.d.ts +3 -0
  71. package/lib/providers/s3/index.js +13 -0
  72. package/lib/providers/s3/server.d.ts +1 -0
  73. package/lib/providers/s3/server.js +6 -0
  74. package/lib/providers/s3/types/errors.d.ts +5 -0
  75. package/lib/providers/s3/types/errors.js +11 -0
  76. package/lib/providers/s3/types/index.d.ts +4 -0
  77. package/lib/providers/s3/types/index.js +7 -0
  78. package/lib/providers/s3/types/inputs.d.ts +34 -0
  79. package/lib/providers/s3/types/options.d.ts +111 -0
  80. package/lib/providers/s3/types/outputs.d.ts +52 -0
  81. package/lib/{types/Storage.js → providers/s3/types/outputs.js} +0 -3
  82. package/lib/providers/s3/utils/client/abortMultipartUpload.d.ts +29 -0
  83. package/lib/providers/s3/utils/client/abortMultipartUpload.js +36 -0
  84. package/{lib-esm/AwsClients/S3 → lib/providers/s3/utils/client}/base.d.ts +1 -1
  85. package/lib/{AwsClients/S3 → providers/s3/utils/client}/base.js +22 -24
  86. package/lib/providers/s3/utils/client/completeMultipartUpload.d.ts +28 -0
  87. package/lib/providers/s3/utils/client/completeMultipartUpload.js +103 -0
  88. package/lib/providers/s3/utils/client/copyObject.d.ts +28 -0
  89. package/lib/providers/s3/utils/client/copyObject.js +40 -0
  90. package/lib/providers/s3/utils/client/createMultipartUpload.d.ts +29 -0
  91. package/lib/providers/s3/utils/client/createMultipartUpload.js +39 -0
  92. package/lib/providers/s3/utils/client/deleteObject.d.ts +28 -0
  93. package/lib/providers/s3/utils/client/deleteObject.js +39 -0
  94. package/lib/providers/s3/utils/client/getObject.d.ts +40 -0
  95. package/lib/providers/s3/utils/client/getObject.js +110 -0
  96. package/lib/providers/s3/utils/client/headObject.d.ts +28 -0
  97. package/lib/providers/s3/utils/client/headObject.js +44 -0
  98. package/lib/providers/s3/utils/client/listObjectsV2.d.ts +28 -0
  99. package/lib/providers/s3/utils/client/listObjectsV2.js +87 -0
  100. package/lib/providers/s3/utils/client/listParts.d.ts +28 -0
  101. package/lib/providers/s3/utils/client/listParts.js +51 -0
  102. package/lib/providers/s3/utils/client/putObject.d.ts +28 -0
  103. package/lib/providers/s3/utils/client/putObject.js +44 -0
  104. package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/base64/index.browser.js +1 -1
  105. package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/base64/index.native.js +1 -1
  106. package/lib/providers/s3/utils/client/runtime/contentSha256middleware.js +25 -0
  107. package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/index.browser.d.ts +0 -1
  108. package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/index.browser.js +1 -3
  109. package/{lib-esm/AwsClients/S3 → lib/providers/s3/utils/client}/runtime/index.d.ts +1 -1
  110. package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/index.js +4 -3
  111. package/{lib-esm/AwsClients/S3 → lib/providers/s3/utils/client}/runtime/index.native.d.ts +0 -1
  112. package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/index.native.js +1 -3
  113. package/lib/providers/s3/utils/client/runtime/package.json +14 -0
  114. package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/s3TransferHandler/fetch.js +3 -3
  115. package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/s3TransferHandler/xhr.js +4 -4
  116. package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/xhrTransferHandler.d.ts +3 -4
  117. package/lib/providers/s3/utils/client/runtime/xhrTransferHandler.js +176 -0
  118. package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/xmlParser/dom.js +27 -38
  119. package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/xmlParser/pureJs.js +11 -13
  120. package/lib/providers/s3/utils/client/types.js +4 -0
  121. package/lib/providers/s3/utils/client/uploadPart.d.ts +28 -0
  122. package/lib/providers/s3/utils/client/uploadPart.js +46 -0
  123. package/lib/{AwsClients/S3 → providers/s3/utils/client}/utils/deserializeHelpers.d.ts +10 -3
  124. package/lib/{AwsClients/S3 → providers/s3/utils/client}/utils/deserializeHelpers.js +39 -61
  125. package/lib/providers/s3/utils/client/utils/index.d.ts +4 -0
  126. package/lib/{AwsClients/S3 → providers/s3/utils/client}/utils/index.js +5 -6
  127. package/lib/providers/s3/utils/client/utils/parsePayload.js +43 -0
  128. package/lib/{AwsClients/S3 → providers/s3/utils/client}/utils/serializeHelpers.d.ts +2 -9
  129. package/lib/providers/s3/utils/client/utils/serializeHelpers.js +67 -0
  130. package/lib/providers/s3/utils/constants.d.ts +9 -0
  131. package/lib/providers/s3/utils/constants.js +17 -0
  132. package/lib/providers/s3/utils/index.d.ts +3 -0
  133. package/lib/providers/s3/utils/index.js +12 -0
  134. package/lib/{common/MD5utils.d.ts → providers/s3/utils/md5.d.ts} +1 -1
  135. package/lib/providers/s3/utils/md5.js +43 -0
  136. package/lib/{common/MD5utils.native.d.ts → providers/s3/utils/md5.native.d.ts} +1 -1
  137. package/lib/providers/s3/utils/md5.native.js +39 -0
  138. package/lib/providers/s3/utils/resolveS3ConfigAndInput.d.ts +28 -0
  139. package/lib/providers/s3/utils/resolveS3ConfigAndInput.js +58 -0
  140. package/lib/providers/s3/utils/transferTask.d.ts +16 -0
  141. package/lib/providers/s3/utils/transferTask.js +69 -0
  142. package/lib/providers/s3/utils/userAgent.d.ts +2 -0
  143. package/lib/providers/s3/utils/userAgent.js +13 -0
  144. package/lib/server.d.ts +1 -0
  145. package/lib/server.js +6 -0
  146. package/lib/tsconfig.tsbuildinfo +1 -1
  147. package/lib/types/common.d.ts +36 -0
  148. package/lib/types/common.js +4 -0
  149. package/lib/types/index.d.ts +4 -3
  150. package/lib/types/index.js +0 -17
  151. package/lib/types/inputs.d.ts +27 -0
  152. package/lib/types/inputs.js +4 -0
  153. package/lib/types/options.d.ts +13 -0
  154. package/lib/types/options.js +4 -0
  155. package/lib/types/outputs.d.ts +42 -0
  156. package/lib/types/outputs.js +4 -0
  157. package/lib/utils/index.d.ts +1 -0
  158. package/lib/utils/index.js +7 -0
  159. package/lib/utils/resolvePrefix.d.ts +7 -0
  160. package/lib/utils/resolvePrefix.js +21 -0
  161. package/lib-esm/errors/CanceledError.d.ts +16 -0
  162. package/lib-esm/errors/CanceledError.js +26 -0
  163. package/lib-esm/errors/StorageError.d.ts +4 -0
  164. package/lib-esm/errors/StorageError.js +11 -0
  165. package/lib-esm/errors/types/validation.d.ts +14 -0
  166. package/lib-esm/errors/types/validation.js +47 -0
  167. package/lib-esm/errors/utils/assertValidationError.d.ts +2 -0
  168. package/lib-esm/errors/utils/assertValidationError.js +10 -0
  169. package/lib-esm/index.d.ts +6 -4
  170. package/lib-esm/index.js +4 -4
  171. package/lib-esm/providers/s3/apis/copy.d.ts +12 -0
  172. package/lib-esm/providers/s3/apis/copy.js +17 -0
  173. package/lib-esm/providers/s3/apis/downloadData.d.ts +32 -0
  174. package/lib-esm/providers/s3/apis/downloadData.js +77 -0
  175. package/lib-esm/providers/s3/apis/getProperties.d.ts +11 -0
  176. package/lib-esm/providers/s3/apis/getProperties.js +16 -0
  177. package/lib-esm/providers/s3/apis/getUrl.d.ts +18 -0
  178. package/lib-esm/providers/s3/apis/getUrl.js +23 -0
  179. package/lib-esm/providers/s3/apis/index.d.ts +7 -0
  180. package/lib-esm/providers/s3/apis/index.js +9 -0
  181. package/lib-esm/providers/s3/apis/internal/copy.d.ts +3 -0
  182. package/lib-esm/providers/s3/apis/internal/copy.js +29 -0
  183. package/lib-esm/providers/s3/apis/internal/getProperties.d.ts +4 -0
  184. package/lib-esm/providers/s3/apis/internal/getProperties.js +26 -0
  185. package/lib-esm/providers/s3/apis/internal/getUrl.d.ts +3 -0
  186. package/lib-esm/providers/s3/apis/internal/getUrl.js +35 -0
  187. package/lib-esm/providers/s3/apis/internal/list.d.ts +3 -0
  188. package/lib-esm/providers/s3/apis/internal/list.js +67 -0
  189. package/lib-esm/providers/s3/apis/internal/remove.d.ts +3 -0
  190. package/lib-esm/providers/s3/apis/internal/remove.js +21 -0
  191. package/lib-esm/providers/s3/apis/list.d.ts +22 -0
  192. package/lib-esm/providers/s3/apis/list.js +7 -0
  193. package/lib-esm/providers/s3/apis/remove.d.ts +9 -0
  194. package/lib-esm/providers/s3/apis/remove.js +14 -0
  195. package/lib-esm/providers/s3/apis/server/copy.d.ts +3 -0
  196. package/lib-esm/providers/s3/apis/server/copy.js +7 -0
  197. package/lib-esm/providers/s3/apis/server/getProperties.d.ts +3 -0
  198. package/lib-esm/providers/s3/apis/server/getProperties.js +7 -0
  199. package/lib-esm/providers/s3/apis/server/getUrl.d.ts +3 -0
  200. package/lib-esm/providers/s3/apis/server/getUrl.js +7 -0
  201. package/lib-esm/providers/s3/apis/server/index.d.ts +5 -0
  202. package/lib-esm/providers/s3/apis/server/index.js +7 -0
  203. package/lib-esm/providers/s3/apis/server/list.d.ts +23 -0
  204. package/lib-esm/providers/s3/apis/server/list.js +7 -0
  205. package/lib-esm/providers/s3/apis/server/remove.d.ts +3 -0
  206. package/lib-esm/providers/s3/apis/server/remove.js +7 -0
  207. package/lib-esm/providers/s3/apis/uploadData/byteLength.d.ts +5 -0
  208. package/lib-esm/providers/s3/apis/uploadData/byteLength.js +33 -0
  209. package/lib-esm/providers/s3/apis/uploadData/index.d.ts +50 -0
  210. package/lib-esm/providers/s3/apis/uploadData/index.js +84 -0
  211. package/lib-esm/providers/s3/apis/uploadData/multipart/calculatePartSize.d.ts +1 -0
  212. package/lib-esm/providers/s3/apis/uploadData/multipart/calculatePartSize.js +15 -0
  213. package/lib-esm/providers/s3/apis/uploadData/multipart/getDataChunker.d.ts +7 -0
  214. package/lib-esm/providers/s3/apis/uploadData/multipart/getDataChunker.js +48 -0
  215. package/lib-esm/providers/s3/apis/uploadData/multipart/index.d.ts +1 -0
  216. package/lib-esm/providers/s3/apis/uploadData/multipart/index.js +3 -0
  217. package/lib-esm/providers/s3/apis/uploadData/multipart/initialUpload.d.ts +30 -0
  218. package/lib-esm/providers/s3/apis/uploadData/multipart/initialUpload.js +83 -0
  219. package/lib-esm/providers/s3/apis/uploadData/multipart/progressTracker.d.ts +14 -0
  220. package/lib-esm/providers/s3/apis/uploadData/multipart/progressTracker.js +25 -0
  221. package/lib-esm/providers/s3/apis/uploadData/multipart/uploadCache.d.ts +41 -0
  222. package/lib-esm/providers/s3/apis/uploadData/multipart/uploadCache.js +75 -0
  223. package/lib-esm/providers/s3/apis/uploadData/multipart/uploadHandlers.d.ts +14 -0
  224. package/lib-esm/providers/s3/apis/uploadData/multipart/uploadHandlers.js +193 -0
  225. package/lib-esm/providers/s3/apis/uploadData/multipart/uploadPartExecutor.d.ts +17 -0
  226. package/lib-esm/providers/s3/apis/uploadData/multipart/uploadPartExecutor.js +46 -0
  227. package/lib-esm/providers/s3/apis/uploadData/putObjectJob.d.ts +8 -0
  228. package/lib-esm/providers/s3/apis/uploadData/putObjectJob.js +44 -0
  229. package/lib-esm/providers/s3/index.d.ts +3 -0
  230. package/lib-esm/providers/s3/index.js +3 -0
  231. package/lib-esm/providers/s3/server.d.ts +1 -0
  232. package/lib-esm/providers/s3/server.js +3 -0
  233. package/lib-esm/providers/s3/types/errors.d.ts +5 -0
  234. package/lib-esm/providers/s3/types/errors.js +8 -0
  235. package/lib-esm/providers/s3/types/index.d.ts +4 -0
  236. package/lib-esm/providers/{index.js → s3/types/index.js} +1 -1
  237. package/lib-esm/providers/s3/types/inputs.d.ts +34 -0
  238. package/lib-esm/providers/s3/types/options.d.ts +111 -0
  239. package/lib-esm/providers/s3/types/outputs.d.ts +52 -0
  240. package/lib-esm/{types/Storage.js → providers/s3/types/outputs.js} +0 -3
  241. package/lib-esm/providers/s3/utils/client/abortMultipartUpload.d.ts +29 -0
  242. package/lib-esm/providers/s3/utils/client/abortMultipartUpload.js +33 -0
  243. package/{lib/AwsClients/S3 → lib-esm/providers/s3/utils/client}/base.d.ts +1 -1
  244. package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/base.js +20 -22
  245. package/lib-esm/providers/s3/utils/client/completeMultipartUpload.d.ts +28 -0
  246. package/lib-esm/providers/s3/utils/client/completeMultipartUpload.js +100 -0
  247. package/lib-esm/providers/s3/utils/client/copyObject.d.ts +28 -0
  248. package/lib-esm/providers/s3/utils/client/copyObject.js +37 -0
  249. package/lib-esm/providers/s3/utils/client/createMultipartUpload.d.ts +29 -0
  250. package/lib-esm/providers/s3/utils/client/createMultipartUpload.js +36 -0
  251. package/lib-esm/providers/s3/utils/client/deleteObject.d.ts +28 -0
  252. package/lib-esm/providers/s3/utils/client/deleteObject.js +36 -0
  253. package/lib-esm/providers/s3/utils/client/getObject.d.ts +40 -0
  254. package/lib-esm/providers/s3/utils/client/getObject.js +106 -0
  255. package/lib-esm/providers/s3/utils/client/headObject.d.ts +28 -0
  256. package/lib-esm/providers/s3/utils/client/headObject.js +41 -0
  257. package/lib-esm/providers/s3/utils/client/listObjectsV2.d.ts +28 -0
  258. package/lib-esm/providers/s3/utils/client/listObjectsV2.js +84 -0
  259. package/lib-esm/providers/s3/utils/client/listParts.d.ts +28 -0
  260. package/lib-esm/providers/s3/utils/client/listParts.js +48 -0
  261. package/lib-esm/providers/s3/utils/client/putObject.d.ts +28 -0
  262. package/lib-esm/providers/s3/utils/client/putObject.js +41 -0
  263. package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/base64/index.browser.js +1 -1
  264. package/lib-esm/providers/s3/utils/client/runtime/constants.js +11 -0
  265. package/lib-esm/providers/s3/utils/client/runtime/contentSha256middleware.js +21 -0
  266. package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/index.browser.d.ts +0 -1
  267. package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/index.browser.js +0 -1
  268. package/{lib/AwsClients/S3 → lib-esm/providers/s3/utils/client}/runtime/index.d.ts +1 -1
  269. package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/index.js +3 -1
  270. package/{lib/AwsClients/S3 → lib-esm/providers/s3/utils/client}/runtime/index.native.d.ts +0 -1
  271. package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/index.native.js +0 -1
  272. package/lib-esm/providers/s3/utils/client/runtime/package.json +14 -0
  273. package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/s3TransferHandler/fetch.js +1 -1
  274. package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/s3TransferHandler/xhr.js +1 -1
  275. package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/xhrTransferHandler.d.ts +3 -4
  276. package/lib-esm/providers/s3/utils/client/runtime/xhrTransferHandler.js +172 -0
  277. package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/xmlParser/dom.js +28 -39
  278. package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/xmlParser/pureJs.js +11 -13
  279. package/lib-esm/providers/s3/utils/client/types.js +3 -0
  280. package/lib-esm/providers/s3/utils/client/uploadPart.d.ts +28 -0
  281. package/lib-esm/providers/s3/utils/client/uploadPart.js +43 -0
  282. package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/utils/deserializeHelpers.d.ts +10 -3
  283. package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/utils/deserializeHelpers.js +37 -60
  284. package/lib-esm/providers/s3/utils/client/utils/index.d.ts +4 -0
  285. package/lib-esm/providers/s3/utils/client/utils/index.js +6 -0
  286. package/lib-esm/providers/s3/utils/client/utils/parsePayload.js +38 -0
  287. package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/utils/serializeHelpers.d.ts +2 -9
  288. package/lib-esm/providers/s3/utils/client/utils/serializeHelpers.js +60 -0
  289. package/lib-esm/providers/s3/utils/constants.d.ts +9 -0
  290. package/lib-esm/providers/s3/utils/constants.js +14 -0
  291. package/lib-esm/providers/s3/utils/index.d.ts +3 -0
  292. package/lib-esm/providers/s3/utils/index.js +5 -0
  293. package/lib-esm/{common/MD5utils.d.ts → providers/s3/utils/md5.d.ts} +1 -1
  294. package/lib-esm/providers/s3/utils/md5.js +39 -0
  295. package/lib-esm/{common/MD5utils.native.d.ts → providers/s3/utils/md5.native.d.ts} +1 -1
  296. package/lib-esm/providers/s3/utils/md5.native.js +35 -0
  297. package/lib-esm/providers/s3/utils/resolveS3ConfigAndInput.d.ts +28 -0
  298. package/lib-esm/providers/s3/utils/resolveS3ConfigAndInput.js +54 -0
  299. package/lib-esm/providers/s3/utils/transferTask.d.ts +16 -0
  300. package/lib-esm/providers/s3/utils/transferTask.js +65 -0
  301. package/lib-esm/providers/s3/utils/userAgent.d.ts +2 -0
  302. package/lib-esm/providers/s3/utils/userAgent.js +9 -0
  303. package/lib-esm/server.d.ts +1 -0
  304. package/lib-esm/server.js +3 -0
  305. package/lib-esm/tsconfig.tsbuildinfo +1 -1
  306. package/lib-esm/types/common.d.ts +36 -0
  307. package/lib-esm/types/common.js +3 -0
  308. package/lib-esm/types/index.d.ts +4 -3
  309. package/lib-esm/types/index.js +1 -3
  310. package/lib-esm/types/inputs.d.ts +27 -0
  311. package/lib-esm/types/inputs.js +3 -0
  312. package/lib-esm/types/options.d.ts +13 -0
  313. package/lib-esm/types/options.js +3 -0
  314. package/lib-esm/types/outputs.d.ts +42 -0
  315. package/lib-esm/types/outputs.js +3 -0
  316. package/lib-esm/utils/index.d.ts +1 -0
  317. package/lib-esm/utils/index.js +3 -0
  318. package/lib-esm/utils/resolvePrefix.d.ts +7 -0
  319. package/lib-esm/utils/resolvePrefix.js +17 -0
  320. package/package.json +163 -110
  321. package/s3/package.json +7 -0
  322. package/s3/server/package.json +7 -0
  323. package/server/package.json +8 -0
  324. package/src/errors/CanceledError.ts +32 -0
  325. package/src/errors/StorageError.ts +16 -0
  326. package/src/errors/types/validation.ts +52 -0
  327. package/src/errors/utils/assertValidationError.ts +19 -0
  328. package/src/index.ts +36 -4
  329. package/src/providers/s3/apis/copy.ts +21 -0
  330. package/src/providers/s3/apis/downloadData.ts +104 -0
  331. package/src/providers/s3/apis/getProperties.ts +21 -0
  332. package/src/providers/s3/apis/getUrl.ts +27 -0
  333. package/src/providers/s3/apis/index.ts +10 -0
  334. package/src/providers/s3/apis/internal/copy.ts +56 -0
  335. package/src/providers/s3/apis/internal/getProperties.ts +41 -0
  336. package/src/providers/s3/apis/internal/getUrl.ts +60 -0
  337. package/src/providers/s3/apis/internal/list.ts +113 -0
  338. package/src/providers/s3/apis/internal/remove.ts +35 -0
  339. package/src/providers/s3/apis/list.ts +37 -0
  340. package/src/providers/s3/apis/remove.ts +17 -0
  341. package/src/providers/s3/apis/server/copy.ts +16 -0
  342. package/src/providers/s3/apis/server/getProperties.ts +19 -0
  343. package/src/providers/s3/apis/server/getUrl.ts +16 -0
  344. package/src/providers/s3/apis/server/index.ts +8 -0
  345. package/src/providers/s3/apis/server/list.ts +50 -0
  346. package/src/providers/s3/apis/server/remove.ts +16 -0
  347. package/src/providers/s3/apis/uploadData/byteLength.ts +30 -0
  348. package/src/providers/s3/apis/uploadData/index.ts +92 -0
  349. package/src/providers/s3/apis/uploadData/multipart/calculatePartSize.ts +17 -0
  350. package/src/providers/s3/apis/uploadData/multipart/getDataChunker.ts +68 -0
  351. package/src/providers/s3/apis/uploadData/multipart/index.ts +4 -0
  352. package/src/providers/s3/apis/uploadData/multipart/initialUpload.ts +135 -0
  353. package/src/providers/s3/apis/uploadData/multipart/progressTracker.ts +42 -0
  354. package/src/providers/s3/apis/uploadData/multipart/uploadCache.ts +144 -0
  355. package/src/providers/s3/apis/uploadData/multipart/uploadHandlers.ts +255 -0
  356. package/src/providers/s3/apis/uploadData/multipart/uploadPartExecutor.ts +78 -0
  357. package/src/providers/s3/apis/uploadData/putObjectJob.ts +68 -0
  358. package/src/providers/s3/index.ts +34 -0
  359. package/src/providers/s3/server.ts +4 -0
  360. package/src/providers/s3/types/errors.ts +8 -0
  361. package/src/providers/s3/types/index.ts +36 -0
  362. package/src/providers/s3/types/inputs.ts +68 -0
  363. package/src/providers/s3/types/options.ts +139 -0
  364. package/src/providers/s3/types/outputs.ts +72 -0
  365. package/src/{AwsClients/S3 → providers/s3/utils/client}/abortMultipartUpload.ts +12 -4
  366. package/src/{AwsClients/S3 → providers/s3/utils/client}/base.ts +7 -4
  367. package/src/{AwsClients/S3 → providers/s3/utils/client}/completeMultipartUpload.ts +27 -21
  368. package/src/{AwsClients/S3 → providers/s3/utils/client}/copyObject.ts +10 -17
  369. package/src/{AwsClients/S3 → providers/s3/utils/client}/createMultipartUpload.ts +7 -3
  370. package/src/{AwsClients/S3 → providers/s3/utils/client}/deleteObject.ts +9 -3
  371. package/src/{AwsClients/S3 → providers/s3/utils/client}/getObject.ts +38 -36
  372. package/src/{AwsClients/S3 → providers/s3/utils/client}/headObject.ts +16 -22
  373. package/src/{AwsClients/S3 → providers/s3/utils/client}/listObjectsV2.ts +10 -5
  374. package/src/{AwsClients/S3 → providers/s3/utils/client}/listParts.ts +14 -13
  375. package/src/{AwsClients/S3 → providers/s3/utils/client}/putObject.ts +7 -13
  376. package/src/{AwsClients/S3 → providers/s3/utils/client}/runtime/index.browser.ts +0 -1
  377. package/src/{AwsClients/S3 → providers/s3/utils/client}/runtime/index.native.ts +0 -1
  378. package/src/{AwsClients/S3 → providers/s3/utils/client}/runtime/index.ts +4 -1
  379. package/src/providers/s3/utils/client/runtime/package.json +14 -0
  380. package/src/{AwsClients/S3 → providers/s3/utils/client}/runtime/s3TransferHandler/fetch.ts +6 -4
  381. package/src/{AwsClients/S3 → providers/s3/utils/client}/runtime/xhrTransferHandler.ts +39 -56
  382. package/src/{AwsClients/S3 → providers/s3/utils/client}/runtime/xmlParser/dom.ts +1 -1
  383. package/src/{AwsClients/S3 → providers/s3/utils/client}/runtime/xmlParser/pureJs.ts +1 -1
  384. package/src/{AwsClients/S3 → providers/s3/utils/client}/uploadPart.ts +14 -16
  385. package/src/{AwsClients/S3 → providers/s3/utils/client}/utils/deserializeHelpers.ts +28 -6
  386. package/src/{AwsClients/S3 → providers/s3/utils/client}/utils/index.ts +4 -3
  387. package/src/{AwsClients/S3 → providers/s3/utils/client}/utils/serializeHelpers.ts +21 -40
  388. package/src/providers/s3/utils/constants.ts +21 -0
  389. package/src/providers/s3/utils/index.ts +6 -0
  390. package/src/{common/MD5utils.ts → providers/s3/utils/md5.native.ts} +7 -3
  391. package/src/{common/MD5utils.native.ts → providers/s3/utils/md5.ts} +7 -3
  392. package/src/providers/s3/utils/resolveS3ConfigAndInput.ts +89 -0
  393. package/src/providers/s3/utils/transferTask.ts +101 -0
  394. package/src/providers/s3/utils/userAgent.ts +14 -0
  395. package/src/server.ts +4 -0
  396. package/src/types/common.ts +57 -0
  397. package/src/types/index.ts +30 -3
  398. package/src/types/inputs.ts +56 -0
  399. package/src/types/options.ts +20 -0
  400. package/src/types/outputs.ts +50 -0
  401. package/src/{providers → utils}/index.ts +2 -1
  402. package/src/utils/resolvePrefix.ts +32 -0
  403. package/lib/AwsClients/S3/abortMultipartUpload.d.ts +0 -21
  404. package/lib/AwsClients/S3/abortMultipartUpload.js +0 -85
  405. package/lib/AwsClients/S3/completeMultipartUpload.d.ts +0 -20
  406. package/lib/AwsClients/S3/completeMultipartUpload.js +0 -162
  407. package/lib/AwsClients/S3/copyObject.d.ts +0 -24
  408. package/lib/AwsClients/S3/copyObject.js +0 -98
  409. package/lib/AwsClients/S3/createMultipartUpload.d.ts +0 -21
  410. package/lib/AwsClients/S3/createMultipartUpload.js +0 -95
  411. package/lib/AwsClients/S3/deleteObject.d.ts +0 -20
  412. package/lib/AwsClients/S3/deleteObject.js +0 -86
  413. package/lib/AwsClients/S3/getObject.d.ts +0 -27
  414. package/lib/AwsClients/S3/getObject.js +0 -216
  415. package/lib/AwsClients/S3/headObject.d.ts +0 -20
  416. package/lib/AwsClients/S3/headObject.js +0 -96
  417. package/lib/AwsClients/S3/index.native.d.ts +0 -14
  418. package/lib/AwsClients/S3/index.native.js +0 -31
  419. package/lib/AwsClients/S3/listObjectsV2.d.ts +0 -20
  420. package/lib/AwsClients/S3/listObjectsV2.js +0 -146
  421. package/lib/AwsClients/S3/listParts.d.ts +0 -20
  422. package/lib/AwsClients/S3/listParts.js +0 -110
  423. package/lib/AwsClients/S3/putObject.d.ts +0 -23
  424. package/lib/AwsClients/S3/putObject.js +0 -95
  425. package/lib/AwsClients/S3/runtime/contentSha256middleware.js +0 -70
  426. package/lib/AwsClients/S3/runtime/xhrTransferHandler.js +0 -201
  427. package/lib/AwsClients/S3/uploadPart.d.ts +0 -20
  428. package/lib/AwsClients/S3/uploadPart.js +0 -98
  429. package/lib/AwsClients/S3/utils/index.d.ts +0 -5
  430. package/lib/AwsClients/S3/utils/parsePayload.js +0 -96
  431. package/lib/AwsClients/S3/utils/serializeHelpers.js +0 -183
  432. package/lib/Storage.d.ts +0 -107
  433. package/lib/Storage.js +0 -283
  434. package/lib/common/MD5utils.js +0 -79
  435. package/lib/common/MD5utils.native.js +0 -83
  436. package/lib/common/S3ClientUtils.d.ts +0 -47
  437. package/lib/common/S3ClientUtils.js +0 -148
  438. package/lib/common/StorageConstants.d.ts +0 -3
  439. package/lib/common/StorageConstants.js +0 -10
  440. package/lib/common/StorageErrorStrings.d.ts +0 -16
  441. package/lib/common/StorageErrorStrings.js +0 -24
  442. package/lib/common/StorageUtils.d.ts +0 -4
  443. package/lib/common/StorageUtils.js +0 -47
  444. package/lib/providers/AWSS3Provider.d.ts +0 -88
  445. package/lib/providers/AWSS3Provider.js +0 -800
  446. package/lib/providers/AWSS3ProviderManagedUpload.d.ts +0 -40
  447. package/lib/providers/AWSS3ProviderManagedUpload.js +0 -425
  448. package/lib/providers/AWSS3UploadTask.d.ts +0 -107
  449. package/lib/providers/AWSS3UploadTask.js +0 -657
  450. package/lib/providers/index.d.ts +0 -1
  451. package/lib/providers/index.js +0 -7
  452. package/lib/types/AWSS3Provider.d.ts +0 -152
  453. package/lib/types/AWSS3Provider.js +0 -2
  454. package/lib/types/Provider.d.ts +0 -26
  455. package/lib/types/Storage.d.ts +0 -85
  456. package/lib-esm/AwsClients/S3/abortMultipartUpload.d.ts +0 -21
  457. package/lib-esm/AwsClients/S3/abortMultipartUpload.js +0 -82
  458. package/lib-esm/AwsClients/S3/completeMultipartUpload.d.ts +0 -20
  459. package/lib-esm/AwsClients/S3/completeMultipartUpload.js +0 -159
  460. package/lib-esm/AwsClients/S3/copyObject.d.ts +0 -24
  461. package/lib-esm/AwsClients/S3/copyObject.js +0 -95
  462. package/lib-esm/AwsClients/S3/createMultipartUpload.d.ts +0 -21
  463. package/lib-esm/AwsClients/S3/createMultipartUpload.js +0 -92
  464. package/lib-esm/AwsClients/S3/deleteObject.d.ts +0 -20
  465. package/lib-esm/AwsClients/S3/deleteObject.js +0 -83
  466. package/lib-esm/AwsClients/S3/getObject.d.ts +0 -27
  467. package/lib-esm/AwsClients/S3/getObject.js +0 -212
  468. package/lib-esm/AwsClients/S3/headObject.d.ts +0 -20
  469. package/lib-esm/AwsClients/S3/headObject.js +0 -93
  470. package/lib-esm/AwsClients/S3/index.native.d.ts +0 -14
  471. package/lib-esm/AwsClients/S3/index.native.js +0 -15
  472. package/lib-esm/AwsClients/S3/listObjectsV2.d.ts +0 -20
  473. package/lib-esm/AwsClients/S3/listObjectsV2.js +0 -143
  474. package/lib-esm/AwsClients/S3/listParts.d.ts +0 -20
  475. package/lib-esm/AwsClients/S3/listParts.js +0 -107
  476. package/lib-esm/AwsClients/S3/putObject.d.ts +0 -23
  477. package/lib-esm/AwsClients/S3/putObject.js +0 -92
  478. package/lib-esm/AwsClients/S3/runtime/constants.js +0 -11
  479. package/lib-esm/AwsClients/S3/runtime/contentSha256middleware.js +0 -66
  480. package/lib-esm/AwsClients/S3/runtime/xhrTransferHandler.js +0 -196
  481. package/lib-esm/AwsClients/S3/uploadPart.d.ts +0 -20
  482. package/lib-esm/AwsClients/S3/uploadPart.js +0 -95
  483. package/lib-esm/AwsClients/S3/utils/index.d.ts +0 -5
  484. package/lib-esm/AwsClients/S3/utils/index.js +0 -7
  485. package/lib-esm/AwsClients/S3/utils/parsePayload.js +0 -91
  486. package/lib-esm/AwsClients/S3/utils/serializeHelpers.js +0 -176
  487. package/lib-esm/Storage.d.ts +0 -107
  488. package/lib-esm/Storage.js +0 -280
  489. package/lib-esm/common/MD5utils.js +0 -75
  490. package/lib-esm/common/MD5utils.native.js +0 -79
  491. package/lib-esm/common/S3ClientUtils.d.ts +0 -47
  492. package/lib-esm/common/S3ClientUtils.js +0 -141
  493. package/lib-esm/common/StorageConstants.d.ts +0 -3
  494. package/lib-esm/common/StorageConstants.js +0 -7
  495. package/lib-esm/common/StorageErrorStrings.d.ts +0 -16
  496. package/lib-esm/common/StorageErrorStrings.js +0 -21
  497. package/lib-esm/common/StorageUtils.d.ts +0 -4
  498. package/lib-esm/common/StorageUtils.js +0 -40
  499. package/lib-esm/providers/AWSS3Provider.d.ts +0 -88
  500. package/lib-esm/providers/AWSS3Provider.js +0 -774
  501. package/lib-esm/providers/AWSS3ProviderManagedUpload.d.ts +0 -40
  502. package/lib-esm/providers/AWSS3ProviderManagedUpload.js +0 -422
  503. package/lib-esm/providers/AWSS3UploadTask.d.ts +0 -107
  504. package/lib-esm/providers/AWSS3UploadTask.js +0 -654
  505. package/lib-esm/providers/index.d.ts +0 -1
  506. package/lib-esm/types/AWSS3Provider.d.ts +0 -152
  507. package/lib-esm/types/AWSS3Provider.js +0 -1
  508. package/lib-esm/types/Provider.d.ts +0 -26
  509. package/lib-esm/types/Storage.d.ts +0 -85
  510. package/src/AwsClients/S3/index.native.ts +0 -42
  511. package/src/Storage.ts +0 -467
  512. package/src/common/S3ClientUtils.ts +0 -137
  513. package/src/common/StorageConstants.ts +0 -11
  514. package/src/common/StorageErrorStrings.ts +0 -20
  515. package/src/common/StorageUtils.ts +0 -53
  516. package/src/providers/AWSS3Provider.ts +0 -940
  517. package/src/providers/AWSS3ProviderManagedUpload.ts +0 -345
  518. package/src/providers/AWSS3UploadTask.ts +0 -550
  519. package/src/types/AWSS3Provider.ts +0 -203
  520. package/src/types/Provider.ts +0 -77
  521. package/src/types/Storage.ts +0 -215
  522. /package/lib/{AwsClients/S3/types.js → providers/s3/types/inputs.js} +0 -0
  523. /package/lib/{types/Provider.js → providers/s3/types/options.js} +0 -0
  524. /package/lib/{AwsClients/S3 → providers/s3/utils/client}/index.d.ts +0 -0
  525. /package/lib/{AwsClients/S3 → providers/s3/utils/client}/index.js +0 -0
  526. /package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/base64/index.browser.d.ts +0 -0
  527. /package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/base64/index.native.d.ts +0 -0
  528. /package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/constants.d.ts +0 -0
  529. /package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/constants.js +0 -0
  530. /package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/contentSha256middleware.d.ts +0 -0
  531. /package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/s3TransferHandler/fetch.d.ts +0 -0
  532. /package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/s3TransferHandler/xhr.d.ts +0 -0
  533. /package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/xmlParser/dom.d.ts +0 -0
  534. /package/lib/{AwsClients/S3 → providers/s3/utils/client}/runtime/xmlParser/pureJs.d.ts +0 -0
  535. /package/lib/{AwsClients/S3 → providers/s3/utils/client}/types.d.ts +0 -0
  536. /package/lib/{AwsClients/S3 → providers/s3/utils/client}/utils/parsePayload.d.ts +0 -0
  537. /package/lib-esm/{AwsClients/S3/types.js → providers/s3/types/inputs.js} +0 -0
  538. /package/lib-esm/{types/Provider.js → providers/s3/types/options.js} +0 -0
  539. /package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/index.d.ts +0 -0
  540. /package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/index.js +0 -0
  541. /package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/base64/index.browser.d.ts +0 -0
  542. /package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/base64/index.native.d.ts +0 -0
  543. /package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/base64/index.native.js +0 -0
  544. /package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/constants.d.ts +0 -0
  545. /package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/contentSha256middleware.d.ts +0 -0
  546. /package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/s3TransferHandler/fetch.d.ts +0 -0
  547. /package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/s3TransferHandler/xhr.d.ts +0 -0
  548. /package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/xmlParser/dom.d.ts +0 -0
  549. /package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/runtime/xmlParser/pureJs.d.ts +0 -0
  550. /package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/types.d.ts +0 -0
  551. /package/lib-esm/{AwsClients/S3 → providers/s3/utils/client}/utils/parsePayload.d.ts +0 -0
  552. /package/src/{AwsClients/S3 → providers/s3/utils/client}/index.ts +0 -0
  553. /package/src/{AwsClients/S3 → providers/s3/utils/client}/runtime/base64/index.browser.ts +0 -0
  554. /package/src/{AwsClients/S3 → providers/s3/utils/client}/runtime/base64/index.native.ts +0 -0
  555. /package/src/{AwsClients/S3 → providers/s3/utils/client}/runtime/constants.ts +0 -0
  556. /package/src/{AwsClients/S3 → providers/s3/utils/client}/runtime/contentSha256middleware.ts +0 -0
  557. /package/src/{AwsClients/S3 → providers/s3/utils/client}/runtime/s3TransferHandler/xhr.ts +0 -0
  558. /package/src/{AwsClients/S3 → providers/s3/utils/client}/types.ts +0 -0
  559. /package/src/{AwsClients/S3 → providers/s3/utils/client}/utils/parsePayload.ts +0 -0
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ > INTERNAL USE ONLY
2
+
3
+ This package contains the AWS Amplify Storage category and is intended for internal use only. To integrate Amplify into your app, please use [aws-amplify](https://www.npmjs.com/package/aws-amplify).
@@ -0,0 +1,16 @@
1
+ import { AmplifyErrorParams } from '@aws-amplify/core/internals/utils';
2
+ import { StorageError } from './StorageError';
3
+ /**
4
+ * Internal-only class for CanceledError thrown by XHR handler or multipart upload when cancellation is invoked
5
+ * without overwriting behavior.
6
+ *
7
+ * @internal
8
+ */
9
+ export declare class CanceledError extends StorageError {
10
+ constructor(params?: Partial<AmplifyErrorParams>);
11
+ }
12
+ /**
13
+ * Check if an error is caused by user calling `cancel()` on a upload/download task. If an overwriting error is
14
+ * supplied to `task.cancel(errorOverwrite)`, this function will return `false`.
15
+ */
16
+ export declare const isCancelError: (error: unknown) => error is CanceledError;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.isCancelError = exports.CanceledError = void 0;
6
+ const StorageError_1 = require("./StorageError");
7
+ /**
8
+ * Internal-only class for CanceledError thrown by XHR handler or multipart upload when cancellation is invoked
9
+ * without overwriting behavior.
10
+ *
11
+ * @internal
12
+ */
13
+ class CanceledError extends StorageError_1.StorageError {
14
+ constructor(params = {}) {
15
+ super({
16
+ name: 'CanceledError',
17
+ message: 'Upload is canceled by user',
18
+ ...params,
19
+ });
20
+ // TODO: Delete the following 2 lines after we change the build target to >= es2015
21
+ this.constructor = CanceledError;
22
+ Object.setPrototypeOf(this, CanceledError.prototype);
23
+ }
24
+ }
25
+ exports.CanceledError = CanceledError;
26
+ /**
27
+ * Check if an error is caused by user calling `cancel()` on a upload/download task. If an overwriting error is
28
+ * supplied to `task.cancel(errorOverwrite)`, this function will return `false`.
29
+ */
30
+ const isCancelError = (error) => !!error && error instanceof CanceledError;
31
+ exports.isCancelError = isCancelError;
@@ -0,0 +1,4 @@
1
+ import { AmplifyError, AmplifyErrorParams } from '@aws-amplify/core/internals/utils';
2
+ export declare class StorageError extends AmplifyError {
3
+ constructor(params: AmplifyErrorParams);
4
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StorageError = void 0;
4
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
5
+ // SPDX-License-Identifier: Apache-2.0
6
+ const utils_1 = require("@aws-amplify/core/internals/utils");
7
+ class StorageError extends utils_1.AmplifyError {
8
+ constructor(params) {
9
+ super(params);
10
+ // TODO: Delete the following 2 lines after we change the build target to >= es2015
11
+ this.constructor = StorageError;
12
+ Object.setPrototypeOf(this, StorageError.prototype);
13
+ }
14
+ }
15
+ exports.StorageError = StorageError;
@@ -0,0 +1,14 @@
1
+ import { AmplifyErrorMap } from '@aws-amplify/core/internals/utils';
2
+ export declare enum StorageValidationErrorCode {
3
+ NoCredentials = "NoCredentials",
4
+ NoIdentityId = "NoIdentityId",
5
+ NoKey = "NoKey",
6
+ NoSourceKey = "NoSourceKey",
7
+ NoDestinationKey = "NoDestinationKey",
8
+ NoBucket = "NoBucket",
9
+ NoRegion = "NoRegion",
10
+ UrlExpirationMaxLimitExceed = "UrlExpirationMaxLimitExceed",
11
+ ObjectIsTooLarge = "ObjectIsTooLarge",
12
+ InvalidUploadSource = "InvalidUploadSource"
13
+ }
14
+ export declare const validationErrorMap: AmplifyErrorMap<StorageValidationErrorCode>;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.validationErrorMap = exports.StorageValidationErrorCode = void 0;
6
+ var StorageValidationErrorCode;
7
+ (function (StorageValidationErrorCode) {
8
+ StorageValidationErrorCode["NoCredentials"] = "NoCredentials";
9
+ StorageValidationErrorCode["NoIdentityId"] = "NoIdentityId";
10
+ StorageValidationErrorCode["NoKey"] = "NoKey";
11
+ StorageValidationErrorCode["NoSourceKey"] = "NoSourceKey";
12
+ StorageValidationErrorCode["NoDestinationKey"] = "NoDestinationKey";
13
+ StorageValidationErrorCode["NoBucket"] = "NoBucket";
14
+ StorageValidationErrorCode["NoRegion"] = "NoRegion";
15
+ StorageValidationErrorCode["UrlExpirationMaxLimitExceed"] = "UrlExpirationMaxLimitExceed";
16
+ StorageValidationErrorCode["ObjectIsTooLarge"] = "ObjectIsTooLarge";
17
+ StorageValidationErrorCode["InvalidUploadSource"] = "InvalidUploadSource";
18
+ })(StorageValidationErrorCode = exports.StorageValidationErrorCode || (exports.StorageValidationErrorCode = {}));
19
+ exports.validationErrorMap = {
20
+ [StorageValidationErrorCode.NoCredentials]: {
21
+ message: 'Credentials should not be empty.',
22
+ },
23
+ [StorageValidationErrorCode.NoIdentityId]: {
24
+ message: 'Missing identity ID when accessing objects in protected or private access level.',
25
+ },
26
+ [StorageValidationErrorCode.NoKey]: {
27
+ message: 'Missing key in api call.',
28
+ },
29
+ [StorageValidationErrorCode.NoSourceKey]: {
30
+ message: 'Missing source key in copy api call.',
31
+ },
32
+ [StorageValidationErrorCode.NoDestinationKey]: {
33
+ message: 'Missing destination key in copy api call.',
34
+ },
35
+ [StorageValidationErrorCode.NoBucket]: {
36
+ message: 'Missing bucket name while accessing object.',
37
+ },
38
+ [StorageValidationErrorCode.NoRegion]: {
39
+ message: 'Missing region while accessing object.',
40
+ },
41
+ [StorageValidationErrorCode.UrlExpirationMaxLimitExceed]: {
42
+ message: 'Url Expiration can not be greater than 7 Days.',
43
+ },
44
+ [StorageValidationErrorCode.ObjectIsTooLarge]: {
45
+ message: 'Object size cannot not be greater than 5TB.',
46
+ },
47
+ [StorageValidationErrorCode.InvalidUploadSource]: {
48
+ message: 'Upload source type can only be a `Blob`, `File`, `ArrayBuffer`, or `string`.',
49
+ },
50
+ };
@@ -0,0 +1,2 @@
1
+ import { StorageValidationErrorCode } from '../types/validation';
2
+ export declare function assertValidationError(assertion: boolean, name: StorageValidationErrorCode): asserts assertion;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.assertValidationError = void 0;
6
+ const validation_1 = require("../types/validation");
7
+ const StorageError_1 = require("../StorageError");
8
+ function assertValidationError(assertion, name) {
9
+ const { message, recoverySuggestion } = validation_1.validationErrorMap[name];
10
+ if (!assertion) {
11
+ throw new StorageError_1.StorageError({ name, message, recoverySuggestion });
12
+ }
13
+ }
14
+ exports.assertValidationError = assertValidationError;
package/lib/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
- import { Storage, StorageInstance } from './Storage';
2
- export { Storage as StorageClass, StorageInstance as Storage };
3
- export { AWSS3Provider } from './providers';
4
- export * from './types';
1
+ export { uploadData, downloadData, remove, list, getProperties, copy, getUrl, } from './providers/s3';
2
+ export { UploadDataInput, DownloadDataInput, RemoveInput, ListAllInput, ListPaginateInput, GetPropertiesInput, CopyInput, GetUrlInput, } from './providers/s3/types/inputs';
3
+ export { UploadDataOutput, DownloadDataOutput, RemoveOutput, ListAllOutput, ListPaginateOutput, GetPropertiesOutput, CopyOutput, GetUrlOutput, } from './providers/s3/types/outputs';
4
+ export { TransferProgressEvent } from './types';
5
+ export { isCancelError } from './errors/CanceledError';
6
+ export { StorageError } from './errors/StorageError';
package/lib/index.js CHANGED
@@ -1,25 +1,18 @@
1
1
  "use strict";
2
2
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  // SPDX-License-Identifier: Apache-2.0
4
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
- if (k2 === undefined) k2 = k;
6
- var desc = Object.getOwnPropertyDescriptor(m, k);
7
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
- desc = { enumerable: true, get: function() { return m[k]; } };
9
- }
10
- Object.defineProperty(o, k2, desc);
11
- }) : (function(o, m, k, k2) {
12
- if (k2 === undefined) k2 = k;
13
- o[k2] = m[k];
14
- }));
15
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
17
- };
18
4
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.AWSS3Provider = exports.Storage = exports.StorageClass = void 0;
20
- var Storage_1 = require("./Storage");
21
- Object.defineProperty(exports, "StorageClass", { enumerable: true, get: function () { return Storage_1.Storage; } });
22
- Object.defineProperty(exports, "Storage", { enumerable: true, get: function () { return Storage_1.StorageInstance; } });
23
- var providers_1 = require("./providers");
24
- Object.defineProperty(exports, "AWSS3Provider", { enumerable: true, get: function () { return providers_1.AWSS3Provider; } });
25
- __exportStar(require("./types"), exports);
5
+ exports.StorageError = exports.isCancelError = exports.getUrl = exports.copy = exports.getProperties = exports.list = exports.remove = exports.downloadData = exports.uploadData = void 0;
6
+ var s3_1 = require("./providers/s3");
7
+ Object.defineProperty(exports, "uploadData", { enumerable: true, get: function () { return s3_1.uploadData; } });
8
+ Object.defineProperty(exports, "downloadData", { enumerable: true, get: function () { return s3_1.downloadData; } });
9
+ Object.defineProperty(exports, "remove", { enumerable: true, get: function () { return s3_1.remove; } });
10
+ Object.defineProperty(exports, "list", { enumerable: true, get: function () { return s3_1.list; } });
11
+ Object.defineProperty(exports, "getProperties", { enumerable: true, get: function () { return s3_1.getProperties; } });
12
+ Object.defineProperty(exports, "copy", { enumerable: true, get: function () { return s3_1.copy; } });
13
+ Object.defineProperty(exports, "getUrl", { enumerable: true, get: function () { return s3_1.getUrl; } });
14
+ // TODO[AllanZhengYP]: support isCancelError in Node.js with node-fetch
15
+ var CanceledError_1 = require("./errors/CanceledError");
16
+ Object.defineProperty(exports, "isCancelError", { enumerable: true, get: function () { return CanceledError_1.isCancelError; } });
17
+ var StorageError_1 = require("./errors/StorageError");
18
+ Object.defineProperty(exports, "StorageError", { enumerable: true, get: function () { return StorageError_1.StorageError; } });
@@ -0,0 +1,12 @@
1
+ import { CopyInput, CopyOutput } from '../types';
2
+ /**
3
+ * Copy an object from a source object to a new object within the same bucket. Can optionally copy files across
4
+ * different level or identityId (if source object's level is 'protected').
5
+ *
6
+ * @param input - The CopyInput object.
7
+ * @returns Output containing the destination key.
8
+ * @throws service: {@link S3Exception} - Thrown when checking for existence of the object
9
+ * @throws validation: {@link StorageValidationErrorCode } - Thrown when
10
+ * source or destination key are not defined.
11
+ */
12
+ export declare const copy: (input: CopyInput) => Promise<CopyOutput>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.copy = void 0;
6
+ const core_1 = require("@aws-amplify/core");
7
+ const copy_1 = require("./internal/copy");
8
+ /**
9
+ * Copy an object from a source object to a new object within the same bucket. Can optionally copy files across
10
+ * different level or identityId (if source object's level is 'protected').
11
+ *
12
+ * @param input - The CopyInput object.
13
+ * @returns Output containing the destination key.
14
+ * @throws service: {@link S3Exception} - Thrown when checking for existence of the object
15
+ * @throws validation: {@link StorageValidationErrorCode } - Thrown when
16
+ * source or destination key are not defined.
17
+ */
18
+ const copy = async (input) => {
19
+ return (0, copy_1.copy)(core_1.Amplify, input);
20
+ };
21
+ exports.copy = copy;
@@ -0,0 +1,32 @@
1
+ import { DownloadDataInput, DownloadDataOutput } from '../types';
2
+ /**
3
+ * Download S3 object data to memory
4
+ *
5
+ * @param input - The DownloadDataInput object.
6
+ * @returns A cancelable task exposing result promise from `result` property.
7
+ * @throws service: {@link S3Exception} - thrown when checking for existence of the object
8
+ * @throws validation: {@link StorageValidationErrorCode } - Validation errors
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * // Download a file from s3 bucket
13
+ * const { body, eTag } = await downloadData({ key, data: file, options: {
14
+ * onProgress, // Optional progress callback.
15
+ * } }).result;
16
+ * ```
17
+ * @example
18
+ * ```ts
19
+ * // Cancel a task
20
+ * const downloadTask = downloadData({ key, data: file });
21
+ * //...
22
+ * downloadTask.cancel();
23
+ * try {
24
+ * await downloadTask.result;
25
+ * } catch (error) {
26
+ * if(isCancelError(error)) {
27
+ * // Handle error thrown by task cancelation.
28
+ * }
29
+ * }
30
+ *```
31
+ */
32
+ export declare const downloadData: (input: DownloadDataInput) => DownloadDataOutput;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.downloadData = void 0;
6
+ const core_1 = require("@aws-amplify/core");
7
+ const utils_1 = require("@aws-amplify/core/internals/utils");
8
+ const resolveS3ConfigAndInput_1 = require("../utils/resolveS3ConfigAndInput");
9
+ const utils_2 = require("../utils");
10
+ const client_1 = require("../utils/client");
11
+ const userAgent_1 = require("../utils/userAgent");
12
+ /**
13
+ * Download S3 object data to memory
14
+ *
15
+ * @param input - The DownloadDataInput object.
16
+ * @returns A cancelable task exposing result promise from `result` property.
17
+ * @throws service: {@link S3Exception} - thrown when checking for existence of the object
18
+ * @throws validation: {@link StorageValidationErrorCode } - Validation errors
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * // Download a file from s3 bucket
23
+ * const { body, eTag } = await downloadData({ key, data: file, options: {
24
+ * onProgress, // Optional progress callback.
25
+ * } }).result;
26
+ * ```
27
+ * @example
28
+ * ```ts
29
+ * // Cancel a task
30
+ * const downloadTask = downloadData({ key, data: file });
31
+ * //...
32
+ * downloadTask.cancel();
33
+ * try {
34
+ * await downloadTask.result;
35
+ * } catch (error) {
36
+ * if(isCancelError(error)) {
37
+ * // Handle error thrown by task cancelation.
38
+ * }
39
+ * }
40
+ *```
41
+ */
42
+ const downloadData = (input) => {
43
+ const abortController = new AbortController();
44
+ const downloadTask = (0, utils_2.createDownloadTask)({
45
+ job: downloadDataJob(input, abortController.signal),
46
+ onCancel: (message) => {
47
+ abortController.abort(message);
48
+ },
49
+ });
50
+ return downloadTask;
51
+ };
52
+ exports.downloadData = downloadData;
53
+ const downloadDataJob = ({ options: downloadDataOptions, key }, abortSignal) => async () => {
54
+ const { bucket, keyPrefix, s3Config } = await (0, resolveS3ConfigAndInput_1.resolveS3ConfigAndInput)(core_1.Amplify, downloadDataOptions);
55
+ // TODO[AllanZhengYP]: support excludeSubPaths option to exclude sub paths
56
+ const finalKey = keyPrefix + key;
57
+ const { Body: body, LastModified: lastModified, ContentLength: size, ETag: eTag, Metadata: metadata, VersionId: versionId, ContentType: contentType, } = await (0, client_1.getObject)({
58
+ ...s3Config,
59
+ abortSignal,
60
+ onDownloadProgress: downloadDataOptions?.onProgress,
61
+ userAgentValue: (0, userAgent_1.getStorageUserAgentValue)(utils_1.StorageAction.DownloadData),
62
+ }, {
63
+ Bucket: bucket,
64
+ Key: finalKey,
65
+ ...(downloadDataOptions?.bytesRange && {
66
+ Range: `bytes=${downloadDataOptions.bytesRange.start}-${downloadDataOptions.bytesRange.end}`,
67
+ }),
68
+ });
69
+ return {
70
+ // Casting with ! as body always exists for getObject API.
71
+ // TODO[AllanZhengYP]: remove casting when we have better typing for getObject API
72
+ key,
73
+ body: body,
74
+ lastModified,
75
+ size,
76
+ contentType,
77
+ eTag,
78
+ metadata,
79
+ versionId,
80
+ };
81
+ };
@@ -0,0 +1,11 @@
1
+ import { GetPropertiesOutput, GetPropertiesInput } from '../types';
2
+ /**
3
+ * Gets the properties of a file. The properties include S3 system metadata and
4
+ * the user metadata that was provided when uploading the file.
5
+ *
6
+ * @param input - The GetPropertiesInput object.
7
+ * @returns Requested object properties.
8
+ * @throws A {@link S3Exception} when the underlying S3 service returned error.
9
+ * @throws A {@link StorageValidationErrorCode} when API call parameters are invalid.
10
+ */
11
+ export declare const getProperties: (input: GetPropertiesInput) => Promise<GetPropertiesOutput>;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.getProperties = void 0;
6
+ const core_1 = require("@aws-amplify/core");
7
+ const getProperties_1 = require("./internal/getProperties");
8
+ /**
9
+ * Gets the properties of a file. The properties include S3 system metadata and
10
+ * the user metadata that was provided when uploading the file.
11
+ *
12
+ * @param input - The GetPropertiesInput object.
13
+ * @returns Requested object properties.
14
+ * @throws A {@link S3Exception} when the underlying S3 service returned error.
15
+ * @throws A {@link StorageValidationErrorCode} when API call parameters are invalid.
16
+ */
17
+ const getProperties = (input) => {
18
+ return (0, getProperties_1.getProperties)(core_1.Amplify, input);
19
+ };
20
+ exports.getProperties = getProperties;
@@ -0,0 +1,18 @@
1
+ import { GetUrlInput, GetUrlOutput } from '../types';
2
+ /**
3
+ * Get a temporary presigned URL to download the specified S3 object.
4
+ * The presigned URL expires when the associated role used to sign the request expires or
5
+ * the option `expiresIn` is reached. The `expiresAt` property in the output object indicates when the URL MAY expire.
6
+ *
7
+ * By default, it will not validate the object that exists in S3. If you set the `options.validateObjectExistence`
8
+ * to true, this method will verify the given object already exists in S3 before returning a presigned
9
+ * URL, and will throw {@link StorageError} if the object does not exist.
10
+ *
11
+ * @param input - The GetUrlInput object.
12
+ * @returns Presigned URL and timestamp when the URL MAY expire.
13
+ * @throws service: {@link S3Exception} - thrown when checking for existence of the object
14
+ * @throws validation: {@link StorageValidationErrorCode } - Validation errors
15
+ * thrown either username or key are not defined.
16
+ *
17
+ */
18
+ export declare const getUrl: (input: GetUrlInput) => Promise<GetUrlOutput>;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.getUrl = void 0;
6
+ const core_1 = require("@aws-amplify/core");
7
+ const getUrl_1 = require("./internal/getUrl");
8
+ /**
9
+ * Get a temporary presigned URL to download the specified S3 object.
10
+ * The presigned URL expires when the associated role used to sign the request expires or
11
+ * the option `expiresIn` is reached. The `expiresAt` property in the output object indicates when the URL MAY expire.
12
+ *
13
+ * By default, it will not validate the object that exists in S3. If you set the `options.validateObjectExistence`
14
+ * to true, this method will verify the given object already exists in S3 before returning a presigned
15
+ * URL, and will throw {@link StorageError} if the object does not exist.
16
+ *
17
+ * @param input - The GetUrlInput object.
18
+ * @returns Presigned URL and timestamp when the URL MAY expire.
19
+ * @throws service: {@link S3Exception} - thrown when checking for existence of the object
20
+ * @throws validation: {@link StorageValidationErrorCode } - Validation errors
21
+ * thrown either username or key are not defined.
22
+ *
23
+ */
24
+ const getUrl = (input) => {
25
+ return (0, getUrl_1.getUrl)(core_1.Amplify, input);
26
+ };
27
+ exports.getUrl = getUrl;
@@ -0,0 +1,7 @@
1
+ export { uploadData } from './uploadData';
2
+ export { downloadData } from './downloadData';
3
+ export { remove } from './remove';
4
+ export { list } from './list';
5
+ export { getProperties } from './getProperties';
6
+ export { copy } from './copy';
7
+ export { getUrl } from './getUrl';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.getUrl = exports.copy = exports.getProperties = exports.list = exports.remove = exports.downloadData = exports.uploadData = void 0;
6
+ var uploadData_1 = require("./uploadData");
7
+ Object.defineProperty(exports, "uploadData", { enumerable: true, get: function () { return uploadData_1.uploadData; } });
8
+ var downloadData_1 = require("./downloadData");
9
+ Object.defineProperty(exports, "downloadData", { enumerable: true, get: function () { return downloadData_1.downloadData; } });
10
+ var remove_1 = require("./remove");
11
+ Object.defineProperty(exports, "remove", { enumerable: true, get: function () { return remove_1.remove; } });
12
+ var list_1 = require("./list");
13
+ Object.defineProperty(exports, "list", { enumerable: true, get: function () { return list_1.list; } });
14
+ var getProperties_1 = require("./getProperties");
15
+ Object.defineProperty(exports, "getProperties", { enumerable: true, get: function () { return getProperties_1.getProperties; } });
16
+ var copy_1 = require("./copy");
17
+ Object.defineProperty(exports, "copy", { enumerable: true, get: function () { return copy_1.copy; } });
18
+ var getUrl_1 = require("./getUrl");
19
+ Object.defineProperty(exports, "getUrl", { enumerable: true, get: function () { return getUrl_1.getUrl; } });
@@ -0,0 +1,3 @@
1
+ import { AmplifyClassV6 } from '@aws-amplify/core';
2
+ import { CopyInput, CopyOutput } from '../../types';
3
+ export declare const copy: (amplify: AmplifyClassV6, input: CopyInput) => Promise<CopyOutput>;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.copy = void 0;
6
+ const utils_1 = require("@aws-amplify/core/internals/utils");
7
+ const utils_2 = require("../../utils");
8
+ const validation_1 = require("../../../../errors/types/validation");
9
+ const assertValidationError_1 = require("../../../../errors/utils/assertValidationError");
10
+ const client_1 = require("../../utils/client");
11
+ const userAgent_1 = require("../../utils/userAgent");
12
+ const copy = async (amplify, input) => {
13
+ const { source: { key: sourceKey }, destination: { key: destinationKey }, } = input;
14
+ (0, assertValidationError_1.assertValidationError)(!!sourceKey, validation_1.StorageValidationErrorCode.NoSourceKey);
15
+ (0, assertValidationError_1.assertValidationError)(!!destinationKey, validation_1.StorageValidationErrorCode.NoDestinationKey);
16
+ const { s3Config, bucket, keyPrefix: sourceKeyPrefix, } = await (0, utils_2.resolveS3ConfigAndInput)(amplify, input.source);
17
+ const { keyPrefix: destinationKeyPrefix } = await (0, utils_2.resolveS3ConfigAndInput)(amplify, input.destination); // resolveS3ConfigAndInput does not make extra API calls or storage access if called repeatedly.
18
+ // TODO(ashwinkumar6) V6-logger: warn `You may copy files from another user if the source level is "protected", currently it's ${srcLevel}`
19
+ // TODO(ashwinkumar6) V6-logger: debug `copying ${finalSrcKey} to ${finalDestKey}`
20
+ await (0, client_1.copyObject)({
21
+ ...s3Config,
22
+ userAgentValue: (0, userAgent_1.getStorageUserAgentValue)(utils_1.StorageAction.Copy)
23
+ }, {
24
+ Bucket: bucket,
25
+ CopySource: `${bucket}/${sourceKeyPrefix}${sourceKey}`,
26
+ Key: `${destinationKeyPrefix}${destinationKey}`,
27
+ MetadataDirective: 'COPY', // Copies over metadata like contentType as well
28
+ });
29
+ return {
30
+ key: destinationKey,
31
+ };
32
+ };
33
+ exports.copy = copy;
@@ -0,0 +1,4 @@
1
+ import { AmplifyClassV6 } from '@aws-amplify/core';
2
+ import { StorageAction } from '@aws-amplify/core/internals/utils';
3
+ import { GetPropertiesInput, GetPropertiesOutput } from '../../types';
4
+ export declare const getProperties: (amplify: AmplifyClassV6, input: GetPropertiesInput, action?: StorageAction) => Promise<GetPropertiesOutput>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.getProperties = void 0;
6
+ const utils_1 = require("@aws-amplify/core/internals/utils");
7
+ const utils_2 = require("../../utils");
8
+ const client_1 = require("../../utils/client");
9
+ const userAgent_1 = require("../../utils/userAgent");
10
+ const getProperties = async function (amplify, input, action) {
11
+ const { key, options } = input;
12
+ const { s3Config, bucket, keyPrefix } = await (0, utils_2.resolveS3ConfigAndInput)(amplify, options);
13
+ const response = await (0, client_1.headObject)({
14
+ ...s3Config,
15
+ userAgentValue: (0, userAgent_1.getStorageUserAgentValue)(action ?? utils_1.StorageAction.GetProperties)
16
+ }, {
17
+ Bucket: bucket,
18
+ Key: `${keyPrefix}${key}`,
19
+ });
20
+ return {
21
+ key,
22
+ contentType: response.ContentType,
23
+ size: response.ContentLength,
24
+ eTag: response.ETag,
25
+ lastModified: response.LastModified,
26
+ metadata: response.Metadata,
27
+ versionId: response.VersionId,
28
+ };
29
+ };
30
+ exports.getProperties = getProperties;
@@ -0,0 +1,3 @@
1
+ import { AmplifyClassV6 } from '@aws-amplify/core';
2
+ import { GetUrlInput, GetUrlOutput } from '../../types';
3
+ export declare const getUrl: (amplify: AmplifyClassV6, input: GetUrlInput) => Promise<GetUrlOutput>;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.getUrl = void 0;
6
+ const validation_1 = require("../../../../errors/types/validation");
7
+ const client_1 = require("../../utils/client");
8
+ const getProperties_1 = require("./getProperties");
9
+ const utils_1 = require("../../utils");
10
+ const assertValidationError_1 = require("../../../../errors/utils/assertValidationError");
11
+ const constants_1 = require("../../utils/constants");
12
+ const utils_2 = require("@aws-amplify/core/internals/utils");
13
+ const getUrl = async function (amplify, input) {
14
+ const { key, options } = input;
15
+ if (options?.validateObjectExistence) {
16
+ await (0, getProperties_1.getProperties)(amplify, { key, options }, utils_2.StorageAction.GetUrl);
17
+ }
18
+ const { s3Config, keyPrefix, bucket } = await (0, utils_1.resolveS3ConfigAndInput)(amplify, options);
19
+ let urlExpirationInSec = options?.expiresIn ?? constants_1.DEFAULT_PRESIGN_EXPIRATION;
20
+ const awsCredExpiration = s3Config.credentials?.expiration;
21
+ if (awsCredExpiration) {
22
+ const awsCredExpirationInSec = Math.floor((awsCredExpiration.getTime() - Date.now()) / 1000);
23
+ urlExpirationInSec = Math.min(awsCredExpirationInSec, urlExpirationInSec);
24
+ }
25
+ const maxUrlExpirationInSec = constants_1.MAX_URL_EXPIRATION / 1000;
26
+ (0, assertValidationError_1.assertValidationError)(urlExpirationInSec <= maxUrlExpirationInSec, validation_1.StorageValidationErrorCode.UrlExpirationMaxLimitExceed);
27
+ // expiresAt is the minimum of credential expiration and url expiration
28
+ return {
29
+ url: await (0, client_1.getPresignedGetObjectUrl)({
30
+ ...s3Config,
31
+ expiration: urlExpirationInSec,
32
+ }, {
33
+ Bucket: bucket,
34
+ Key: `${keyPrefix}${key}`,
35
+ }),
36
+ expiresAt: new Date(Date.now() + urlExpirationInSec * 1000),
37
+ };
38
+ };
39
+ exports.getUrl = getUrl;
@@ -0,0 +1,3 @@
1
+ import { AmplifyClassV6 } from '@aws-amplify/core';
2
+ import { ListAllInput, ListPaginateInput, ListAllOutput, ListPaginateOutput } from '../../types';
3
+ export declare const list: (amplify: AmplifyClassV6, input?: ListAllInput | ListPaginateInput) => Promise<ListAllOutput | ListPaginateOutput>;