@aws-amplify/storage 6.7.8 → 6.7.9-monitoring-instrument.47a7bda.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.
- package/dist/cjs/providers/s3/utils/client/s3control/getDataAccess.js +1 -1
- package/dist/cjs/providers/s3/utils/client/s3control/getDataAccess.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/s3control/listCallerAccessGrants.js +1 -1
- package/dist/cjs/providers/s3/utils/client/s3control/listCallerAccessGrants.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/s3data/abortMultipartUpload.js +2 -1
- package/dist/cjs/providers/s3/utils/client/s3data/abortMultipartUpload.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/s3data/completeMultipartUpload.js +12 -7
- package/dist/cjs/providers/s3/utils/client/s3data/completeMultipartUpload.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/s3data/copyObject.js +4 -1
- package/dist/cjs/providers/s3/utils/client/s3data/copyObject.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/s3data/createMultipartUpload.js +1 -1
- package/dist/cjs/providers/s3/utils/client/s3data/createMultipartUpload.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/s3data/deleteObject.js +4 -1
- package/dist/cjs/providers/s3/utils/client/s3data/deleteObject.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/s3data/getObject.js +4 -1
- package/dist/cjs/providers/s3/utils/client/s3data/getObject.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/s3data/headObject.js +1 -1
- package/dist/cjs/providers/s3/utils/client/s3data/headObject.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/s3data/listObjectsV2.js +1 -1
- package/dist/cjs/providers/s3/utils/client/s3data/listObjectsV2.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/s3data/listParts.js +2 -1
- package/dist/cjs/providers/s3/utils/client/s3data/listParts.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/s3data/putObject.js +4 -1
- package/dist/cjs/providers/s3/utils/client/s3data/putObject.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/s3data/uploadPart.js +1 -1
- package/dist/cjs/providers/s3/utils/client/s3data/uploadPart.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/utils/deserializeHelpers.js +1 -0
- package/dist/cjs/providers/s3/utils/client/utils/deserializeHelpers.js.map +1 -1
- package/dist/esm/providers/s3/utils/client/s3control/getDataAccess.mjs +1 -1
- package/dist/esm/providers/s3/utils/client/s3control/getDataAccess.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/s3control/listCallerAccessGrants.mjs +1 -1
- package/dist/esm/providers/s3/utils/client/s3control/listCallerAccessGrants.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/s3data/abortMultipartUpload.mjs +2 -1
- package/dist/esm/providers/s3/utils/client/s3data/abortMultipartUpload.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/s3data/completeMultipartUpload.mjs +12 -7
- package/dist/esm/providers/s3/utils/client/s3data/completeMultipartUpload.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/s3data/copyObject.mjs +5 -2
- package/dist/esm/providers/s3/utils/client/s3data/copyObject.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/s3data/createMultipartUpload.mjs +1 -1
- package/dist/esm/providers/s3/utils/client/s3data/createMultipartUpload.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/s3data/deleteObject.mjs +5 -2
- package/dist/esm/providers/s3/utils/client/s3data/deleteObject.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/s3data/getObject.mjs +5 -2
- package/dist/esm/providers/s3/utils/client/s3data/getObject.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/s3data/headObject.mjs +1 -1
- package/dist/esm/providers/s3/utils/client/s3data/headObject.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/s3data/listObjectsV2.mjs +1 -1
- package/dist/esm/providers/s3/utils/client/s3data/listObjectsV2.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/s3data/listParts.mjs +2 -1
- package/dist/esm/providers/s3/utils/client/s3data/listParts.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/s3data/putObject.mjs +5 -2
- package/dist/esm/providers/s3/utils/client/s3data/putObject.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/s3data/uploadPart.mjs +1 -1
- package/dist/esm/providers/s3/utils/client/s3data/uploadPart.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.d.ts +2 -1
- package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.mjs +1 -0
- package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.mjs.map +1 -1
- package/package.json +118 -118
- package/src/providers/s3/utils/client/s3control/getDataAccess.ts +2 -2
- package/src/providers/s3/utils/client/s3control/listCallerAccessGrants.ts +2 -2
- package/src/providers/s3/utils/client/s3data/abortMultipartUpload.ts +3 -2
- package/src/providers/s3/utils/client/s3data/completeMultipartUpload.ts +18 -9
- package/src/providers/s3/utils/client/s3data/copyObject.ts +9 -3
- package/src/providers/s3/utils/client/s3data/createMultipartUpload.ts +2 -2
- package/src/providers/s3/utils/client/s3data/deleteObject.ts +9 -3
- package/src/providers/s3/utils/client/s3data/getObject.ts +9 -3
- package/src/providers/s3/utils/client/s3data/headObject.ts +2 -2
- package/src/providers/s3/utils/client/s3data/listObjectsV2.ts +2 -2
- package/src/providers/s3/utils/client/s3data/listParts.ts +3 -2
- package/src/providers/s3/utils/client/s3data/putObject.ts +9 -3
- package/src/providers/s3/utils/client/s3data/uploadPart.ts +2 -2
- package/src/providers/s3/utils/client/utils/deserializeHelpers.ts +3 -1
|
@@ -39,7 +39,7 @@ const listObjectsV2Serializer = (input, endpoint) => {
|
|
|
39
39
|
const listObjectsV2Deserializer = async (response) => {
|
|
40
40
|
if (response.statusCode >= 300) {
|
|
41
41
|
// error is always set when statusCode >= 300
|
|
42
|
-
const error =
|
|
42
|
+
const error = await parseXmlError(response);
|
|
43
43
|
throw buildStorageServiceError(error, response.statusCode);
|
|
44
44
|
}
|
|
45
45
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listObjectsV2.mjs","sources":["../../../../../../../src/providers/s3/utils/client/s3data/listObjectsV2.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { AmplifyUrl, AmplifyUrlSearchParams, } from '@aws-amplify/core/internals/utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { assignStringVariables, buildStorageServiceError, deserializeBoolean, deserializeNumber, deserializeTimestamp, emptyArrayGuard, map, parseXmlBody, s3TransferHandler, } from '../utils';\nimport { IntegrityError } from '../../../../../errors/IntegrityError';\nimport { defaultConfig, parseXmlError } from './base';\nconst listObjectsV2Serializer = (input, endpoint) => {\n const headers = assignStringVariables({\n 'x-amz-request-payer': input.RequestPayer,\n 'x-amz-expected-bucket-owner': input.ExpectedBucketOwner,\n });\n const query = assignStringVariables({\n 'list-type': '2',\n 'continuation-token': input.ContinuationToken,\n delimiter: input.Delimiter,\n 'encoding-type': input.EncodingType,\n 'fetch-owner': input.FetchOwner,\n 'max-keys': input.MaxKeys,\n prefix: input.Prefix,\n 'start-after': input.StartAfter,\n });\n const url = new AmplifyUrl(endpoint.url.toString());\n url.search = new AmplifyUrlSearchParams(query).toString();\n return {\n method: 'GET',\n headers,\n url,\n };\n};\nconst listObjectsV2Deserializer = async (response) => {\n if (response.statusCode >= 300) {\n // error is always set when statusCode >= 300\n const error =
|
|
1
|
+
{"version":3,"file":"listObjectsV2.mjs","sources":["../../../../../../../src/providers/s3/utils/client/s3data/listObjectsV2.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { AmplifyUrl, AmplifyUrlSearchParams, } from '@aws-amplify/core/internals/utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { assignStringVariables, buildStorageServiceError, deserializeBoolean, deserializeNumber, deserializeTimestamp, emptyArrayGuard, map, parseXmlBody, s3TransferHandler, } from '../utils';\nimport { IntegrityError } from '../../../../../errors/IntegrityError';\nimport { defaultConfig, parseXmlError } from './base';\nconst listObjectsV2Serializer = (input, endpoint) => {\n const headers = assignStringVariables({\n 'x-amz-request-payer': input.RequestPayer,\n 'x-amz-expected-bucket-owner': input.ExpectedBucketOwner,\n });\n const query = assignStringVariables({\n 'list-type': '2',\n 'continuation-token': input.ContinuationToken,\n delimiter: input.Delimiter,\n 'encoding-type': input.EncodingType,\n 'fetch-owner': input.FetchOwner,\n 'max-keys': input.MaxKeys,\n prefix: input.Prefix,\n 'start-after': input.StartAfter,\n });\n const url = new AmplifyUrl(endpoint.url.toString());\n url.search = new AmplifyUrlSearchParams(query).toString();\n return {\n method: 'GET',\n headers,\n url,\n };\n};\nconst listObjectsV2Deserializer = async (response) => {\n if (response.statusCode >= 300) {\n // error is always set when statusCode >= 300\n const error = await parseXmlError(response);\n throw buildStorageServiceError(error, response.statusCode);\n }\n else {\n const parsed = await parseXmlBody(response);\n const contents = map(parsed, {\n CommonPrefixes: [\n 'CommonPrefixes',\n value => emptyArrayGuard(value, deserializeCommonPrefixList),\n ],\n Contents: [\n 'Contents',\n value => emptyArrayGuard(value, deserializeObjectList),\n ],\n ContinuationToken: 'ContinuationToken',\n Delimiter: 'Delimiter',\n EncodingType: 'EncodingType',\n IsTruncated: ['IsTruncated', deserializeBoolean],\n KeyCount: ['KeyCount', deserializeNumber],\n MaxKeys: ['MaxKeys', deserializeNumber],\n Name: 'Name',\n NextContinuationToken: 'NextContinuationToken',\n Prefix: 'Prefix',\n StartAfter: 'StartAfter',\n });\n const output = {\n $metadata: parseMetadata(response),\n ...contents,\n };\n validateCorroboratingElements(output);\n return output;\n }\n};\nconst deserializeCommonPrefixList = (output) => output.map(deserializeCommonPrefix);\nconst deserializeCommonPrefix = (output) => map(output, {\n Prefix: 'Prefix',\n});\nconst deserializeObjectList = (output) => output.map(deserializeObject);\nconst deserializeObject = (output) => map(output, {\n Key: 'Key',\n LastModified: ['LastModified', deserializeTimestamp],\n ETag: 'ETag',\n ChecksumAlgorithm: [\n 'ChecksumAlgorithm',\n value => emptyArrayGuard(value, deserializeChecksumAlgorithmList),\n ],\n Size: ['Size', deserializeNumber],\n StorageClass: 'StorageClass',\n Owner: ['Owner', deserializeOwner],\n});\nconst deserializeChecksumAlgorithmList = (output) => output.map(entry => String(entry));\nconst deserializeOwner = (output) => map(output, { DisplayName: 'DisplayName', ID: 'ID' });\nconst validateCorroboratingElements = (response) => {\n const { IsTruncated, KeyCount, Contents = [], CommonPrefixes = [], NextContinuationToken, } = response;\n const validTruncation = (IsTruncated && !!NextContinuationToken) ||\n (!IsTruncated && !NextContinuationToken);\n const validNumberOfKeysReturned = KeyCount === Contents.length + CommonPrefixes.length;\n if (!validTruncation || !validNumberOfKeysReturned) {\n throw new IntegrityError();\n }\n};\nexport const listObjectsV2 = composeServiceApi(s3TransferHandler, listObjectsV2Serializer, listObjectsV2Deserializer, { ...defaultConfig, responseType: 'text' });\n"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ const listPartsSerializer = async (input, endpoint) => {
|
|
|
19
19
|
url.pathname = serializePathnameObjectKey(url, input.Key);
|
|
20
20
|
validateS3RequiredParameter(!!input.UploadId, 'UploadId');
|
|
21
21
|
url.search = new AmplifyUrlSearchParams({
|
|
22
|
+
'x-id': 'ListParts',
|
|
22
23
|
uploadId: input.UploadId,
|
|
23
24
|
}).toString();
|
|
24
25
|
return {
|
|
@@ -29,7 +30,7 @@ const listPartsSerializer = async (input, endpoint) => {
|
|
|
29
30
|
};
|
|
30
31
|
const listPartsDeserializer = async (response) => {
|
|
31
32
|
if (response.statusCode >= 300) {
|
|
32
|
-
const error =
|
|
33
|
+
const error = await parseXmlError(response);
|
|
33
34
|
throw buildStorageServiceError(error, response.statusCode);
|
|
34
35
|
}
|
|
35
36
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listParts.mjs","sources":["../../../../../../../src/providers/s3/utils/client/s3data/listParts.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { AmplifyUrl, AmplifyUrlSearchParams, } from '@aws-amplify/core/internals/utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { buildStorageServiceError, deserializeCompletedPartList, emptyArrayGuard, map, parseXmlBody, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils';\nimport { defaultConfig, parseXmlError } from './base';\nconst listPartsSerializer = async (input, endpoint) => {\n const headers = {};\n const url = new AmplifyUrl(endpoint.url.toString());\n validateS3RequiredParameter(!!input.Key, 'Key');\n url.pathname = serializePathnameObjectKey(url, input.Key);\n validateS3RequiredParameter(!!input.UploadId, 'UploadId');\n url.search = new AmplifyUrlSearchParams({\n uploadId: input.UploadId,\n }).toString();\n return {\n method: 'GET',\n headers,\n url,\n };\n};\nconst listPartsDeserializer = async (response) => {\n if (response.statusCode >= 300) {\n const error =
|
|
1
|
+
{"version":3,"file":"listParts.mjs","sources":["../../../../../../../src/providers/s3/utils/client/s3data/listParts.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { AmplifyUrl, AmplifyUrlSearchParams, } from '@aws-amplify/core/internals/utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { buildStorageServiceError, deserializeCompletedPartList, emptyArrayGuard, map, parseXmlBody, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils';\nimport { defaultConfig, parseXmlError } from './base';\nconst listPartsSerializer = async (input, endpoint) => {\n const headers = {};\n const url = new AmplifyUrl(endpoint.url.toString());\n validateS3RequiredParameter(!!input.Key, 'Key');\n url.pathname = serializePathnameObjectKey(url, input.Key);\n validateS3RequiredParameter(!!input.UploadId, 'UploadId');\n url.search = new AmplifyUrlSearchParams({\n 'x-id': 'ListParts',\n uploadId: input.UploadId,\n }).toString();\n return {\n method: 'GET',\n headers,\n url,\n };\n};\nconst listPartsDeserializer = async (response) => {\n if (response.statusCode >= 300) {\n const error = await parseXmlError(response);\n throw buildStorageServiceError(error, response.statusCode);\n }\n else {\n const parsed = await parseXmlBody(response);\n const contents = map(parsed, {\n UploadId: 'UploadId',\n Parts: [\n 'Part',\n value => emptyArrayGuard(value, deserializeCompletedPartList),\n ],\n });\n return {\n $metadata: parseMetadata(response),\n ...contents,\n };\n }\n};\nexport const listParts = composeServiceApi(s3TransferHandler, listPartsSerializer, listPartsDeserializer, { ...defaultConfig, responseType: 'text' });\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AACA;AAMA,MAAM,mBAAmB,GAAG,OAAO,KAAK,EAAE,QAAQ,KAAK;AACvD,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;AACvB,IAAI,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxD,IAAI,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACpD,IAAI,GAAG,CAAC,QAAQ,GAAG,0BAA0B,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9D,IAAI,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC9D,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,sBAAsB,CAAC;AAC5C,QAAQ,MAAM,EAAE,WAAW;AAC3B,QAAQ,QAAQ,EAAE,KAAK,CAAC,QAAQ;AAChC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;AAClB,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,KAAK;AACrB,QAAQ,OAAO;AACf,QAAQ,GAAG;AACX,KAAK,CAAC;AACN,CAAC,CAAC;AACF,MAAM,qBAAqB,GAAG,OAAO,QAAQ,KAAK;AAClD,IAAI,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;AACpC,QAAQ,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;AACpD,QAAQ,MAAM,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;AACnE,KAAK;AACL,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;AACpD,QAAQ,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE;AACrC,YAAY,QAAQ,EAAE,UAAU;AAChC,YAAY,KAAK,EAAE;AACnB,gBAAgB,MAAM;AACtB,gBAAgB,KAAK,IAAI,eAAe,CAAC,KAAK,EAAE,4BAA4B,CAAC;AAC7E,aAAa;AACb,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO;AACf,YAAY,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC;AAC9C,YAAY,GAAG,QAAQ;AACvB,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACU,MAAC,SAAS,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,EAAE,GAAG,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { parseMetadata } from '@aws-amplify/core/internals/aws-client-utils';
|
|
2
|
-
import { AmplifyUrl } from '@aws-amplify/core/internals/utils';
|
|
2
|
+
import { AmplifyUrl, AmplifyUrlSearchParams } from '@aws-amplify/core/internals/utils';
|
|
3
3
|
import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';
|
|
4
4
|
import { s3TransferHandler } from '../runtime/s3TransferHandler/fetch.mjs';
|
|
5
5
|
import 'fast-xml-parser';
|
|
@@ -28,6 +28,9 @@ const putObjectSerializer = async (input, endpoint) => {
|
|
|
28
28
|
const url = new AmplifyUrl(endpoint.url.toString());
|
|
29
29
|
validateS3RequiredParameter(!!input.Key, 'Key');
|
|
30
30
|
url.pathname = serializePathnameObjectKey(url, input.Key);
|
|
31
|
+
url.search = new AmplifyUrlSearchParams({
|
|
32
|
+
'x-id': 'PutObject',
|
|
33
|
+
}).toString();
|
|
31
34
|
validateObjectUrl({
|
|
32
35
|
bucketName: input.Bucket,
|
|
33
36
|
key: input.Key,
|
|
@@ -42,7 +45,7 @@ const putObjectSerializer = async (input, endpoint) => {
|
|
|
42
45
|
};
|
|
43
46
|
const putObjectDeserializer = async (response) => {
|
|
44
47
|
if (response.statusCode >= 300) {
|
|
45
|
-
const error =
|
|
48
|
+
const error = await parseXmlError(response);
|
|
46
49
|
throw buildStorageServiceError(error, response.statusCode);
|
|
47
50
|
}
|
|
48
51
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"putObject.mjs","sources":["../../../../../../../src/providers/s3/utils/client/s3data/putObject.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { AmplifyUrl } from '@aws-amplify/core/internals/utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { assignStringVariables, buildStorageServiceError, map, s3TransferHandler, serializeObjectConfigsToHeaders, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils';\nimport { validateObjectUrl } from '../../validateObjectUrl';\nimport { defaultConfig, parseXmlError } from './base';\nconst putObjectSerializer = async (input, endpoint) => {\n const headers = {\n ...(await serializeObjectConfigsToHeaders({\n ...input,\n ContentType: input.ContentType ?? 'application/octet-stream',\n })),\n ...assignStringVariables({\n 'content-md5': input.ContentMD5,\n 'x-amz-checksum-crc32': input.ChecksumCRC32,\n 'x-amz-expected-bucket-owner': input.ExpectedBucketOwner,\n 'If-None-Match': input.IfNoneMatch,\n }),\n };\n const url = new AmplifyUrl(endpoint.url.toString());\n validateS3RequiredParameter(!!input.Key, 'Key');\n url.pathname = serializePathnameObjectKey(url, input.Key);\n validateObjectUrl({\n bucketName: input.Bucket,\n key: input.Key,\n objectURL: url,\n });\n return {\n method: 'PUT',\n headers,\n url,\n body: input.Body,\n };\n};\nconst putObjectDeserializer = async (response) => {\n if (response.statusCode >= 300) {\n const error =
|
|
1
|
+
{"version":3,"file":"putObject.mjs","sources":["../../../../../../../src/providers/s3/utils/client/s3data/putObject.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { AmplifyUrl, AmplifyUrlSearchParams, } from '@aws-amplify/core/internals/utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { assignStringVariables, buildStorageServiceError, map, s3TransferHandler, serializeObjectConfigsToHeaders, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils';\nimport { validateObjectUrl } from '../../validateObjectUrl';\nimport { defaultConfig, parseXmlError } from './base';\nconst putObjectSerializer = async (input, endpoint) => {\n const headers = {\n ...(await serializeObjectConfigsToHeaders({\n ...input,\n ContentType: input.ContentType ?? 'application/octet-stream',\n })),\n ...assignStringVariables({\n 'content-md5': input.ContentMD5,\n 'x-amz-checksum-crc32': input.ChecksumCRC32,\n 'x-amz-expected-bucket-owner': input.ExpectedBucketOwner,\n 'If-None-Match': input.IfNoneMatch,\n }),\n };\n const url = new AmplifyUrl(endpoint.url.toString());\n validateS3RequiredParameter(!!input.Key, 'Key');\n url.pathname = serializePathnameObjectKey(url, input.Key);\n url.search = new AmplifyUrlSearchParams({\n 'x-id': 'PutObject',\n }).toString();\n validateObjectUrl({\n bucketName: input.Bucket,\n key: input.Key,\n objectURL: url,\n });\n return {\n method: 'PUT',\n headers,\n url,\n body: input.Body,\n };\n};\nconst putObjectDeserializer = async (response) => {\n if (response.statusCode >= 300) {\n const error = await parseXmlError(response);\n throw buildStorageServiceError(error, response.statusCode);\n }\n else {\n return {\n ...map(response.headers, {\n ETag: 'etag',\n VersionId: 'x-amz-version-id',\n }),\n $metadata: parseMetadata(response),\n };\n }\n};\nexport const putObject = composeServiceApi(s3TransferHandler, putObjectSerializer, putObjectDeserializer, { ...defaultConfig, responseType: 'text' });\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AACA;AAOA,MAAM,mBAAmB,GAAG,OAAO,KAAK,EAAE,QAAQ,KAAK;AACvD,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,IAAI,MAAM,+BAA+B,CAAC;AAClD,YAAY,GAAG,KAAK;AACpB,YAAY,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,0BAA0B;AACxE,SAAS,CAAC,CAAC;AACX,QAAQ,GAAG,qBAAqB,CAAC;AACjC,YAAY,aAAa,EAAE,KAAK,CAAC,UAAU;AAC3C,YAAY,sBAAsB,EAAE,KAAK,CAAC,aAAa;AACvD,YAAY,6BAA6B,EAAE,KAAK,CAAC,mBAAmB;AACpE,YAAY,eAAe,EAAE,KAAK,CAAC,WAAW;AAC9C,SAAS,CAAC;AACV,KAAK,CAAC;AACN,IAAI,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxD,IAAI,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACpD,IAAI,GAAG,CAAC,QAAQ,GAAG,0BAA0B,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9D,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,sBAAsB,CAAC;AAC5C,QAAQ,MAAM,EAAE,WAAW;AAC3B,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;AAClB,IAAI,iBAAiB,CAAC;AACtB,QAAQ,UAAU,EAAE,KAAK,CAAC,MAAM;AAChC,QAAQ,GAAG,EAAE,KAAK,CAAC,GAAG;AACtB,QAAQ,SAAS,EAAE,GAAG;AACtB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,KAAK;AACrB,QAAQ,OAAO;AACf,QAAQ,GAAG;AACX,QAAQ,IAAI,EAAE,KAAK,CAAC,IAAI;AACxB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,MAAM,qBAAqB,GAAG,OAAO,QAAQ,KAAK;AAClD,IAAI,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;AACpC,QAAQ,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;AACpD,QAAQ,MAAM,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;AACnE,KAAK;AACL,SAAS;AACT,QAAQ,OAAO;AACf,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;AACrC,gBAAgB,IAAI,EAAE,MAAM;AAC5B,gBAAgB,SAAS,EAAE,kBAAkB;AAC7C,aAAa,CAAC;AACd,YAAY,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC;AAC9C,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACU,MAAC,SAAS,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,EAAE,GAAG,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE;;;;"}
|
|
@@ -44,7 +44,7 @@ const uploadPartSerializer = async (input, endpoint) => {
|
|
|
44
44
|
};
|
|
45
45
|
const uploadPartDeserializer = async (response) => {
|
|
46
46
|
if (response.statusCode >= 300) {
|
|
47
|
-
const error =
|
|
47
|
+
const error = await parseXmlError(response);
|
|
48
48
|
throw buildStorageServiceError(error, response.statusCode);
|
|
49
49
|
}
|
|
50
50
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadPart.mjs","sources":["../../../../../../../src/providers/s3/utils/client/s3data/uploadPart.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { AmplifyUrl, AmplifyUrlSearchParams, } from '@aws-amplify/core/internals/utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { assignStringVariables, buildStorageServiceError, map, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils';\nimport { validateObjectUrl } from '../../validateObjectUrl';\nimport { defaultConfig, parseXmlError } from './base';\nconst uploadPartSerializer = async (input, endpoint) => {\n const headers = {\n ...assignStringVariables({\n 'x-amz-checksum-crc32': input.ChecksumCRC32,\n 'content-md5': input.ContentMD5,\n 'x-amz-expected-bucket-owner': input.ExpectedBucketOwner,\n }),\n 'content-type': 'application/octet-stream',\n };\n const url = new AmplifyUrl(endpoint.url.toString());\n validateS3RequiredParameter(!!input.Key, 'Key');\n url.pathname = serializePathnameObjectKey(url, input.Key);\n validateS3RequiredParameter(!!input.PartNumber, 'PartNumber');\n validateS3RequiredParameter(!!input.UploadId, 'UploadId');\n url.search = new AmplifyUrlSearchParams({\n partNumber: input.PartNumber + '',\n uploadId: input.UploadId,\n }).toString();\n validateObjectUrl({\n bucketName: input.Bucket,\n key: input.Key,\n objectURL: url,\n });\n return {\n method: 'PUT',\n headers,\n url,\n body: input.Body,\n };\n};\nconst uploadPartDeserializer = async (response) => {\n if (response.statusCode >= 300) {\n const error =
|
|
1
|
+
{"version":3,"file":"uploadPart.mjs","sources":["../../../../../../../src/providers/s3/utils/client/s3data/uploadPart.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { AmplifyUrl, AmplifyUrlSearchParams, } from '@aws-amplify/core/internals/utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { assignStringVariables, buildStorageServiceError, map, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils';\nimport { validateObjectUrl } from '../../validateObjectUrl';\nimport { defaultConfig, parseXmlError } from './base';\nconst uploadPartSerializer = async (input, endpoint) => {\n const headers = {\n ...assignStringVariables({\n 'x-amz-checksum-crc32': input.ChecksumCRC32,\n 'content-md5': input.ContentMD5,\n 'x-amz-expected-bucket-owner': input.ExpectedBucketOwner,\n }),\n 'content-type': 'application/octet-stream',\n };\n const url = new AmplifyUrl(endpoint.url.toString());\n validateS3RequiredParameter(!!input.Key, 'Key');\n url.pathname = serializePathnameObjectKey(url, input.Key);\n validateS3RequiredParameter(!!input.PartNumber, 'PartNumber');\n validateS3RequiredParameter(!!input.UploadId, 'UploadId');\n url.search = new AmplifyUrlSearchParams({\n partNumber: input.PartNumber + '',\n uploadId: input.UploadId,\n }).toString();\n validateObjectUrl({\n bucketName: input.Bucket,\n key: input.Key,\n objectURL: url,\n });\n return {\n method: 'PUT',\n headers,\n url,\n body: input.Body,\n };\n};\nconst uploadPartDeserializer = async (response) => {\n if (response.statusCode >= 300) {\n const error = await parseXmlError(response);\n throw buildStorageServiceError(error, response.statusCode);\n }\n else {\n return {\n ...map(response.headers, {\n ETag: 'etag',\n }),\n $metadata: parseMetadata(response),\n };\n }\n};\nexport const uploadPart = composeServiceApi(s3TransferHandler, uploadPartSerializer, uploadPartDeserializer, { ...defaultConfig, responseType: 'text' });\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AACA;AAOA,MAAM,oBAAoB,GAAG,OAAO,KAAK,EAAE,QAAQ,KAAK;AACxD,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,GAAG,qBAAqB,CAAC;AACjC,YAAY,sBAAsB,EAAE,KAAK,CAAC,aAAa;AACvD,YAAY,aAAa,EAAE,KAAK,CAAC,UAAU;AAC3C,YAAY,6BAA6B,EAAE,KAAK,CAAC,mBAAmB;AACpE,SAAS,CAAC;AACV,QAAQ,cAAc,EAAE,0BAA0B;AAClD,KAAK,CAAC;AACN,IAAI,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxD,IAAI,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACpD,IAAI,GAAG,CAAC,QAAQ,GAAG,0BAA0B,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9D,IAAI,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAClE,IAAI,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC9D,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,sBAAsB,CAAC;AAC5C,QAAQ,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,EAAE;AACzC,QAAQ,QAAQ,EAAE,KAAK,CAAC,QAAQ;AAChC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;AAClB,IAAI,iBAAiB,CAAC;AACtB,QAAQ,UAAU,EAAE,KAAK,CAAC,MAAM;AAChC,QAAQ,GAAG,EAAE,KAAK,CAAC,GAAG;AACtB,QAAQ,SAAS,EAAE,GAAG;AACtB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,KAAK;AACrB,QAAQ,OAAO;AACf,QAAQ,GAAG;AACX,QAAQ,IAAI,EAAE,KAAK,CAAC,IAAI;AACxB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,MAAM,sBAAsB,GAAG,OAAO,QAAQ,KAAK;AACnD,IAAI,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;AACpC,QAAQ,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;AACpD,QAAQ,MAAM,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;AACnE,KAAK;AACL,SAAS;AACT,QAAQ,OAAO;AACf,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;AACrC,gBAAgB,IAAI,EAAE,MAAM;AAC5B,aAAa,CAAC;AACd,YAAY,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC;AAC9C,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACU,MAAC,UAAU,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,EAAE,GAAG,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Headers } from '@aws-amplify/core/internals/aws-client-utils';
|
|
2
2
|
import { ServiceError } from '@aws-amplify/core/internals/utils';
|
|
3
|
+
import { MetadataBearer } from '@aws-sdk/types';
|
|
3
4
|
import { CompletedPart } from '../s3data';
|
|
4
5
|
type PropertyNameWithStringValue = string;
|
|
5
6
|
type PropertyNameWithSubsequentDeserializer<T> = [string, (arg: any) => T];
|
|
@@ -97,7 +98,7 @@ export declare const deserializeMetadata: (headers: Headers) => Record<string, s
|
|
|
97
98
|
*
|
|
98
99
|
* @internal
|
|
99
100
|
*/
|
|
100
|
-
export declare const buildStorageServiceError: (error: Error, statusCode: number) => ServiceError;
|
|
101
|
+
export declare const buildStorageServiceError: (error: Error & MetadataBearer, statusCode: number) => ServiceError;
|
|
101
102
|
/**
|
|
102
103
|
* Internal-only method used for deserializing the parts of a multipart upload.
|
|
103
104
|
*
|
|
@@ -145,6 +145,7 @@ const buildStorageServiceError = (error, statusCode) => {
|
|
|
145
145
|
const storageError = new StorageError({
|
|
146
146
|
name: error.name,
|
|
147
147
|
message: error.message,
|
|
148
|
+
responseMetadata: error.$metadata,
|
|
148
149
|
});
|
|
149
150
|
if (statusCode === 404) {
|
|
150
151
|
storageError.recoverySuggestion =
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializeHelpers.mjs","sources":["../../../../../../../src/providers/s3/utils/client/utils/deserializeHelpers.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { StorageError } from '../../../../../errors/StorageError';\n/**\n * Maps an object to a new object using the provided instructions.\n * The instructions are a map of the returning mapped object's property names to a single instruction of how to map the\n * value from the original object to the new object. There are two types of instructions:\n *\n * 1. A string representing the property name of the original object to map to the new object. The value mapped from\n * the original object will be the same as the value in the new object, and it can ONLY be string.\n *\n * 2. An array of two elements. The first element is the property name of the original object to map to the new object.\n * The second element is a function that takes the value from the original object and returns the value to be mapped to\n * the new object. The function can return any type.\n *\n * Example:\n * ```typescript\n * const input = {\n * Foo: 'foo',\n * BarList: [{value: 'bar1'}, {value: 'bar2'}]\n * }\n * const output = map(input, {\n * someFoo: 'Foo',\n * bar: ['BarList', (barList) => barList.map(bar => bar.value)]\n * baz: 'Baz' // Baz does not exist in input, so it will not be in the output.\n * });\n * // output = { someFoo: 'foo', bar: ['bar1', 'bar2'] }\n * ```\n *\n * @param obj The object containing the data to compose mapped object.\n * @param instructions The instructions mapping the object values to the new object.\n * @returns A new object with the mapped values.\n *\n * @internal\n */\nexport const map = (obj, instructions) => {\n const result = {};\n for (const [key, instruction] of Object.entries(instructions)) {\n const [accessor, deserializer] = Array.isArray(instruction)\n ? instruction\n : [instruction];\n if (Object.prototype.hasOwnProperty.call(obj, accessor)) {\n result[key] = deserializer\n ? deserializer(obj[accessor])\n : String(obj[accessor]);\n }\n }\n return result;\n};\n/**\n * Deserializes a string to a number. Returns undefined if input is undefined.\n *\n * @internal\n */\nexport const deserializeNumber = (value) => value ? Number(value) : undefined;\n/**\n * Deserializes a string to a boolean. Returns undefined if input is undefined. Returns true if input is 'true',\n * otherwise false.\n *\n * @internal\n */\nexport const deserializeBoolean = (value) => {\n return value ? value === 'true' : undefined;\n};\n/**\n * Deserializes a string to a Date. Returns undefined if input is undefined.\n * It supports epoch timestamp; rfc3339(cannot have a UTC, fractional precision supported); rfc7231(section 7.1.1.1)\n *\n * @see https://www.epoch101.com/\n * @see https://datatracker.ietf.org/doc/html/rfc3339.html#section-5.6\n * @see https://datatracker.ietf.org/doc/html/rfc7231.html#section-7.1.1.1\n *\n * @note For bundle size consideration, we use Date constructor to parse the timestamp string. There might be slight\n * difference among browsers.\n *\n * @internal\n */\nexport const deserializeTimestamp = (value) => {\n return value ? new Date(value) : undefined;\n};\n/**\n * Create a function deserializing a string to an enum value. If the string is not a valid enum value, it throws a\n * StorageError.\n *\n * @example\n * ```typescript\n * const deserializeStringEnum = createStringEnumDeserializer(['a', 'b', 'c'] as const, 'FieldName');\n * const deserializedArray = ['a', 'b', 'c'].map(deserializeStringEnum);\n * // deserializedArray = ['a', 'b', 'c']\n *\n * const invalidValue = deserializeStringEnum('d');\n * // Throws InvalidFieldName: Invalid FieldName: d\n * ```\n *\n * @internal\n */\nexport const createStringEnumDeserializer = (enumValues, fieldName) => {\n const deserializeStringEnum = (value) => {\n const parsedEnumValue = value\n ? enumValues.find(enumValue => enumValue === value)\n : undefined;\n if (!parsedEnumValue) {\n throw new StorageError({\n name: `Invalid${fieldName}`,\n message: `Invalid ${fieldName}: ${value}`,\n recoverySuggestion: 'This is likely to be a bug. Please reach out to library authors.',\n });\n }\n return parsedEnumValue;\n };\n return deserializeStringEnum;\n};\n/**\n * Function that makes sure the deserializer receives non-empty array.\n *\n * @internal\n */\nexport const emptyArrayGuard = (value, deserializer) => {\n if (value === '') {\n return [];\n }\n const valueArray = (Array.isArray(value) ? value : [value]).filter(e => e != null);\n return deserializer(valueArray);\n};\n/**\n * @internal\n */\nexport const deserializeMetadata = (headers) => {\n const objectMetadataHeaderPrefix = 'x-amz-meta-';\n const deserialized = Object.keys(headers)\n .filter(header => header.startsWith(objectMetadataHeaderPrefix))\n .reduce((acc, header) => {\n acc[header.replace(objectMetadataHeaderPrefix, '')] = headers[header];\n return acc;\n }, {});\n return Object.keys(deserialized).length > 0 ? deserialized : undefined;\n};\n/**\n * Internal-only method to create a new StorageError from a service error.\n *\n * @internal\n */\nexport const buildStorageServiceError = (error, statusCode) => {\n const storageError = new StorageError({\n name: error.name,\n message: error.message,\n });\n if (statusCode === 404) {\n storageError.recoverySuggestion =\n 'Please add the object with this key to the bucket as the key is not found.';\n }\n return storageError;\n};\n/**\n * Internal-only method used for deserializing the parts of a multipart upload.\n *\n * @internal\n */\nexport const deserializeCompletedPartList = (input) => input.map(item => map(item, {\n PartNumber: ['PartNumber', deserializeNumber],\n ETag: 'ETag',\n ChecksumCRC32: 'ChecksumCRC32',\n}));\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deserializeHelpers.mjs","sources":["../../../../../../../src/providers/s3/utils/client/utils/deserializeHelpers.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { StorageError } from '../../../../../errors/StorageError';\n/**\n * Maps an object to a new object using the provided instructions.\n * The instructions are a map of the returning mapped object's property names to a single instruction of how to map the\n * value from the original object to the new object. There are two types of instructions:\n *\n * 1. A string representing the property name of the original object to map to the new object. The value mapped from\n * the original object will be the same as the value in the new object, and it can ONLY be string.\n *\n * 2. An array of two elements. The first element is the property name of the original object to map to the new object.\n * The second element is a function that takes the value from the original object and returns the value to be mapped to\n * the new object. The function can return any type.\n *\n * Example:\n * ```typescript\n * const input = {\n * Foo: 'foo',\n * BarList: [{value: 'bar1'}, {value: 'bar2'}]\n * }\n * const output = map(input, {\n * someFoo: 'Foo',\n * bar: ['BarList', (barList) => barList.map(bar => bar.value)]\n * baz: 'Baz' // Baz does not exist in input, so it will not be in the output.\n * });\n * // output = { someFoo: 'foo', bar: ['bar1', 'bar2'] }\n * ```\n *\n * @param obj The object containing the data to compose mapped object.\n * @param instructions The instructions mapping the object values to the new object.\n * @returns A new object with the mapped values.\n *\n * @internal\n */\nexport const map = (obj, instructions) => {\n const result = {};\n for (const [key, instruction] of Object.entries(instructions)) {\n const [accessor, deserializer] = Array.isArray(instruction)\n ? instruction\n : [instruction];\n if (Object.prototype.hasOwnProperty.call(obj, accessor)) {\n result[key] = deserializer\n ? deserializer(obj[accessor])\n : String(obj[accessor]);\n }\n }\n return result;\n};\n/**\n * Deserializes a string to a number. Returns undefined if input is undefined.\n *\n * @internal\n */\nexport const deserializeNumber = (value) => value ? Number(value) : undefined;\n/**\n * Deserializes a string to a boolean. Returns undefined if input is undefined. Returns true if input is 'true',\n * otherwise false.\n *\n * @internal\n */\nexport const deserializeBoolean = (value) => {\n return value ? value === 'true' : undefined;\n};\n/**\n * Deserializes a string to a Date. Returns undefined if input is undefined.\n * It supports epoch timestamp; rfc3339(cannot have a UTC, fractional precision supported); rfc7231(section 7.1.1.1)\n *\n * @see https://www.epoch101.com/\n * @see https://datatracker.ietf.org/doc/html/rfc3339.html#section-5.6\n * @see https://datatracker.ietf.org/doc/html/rfc7231.html#section-7.1.1.1\n *\n * @note For bundle size consideration, we use Date constructor to parse the timestamp string. There might be slight\n * difference among browsers.\n *\n * @internal\n */\nexport const deserializeTimestamp = (value) => {\n return value ? new Date(value) : undefined;\n};\n/**\n * Create a function deserializing a string to an enum value. If the string is not a valid enum value, it throws a\n * StorageError.\n *\n * @example\n * ```typescript\n * const deserializeStringEnum = createStringEnumDeserializer(['a', 'b', 'c'] as const, 'FieldName');\n * const deserializedArray = ['a', 'b', 'c'].map(deserializeStringEnum);\n * // deserializedArray = ['a', 'b', 'c']\n *\n * const invalidValue = deserializeStringEnum('d');\n * // Throws InvalidFieldName: Invalid FieldName: d\n * ```\n *\n * @internal\n */\nexport const createStringEnumDeserializer = (enumValues, fieldName) => {\n const deserializeStringEnum = (value) => {\n const parsedEnumValue = value\n ? enumValues.find(enumValue => enumValue === value)\n : undefined;\n if (!parsedEnumValue) {\n throw new StorageError({\n name: `Invalid${fieldName}`,\n message: `Invalid ${fieldName}: ${value}`,\n recoverySuggestion: 'This is likely to be a bug. Please reach out to library authors.',\n });\n }\n return parsedEnumValue;\n };\n return deserializeStringEnum;\n};\n/**\n * Function that makes sure the deserializer receives non-empty array.\n *\n * @internal\n */\nexport const emptyArrayGuard = (value, deserializer) => {\n if (value === '') {\n return [];\n }\n const valueArray = (Array.isArray(value) ? value : [value]).filter(e => e != null);\n return deserializer(valueArray);\n};\n/**\n * @internal\n */\nexport const deserializeMetadata = (headers) => {\n const objectMetadataHeaderPrefix = 'x-amz-meta-';\n const deserialized = Object.keys(headers)\n .filter(header => header.startsWith(objectMetadataHeaderPrefix))\n .reduce((acc, header) => {\n acc[header.replace(objectMetadataHeaderPrefix, '')] = headers[header];\n return acc;\n }, {});\n return Object.keys(deserialized).length > 0 ? deserialized : undefined;\n};\n/**\n * Internal-only method to create a new StorageError from a service error.\n *\n * @internal\n */\nexport const buildStorageServiceError = (error, statusCode) => {\n const storageError = new StorageError({\n name: error.name,\n message: error.message,\n responseMetadata: error.$metadata,\n });\n if (statusCode === 404) {\n storageError.recoverySuggestion =\n 'Please add the object with this key to the bucket as the key is not found.';\n }\n return storageError;\n};\n/**\n * Internal-only method used for deserializing the parts of a multipart upload.\n *\n * @internal\n */\nexport const deserializeCompletedPartList = (input) => input.map(item => map(item, {\n PartNumber: ['PartNumber', deserializeNumber],\n ETag: 'ETag',\n ChecksumCRC32: 'ChecksumCRC32',\n}));\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,120 +1,120 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
2
|
+
"name": "@aws-amplify/storage",
|
|
3
|
+
"version": "6.7.9-monitoring-instrument.47a7bda.0+47a7bda",
|
|
4
|
+
"description": "Storage category of aws-amplify",
|
|
5
|
+
"main": "./dist/cjs/index.js",
|
|
6
|
+
"module": "./dist/esm/index.mjs",
|
|
7
|
+
"react-native": {
|
|
8
|
+
"./dist/cjs/index": "./src/index.ts",
|
|
9
|
+
"fast-xml-parser": "fast-xml-parser",
|
|
10
|
+
"buffer": "buffer"
|
|
11
|
+
},
|
|
12
|
+
"typings": "./dist/esm/index.d.ts",
|
|
13
|
+
"browser": {
|
|
14
|
+
"./dist/esm/providers/s3/utils/client/runtime/base64/index.native.mjs": "./dist/esm/providers/s3/utils/client/runtime/base64/index.browser.mjs",
|
|
15
|
+
"./dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/fetch.mjs": "./dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/xhr.mjs",
|
|
16
|
+
"./dist/esm/providers/s3/utils/client/runtime/xmlParser/pureJs.mjs": "./dist/esm/providers/s3/utils/client/runtime/xmlParser/dom.mjs",
|
|
17
|
+
"fast-xml-parser": false,
|
|
18
|
+
"buffer": false
|
|
19
|
+
},
|
|
20
|
+
"sideEffects": false,
|
|
21
|
+
"publishConfig": {
|
|
22
|
+
"access": "public"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"test": "npm run lint && jest -w 1 --coverage --logHeapUsage",
|
|
26
|
+
"build-with-test": "npm test && npm run build",
|
|
27
|
+
"build:umd": "webpack && webpack --config ./webpack.config.dev.js",
|
|
28
|
+
"build:esm-cjs": "rollup --forceExit -c rollup.config.mjs",
|
|
29
|
+
"build:watch": "npm run build:esm-cjs -- --watch",
|
|
30
|
+
"build": "npm run clean && npm run build:esm-cjs && npm run build:umd",
|
|
31
|
+
"clean": "npm run clean:size && rimraf lib-esm lib dist",
|
|
32
|
+
"clean:size": "rimraf dual-publish-tmp tmp*",
|
|
33
|
+
"format": "echo \"Not implemented\"",
|
|
34
|
+
"lint": "eslint '**/*.{ts,tsx}' && npm run ts-coverage",
|
|
35
|
+
"lint:fix": "eslint '**/*.{ts,tsx}' --fix",
|
|
36
|
+
"ts-coverage": "typescript-coverage-report -p ./tsconfig.build.json -t 90.31"
|
|
37
|
+
},
|
|
38
|
+
"typesVersions": {
|
|
39
|
+
">=4.2": {
|
|
40
|
+
"s3": [
|
|
41
|
+
"./dist/esm/providers/s3/index.d.ts"
|
|
42
|
+
],
|
|
43
|
+
"internals": [
|
|
44
|
+
"./dist/esm/internals/index.d.ts"
|
|
45
|
+
],
|
|
46
|
+
"server": [
|
|
47
|
+
"./dist/esm/server.d.ts"
|
|
48
|
+
],
|
|
49
|
+
"s3/server": [
|
|
50
|
+
"./dist/esm/providers/s3/server.d.ts"
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"repository": {
|
|
55
|
+
"type": "git",
|
|
56
|
+
"url": "https://github.com/aws-amplify/amplify-js.git"
|
|
57
|
+
},
|
|
58
|
+
"author": "Amazon Web Services",
|
|
59
|
+
"license": "Apache-2.0",
|
|
60
|
+
"bugs": {
|
|
61
|
+
"url": "https://github.com/aws/aws-amplify/issues"
|
|
62
|
+
},
|
|
63
|
+
"homepage": "https://aws-amplify.github.io/",
|
|
64
|
+
"files": [
|
|
65
|
+
"dist/cjs",
|
|
66
|
+
"dist/esm",
|
|
67
|
+
"internals",
|
|
68
|
+
"src",
|
|
69
|
+
"server",
|
|
70
|
+
"s3"
|
|
71
|
+
],
|
|
72
|
+
"dependencies": {
|
|
73
|
+
"@aws-sdk/types": "3.398.0",
|
|
74
|
+
"@smithy/md5-js": "2.0.7",
|
|
75
|
+
"buffer": "4.9.2",
|
|
76
|
+
"crc-32": "1.2.2",
|
|
77
|
+
"fast-xml-parser": "^4.4.1",
|
|
78
|
+
"tslib": "^2.5.0"
|
|
79
|
+
},
|
|
80
|
+
"exports": {
|
|
81
|
+
".": {
|
|
82
|
+
"types": "./dist/esm/index.d.ts",
|
|
83
|
+
"import": "./dist/esm/index.mjs",
|
|
84
|
+
"require": "./dist/cjs/index.js",
|
|
85
|
+
"react-native": "./src/index.ts"
|
|
86
|
+
},
|
|
87
|
+
"./internals": {
|
|
88
|
+
"types": "./dist/esm/internals/index.d.ts",
|
|
89
|
+
"import": "./dist/esm/internals/index.mjs",
|
|
90
|
+
"require": "./dist/cjs/internals/index.js"
|
|
91
|
+
},
|
|
92
|
+
"./server": {
|
|
93
|
+
"types": "./dist/esm/server.d.ts",
|
|
94
|
+
"import": "./dist/esm/server.mjs",
|
|
95
|
+
"require": "./dist/cjs/server.js"
|
|
96
|
+
},
|
|
97
|
+
"./s3": {
|
|
98
|
+
"types": "./dist/esm/providers/s3/index.d.ts",
|
|
99
|
+
"import": "./dist/esm/providers/s3/index.mjs",
|
|
100
|
+
"require": "./dist/cjs/providers/s3/index.js",
|
|
101
|
+
"react-native": "./src/providers/s3/index.ts"
|
|
102
|
+
},
|
|
103
|
+
"./s3/server": {
|
|
104
|
+
"types": "./dist/esm/providers/s3/server.d.ts",
|
|
105
|
+
"import": "./dist/esm/providers/s3/server.mjs",
|
|
106
|
+
"require": "./dist/cjs/providers/s3/server.js"
|
|
107
|
+
},
|
|
108
|
+
"./package.json": "./package.json"
|
|
109
|
+
},
|
|
110
|
+
"peerDependencies": {
|
|
111
|
+
"@aws-amplify/core": "6.9.3-monitoring-instrument.47a7bda.0+47a7bda"
|
|
112
|
+
},
|
|
113
|
+
"devDependencies": {
|
|
114
|
+
"@aws-amplify/core": "6.9.3-monitoring-instrument.47a7bda.0+47a7bda",
|
|
115
|
+
"@aws-amplify/react-native": "1.1.7-monitoring-instrument.47a7bda.0+47a7bda",
|
|
116
|
+
"@types/node": "20.14.12",
|
|
117
|
+
"typescript": "5.0.2"
|
|
118
|
+
},
|
|
119
|
+
"gitHead": "47a7bdac4c9e840586737c77ec0d56cd9569110e"
|
|
120
120
|
}
|
|
@@ -64,8 +64,8 @@ const getDataAccessDeserializer = async (
|
|
|
64
64
|
): Promise<GetDataAccessCommandOutput> => {
|
|
65
65
|
if (response.statusCode >= 300) {
|
|
66
66
|
// error is always set when statusCode >= 300
|
|
67
|
-
const error =
|
|
68
|
-
throw buildStorageServiceError(error
|
|
67
|
+
const error = await parseXmlError(response);
|
|
68
|
+
throw buildStorageServiceError(error!, response.statusCode);
|
|
69
69
|
} else {
|
|
70
70
|
const parsed = await parseXmlBody(response);
|
|
71
71
|
const contents = map(parsed, {
|
|
@@ -71,8 +71,8 @@ const listCallerAccessGrantsDeserializer = async (
|
|
|
71
71
|
): Promise<ListCallerAccessGrantsOutput> => {
|
|
72
72
|
if (response.statusCode >= 300) {
|
|
73
73
|
// error is always set when statusCode >= 300
|
|
74
|
-
const error =
|
|
75
|
-
throw buildStorageServiceError(error
|
|
74
|
+
const error = await parseXmlError(response);
|
|
75
|
+
throw buildStorageServiceError(error!, response.statusCode);
|
|
76
76
|
} else {
|
|
77
77
|
const parsed = await parseXmlBody(response);
|
|
78
78
|
const contents = map(parsed, {
|
|
@@ -42,6 +42,7 @@ const abortMultipartUploadSerializer = (
|
|
|
42
42
|
url.pathname = serializePathnameObjectKey(url, input.Key);
|
|
43
43
|
validateS3RequiredParameter(!!input.UploadId, 'UploadId');
|
|
44
44
|
url.search = new AmplifyUrlSearchParams({
|
|
45
|
+
'x-id': 'AbortMultipartUpload',
|
|
45
46
|
uploadId: input.UploadId,
|
|
46
47
|
}).toString();
|
|
47
48
|
validateObjectUrl({
|
|
@@ -66,8 +67,8 @@ const abortMultipartUploadDeserializer = async (
|
|
|
66
67
|
response: HttpResponse,
|
|
67
68
|
): Promise<AbortMultipartUploadOutput> => {
|
|
68
69
|
if (response.statusCode >= 300) {
|
|
69
|
-
const error =
|
|
70
|
-
throw buildStorageServiceError(error
|
|
70
|
+
const error = await parseXmlError(response);
|
|
71
|
+
throw buildStorageServiceError(error!, response.statusCode);
|
|
71
72
|
} else {
|
|
72
73
|
return {
|
|
73
74
|
$metadata: parseMetadata(response),
|
|
@@ -36,7 +36,11 @@ import type {
|
|
|
36
36
|
} from './types';
|
|
37
37
|
|
|
38
38
|
const INVALID_PARAMETER_ERROR_MSG =
|
|
39
|
-
'Invalid parameter for
|
|
39
|
+
'Invalid parameter for CompleteMultipartUpload API';
|
|
40
|
+
|
|
41
|
+
const MISSING_ETAG_ERROR_MSG = 'ETag missing from multipart upload';
|
|
42
|
+
const MISSING_ETAG_ERROR_SUGGESTION =
|
|
43
|
+
'Please ensure S3 bucket CORS configuration includes ETag as part of its `ExposeHeaders` element';
|
|
40
44
|
|
|
41
45
|
export type CompleteMultipartUploadInput = Pick<
|
|
42
46
|
CompleteMultipartUploadCommandInput,
|
|
@@ -95,7 +99,7 @@ const serializeCompletedMultipartUpload = (
|
|
|
95
99
|
input: CompletedMultipartUpload,
|
|
96
100
|
): string => {
|
|
97
101
|
if (!input.Parts?.length) {
|
|
98
|
-
throw new Error(`${INVALID_PARAMETER_ERROR_MSG}: ${input}`);
|
|
102
|
+
throw new Error(`${INVALID_PARAMETER_ERROR_MSG}: ${JSON.stringify(input)}`);
|
|
99
103
|
}
|
|
100
104
|
|
|
101
105
|
return `<CompleteMultipartUpload xmlns="http://s3.amazonaws.com/doc/2006-03-01/">${input.Parts.map(
|
|
@@ -104,8 +108,13 @@ const serializeCompletedMultipartUpload = (
|
|
|
104
108
|
};
|
|
105
109
|
|
|
106
110
|
const serializeCompletedPartList = (input: CompletedPart): string => {
|
|
107
|
-
if (
|
|
108
|
-
throw new Error(`${INVALID_PARAMETER_ERROR_MSG}: ${input}`);
|
|
111
|
+
if (input.PartNumber == null) {
|
|
112
|
+
throw new Error(`${INVALID_PARAMETER_ERROR_MSG}: ${JSON.stringify(input)}`);
|
|
113
|
+
}
|
|
114
|
+
if (!input.ETag) {
|
|
115
|
+
throw new Error(
|
|
116
|
+
`${MISSING_ETAG_ERROR_MSG}: ${JSON.stringify(input)}. ${MISSING_ETAG_ERROR_SUGGESTION}`,
|
|
117
|
+
);
|
|
109
118
|
}
|
|
110
119
|
|
|
111
120
|
const eTag = `<ETag>${input.ETag}</ETag>`;
|
|
@@ -126,11 +135,11 @@ const serializeCompletedPartList = (input: CompletedPart): string => {
|
|
|
126
135
|
const parseXmlBodyOrThrow = async (response: HttpResponse): Promise<any> => {
|
|
127
136
|
const parsed = await parseXmlBody(response); // Handles empty body case
|
|
128
137
|
if (parsed.Code !== undefined && parsed.Message !== undefined) {
|
|
129
|
-
const error =
|
|
138
|
+
const error = await parseXmlError({
|
|
130
139
|
...response,
|
|
131
140
|
statusCode: 500, // To workaround the >=300 status code check common to other APIs.
|
|
132
|
-
})
|
|
133
|
-
throw buildStorageServiceError(error
|
|
141
|
+
});
|
|
142
|
+
throw buildStorageServiceError(error!, response.statusCode);
|
|
134
143
|
}
|
|
135
144
|
|
|
136
145
|
return parsed;
|
|
@@ -140,8 +149,8 @@ const completeMultipartUploadDeserializer = async (
|
|
|
140
149
|
response: HttpResponse,
|
|
141
150
|
): Promise<CompleteMultipartUploadOutput> => {
|
|
142
151
|
if (response.statusCode >= 300) {
|
|
143
|
-
const error =
|
|
144
|
-
throw buildStorageServiceError(error
|
|
152
|
+
const error = await parseXmlError(response);
|
|
153
|
+
throw buildStorageServiceError(error!, response.statusCode);
|
|
145
154
|
} else {
|
|
146
155
|
const parsed = await parseXmlBodyOrThrow(response);
|
|
147
156
|
const contents = map(parsed, {
|