@aws-amplify/storage 6.0.17-unstable.e316a2e.0 → 6.0.17

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 (185) hide show
  1. package/dist/cjs/providers/s3/apis/internal/getProperties.js +1 -1
  2. package/dist/cjs/providers/s3/apis/internal/getProperties.js.map +1 -1
  3. package/dist/cjs/providers/s3/apis/internal/getUrl.js +6 -6
  4. package/dist/cjs/providers/s3/apis/internal/getUrl.js.map +1 -1
  5. package/dist/cjs/providers/s3/apis/internal/list.js +2 -2
  6. package/dist/cjs/providers/s3/apis/internal/list.js.map +1 -1
  7. package/dist/cjs/providers/s3/apis/uploadData/multipart/initialUpload.js +1 -1
  8. package/dist/cjs/providers/s3/apis/uploadData/multipart/initialUpload.js.map +1 -1
  9. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadHandlers.js +25 -25
  10. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadHandlers.js.map +1 -1
  11. package/dist/cjs/providers/s3/utils/client/base.js +1 -1
  12. package/dist/cjs/providers/s3/utils/client/base.js.map +1 -1
  13. package/dist/cjs/providers/s3/utils/client/runtime/base64/index.native.js +1 -1
  14. package/dist/cjs/providers/s3/utils/client/runtime/base64/index.native.js.map +1 -1
  15. package/dist/cjs/providers/s3/utils/client/runtime/contentSha256middleware.js +3 -3
  16. package/dist/cjs/providers/s3/utils/client/runtime/contentSha256middleware.js.map +1 -1
  17. package/dist/cjs/providers/s3/utils/client/runtime/s3TransferHandler/fetch.js +1 -1
  18. package/dist/cjs/providers/s3/utils/client/runtime/s3TransferHandler/fetch.js.map +1 -1
  19. package/dist/cjs/providers/s3/utils/client/runtime/s3TransferHandler/xhr.js +4 -4
  20. package/dist/cjs/providers/s3/utils/client/runtime/s3TransferHandler/xhr.js.map +1 -1
  21. package/dist/cjs/providers/s3/utils/client/runtime/xhrTransferHandler.js +4 -4
  22. package/dist/cjs/providers/s3/utils/client/runtime/xhrTransferHandler.js.map +1 -1
  23. package/dist/cjs/providers/s3/utils/client/runtime/xmlParser/dom.js +4 -7
  24. package/dist/cjs/providers/s3/utils/client/runtime/xmlParser/dom.js.map +1 -1
  25. package/dist/cjs/providers/s3/utils/client/runtime/xmlParser/pureJs.js +6 -5
  26. package/dist/cjs/providers/s3/utils/client/runtime/xmlParser/pureJs.js.map +1 -1
  27. package/dist/cjs/providers/s3/utils/client/utils/deserializeHelpers.js +1 -1
  28. package/dist/cjs/providers/s3/utils/client/utils/deserializeHelpers.js.map +1 -1
  29. package/dist/cjs/providers/s3/utils/client/utils/parsePayload.js +2 -2
  30. package/dist/cjs/providers/s3/utils/client/utils/parsePayload.js.map +1 -1
  31. package/dist/cjs/providers/s3/utils/md5.js +8 -3
  32. package/dist/cjs/providers/s3/utils/md5.js.map +1 -1
  33. package/dist/cjs/providers/s3/utils/md5.native.js +6 -2
  34. package/dist/cjs/providers/s3/utils/md5.native.js.map +1 -1
  35. package/dist/cjs/providers/s3/utils/resolveS3ConfigAndInput.js +1 -1
  36. package/dist/cjs/providers/s3/utils/resolveS3ConfigAndInput.js.map +1 -1
  37. package/dist/cjs/providers/s3/utils/transferTask.js +10 -4
  38. package/dist/cjs/providers/s3/utils/transferTask.js.map +1 -1
  39. package/dist/esm/providers/s3/apis/getProperties.d.ts +1 -1
  40. package/dist/esm/providers/s3/apis/internal/getProperties.mjs +1 -1
  41. package/dist/esm/providers/s3/apis/internal/getProperties.mjs.map +1 -1
  42. package/dist/esm/providers/s3/apis/internal/getUrl.mjs +3 -3
  43. package/dist/esm/providers/s3/apis/internal/getUrl.mjs.map +1 -1
  44. package/dist/esm/providers/s3/apis/internal/list.d.ts +1 -1
  45. package/dist/esm/providers/s3/apis/internal/list.mjs +2 -2
  46. package/dist/esm/providers/s3/apis/internal/list.mjs.map +1 -1
  47. package/dist/esm/providers/s3/apis/list.d.ts +3 -3
  48. package/dist/esm/providers/s3/apis/server/list.d.ts +3 -3
  49. package/dist/esm/providers/s3/apis/uploadData/multipart/getDataChunker.d.ts +2 -2
  50. package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.d.ts +4 -4
  51. package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.mjs +1 -1
  52. package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.mjs.map +1 -1
  53. package/dist/esm/providers/s3/apis/uploadData/multipart/progressTracker.d.ts +3 -3
  54. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.d.ts +6 -6
  55. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.mjs +25 -25
  56. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.mjs.map +1 -1
  57. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadPartExecutor.d.ts +5 -5
  58. package/dist/esm/providers/s3/types/inputs.d.ts +2 -2
  59. package/dist/esm/providers/s3/types/options.d.ts +11 -11
  60. package/dist/esm/providers/s3/types/outputs.d.ts +1 -1
  61. package/dist/esm/providers/s3/utils/client/abortMultipartUpload.d.ts +2 -2
  62. package/dist/esm/providers/s3/utils/client/base.mjs +1 -1
  63. package/dist/esm/providers/s3/utils/client/base.mjs.map +1 -1
  64. package/dist/esm/providers/s3/utils/client/completeMultipartUpload.d.ts +2 -2
  65. package/dist/esm/providers/s3/utils/client/copyObject.d.ts +2 -2
  66. package/dist/esm/providers/s3/utils/client/copyObject.mjs.map +1 -1
  67. package/dist/esm/providers/s3/utils/client/createMultipartUpload.d.ts +3 -3
  68. package/dist/esm/providers/s3/utils/client/createMultipartUpload.mjs.map +1 -1
  69. package/dist/esm/providers/s3/utils/client/deleteObject.d.ts +2 -2
  70. package/dist/esm/providers/s3/utils/client/getObject.d.ts +3 -3
  71. package/dist/esm/providers/s3/utils/client/getObject.mjs.map +1 -1
  72. package/dist/esm/providers/s3/utils/client/headObject.d.ts +2 -2
  73. package/dist/esm/providers/s3/utils/client/listObjectsV2.d.ts +3 -3
  74. package/dist/esm/providers/s3/utils/client/listParts.d.ts +2 -2
  75. package/dist/esm/providers/s3/utils/client/listParts.mjs.map +1 -1
  76. package/dist/esm/providers/s3/utils/client/putObject.d.ts +2 -2
  77. package/dist/esm/providers/s3/utils/client/putObject.mjs.map +1 -1
  78. package/dist/esm/providers/s3/utils/client/runtime/base64/index.native.mjs +1 -1
  79. package/dist/esm/providers/s3/utils/client/runtime/base64/index.native.mjs.map +1 -1
  80. package/dist/esm/providers/s3/utils/client/runtime/contentSha256middleware.d.ts +2 -2
  81. package/dist/esm/providers/s3/utils/client/runtime/contentSha256middleware.mjs +2 -2
  82. package/dist/esm/providers/s3/utils/client/runtime/contentSha256middleware.mjs.map +1 -1
  83. package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/fetch.d.ts +2 -2
  84. package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/fetch.mjs +2 -2
  85. package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/fetch.mjs.map +1 -1
  86. package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/xhr.d.ts +2 -2
  87. package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/xhr.mjs +6 -6
  88. package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/xhr.mjs.map +1 -1
  89. package/dist/esm/providers/s3/utils/client/runtime/xhrTransferHandler.d.ts +2 -2
  90. package/dist/esm/providers/s3/utils/client/runtime/xhrTransferHandler.mjs +4 -4
  91. package/dist/esm/providers/s3/utils/client/runtime/xhrTransferHandler.mjs.map +1 -1
  92. package/dist/esm/providers/s3/utils/client/runtime/xmlParser/dom.mjs +4 -7
  93. package/dist/esm/providers/s3/utils/client/runtime/xmlParser/dom.mjs.map +1 -1
  94. package/dist/esm/providers/s3/utils/client/runtime/xmlParser/pureJs.mjs +6 -5
  95. package/dist/esm/providers/s3/utils/client/runtime/xmlParser/pureJs.mjs.map +1 -1
  96. package/dist/esm/providers/s3/utils/client/types.d.ts +11 -22
  97. package/dist/esm/providers/s3/utils/client/uploadPart.d.ts +2 -2
  98. package/dist/esm/providers/s3/utils/client/uploadPart.mjs.map +1 -1
  99. package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.d.ts +1 -3
  100. package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.mjs +1 -1
  101. package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.mjs.map +1 -1
  102. package/dist/esm/providers/s3/utils/client/utils/parsePayload.mjs +2 -2
  103. package/dist/esm/providers/s3/utils/client/utils/parsePayload.mjs.map +1 -1
  104. package/dist/esm/providers/s3/utils/client/utils/serializeHelpers.d.ts +1 -1
  105. package/dist/esm/providers/s3/utils/md5.mjs +8 -3
  106. package/dist/esm/providers/s3/utils/md5.mjs.map +1 -1
  107. package/dist/esm/providers/s3/utils/md5.native.mjs +6 -2
  108. package/dist/esm/providers/s3/utils/md5.native.mjs.map +1 -1
  109. package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.d.ts +4 -4
  110. package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.mjs +1 -1
  111. package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.mjs.map +1 -1
  112. package/dist/esm/providers/s3/utils/transferTask.d.ts +10 -10
  113. package/dist/esm/providers/s3/utils/transferTask.mjs +10 -4
  114. package/dist/esm/providers/s3/utils/transferTask.mjs.map +1 -1
  115. package/dist/esm/types/common.d.ts +7 -7
  116. package/dist/esm/types/inputs.d.ts +9 -9
  117. package/dist/esm/types/options.d.ts +2 -2
  118. package/dist/esm/types/outputs.d.ts +6 -6
  119. package/dist/esm/utils/resolvePrefix.d.ts +2 -2
  120. package/package.json +107 -106
  121. package/src/errors/CanceledError.ts +1 -0
  122. package/src/errors/utils/assertValidationError.ts +1 -1
  123. package/src/providers/s3/apis/copy.ts +3 -1
  124. package/src/providers/s3/apis/downloadData.ts +5 -3
  125. package/src/providers/s3/apis/getProperties.ts +5 -2
  126. package/src/providers/s3/apis/getUrl.ts +3 -0
  127. package/src/providers/s3/apis/internal/copy.ts +5 -4
  128. package/src/providers/s3/apis/internal/getProperties.ts +8 -6
  129. package/src/providers/s3/apis/internal/getUrl.ts +11 -9
  130. package/src/providers/s3/apis/internal/list.ts +13 -10
  131. package/src/providers/s3/apis/internal/remove.ts +5 -3
  132. package/src/providers/s3/apis/list.ts +8 -4
  133. package/src/providers/s3/apis/remove.ts +4 -1
  134. package/src/providers/s3/apis/server/copy.ts +2 -1
  135. package/src/providers/s3/apis/server/getProperties.ts +3 -2
  136. package/src/providers/s3/apis/server/getUrl.ts +2 -1
  137. package/src/providers/s3/apis/server/list.ts +10 -7
  138. package/src/providers/s3/apis/server/remove.ts +2 -1
  139. package/src/providers/s3/apis/uploadData/byteLength.ts +1 -0
  140. package/src/providers/s3/apis/uploadData/index.ts +5 -2
  141. package/src/providers/s3/apis/uploadData/multipart/calculatePartSize.ts +1 -0
  142. package/src/providers/s3/apis/uploadData/multipart/getDataChunker.ts +6 -4
  143. package/src/providers/s3/apis/uploadData/multipart/initialUpload.ts +12 -9
  144. package/src/providers/s3/apis/uploadData/multipart/progressTracker.ts +5 -4
  145. package/src/providers/s3/apis/uploadData/multipart/uploadCache.ts +15 -12
  146. package/src/providers/s3/apis/uploadData/multipart/uploadHandlers.ts +42 -36
  147. package/src/providers/s3/apis/uploadData/multipart/uploadPartExecutor.ts +7 -6
  148. package/src/providers/s3/apis/uploadData/putObjectJob.ts +2 -2
  149. package/src/providers/s3/types/inputs.ts +4 -4
  150. package/src/providers/s3/types/options.ts +11 -11
  151. package/src/providers/s3/types/outputs.ts +1 -1
  152. package/src/providers/s3/utils/client/abortMultipartUpload.ts +5 -4
  153. package/src/providers/s3/utils/client/base.ts +8 -6
  154. package/src/providers/s3/utils/client/completeMultipartUpload.ts +14 -6
  155. package/src/providers/s3/utils/client/copyObject.ts +7 -4
  156. package/src/providers/s3/utils/client/createMultipartUpload.ts +7 -5
  157. package/src/providers/s3/utils/client/deleteObject.ts +6 -5
  158. package/src/providers/s3/utils/client/getObject.ts +14 -12
  159. package/src/providers/s3/utils/client/headObject.ts +6 -5
  160. package/src/providers/s3/utils/client/listObjectsV2.ts +6 -3
  161. package/src/providers/s3/utils/client/listParts.ts +9 -6
  162. package/src/providers/s3/utils/client/putObject.ts +6 -5
  163. package/src/providers/s3/utils/client/runtime/base64/index.browser.ts +2 -1
  164. package/src/providers/s3/utils/client/runtime/base64/index.native.ts +1 -1
  165. package/src/providers/s3/utils/client/runtime/contentSha256middleware.ts +6 -4
  166. package/src/providers/s3/utils/client/runtime/s3TransferHandler/fetch.ts +7 -5
  167. package/src/providers/s3/utils/client/runtime/s3TransferHandler/xhr.ts +11 -11
  168. package/src/providers/s3/utils/client/runtime/xhrTransferHandler.ts +21 -14
  169. package/src/providers/s3/utils/client/runtime/xmlParser/dom.ts +6 -7
  170. package/src/providers/s3/utils/client/runtime/xmlParser/pureJs.ts +10 -5
  171. package/src/providers/s3/utils/client/types.ts +12 -14
  172. package/src/providers/s3/utils/client/uploadPart.ts +6 -5
  173. package/src/providers/s3/utils/client/utils/deserializeHelpers.ts +13 -8
  174. package/src/providers/s3/utils/client/utils/parsePayload.ts +6 -4
  175. package/src/providers/s3/utils/client/utils/serializeHelpers.ts +8 -5
  176. package/src/providers/s3/utils/md5.native.ts +9 -3
  177. package/src/providers/s3/utils/md5.ts +12 -4
  178. package/src/providers/s3/utils/resolveS3ConfigAndInput.ts +10 -8
  179. package/src/providers/s3/utils/transferTask.ts +26 -14
  180. package/src/providers/s3/utils/userAgent.ts +1 -1
  181. package/src/types/common.ts +7 -7
  182. package/src/types/inputs.ts +11 -11
  183. package/src/types/options.ts +2 -2
  184. package/src/types/outputs.ts +6 -6
  185. package/src/utils/resolvePrefix.ts +7 -4
