@aws-amplify/storage 5.6.4-api-v6.2 → 5.6.4-api-v6.13

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 (251) hide show
  1. package/lib/AwsClients/S3/abortMultipartUpload.d.ts +21 -0
  2. package/lib/AwsClients/S3/abortMultipartUpload.js +85 -0
  3. package/lib/AwsClients/S3/base.d.ts +54 -0
  4. package/lib/AwsClients/S3/base.js +75 -0
  5. package/lib/AwsClients/S3/completeMultipartUpload.d.ts +20 -0
  6. package/lib/AwsClients/S3/completeMultipartUpload.js +162 -0
  7. package/lib/AwsClients/S3/copyObject.d.ts +24 -0
  8. package/lib/AwsClients/S3/copyObject.js +98 -0
  9. package/lib/AwsClients/S3/createMultipartUpload.d.ts +21 -0
  10. package/lib/AwsClients/S3/createMultipartUpload.js +95 -0
  11. package/lib/AwsClients/S3/deleteObject.d.ts +20 -0
  12. package/lib/AwsClients/S3/deleteObject.js +86 -0
  13. package/lib/AwsClients/S3/getObject.d.ts +27 -0
  14. package/lib/AwsClients/S3/getObject.js +216 -0
  15. package/lib/AwsClients/S3/headObject.d.ts +20 -0
  16. package/lib/AwsClients/S3/headObject.js +96 -0
  17. package/lib/AwsClients/S3/index.d.ts +13 -0
  18. package/lib/AwsClients/S3/index.js +30 -0
  19. package/lib/AwsClients/S3/index.native.d.ts +14 -0
  20. package/lib/AwsClients/S3/index.native.js +31 -0
  21. package/lib/AwsClients/S3/listObjectsV2.d.ts +20 -0
  22. package/lib/AwsClients/S3/listObjectsV2.js +146 -0
  23. package/lib/AwsClients/S3/listParts.d.ts +20 -0
  24. package/lib/AwsClients/S3/listParts.js +110 -0
  25. package/lib/AwsClients/S3/putObject.d.ts +23 -0
  26. package/lib/AwsClients/S3/putObject.js +93 -0
  27. package/lib/AwsClients/S3/runtime/base64/index.browser.d.ts +2 -0
  28. package/lib/AwsClients/S3/runtime/base64/index.browser.js +20 -0
  29. package/lib/AwsClients/S3/runtime/base64/index.native.d.ts +2 -0
  30. package/lib/AwsClients/S3/runtime/base64/index.native.js +17 -0
  31. package/lib/AwsClients/S3/runtime/constants.d.ts +9 -0
  32. package/lib/AwsClients/S3/runtime/constants.js +14 -0
  33. package/lib/AwsClients/S3/runtime/contentSha256middleware.d.ts +9 -0
  34. package/lib/AwsClients/S3/runtime/contentSha256middleware.js +70 -0
  35. package/lib/AwsClients/S3/runtime/index.browser.d.ts +5 -0
  36. package/lib/AwsClients/S3/runtime/index.browser.js +20 -0
  37. package/lib/AwsClients/S3/runtime/index.d.ts +5 -0
  38. package/lib/AwsClients/S3/runtime/index.js +21 -0
  39. package/lib/AwsClients/S3/runtime/index.native.d.ts +5 -0
  40. package/lib/AwsClients/S3/runtime/index.native.js +20 -0
  41. package/lib/AwsClients/S3/runtime/s3TransferHandler/fetch.d.ts +8 -0
  42. package/lib/AwsClients/S3/runtime/s3TransferHandler/fetch.js +15 -0
  43. package/lib/AwsClients/S3/runtime/s3TransferHandler/xhr.d.ts +8 -0
  44. package/lib/AwsClients/S3/runtime/s3TransferHandler/xhr.js +21 -0
  45. package/lib/AwsClients/S3/runtime/xhrTransferHandler.d.ts +22 -0
  46. package/lib/AwsClients/S3/runtime/xhrTransferHandler.js +201 -0
  47. package/lib/AwsClients/S3/runtime/xmlParser/dom.d.ts +8 -0
  48. package/lib/AwsClients/S3/runtime/xmlParser/dom.js +92 -0
  49. package/lib/AwsClients/S3/runtime/xmlParser/pureJs.d.ts +10 -0
  50. package/lib/AwsClients/S3/runtime/xmlParser/pureJs.js +57 -0
  51. package/lib/AwsClients/S3/types.d.ts +2857 -0
  52. package/lib/AwsClients/S3/types.js +4 -0
  53. package/lib/AwsClients/S3/uploadPart.d.ts +20 -0
  54. package/lib/AwsClients/S3/uploadPart.js +96 -0
  55. package/lib/AwsClients/S3/utils/deserializeHelpers.d.ts +78 -0
  56. package/lib/AwsClients/S3/utils/deserializeHelpers.js +153 -0
  57. package/lib/AwsClients/S3/utils/index.d.ts +5 -0
  58. package/lib/AwsClients/S3/utils/index.js +30 -0
  59. package/lib/AwsClients/S3/utils/parsePayload.d.ts +3 -0
  60. package/lib/AwsClients/S3/utils/parsePayload.js +96 -0
  61. package/lib/AwsClients/S3/utils/serializeHelpers.d.ts +42 -0
  62. package/lib/AwsClients/S3/utils/serializeHelpers.js +183 -0
  63. package/lib/Storage.d.ts +5 -5
  64. package/lib/Storage.js +60 -31
  65. package/lib/common/S3ClientUtils.d.ts +24 -15
  66. package/lib/common/S3ClientUtils.js +83 -95
  67. package/lib/common/StorageConstants.d.ts +0 -1
  68. package/lib/common/StorageConstants.js +3 -2
  69. package/lib/common/StorageErrorStrings.js +3 -1
  70. package/lib/common/StorageUtils.js +12 -6
  71. package/lib/index.js +19 -4
  72. package/lib/providers/AWSS3Provider.d.ts +4 -8
  73. package/lib/providers/AWSS3Provider.js +210 -139
  74. package/lib/providers/AWSS3ProviderManagedUpload.d.ts +7 -7
  75. package/lib/providers/AWSS3ProviderManagedUpload.js +184 -98
  76. package/lib/providers/AWSS3UploadTask.d.ts +8 -8
  77. package/lib/providers/AWSS3UploadTask.js +226 -129
  78. package/lib/providers/index.js +4 -2
  79. package/lib/tsconfig.tsbuildinfo +1 -0
  80. package/lib/types/AWSS3Provider.d.ts +62 -62
  81. package/lib/types/AWSS3Provider.js +0 -1
  82. package/lib/types/Provider.d.ts +1 -1
  83. package/lib/types/Provider.js +0 -1
  84. package/lib/types/Storage.d.ts +23 -23
  85. package/lib/types/Storage.js +0 -1
  86. package/lib/types/index.js +17 -1
  87. package/lib-esm/AwsClients/S3/abortMultipartUpload.d.ts +21 -0
  88. package/lib-esm/AwsClients/S3/abortMultipartUpload.js +82 -0
  89. package/lib-esm/AwsClients/S3/base.d.ts +54 -0
  90. package/lib-esm/AwsClients/S3/base.js +71 -0
  91. package/lib-esm/AwsClients/S3/completeMultipartUpload.d.ts +20 -0
  92. package/lib-esm/AwsClients/S3/completeMultipartUpload.js +159 -0
  93. package/lib-esm/AwsClients/S3/copyObject.d.ts +24 -0
  94. package/lib-esm/AwsClients/S3/copyObject.js +95 -0
  95. package/lib-esm/AwsClients/S3/createMultipartUpload.d.ts +21 -0
  96. package/lib-esm/AwsClients/S3/createMultipartUpload.js +92 -0
  97. package/lib-esm/AwsClients/S3/deleteObject.d.ts +20 -0
  98. package/lib-esm/AwsClients/S3/deleteObject.js +83 -0
  99. package/lib-esm/AwsClients/S3/getObject.d.ts +27 -0
  100. package/lib-esm/AwsClients/S3/getObject.js +212 -0
  101. package/lib-esm/AwsClients/S3/headObject.d.ts +20 -0
  102. package/lib-esm/AwsClients/S3/headObject.js +93 -0
  103. package/lib-esm/AwsClients/S3/index.d.ts +13 -0
  104. package/lib-esm/AwsClients/S3/index.js +14 -0
  105. package/lib-esm/AwsClients/S3/index.native.d.ts +14 -0
  106. package/lib-esm/AwsClients/S3/index.native.js +15 -0
  107. package/lib-esm/AwsClients/S3/listObjectsV2.d.ts +20 -0
  108. package/lib-esm/AwsClients/S3/listObjectsV2.js +143 -0
  109. package/lib-esm/AwsClients/S3/listParts.d.ts +20 -0
  110. package/lib-esm/AwsClients/S3/listParts.js +107 -0
  111. package/lib-esm/AwsClients/S3/putObject.d.ts +23 -0
  112. package/lib-esm/AwsClients/S3/putObject.js +90 -0
  113. package/lib-esm/AwsClients/S3/runtime/base64/index.browser.d.ts +2 -0
  114. package/lib-esm/AwsClients/S3/runtime/base64/index.browser.js +15 -0
  115. package/lib-esm/AwsClients/S3/runtime/base64/index.native.d.ts +2 -0
  116. package/lib-esm/AwsClients/S3/runtime/base64/index.native.js +12 -0
  117. package/lib-esm/AwsClients/S3/runtime/constants.d.ts +9 -0
  118. package/lib-esm/AwsClients/S3/runtime/constants.js +11 -0
  119. package/lib-esm/AwsClients/S3/runtime/contentSha256middleware.d.ts +9 -0
  120. package/lib-esm/AwsClients/S3/runtime/contentSha256middleware.js +66 -0
  121. package/lib-esm/AwsClients/S3/runtime/index.browser.d.ts +5 -0
  122. package/lib-esm/AwsClients/S3/runtime/index.browser.js +8 -0
  123. package/lib-esm/AwsClients/S3/runtime/index.d.ts +5 -0
  124. package/lib-esm/AwsClients/S3/runtime/index.js +9 -0
  125. package/lib-esm/AwsClients/S3/runtime/index.native.d.ts +5 -0
  126. package/lib-esm/AwsClients/S3/runtime/index.native.js +8 -0
  127. package/lib-esm/AwsClients/S3/runtime/s3TransferHandler/fetch.d.ts +8 -0
  128. package/lib-esm/AwsClients/S3/runtime/s3TransferHandler/fetch.js +12 -0
  129. package/lib-esm/AwsClients/S3/runtime/s3TransferHandler/xhr.d.ts +8 -0
  130. package/lib-esm/AwsClients/S3/runtime/s3TransferHandler/xhr.js +18 -0
  131. package/lib-esm/AwsClients/S3/runtime/xhrTransferHandler.d.ts +22 -0
  132. package/lib-esm/AwsClients/S3/runtime/xhrTransferHandler.js +196 -0
  133. package/lib-esm/AwsClients/S3/runtime/xmlParser/dom.d.ts +8 -0
  134. package/lib-esm/AwsClients/S3/runtime/xmlParser/dom.js +89 -0
  135. package/lib-esm/AwsClients/S3/runtime/xmlParser/pureJs.d.ts +10 -0
  136. package/lib-esm/AwsClients/S3/runtime/xmlParser/pureJs.js +54 -0
  137. package/lib-esm/AwsClients/S3/types.d.ts +2857 -0
  138. package/lib-esm/AwsClients/S3/types.js +3 -0
  139. package/lib-esm/AwsClients/S3/uploadPart.d.ts +20 -0
  140. package/lib-esm/AwsClients/S3/uploadPart.js +93 -0
  141. package/lib-esm/AwsClients/S3/utils/deserializeHelpers.d.ts +78 -0
  142. package/lib-esm/AwsClients/S3/utils/deserializeHelpers.js +144 -0
  143. package/lib-esm/AwsClients/S3/utils/index.d.ts +5 -0
  144. package/lib-esm/AwsClients/S3/utils/index.js +7 -0
  145. package/lib-esm/AwsClients/S3/utils/parsePayload.d.ts +3 -0
  146. package/lib-esm/AwsClients/S3/utils/parsePayload.js +91 -0
  147. package/lib-esm/AwsClients/S3/utils/serializeHelpers.d.ts +42 -0
  148. package/lib-esm/AwsClients/S3/utils/serializeHelpers.js +176 -0
  149. package/lib-esm/Storage.d.ts +5 -5
  150. package/lib-esm/Storage.js +53 -25
  151. package/lib-esm/common/S3ClientUtils.d.ts +24 -15
  152. package/lib-esm/common/S3ClientUtils.js +76 -93
  153. package/lib-esm/common/StorageConstants.d.ts +0 -1
  154. package/lib-esm/common/StorageConstants.js +2 -2
  155. package/lib-esm/common/StorageErrorStrings.js +2 -1
  156. package/lib-esm/common/StorageUtils.js +2 -1
  157. package/lib-esm/index.js +1 -1
  158. package/lib-esm/providers/AWSS3Provider.d.ts +4 -8
  159. package/lib-esm/providers/AWSS3Provider.js +162 -115
  160. package/lib-esm/providers/AWSS3ProviderManagedUpload.d.ts +7 -7
  161. package/lib-esm/providers/AWSS3ProviderManagedUpload.js +172 -87
  162. package/lib-esm/providers/AWSS3UploadTask.d.ts +8 -8
  163. package/lib-esm/providers/AWSS3UploadTask.js +202 -106
  164. package/lib-esm/providers/index.js +2 -1
  165. package/lib-esm/tsconfig.tsbuildinfo +1 -0
  166. package/lib-esm/types/AWSS3Provider.d.ts +62 -62
  167. package/lib-esm/types/AWSS3Provider.js +1 -1
  168. package/lib-esm/types/Provider.d.ts +1 -1
  169. package/lib-esm/types/Provider.js +1 -1
  170. package/lib-esm/types/Storage.d.ts +23 -23
  171. package/lib-esm/types/Storage.js +1 -1
  172. package/lib-esm/types/index.js +3 -1
  173. package/package.json +21 -26
  174. package/src/AwsClients/S3/abortMultipartUpload.ts +62 -0
  175. package/src/AwsClients/S3/base.ts +109 -0
  176. package/src/AwsClients/S3/completeMultipartUpload.ts +154 -0
  177. package/src/AwsClients/S3/copyObject.ts +90 -0
  178. package/src/AwsClients/S3/createMultipartUpload.ts +75 -0
  179. package/src/AwsClients/S3/deleteObject.ts +69 -0
  180. package/src/AwsClients/S3/getObject.ts +173 -0
  181. package/src/AwsClients/S3/headObject.ts +91 -0
  182. package/src/AwsClients/S3/index.native.ts +42 -0
  183. package/src/AwsClients/S3/index.ts +41 -0
  184. package/src/AwsClients/S3/listObjectsV2.ts +130 -0
  185. package/src/AwsClients/S3/listParts.ts +97 -0
  186. package/src/AwsClients/S3/putObject.ts +94 -0
  187. package/src/AwsClients/S3/runtime/base64/index.browser.ts +21 -0
  188. package/src/AwsClients/S3/runtime/base64/index.native.ts +16 -0
  189. package/src/AwsClients/S3/runtime/constants.ts +16 -0
  190. package/src/AwsClients/S3/runtime/contentSha256middleware.ts +29 -0
  191. package/src/AwsClients/S3/runtime/index.browser.ts +14 -0
  192. package/src/AwsClients/S3/runtime/index.native.ts +14 -0
  193. package/src/AwsClients/S3/runtime/index.ts +15 -0
  194. package/src/AwsClients/S3/runtime/s3TransferHandler/fetch.ts +23 -0
  195. package/src/AwsClients/S3/runtime/s3TransferHandler/xhr.ts +35 -0
  196. package/src/AwsClients/S3/runtime/xhrTransferHandler.ts +254 -0
  197. package/src/AwsClients/S3/runtime/xmlParser/dom.ts +92 -0
  198. package/src/AwsClients/S3/runtime/xmlParser/pureJs.ts +55 -0
  199. package/src/AwsClients/S3/types.ts +2877 -0
  200. package/src/AwsClients/S3/uploadPart.ts +83 -0
  201. package/src/AwsClients/S3/utils/deserializeHelpers.ts +136 -0
  202. package/src/AwsClients/S3/utils/index.ts +27 -0
  203. package/src/AwsClients/S3/utils/parsePayload.ts +45 -0
  204. package/src/AwsClients/S3/utils/serializeHelpers.ts +112 -0
  205. package/src/Storage.ts +30 -27
  206. package/src/common/S3ClientUtils.ts +57 -113
  207. package/src/common/StorageConstants.ts +2 -2
  208. package/src/common/StorageErrorStrings.ts +2 -0
  209. package/src/common/StorageUtils.ts +2 -0
  210. package/src/providers/AWSS3Provider.ts +80 -100
  211. package/src/providers/AWSS3ProviderManagedUpload.ts +56 -63
  212. package/src/providers/AWSS3UploadTask.ts +86 -87
  213. package/src/providers/index.ts +2 -0
  214. package/src/types/AWSS3Provider.ts +55 -49
  215. package/lib/.tsbuildinfo +0 -3
  216. package/lib/Storage.js.map +0 -1
  217. package/lib/common/S3ClientUtils.js.map +0 -1
  218. package/lib/common/StorageConstants.js.map +0 -1
  219. package/lib/common/StorageErrorStrings.js.map +0 -1
  220. package/lib/common/StorageUtils.js.map +0 -1
  221. package/lib/index.js.map +0 -1
  222. package/lib/providers/AWSS3Provider.js.map +0 -1
  223. package/lib/providers/AWSS3ProviderManagedUpload.js.map +0 -1
  224. package/lib/providers/AWSS3UploadTask.js.map +0 -1
  225. package/lib/providers/axios-http-handler.d.ts +0 -40
  226. package/lib/providers/axios-http-handler.js +0 -193
  227. package/lib/providers/axios-http-handler.js.map +0 -1
  228. package/lib/providers/index.js.map +0 -1
  229. package/lib/types/AWSS3Provider.js.map +0 -1
  230. package/lib/types/Provider.js.map +0 -1
  231. package/lib/types/Storage.js.map +0 -1
  232. package/lib/types/index.js.map +0 -1
  233. package/lib-esm/.tsbuildinfo +0 -3
  234. package/lib-esm/Storage.js.map +0 -1
  235. package/lib-esm/common/S3ClientUtils.js.map +0 -1
  236. package/lib-esm/common/StorageConstants.js.map +0 -1
  237. package/lib-esm/common/StorageErrorStrings.js.map +0 -1
  238. package/lib-esm/common/StorageUtils.js.map +0 -1
  239. package/lib-esm/index.js.map +0 -1
  240. package/lib-esm/providers/AWSS3Provider.js.map +0 -1
  241. package/lib-esm/providers/AWSS3ProviderManagedUpload.js.map +0 -1
  242. package/lib-esm/providers/AWSS3UploadTask.js.map +0 -1
  243. package/lib-esm/providers/axios-http-handler.d.ts +0 -40
  244. package/lib-esm/providers/axios-http-handler.js +0 -191
  245. package/lib-esm/providers/axios-http-handler.js.map +0 -1
  246. package/lib-esm/providers/index.js.map +0 -1
  247. package/lib-esm/types/AWSS3Provider.js.map +0 -1
  248. package/lib-esm/types/Provider.js.map +0 -1
  249. package/lib-esm/types/Storage.js.map +0 -1
  250. package/lib-esm/types/index.js.map +0 -1
  251. package/src/providers/axios-http-handler.ts +0 -242
