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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/dist/cjs/providers/s3/apis/internal/getProperties.js +1 -1
  2. package/dist/cjs/providers/s3/apis/internal/getProperties.js.map +1 -1
  3. package/dist/cjs/providers/s3/apis/internal/getUrl.js +6 -6
  4. package/dist/cjs/providers/s3/apis/internal/getUrl.js.map +1 -1
  5. package/dist/cjs/providers/s3/apis/internal/list.js +2 -2
  6. package/dist/cjs/providers/s3/apis/internal/list.js.map +1 -1
  7. package/dist/cjs/providers/s3/apis/uploadData/multipart/initialUpload.js +1 -1
  8. package/dist/cjs/providers/s3/apis/uploadData/multipart/initialUpload.js.map +1 -1
  9. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadHandlers.js +25 -25
  10. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadHandlers.js.map +1 -1
  11. package/dist/cjs/providers/s3/utils/client/base.js +1 -1
  12. package/dist/cjs/providers/s3/utils/client/base.js.map +1 -1
  13. package/dist/cjs/providers/s3/utils/client/runtime/base64/index.native.js +1 -1
  14. package/dist/cjs/providers/s3/utils/client/runtime/base64/index.native.js.map +1 -1
  15. package/dist/cjs/providers/s3/utils/client/runtime/contentSha256middleware.js +3 -3
  16. package/dist/cjs/providers/s3/utils/client/runtime/contentSha256middleware.js.map +1 -1
  17. package/dist/cjs/providers/s3/utils/client/runtime/s3TransferHandler/fetch.js +1 -1
  18. package/dist/cjs/providers/s3/utils/client/runtime/s3TransferHandler/fetch.js.map +1 -1
  19. package/dist/cjs/providers/s3/utils/client/runtime/s3TransferHandler/xhr.js +4 -4
  20. package/dist/cjs/providers/s3/utils/client/runtime/s3TransferHandler/xhr.js.map +1 -1
  21. package/dist/cjs/providers/s3/utils/client/runtime/xhrTransferHandler.js +4 -4
  22. package/dist/cjs/providers/s3/utils/client/runtime/xhrTransferHandler.js.map +1 -1
  23. package/dist/cjs/providers/s3/utils/client/runtime/xmlParser/dom.js +4 -7
  24. package/dist/cjs/providers/s3/utils/client/runtime/xmlParser/dom.js.map +1 -1
  25. package/dist/cjs/providers/s3/utils/client/runtime/xmlParser/pureJs.js +6 -5
  26. package/dist/cjs/providers/s3/utils/client/runtime/xmlParser/pureJs.js.map +1 -1
  27. package/dist/cjs/providers/s3/utils/client/utils/deserializeHelpers.js +1 -1
  28. package/dist/cjs/providers/s3/utils/client/utils/deserializeHelpers.js.map +1 -1
  29. package/dist/cjs/providers/s3/utils/client/utils/parsePayload.js +2 -2
  30. package/dist/cjs/providers/s3/utils/client/utils/parsePayload.js.map +1 -1
  31. package/dist/cjs/providers/s3/utils/md5.js +8 -3
  32. package/dist/cjs/providers/s3/utils/md5.js.map +1 -1
  33. package/dist/cjs/providers/s3/utils/md5.native.js +6 -2
  34. package/dist/cjs/providers/s3/utils/md5.native.js.map +1 -1
  35. package/dist/cjs/providers/s3/utils/resolveS3ConfigAndInput.js +1 -1
  36. package/dist/cjs/providers/s3/utils/resolveS3ConfigAndInput.js.map +1 -1
  37. package/dist/cjs/providers/s3/utils/transferTask.js +10 -4
  38. package/dist/cjs/providers/s3/utils/transferTask.js.map +1 -1
  39. package/dist/esm/providers/s3/apis/getProperties.d.ts +1 -1
  40. package/dist/esm/providers/s3/apis/internal/getProperties.mjs +1 -1
  41. package/dist/esm/providers/s3/apis/internal/getProperties.mjs.map +1 -1
  42. package/dist/esm/providers/s3/apis/internal/getUrl.mjs +3 -3
  43. package/dist/esm/providers/s3/apis/internal/getUrl.mjs.map +1 -1
  44. package/dist/esm/providers/s3/apis/internal/list.d.ts +1 -1
  45. package/dist/esm/providers/s3/apis/internal/list.mjs +2 -2
  46. package/dist/esm/providers/s3/apis/internal/list.mjs.map +1 -1
  47. package/dist/esm/providers/s3/apis/list.d.ts +3 -3
  48. package/dist/esm/providers/s3/apis/server/list.d.ts +3 -3
  49. package/dist/esm/providers/s3/apis/uploadData/multipart/getDataChunker.d.ts +2 -2
  50. package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.d.ts +4 -4
  51. package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.mjs +1 -1
  52. package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.mjs.map +1 -1
  53. package/dist/esm/providers/s3/apis/uploadData/multipart/progressTracker.d.ts +3 -3
  54. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.d.ts +6 -6
  55. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.mjs +25 -25
  56. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.mjs.map +1 -1
  57. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadPartExecutor.d.ts +5 -5
  58. package/dist/esm/providers/s3/types/inputs.d.ts +2 -2
  59. package/dist/esm/providers/s3/types/options.d.ts +11 -11
  60. package/dist/esm/providers/s3/types/outputs.d.ts +1 -1
  61. package/dist/esm/providers/s3/utils/client/abortMultipartUpload.d.ts +2 -2
  62. package/dist/esm/providers/s3/utils/client/base.mjs +1 -1
  63. package/dist/esm/providers/s3/utils/client/base.mjs.map +1 -1
  64. package/dist/esm/providers/s3/utils/client/completeMultipartUpload.d.ts +2 -2
  65. package/dist/esm/providers/s3/utils/client/copyObject.d.ts +2 -2
  66. package/dist/esm/providers/s3/utils/client/copyObject.mjs.map +1 -1
  67. package/dist/esm/providers/s3/utils/client/createMultipartUpload.d.ts +3 -3
  68. package/dist/esm/providers/s3/utils/client/createMultipartUpload.mjs.map +1 -1
  69. package/dist/esm/providers/s3/utils/client/deleteObject.d.ts +2 -2
  70. package/dist/esm/providers/s3/utils/client/getObject.d.ts +3 -3
  71. package/dist/esm/providers/s3/utils/client/getObject.mjs.map +1 -1
  72. package/dist/esm/providers/s3/utils/client/headObject.d.ts +2 -2
  73. package/dist/esm/providers/s3/utils/client/listObjectsV2.d.ts +3 -3
  74. package/dist/esm/providers/s3/utils/client/listParts.d.ts +2 -2
  75. package/dist/esm/providers/s3/utils/client/listParts.mjs.map +1 -1
  76. package/dist/esm/providers/s3/utils/client/putObject.d.ts +2 -2
  77. package/dist/esm/providers/s3/utils/client/putObject.mjs.map +1 -1
  78. package/dist/esm/providers/s3/utils/client/runtime/base64/index.native.mjs +1 -1
  79. package/dist/esm/providers/s3/utils/client/runtime/base64/index.native.mjs.map +1 -1
  80. package/dist/esm/providers/s3/utils/client/runtime/contentSha256middleware.d.ts +2 -2
  81. package/dist/esm/providers/s3/utils/client/runtime/contentSha256middleware.mjs +2 -2
  82. package/dist/esm/providers/s3/utils/client/runtime/contentSha256middleware.mjs.map +1 -1
  83. package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/fetch.d.ts +2 -2
  84. package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/fetch.mjs +2 -2
  85. package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/fetch.mjs.map +1 -1
  86. package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/xhr.d.ts +2 -2
  87. package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/xhr.mjs +6 -6
  88. package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/xhr.mjs.map +1 -1
  89. package/dist/esm/providers/s3/utils/client/runtime/xhrTransferHandler.d.ts +2 -2
  90. package/dist/esm/providers/s3/utils/client/runtime/xhrTransferHandler.mjs +4 -4
  91. package/dist/esm/providers/s3/utils/client/runtime/xhrTransferHandler.mjs.map +1 -1
  92. package/dist/esm/providers/s3/utils/client/runtime/xmlParser/dom.mjs +4 -7
  93. package/dist/esm/providers/s3/utils/client/runtime/xmlParser/dom.mjs.map +1 -1
  94. package/dist/esm/providers/s3/utils/client/runtime/xmlParser/pureJs.mjs +6 -5
  95. package/dist/esm/providers/s3/utils/client/runtime/xmlParser/pureJs.mjs.map +1 -1
  96. package/dist/esm/providers/s3/utils/client/types.d.ts +11 -22
  97. package/dist/esm/providers/s3/utils/client/uploadPart.d.ts +2 -2
  98. package/dist/esm/providers/s3/utils/client/uploadPart.mjs.map +1 -1
  99. package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.d.ts +1 -3
  100. package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.mjs +1 -1
  101. package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.mjs.map +1 -1
  102. package/dist/esm/providers/s3/utils/client/utils/parsePayload.mjs +2 -2
  103. package/dist/esm/providers/s3/utils/client/utils/parsePayload.mjs.map +1 -1
  104. package/dist/esm/providers/s3/utils/client/utils/serializeHelpers.d.ts +1 -1
  105. package/dist/esm/providers/s3/utils/md5.mjs +8 -3
  106. package/dist/esm/providers/s3/utils/md5.mjs.map +1 -1
  107. package/dist/esm/providers/s3/utils/md5.native.mjs +6 -2
  108. package/dist/esm/providers/s3/utils/md5.native.mjs.map +1 -1
  109. package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.d.ts +4 -4
  110. package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.mjs +1 -1
  111. package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.mjs.map +1 -1
  112. package/dist/esm/providers/s3/utils/transferTask.d.ts +10 -10
  113. package/dist/esm/providers/s3/utils/transferTask.mjs +10 -4
  114. package/dist/esm/providers/s3/utils/transferTask.mjs.map +1 -1
  115. package/dist/esm/types/common.d.ts +7 -7
  116. package/dist/esm/types/inputs.d.ts +9 -9
  117. package/dist/esm/types/options.d.ts +2 -2
  118. package/dist/esm/types/outputs.d.ts +6 -6
  119. package/dist/esm/utils/resolvePrefix.d.ts +2 -2
  120. package/package.json +107 -106
  121. package/src/errors/CanceledError.ts +1 -0
  122. package/src/errors/utils/assertValidationError.ts +1 -1
  123. package/src/providers/s3/apis/copy.ts +3 -1
  124. package/src/providers/s3/apis/downloadData.ts +5 -3
  125. package/src/providers/s3/apis/getProperties.ts +5 -2
  126. package/src/providers/s3/apis/getUrl.ts +3 -0
  127. package/src/providers/s3/apis/internal/copy.ts +5 -4
  128. package/src/providers/s3/apis/internal/getProperties.ts +8 -6
  129. package/src/providers/s3/apis/internal/getUrl.ts +11 -9
  130. package/src/providers/s3/apis/internal/list.ts +13 -10
  131. package/src/providers/s3/apis/internal/remove.ts +5 -3
  132. package/src/providers/s3/apis/list.ts +8 -4
  133. package/src/providers/s3/apis/remove.ts +4 -1
  134. package/src/providers/s3/apis/server/copy.ts +2 -1
  135. package/src/providers/s3/apis/server/getProperties.ts +3 -2
  136. package/src/providers/s3/apis/server/getUrl.ts +2 -1
  137. package/src/providers/s3/apis/server/list.ts +10 -7
  138. package/src/providers/s3/apis/server/remove.ts +2 -1
  139. package/src/providers/s3/apis/uploadData/byteLength.ts +1 -0
  140. package/src/providers/s3/apis/uploadData/index.ts +5 -2
  141. package/src/providers/s3/apis/uploadData/multipart/calculatePartSize.ts +1 -0
  142. package/src/providers/s3/apis/uploadData/multipart/getDataChunker.ts +6 -4
  143. package/src/providers/s3/apis/uploadData/multipart/initialUpload.ts +12 -9
  144. package/src/providers/s3/apis/uploadData/multipart/progressTracker.ts +5 -4
  145. package/src/providers/s3/apis/uploadData/multipart/uploadCache.ts +15 -12
  146. package/src/providers/s3/apis/uploadData/multipart/uploadHandlers.ts +42 -36
  147. package/src/providers/s3/apis/uploadData/multipart/uploadPartExecutor.ts +7 -6
  148. package/src/providers/s3/apis/uploadData/putObjectJob.ts +2 -2
  149. package/src/providers/s3/types/inputs.ts +4 -4
  150. package/src/providers/s3/types/options.ts +11 -11
  151. package/src/providers/s3/types/outputs.ts +1 -1
  152. package/src/providers/s3/utils/client/abortMultipartUpload.ts +5 -4
  153. package/src/providers/s3/utils/client/base.ts +8 -6
  154. package/src/providers/s3/utils/client/completeMultipartUpload.ts +14 -6
  155. package/src/providers/s3/utils/client/copyObject.ts +7 -4
  156. package/src/providers/s3/utils/client/createMultipartUpload.ts +7 -5
  157. package/src/providers/s3/utils/client/deleteObject.ts +6 -5
  158. package/src/providers/s3/utils/client/getObject.ts +14 -12
  159. package/src/providers/s3/utils/client/headObject.ts +6 -5
  160. package/src/providers/s3/utils/client/listObjectsV2.ts +6 -3
  161. package/src/providers/s3/utils/client/listParts.ts +9 -6
  162. package/src/providers/s3/utils/client/putObject.ts +6 -5
  163. package/src/providers/s3/utils/client/runtime/base64/index.browser.ts +2 -1
  164. package/src/providers/s3/utils/client/runtime/base64/index.native.ts +1 -1
  165. package/src/providers/s3/utils/client/runtime/contentSha256middleware.ts +6 -4
  166. package/src/providers/s3/utils/client/runtime/s3TransferHandler/fetch.ts +7 -5
  167. package/src/providers/s3/utils/client/runtime/s3TransferHandler/xhr.ts +11 -11
  168. package/src/providers/s3/utils/client/runtime/xhrTransferHandler.ts +21 -14
  169. package/src/providers/s3/utils/client/runtime/xmlParser/dom.ts +6 -7
  170. package/src/providers/s3/utils/client/runtime/xmlParser/pureJs.ts +10 -5
  171. package/src/providers/s3/utils/client/types.ts +12 -14
  172. package/src/providers/s3/utils/client/uploadPart.ts +6 -5
  173. package/src/providers/s3/utils/client/utils/deserializeHelpers.ts +13 -8
  174. package/src/providers/s3/utils/client/utils/parsePayload.ts +6 -4
  175. package/src/providers/s3/utils/client/utils/serializeHelpers.ts +8 -5
  176. package/src/providers/s3/utils/md5.native.ts +9 -3
  177. package/src/providers/s3/utils/md5.ts +12 -4
  178. package/src/providers/s3/utils/resolveS3ConfigAndInput.ts +10 -8
  179. package/src/providers/s3/utils/transferTask.ts +26 -14
  180. package/src/providers/s3/utils/userAgent.ts +1 -1
  181. package/src/types/common.ts +7 -7
  182. package/src/types/inputs.ts +11 -11
  183. package/src/types/options.ts +2 -2
  184. package/src/types/outputs.ts +6 -6
  185. package/src/utils/resolvePrefix.ts +7 -4