@@ -10,38 +10,38 @@ import {
10
10
  StorageListPaginateOptions,
11
11
  } from '../../../types/options';
12
12
 
13
- type CommonOptions = {
13
+ interface CommonOptions {
14
14
  /**
15
15
  * Whether to use accelerate endpoint.
16
16
  * @default false
17
17
  */
18
18
  useAccelerateEndpoint?: boolean;
19
- };
19
+ }
20
20
 
21
21
  type ReadOptions =
22
22
  | { accessLevel?: 'guest' | 'private' }
23
23
  | { accessLevel: 'protected'; targetIdentityId?: string };
24
24
 
25
- type WriteOptions = {
25
+ interface WriteOptions {
26
26
  accessLevel?: StorageAccessLevel;
27
- };
27
+ }
28
28
 
29
- type BytesRangeOptions = {
29
+ interface BytesRangeOptions {
30
30
  bytesRange?: {
31
31
  start: number;
32
32
  end: number;
33
33
  };
34
- };
34
+ }
35
35
 
36
36
  /**
37
37
  * Transfer-related options type for S3 downloadData, uploadData APIs.
38
38
  */
39
- type TransferOptions = {
39
+ interface TransferOptions {
40
40
  /**
41
41
  * Callback function tracking the upload/download progress.
42
42
  */
43
- onProgress?: (event: TransferProgressEvent) => void;
44
- };
43
+ onProgress?(event: TransferProgressEvent): void;
44
+ }
45
45
 