@@ -1,11 +1,81 @@
1
- import { __awaiter, __generator, __read, __spread } from "tslib";
2
- import { UploadPartCommand, CompleteMultipartUploadCommand, AbortMultipartUploadCommand, ListPartsCommand, CreateMultipartUploadCommand, ListObjectsV2Command, } from '@aws-sdk/client-s3';
3
- import axios from 'axios';
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ var __read = (this && this.__read) || function (o, n) {
49
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
50
+ if (!m) return o;
51
+ var i = m.call(o), r, ar = [], e;
52
+ try {
53
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
54
+ }
55
+ catch (error) { e = { error: error }; }
56
+ finally {
57
+ try {
58
+ if (r && !r.done && (m = i["return"])) m.call(i);
59
+ }
60
+ finally { if (e) throw e.error; }
61
+ }
62
+ return ar;
63
+ };
64
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
65
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
66
+ if (ar || !(i in from)) {
67
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
68
+ ar[i] = from[i];
69
+ }
70
+ }
71
+ return to.concat(ar || Array.prototype.slice.call(from));
72
+ };
4
73
  import { Logger } from '@aws-amplify/core';
74
+ import { createMultipartUpload, uploadPart, listObjectsV2, listParts, completeMultipartUpload, abortMultipartUpload, } from '../AwsClients/S3';
75
+ import { isCancelError, CANCELED_ERROR_MESSAGE } from '../AwsClients/S3/utils';
5
76
  import { calculatePartSize, DEFAULT_PART_SIZE, DEFAULT_QUEUE_SIZE, MAX_OBJECT_SIZE, } from '../common/S3ClientUtils';
