@aws-amplify/storage 6.7.16-unstable.b383885.0 → 6.7.16

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 (117) hide show
  1. package/dist/cjs/errors/IntegrityError.js +6 -7
  2. package/dist/cjs/errors/IntegrityError.js.map +1 -1
  3. package/dist/cjs/internals/apis/getDataAccess.js +0 -1
  4. package/dist/cjs/internals/apis/getDataAccess.js.map +1 -1
  5. package/dist/cjs/internals/apis/listCallerAccessGrants.js +3 -4
  6. package/dist/cjs/internals/apis/listCallerAccessGrants.js.map +1 -1
  7. package/dist/cjs/providers/s3/apis/internal/list.js +1 -1
  8. package/dist/cjs/providers/s3/apis/internal/list.js.map +1 -1
  9. package/dist/cjs/providers/s3/apis/internal/uploadData/multipart/uploadHandlers.js +1 -2
  10. package/dist/cjs/providers/s3/apis/internal/uploadData/multipart/uploadHandlers.js.map +1 -1
  11. package/dist/cjs/providers/s3/utils/client/runtime/s3TransferHandler/xhr.js +0 -2
  12. package/dist/cjs/providers/s3/utils/client/runtime/s3TransferHandler/xhr.js.map +1 -1
  13. package/dist/cjs/providers/s3/utils/client/s3control/getDataAccess.js +2 -1
  14. package/dist/cjs/providers/s3/utils/client/s3control/getDataAccess.js.map +1 -1
  15. package/dist/cjs/providers/s3/utils/client/s3control/listCallerAccessGrants.js +2 -1
  16. package/dist/cjs/providers/s3/utils/client/s3control/listCallerAccessGrants.js.map +1 -1
  17. package/dist/cjs/providers/s3/utils/client/s3data/abortMultipartUpload.js +2 -3
  18. package/dist/cjs/providers/s3/utils/client/s3data/abortMultipartUpload.js.map +1 -1
  19. package/dist/cjs/providers/s3/utils/client/s3data/completeMultipartUpload.js +5 -6
  20. package/dist/cjs/providers/s3/utils/client/s3data/completeMultipartUpload.js.map +1 -1
  21. package/dist/cjs/providers/s3/utils/client/s3data/copyObject.js +2 -5
  22. package/dist/cjs/providers/s3/utils/client/s3data/copyObject.js.map +1 -1
  23. package/dist/cjs/providers/s3/utils/client/s3data/createMultipartUpload.js +2 -2
  24. package/dist/cjs/providers/s3/utils/client/s3data/createMultipartUpload.js.map +1 -1
  25. package/dist/cjs/providers/s3/utils/client/s3data/deleteObject.js +2 -4
  26. package/dist/cjs/providers/s3/utils/client/s3data/deleteObject.js.map +1 -1
  27. package/dist/cjs/providers/s3/utils/client/s3data/getObject.js +2 -5
  28. package/dist/cjs/providers/s3/utils/client/s3data/getObject.js.map +1 -1
  29. package/dist/cjs/providers/s3/utils/client/s3data/headObject.js +2 -1
  30. package/dist/cjs/providers/s3/utils/client/s3data/headObject.js.map +1 -1
  31. package/dist/cjs/providers/s3/utils/client/s3data/listObjectsV2.js +3 -2
  32. package/dist/cjs/providers/s3/utils/client/s3data/listObjectsV2.js.map +1 -1
  33. package/dist/cjs/providers/s3/utils/client/s3data/listParts.js +2 -3
  34. package/dist/cjs/providers/s3/utils/client/s3data/listParts.js.map +1 -1
  35. package/dist/cjs/providers/s3/utils/client/s3data/putObject.js +2 -5
  36. package/dist/cjs/providers/s3/utils/client/s3data/putObject.js.map +1 -1
  37. package/dist/cjs/providers/s3/utils/client/s3data/uploadPart.js +2 -2
  38. package/dist/cjs/providers/s3/utils/client/s3data/uploadPart.js.map +1 -1
  39. package/dist/cjs/providers/s3/utils/client/utils/deserializeHelpers.js +12 -8
  40. package/dist/cjs/providers/s3/utils/client/utils/deserializeHelpers.js.map +1 -1
  41. package/dist/esm/errors/IntegrityError.d.ts +1 -1
  42. package/dist/esm/errors/IntegrityError.mjs +6 -7
  43. package/dist/esm/errors/IntegrityError.mjs.map +1 -1
  44. package/dist/esm/internals/apis/getDataAccess.mjs +0 -1
  45. package/dist/esm/internals/apis/getDataAccess.mjs.map +1 -1
  46. package/dist/esm/internals/apis/listCallerAccessGrants.mjs +3 -4
  47. package/dist/esm/internals/apis/listCallerAccessGrants.mjs.map +1 -1
  48. package/dist/esm/providers/s3/apis/internal/list.mjs +1 -1
  49. package/dist/esm/providers/s3/apis/internal/list.mjs.map +1 -1
  50. package/dist/esm/providers/s3/apis/internal/uploadData/multipart/uploadHandlers.mjs +1 -2
  51. package/dist/esm/providers/s3/apis/internal/uploadData/multipart/uploadHandlers.mjs.map +1 -1
  52. package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/xhr.d.ts +2 -2
  53. package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/xhr.mjs +1 -3
  54. package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/xhr.mjs.map +1 -1
  55. package/dist/esm/providers/s3/utils/client/s3control/getDataAccess.d.ts +1 -1
  56. package/dist/esm/providers/s3/utils/client/s3control/getDataAccess.mjs +2 -1
  57. package/dist/esm/providers/s3/utils/client/s3control/getDataAccess.mjs.map +1 -1
  58. package/dist/esm/providers/s3/utils/client/s3control/listCallerAccessGrants.d.ts +1 -1
  59. package/dist/esm/providers/s3/utils/client/s3control/listCallerAccessGrants.mjs +2 -1
  60. package/dist/esm/providers/s3/utils/client/s3control/listCallerAccessGrants.mjs.map +1 -1
  61. package/dist/esm/providers/s3/utils/client/s3data/abortMultipartUpload.d.ts +1 -1
  62. package/dist/esm/providers/s3/utils/client/s3data/abortMultipartUpload.mjs +2 -3
  63. package/dist/esm/providers/s3/utils/client/s3data/abortMultipartUpload.mjs.map +1 -1
  64. package/dist/esm/providers/s3/utils/client/s3data/completeMultipartUpload.d.ts +1 -1
  65. package/dist/esm/providers/s3/utils/client/s3data/completeMultipartUpload.mjs +5 -6
  66. package/dist/esm/providers/s3/utils/client/s3data/completeMultipartUpload.mjs.map +1 -1
  67. package/dist/esm/providers/s3/utils/client/s3data/copyObject.d.ts +1 -1
  68. package/dist/esm/providers/s3/utils/client/s3data/copyObject.mjs +3 -6
  69. package/dist/esm/providers/s3/utils/client/s3data/copyObject.mjs.map +1 -1
  70. package/dist/esm/providers/s3/utils/client/s3data/createMultipartUpload.d.ts +1 -1
  71. package/dist/esm/providers/s3/utils/client/s3data/createMultipartUpload.mjs +2 -2
  72. package/dist/esm/providers/s3/utils/client/s3data/createMultipartUpload.mjs.map +1 -1
  73. package/dist/esm/providers/s3/utils/client/s3data/deleteObject.d.ts +1 -1
  74. package/dist/esm/providers/s3/utils/client/s3data/deleteObject.mjs +3 -5
  75. package/dist/esm/providers/s3/utils/client/s3data/deleteObject.mjs.map +1 -1
  76. package/dist/esm/providers/s3/utils/client/s3data/getObject.d.ts +1 -1
  77. package/dist/esm/providers/s3/utils/client/s3data/getObject.mjs +3 -6
  78. package/dist/esm/providers/s3/utils/client/s3data/getObject.mjs.map +1 -1
  79. package/dist/esm/providers/s3/utils/client/s3data/headObject.d.ts +1 -1
  80. package/dist/esm/providers/s3/utils/client/s3data/headObject.mjs +2 -1
  81. package/dist/esm/providers/s3/utils/client/s3data/headObject.mjs.map +1 -1
  82. package/dist/esm/providers/s3/utils/client/s3data/listObjectsV2.d.ts +1 -1
  83. package/dist/esm/providers/s3/utils/client/s3data/listObjectsV2.mjs +3 -2
  84. package/dist/esm/providers/s3/utils/client/s3data/listObjectsV2.mjs.map +1 -1
  85. package/dist/esm/providers/s3/utils/client/s3data/listParts.d.ts +1 -1
  86. package/dist/esm/providers/s3/utils/client/s3data/listParts.mjs +2 -3
  87. package/dist/esm/providers/s3/utils/client/s3data/listParts.mjs.map +1 -1
  88. package/dist/esm/providers/s3/utils/client/s3data/putObject.d.ts +1 -1
  89. package/dist/esm/providers/s3/utils/client/s3data/putObject.mjs +3 -6
  90. package/dist/esm/providers/s3/utils/client/s3data/putObject.mjs.map +1 -1
  91. package/dist/esm/providers/s3/utils/client/s3data/uploadPart.d.ts +1 -1
  92. package/dist/esm/providers/s3/utils/client/s3data/uploadPart.mjs +2 -2
  93. package/dist/esm/providers/s3/utils/client/s3data/uploadPart.mjs.map +1 -1
  94. package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.d.ts +3 -6
  95. package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.mjs +12 -8
  96. package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.mjs.map +1 -1
  97. package/package.json +118 -118
  98. package/src/errors/IntegrityError.ts +5 -4
  99. package/src/internals/apis/getDataAccess.ts +0 -1
  100. package/src/internals/apis/listCallerAccessGrants.ts +3 -8
  101. package/src/providers/s3/apis/internal/list.ts +1 -1
  102. package/src/providers/s3/apis/internal/uploadData/multipart/uploadHandlers.ts +1 -2
  103. package/src/providers/s3/utils/client/runtime/s3TransferHandler/xhr.ts +1 -13
  104. package/src/providers/s3/utils/client/s3control/getDataAccess.ts +2 -1
  105. package/src/providers/s3/utils/client/s3control/listCallerAccessGrants.ts +2 -1
  106. package/src/providers/s3/utils/client/s3data/abortMultipartUpload.ts +2 -3
  107. package/src/providers/s3/utils/client/s3data/completeMultipartUpload.ts +5 -6
  108. package/src/providers/s3/utils/client/s3data/copyObject.ts +3 -9
  109. package/src/providers/s3/utils/client/s3data/createMultipartUpload.ts +2 -2
  110. package/src/providers/s3/utils/client/s3data/deleteObject.ts +3 -8
  111. package/src/providers/s3/utils/client/s3data/getObject.ts +3 -9
  112. package/src/providers/s3/utils/client/s3data/headObject.ts +2 -1
  113. package/src/providers/s3/utils/client/s3data/listObjectsV2.ts +3 -2
  114. package/src/providers/s3/utils/client/s3data/listParts.ts +2 -3
  115. package/src/providers/s3/utils/client/s3data/putObject.ts +3 -9
  116. package/src/providers/s3/utils/client/s3data/uploadPart.ts +2 -2
  117. package/src/providers/s3/utils/client/utils/deserializeHelpers.ts +14 -12