46
46
  /**
47
47
  * Input options type for S3 getProperties API.
@@ -130,10 +130,10 @@ export type CopyDestinationOptions = WriteOptions & {
130
130
  *
131
131
  * @internal
132
132
  */
133
- export type ResolvedS3Config = {
133
+ export interface ResolvedS3Config {
134
134
  region: string;
135
135
  credentials: AWSCredentials;
136
136
  customEndpoint?: string;
137
137
  forcePathStyle?: boolean;
138
138
  useAccelerateEndpoint?: boolean;
139
- };
139
+ }
@@ -2,11 +2,11 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import {
5
+ DownloadTask,
5
6
  StorageDownloadDataOutput,
6
7
  StorageGetUrlOutput,
7
8
  StorageItem,
8
9
  StorageListOutput,
9
- DownloadTask,
10
10
  UploadTask,
11
11
  } from '../../../types';
12
12
 
@@ -13,8 +13,8 @@ import {
13
13
  AmplifyUrlSearchParams,
14
14
  } from '@aws-amplify/core/internals/utils';
15
15
  import { MetadataBearer } from '@aws-sdk/types';
16
- import type { AbortMultipartUploadCommandInput } from './types';
17
16
 
17
+ import type { AbortMultipartUploadCommandInput } from './types';
18
18
  import { defaultConfig } from './base';