6
77
  import { byteLength, isFile } from '../common/StorageUtils';
7
- import { AWSS3ProviderUploadErrorStrings } from '../common/StorageErrorStrings';
8
- import { SET_CONTENT_LENGTH_HEADER, UPLOADS_STORAGE_KEY, } from '../common/StorageConstants';
78
+ import { UPLOADS_STORAGE_KEY } from '../common/StorageConstants';
9
79
  var logger = new Logger('AWSS3UploadTask');
10
80
  export var AWSS3UploadTaskState;
11
81
  (function (AWSS3UploadTaskState) {
@@ -27,7 +97,7 @@ function comparePartNumber(a, b) {
27
97
  }
28
98
  var AWSS3UploadTask = /** @class */ (function () {
29
99
  function AWSS3UploadTask(_a) {
30
- var s3Client = _a.s3Client, file = _a.file, emitter = _a.emitter, storage = _a.storage, params = _a.params, level = _a.level, prefixPromise = _a.prefixPromise;
100
+ var s3Config = _a.s3Config, file = _a.file, emitter = _a.emitter, storage = _a.storage, params = _a.params, level = _a.level, prefixPromise = _a.prefixPromise;
31
101
  this.queueSize = DEFAULT_QUEUE_SIZE;
32
102
  this.partSize = DEFAULT_PART_SIZE;
33
103
  this.inProgress = [];
@@ -37,8 +107,7 @@ var AWSS3UploadTask = /** @class */ (function () {
37
107
  this.totalBytes = 0;
38
108
  this.state = AWSS3UploadTaskState.INIT;
39
109
  this.prefixPromise = prefixPromise;
40
- this.s3client = s3Client;
41
- this.s3client.middlewareStack.remove(SET_CONTENT_LENGTH_HEADER);
110
+ this.s3Config = s3Config;
42
111
  this.storage = storage;
43
112
  this.storageSync = Promise.resolve();
44
113
  if (typeof this.storage['sync'] === 'function') {
@@ -60,33 +129,32 @@ var AWSS3UploadTask = /** @class */ (function () {
60
129
  get: function () {
61
130
  return (this.bytesUploaded / this.totalBytes) * 100;
62
131
  },
63
- enumerable: true,
132
+ enumerable: false,
64
133
  configurable: true
65
134
  });
66
135
  Object.defineProperty(AWSS3UploadTask.prototype, "isInProgress", {
67
136
  get: function () {
68
137
  return this.state === AWSS3UploadTaskState.IN_PROGRESS;
69
138
  },
70
- enumerable: true,
139
+ enumerable: false,
71
140
  configurable: true
72
141
  });
73
142
  AWSS3UploadTask.prototype._listSingleFile = function (_a) {
74
143
  var key = _a.key, bucket = _a.bucket;
75
144
  return __awaiter(this, void 0, void 0, function () {
76
- var listObjectRes, _b, Contents, prefix, obj;
145
+ var objectKeyPrefix, _b, Contents, obj;
77
146
  return __generator(this, function (_c) {
78
147
  switch (_c.label) {
79
- case 0: return [4 /*yield*/, this.s3client.send(new ListObjectsV2Command({
80
- Bucket: bucket,
81
- Prefix: key,
82
- }))];
148
+ case 0: return [4 /*yield*/, this.prefixPromise];
83
149
  case 1:
84
- listObjectRes = _c.sent();
85
- _b = listObjectRes.Contents, Contents = _b === void 0 ? [] : _b;
86
- return [4 /*yield*/, this.prefixPromise];
150
+ objectKeyPrefix = _c.sent();
151
+ return [4 /*yield*/, listObjectsV2(this.s3Config, {
152
+ Bucket: bucket,
153
+ Prefix: objectKeyPrefix + key,
154
+ })];
87
155
  case 2:
88
- prefix = _c.sent();
89
- obj = Contents.find(function (o) { return o.Key === "" + prefix + key; });
156
+ _b = (_c.sent()).Contents, Contents = _b === void 0 ? [] : _b;
157
+ obj = Contents.find(function (o) { return o.Key === "".concat(objectKeyPrefix).concat(key); });
90
158
  return [2 /*return*/, obj];
91
159
  }
92
160
  });
@@ -117,12 +185,13 @@ var AWSS3UploadTask = /** @class */ (function () {
117
185
  };
118
186
  AWSS3UploadTask.prototype._findCachedUploadParts = function () {
119
187
  return __awaiter(this, void 0, void 0, function () {
120
- var uploadRequests, cachedUploadFileData, listPartsOutput;
121
- return __generator(this, function (_a) {
122
- switch (_a.label) {
188
+ var uploadRequests, cachedUploadFileData, _a, Parts, _b, _c;
189
+ var _d;
190
+ return __generator(this, function (_e) {
191
+ switch (_e.label) {
123
192
  case 0: return [4 /*yield*/, this._listCachedUploadTasks()];
124
193
  case 1:
125
- uploadRequests = _a.sent();
194
+ uploadRequests = _e.sent();
126
195
  if (Object.keys(uploadRequests).length === 0 ||
127
196
  !Object.prototype.hasOwnProperty.call(uploadRequests, this.fileId)) {
128
197
  return [2 /*return*/, { parts: [], uploadId: null }];
@@ -130,15 +199,19 @@ var AWSS3UploadTask = /** @class */ (function () {
130
199
  cachedUploadFileData = uploadRequests[this.fileId];
131
200
  cachedUploadFileData.lastTouched = Date.now();
132
201
  this.storage.setItem(UPLOADS_STORAGE_KEY, JSON.stringify(uploadRequests));
133
- return [4 /*yield*/, this.s3client.send(new ListPartsCommand({
134
- Bucket: this.params.Bucket,
135
- Key: this.params.Key,
136
- UploadId: cachedUploadFileData.uploadId,
137
- }))];
138
- case 2:
139
- listPartsOutput = _a.sent();
202
+ _b = listParts;
203
+ _c = [this.s3Config];
204
+ _d = {
205
+ Bucket: this.params.Bucket
206
+ };
207
+ return [4 /*yield*/, this.prefixPromise];
208
+ case 2: return [4 /*yield*/, _b.apply(void 0, _c.concat([(_d.Key = (_e.sent()) + this.params.Key,
209
+ _d.UploadId = cachedUploadFileData.uploadId,
210
+ _d)]))];
211
+ case 3:
212
+ _a = (_e.sent()).Parts, Parts = _a === void 0 ? [] : _a;
140
213
  return [2 /*return*/, {
141
- parts: listPartsOutput.Parts || [],
214
+ parts: Parts,
142
215
  uploadId: cachedUploadFileData.uploadId,
143
216
  }];
144
217
  }
@@ -150,7 +223,7 @@ var AWSS3UploadTask = /** @class */ (function () {
150
223
  };
151
224
  AWSS3UploadTask.prototype._validateParams = function () {
152
225
  if (this.totalBytes > MAX_OBJECT_SIZE) {
153
- throw new Error("File size bigger than S3 Object limit of 5TB, got " + this.totalBytes + " Bytes");
226
+ throw new Error("File size bigger than S3 Object limit of 5TB, got ".concat(this.totalBytes, " Bytes"));
154
227
  }
155
228
  };
156
229
  AWSS3UploadTask.prototype._listCachedUploadTasks = function () {
@@ -190,8 +263,7 @@ var AWSS3UploadTask = /** @class */ (function () {
190
263
  case 0:
191
264
  _b = (_a = Object.prototype.hasOwnProperty).call;
192
265
  return [4 /*yield*/, this._listCachedUploadTasks()];
193
- case 1: return [2 /*return*/, _b.apply(_a, [_c.sent(),
194
- this.fileId])];
266
+ case 1: return [2 /*return*/, _b.apply(_a, [_c.sent(), this.fileId])];
195
267
  }
196
268
  });
197
269
  });
@@ -236,63 +308,72 @@ var AWSS3UploadTask = /** @class */ (function () {
236
308
  };
237
309
  AWSS3UploadTask.prototype._completeUpload = function () {
238
310
  return __awaiter(this, void 0, void 0, function () {
239
- var err_1;
240
- return __generator(this, function (_a) {
241
- switch (_a.label) {
311
+ var _a, _b, err_1;
312
+ var _c;
313
+ return __generator(this, function (_d) {
314
+ switch (_d.label) {
242
315
  case 0:
243
- _a.trys.push([0, 3, , 4]);
244
- return [4 /*yield*/, this.s3client.send(new CompleteMultipartUploadCommand({
245
- Bucket: this.params.Bucket,
246
- Key: this.params.Key,
247
- UploadId: this.uploadId,
248
- MultipartUpload: {
316
+ _d.trys.push([0, 4, , 5]);
317
+ _a = completeMultipartUpload;
318
+ _b = [this.s3Config];
319
+ _c = {
320
+ Bucket: this.params.Bucket
321
+ };
322
+ return [4 /*yield*/, this.prefixPromise];
323
+ case 1: return [4 /*yield*/, _a.apply(void 0, _b.concat([(_c.Key = (_d.sent()) + this.params.Key,
324
+ _c.UploadId = this.uploadId,
325
+ _c.MultipartUpload = {
249
326
  // Parts are not always completed in order, we need to manually sort them
250
- Parts: this.completedParts.sort(comparePartNumber),
327
+ Parts: __spreadArray([], __read(this.completedParts), false).sort(comparePartNumber),
251
328
  },
252
- }))];
253
- case 1:
254
- _a.sent();
255
- return [4 /*yield*/, this._verifyFileSize()];
329
+ _c)]))];
256
330
  case 2:
257
- _a.sent();
331
+ _d.sent();
332
+ return [4 /*yield*/, this._verifyFileSize()];
333
+ case 3:
334
+ _d.sent();
258
335
  this._emitEvent(TaskEvents.UPLOAD_COMPLETE, {
259
336
  key: this.params.Key,
260
337
  });
261
338
  this._removeFromCache();
262
339
  this.state = AWSS3UploadTaskState.COMPLETED;
263
- return [3 /*break*/, 4];
264
- case 3:
265
- err_1 = _a.sent();
340
+ return [3 /*break*/, 5];
341
+ case 4:
342
+ err_1 = _d.sent();
266
343
  logger.error('error completing upload', err_1);
267
344
  this._emitEvent(TaskEvents.ERROR, err_1);
268
- return [3 /*break*/, 4];
269
- case 4: return [2 /*return*/];
345
+ return [3 /*break*/, 5];
346
+ case 5: return [2 /*return*/];
270
347
  }
271
348
  });
272
349
  });
273
350
  };
274
- AWSS3UploadTask.prototype._makeUploadPartRequest = function (input, cancelTokenSource) {
351
+ AWSS3UploadTask.prototype._makeUploadPartRequest = function (input, abortSignal) {
275
352
  return __awaiter(this, void 0, void 0, function () {
276
- var res, err_2;
277
- return __generator(this, function (_a) {
278
- switch (_a.label) {
353
+ var res, _a, _b, _c, err_2;
354
+ var _d;
355
+ return __generator(this, function (_e) {
356
+ switch (_e.label) {
279
357
  case 0:
280
- _a.trys.push([0, 3, , 4]);
281
- return [4 /*yield*/, this.s3client.send(new UploadPartCommand(input), {
282
- cancelTokenSource: cancelTokenSource,
283
- })];
284
- case 1:
285
- res = _a.sent();
358
+ _e.trys.push([0, 4, , 5]);
359
+ _a = uploadPart;
360
+ _b = [__assign(__assign({}, this.s3Config), { abortSignal: abortSignal })];
361
+ _c = [__assign({}, input)];
362
+ _d = {};
363
+ return [4 /*yield*/, this.prefixPromise];
364
+ case 1: return [4 /*yield*/, _a.apply(void 0, _b.concat([__assign.apply(void 0, _c.concat([(_d.Key = (_e.sent()) + this.params.Key, _d)]))]))];
365
+ case 2:
366
+ res = _e.sent();
286
367
  return [4 /*yield*/, this._onPartUploadCompletion({
287
368
  eTag: res.ETag,
288
369
  partNumber: input.PartNumber,
289
370
  chunk: input.Body,
290
371
  })];
291
- case 2:
292
- _a.sent();
293
- return [3 /*break*/, 4];
294
372
  case 3:
295
- err_2 = _a.sent();
373
+ _e.sent();
374
+ return [3 /*break*/, 5];
375
+ case 4:
376
+ err_2 = _e.sent();
296
377
  if (this.state === AWSS3UploadTaskState.PAUSED) {
297
378
  logger.log('upload paused');
298
379
  }
@@ -302,27 +383,26 @@ var AWSS3UploadTask = /** @class */ (function () {
302
383
  else {
303
384
  logger.error('error starting next part of upload: ', err_2);
304
385
  }
305
- // axios' cancel will also throw an error, however we don't need to emit an event in that case as it's an
386
+ // xhr transfer handlers' cancel will also throw an error, however we don't need to emit an event in that case as it's an
306
387
  // expected behavior
307
- if (!axios.isCancel(err_2) &&
308
- err_2.message !== AWSS3ProviderUploadErrorStrings.UPLOAD_PAUSED_MESSAGE) {
388
+ if (!isCancelError(err_2) && err_2.message !== CANCELED_ERROR_MESSAGE) {
309
389
  this._emitEvent(TaskEvents.ERROR, err_2);
310
390
  this.pause();
311
391
  }
312
- return [3 /*break*/, 4];
313
- case 4: return [2 /*return*/];
392
+ return [3 /*break*/, 5];
393
+ case 5: return [2 /*return*/];
314
394
  }
315
395
  });
316
396
  });
317
397
  };
318
398
  AWSS3UploadTask.prototype._startNextPart = function () {
319
399
  if (this.queued.length > 0 && this.state !== AWSS3UploadTaskState.PAUSED) {
320
- var cancelTokenSource = axios.CancelToken.source();
400
+ var abortController = new AbortController();
321
401
  var nextPart = this.queued.shift();
322
402
  this.inProgress.push({
323
403
  uploadPartInput: nextPart,
324
- s3Request: this._makeUploadPartRequest(nextPart, cancelTokenSource),
325
- cancel: cancelTokenSource.cancel,
404
+ s3Request: this._makeUploadPartRequest(nextPart, abortController.signal),
405
+ abortController: abortController,
326
406
  });
327
407
  }
328
408
  };
@@ -399,12 +479,19 @@ var AWSS3UploadTask = /** @class */ (function () {
399
479
  };
400
480
  AWSS3UploadTask.prototype._initMultipartUpload = function () {
401
481
  return __awaiter(this, void 0, void 0, function () {
402
- var res;
403
- return __generator(this, function (_a) {
404
- switch (_a.label) {
405
- case 0: return [4 /*yield*/, this.s3client.send(new CreateMultipartUploadCommand(this.params))];
406
- case 1:
407
- res = _a.sent();
482
+ var res, _a, _b, _c;
483
+ var _d;
484
+ return __generator(this, function (_e) {
485
+ switch (_e.label) {
486
+ case 0:
487
+ _a = createMultipartUpload;
488
+ _b = [this.s3Config];
489
+ _c = [__assign({}, this.params)];
490
+ _d = {};
491
+ return [4 /*yield*/, this.prefixPromise];
492
+ case 1: return [4 /*yield*/, _a.apply(void 0, _b.concat([__assign.apply(void 0, _c.concat([(_d.Key = (_e.sent()) + this.params.Key, _d)]))]))];
493
+ case 2:
494
+ res = _e.sent();
408
495
  this._cache({
409
496
  uploadId: res.UploadId,
410
497
  lastTouched: Date.now(),
@@ -437,7 +524,12 @@ var AWSS3UploadTask = /** @class */ (function () {
437
524
  this.uploadId = uploadId;
438
525
  this.queued = this._createParts();
439
526
  this._initCachedUploadParts(parts);
440
- this._startUpload();
527
+ if (this._isDone()) {
528
+ this._completeUpload();
529
+ }
530
+ else {
531
+ this._startUpload();
532
+ }
441
533
  return [3 /*break*/, 6];
442
534
  case 4:
443
535
  if (!!this.uploadId) return [3 /*break*/, 6];
@@ -451,7 +543,7 @@ var AWSS3UploadTask = /** @class */ (function () {
451
543
  case 6: return [3 /*break*/, 8];
452
544
  case 7:
453
545
  err_3 = _b.sent();
454
- if (!axios.isCancel(err_3)) {
546
+ if (!isCancelError(err_3)) {
455
547
  logger.error('Error initializing the upload task', err_3);
456
548
  this._emitEvent(TaskEvents.ERROR, err_3);
457
549
  }
@@ -488,9 +580,10 @@ var AWSS3UploadTask = /** @class */ (function () {
488
580
  };
489
581
  AWSS3UploadTask.prototype._cancel = function () {
490
582
  return __awaiter(this, void 0, void 0, function () {
491
- var err_4;
492
- return __generator(this, function (_a) {
493
- switch (_a.label) {
583
+ var _a, _b, err_4;
584
+ var _c;
585
+ return __generator(this, function (_d) {
586
+ switch (_d.label) {
494
587
  case 0:
495
588
  if (!(this.state === AWSS3UploadTaskState.CANCELLED)) return [3 /*break*/, 1];
496
589
  logger.warn('This task has already been cancelled');
@@ -505,25 +598,29 @@ var AWSS3UploadTask = /** @class */ (function () {
505
598
  this.completedParts = [];
506
599
  this.bytesUploaded = 0;
507
600
  this.state = AWSS3UploadTaskState.CANCELLED;
508
- _a.label = 3;
601
+ _d.label = 3;
509
602
  case 3:
510
- _a.trys.push([3, 6, , 7]);
511
- return [4 /*yield*/, this.s3client.send(new AbortMultipartUploadCommand({
512
- Bucket: this.params.Bucket,
513
- Key: this.params.Key,
514
- UploadId: this.uploadId,
515
- }))];
516
- case 4:
517
- _a.sent();
518
- return [4 /*yield*/, this._removeFromCache()];
603
+ _d.trys.push([3, 7, , 8]);
604
+ _a = abortMultipartUpload;
605
+ _b = [this.s3Config];
606
+ _c = {
607
+ Bucket: this.params.Bucket
608
+ };
609
+ return [4 /*yield*/, this.prefixPromise];
610
+ case 4: return [4 /*yield*/, _a.apply(void 0, _b.concat([(_c.Key = (_d.sent()) + this.params.Key,
611
+ _c.UploadId = this.uploadId,
612
+ _c)]))];
519
613
  case 5:
520
- _a.sent();
521
- return [2 /*return*/, true];
614
+ _d.sent();
615
+ return [4 /*yield*/, this._removeFromCache()];
522
616
  case 6:
523
- err_4 = _a.sent();
617
+ _d.sent();
618
+ return [2 /*return*/, true];
619
+ case 7:
620
+ err_4 = _d.sent();
524
621
  logger.error('Error cancelling upload task', err_4);
525
622
  return [2 /*return*/, false];
526
- case 7: return [2 /*return*/];
623
+ case 8: return [2 /*return*/];
527
624
  }
528
625
  });
529
626
  });
@@ -543,16 +640,15 @@ var AWSS3UploadTask = /** @class */ (function () {
543
640
  logger.warn('This task is already paused');
544
641
  }
545
642
  this.state = AWSS3UploadTaskState.PAUSED;
546
- // Use axios cancel token to abort the part request immediately
643
+ // Abort the part request immediately
547
644
  // Add the inProgress parts back to pending
548
645
  var removedInProgressReq = this.inProgress.splice(0, this.inProgress.length);
549
646
  removedInProgressReq.forEach(function (req) {
550
- req.cancel(AWSS3ProviderUploadErrorStrings.UPLOAD_PAUSED_MESSAGE);
647
+ req.abortController.abort();
551
648
  });
552
649
  // Put all removed in progress parts back into the queue
553
- (_a = this.queued).unshift.apply(_a, __spread(removedInProgressReq.map(function (req) { return req.uploadPartInput; })));
650
+ (_a = this.queued).unshift.apply(_a, __spreadArray([], __read(removedInProgressReq.map(function (req) { return req.uploadPartInput; })), false));
554
651
  };
555
652
  return AWSS3UploadTask;
556
653
  }());
557
654
  export { AWSS3UploadTask };
558
- //# sourceMappingURL=AWSS3UploadTask.js.map
@@ -1,2 +1,3 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
1
3
  export { AWSS3Provider } from './AWSS3Provider';
2
- //# sourceMappingURL=index.js.map