@@ -1 +1 @@
1
- {"version":3,"file":"createMultipartUpload.mjs","sources":["../../../../../../src/providers/s3/utils/client/createMultipartUpload.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 { defaultConfig } from './base';\nimport { buildStorageServiceError, validateS3RequiredParameter, map, parseXmlBody, parseXmlError, s3TransferHandler, serializeObjectConfigsToHeaders, serializePathnameObjectKey, } from './utils';\nconst createMultipartUploadSerializer = async (input, endpoint) => {\n const headers = await serializeObjectConfigsToHeaders(input);\n const url = new AmplifyUrl(endpoint.url.toString());\n validateS3RequiredParameter(!!input.Key, 'Key');\n url.pathname = serializePathnameObjectKey(url, input.Key);\n url.search = 'uploads';\n return {\n method: 'POST',\n headers,\n url,\n };\n};\nconst createMultipartUploadDeserializer = 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 });\n return {\n $metadata: parseMetadata(response),\n ...contents,\n };\n }\n};\nexport const createMultipartUpload = composeServiceApi(s3TransferHandler, createMultipartUploadSerializer, createMultipartUploadDeserializer, { ...defaultConfig, responseType: 'text' });\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AACA;AAMA,MAAM,+BAA+B,GAAG,OAAO,KAAK,EAAE,QAAQ,KAAK;AACnE,IAAI,MAAM,OAAO,GAAG,MAAM,+BAA+B,CAAC,KAAK,CAAC,CAAC;AACjE,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,SAAS,CAAC;AAC3B,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,OAAO;AACf,QAAQ,GAAG;AACX,KAAK,CAAC;AACN,CAAC,CAAC;AACF,MAAM,iCAAiC,GAAG,OAAO,QAAQ,KAAK;AAC9D,IAAI,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;AACpC,QAAQ,MAAM,KAAK,IAAI,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,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,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,qBAAqB,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,+BAA+B,EAAE,iCAAiC,EAAE,EAAE,GAAG,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE;;;;"}
1
+ {"version":3,"file":"createMultipartUpload.mjs","sources":["../../../../../../src/providers/s3/utils/client/createMultipartUpload.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 { defaultConfig } from './base';\nimport { buildStorageServiceError, map, parseXmlBody, parseXmlError, s3TransferHandler, serializeObjectConfigsToHeaders, serializePathnameObjectKey, validateS3RequiredParameter, } from './utils';\nconst createMultipartUploadSerializer = async (input, endpoint) => {\n const headers = await serializeObjectConfigsToHeaders(input);\n const url = new AmplifyUrl(endpoint.url.toString());\n validateS3RequiredParameter(!!input.Key, 'Key');\n url.pathname = serializePathnameObjectKey(url, input.Key);\n url.search = 'uploads';\n return {\n method: 'POST',\n headers,\n url,\n };\n};\nconst createMultipartUploadDeserializer = 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 });\n return {\n $metadata: parseMetadata(response),\n ...contents,\n };\n }\n};\nexport const createMultipartUpload = composeServiceApi(s3TransferHandler, createMultipartUploadSerializer, createMultipartUploadDeserializer, { ...defaultConfig, responseType: 'text' });\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AACA;AAMA,MAAM,+BAA+B,GAAG,OAAO,KAAK,EAAE,QAAQ,KAAK;AACnE,IAAI,MAAM,OAAO,GAAG,MAAM,+BAA+B,CAAC,KAAK,CAAC,CAAC;AACjE,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,SAAS,CAAC;AAC3B,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,OAAO;AACf,QAAQ,GAAG;AACX,KAAK,CAAC;AACN,CAAC,CAAC;AACF,MAAM,iCAAiC,GAAG,OAAO,QAAQ,KAAK;AAC9D,IAAI,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;AACpC,QAAQ,MAAM,KAAK,IAAI,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,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,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,qBAAqB,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,+BAA+B,EAAE,iCAAiC,EAAE,EAAE,GAAG,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE;;;;"}
@@ -19,10 +19,10 @@ export declare const deleteObject: (config: {
19
19
  onDownloadProgress?: ((event: import("../../../..").TransferProgressEvent) => void) | undefined;
20
20
  onUploadProgress?: ((event: import("../../../..").TransferProgressEvent) => void) | undefined;
21
21
  abortSignal?: AbortSignal | undefined;
22
- userAgentHeader?: string | undefined;
23
- maxAttempts?: number | undefined;
24
22
  credentials: import("@aws-amplify/core/internals/aws-client-utils").Credentials | (() => Promise<import("@aws-amplify/core/internals/aws-client-utils").Credentials>);
25
23
  region: string;
26
24
  customEndpoint?: string | undefined;
27
25
  forcePathStyle?: boolean | undefined;
26
+ userAgentHeader?: string | undefined;
27
+ maxAttempts?: number | undefined;
28
28
  }, input: DeleteObjectInput) => Promise<DeleteObjectCommandOutput>;
@@ -1,4 +1,4 @@
1
- import { Endpoint, UserAgentOptions, PresignUrlOptions, HttpResponse } from '@aws-amplify/core/internals/aws-client-utils';
1
+ import { Endpoint, HttpResponse, PresignUrlOptions, UserAgentOptions } from '@aws-amplify/core/internals/aws-client-utils';
2
2
  import { S3EndpointResolverOptions } from './base';
3
3
  import type { GetObjectCommandInput, GetObjectCommandOutput } from './types';
4
4
  export type GetObjectInput = Pick<GetObjectCommandInput, 'Bucket' | 'Key' | 'Range'>;
@@ -20,12 +20,12 @@ export declare const getObject: (config: {
20
20
  onDownloadProgress?: ((event: import("../../../..").TransferProgressEvent) => void) | undefined;
21
21
  onUploadProgress?: ((event: import("../../../..").TransferProgressEvent) => void) | undefined;
22
22
  abortSignal?: AbortSignal | undefined;
23
- userAgentHeader?: string | undefined;
24
- maxAttempts?: number | undefined;
25
23
  credentials: import("@aws-amplify/core/internals/aws-client-utils").Credentials | (() => Promise<import("@aws-amplify/core/internals/aws-client-utils").Credentials>);
26
24
  region: string;
27
25
  customEndpoint?: string | undefined;
28
26
  forcePathStyle?: boolean | undefined;
27
+ userAgentHeader?: string | undefined;
28
+ maxAttempts?: number | undefined;
29
29
  }, input: GetObjectInput) => Promise<GetObjectCommandOutput>;
30
30
  type S3GetObjectPresignedUrlConfig = Omit<UserAgentOptions & PresignUrlOptions & S3EndpointResolverOptions, 'signingService' | 'signingRegion'> & {
31
31
  signingService?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"getObject.mjs","sources":["../../../../../../src/providers/s3/utils/client/getObject.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseMetadata, presignUrl, EMPTY_SHA256_HASH, } 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 { defaultConfig } from './base';\nimport { buildStorageServiceError, deserializeBoolean, deserializeMetadata, deserializeNumber, deserializeTimestamp, map, parseXmlError, s3TransferHandler, serializePathnameObjectKey, CONTENT_SHA256_HEADER, validateS3RequiredParameter, } from './utils';\nconst USER_AGENT_HEADER = 'x-amz-user-agent';\nconst getObjectSerializer = async (input, endpoint) => {\n const url = new AmplifyUrl(endpoint.url.toString());\n validateS3RequiredParameter(!!input.Key, 'Key');\n url.pathname = serializePathnameObjectKey(url, input.Key);\n return {\n method: 'GET',\n headers: {\n ...(input.Range && { Range: input.Range }),\n },\n url,\n };\n};\nconst getObjectDeserializer = 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 DeleteMarker: ['x-amz-delete-marker', deserializeBoolean],\n AcceptRanges: 'accept-ranges',\n Expiration: 'x-amz-expiration',\n Restore: 'x-amz-restore',\n LastModified: ['last-modified', deserializeTimestamp],\n ContentLength: ['content-length', deserializeNumber],\n ETag: 'etag',\n ChecksumCRC32: 'x-amz-checksum-crc32',\n ChecksumCRC32C: 'x-amz-checksum-crc32c',\n ChecksumSHA1: 'x-amz-checksum-sha1',\n ChecksumSHA256: 'x-amz-checksum-sha256',\n MissingMeta: ['x-amz-missing-meta', deserializeNumber],\n VersionId: 'x-amz-version-id',\n CacheControl: 'cache-control',\n ContentDisposition: 'content-disposition',\n ContentEncoding: 'content-encoding',\n ContentLanguage: 'content-language',\n ContentRange: 'content-range',\n ContentType: 'content-type',\n Expires: ['expires', deserializeTimestamp],\n WebsiteRedirectLocation: 'x-amz-website-redirect-location',\n ServerSideEncryption: 'x-amz-server-side-encryption',\n SSECustomerAlgorithm: 'x-amz-server-side-encryption-customer-algorithm',\n SSECustomerKeyMD5: 'x-amz-server-side-encryption-customer-key-md5',\n SSEKMSKeyId: 'x-amz-server-side-encryption-aws-kms-key-id',\n BucketKeyEnabled: [\n 'x-amz-server-side-encryption-bucket-key-enabled',\n deserializeBoolean,\n ],\n StorageClass: 'x-amz-storage-class',\n RequestCharged: 'x-amz-request-charged',\n ReplicationStatus: 'x-amz-replication-status',\n PartsCount: ['x-amz-mp-parts-count', deserializeNumber],\n TagCount: ['x-amz-tagging-count', deserializeNumber],\n ObjectLockMode: 'x-amz-object-lock-mode',\n ObjectLockRetainUntilDate: [\n 'x-amz-object-lock-retain-until-date',\n deserializeTimestamp,\n ],\n ObjectLockLegalHoldStatus: 'x-amz-object-lock-legal-hold',\n }),\n Metadata: deserializeMetadata(response.headers),\n $metadata: parseMetadata(response),\n // @ts-expect-error The body is a CompatibleHttpResponse type because the lower-level handler is XHR instead of\n // fetch, which represents payload in Blob instread of ReadableStream.\n Body: response.body,\n };\n }\n};\nexport const getObject = composeServiceApi(s3TransferHandler, getObjectSerializer, getObjectDeserializer, { ...defaultConfig, responseType: 'blob' });\n/**\n * Get a presigned URL for the `getObject` API.\n *\n * @internal\n */\nexport const getPresignedGetObjectUrl = async (config, input) => {\n const endpoint = defaultConfig.endpointResolver(config, input);\n const { url, headers, method } = await getObjectSerializer(input, endpoint);\n // TODO: set content sha256 query parameter with value of UNSIGNED-PAYLOAD instead of empty hash.\n // It requires changes in presignUrl. Without this change, the generated url still works,\n // but not the same as other tools like AWS SDK and CLI.\n url.searchParams.append(CONTENT_SHA256_HEADER, EMPTY_SHA256_HASH);\n if (config.userAgentValue) {\n url.searchParams.append(config.userAgentHeader ?? USER_AGENT_HEADER, config.userAgentValue);\n }\n for (const [headerName, value] of Object.entries(headers).sort(([key1], [key2]) => key1.localeCompare(key2))) {\n url.searchParams.append(headerName, value);\n }\n return presignUrl({ method, url, body: undefined }, {\n signingService: defaultConfig.service,\n signingRegion: config.region,\n ...defaultConfig,\n ...config,\n });\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getObject.mjs","sources":["../../../../../../src/providers/s3/utils/client/getObject.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { EMPTY_SHA256_HASH, parseMetadata, presignUrl, } 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 { defaultConfig } from './base';\nimport { CONTENT_SHA256_HEADER, buildStorageServiceError, deserializeBoolean, deserializeMetadata, deserializeNumber, deserializeTimestamp, map, parseXmlError, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, } from './utils';\nconst USER_AGENT_HEADER = 'x-amz-user-agent';\nconst getObjectSerializer = async (input, endpoint) => {\n const url = new AmplifyUrl(endpoint.url.toString());\n validateS3RequiredParameter(!!input.Key, 'Key');\n url.pathname = serializePathnameObjectKey(url, input.Key);\n return {\n method: 'GET',\n headers: {\n ...(input.Range && { Range: input.Range }),\n },\n url,\n };\n};\nconst getObjectDeserializer = 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 DeleteMarker: ['x-amz-delete-marker', deserializeBoolean],\n AcceptRanges: 'accept-ranges',\n Expiration: 'x-amz-expiration',\n Restore: 'x-amz-restore',\n LastModified: ['last-modified', deserializeTimestamp],\n ContentLength: ['content-length', deserializeNumber],\n ETag: 'etag',\n ChecksumCRC32: 'x-amz-checksum-crc32',\n ChecksumCRC32C: 'x-amz-checksum-crc32c',\n ChecksumSHA1: 'x-amz-checksum-sha1',\n ChecksumSHA256: 'x-amz-checksum-sha256',\n MissingMeta: ['x-amz-missing-meta', deserializeNumber],\n VersionId: 'x-amz-version-id',\n CacheControl: 'cache-control',\n ContentDisposition: 'content-disposition',\n ContentEncoding: 'content-encoding',\n ContentLanguage: 'content-language',\n ContentRange: 'content-range',\n ContentType: 'content-type',\n Expires: ['expires', deserializeTimestamp],\n WebsiteRedirectLocation: 'x-amz-website-redirect-location',\n ServerSideEncryption: 'x-amz-server-side-encryption',\n SSECustomerAlgorithm: 'x-amz-server-side-encryption-customer-algorithm',\n SSECustomerKeyMD5: 'x-amz-server-side-encryption-customer-key-md5',\n SSEKMSKeyId: 'x-amz-server-side-encryption-aws-kms-key-id',\n BucketKeyEnabled: [\n 'x-amz-server-side-encryption-bucket-key-enabled',\n deserializeBoolean,\n ],\n StorageClass: 'x-amz-storage-class',\n RequestCharged: 'x-amz-request-charged',\n ReplicationStatus: 'x-amz-replication-status',\n PartsCount: ['x-amz-mp-parts-count', deserializeNumber],\n TagCount: ['x-amz-tagging-count', deserializeNumber],\n ObjectLockMode: 'x-amz-object-lock-mode',\n ObjectLockRetainUntilDate: [\n 'x-amz-object-lock-retain-until-date',\n deserializeTimestamp,\n ],\n ObjectLockLegalHoldStatus: 'x-amz-object-lock-legal-hold',\n }),\n Metadata: deserializeMetadata(response.headers),\n $metadata: parseMetadata(response),\n // @ts-expect-error The body is a CompatibleHttpResponse type because the lower-level handler is XHR instead of\n // fetch, which represents payload in Blob instread of ReadableStream.\n Body: response.body,\n };\n }\n};\nexport const getObject = composeServiceApi(s3TransferHandler, getObjectSerializer, getObjectDeserializer, { ...defaultConfig, responseType: 'blob' });\n/**\n * Get a presigned URL for the `getObject` API.\n *\n * @internal\n */\nexport const getPresignedGetObjectUrl = async (config, input) => {\n const endpoint = defaultConfig.endpointResolver(config, input);\n const { url, headers, method } = await getObjectSerializer(input, endpoint);\n // TODO: set content sha256 query parameter with value of UNSIGNED-PAYLOAD instead of empty hash.\n // It requires changes in presignUrl. Without this change, the generated url still works,\n // but not the same as other tools like AWS SDK and CLI.\n url.searchParams.append(CONTENT_SHA256_HEADER, EMPTY_SHA256_HASH);\n if (config.userAgentValue) {\n url.searchParams.append(config.userAgentHeader ?? USER_AGENT_HEADER, config.userAgentValue);\n }\n for (const [headerName, value] of Object.entries(headers).sort(([key1], [key2]) => key1.localeCompare(key2))) {\n url.searchParams.append(headerName, value);\n }\n return presignUrl({ method, url, body: undefined }, {\n signingService: defaultConfig.service,\n signingRegion: config.region,\n ...defaultConfig,\n ...config,\n });\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAAA;AACA;AAMA,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAC7C,MAAM,mBAAmB,GAAG,OAAO,KAAK,EAAE,QAAQ,KAAK;AACvD,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,OAAO;AACX,QAAQ,MAAM,EAAE,KAAK;AACrB,QAAQ,OAAO,EAAE;AACjB,YAAY,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;AACrD,SAAS;AACT,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,IAAI,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,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,YAAY,EAAE,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;AACzE,gBAAgB,YAAY,EAAE,eAAe;AAC7C,gBAAgB,UAAU,EAAE,kBAAkB;AAC9C,gBAAgB,OAAO,EAAE,eAAe;AACxC,gBAAgB,YAAY,EAAE,CAAC,eAAe,EAAE,oBAAoB,CAAC;AACrE,gBAAgB,aAAa,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;AACpE,gBAAgB,IAAI,EAAE,MAAM;AAC5B,gBAAgB,aAAa,EAAE,sBAAsB;AACrD,gBAAgB,cAAc,EAAE,uBAAuB;AACvD,gBAAgB,YAAY,EAAE,qBAAqB;AACnD,gBAAgB,cAAc,EAAE,uBAAuB;AACvD,gBAAgB,WAAW,EAAE,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;AACtE,gBAAgB,SAAS,EAAE,kBAAkB;AAC7C,gBAAgB,YAAY,EAAE,eAAe;AAC7C,gBAAgB,kBAAkB,EAAE,qBAAqB;AACzD,gBAAgB,eAAe,EAAE,kBAAkB;AACnD,gBAAgB,eAAe,EAAE,kBAAkB;AACnD,gBAAgB,YAAY,EAAE,eAAe;AAC7C,gBAAgB,WAAW,EAAE,cAAc;AAC3C,gBAAgB,OAAO,EAAE,CAAC,SAAS,EAAE,oBAAoB,CAAC;AAC1D,gBAAgB,uBAAuB,EAAE,iCAAiC;AAC1E,gBAAgB,oBAAoB,EAAE,8BAA8B;AACpE,gBAAgB,oBAAoB,EAAE,iDAAiD;AACvF,gBAAgB,iBAAiB,EAAE,+CAA+C;AAClF,gBAAgB,WAAW,EAAE,6CAA6C;AAC1E,gBAAgB,gBAAgB,EAAE;AAClC,oBAAoB,iDAAiD;AACrE,oBAAoB,kBAAkB;AACtC,iBAAiB;AACjB,gBAAgB,YAAY,EAAE,qBAAqB;AACnD,gBAAgB,cAAc,EAAE,uBAAuB;AACvD,gBAAgB,iBAAiB,EAAE,0BAA0B;AAC7D,gBAAgB,UAAU,EAAE,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;AACvE,gBAAgB,QAAQ,EAAE,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;AACpE,gBAAgB,cAAc,EAAE,wBAAwB;AACxD,gBAAgB,yBAAyB,EAAE;AAC3C,oBAAoB,qCAAqC;AACzD,oBAAoB,oBAAoB;AACxC,iBAAiB;AACjB,gBAAgB,yBAAyB,EAAE,8BAA8B;AACzE,aAAa,CAAC;AACd,YAAY,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC3D,YAAY,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC;AAC9C;AACA;AACA,YAAY,IAAI,EAAE,QAAQ,CAAC,IAAI;AAC/B,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,EAAE;AACtJ;AACA;AACA;AACA;AACA;AACY,MAAC,wBAAwB,GAAG,OAAO,MAAM,EAAE,KAAK,KAAK;AACjE,IAAI,MAAM,QAAQ,GAAG,aAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACnE,IAAI,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAChF;AACA;AACA;AACA,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,CAAC;AACtE,IAAI,IAAI,MAAM,CAAC,cAAc,EAAE;AAC/B,QAAQ,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,IAAI,iBAAiB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;AACpG,KAAK;AACL,IAAI,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE;AAClH,QAAQ,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,OAAO,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;AACxD,QAAQ,cAAc,EAAE,aAAa,CAAC,OAAO;AAC7C,QAAQ,aAAa,EAAE,MAAM,CAAC,MAAM;AACpC,QAAQ,GAAG,aAAa;AACxB,QAAQ,GAAG,MAAM;AACjB,KAAK,CAAC,CAAC;AACP;;;;"}
@@ -19,10 +19,10 @@ export declare const headObject: (config: {
19
19
  onDownloadProgress?: ((event: import("../../../..").TransferProgressEvent) => void) | undefined;
20
20
  onUploadProgress?: ((event: import("../../../..").TransferProgressEvent) => void) | undefined;
21
21
  abortSignal?: AbortSignal | undefined;
22
- userAgentHeader?: string | undefined;
23
- maxAttempts?: number | undefined;
24
22
  credentials: import("@aws-amplify/core/internals/aws-client-utils").Credentials | (() => Promise<import("@aws-amplify/core/internals/aws-client-utils").Credentials>);
25
23
  region: string;
26
24
  customEndpoint?: string | undefined;
27
25
  forcePathStyle?: boolean | undefined;
26
+ userAgentHeader?: string | undefined;
27
+ maxAttempts?: number | undefined;
28
28
  }, input: HeadObjectInput) => Promise<HeadObjectOutput>;
@@ -19,10 +19,10 @@ export declare const listObjectsV2: (config: {
19
19
  onDownloadProgress?: ((event: import("../../../..").TransferProgressEvent) => void) | undefined;
20
20
  onUploadProgress?: ((event: import("../../../..").TransferProgressEvent) => void) | undefined;
21
21
  abortSignal?: AbortSignal | undefined;
22
- userAgentHeader?: string | undefined;
23
- maxAttempts?: number | undefined;
24
22
  credentials: import("@aws-amplify/core/internals/aws-client-utils").Credentials | (() => Promise<import("@aws-amplify/core/internals/aws-client-utils").Credentials>);
25
23
  region: string;
26
24
  customEndpoint?: string | undefined;
27
25
  forcePathStyle?: boolean | undefined;
28
- }, input: ListObjectsV2CommandInput) => Promise<ListObjectsV2CommandOutput>;
26
+ userAgentHeader?: string | undefined;
27
+ maxAttempts?: number | undefined;
28
+ }, input: import("./types").ListObjectsV2Request) => Promise<ListObjectsV2CommandOutput>;
@@ -19,10 +19,10 @@ export declare const listParts: (config: {
19
19
  onDownloadProgress?: ((event: import("../../../..").TransferProgressEvent) => void) | undefined;
20
20
  onUploadProgress?: ((event: import("../../../..").TransferProgressEvent) => void) | undefined;
21
21
  abortSignal?: AbortSignal | undefined;
22
- userAgentHeader?: string | undefined;
23
- maxAttempts?: number | undefined;
24
22
  credentials: import("@aws-amplify/core/internals/aws-client-utils").Credentials | (() => Promise<import("@aws-amplify/core/internals/aws-client-utils").Credentials>);
25
23
  region: string;
26
24
  customEndpoint?: string | undefined;
27
25
  forcePathStyle?: boolean | undefined;
26
+ userAgentHeader?: string | undefined;
27
+ maxAttempts?: number | undefined;
28
28
  }, input: ListPartsInput) => Promise<ListPartsOutput>;
@@ -1 +1 @@
1
- {"version":3,"file":"listParts.mjs","sources":["../../../../../../src/providers/s3/utils/client/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 { defaultConfig } from './base';\nimport { buildStorageServiceError, emptyArrayGuard, map, parseXmlBody, parseXmlError, s3TransferHandler, deserializeNumber, serializePathnameObjectKey, validateS3RequiredParameter, } from './utils';\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 = (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};\nconst deserializeCompletedPartList = (input) => input.map(item => map(item, {\n PartNumber: ['PartNumber', deserializeNumber],\n ETag: 'ETag',\n Size: ['Size', deserializeNumber],\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,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,IAAI,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,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;AACF,MAAM,4BAA4B,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE;AAC5E,IAAI,UAAU,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC;AACjD,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,iBAAiB,CAAC;AACrC,CAAC,CAAC,CAAC,CAAC;AACQ,MAAC,SAAS,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,EAAE,GAAG,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE;;;;"}
1
+ {"version":3,"file":"listParts.mjs","sources":["../../../../../../src/providers/s3/utils/client/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 { defaultConfig } from './base';\nimport { buildStorageServiceError, deserializeNumber, emptyArrayGuard, map, parseXmlBody, parseXmlError, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, } from './utils';\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 = (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};\nconst deserializeCompletedPartList = (input) => input.map(item => map(item, {\n PartNumber: ['PartNumber', deserializeNumber],\n ETag: 'ETag',\n Size: ['Size', deserializeNumber],\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,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,IAAI,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,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;AACF,MAAM,4BAA4B,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE;AAC5E,IAAI,UAAU,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC;AACjD,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,iBAAiB,CAAC;AACrC,CAAC,CAAC,CAAC,CAAC;AACQ,MAAC,SAAS,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,EAAE,GAAG,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE;;;;"}
@@ -19,10 +19,10 @@ export declare const putObject: (config: {
19
19
  onDownloadProgress?: ((event: import("../../../..").TransferProgressEvent) => void) | undefined;
20
20
  onUploadProgress?: ((event: import("../../../..").TransferProgressEvent) => void) | undefined;
21
21
  abortSignal?: AbortSignal | undefined;
22
- userAgentHeader?: string | undefined;
23
- maxAttempts?: number | undefined;
24
22
  credentials: import("@aws-amplify/core/internals/aws-client-utils").Credentials | (() => Promise<import("@aws-amplify/core/internals/aws-client-utils").Credentials>);
25
23
  region: string;
26
24
  customEndpoint?: string | undefined;
27
25
  forcePathStyle?: boolean | undefined;
26
+ userAgentHeader?: string | undefined;
27
+ maxAttempts?: number | undefined;
28
28
  }, input: PutObjectInput) => Promise<PutObjectOutput>;
@@ -1 +1 @@
1
- {"version":3,"file":"putObject.mjs","sources":["../../../../../../src/providers/s3/utils/client/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 { defaultConfig } from './base';\nimport { buildStorageServiceError, validateS3RequiredParameter, assignStringVariables, map, parseXmlError, s3TransferHandler, serializeObjectConfigsToHeaders, serializePathnameObjectKey, } from './utils';\nconst putObjectSerializer = async (input, endpoint) => {\n const headers = {\n ...(await serializeObjectConfigsToHeaders({\n ...input,\n ContentType: input.ContentType ?? 'application/octet-stream',\n })),\n ...assignStringVariables({ 'content-md5': input.ContentMD5 }),\n };\n const url = new AmplifyUrl(endpoint.url.toString());\n validateS3RequiredParameter(!!input.Key, 'Key');\n url.pathname = serializePathnameObjectKey(url, input.Key);\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;AAMA,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;AACV,QAAQ,GAAG,qBAAqB,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;AACrE,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,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,IAAI,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,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;;;;"}
1
+ {"version":3,"file":"putObject.mjs","sources":["../../../../../../src/providers/s3/utils/client/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 { defaultConfig } from './base';\nimport { assignStringVariables, buildStorageServiceError, map, parseXmlError, s3TransferHandler, serializeObjectConfigsToHeaders, serializePathnameObjectKey, validateS3RequiredParameter, } from './utils';\nconst putObjectSerializer = async (input, endpoint) => {\n const headers = {\n ...(await serializeObjectConfigsToHeaders({\n ...input,\n ContentType: input.ContentType ?? 'application/octet-stream',\n })),\n ...assignStringVariables({ 'content-md5': input.ContentMD5 }),\n };\n const url = new AmplifyUrl(endpoint.url.toString());\n validateS3RequiredParameter(!!input.Key, 'Key');\n url.pathname = serializePathnameObjectKey(url, input.Key);\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;AAMA,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;AACV,QAAQ,GAAG,qBAAqB,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;AACrE,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,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,IAAI,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,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;;;;"}
@@ -9,7 +9,7 @@ function toBase64(input) {
9
9
  if (typeof input === 'string') {
10
10
  return Buffer.from(input, 'utf-8').toString('base64');
11
11
  }
12
- return new Buffer(input.buffer).toString('base64');
12
+ return Buffer.from(input.buffer).toString('base64');
13
13
  }
14
14
 
15
15
  export { toBase64, utf8Encode };
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.mjs","sources":["../../../../../../../../src/providers/s3/utils/client/runtime/base64/index.native.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Buffer } from 'buffer';\nexport function utf8Encode(input) {\n return Buffer.from(input, 'utf-8');\n}\nexport function toBase64(input) {\n if (typeof input === 'string') {\n return Buffer.from(input, 'utf-8').toString('base64');\n }\n return new Buffer(input.buffer).toString('base64');\n}\n"],"names":[],"mappings":";;AAAA;AACA;AAEO,SAAS,UAAU,CAAC,KAAK,EAAE;AAClC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC;AACM,SAAS,QAAQ,CAAC,KAAK,EAAE;AAChC,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,QAAQ,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC9D,KAAK;AACL,IAAI,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACvD;;;;"}
1
+ {"version":3,"file":"index.native.mjs","sources":["../../../../../../../../src/providers/s3/utils/client/runtime/base64/index.native.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Buffer } from 'buffer';\nexport function utf8Encode(input) {\n return Buffer.from(input, 'utf-8');\n}\nexport function toBase64(input) {\n if (typeof input === 'string') {\n return Buffer.from(input, 'utf-8').toString('base64');\n }\n return Buffer.from(input.buffer).toString('base64');\n}\n"],"names":[],"mappings":";;AAAA;AACA;AAEO,SAAS,UAAU,CAAC,KAAK,EAAE;AAClC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC;AACM,SAAS,QAAQ,CAAC,KAAK,EAAE;AAChC,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,QAAQ,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC9D,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACxD;;;;"}
@@ -1,4 +1,4 @@
1
- import { HttpRequest, MiddlewareHandler, HttpResponse } from '@aws-amplify/core/internals/aws-client-utils';
1
+ import { HttpRequest, HttpResponse, MiddlewareHandler } from '@aws-amplify/core/internals/aws-client-utils';
2
2
  /**
3
3
  * A middleware that adds the x-amz-content-sha256 header to the request if it is not already present.
4
4
  * It's required for S3 requests in browsers where the request body is sent in 1 chunk.
@@ -6,4 +6,4 @@ import { HttpRequest, MiddlewareHandler, HttpResponse } from '@aws-amplify/core/
6
6
  *
7
7
  * @internal
8
8
  */
9
- export declare const contentSha256Middleware: (options: {}) => (next: MiddlewareHandler<HttpRequest, HttpResponse>) => (request: HttpRequest) => Promise<HttpResponse>;
9
+ export declare const contentSha256MiddlewareFactory: () => (next: MiddlewareHandler<HttpRequest, HttpResponse>) => (request: HttpRequest) => Promise<HttpResponse>;
@@ -10,7 +10,7 @@ import { CONTENT_SHA256_HEADER } from './constants.mjs';
10
10
  *
11
11
  * @internal
12
12
  */
13
- const contentSha256Middleware = (options) => (next) => async function contentSha256Middleware(request) {
13
+ const contentSha256MiddlewareFactory = () => (next) => async function contentSha256Middleware(request) {
14
14
  if (request.headers[CONTENT_SHA256_HEADER]) {
15
15
  return next(request);
16
16
  }
@@ -21,5 +21,5 @@ const contentSha256Middleware = (options) => (next) => async function contentSha
21
21
  }
22
22
  };
23
23
 
24
- export { contentSha256Middleware };
24
+ export { contentSha256MiddlewareFactory };
25
25
  //# sourceMappingURL=contentSha256middleware.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"contentSha256middleware.mjs","sources":["../../../../../../../src/providers/s3/utils/client/runtime/contentSha256middleware.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getHashedPayload, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { CONTENT_SHA256_HEADER } from './constants';\n/**\n * A middleware that adds the x-amz-content-sha256 header to the request if it is not already present.\n * It's required for S3 requests in browsers where the request body is sent in 1 chunk.\n * @see https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html\n *\n * @internal\n */\nexport const contentSha256Middleware = (options) => (next) => async function contentSha256Middleware(request) {\n if (request.headers[CONTENT_SHA256_HEADER]) {\n return next(request);\n }\n else {\n const hash = await getHashedPayload(request.body);\n request.headers[CONTENT_SHA256_HEADER] = hash;\n return next(request);\n }\n};\n"],"names":[],"mappings":";;;AAAA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,uBAAuB,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,eAAe,uBAAuB,CAAC,OAAO,EAAE;AAC9G,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE;AAChD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,KAAK;AACL,SAAS;AACT,QAAQ,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1D,QAAQ,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC;AACtD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,KAAK;AACL;;;;"}
1
+ {"version":3,"file":"contentSha256middleware.mjs","sources":["../../../../../../../src/providers/s3/utils/client/runtime/contentSha256middleware.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getHashedPayload, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { CONTENT_SHA256_HEADER } from './constants';\n/**\n * A middleware that adds the x-amz-content-sha256 header to the request if it is not already present.\n * It's required for S3 requests in browsers where the request body is sent in 1 chunk.\n * @see https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html\n *\n * @internal\n */\nexport const contentSha256MiddlewareFactory = () => (next) => async function contentSha256Middleware(request) {\n if (request.headers[CONTENT_SHA256_HEADER]) {\n return next(request);\n }\n else {\n const hash = await getHashedPayload(request.body);\n request.headers[CONTENT_SHA256_HEADER] = hash;\n return next(request);\n }\n};\n"],"names":[],"mappings":";;;AAAA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,8BAA8B,GAAG,MAAM,CAAC,IAAI,KAAK,eAAe,uBAAuB,CAAC,OAAO,EAAE;AAC9G,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE;AAChD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,KAAK;AACL,SAAS;AACT,QAAQ,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1D,QAAQ,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC;AACtD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,KAAK;AACL;;;;"}
@@ -1,8 +1,8 @@
1
- import type { s3TransferHandler as s3BrowserTransferhandler } from './xhr';
1
+ import type { s3TransferHandler as s3BrowserTransferHandler } from './xhr';
2
2
  /**
3
3
  * S3 transfer handler for node based on Node-fetch. On top of basic transfer handler, it also supports
4
4
  * x-amz-content-sha256 header. However, it does not support request&response process tracking like browser.
5
5
  *
6
6
  * @internal
7
7
  */
8
- export declare const s3TransferHandler: typeof s3BrowserTransferhandler;
8
+ export declare const s3TransferHandler: typeof s3BrowserTransferHandler;
@@ -1,6 +1,6 @@
1
1
  import { authenticatedHandler } from '@aws-amplify/core/internals/aws-client-utils';
2
2
  import { composeTransferHandler } from '@aws-amplify/core/internals/aws-client-utils/composers';
3
- import { contentSha256Middleware } from '../contentSha256middleware.mjs';
3
+ import { contentSha256MiddlewareFactory } from '../contentSha256middleware.mjs';
4
4
 
5
5
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
6
6
  // SPDX-License-Identifier: Apache-2.0
@@ -10,7 +10,7 @@ import { contentSha256Middleware } from '../contentSha256middleware.mjs';
10
10
  *
11
11
  * @internal
12
12
  */
13
- const s3TransferHandler = composeTransferHandler(authenticatedHandler, [contentSha256Middleware]);
13
+ const s3TransferHandler = composeTransferHandler(authenticatedHandler, [contentSha256MiddlewareFactory]);
14
14
 
15
15
  export { s3TransferHandler };
16
16
  //# sourceMappingURL=fetch.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.mjs","sources":["../../../../../../../../src/providers/s3/utils/client/runtime/s3TransferHandler/fetch.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { authenticatedHandler, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { composeTransferHandler } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { contentSha256Middleware } from '../contentSha256middleware';\n/**\n * S3 transfer handler for node based on Node-fetch. On top of basic transfer handler, it also supports\n * x-amz-content-sha256 header. However, it does not support request&response process tracking like browser.\n *\n * @internal\n */\nexport const s3TransferHandler = composeTransferHandler(authenticatedHandler, [contentSha256Middleware]);\n"],"names":[],"mappings":";;;;AAAA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,iBAAiB,GAAG,sBAAsB,CAAC,oBAAoB,EAAE,CAAC,uBAAuB,CAAC;;;;"}
1
+ {"version":3,"file":"fetch.mjs","sources":["../../../../../../../../src/providers/s3/utils/client/runtime/s3TransferHandler/fetch.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { authenticatedHandler, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { composeTransferHandler } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { contentSha256MiddlewareFactory } from '../contentSha256middleware';\n/**\n * S3 transfer handler for node based on Node-fetch. On top of basic transfer handler, it also supports\n * x-amz-content-sha256 header. However, it does not support request&response process tracking like browser.\n *\n * @internal\n */\nexport const s3TransferHandler = composeTransferHandler(authenticatedHandler, [contentSha256MiddlewareFactory]);\n"],"names":[],"mappings":";;;;AAAA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,iBAAiB,GAAG,sBAAsB,CAAC,oBAAoB,EAAE,CAAC,8BAA8B,CAAC;;;;"}
@@ -1,8 +1,8 @@
1
- import { RetryOptions, SigningOptions, UserAgentOptions, HttpRequest, HttpResponse } from '@aws-amplify/core/internals/aws-client-utils';
1
+ import { HttpRequest, HttpResponse, RetryOptions, SigningOptions, UserAgentOptions } from '@aws-amplify/core/internals/aws-client-utils';
2
2
  /**
3
3
  * S3 transfer handler for browser and React Native based on XHR. On top of basic transfer handler, it also supports
4
4
  * x-amz-content-sha256 header, and request&response process tracking.
5
5
  *
6
6
  * @internal
7
7
  */
8
- export declare const s3TransferHandler: (request: HttpRequest, options: UserAgentOptions & RetryOptions<HttpResponse> & SigningOptions & import("../xhrTransferHandler").XhrTransferHandlerOptions) => Promise<HttpResponse>;
8
+ export declare const s3TransferHandler: (request: HttpRequest, options: object & UserAgentOptions & RetryOptions<HttpResponse> & SigningOptions & import("../xhrTransferHandler").XhrTransferHandlerOptions) => Promise<HttpResponse>;
@@ -1,6 +1,6 @@
1
- import { userAgentMiddleware, retryMiddleware, signingMiddleware } from '@aws-amplify/core/internals/aws-client-utils';
1
+ import { userAgentMiddlewareFactory, retryMiddlewareFactory, signingMiddlewareFactory } from '@aws-amplify/core/internals/aws-client-utils';
2
2
  import { composeTransferHandler } from '@aws-amplify/core/internals/aws-client-utils/composers';
3
- import { contentSha256Middleware } from '../contentSha256middleware.mjs';
3
+ import { contentSha256MiddlewareFactory } from '../contentSha256middleware.mjs';
4
4
  import { xhrTransferHandler } from '../xhrTransferHandler.mjs';
5
5
 
6
6
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
@@ -12,10 +12,10 @@ import { xhrTransferHandler } from '../xhrTransferHandler.mjs';
12
12
  * @internal
13
13
  */
14
14
  const s3TransferHandler = composeTransferHandler(xhrTransferHandler, [
15
- contentSha256Middleware,
16
- userAgentMiddleware,
17
- retryMiddleware,
18
- signingMiddleware,
15
+ contentSha256MiddlewareFactory,
16
+ userAgentMiddlewareFactory,
17
+ retryMiddlewareFactory,
18
+ signingMiddlewareFactory,
19
19
  ]);
20
20
 
21
21
  export { s3TransferHandler };
@@ -1 +1 @@
1
- {"version":3,"file":"xhr.mjs","sources":["../../../../../../../../src/providers/s3/utils/client/runtime/s3TransferHandler/xhr.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { retryMiddleware, signingMiddleware, userAgentMiddleware, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { composeTransferHandler } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { contentSha256Middleware } from '../contentSha256middleware';\nimport { xhrTransferHandler } from '../xhrTransferHandler';\n/**\n * S3 transfer handler for browser and React Native based on XHR. On top of basic transfer handler, it also supports\n * x-amz-content-sha256 header, and request&response process tracking.\n *\n * @internal\n */\nexport const s3TransferHandler = composeTransferHandler(xhrTransferHandler, [\n contentSha256Middleware,\n userAgentMiddleware,\n retryMiddleware,\n signingMiddleware,\n]);\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,iBAAiB,GAAG,sBAAsB,CAAC,kBAAkB,EAAE;AAC5E,IAAI,uBAAuB;AAC3B,IAAI,mBAAmB;AACvB,IAAI,eAAe;AACnB,IAAI,iBAAiB;AACrB,CAAC;;;;"}
1
+ {"version":3,"file":"xhr.mjs","sources":["../../../../../../../../src/providers/s3/utils/client/runtime/s3TransferHandler/xhr.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { retryMiddlewareFactory, signingMiddlewareFactory, userAgentMiddlewareFactory, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { composeTransferHandler } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { contentSha256MiddlewareFactory } from '../contentSha256middleware';\nimport { xhrTransferHandler } from '../xhrTransferHandler';\n/**\n * S3 transfer handler for browser and React Native based on XHR. On top of basic transfer handler, it also supports\n * x-amz-content-sha256 header, and request&response process tracking.\n *\n * @internal\n */\nexport const s3TransferHandler = composeTransferHandler(xhrTransferHandler, [\n contentSha256MiddlewareFactory,\n userAgentMiddlewareFactory,\n retryMiddlewareFactory,\n signingMiddlewareFactory,\n]);\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,iBAAiB,GAAG,sBAAsB,CAAC,kBAAkB,EAAE;AAC5E,IAAI,8BAA8B;AAClC,IAAI,0BAA0B;AAC9B,IAAI,sBAAsB;AAC1B,IAAI,wBAAwB;AAC5B,CAAC;;;;"}
@@ -6,8 +6,8 @@ import { TransferProgressEvent } from '../../../../../types/common';
6
6
  export interface XhrTransferHandlerOptions {
7
7
  responseType: 'text' | 'blob';
8
8
  abortSignal?: AbortSignal;
9
- onDownloadProgress?: (event: TransferProgressEvent) => void;
10
- onUploadProgress?: (event: TransferProgressEvent) => void;
9
+ onDownloadProgress?(event: TransferProgressEvent): void;
10
+ onUploadProgress?(event: TransferProgressEvent): void;
11
11
  }
12
12
  /**
13
13
  * Base transfer handler implementation using XMLHttpRequest to support upload and download progress events.
@@ -1,7 +1,7 @@
1
1
  import { withMemoization } from '@aws-amplify/core/internals/aws-client-utils';
2
2
  import { ConsoleLogger } from '@aws-amplify/core';
3
- import { NETWORK_ERROR_MESSAGE, ABORT_ERROR_MESSAGE, NETWORK_ERROR_CODE, ABORT_ERROR_CODE, CANCELED_ERROR_CODE, CANCELED_ERROR_MESSAGE } from './constants.mjs';
4
3
  import { CanceledError } from '../../../../../errors/CanceledError.mjs';
4
+ import { NETWORK_ERROR_MESSAGE, ABORT_ERROR_MESSAGE, NETWORK_ERROR_CODE, ABORT_ERROR_CODE, CANCELED_ERROR_CODE, CANCELED_ERROR_MESSAGE } from './constants.mjs';
5
5
 
6
6
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
7
7
  // SPDX-License-Identifier: Apache-2.0
@@ -68,12 +68,12 @@ const xhrTransferHandler = (request, options) => {
68
68
  if (!xhr)
69
69
  return;
70
70
  const responseHeaders = convertResponseHeaders(xhr.getAllResponseHeaders());
71
- const responseType = xhr.responseType;
71
+ const { responseType: loadEndResponseType } = xhr;
72
72
  const responseBlob = xhr.response;
73
- const responseText = responseType === 'text' ? xhr.responseText : '';
73
+ const responseText = loadEndResponseType === 'text' ? xhr.responseText : '';
74
74
  const bodyMixIn = {
75
75
  blob: () => Promise.resolve(responseBlob),
76
- text: withMemoization(() => responseType === 'blob'
76
+ text: withMemoization(() => loadEndResponseType === 'blob'
77
77
  ? readBlobAsText(responseBlob)
78
78
  : Promise.resolve(responseText)),
79
79
  json: () => Promise.reject(
@@ -1 +1 @@
1
- {"version":3,"file":"xhrTransferHandler.mjs","sources":["../../../../../../../src/providers/s3/utils/client/runtime/xhrTransferHandler.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { withMemoization, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { ConsoleLogger } from '@aws-amplify/core';\nimport { ABORT_ERROR_CODE, ABORT_ERROR_MESSAGE, CANCELED_ERROR_CODE, CANCELED_ERROR_MESSAGE, NETWORK_ERROR_CODE, NETWORK_ERROR_MESSAGE, } from './constants';\nimport { CanceledError } from '../../../../../errors/CanceledError';\nconst logger = new ConsoleLogger('xhr-http-handler');\n/**\n * Base transfer handler implementation using XMLHttpRequest to support upload and download progress events.\n *\n * @param request - The request object.\n * @param options - The request options.\n * @returns A promise that will be resolved with the response object.\n *\n * @internal\n */\nexport const xhrTransferHandler = (request, options) => {\n const { url, method, headers, body } = request;\n const { onDownloadProgress, onUploadProgress, responseType, abortSignal } = options;\n return new Promise((resolve, reject) => {\n let xhr = new XMLHttpRequest();\n xhr.open(method.toUpperCase(), url.toString());\n Object.entries(headers)\n .filter(([header]) => !FORBIDDEN_HEADERS.includes(header))\n .forEach(([header, value]) => {\n xhr.setRequestHeader(header, value);\n });\n xhr.responseType = responseType;\n if (onDownloadProgress) {\n xhr.addEventListener('progress', event => {\n onDownloadProgress(convertToTransferProgressEvent(event));\n logger.debug(event);\n });\n }\n if (onUploadProgress) {\n xhr.upload.addEventListener('progress', event => {\n onUploadProgress(convertToTransferProgressEvent(event));\n logger.debug(event);\n });\n }\n xhr.addEventListener('error', () => {\n const networkError = buildHandlerError(NETWORK_ERROR_MESSAGE, NETWORK_ERROR_CODE);\n logger.error(NETWORK_ERROR_MESSAGE);\n reject(networkError);\n xhr = null; // clean up request\n });\n // Handle browser request cancellation (as opposed to a manual cancellation)\n xhr.addEventListener('abort', () => {\n // The abort event can be triggered after the error or load event. So we need to check if the xhr is null.\n // When request is aborted by AbortSignal, the promise is rejected in the abortSignal's 'abort' event listener.\n if (!xhr || abortSignal?.aborted)\n return;\n // Handle abort request caused by browser instead of AbortController\n // see: https://github.com/axios/axios/issues/537\n const error = buildHandlerError(ABORT_ERROR_MESSAGE, ABORT_ERROR_CODE);\n logger.error(ABORT_ERROR_MESSAGE);\n reject(error);\n xhr = null; // clean up request\n });\n // Skip handling timeout error since we don't have a timeout\n xhr.addEventListener('readystatechange', () => {\n if (!xhr || xhr.readyState !== xhr.DONE) {\n return;\n }\n const onloadend = () => {\n // The load event is triggered after the error/abort/load event. So we need to check if the xhr is null.\n if (!xhr)\n return;\n const responseHeaders = convertResponseHeaders(xhr.getAllResponseHeaders());\n const responseType = xhr.responseType;\n const responseBlob = xhr.response;\n const responseText = responseType === 'text' ? xhr.responseText : '';\n const bodyMixIn = {\n blob: () => Promise.resolve(responseBlob),\n text: withMemoization(() => responseType === 'blob'\n ? readBlobAsText(responseBlob)\n : Promise.resolve(responseText)),\n json: () => Promise.reject(\n // S3 does not support JSON response. So fail-fast here with nicer error message.\n new Error('Parsing response to JSON is not implemented. Please use response.text() instead.')),\n };\n const response = {\n statusCode: xhr.status,\n headers: responseHeaders,\n // The xhr.responseType is only set to 'blob' for streaming binary S3 object data. The streaming data is\n // exposed via public interface of Storage.get(). So we need to return the response as a Blob object for\n // backward compatibility. In other cases, the response payload is only used internally, we return it is\n // {@link ResponseBodyMixin}\n body: (xhr.responseType === 'blob'\n ? Object.assign(responseBlob, bodyMixIn)\n : bodyMixIn),\n };\n resolve(response);\n xhr = null; // clean up request\n };\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n // @see https://github.com/axios/axios/blob/9588fcdec8aca45c3ba2f7968988a5d03f23168c/lib/adapters/xhr.js#L98-L99\n setTimeout(onloadend);\n });\n if (abortSignal) {\n const onCanceled = () => {\n // The abort event is triggered after the error or load event. So we need to check if the xhr is null.\n if (!xhr) {\n return;\n }\n const canceledError = new CanceledError({\n name: CANCELED_ERROR_CODE,\n message: CANCELED_ERROR_MESSAGE,\n });\n reject(canceledError);\n xhr.abort();\n xhr = null;\n };\n abortSignal.aborted\n ? onCanceled()\n : abortSignal.addEventListener('abort', onCanceled);\n }\n if (typeof ReadableStream === 'function' &&\n body instanceof ReadableStream) {\n // This does not matter as previous implementation uses Axios which does not support ReadableStream anyway.\n throw new Error('ReadableStream request payload is not supported.');\n }\n xhr.send(body ?? null);\n });\n};\nconst convertToTransferProgressEvent = (event) => ({\n transferredBytes: event.loaded,\n totalBytes: event.lengthComputable ? event.total : undefined,\n});\nconst buildHandlerError = (message, name) => {\n const error = new Error(message);\n error.name = name;\n return error;\n};\n/**\n * Convert xhr.getAllResponseHeaders() string to a Record<string, string>. Note that modern browser already returns\n * header names in lowercase.\n * @param xhrHeaders - string of headers returned from xhr.getAllResponseHeaders()\n */\nconst convertResponseHeaders = (xhrHeaders) => {\n if (!xhrHeaders) {\n return {};\n }\n return xhrHeaders\n .split('\\r\\n')\n .reduce((headerMap, line) => {\n const parts = line.split(': ');\n const header = parts.shift();\n const value = parts.join(': ');\n headerMap[header.toLowerCase()] = value;\n return headerMap;\n }, {});\n};\nconst readBlobAsText = (blob) => {\n const reader = new FileReader();\n return new Promise((resolve, reject) => {\n reader.onloadend = () => {\n if (reader.readyState !== FileReader.DONE) {\n return;\n }\n resolve(reader.result);\n };\n reader.onerror = () => {\n reject(reader.error);\n };\n reader.readAsText(blob);\n });\n};\n// To add more forbidden headers as found set by S3. Intentionally NOT list all of them here to save bundle size.\n// https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name\nconst FORBIDDEN_HEADERS = ['host'];\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xhrTransferHandler.mjs","sources":["../../../../../../../src/providers/s3/utils/client/runtime/xhrTransferHandler.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { withMemoization, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { ConsoleLogger } from '@aws-amplify/core';\nimport { CanceledError } from '../../../../../errors/CanceledError';\nimport { ABORT_ERROR_CODE, ABORT_ERROR_MESSAGE, CANCELED_ERROR_CODE, CANCELED_ERROR_MESSAGE, NETWORK_ERROR_CODE, NETWORK_ERROR_MESSAGE, } from './constants';\nconst logger = new ConsoleLogger('xhr-http-handler');\n/**\n * Base transfer handler implementation using XMLHttpRequest to support upload and download progress events.\n *\n * @param request - The request object.\n * @param options - The request options.\n * @returns A promise that will be resolved with the response object.\n *\n * @internal\n */\nexport const xhrTransferHandler = (request, options) => {\n const { url, method, headers, body } = request;\n const { onDownloadProgress, onUploadProgress, responseType, abortSignal } = options;\n return new Promise((resolve, reject) => {\n let xhr = new XMLHttpRequest();\n xhr.open(method.toUpperCase(), url.toString());\n Object.entries(headers)\n .filter(([header]) => !FORBIDDEN_HEADERS.includes(header))\n .forEach(([header, value]) => {\n xhr.setRequestHeader(header, value);\n });\n xhr.responseType = responseType;\n if (onDownloadProgress) {\n xhr.addEventListener('progress', event => {\n onDownloadProgress(convertToTransferProgressEvent(event));\n logger.debug(event);\n });\n }\n if (onUploadProgress) {\n xhr.upload.addEventListener('progress', event => {\n onUploadProgress(convertToTransferProgressEvent(event));\n logger.debug(event);\n });\n }\n xhr.addEventListener('error', () => {\n const networkError = buildHandlerError(NETWORK_ERROR_MESSAGE, NETWORK_ERROR_CODE);\n logger.error(NETWORK_ERROR_MESSAGE);\n reject(networkError);\n xhr = null; // clean up request\n });\n // Handle browser request cancellation (as opposed to a manual cancellation)\n xhr.addEventListener('abort', () => {\n // The abort event can be triggered after the error or load event. So we need to check if the xhr is null.\n // When request is aborted by AbortSignal, the promise is rejected in the abortSignal's 'abort' event listener.\n if (!xhr || abortSignal?.aborted)\n return;\n // Handle abort request caused by browser instead of AbortController\n // see: https://github.com/axios/axios/issues/537\n const error = buildHandlerError(ABORT_ERROR_MESSAGE, ABORT_ERROR_CODE);\n logger.error(ABORT_ERROR_MESSAGE);\n reject(error);\n xhr = null; // clean up request\n });\n // Skip handling timeout error since we don't have a timeout\n xhr.addEventListener('readystatechange', () => {\n if (!xhr || xhr.readyState !== xhr.DONE) {\n return;\n }\n const onloadend = () => {\n // The load event is triggered after the error/abort/load event. So we need to check if the xhr is null.\n if (!xhr)\n return;\n const responseHeaders = convertResponseHeaders(xhr.getAllResponseHeaders());\n const { responseType: loadEndResponseType } = xhr;\n const responseBlob = xhr.response;\n const responseText = loadEndResponseType === 'text' ? xhr.responseText : '';\n const bodyMixIn = {\n blob: () => Promise.resolve(responseBlob),\n text: withMemoization(() => loadEndResponseType === 'blob'\n ? readBlobAsText(responseBlob)\n : Promise.resolve(responseText)),\n json: () => Promise.reject(\n // S3 does not support JSON response. So fail-fast here with nicer error message.\n new Error('Parsing response to JSON is not implemented. Please use response.text() instead.')),\n };\n const response = {\n statusCode: xhr.status,\n headers: responseHeaders,\n // The xhr.responseType is only set to 'blob' for streaming binary S3 object data. The streaming data is\n // exposed via public interface of Storage.get(). So we need to return the response as a Blob object for\n // backward compatibility. In other cases, the response payload is only used internally, we return it is\n // {@link ResponseBodyMixin}\n body: (xhr.responseType === 'blob'\n ? Object.assign(responseBlob, bodyMixIn)\n : bodyMixIn),\n };\n resolve(response);\n xhr = null; // clean up request\n };\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n // @see https://github.com/axios/axios/blob/9588fcdec8aca45c3ba2f7968988a5d03f23168c/lib/adapters/xhr.js#L98-L99\n setTimeout(onloadend);\n });\n if (abortSignal) {\n const onCanceled = () => {\n // The abort event is triggered after the error or load event. So we need to check if the xhr is null.\n if (!xhr) {\n return;\n }\n const canceledError = new CanceledError({\n name: CANCELED_ERROR_CODE,\n message: CANCELED_ERROR_MESSAGE,\n });\n reject(canceledError);\n xhr.abort();\n xhr = null;\n };\n abortSignal.aborted\n ? onCanceled()\n : abortSignal.addEventListener('abort', onCanceled);\n }\n if (typeof ReadableStream === 'function' &&\n body instanceof ReadableStream) {\n // This does not matter as previous implementation uses Axios which does not support ReadableStream anyway.\n throw new Error('ReadableStream request payload is not supported.');\n }\n xhr.send(body ?? null);\n });\n};\nconst convertToTransferProgressEvent = (event) => ({\n transferredBytes: event.loaded,\n totalBytes: event.lengthComputable ? event.total : undefined,\n});\nconst buildHandlerError = (message, name) => {\n const error = new Error(message);\n error.name = name;\n return error;\n};\n/**\n * Convert xhr.getAllResponseHeaders() string to a Record<string, string>. Note that modern browser already returns\n * header names in lowercase.\n * @param xhrHeaders - string of headers returned from xhr.getAllResponseHeaders()\n */\nconst convertResponseHeaders = (xhrHeaders) => {\n if (!xhrHeaders) {\n return {};\n }\n return xhrHeaders\n .split('\\r\\n')\n .reduce((headerMap, line) => {\n const parts = line.split(': ');\n const header = parts.shift();\n const value = parts.join(': ');\n headerMap[header.toLowerCase()] = value;\n return headerMap;\n }, {});\n};\nconst readBlobAsText = (blob) => {\n const reader = new FileReader();\n return new Promise((resolve, reject) => {\n reader.onloadend = () => {\n if (reader.readyState !== FileReader.DONE) {\n return;\n }\n resolve(reader.result);\n };\n reader.onerror = () => {\n reject(reader.error);\n };\n reader.readAsText(blob);\n });\n};\n// To add more forbidden headers as found set by S3. Intentionally NOT list all of them here to save bundle size.\n// https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name\nconst FORBIDDEN_HEADERS = ['host'];\n"],"names":[],"mappings":"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"}
@@ -27,20 +27,18 @@ const parseXmlNode = (node) => {
27
27
  // Node like <Location>foo</Location> will be converted to { Location: 'foo' }
28
28
  // instead of { Location: { '#text': 'foo' } }.
29
29
  if (isTextOnlyElementNode(node)) {
30
- return node.childNodes[0]?.nodeValue;
30
+ return node.childNodes[0].nodeValue;
31
31
  }
32
32
  const nodeValue = {};
33
33
  // convert attributes
34
- for (let i = 0; i < node.attributes.length; i++) {
35
- const attr = node.attributes[i];
34
+ for (const attr of node.attributes) {
36
35
  if (!isNamespaceAttributeName(attr.nodeName)) {
37
36
  nodeValue[attr.nodeName] = attr.nodeValue;
38
37
  }
39
38
  }
40
39
  // convert child nodes
41
40
  if (node.children.length > 0) {
42
- for (let i = 0; i < node.children.length; i++) {
43
- const child = node.children[i];
41
+ for (const child of node.children) {
44
42
  const childValue = parseXmlNode(child);
45
43
  if (childValue === undefined) {
46
44
  continue;
@@ -67,8 +65,7 @@ const isTextOnlyElementNode = (node) => hasOnlyNamespaceAttributes(node) &&
67
65
  node.children.length === 0 &&
68
66
  node.firstChild?.nodeType === Node.TEXT_NODE;
69
67
  const hasOnlyNamespaceAttributes = (node) => {
70
- for (let i = 0; i < node.attributes.length; i++) {
71
- const attr = node.attributes[i];
68
+ for (const attr of node.attributes) {
72
69
  if (!isNamespaceAttributeName(attr.nodeName)) {
73
70
  return false;
74
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dom.mjs","sources":["../../../../../../../../src/providers/s3/utils/client/runtime/xmlParser/dom.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Drop-in replacement for fast-xml-parser's XmlParser class used in the AWS SDK S3 client XML deserializer. This\n * implementation is not tested against the full xml conformance test suite. It is only tested against the XML responses\n * from S3. This implementation requires the `DOMParser` class in the runtime.\n */\nexport const parser = {\n parse: (xmlStr) => {\n const domParser = new DOMParser();\n const xml = domParser.parseFromString(xmlStr, 'text/xml');\n const parsedObj = parseXmlNode(xml);\n const rootKey = Object.keys(parsedObj)[0];\n return parsedObj[rootKey];\n },\n};\nconst parseXmlNode = (node) => {\n if (isDocumentNode(node)) {\n return {\n [node.documentElement.nodeName]: parseXmlNode(node.documentElement),\n };\n }\n if (node.nodeType === Node.TEXT_NODE) {\n return node.nodeValue?.trim();\n }\n if (isElementNode(node)) {\n // Node like <Location>foo</Location> will be converted to { Location: 'foo' }\n // instead of { Location: { '#text': 'foo' } }.\n if (isTextOnlyElementNode(node)) {\n return node.childNodes[0]?.nodeValue;\n }\n const nodeValue = {};\n // convert attributes\n for (let i = 0; i < node.attributes.length; i++) {\n const attr = node.attributes[i];\n if (!isNamespaceAttributeName(attr.nodeName)) {\n nodeValue[attr.nodeName] = attr.nodeValue;\n }\n }\n // convert child nodes\n if (node.children.length > 0) {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n const childValue = parseXmlNode(child);\n if (childValue === undefined) {\n continue;\n }\n const childName = child.nodeName;\n if (nodeValue[childName] === undefined) {\n nodeValue[childName] = childValue;\n }\n else if (Array.isArray(nodeValue[childName])) {\n nodeValue[childName].push(childValue);\n }\n else {\n nodeValue[childName] = [nodeValue[childName], childValue];\n }\n }\n }\n // Return empty element node as empty string instead of `{}`, which is the default behavior of fast-xml-parser.\n return Object.keys(nodeValue).length === 0 ? '' : nodeValue;\n }\n};\nconst isElementNode = (node) => node.nodeType === Node.ELEMENT_NODE;\nconst isDocumentNode = (node) => node.nodeType === Node.DOCUMENT_NODE;\nconst isTextOnlyElementNode = (node) => hasOnlyNamespaceAttributes(node) &&\n node.children.length === 0 &&\n node.firstChild?.nodeType === Node.TEXT_NODE;\nconst hasOnlyNamespaceAttributes = (node) => {\n for (let i = 0; i < node.attributes.length; i++) {\n const attr = node.attributes[i];\n if (!isNamespaceAttributeName(attr.nodeName)) {\n return false;\n }\n }\n return true;\n};\nconst isNamespaceAttributeName = (name) => name === 'xmlns' || name.startsWith('xmlns:');\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dom.mjs","sources":["../../../../../../../../src/providers/s3/utils/client/runtime/xmlParser/dom.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Drop-in replacement for fast-xml-parser's XmlParser class used in the AWS SDK S3 client XML deserializer. This\n * implementation is not tested against the full xml conformance test suite. It is only tested against the XML responses\n * from S3. This implementation requires the `DOMParser` class in the runtime.\n */\nexport const parser = {\n parse: (xmlStr) => {\n const domParser = new DOMParser();\n const xml = domParser.parseFromString(xmlStr, 'text/xml');\n const parsedObj = parseXmlNode(xml);\n const rootKey = Object.keys(parsedObj)[0];\n return parsedObj[rootKey];\n },\n};\nconst parseXmlNode = (node) => {\n if (isDocumentNode(node)) {\n return {\n [node.documentElement.nodeName]: parseXmlNode(node.documentElement),\n };\n }\n if (node.nodeType === Node.TEXT_NODE) {\n return node.nodeValue?.trim();\n }\n if (isElementNode(node)) {\n // Node like <Location>foo</Location> will be converted to { Location: 'foo' }\n // instead of { Location: { '#text': 'foo' } }.\n if (isTextOnlyElementNode(node)) {\n return node.childNodes[0].nodeValue;\n }\n const nodeValue = {};\n // convert attributes\n for (const attr of node.attributes) {\n if (!isNamespaceAttributeName(attr.nodeName)) {\n nodeValue[attr.nodeName] = attr.nodeValue;\n }\n }\n // convert child nodes\n if (node.children.length > 0) {\n for (const child of node.children) {\n const childValue = parseXmlNode(child);\n if (childValue === undefined) {\n continue;\n }\n const childName = child.nodeName;\n if (nodeValue[childName] === undefined) {\n nodeValue[childName] = childValue;\n }\n else if (Array.isArray(nodeValue[childName])) {\n nodeValue[childName].push(childValue);\n }\n else {\n nodeValue[childName] = [nodeValue[childName], childValue];\n }\n }\n }\n // Return empty element node as empty string instead of `{}`, which is the default behavior of fast-xml-parser.\n return Object.keys(nodeValue).length === 0 ? '' : nodeValue;\n }\n};\nconst isElementNode = (node) => node.nodeType === Node.ELEMENT_NODE;\nconst isDocumentNode = (node) => node.nodeType === Node.DOCUMENT_NODE;\nconst isTextOnlyElementNode = (node) => hasOnlyNamespaceAttributes(node) &&\n node.children.length === 0 &&\n node.firstChild?.nodeType === Node.TEXT_NODE;\nconst hasOnlyNamespaceAttributes = (node) => {\n for (const attr of node.attributes) {\n if (!isNamespaceAttributeName(attr.nodeName)) {\n return false;\n }\n }\n return true;\n};\nconst isNamespaceAttributeName = (name) => name === 'xmlns' || name.startsWith('xmlns:');\n"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ import { XMLParser } from 'fast-xml-parser';
11
11
  */
12
12
  const parser = {
13
13
  parse: (xmlStr) => {
14
- const parser = new XMLParser({
14
+ const xmlParser = new XMLParser({
15
15
  attributeNamePrefix: '',
16
16
  htmlEntities: true,
17
17
  ignoreAttributes: false,
@@ -21,9 +21,9 @@ const parser = {
21
21
  removeNSPrefix: true,
22
22
  tagValueProcessor: (_, val) => val.trim() === '' && val.includes('\n') ? '' : undefined,
23
23
  });
24
- parser.addEntity('#xD', '\r');
25
- parser.addEntity('#10', '\n');
26
- const parsedObj = parser.parse(xmlStr);
24
+ xmlParser.addEntity('#xD', '\r');
25
+ xmlParser.addEntity('#10', '\n');
26
+ const parsedObj = xmlParser.parse(xmlStr);
27
27
  const textNodeName = '#text';
28
28
  const key = Object.keys(parsedObj)[0];
29
29
  const parsedObjToReturn = parsedObj[key];
@@ -42,7 +42,8 @@ const parser = {
42
42
  const getValueFromTextNode = (obj) => {
43
43
  const textNodeName = '#text';
44
44
  for (const key in obj) {
45
- if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== undefined) {
45
+ if (Object.prototype.hasOwnProperty.call(obj, key) &&
46
+ obj[key][textNodeName] !== undefined) {
46
47
  obj[key] = obj[key][textNodeName];
47
48
  }
48
49
  else if (typeof obj[key] === 'object' && obj[key] !== null) {
@@ -1 +1 @@
1
- {"version":3,"file":"pureJs.mjs","sources":["../../../../../../../../src/providers/s3/utils/client/runtime/xmlParser/pureJs.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { XMLParser } from 'fast-xml-parser';\n/**\n * Pure JS XML parser that can be used in Non-browser environments, like React Native and Node.js. This is the same\n * XML parser implementation as used in AWS SDK S3 client. It depends on pure JavaScript XML parser library\n * `fast-xml-parser`.\n *\n * Ref: https://github.com/aws/aws-sdk-js-v3/blob/1e806ba3f4a83c9e3eb0b41a3a7092da93826b8f/clients/client-s3/src/protocols/Aws_restXml.ts#L12938-L12959\n */\nexport const parser = {\n parse: (xmlStr) => {\n const parser = new XMLParser({\n attributeNamePrefix: '',\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n removeNSPrefix: true,\n tagValueProcessor: (_, val) => val.trim() === '' && val.includes('\\n') ? '' : undefined,\n });\n parser.addEntity('#xD', '\\r');\n parser.addEntity('#10', '\\n');\n const parsedObj = parser.parse(xmlStr);\n const textNodeName = '#text';\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return getValueFromTextNode(parsedObjToReturn);\n },\n};\n/**\n * Recursively parses object and populates value is node from \"#text\" key if it's available\n *\n * Ref: https://github.com/aws/aws-sdk-js-v3/blob/6b4bde6f338720abf28b931f8a4506613bd64d3f/packages/smithy-client/src/get-value-from-text-node.ts#L1\n */\nconst getValueFromTextNode = (obj) => {\n const textNodeName = '#text';\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== undefined) {\n obj[key] = obj[key][textNodeName];\n }\n else if (typeof obj[key] === 'object' && obj[key] !== null) {\n obj[key] = getValueFromTextNode(obj[key]);\n }\n }\n return obj;\n};\n"],"names":[],"mappings":";;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG;AACtB,IAAI,KAAK,EAAE,CAAC,MAAM,KAAK;AACvB,QAAQ,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;AACrC,YAAY,mBAAmB,EAAE,EAAE;AACnC,YAAY,YAAY,EAAE,IAAI;AAC9B,YAAY,gBAAgB,EAAE,KAAK;AACnC,YAAY,iBAAiB,EAAE,IAAI;AACnC,YAAY,aAAa,EAAE,KAAK;AAChC,YAAY,UAAU,EAAE,KAAK;AAC7B,YAAY,cAAc,EAAE,IAAI;AAChC,YAAY,iBAAiB,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;AACnG,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACtC,QAAQ,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACtC,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC/C,QAAQ,MAAM,YAAY,GAAG,OAAO,CAAC;AACrC,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,QAAQ,MAAM,iBAAiB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AACjD,QAAQ,IAAI,iBAAiB,CAAC,YAAY,CAAC,EAAE;AAC7C,YAAY,iBAAiB,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACrE,YAAY,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACnD,SAAS;AACT,QAAQ,OAAO,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;AACvD,KAAK;AACL,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,MAAM,oBAAoB,GAAG,CAAC,GAAG,KAAK;AACtC,IAAI,MAAM,YAAY,GAAG,OAAO,CAAC;AACjC,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;AAC3B,QAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE;AAC7E,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;AAC9C,SAAS;AACT,aAAa,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;AACpE,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,SAAS;AACT,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;;;;"}
1
+ {"version":3,"file":"pureJs.mjs","sources":["../../../../../../../../src/providers/s3/utils/client/runtime/xmlParser/pureJs.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { XMLParser } from 'fast-xml-parser';\n/**\n * Pure JS XML parser that can be used in Non-browser environments, like React Native and Node.js. This is the same\n * XML parser implementation as used in AWS SDK S3 client. It depends on pure JavaScript XML parser library\n * `fast-xml-parser`.\n *\n * Ref: https://github.com/aws/aws-sdk-js-v3/blob/1e806ba3f4a83c9e3eb0b41a3a7092da93826b8f/clients/client-s3/src/protocols/Aws_restXml.ts#L12938-L12959\n */\nexport const parser = {\n parse: (xmlStr) => {\n const xmlParser = new XMLParser({\n attributeNamePrefix: '',\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n removeNSPrefix: true,\n tagValueProcessor: (_, val) => val.trim() === '' && val.includes('\\n') ? '' : undefined,\n });\n xmlParser.addEntity('#xD', '\\r');\n xmlParser.addEntity('#10', '\\n');\n const parsedObj = xmlParser.parse(xmlStr);\n const textNodeName = '#text';\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return getValueFromTextNode(parsedObjToReturn);\n },\n};\n/**\n * Recursively parses object and populates value is node from \"#text\" key if it's available\n *\n * Ref: https://github.com/aws/aws-sdk-js-v3/blob/6b4bde6f338720abf28b931f8a4506613bd64d3f/packages/smithy-client/src/get-value-from-text-node.ts#L1\n */\nconst getValueFromTextNode = (obj) => {\n const textNodeName = '#text';\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) &&\n obj[key][textNodeName] !== undefined) {\n obj[key] = obj[key][textNodeName];\n }\n else if (typeof obj[key] === 'object' && obj[key] !== null) {\n obj[key] = getValueFromTextNode(obj[key]);\n }\n }\n return obj;\n};\n"],"names":[],"mappings":";;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG;AACtB,IAAI,KAAK,EAAE,CAAC,MAAM,KAAK;AACvB,QAAQ,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC;AACxC,YAAY,mBAAmB,EAAE,EAAE;AACnC,YAAY,YAAY,EAAE,IAAI;AAC9B,YAAY,gBAAgB,EAAE,KAAK;AACnC,YAAY,iBAAiB,EAAE,IAAI;AACnC,YAAY,aAAa,EAAE,KAAK;AAChC,YAAY,UAAU,EAAE,KAAK;AAC7B,YAAY,cAAc,EAAE,IAAI;AAChC,YAAY,iBAAiB,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;AACnG,SAAS,CAAC,CAAC;AACX,QAAQ,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACzC,QAAQ,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACzC,QAAQ,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAClD,QAAQ,MAAM,YAAY,GAAG,OAAO,CAAC;AACrC,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,QAAQ,MAAM,iBAAiB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AACjD,QAAQ,IAAI,iBAAiB,CAAC,YAAY,CAAC,EAAE;AAC7C,YAAY,iBAAiB,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACrE,YAAY,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACnD,SAAS;AACT,QAAQ,OAAO,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;AACvD,KAAK;AACL,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,MAAM,oBAAoB,GAAG,CAAC,GAAG,KAAK;AACtC,IAAI,MAAM,YAAY,GAAG,OAAO,CAAC;AACjC,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;AAC3B,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC1D,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE;AAClD,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;AAC9C,SAAS;AACT,aAAa,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;AACpE,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,SAAS;AACT,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;;;;"}