19
19
  import {
20
20
  buildStorageServiceError,
@@ -33,7 +33,7 @@ export type AbortMultipartUploadOutput = MetadataBearer;
33
33
 
34
34
  const abortMultipartUploadSerializer = (
35
35
  input: AbortMultipartUploadInput,
36
- endpoint: Endpoint
36
+ endpoint: Endpoint,
37
37
  ): HttpRequest => {
38
38
  const url = new AmplifyUrl(endpoint.url.toString());
39
39
  validateS3RequiredParameter(!!input.Key, 'Key');
@@ -42,6 +42,7 @@ const abortMultipartUploadSerializer = (
42
42
  url.search = new AmplifyUrlSearchParams({
43
43
  uploadId: input.UploadId,
44
44
  }).toString();
45
+
45
46
  return {
46
47
  method: 'DELETE',
47
48
  headers: {},
@@ -50,7 +51,7 @@ const abortMultipartUploadSerializer = (
50
51
  };
51
52
 
52
53
  const abortMultipartUploadDeserializer = async (
53
- response: HttpResponse
54
+ response: HttpResponse,
54
55
  ): Promise<AbortMultipartUploadOutput> => {
55
56
  if (response.statusCode >= 300) {
56
57
  const error = (await parseXmlError(response)) as Error;
@@ -66,5 +67,5 @@ export const abortMultipartUpload = composeServiceApi(
66
67
  s3TransferHandler,
67
68
  abortMultipartUploadSerializer,
68
69
  abortMultipartUploadDeserializer,
69
- { ...defaultConfig, responseType: 'text' }
70
+ { ...defaultConfig, responseType: 'text' },
70
71
  );
@@ -2,18 +2,19 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import {
5
- getAmplifyUserAgent,
6
5
  AmplifyUrl,
6
+ getAmplifyUserAgent,
7
7
  } from '@aws-amplify/core/internals/utils';
8
8
  import {
9
+ EndpointResolverOptions,
9
10
  getDnsSuffix,
10
- jitteredBackoff,
11
11
  getRetryDecider,
12
- EndpointResolverOptions,
12
+ jitteredBackoff,
13
13
  } from '@aws-amplify/core/internals/aws-client-utils';
14
+
14
15
  import { parseXmlError } from './utils';
15
16
 
16
- const DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/;
17
+ const DOMAIN_PATTERN = /^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$/;
17
18
  const IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/;
18
19
  const DOTS_PATTERN = /\.\./;
19
20
 
@@ -52,7 +53,7 @@ export type S3EndpointResolverOptions = EndpointResolverOptions & {
52
53
  */
53
54
  const endpointResolver = (
54
55
  options: S3EndpointResolverOptions,
55
- apiInput?: { Bucket?: string }
56
+ apiInput?: { Bucket?: string },
56
57
  ) => {
57
58
  const { region, useAccelerateEndpoint, customEndpoint, forcePathStyle } =
58
59
  options;
@@ -63,7 +64,7 @@ const endpointResolver = (
63
64
  } else if (useAccelerateEndpoint) {
64
65
  if (forcePathStyle) {
65
66
  throw new Error(
66
- 'Path style URLs are not supported with S3 Transfer Acceleration.'
67
+ 'Path style URLs are not supported with S3 Transfer Acceleration.',
67
68
  );
68
69
  }
69
70
  endpoint = new AmplifyUrl(`https://s3-accelerate.${getDnsSuffix(region)}`);
@@ -81,6 +82,7 @@ const endpointResolver = (
81
82
  endpoint.host = `${apiInput.Bucket}.${endpoint.host}`;
82
83
  }
83
84
  }
85
+
84
86
  return { url: endpoint };
85
87
  };
86
88
 
@@ -12,6 +12,7 @@ import {
12
12
  AmplifyUrlSearchParams,
13
13
  } from '@aws-amplify/core/internals/utils';
14
14
  import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';
15
+
15
16
  import type {
16
17
  CompleteMultipartUploadCommandInput,
17
18
  CompleteMultipartUploadCommandOutput,
@@ -44,7 +45,7 @@ export type CompleteMultipartUploadOutput = Pick<
44
45
 
45
46
  const completeMultipartUploadSerializer = async (
46
47
  input: CompleteMultipartUploadInput,
47
- endpoint: Endpoint
48
+ endpoint: Endpoint,
48
49
  ): Promise<HttpRequest> => {
49
50
  const headers = {
50
51
  'content-type': 'application/xml',
@@ -57,6 +58,7 @@ const completeMultipartUploadSerializer = async (
57
58
  uploadId: input.UploadId,
58
59
  }).toString();
59
60
  validateS3RequiredParameter(!!input.MultipartUpload, 'MultipartUpload');
61
+
60
62
  return {
61
63
  method: 'POST',
62
64
  headers,
@@ -68,13 +70,14 @@ const completeMultipartUploadSerializer = async (
68
70
  };
69
71
 
70
72
  const serializeCompletedMultipartUpload = (
71
- input: CompletedMultipartUpload
73
+ input: CompletedMultipartUpload,
72
74
  ): string => {
73
75
  if (!input.Parts?.length) {
74
76
  throw new Error(`${INVALID_PARAMETER_ERROR_MSG}: ${input}`);
75
77
  }
78
+
76
79
  return `<CompleteMultipartUpload xmlns="http://s3.amazonaws.com/doc/2006-03-01/">${input.Parts.map(
77
- serializeCompletedPartList
80
+ serializeCompletedPartList,
78
81
  ).join('')}</CompleteMultipartUpload>`;
79
82
  };
80
83
 
@@ -82,6 +85,7 @@ const serializeCompletedPartList = (input: CompletedPart): string => {
82
85
  if (!input.ETag || input.PartNumber == null) {
83
86
  throw new Error(`${INVALID_PARAMETER_ERROR_MSG}: ${input}`);
84
87
  }
88
+
85
89
  return `<Part><ETag>${input.ETag}</ETag><PartNumber>${input.PartNumber}</PartNumber></Part>`;
86
90
  };
87
91
 
@@ -100,11 +104,12 @@ const parseXmlBodyOrThrow = async (response: HttpResponse): Promise<any> => {
100
104
  })) as Error;
101
105
  throw buildStorageServiceError(error, response.statusCode);
102
106
  }
107
+
103
108
  return parsed;
104
109
  };
105
110
 
106
111
  const completeMultipartUploadDeserializer = async (
107
- response: HttpResponse
112
+ response: HttpResponse,
108
113
  ): Promise<CompleteMultipartUploadOutput> => {
109
114
  if (response.statusCode >= 300) {
110
115
  const error = (await parseXmlError(response)) as Error;
@@ -116,6 +121,7 @@ const completeMultipartUploadDeserializer = async (
116
121
  Key: 'Key',
117
122
  Location: 'Location',
118
123
  });
124
+
119
125
  return {
120
126
  $metadata: parseMetadata(response),
121
127
  ...contents,
@@ -128,7 +134,7 @@ const completeMultipartUploadDeserializer = async (
128
134
  // Ref: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html#API_CompleteMultipartUpload_Example_4
129
135
  const retryWhenErrorWith200StatusCode = async (
130
136
  response?: HttpResponse,
131
- error?: unknown
137
+ error?: unknown,
132
138
  ): Promise<boolean> => {
133
139
  if (!response) {
134
140
  return false;
@@ -141,10 +147,12 @@ const retryWhenErrorWith200StatusCode = async (
141
147
  if (parsed.Code !== undefined && parsed.Message !== undefined) {
142
148
  return true;
143
149
  }
150
+
144
151
  return false;
145
152
  }
146
153
 
147
154
  const defaultRetryDecider = defaultConfig.retryDecider;
155
+
148
156
  return defaultRetryDecider(response, error);
149
157
  };
150
158
 
@@ -156,5 +164,5 @@ export const completeMultipartUpload = composeServiceApi(
156
164
  ...defaultConfig,
157
165
  responseType: 'text',
158
166
  retryDecider: retryWhenErrorWith200StatusCode,
159
- }
167
+ },
160
168
  );
@@ -9,14 +9,15 @@ import {
9
9
  } from '@aws-amplify/core/internals/aws-client-utils';
10
10
  import { AmplifyUrl } from '@aws-amplify/core/internals/utils';
11
11
  import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';
12
+
12
13
  import type { CopyObjectCommandInput, CopyObjectCommandOutput } from './types';
13
14
  import { defaultConfig } from './base';
14
15
  import {
16
+ assignStringVariables,
15
17
  buildStorageServiceError,
16
18
  parseXmlBody,
17
19
  parseXmlError,
18
20
  s3TransferHandler,
19
- assignStringVariables,
20
21
  serializeObjectConfigsToHeaders,
21
22
  serializePathnameObjectKey,
22
23
  validateS3RequiredParameter,
@@ -42,7 +43,7 @@ export type CopyObjectOutput = CopyObjectCommandOutput;
42
43
 
43
44
  const copyObjectSerializer = async (
44
45
  input: CopyObjectInput,
45
- endpoint: Endpoint
46
+ endpoint: Endpoint,
46
47
  ): Promise<HttpRequest> => {
47
48
  const headers = {
48
49
  ...(await serializeObjectConfigsToHeaders(input)),
@@ -54,6 +55,7 @@ const copyObjectSerializer = async (
54
55
  const url = new AmplifyUrl(endpoint.url.toString());
55
56
  validateS3RequiredParameter(!!input.Key, 'Key');
56
57
  url.pathname = serializePathnameObjectKey(url, input.Key);
58
+
57
59
  return {
58
60
  method: 'PUT',
59
61
  headers,
@@ -62,13 +64,14 @@ const copyObjectSerializer = async (
62
64
  };
63
65
 
64
66
  const copyObjectDeserializer = async (
65
- response: HttpResponse
67
+ response: HttpResponse,
66
68
  ): Promise<CopyObjectOutput> => {
67
69
  if (response.statusCode >= 300) {
68
70
  const error = (await parseXmlError(response)) as Error;
69
71
  throw buildStorageServiceError(error, response.statusCode);
70
72
  } else {
71
73
  await parseXmlBody(response);
74
+
72
75
  return {
73
76
  $metadata: parseMetadata(response),
74
77
  };
@@ -79,5 +82,5 @@ export const copyObject = composeServiceApi(
79
82
  s3TransferHandler,
80
83
  copyObjectSerializer,
81
84
  copyObjectDeserializer,
82
- { ...defaultConfig, responseType: 'text' }
85
+ { ...defaultConfig, responseType: 'text' },
83
86
  );
@@ -9,22 +9,22 @@ import {
9
9
  } from '@aws-amplify/core/internals/aws-client-utils';
10
10
  import { AmplifyUrl } from '@aws-amplify/core/internals/utils';
11
11
  import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';
12
+
12
13
  import type {
13
14
  CreateMultipartUploadCommandInput,
14
15
  CreateMultipartUploadCommandOutput,
15
16
  } from './types';
16
17
  import type { PutObjectInput } from './putObject';
17
-
18
18
  import { defaultConfig } from './base';
19
19
  import {
20
20
  buildStorageServiceError,
21
- validateS3RequiredParameter,
22
21
  map,
23
22
  parseXmlBody,
24
23
  parseXmlError,
25
24
  s3TransferHandler,
26
25
  serializeObjectConfigsToHeaders,
27
26
  serializePathnameObjectKey,
27
+ validateS3RequiredParameter,
28
28
  } from './utils';
29
29
 
30
30
  export type CreateMultipartUploadInput = Extract<
@@ -39,13 +39,14 @@ export type CreateMultipartUploadOutput = Pick<
39
39
 
40
40
  const createMultipartUploadSerializer = async (
41
41
  input: CreateMultipartUploadInput,
42
- endpoint: Endpoint
42
+ endpoint: Endpoint,
43
43
  ): Promise<HttpRequest> => {
44
44
  const headers = await serializeObjectConfigsToHeaders(input);
45
45
  const url = new AmplifyUrl(endpoint.url.toString());
46
46
  validateS3RequiredParameter(!!input.Key, 'Key');
47
47
  url.pathname = serializePathnameObjectKey(url, input.Key);
48
48
  url.search = 'uploads';
49
+
49
50
  return {
50
51
  method: 'POST',
51
52
  headers,
@@ -54,7 +55,7 @@ const createMultipartUploadSerializer = async (
54
55
  };
55
56
 
56
57
  const createMultipartUploadDeserializer = async (
57
- response: HttpResponse
58
+ response: HttpResponse,
58
59
  ): Promise<CreateMultipartUploadOutput> => {
59
60
  if (response.statusCode >= 300) {
60
61
  const error = (await parseXmlError(response)) as Error;
@@ -64,6 +65,7 @@ const createMultipartUploadDeserializer = async (
64
65
  const contents = map(parsed, {
65
66
  UploadId: 'UploadId',
66
67
  });
68
+
67
69
  return {
68
70
  $metadata: parseMetadata(response),
69
71
  ...contents,
@@ -75,5 +77,5 @@ export const createMultipartUpload = composeServiceApi(
75
77
  s3TransferHandler,
76
78
  createMultipartUploadSerializer,
77
79
  createMultipartUploadDeserializer,
78
- { ...defaultConfig, responseType: 'text' }
80
+ { ...defaultConfig, responseType: 'text' },
79
81
  );
@@ -9,11 +9,11 @@ import {
9
9
  } from '@aws-amplify/core/internals/aws-client-utils';
10
10
  import { AmplifyUrl } from '@aws-amplify/core/internals/utils';
11
11
  import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';
12
+
12
13
  import type {
13
14
  DeleteObjectCommandInput,
14
15
  DeleteObjectCommandOutput,
15
16
  } from './types';
16
-
17
17
  import { defaultConfig } from './base';
18
18
  import {
19
19
  buildStorageServiceError,
@@ -24,7 +24,6 @@ import {
24
24
  serializePathnameObjectKey,
25
25
  validateS3RequiredParameter,
26
26
  } from './utils';
27
- import { StorageError } from '../../../../errors/StorageError';
28
27
 
29
28
  export type DeleteObjectInput = Pick<
30
29
  DeleteObjectCommandInput,
@@ -35,11 +34,12 @@ export type DeleteObjectOutput = DeleteObjectCommandOutput;
35
34
 
36
35
  const deleteObjectSerializer = (
37
36
  input: DeleteObjectInput,
38
- endpoint: Endpoint
37
+ endpoint: Endpoint,
39
38
  ): HttpRequest => {
40
39
  const url = new AmplifyUrl(endpoint.url.toString());
41
40
  validateS3RequiredParameter(!!input.Key, 'Key');
42
41
  url.pathname = serializePathnameObjectKey(url, input.Key);
42
+
43
43
  return {
44
44
  method: 'DELETE',
45
45
  headers: {},
@@ -48,7 +48,7 @@ const deleteObjectSerializer = (
48
48
  };
49
49
 
50
50
  const deleteObjectDeserializer = async (
51
- response: HttpResponse
51
+ response: HttpResponse,
52
52
  ): Promise<DeleteObjectOutput> => {
53
53
  if (response.statusCode >= 300) {
54
54
  // error is always set when statusCode >= 300
@@ -60,6 +60,7 @@ const deleteObjectDeserializer = async (
60
60
  VersionId: 'x-amz-version-id',
61
61
  RequestCharged: 'x-amz-request-charged',
62
62
  });
63
+
63
64
  return {
64
65
  ...content,
65
66
  $metadata: parseMetadata(response),
@@ -71,5 +72,5 @@ export const deleteObject = composeServiceApi(
71
72
  s3TransferHandler,
72
73
  deleteObjectSerializer,
73
74
  deleteObjectDeserializer,
74
- { ...defaultConfig, responseType: 'text' }
75
+ { ...defaultConfig, responseType: 'text' },
75
76
  );
@@ -2,14 +2,14 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import {
5
+ EMPTY_SHA256_HASH,
5
6
  Endpoint,
6
7
  HttpRequest,
8
+ HttpResponse,
9
+ PresignUrlOptions,
10
+ UserAgentOptions,
7
11
  parseMetadata,
8
12
  presignUrl,
9
- UserAgentOptions,
10
- PresignUrlOptions,
11
- EMPTY_SHA256_HASH,
12
- HttpResponse,
13
13
  } from '@aws-amplify/core/internals/aws-client-utils';
14
14
  import { AmplifyUrl } from '@aws-amplify/core/internals/utils';
15
15
  import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';
@@ -21,6 +21,7 @@ import type {
21
21
  GetObjectCommandOutput,
22
22
  } from './types';
23
23
  import {
24
+ CONTENT_SHA256_HEADER,
24
25
  buildStorageServiceError,
25
26
  deserializeBoolean,
26
27
  deserializeMetadata,
@@ -30,7 +31,6 @@ import {
30
31
  parseXmlError,
31
32
  s3TransferHandler,
32
33
  serializePathnameObjectKey,
33
- CONTENT_SHA256_HEADER,
34
34
  validateS3RequiredParameter,
35
35
  } from './utils';
36
36
 
@@ -45,11 +45,12 @@ export type GetObjectOutput = GetObjectCommandOutput;
45
45
 
46
46
  const getObjectSerializer = async (
47
47
  input: GetObjectInput,
48
- endpoint: Endpoint
48
+ endpoint: Endpoint,
49
49
  ): Promise<HttpRequest> => {
50
50
  const url = new AmplifyUrl(endpoint.url.toString());
51
51
  validateS3RequiredParameter(!!input.Key, 'Key');
52
52
  url.pathname = serializePathnameObjectKey(url, input.Key);
53
+
53
54
  return {
54
55
  method: 'GET',
55
56
  headers: {
@@ -60,7 +61,7 @@ const getObjectSerializer = async (
60
61
  };
61
62
 
62
63
  const getObjectDeserializer = async (
63
- response: HttpResponse
64
+ response: HttpResponse,
64
65
  ): Promise<GetObjectOutput> => {
65
66
  if (response.statusCode >= 300) {
66
67
  const error = (await parseXmlError(response)) as Error;
@@ -122,7 +123,7 @@ export const getObject = composeServiceApi(
122
123
  s3TransferHandler,
123
124
  getObjectSerializer,
124
125
  getObjectDeserializer,
125
- { ...defaultConfig, responseType: 'blob' }
126
+ { ...defaultConfig, responseType: 'blob' },
126
127
  );
127
128
 
128
129
  type S3GetObjectPresignedUrlConfig = Omit<
@@ -140,7 +141,7 @@ type S3GetObjectPresignedUrlConfig = Omit<
140
141
  */
141
142
  export const getPresignedGetObjectUrl = async (
142
143
  config: S3GetObjectPresignedUrlConfig,
143
- input: GetObjectInput
144
+ input: GetObjectInput,
144
145
  ): Promise<URL> => {
145
146
  const endpoint = defaultConfig.endpointResolver(config, input);
146
147
  const { url, headers, method } = await getObjectSerializer(input, endpoint);
@@ -152,15 +153,16 @@ export const getPresignedGetObjectUrl = async (
152
153
  if (config.userAgentValue) {
153
154
  url.searchParams.append(
154
155
  config.userAgentHeader ?? USER_AGENT_HEADER,
155
- config.userAgentValue
156
+ config.userAgentValue,
156
157
  );
157
158
  }
158
159
 
159
160
  for (const [headerName, value] of Object.entries(headers).sort(
160
- ([key1], [key2]) => key1.localeCompare(key2)
161
+ ([key1], [key2]) => key1.localeCompare(key2),
161
162
  )) {
162
163
  url.searchParams.append(headerName, value);
163
164
  }
165
+
164
166
  return presignUrl(
165
167
  { method, url, body: undefined },
166
168
  {
@@ -168,6 +170,6 @@ export const getPresignedGetObjectUrl = async (
168
170
  signingRegion: config.region,
169
171
  ...defaultConfig,
170
172
  ...config,
171
- }
173
+ },
172
174
  );
173
175
  };
@@ -9,9 +9,9 @@ import {
9
9
  } from '@aws-amplify/core/internals/aws-client-utils';
10
10
  import { AmplifyUrl } from '@aws-amplify/core/internals/utils';
11
11
  import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';
12
+
12
13
  import { defaultConfig } from './base';
13
14
  import type { HeadObjectCommandInput, HeadObjectCommandOutput } from './types';
14
-
15
15
  import {
16
16
  buildStorageServiceError,
17
17
  deserializeMetadata,
@@ -23,7 +23,6 @@ import {
23
23
  serializePathnameObjectKey,
24
24
  validateS3RequiredParameter,
25
25
  } from './utils';
26
- import { StorageError } from '../../../../errors/StorageError';
27
26
 
28
27
  export type HeadObjectInput = Pick<HeadObjectCommandInput, 'Bucket' | 'Key'>;
29
28
 
@@ -40,11 +39,12 @@ export type HeadObjectOutput = Pick<
40
39
 
41
40
  const headObjectSerializer = async (
42
41
  input: HeadObjectInput,
43
- endpoint: Endpoint
42
+ endpoint: Endpoint,
44
43
  ): Promise<HttpRequest> => {
45
44
  const url = new AmplifyUrl(endpoint.url.toString());
46
45
  validateS3RequiredParameter(!!input.Key, 'Key');
47
46
  url.pathname = serializePathnameObjectKey(url, input.Key);
47
+
48
48
  return {
49
49
  method: 'HEAD',
50
50
  headers: {},
@@ -53,7 +53,7 @@ const headObjectSerializer = async (
53
53
  };
54
54
 
55
55
  const headObjectDeserializer = async (
56
- response: HttpResponse
56
+ response: HttpResponse,
57
57
  ): Promise<HeadObjectOutput> => {
58
58
  if (response.statusCode >= 300) {
59
59
  // error is always set when statusCode >= 300
@@ -70,6 +70,7 @@ const headObjectDeserializer = async (
70
70
  }),
71
71
  Metadata: deserializeMetadata(response.headers),
72
72
  };
73
+
73
74
  return {
74
75
  $metadata: parseMetadata(response),
75
76
  ...contents,
@@ -81,5 +82,5 @@ export const headObject = composeServiceApi(
81
82
  s3TransferHandler,
82
83
  headObjectSerializer,
83
84
  headObjectDeserializer,
84
- { ...defaultConfig, responseType: 'text' }
85
+ { ...defaultConfig, responseType: 'text' },
85
86
  );
@@ -12,6 +12,7 @@ import {
12
12
  AmplifyUrlSearchParams,
13
13
  } from '@aws-amplify/core/internals/utils';
14
14
  import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';
15
+
15
16
  import type {
16
17
  ListObjectsV2CommandInput,
17
18
  ListObjectsV2CommandOutput,
@@ -36,7 +37,7 @@ export type ListObjectsV2Output = ListObjectsV2CommandOutput;
36
37
 
37
38
  const listObjectsV2Serializer = (
38
39
  input: ListObjectsV2Input,
39
- endpoint: Endpoint
40
+ endpoint: Endpoint,
40
41
  ): HttpRequest => {
41
42
  const headers = assignStringVariables({
42
43
  'x-amz-request-payer': input.RequestPayer,
@@ -54,6 +55,7 @@ const listObjectsV2Serializer = (
54
55
  });
55
56
  const url = new AmplifyUrl(endpoint.url.toString());
56
57
  url.search = new AmplifyUrlSearchParams(query).toString();
58
+
57
59
  return {
58
60
  method: 'GET',
59
61
  headers,
@@ -62,7 +64,7 @@ const listObjectsV2Serializer = (
62
64
  };
63
65
 
64
66
  const listObjectsV2Deserializer = async (
65
- response: HttpResponse
67
+ response: HttpResponse,
66
68
  ): Promise<ListObjectsV2Output> => {
67
69
  if (response.statusCode >= 300) {
68
70
  // error is always set when statusCode >= 300
@@ -90,6 +92,7 @@ const listObjectsV2Deserializer = async (
90
92
  Prefix: 'Prefix',
91
93
  StartAfter: 'StartAfter',
92
94
  });
95
+
93
96
  return {
94
97
  $metadata: parseMetadata(response),
95
98
  ...contents,
@@ -131,5 +134,5 @@ export const listObjectsV2 = composeServiceApi(
131
134
  s3TransferHandler,
132
135
  listObjectsV2Serializer,
133
136
  listObjectsV2Deserializer,
134
- { ...defaultConfig, responseType: 'text' }
137
+ { ...defaultConfig, responseType: 'text' },
135
138
  );