@@ -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 with AWS SDK-compatible interfaces\n * @param error - The output of a service error parser, with AWS SDK-compatible interface(e.g. $metadata)\n * @returns A new StorageError.\n *\n * @internal\n */\nexport const buildStorageServiceError = (error) => new StorageError({\n name: error.name,\n message: error.message,\n metadata: error.$metadata,\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 });\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":";;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,GAAG,GAAG,CAAC,GAAG,EAAE,YAAY,KAAK;AAC1C,IAAI,MAAM,MAAM,GAAG,EAAE;AACrB,IAAI,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACnE,QAAQ,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW;AAClE,cAAc;AACd,cAAc,CAAC,WAAW,CAAC;AAC3B,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE;AACjE,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG;AAC1B,kBAAkB,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC5C,kBAAkB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACvC;AACA;AACA,IAAI,OAAO,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,iBAAiB,GAAG,CAAC,KAAK,KAAK,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,kBAAkB,GAAG,CAAC,KAAK,KAAK;AAC7C,IAAI,OAAO,KAAK,GAAG,KAAK,KAAK,MAAM,GAAG,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,oBAAoB,GAAG,CAAC,KAAK,KAAK;AAC/C,IAAI,OAAO,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,4BAA4B,GAAG,CAAC,UAAU,EAAE,SAAS,KAAK;AACvE,IAAI,MAAM,qBAAqB,GAAG,CAAC,KAAK,KAAK;AAC7C,QAAQ,MAAM,eAAe,GAAG;AAChC,cAAc,UAAU,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,KAAK;AAC9D,cAAc,SAAS;AACvB,QAAQ,IAAI,CAAC,eAAe,EAAE;AAC9B,YAAY,MAAM,IAAI,YAAY,CAAC;AACnC,gBAAgB,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC3C,gBAAgB,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACzD,gBAAgB,kBAAkB,EAAE,kEAAkE;AACtG,aAAa,CAAC;AACd;AACA,QAAQ,OAAO,eAAe;AAC9B,KAAK;AACL,IAAI,OAAO,qBAAqB;AAChC;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,eAAe,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK;AACxD,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;AACtB,QAAQ,OAAO,EAAE;AACjB;AACA,IAAI,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACtF,IAAI,OAAO,YAAY,CAAC,UAAU,CAAC;AACnC;AACA;AACA;AACA;AACY,MAAC,mBAAmB,GAAG,CAAC,OAAO,KAAK;AAChD,IAAI,MAAM,0BAA0B,GAAG,aAAa;AACpD,IAAI,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO;AAC5C,SAAS,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,0BAA0B,CAAC;AACvE,SAAS,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK;AACjC,QAAQ,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;AAC7E,QAAQ,OAAO,GAAG;AAClB,KAAK,EAAE,EAAE,CAAC;AACV,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,GAAG,SAAS;AAC1E;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,wBAAwB,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK;AAC/D,IAAI,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;AAC1C,QAAQ,IAAI,EAAE,KAAK,CAAC,IAAI;AACxB,QAAQ,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9B,KAAK,CAAC;AACN,IAAI,IAAI,UAAU,KAAK,GAAG,EAAE;AAC5B,QAAQ,YAAY,CAAC,kBAAkB;AACvC,YAAY,4EAA4E;AACxF;AACA,IAAI,OAAO,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,4BAA4B,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE;AACnF,IAAI,UAAU,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC;AACjD,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,aAAa,EAAE,eAAe;AAClC,CAAC,CAAC;;;;"}
package/package.json CHANGED
@@ -1,120 +1,120 @@
1
1
  {
2
- "name": "@aws-amplify/storage",
3
- "version": "6.7.16-unstable.b383885.0+b383885",
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.10.6-unstable.b383885.0+b383885"
112
- },
113
- "devDependencies": {
114
- "@aws-amplify/core": "6.10.6-unstable.b383885.0+b383885",
115
- "@aws-amplify/react-native": "1.1.8-unstable.b383885.0+b383885",
116
- "@types/node": "20.14.12",
117
- "typescript": "5.0.2"
118
- },
119
- "gitHead": "b3838851da3c5620d6c1ea7950d16d81b21e073f"
2
+ "name": "@aws-amplify/storage",
3
+ "version": "6.7.16",
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.1.0"
112
+ },
113
+ "devDependencies": {
114
+ "@aws-amplify/core": "6.10.6",
115
+ "@aws-amplify/react-native": "1.1.7",
116
+ "@types/node": "20.14.12",
117
+ "typescript": "5.0.2"
118
+ },
119
+ "gitHead": "52d159e1d01615d17689ca4710110759e2bb82c8"
120
120
  }
@@ -8,14 +8,15 @@ import {
8
8
  import { StorageError } from './StorageError';
9
9
 
10
10
  export class IntegrityError extends StorageError {
11
- constructor(params?: Pick<AmplifyErrorParams, 'metadata'>) {
12
- super({
11
+ constructor(
12
+ params: AmplifyErrorParams = {
13
13
  name: AmplifyErrorCode.Unknown,
14
14
  message: 'An unknown error has occurred.',
15
15
  recoverySuggestion:
16
16
  'This may be a bug. Please reach out to library authors.',
17
- metadata: params?.metadata,
18
- });
17
+ },
18
+ ) {
19
+ super(params);
19
20
 
20
21
  // TODO: Delete the following 2 lines after we change the build target to >= es2015
21
22
  this.constructor = IntegrityError;
@@ -59,7 +59,6 @@ export const getDataAccess = async (
59
59
  throw new StorageError({
60
60
  name: AmplifyErrorCode.Unknown,
61
61
  message: 'Service did not return valid temporary credentials.',
62
- metadata: result.$metadata,
63
62
  });
64
63
  } else {
65
64
  logger.debug(`Retrieved credentials for: ${result.MatchedGrantTarget}`);
@@ -3,7 +3,6 @@
3
3
 
4
4
  import { StorageAction } from '@aws-amplify/core/internals/utils';
5
5
  import { CredentialsProviderOptions } from '@aws-amplify/core/internals/aws-client-utils';
6
- import { ResponseMetadata } from '@aws-amplify/core/dist/esm/types';
7
6
 
8
7
  import { logger } from '../../utils';
9
8
  import { listCallerAccessGrants as listCallerAccessGrantsClient } from '../../providers/s3/utils/client/s3control';
@@ -44,7 +43,7 @@ export const listCallerAccessGrants = async (
44
43
  return credentials;
45
44
  };
46
45
 
47
- const { CallerAccessGrantsList, NextToken, $metadata } =
46
+ const { CallerAccessGrantsList, NextToken } =
48
47
  await listCallerAccessGrantsClient(
49
48
  {
50
49
  credentials: clientCredentialsProvider,
@@ -64,7 +63,7 @@ export const listCallerAccessGrants = async (
64
63
 
65
64
  const accessGrants: LocationAccess[] =
66
65
  CallerAccessGrantsList?.map(grant => {
67
- assertGrantScope(grant.GrantScope, $metadata);
66
+ assertGrantScope(grant.GrantScope);
68
67
 
69
68
  return {
70
69
  scope: grant.GrantScope,
@@ -95,15 +94,11 @@ const parseGrantType = (grantScope: string): LocationType => {
95
94
  }
96
95
  };
97
96
 
98
- function assertGrantScope(
99
- value: unknown,
100
- responseMetadata: ResponseMetadata,
101
- ): asserts value is string {
97
+ function assertGrantScope(value: unknown): asserts value is string {
102
98
  if (typeof value !== 'string' || !value.startsWith('s3://')) {
103
99
  throw new StorageError({
104
100
  name: 'InvalidGrantScope',
105
101
  message: `Expected a valid grant scope, got ${value}`,
106
- metadata: responseMetadata,
107
102
  });
108
103
  }
109
104
  }
@@ -298,7 +298,7 @@ const validateEchoedElements = (
298
298
  listInput.ContinuationToken === listOutput.ContinuationToken;
299
299
 
300
300
  if (!validEchoedParameters) {
301
- throw new IntegrityError({ metadata: listOutput.$metadata });
301
+ throw new IntegrityError();
302
302
  }
303
303
  };
304
304
 
@@ -264,7 +264,7 @@ export const getMultipartUploadHandlers = (
264
264
  );
265
265
 
266
266
  if (size) {
267
- const { ContentLength: uploadedObjectSize, $metadata } = await headObject(
267
+ const { ContentLength: uploadedObjectSize } = await headObject(
268
268
  resolvedS3Config,
269
269
  {
270
270
  Bucket: resolvedBucket,
@@ -276,7 +276,6 @@ export const getMultipartUploadHandlers = (
276
276
  throw new StorageError({
277
277
  name: 'Error',
278
278
  message: `Upload failed. Expected object size ${size}, but got ${uploadedObjectSize}.`,
279
- metadata: $metadata,
280
279
  });
281
280
  }
282
281
  }
@@ -2,14 +2,11 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import {
5
- AmzSdkRequestHeaderMiddlewareOptions,
6
5
  HttpRequest,
7
6
  HttpResponse,
8
7
  RetryOptions,
9
8
  SigningOptions,
10
9
  UserAgentOptions,
11
- amzSdkInvocationIdHeaderMiddlewareFactory,
12
- amzSdkRequestHeaderMiddlewareFactory,
13
10
  retryMiddlewareFactory,
14
11
  signingMiddlewareFactory,
15
12
  userAgentMiddlewareFactory,
@@ -26,22 +23,13 @@ import { xhrTransferHandler } from '../xhrTransferHandler';
26
23
  * @internal
27
24
  */
28
25
  export const s3TransferHandler = composeTransferHandler<
29
- [
30
- object,
31
- UserAgentOptions,
32
- object,
33
- RetryOptions<HttpResponse>,
34
- AmzSdkRequestHeaderMiddlewareOptions,
35
- SigningOptions,
36
- ],
26
+ [object, UserAgentOptions, RetryOptions<HttpResponse>, SigningOptions],
37
27
  HttpRequest,
38
28
  HttpResponse,
39
29
  typeof xhrTransferHandler
40
30
  >(xhrTransferHandler, [
41
31
  contentSha256MiddlewareFactory,
42
32
  userAgentMiddlewareFactory,
43
- amzSdkInvocationIdHeaderMiddlewareFactory,
44
33
  retryMiddlewareFactory,
45
- amzSdkRequestHeaderMiddlewareFactory,
46
34
  signingMiddlewareFactory,
47
35
  ]);
@@ -64,7 +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
- throw buildStorageServiceError((await parseXmlError(response))!);
67
+ const error = (await parseXmlError(response)) as Error;
68
+ throw buildStorageServiceError(error, response.statusCode);
68
69
  } else {
69
70
  const parsed = await parseXmlBody(response);
70
71
  const contents = map(parsed, {
@@ -71,7 +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
- throw buildStorageServiceError((await parseXmlError(response))!);
74
+ const error = (await parseXmlError(response)) as Error;
75
+ throw buildStorageServiceError(error, response.statusCode);
75
76
  } else {
76
77
  const parsed = await parseXmlBody(response);
77
78
  const contents = map(parsed, {
@@ -42,7 +42,6 @@ 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',
46
45
  uploadId: input.UploadId,
47
46
  }).toString();
48
47
  validateObjectUrl({
@@ -67,8 +66,8 @@ const abortMultipartUploadDeserializer = async (
67
66
  response: HttpResponse,
68
67
  ): Promise<AbortMultipartUploadOutput> => {
69
68
  if (response.statusCode >= 300) {
70
- // error is always set when statusCode >= 300
71
- throw buildStorageServiceError((await parseXmlError(response))!);
69
+ const error = (await parseXmlError(response)) as Error;
70
+ throw buildStorageServiceError(error, response.statusCode);
72
71
  } else {
73
72
  return {
74
73
  $metadata: parseMetadata(response),
@@ -135,12 +135,11 @@ const serializeCompletedPartList = (input: CompletedPart): string => {
135
135
  const parseXmlBodyOrThrow = async (response: HttpResponse): Promise<any> => {
136
136
  const parsed = await parseXmlBody(response); // Handles empty body case
137
137
  if (parsed.Code !== undefined && parsed.Message !== undefined) {
138
- const error = await parseXmlError({
138
+ const error = (await parseXmlError({
139
139
  ...response,
140
140
  statusCode: 500, // To workaround the >=300 status code check common to other APIs.
141
- });
142
- error!.$metadata.httpStatusCode = response.statusCode;
143
- throw buildStorageServiceError(error!);
141
+ })) as Error;
142
+ throw buildStorageServiceError(error, response.statusCode);
144
143
  }
145
144
 
146
145
  return parsed;
@@ -150,8 +149,8 @@ const completeMultipartUploadDeserializer = async (
150
149
  response: HttpResponse,
151
150
  ): Promise<CompleteMultipartUploadOutput> => {
152
151
  if (response.statusCode >= 300) {
153
- // error is always set when statusCode >= 300
154
- throw buildStorageServiceError((await parseXmlError(response))!);
152
+ const error = (await parseXmlError(response)) as Error;
153
+ throw buildStorageServiceError(error, response.statusCode);
155
154
  } else {
156
155
  const parsed = await parseXmlBodyOrThrow(response);
157
156
  const contents = map(parsed, {
@@ -7,10 +7,7 @@ import {
7
7
  HttpResponse,
8
8
  parseMetadata,
9
9
  } from '@aws-amplify/core/internals/aws-client-utils';
10
- import {
11
- AmplifyUrl,
12
- AmplifyUrlSearchParams,
13
- } from '@aws-amplify/core/internals/utils';
10
+ import { AmplifyUrl } from '@aws-amplify/core/internals/utils';
14
11
  import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';
15
12
 
16
13
  import {
@@ -71,9 +68,6 @@ const copyObjectSerializer = async (
71
68
  const url = new AmplifyUrl(endpoint.url.toString());
72
69
  validateS3RequiredParameter(!!input.Key, 'Key');
73
70
  url.pathname = serializePathnameObjectKey(url, input.Key);
74
- url.search = new AmplifyUrlSearchParams({
75
- 'x-id': 'CopyObject',
76
- }).toString();
77
71
  validateObjectUrl({
78
72
  bucketName: input.Bucket,
79
73
  key: input.Key,
@@ -116,8 +110,8 @@ const copyObjectDeserializer = async (
116
110
  response: HttpResponse,
117
111
  ): Promise<CopyObjectOutput> => {
118
112
  if (response.statusCode >= 300) {
119
- // error is always set when statusCode >= 300
120
- throw buildStorageServiceError((await parseXmlError(response))!);
113
+ const error = (await parseXmlError(response)) as Error;
114
+ throw buildStorageServiceError(error, response.statusCode);
121
115
  } else {
122
116
  await parseXmlBody(response);
123
117
 
@@ -71,8 +71,8 @@ const createMultipartUploadDeserializer = async (
71
71
  response: HttpResponse,
72
72
  ): Promise<CreateMultipartUploadOutput> => {
73
73
  if (response.statusCode >= 300) {
74
- // error is always set when statusCode >= 300
75
- throw buildStorageServiceError((await parseXmlError(response))!);
74
+ const error = (await parseXmlError(response)) as Error;
75
+ throw buildStorageServiceError(error, response.statusCode);
76
76
  } else {
77
77
  const parsed = await parseXmlBody(response);
78
78
  const contents = map(parsed, {
@@ -7,10 +7,7 @@ import {
7
7
  HttpResponse,
8
8
  parseMetadata,
9
9
  } from '@aws-amplify/core/internals/aws-client-utils';
10
- import {
11
- AmplifyUrl,
12
- AmplifyUrlSearchParams,
13
- } from '@aws-amplify/core/internals/utils';
10
+ import { AmplifyUrl } from '@aws-amplify/core/internals/utils';
14
11
  import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';
15
12
 
16
13
  import {
@@ -44,9 +41,6 @@ const deleteObjectSerializer = (
44
41
  const url = new AmplifyUrl(endpoint.url.toString());
45
42
  validateS3RequiredParameter(!!input.Key, 'Key');
46
43
  url.pathname = serializePathnameObjectKey(url, input.Key);
47
- url.search = new AmplifyUrlSearchParams({
48
- 'x-id': 'DeleteObject',
49
- }).toString();
50
44
  validateObjectUrl({
51
45
  bucketName: input.Bucket,
52
46
  key: input.Key,
@@ -68,7 +62,8 @@ const deleteObjectDeserializer = async (
68
62
  ): Promise<DeleteObjectOutput> => {
69
63
  if (response.statusCode >= 300) {
70
64
  // error is always set when statusCode >= 300
71
- throw buildStorageServiceError((await parseXmlError(response))!);
65
+ const error = (await parseXmlError(response)) as Error;
66
+ throw buildStorageServiceError(error, response.statusCode);
72
67
  } else {
73
68
  const content = map(response.headers, {
74
69
  DeleteMarker: ['x-amz-delete-marker', deserializeBoolean],
@@ -12,10 +12,7 @@ import {
12
12
  presignUrl,
13
13
  } from '@aws-amplify/core/internals/aws-client-utils';
14
14
  import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';
15
- import {
16
- AmplifyUrl,
17
- AmplifyUrlSearchParams,
18
- } from '@aws-amplify/core/internals/utils';
15
+ import { AmplifyUrl } from '@aws-amplify/core/internals/utils';
19
16
 
20
17
  import {
21
18
  CONTENT_SHA256_HEADER,
@@ -64,9 +61,6 @@ const getObjectSerializer = async (
64
61
  const url = new AmplifyUrl(endpoint.url.toString());
65
62
  validateS3RequiredParameter(!!input.Key, 'Key');
66
63
  url.pathname = serializePathnameObjectKey(url, input.Key);
67
- url.search = new AmplifyUrlSearchParams({
68
- 'x-id': 'GetObject',
69
- }).toString();
70
64
  validateObjectUrl({
71
65
  bucketName: input.Bucket,
72
66
  key: input.Key,
@@ -89,8 +83,8 @@ const getObjectDeserializer = async (
89
83
  response: HttpResponse,
90
84
  ): Promise<GetObjectOutput> => {
91
85
  if (response.statusCode >= 300) {
92
- // error is always set when statusCode >= 300
93
- throw buildStorageServiceError((await parseXmlError(response))!);
86
+ const error = (await parseXmlError(response)) as Error;
87
+ throw buildStorageServiceError(error, response.statusCode);
94
88
  } else {
95
89
  return {
96
90
  ...map(response.headers, {
@@ -70,7 +70,8 @@ const headObjectDeserializer = async (
70
70
  ): Promise<HeadObjectOutput> => {
71
71
  if (response.statusCode >= 300) {
72
72
  // error is always set when statusCode >= 300
73
- throw buildStorageServiceError((await parseXmlError(response))!);
73
+ const error = (await parseXmlError(response)) as Error;
74
+ throw buildStorageServiceError(error, response.statusCode);
74
75
  } else {
75
76
  const contents = {
76
77
  ...map(response.headers, {
@@ -69,7 +69,8 @@ const listObjectsV2Deserializer = async (
69
69
  ): Promise<ListObjectsV2Output> => {
70
70
  if (response.statusCode >= 300) {
71
71
  // error is always set when statusCode >= 300
72
- throw buildStorageServiceError((await parseXmlError(response))!);
72
+ const error = (await parseXmlError(response)) as Error;
73
+ throw buildStorageServiceError(error, response.statusCode);
73
74
  } else {
74
75
  const parsed = await parseXmlBody(response);
75
76
  const contents = map(parsed, {
@@ -151,7 +152,7 @@ const validateCorroboratingElements = (response: ListObjectsV2Output) => {
151
152
  KeyCount === Contents.length + CommonPrefixes.length;
152
153
 
153
154
  if (!validTruncation || !validNumberOfKeysReturned) {
154
- throw new IntegrityError({ metadata: response.$metadata });
155
+ throw new IntegrityError();
155
156
  }
156
157
  };
157
158