@aws-amplify/storage 6.6.10 → 6.6.11-storage-browser-integrity.2a9053f.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/errors/IntegrityError.js +22 -0
- package/dist/cjs/errors/IntegrityError.js.map +1 -0
- package/dist/cjs/errors/constants.js +8 -0
- package/dist/cjs/errors/constants.js.map +1 -0
- package/dist/cjs/errors/types/validation.js +16 -0
- package/dist/cjs/errors/types/validation.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internals/apis/copy.js +33 -0
- package/dist/cjs/internals/apis/copy.js.map +1 -0
- package/dist/cjs/internals/apis/downloadData.js +25 -0
- package/dist/cjs/internals/apis/downloadData.js.map +1 -0
- package/dist/cjs/internals/apis/getDataAccess.js +60 -0
- package/dist/cjs/internals/apis/getDataAccess.js.map +1 -0
- package/dist/cjs/internals/apis/getProperties.js +24 -0
- package/dist/cjs/internals/apis/getProperties.js.map +1 -0
- package/dist/cjs/internals/apis/getUrl.js +29 -0
- package/dist/cjs/internals/apis/getUrl.js.map +1 -0
- package/dist/cjs/internals/apis/list.js +32 -0
- package/dist/cjs/internals/apis/list.js.map +1 -0
- package/dist/cjs/internals/apis/listCallerAccessGrants.js +72 -0
- package/dist/cjs/internals/apis/listCallerAccessGrants.js.map +1 -0
- package/dist/cjs/internals/apis/remove.js +24 -0
- package/dist/cjs/internals/apis/remove.js.map +1 -0
- package/dist/cjs/internals/apis/uploadData.js +34 -0
- package/dist/cjs/internals/apis/uploadData.js.map +1 -0
- package/dist/cjs/internals/index.js +32 -0
- package/dist/cjs/internals/index.js.map +1 -0
- package/dist/cjs/internals/locationCredentialsStore/constants.js +9 -0
- package/dist/cjs/internals/locationCredentialsStore/constants.js.map +1 -0
- package/dist/cjs/internals/locationCredentialsStore/create.js +36 -0
- package/dist/cjs/internals/locationCredentialsStore/create.js.map +1 -0
- package/dist/cjs/internals/locationCredentialsStore/index.js +9 -0
- package/dist/cjs/internals/locationCredentialsStore/index.js.map +1 -0
- package/dist/cjs/internals/locationCredentialsStore/registry.js +57 -0
- package/dist/cjs/internals/locationCredentialsStore/registry.js.map +1 -0
- package/dist/cjs/internals/locationCredentialsStore/store.js +100 -0
- package/dist/cjs/internals/locationCredentialsStore/store.js.map +1 -0
- package/dist/cjs/internals/managedAuthConfigAdapter/createListLocationsHandler.js +15 -0
- package/dist/cjs/internals/managedAuthConfigAdapter/createListLocationsHandler.js.map +1 -0
- package/dist/cjs/internals/managedAuthConfigAdapter/createLocationCredentialsHandler.js +29 -0
- package/dist/cjs/internals/managedAuthConfigAdapter/createLocationCredentialsHandler.js.map +1 -0
- package/dist/cjs/internals/managedAuthConfigAdapter/createManagedAuthConfigAdapter.js +32 -0
- package/dist/cjs/internals/managedAuthConfigAdapter/createManagedAuthConfigAdapter.js.map +1 -0
- package/dist/cjs/internals/managedAuthConfigAdapter/index.js +9 -0
- package/dist/cjs/internals/managedAuthConfigAdapter/index.js.map +1 -0
- package/dist/cjs/internals/types/common.js +6 -0
- package/dist/cjs/internals/types/common.js.map +1 -0
- package/dist/cjs/internals/types/credentials.js +6 -0
- package/dist/cjs/internals/types/credentials.js.map +1 -0
- package/dist/cjs/internals/types/inputs.js +6 -0
- package/dist/cjs/internals/types/inputs.js.map +1 -0
- package/dist/cjs/internals/types/options.js +3 -0
- package/dist/cjs/internals/types/options.js.map +1 -0
- package/dist/cjs/internals/types/outputs.js +6 -0
- package/dist/cjs/internals/types/outputs.js.map +1 -0
- package/dist/cjs/internals/utils/constants.js +9 -0
- package/dist/cjs/internals/utils/constants.js.map +1 -0
- package/dist/cjs/providers/s3/apis/downloadData.js +2 -47
- package/dist/cjs/providers/s3/apis/downloadData.js.map +1 -1
- package/dist/cjs/providers/s3/apis/internal/copy.js +56 -8
- package/dist/cjs/providers/s3/apis/internal/copy.js.map +1 -1
- package/dist/cjs/providers/s3/apis/internal/downloadData.js +59 -0
- package/dist/cjs/providers/s3/apis/internal/downloadData.js.map +1 -0
- package/dist/cjs/providers/s3/apis/internal/getProperties.js +5 -4
- package/dist/cjs/providers/s3/apis/internal/getProperties.js.map +1 -1
- package/dist/cjs/providers/s3/apis/internal/getUrl.js +5 -3
- package/dist/cjs/providers/s3/apis/internal/getUrl.js.map +1 -1
- package/dist/cjs/providers/s3/apis/internal/list.js +20 -4
- package/dist/cjs/providers/s3/apis/internal/list.js.map +1 -1
- package/dist/cjs/providers/s3/apis/internal/remove.js +5 -4
- package/dist/cjs/providers/s3/apis/internal/remove.js.map +1 -1
- package/dist/cjs/providers/s3/apis/internal/uploadData/byteLength.js.map +1 -0
- package/dist/cjs/providers/s3/apis/{uploadData → internal/uploadData}/index.js +7 -7
- package/dist/cjs/providers/s3/apis/internal/uploadData/index.js.map +1 -0
- package/dist/cjs/providers/s3/apis/{uploadData → internal/uploadData}/multipart/calculatePartSize.js +1 -1
- package/dist/cjs/providers/s3/apis/internal/uploadData/multipart/calculatePartSize.js.map +1 -0
- package/dist/cjs/providers/s3/apis/{uploadData → internal/uploadData}/multipart/getDataChunker.js +2 -2
- package/dist/cjs/providers/s3/apis/internal/uploadData/multipart/getDataChunker.js.map +1 -0
- package/dist/cjs/providers/s3/apis/internal/uploadData/multipart/index.js.map +1 -0
- package/dist/cjs/providers/s3/apis/{uploadData → internal/uploadData}/multipart/initialUpload.js +26 -5
- package/dist/cjs/providers/s3/apis/internal/uploadData/multipart/initialUpload.js.map +1 -0
- package/dist/cjs/providers/s3/apis/internal/uploadData/multipart/progressTracker.js.map +1 -0
- package/dist/cjs/providers/s3/apis/{uploadData → internal/uploadData}/multipart/uploadCache.js +5 -4
- package/dist/cjs/providers/s3/apis/internal/uploadData/multipart/uploadCache.js.map +1 -0
- package/dist/cjs/providers/s3/apis/{uploadData → internal/uploadData}/multipart/uploadHandlers.js +33 -14
- package/dist/cjs/providers/s3/apis/internal/uploadData/multipart/uploadHandlers.js.map +1 -0
- package/dist/cjs/providers/s3/apis/{uploadData → internal/uploadData}/multipart/uploadPartExecutor.js +21 -11
- package/dist/cjs/providers/s3/apis/internal/uploadData/multipart/uploadPartExecutor.js.map +1 -0
- package/dist/cjs/providers/s3/apis/{uploadData → internal/uploadData}/putObjectJob.js +26 -11
- package/dist/cjs/providers/s3/apis/internal/uploadData/putObjectJob.js.map +1 -0
- package/dist/cjs/providers/s3/apis/internal/uploadData/validateObjectNotExists.js +25 -0
- package/dist/cjs/providers/s3/apis/internal/uploadData/validateObjectNotExists.js.map +1 -0
- package/dist/cjs/providers/s3/apis/uploadData.js +12 -0
- package/dist/cjs/providers/s3/apis/uploadData.js.map +1 -0
- package/dist/cjs/providers/s3/index.js +3 -1
- package/dist/cjs/providers/s3/index.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/s3control/base.js +70 -0
- package/dist/cjs/providers/s3/utils/client/s3control/base.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/s3control/getDataAccess.js +58 -0
- package/dist/cjs/providers/s3/utils/client/s3control/getDataAccess.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/s3control/index.js +11 -0
- package/dist/cjs/providers/s3/utils/client/s3control/index.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/s3control/listCallerAccessGrants.js +63 -0
- package/dist/cjs/providers/s3/utils/client/s3control/listCallerAccessGrants.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/s3control/types.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/{abortMultipartUpload.js → s3data/abortMultipartUpload.js} +14 -3
- package/dist/cjs/providers/s3/utils/client/s3data/abortMultipartUpload.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/{base.js → s3data/base.js} +25 -3
- package/dist/cjs/providers/s3/utils/client/s3data/base.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/{completeMultipartUpload.js → s3data/completeMultipartUpload.js} +29 -13
- package/dist/cjs/providers/s3/utils/client/s3data/completeMultipartUpload.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/{copyObject.js → s3data/copyObject.js} +27 -3
- package/dist/cjs/providers/s3/utils/client/s3data/copyObject.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/{createMultipartUpload.js → s3data/createMultipartUpload.js} +15 -3
- package/dist/cjs/providers/s3/utils/client/s3data/createMultipartUpload.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/{deleteObject.js → s3data/deleteObject.js} +12 -3
- package/dist/cjs/providers/s3/utils/client/s3data/deleteObject.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/{getObject.js → s3data/getObject.js} +12 -3
- package/dist/cjs/providers/s3/utils/client/s3data/getObject.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/{headObject.js → s3data/headObject.js} +12 -3
- package/dist/cjs/providers/s3/utils/client/s3data/headObject.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/s3data/index.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/{listObjectsV2.js → s3data/listObjectsV2.js} +15 -3
- package/dist/cjs/providers/s3/utils/client/s3data/listObjectsV2.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/{listParts.js → s3data/listParts.js} +3 -8
- package/dist/cjs/providers/s3/utils/client/s3data/listParts.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/{putObject.js → s3data/putObject.js} +13 -3
- package/dist/cjs/providers/s3/utils/client/s3data/putObject.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/s3data/types.js +6 -0
- package/dist/cjs/providers/s3/utils/client/s3data/types.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/{uploadPart.js → s3data/uploadPart.js} +14 -4
- package/dist/cjs/providers/s3/utils/client/s3data/uploadPart.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/utils/createRetryDecider.js +57 -0
- package/dist/cjs/providers/s3/utils/client/utils/createRetryDecider.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/utils/deserializeHelpers.js +46 -1
- package/dist/cjs/providers/s3/utils/client/utils/deserializeHelpers.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/utils/index.js +7 -2
- package/dist/cjs/providers/s3/utils/client/utils/index.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/utils/integrityHelpers.js +60 -0
- package/dist/cjs/providers/s3/utils/client/utils/integrityHelpers.js.map +1 -0
- package/dist/cjs/providers/s3/utils/client/utils/parsePayload.js +20 -6
- package/dist/cjs/providers/s3/utils/client/utils/parsePayload.js.map +1 -1
- package/dist/cjs/providers/s3/utils/constants.js +3 -0
- package/dist/cjs/providers/s3/utils/constants.js.map +1 -1
- package/dist/cjs/providers/s3/utils/crc32.js +37 -0
- package/dist/cjs/providers/s3/utils/crc32.js.map +1 -0
- package/dist/cjs/providers/s3/utils/crc32.native.js +11 -0
- package/dist/cjs/providers/s3/utils/crc32.native.js.map +1 -0
- package/dist/cjs/providers/s3/utils/index.js +3 -1
- package/dist/cjs/providers/s3/utils/index.js.map +1 -1
- package/dist/cjs/providers/s3/utils/resolveIdentityId.js +14 -0
- package/dist/cjs/providers/s3/utils/resolveIdentityId.js.map +1 -0
- package/dist/cjs/providers/s3/utils/resolveS3ConfigAndInput.js +59 -13
- package/dist/cjs/providers/s3/utils/resolveS3ConfigAndInput.js.map +1 -1
- package/dist/cjs/providers/s3/utils/validateBucketOwnerID.js +17 -0
- package/dist/cjs/providers/s3/utils/validateBucketOwnerID.js.map +1 -0
- package/dist/cjs/providers/s3/utils/validateMultipartUploadXML.js +27 -0
- package/dist/cjs/providers/s3/utils/validateMultipartUploadXML.js.map +1 -0
- package/dist/cjs/providers/s3/utils/validateObjectUrl.js +24 -0
- package/dist/cjs/providers/s3/utils/validateObjectUrl.js.map +1 -0
- package/dist/cjs/providers/s3/utils/validateStorageOperationInput.js +4 -1
- package/dist/cjs/providers/s3/utils/validateStorageOperationInput.js.map +1 -1
- package/dist/cjs/providers/s3/utils/validateStorageOperationInputWithPrefix.js +4 -1
- package/dist/cjs/providers/s3/utils/validateStorageOperationInputWithPrefix.js.map +1 -1
- package/dist/esm/errors/IntegrityError.d.ts +5 -0
- package/dist/esm/errors/IntegrityError.mjs +20 -0
- package/dist/esm/errors/IntegrityError.mjs.map +1 -0
- package/dist/esm/errors/constants.d.ts +1 -0
- package/dist/esm/errors/constants.mjs +6 -0
- package/dist/esm/errors/constants.mjs.map +1 -0
- package/dist/esm/errors/types/validation.d.ts +5 -1
- package/dist/esm/errors/types/validation.mjs +16 -0
- package/dist/esm/errors/types/validation.mjs.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.mjs +2 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/internals/apis/copy.d.ts +5 -0
- package/dist/esm/internals/apis/copy.mjs +31 -0
- package/dist/esm/internals/apis/copy.mjs.map +1 -0
- package/dist/esm/internals/apis/downloadData.d.ts +6 -0
- package/dist/esm/internals/apis/downloadData.mjs +23 -0
- package/dist/esm/internals/apis/downloadData.mjs.map +1 -0
- package/dist/esm/internals/apis/getDataAccess.d.ts +6 -0
- package/dist/esm/internals/apis/getDataAccess.mjs +60 -0
- package/dist/esm/internals/apis/getDataAccess.mjs.map +1 -0
- package/dist/esm/internals/apis/getProperties.d.ts +6 -0
- package/dist/esm/internals/apis/getProperties.mjs +22 -0
- package/dist/esm/internals/apis/getProperties.mjs.map +1 -0
- package/dist/esm/internals/apis/getUrl.d.ts +5 -0
- package/dist/esm/internals/apis/getUrl.mjs +27 -0
- package/dist/esm/internals/apis/getUrl.mjs.map +1 -0
- package/dist/esm/internals/apis/list.d.ts +10 -0
- package/dist/esm/internals/apis/list.mjs +30 -0
- package/dist/esm/internals/apis/list.mjs.map +1 -0
- package/dist/esm/internals/apis/listCallerAccessGrants.d.ts +6 -0
- package/dist/esm/internals/apis/listCallerAccessGrants.mjs +72 -0
- package/dist/esm/internals/apis/listCallerAccessGrants.mjs.map +1 -0
- package/dist/esm/internals/apis/remove.d.ts +6 -0
- package/dist/esm/internals/apis/remove.mjs +22 -0
- package/dist/esm/internals/apis/remove.mjs.map +1 -0
- package/dist/esm/internals/apis/uploadData.d.ts +5 -0
- package/dist/esm/internals/apis/uploadData.mjs +32 -0
- package/dist/esm/internals/apis/uploadData.mjs.map +1 -0
- package/dist/esm/internals/index.d.ts +18 -0
- package/dist/esm/internals/index.mjs +12 -0
- package/dist/esm/internals/index.mjs.map +1 -0
- package/dist/esm/internals/locationCredentialsStore/constants.d.ts +2 -0
- package/dist/esm/internals/locationCredentialsStore/constants.mjs +7 -0
- package/dist/esm/internals/locationCredentialsStore/constants.mjs.map +1 -0
- package/dist/esm/internals/locationCredentialsStore/create.d.ts +2 -0
- package/dist/esm/internals/locationCredentialsStore/create.mjs +34 -0
- package/dist/esm/internals/locationCredentialsStore/create.mjs.map +1 -0
- package/dist/esm/internals/locationCredentialsStore/index.d.ts +1 -0
- package/dist/esm/internals/locationCredentialsStore/index.mjs +2 -0
- package/dist/esm/internals/locationCredentialsStore/registry.d.ts +23 -0
- package/dist/esm/internals/locationCredentialsStore/registry.mjs +53 -0
- package/dist/esm/internals/locationCredentialsStore/registry.mjs.map +1 -0
- package/dist/esm/internals/locationCredentialsStore/store.d.ts +36 -0
- package/dist/esm/internals/locationCredentialsStore/store.mjs +96 -0
- package/dist/esm/internals/locationCredentialsStore/store.mjs.map +1 -0
- package/dist/esm/internals/managedAuthConfigAdapter/createListLocationsHandler.d.ts +8 -0
- package/dist/esm/internals/managedAuthConfigAdapter/createListLocationsHandler.mjs +13 -0
- package/dist/esm/internals/managedAuthConfigAdapter/createListLocationsHandler.mjs.map +1 -0
- package/dist/esm/internals/managedAuthConfigAdapter/createLocationCredentialsHandler.d.ts +8 -0
- package/dist/esm/internals/managedAuthConfigAdapter/createLocationCredentialsHandler.mjs +27 -0
- package/dist/esm/internals/managedAuthConfigAdapter/createLocationCredentialsHandler.mjs.map +1 -0
- package/dist/esm/internals/managedAuthConfigAdapter/createManagedAuthConfigAdapter.d.ts +19 -0
- package/dist/esm/internals/managedAuthConfigAdapter/createManagedAuthConfigAdapter.mjs +30 -0
- package/dist/esm/internals/managedAuthConfigAdapter/createManagedAuthConfigAdapter.mjs.map +1 -0
- package/dist/esm/internals/managedAuthConfigAdapter/index.d.ts +1 -0
- package/dist/esm/internals/managedAuthConfigAdapter/index.mjs +2 -0
- package/dist/esm/internals/managedAuthConfigAdapter/index.mjs.map +1 -0
- package/dist/esm/internals/types/common.d.ts +16 -0
- package/dist/esm/internals/types/common.mjs +2 -0
- package/dist/esm/internals/types/common.mjs.map +1 -0
- package/dist/esm/internals/types/credentials.d.ts +86 -0
- package/dist/esm/internals/types/credentials.mjs +2 -0
- package/dist/esm/internals/types/credentials.mjs.map +1 -0
- package/dist/esm/internals/types/inputs.d.ts +92 -0
- package/dist/esm/internals/types/inputs.mjs +2 -0
- package/dist/esm/internals/types/inputs.mjs.map +1 -0
- package/dist/esm/internals/types/options.mjs +2 -0
- package/dist/esm/internals/types/options.mjs.map +1 -0
- package/dist/esm/internals/types/outputs.d.ts +38 -0
- package/dist/esm/internals/types/outputs.mjs +2 -0
- package/dist/esm/internals/types/outputs.mjs.map +1 -0
- package/dist/esm/internals/utils/constants.d.ts +2 -0
- package/dist/esm/internals/utils/constants.mjs +7 -0
- package/dist/esm/internals/utils/constants.mjs.map +1 -0
- package/dist/esm/providers/s3/apis/downloadData.mjs +2 -66
- package/dist/esm/providers/s3/apis/downloadData.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/index.mjs +1 -1
- package/dist/esm/providers/s3/apis/internal/copy.d.ts +3 -2
- package/dist/esm/providers/s3/apis/internal/copy.mjs +67 -18
- package/dist/esm/providers/s3/apis/internal/copy.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/internal/downloadData.d.ts +8 -0
- package/dist/esm/providers/s3/apis/internal/downloadData.mjs +77 -0
- package/dist/esm/providers/s3/apis/internal/downloadData.mjs.map +1 -0
- package/dist/esm/providers/s3/apis/internal/getProperties.d.ts +3 -2
- package/dist/esm/providers/s3/apis/internal/getProperties.mjs +16 -14
- package/dist/esm/providers/s3/apis/internal/getProperties.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/internal/getUrl.d.ts +3 -2
- package/dist/esm/providers/s3/apis/internal/getUrl.mjs +16 -13
- package/dist/esm/providers/s3/apis/internal/getUrl.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/internal/list.d.ts +4 -2
- package/dist/esm/providers/s3/apis/internal/list.mjs +31 -14
- package/dist/esm/providers/s3/apis/internal/list.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/internal/remove.d.ts +3 -2
- package/dist/esm/providers/s3/apis/internal/remove.mjs +16 -14
- package/dist/esm/providers/s3/apis/internal/remove.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/internal/uploadData/byteLength.mjs.map +1 -0
- package/dist/esm/providers/s3/apis/internal/uploadData/index.d.ts +3 -0
- package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/index.mjs +9 -9
- package/dist/esm/providers/s3/apis/internal/uploadData/index.mjs.map +1 -0
- package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/multipart/calculatePartSize.mjs +1 -1
- package/dist/esm/providers/s3/apis/internal/uploadData/multipart/calculatePartSize.mjs.map +1 -0
- package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/multipart/getDataChunker.d.ts +1 -1
- package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/multipart/getDataChunker.mjs +2 -2
- package/dist/esm/providers/s3/apis/internal/uploadData/multipart/getDataChunker.mjs.map +1 -0
- package/dist/esm/providers/s3/apis/internal/uploadData/multipart/index.mjs.map +1 -0
- package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/multipart/initialUpload.d.ts +6 -4
- package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/multipart/initialUpload.mjs +37 -16
- package/dist/esm/providers/s3/apis/internal/uploadData/multipart/initialUpload.mjs.map +1 -0
- package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/multipart/progressTracker.d.ts +1 -1
- package/dist/esm/providers/s3/apis/internal/uploadData/multipart/progressTracker.mjs.map +1 -0
- package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/multipart/uploadCache.d.ts +4 -2
- package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/multipart/uploadCache.mjs +16 -15
- package/dist/esm/providers/s3/apis/internal/uploadData/multipart/uploadCache.mjs.map +1 -0
- package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/multipart/uploadHandlers.d.ts +2 -2
- package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/multipart/uploadHandlers.mjs +45 -26
- package/dist/esm/providers/s3/apis/internal/uploadData/multipart/uploadHandlers.mjs.map +1 -0
- package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/multipart/uploadPartExecutor.d.ts +6 -4
- package/dist/esm/providers/s3/apis/internal/uploadData/multipart/uploadPartExecutor.mjs +73 -0
- package/dist/esm/providers/s3/apis/internal/uploadData/multipart/uploadPartExecutor.mjs.map +1 -0
- package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/putObjectJob.d.ts +2 -2
- package/dist/esm/providers/s3/apis/internal/uploadData/putObjectJob.mjs +83 -0
- package/dist/esm/providers/s3/apis/internal/uploadData/putObjectJob.mjs.map +1 -0
- package/dist/esm/providers/s3/apis/internal/uploadData/validateObjectNotExists.d.ts +3 -0
- package/dist/esm/providers/s3/apis/internal/uploadData/validateObjectNotExists.mjs +34 -0
- package/dist/esm/providers/s3/apis/internal/uploadData/validateObjectNotExists.mjs.map +1 -0
- package/dist/esm/providers/s3/apis/{uploadData/index.d.ts → uploadData.d.ts} +1 -1
- package/dist/esm/providers/s3/apis/uploadData.mjs +10 -0
- package/dist/esm/providers/s3/apis/uploadData.mjs.map +1 -0
- package/dist/esm/providers/s3/index.d.ts +1 -0
- package/dist/esm/providers/s3/index.mjs +2 -1
- package/dist/esm/providers/s3/index.mjs.map +1 -1
- package/dist/esm/providers/s3/types/options.d.ts +34 -1
- package/dist/esm/providers/s3/utils/client/s3control/base.d.ts +56 -0
- package/dist/esm/providers/s3/utils/client/s3control/base.mjs +74 -0
- package/dist/esm/providers/s3/utils/client/s3control/base.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/s3control/getDataAccess.d.ts +26 -0
- package/dist/esm/providers/s3/utils/client/s3control/getDataAccess.mjs +63 -0
- package/dist/esm/providers/s3/utils/client/s3control/getDataAccess.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/s3control/index.d.ts +2 -0
- package/dist/esm/providers/s3/utils/client/s3control/index.mjs +3 -0
- package/dist/esm/providers/s3/utils/client/s3control/index.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/s3control/listCallerAccessGrants.d.ts +26 -0
- package/dist/esm/providers/s3/utils/client/s3control/listCallerAccessGrants.mjs +67 -0
- package/dist/esm/providers/s3/utils/client/s3control/listCallerAccessGrants.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/s3control/types.d.ts +188 -0
- package/dist/esm/providers/s3/utils/client/{abortMultipartUpload.d.ts → s3data/abortMultipartUpload.d.ts} +5 -5
- package/dist/esm/providers/s3/utils/client/{abortMultipartUpload.mjs → s3data/abortMultipartUpload.mjs} +17 -7
- package/dist/esm/providers/s3/utils/client/s3data/abortMultipartUpload.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/{base.d.ts → s3data/base.d.ts} +23 -1
- package/dist/esm/providers/s3/utils/client/{base.mjs → s3data/base.mjs} +29 -6
- package/dist/esm/providers/s3/utils/client/s3data/base.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/{completeMultipartUpload.d.ts → s3data/completeMultipartUpload.d.ts} +6 -6
- package/dist/esm/providers/s3/utils/client/{completeMultipartUpload.mjs → s3data/completeMultipartUpload.mjs} +32 -16
- package/dist/esm/providers/s3/utils/client/s3data/completeMultipartUpload.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/{copyObject.d.ts → s3data/copyObject.d.ts} +6 -5
- package/dist/esm/providers/s3/utils/client/s3data/copyObject.mjs +71 -0
- package/dist/esm/providers/s3/utils/client/s3data/copyObject.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/{createMultipartUpload.d.ts → s3data/createMultipartUpload.d.ts} +4 -4
- package/dist/esm/providers/s3/utils/client/{createMultipartUpload.mjs → s3data/createMultipartUpload.mjs} +19 -7
- package/dist/esm/providers/s3/utils/client/s3data/createMultipartUpload.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/{deleteObject.d.ts → s3data/deleteObject.d.ts} +5 -5
- package/dist/esm/providers/s3/utils/client/{deleteObject.mjs → s3data/deleteObject.mjs} +15 -7
- package/dist/esm/providers/s3/utils/client/s3data/deleteObject.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/{getObject.d.ts → s3data/getObject.d.ts} +5 -5
- package/dist/esm/providers/s3/utils/client/{getObject.mjs → s3data/getObject.mjs} +16 -8
- package/dist/esm/providers/s3/utils/client/s3data/getObject.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/{headObject.d.ts → s3data/headObject.d.ts} +5 -5
- package/dist/esm/providers/s3/utils/client/{headObject.mjs → s3data/headObject.mjs} +15 -7
- package/dist/esm/providers/s3/utils/client/s3data/headObject.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/{listObjectsV2.d.ts → s3data/listObjectsV2.d.ts} +4 -4
- package/dist/esm/providers/s3/utils/client/{listObjectsV2.mjs → s3data/listObjectsV2.mjs} +19 -7
- package/dist/esm/providers/s3/utils/client/s3data/listObjectsV2.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/{listParts.d.ts → s3data/listParts.d.ts} +4 -4
- package/dist/esm/providers/s3/utils/client/{listParts.mjs → s3data/listParts.mjs} +6 -11
- package/dist/esm/providers/s3/utils/client/s3data/listParts.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/{putObject.d.ts → s3data/putObject.d.ts} +5 -5
- package/dist/esm/providers/s3/utils/client/{putObject.mjs → s3data/putObject.mjs} +16 -7
- package/dist/esm/providers/s3/utils/client/s3data/putObject.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/s3data/types.mjs +2 -0
- package/dist/esm/providers/s3/utils/client/s3data/types.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/{uploadPart.d.ts → s3data/uploadPart.d.ts} +5 -5
- package/dist/esm/providers/s3/utils/client/{uploadPart.mjs → s3data/uploadPart.mjs} +17 -8
- package/dist/esm/providers/s3/utils/client/s3data/uploadPart.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/utils/createRetryDecider.d.ts +22 -0
- package/dist/esm/providers/s3/utils/client/utils/createRetryDecider.mjs +55 -0
- package/dist/esm/providers/s3/utils/client/utils/createRetryDecider.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.d.ts +24 -0
- package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.mjs +44 -1
- package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/utils/index.d.ts +4 -2
- package/dist/esm/providers/s3/utils/client/utils/index.mjs +4 -2
- package/dist/esm/providers/s3/utils/client/utils/index.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/utils/integrityHelpers.d.ts +20 -0
- package/dist/esm/providers/s3/utils/client/utils/integrityHelpers.mjs +54 -0
- package/dist/esm/providers/s3/utils/client/utils/integrityHelpers.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/client/utils/parsePayload.d.ts +16 -1
- package/dist/esm/providers/s3/utils/client/utils/parsePayload.mjs +19 -5
- package/dist/esm/providers/s3/utils/client/utils/parsePayload.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/constants.d.ts +3 -0
- package/dist/esm/providers/s3/utils/constants.mjs +3 -0
- package/dist/esm/providers/s3/utils/constants.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/crc32.d.ts +6 -0
- package/dist/esm/providers/s3/utils/crc32.mjs +34 -0
- package/dist/esm/providers/s3/utils/crc32.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/crc32.native.d.ts +2 -0
- package/dist/esm/providers/s3/utils/crc32.native.mjs +8 -0
- package/dist/esm/providers/s3/utils/crc32.native.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/index.d.ts +1 -0
- package/dist/esm/providers/s3/utils/index.mjs +1 -0
- package/dist/esm/providers/s3/utils/index.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/resolveIdentityId.d.ts +1 -0
- package/dist/esm/providers/s3/utils/resolveIdentityId.mjs +12 -0
- package/dist/esm/providers/s3/utils/resolveIdentityId.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.d.ts +10 -2
- package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.mjs +57 -11
- package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/validateBucketOwnerID.d.ts +1 -0
- package/dist/esm/providers/s3/utils/validateBucketOwnerID.mjs +15 -0
- package/dist/esm/providers/s3/utils/validateBucketOwnerID.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/validateMultipartUploadXML.d.ts +2 -0
- package/dist/esm/providers/s3/utils/validateMultipartUploadXML.mjs +30 -0
- package/dist/esm/providers/s3/utils/validateMultipartUploadXML.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/validateObjectUrl.d.ts +5 -0
- package/dist/esm/providers/s3/utils/validateObjectUrl.mjs +22 -0
- package/dist/esm/providers/s3/utils/validateObjectUrl.mjs.map +1 -0
- package/dist/esm/providers/s3/utils/validateStorageOperationInput.mjs +4 -1
- package/dist/esm/providers/s3/utils/validateStorageOperationInput.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/validateStorageOperationInputWithPrefix.mjs +4 -1
- package/dist/esm/providers/s3/utils/validateStorageOperationInputWithPrefix.mjs.map +1 -1
- package/dist/esm/types/inputs.d.ts +3 -7
- package/internals/package.json +7 -0
- package/package.json +118 -107
- package/src/errors/IntegrityError.ts +25 -0
- package/src/errors/constants.ts +4 -0
- package/src/errors/types/validation.ts +16 -0
- package/src/index.ts +2 -0
- package/src/internals/apis/copy.ts +33 -0
- package/src/internals/apis/downloadData.ts +24 -0
- package/src/internals/apis/getDataAccess.ts +82 -0
- package/src/internals/apis/getProperties.ts +26 -0
- package/src/internals/apis/getUrl.ts +30 -0
- package/src/internals/apis/list.ts +46 -0
- package/src/internals/apis/listCallerAccessGrants.ts +95 -0
- package/src/internals/apis/remove.ts +24 -0
- package/src/internals/apis/uploadData.ts +34 -0
- package/src/internals/index.ts +67 -0
- package/src/internals/locationCredentialsStore/constants.ts +5 -0
- package/src/internals/locationCredentialsStore/create.ts +54 -0
- package/src/internals/locationCredentialsStore/index.ts +4 -0
- package/src/internals/locationCredentialsStore/registry.ts +89 -0
- package/src/internals/locationCredentialsStore/store.ts +159 -0
- package/src/internals/managedAuthConfigAdapter/createListLocationsHandler.ts +21 -0
- package/src/internals/managedAuthConfigAdapter/createLocationCredentialsHandler.ts +40 -0
- package/src/internals/managedAuthConfigAdapter/createManagedAuthConfigAdapter.ts +53 -0
- package/src/internals/managedAuthConfigAdapter/index.ts +8 -0
- package/src/internals/types/common.ts +22 -0
- package/src/internals/types/credentials.ts +109 -0
- package/src/internals/types/inputs.ts +153 -0
- package/src/internals/types/options.ts +2 -0
- package/src/internals/types/outputs.ts +60 -0
- package/src/internals/utils/constants.ts +5 -0
- package/src/providers/s3/apis/downloadData.ts +3 -84
- package/src/providers/s3/apis/internal/copy.ts +71 -15
- package/src/providers/s3/apis/internal/downloadData.ts +96 -0
- package/src/providers/s3/apis/internal/getProperties.ts +10 -5
- package/src/providers/s3/apis/internal/getUrl.ts +9 -9
- package/src/providers/s3/apis/internal/list.ts +38 -17
- package/src/providers/s3/apis/internal/remove.ts +9 -10
- package/src/providers/s3/apis/internal/uploadData/index.ts +53 -0
- package/src/providers/s3/apis/{uploadData → internal/uploadData}/multipart/calculatePartSize.ts +4 -1
- package/src/providers/s3/apis/{uploadData → internal/uploadData}/multipart/getDataChunker.ts +3 -3
- package/src/providers/s3/apis/{uploadData → internal/uploadData}/multipart/initialUpload.ts +40 -5
- package/src/providers/s3/apis/{uploadData → internal/uploadData}/multipart/progressTracker.ts +1 -1
- package/src/providers/s3/apis/{uploadData → internal/uploadData}/multipart/uploadCache.ts +7 -4
- package/src/providers/s3/apis/{uploadData → internal/uploadData}/multipart/uploadHandlers.ts +53 -26
- package/src/providers/s3/apis/{uploadData → internal/uploadData}/multipart/uploadPartExecutor.ts +29 -10
- package/src/providers/s3/apis/{uploadData → internal/uploadData}/putObjectJob.ts +32 -11
- package/src/providers/s3/apis/internal/uploadData/validateObjectNotExists.ts +25 -0
- package/src/providers/s3/apis/{uploadData/index.ts → uploadData.ts} +3 -42
- package/src/providers/s3/index.ts +2 -0
- package/src/providers/s3/types/options.ts +47 -1
- package/src/providers/s3/utils/client/s3control/base.ts +97 -0
- package/src/providers/s3/utils/client/s3control/getDataAccess.ts +96 -0
- package/src/providers/s3/utils/client/s3control/index.ts +13 -0
- package/src/providers/s3/utils/client/s3control/listCallerAccessGrants.ts +107 -0
- package/src/providers/s3/utils/client/s3control/types.ts +216 -0
- package/src/providers/s3/utils/client/{abortMultipartUpload.ts → s3data/abortMultipartUpload.ts} +18 -6
- package/src/providers/s3/utils/client/{base.ts → s3data/base.ts} +26 -3
- package/src/providers/s3/utils/client/{completeMultipartUpload.ts → s3data/completeMultipartUpload.ts} +47 -22
- package/src/providers/s3/utils/client/{copyObject.ts → s3data/copyObject.ts} +47 -4
- package/src/providers/s3/utils/client/{createMultipartUpload.ts → s3data/createMultipartUpload.ts} +22 -9
- package/src/providers/s3/utils/client/{deleteObject.ts → s3data/deleteObject.ts} +19 -9
- package/src/providers/s3/utils/client/{getObject.ts → s3data/getObject.ts} +24 -9
- package/src/providers/s3/utils/client/{headObject.ts → s3data/headObject.ts} +19 -6
- package/src/providers/s3/utils/client/{listObjectsV2.ts → s3data/listObjectsV2.ts} +33 -8
- package/src/providers/s3/utils/client/{listParts.ts → s3data/listParts.ts} +5 -18
- package/src/providers/s3/utils/client/{putObject.ts → s3data/putObject.ts} +17 -5
- package/src/providers/s3/utils/client/{uploadPart.ts → s3data/uploadPart.ts} +24 -7
- package/src/providers/s3/utils/client/utils/createRetryDecider.ts +96 -0
- package/src/providers/s3/utils/client/utils/deserializeHelpers.ts +57 -0
- package/src/providers/s3/utils/client/utils/index.ts +4 -1
- package/src/providers/s3/utils/client/utils/integrityHelpers.ts +62 -0
- package/src/providers/s3/utils/client/utils/parsePayload.ts +36 -18
- package/src/providers/s3/utils/constants.ts +3 -0
- package/src/providers/s3/utils/crc32.native.ts +11 -0
- package/src/providers/s3/utils/crc32.ts +51 -0
- package/src/providers/s3/utils/index.ts +1 -0
- package/src/providers/s3/utils/resolveIdentityId.ts +11 -0
- package/src/providers/s3/utils/resolveS3ConfigAndInput.ts +109 -14
- package/src/providers/s3/utils/validateBucketOwnerID.ts +18 -0
- package/src/providers/s3/utils/validateMultipartUploadXML.ts +36 -0
- package/src/providers/s3/utils/validateObjectUrl.ts +32 -0
- package/src/providers/s3/utils/validateStorageOperationInput.ts +5 -1
- package/src/providers/s3/utils/validateStorageOperationInputWithPrefix.ts +5 -1
- package/src/types/inputs.ts +6 -3
- package/dist/cjs/providers/s3/apis/uploadData/byteLength.js.map +0 -1
- package/dist/cjs/providers/s3/apis/uploadData/index.js.map +0 -1
- package/dist/cjs/providers/s3/apis/uploadData/multipart/calculatePartSize.js.map +0 -1
- package/dist/cjs/providers/s3/apis/uploadData/multipart/getDataChunker.js.map +0 -1
- package/dist/cjs/providers/s3/apis/uploadData/multipart/index.js.map +0 -1
- package/dist/cjs/providers/s3/apis/uploadData/multipart/initialUpload.js.map +0 -1
- package/dist/cjs/providers/s3/apis/uploadData/multipart/progressTracker.js.map +0 -1
- package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadCache.js.map +0 -1
- package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadHandlers.js.map +0 -1
- package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadPartExecutor.js.map +0 -1
- package/dist/cjs/providers/s3/apis/uploadData/putObjectJob.js.map +0 -1
- package/dist/cjs/providers/s3/utils/client/abortMultipartUpload.js.map +0 -1
- package/dist/cjs/providers/s3/utils/client/base.js.map +0 -1
- package/dist/cjs/providers/s3/utils/client/completeMultipartUpload.js.map +0 -1
- package/dist/cjs/providers/s3/utils/client/copyObject.js.map +0 -1
- package/dist/cjs/providers/s3/utils/client/createMultipartUpload.js.map +0 -1
- package/dist/cjs/providers/s3/utils/client/deleteObject.js.map +0 -1
- package/dist/cjs/providers/s3/utils/client/getObject.js.map +0 -1
- package/dist/cjs/providers/s3/utils/client/headObject.js.map +0 -1
- package/dist/cjs/providers/s3/utils/client/index.js.map +0 -1
- package/dist/cjs/providers/s3/utils/client/listObjectsV2.js.map +0 -1
- package/dist/cjs/providers/s3/utils/client/listParts.js.map +0 -1
- package/dist/cjs/providers/s3/utils/client/putObject.js.map +0 -1
- package/dist/cjs/providers/s3/utils/client/types.js.map +0 -1
- package/dist/cjs/providers/s3/utils/client/uploadPart.js.map +0 -1
- package/dist/esm/providers/s3/apis/uploadData/byteLength.mjs.map +0 -1
- package/dist/esm/providers/s3/apis/uploadData/index.mjs.map +0 -1
- package/dist/esm/providers/s3/apis/uploadData/multipart/calculatePartSize.mjs.map +0 -1
- package/dist/esm/providers/s3/apis/uploadData/multipart/getDataChunker.mjs.map +0 -1
- package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.mjs.map +0 -1
- package/dist/esm/providers/s3/apis/uploadData/multipart/progressTracker.mjs.map +0 -1
- package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.mjs.map +0 -1
- package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.mjs.map +0 -1
- package/dist/esm/providers/s3/apis/uploadData/multipart/uploadPartExecutor.mjs +0 -63
- package/dist/esm/providers/s3/apis/uploadData/multipart/uploadPartExecutor.mjs.map +0 -1
- package/dist/esm/providers/s3/apis/uploadData/putObjectJob.mjs +0 -67
- package/dist/esm/providers/s3/apis/uploadData/putObjectJob.mjs.map +0 -1
- package/dist/esm/providers/s3/utils/client/abortMultipartUpload.mjs.map +0 -1
- package/dist/esm/providers/s3/utils/client/base.mjs.map +0 -1
- package/dist/esm/providers/s3/utils/client/completeMultipartUpload.mjs.map +0 -1
- package/dist/esm/providers/s3/utils/client/copyObject.mjs +0 -47
- package/dist/esm/providers/s3/utils/client/copyObject.mjs.map +0 -1
- package/dist/esm/providers/s3/utils/client/createMultipartUpload.mjs.map +0 -1
- package/dist/esm/providers/s3/utils/client/deleteObject.mjs.map +0 -1
- package/dist/esm/providers/s3/utils/client/getObject.mjs.map +0 -1
- package/dist/esm/providers/s3/utils/client/headObject.mjs.map +0 -1
- package/dist/esm/providers/s3/utils/client/listObjectsV2.mjs.map +0 -1
- package/dist/esm/providers/s3/utils/client/listParts.mjs.map +0 -1
- package/dist/esm/providers/s3/utils/client/putObject.mjs.map +0 -1
- package/dist/esm/providers/s3/utils/client/uploadPart.mjs.map +0 -1
- /package/dist/cjs/providers/s3/apis/{uploadData → internal/uploadData}/byteLength.js +0 -0
- /package/dist/cjs/providers/s3/apis/{uploadData → internal/uploadData}/multipart/index.js +0 -0
- /package/dist/cjs/providers/s3/apis/{uploadData → internal/uploadData}/multipart/progressTracker.js +0 -0
- /package/dist/cjs/providers/s3/utils/client/{types.js → s3control/types.js} +0 -0
- /package/dist/cjs/providers/s3/utils/client/{index.js → s3data/index.js} +0 -0
- /package/dist/esm/{providers/s3/apis/uploadData/multipart → internals/locationCredentialsStore}/index.mjs.map +0 -0
- /package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/byteLength.d.ts +0 -0
- /package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/byteLength.mjs +0 -0
- /package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/multipart/calculatePartSize.d.ts +0 -0
- /package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/multipart/index.d.ts +0 -0
- /package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/multipart/index.mjs +0 -0
- /package/dist/esm/providers/s3/apis/{uploadData → internal/uploadData}/multipart/progressTracker.mjs +0 -0
- /package/dist/esm/providers/s3/utils/client/{types.mjs → s3control/types.mjs} +0 -0
- /package/dist/esm/providers/s3/utils/client/{types.mjs.map → s3control/types.mjs.map} +0 -0
- /package/dist/esm/providers/s3/utils/client/{index.d.ts → s3data/index.d.ts} +0 -0
- /package/dist/esm/providers/s3/utils/client/{index.mjs → s3data/index.mjs} +0 -0
- /package/dist/esm/providers/s3/utils/client/{index.mjs.map → s3data/index.mjs.map} +0 -0
- /package/dist/esm/providers/s3/utils/client/{types.d.ts → s3data/types.d.ts} +0 -0
- /package/src/providers/s3/apis/{uploadData → internal/uploadData}/byteLength.ts +0 -0
- /package/src/providers/s3/apis/{uploadData → internal/uploadData}/multipart/index.ts +0 -0
- /package/src/providers/s3/utils/client/{index.ts → s3data/index.ts} +0 -0
- /package/src/providers/s3/utils/client/{types.ts → s3data/types.ts} +0 -0
|
@@ -5,6 +5,7 @@ import { Headers } from '@aws-amplify/core/internals/aws-client-utils';
|
|
|
5
5
|
import { ServiceError } from '@aws-amplify/core/internals/utils';
|
|
6
6
|
|
|
7
7
|
import { StorageError } from '../../../../../errors/StorageError';
|
|
8
|
+
import { CompletedPart } from '../s3data';
|
|
8
9
|
|
|
9
10
|
type PropertyNameWithStringValue = string;
|
|
10
11
|
type PropertyNameWithSubsequentDeserializer<T> = [string, (arg: any) => T];
|
|
@@ -104,6 +105,47 @@ export const deserializeTimestamp = (value: string): Date | undefined => {
|
|
|
104
105
|
return value ? new Date(value) : undefined;
|
|
105
106
|
};
|
|
106
107
|
|
|
108
|
+
/**
|
|
109
|
+
* Create a function deserializing a string to an enum value. If the string is not a valid enum value, it throws a
|
|
110
|
+
* StorageError.
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```typescript
|
|
114
|
+
* const deserializeStringEnum = createStringEnumDeserializer(['a', 'b', 'c'] as const, 'FieldName');
|
|
115
|
+
* const deserializedArray = ['a', 'b', 'c'].map(deserializeStringEnum);
|
|
116
|
+
* // deserializedArray = ['a', 'b', 'c']
|
|
117
|
+
*
|
|
118
|
+
* const invalidValue = deserializeStringEnum('d');
|
|
119
|
+
* // Throws InvalidFieldName: Invalid FieldName: d
|
|
120
|
+
* ```
|
|
121
|
+
*
|
|
122
|
+
* @internal
|
|
123
|
+
*/
|
|
124
|
+
export const createStringEnumDeserializer = <T extends readonly string[]>(
|
|
125
|
+
enumValues: T,
|
|
126
|
+
fieldName: string,
|
|
127
|
+
) => {
|
|
128
|
+
const deserializeStringEnum = (
|
|
129
|
+
value: any,
|
|
130
|
+
): T extends (infer E)[] ? E : never => {
|
|
131
|
+
const parsedEnumValue = value
|
|
132
|
+
? (enumValues.find(enumValue => enumValue === value) as any)
|
|
133
|
+
: undefined;
|
|
134
|
+
if (!parsedEnumValue) {
|
|
135
|
+
throw new StorageError({
|
|
136
|
+
name: `Invalid${fieldName}`,
|
|
137
|
+
message: `Invalid ${fieldName}: ${value}`,
|
|
138
|
+
recoverySuggestion:
|
|
139
|
+
'This is likely to be a bug. Please reach out to library authors.',
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return parsedEnumValue;
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
return deserializeStringEnum;
|
|
147
|
+
};
|
|
148
|
+
|
|
107
149
|
/**
|
|
108
150
|
* Function that makes sure the deserializer receives non-empty array.
|
|
109
151
|
*
|
|
@@ -161,3 +203,18 @@ export const buildStorageServiceError = (
|
|
|
161
203
|
|
|
162
204
|
return storageError;
|
|
163
205
|
};
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Internal-only method used for deserializing the parts of a multipart upload.
|
|
209
|
+
*
|
|
210
|
+
* @internal
|
|
211
|
+
*/
|
|
212
|
+
export const deserializeCompletedPartList = (input: any[]): CompletedPart[] =>
|
|
213
|
+
input.map(item =>
|
|
214
|
+
map(item, {
|
|
215
|
+
PartNumber: ['PartNumber', deserializeNumber],
|
|
216
|
+
ETag: 'ETag',
|
|
217
|
+
Size: ['Size', deserializeNumber],
|
|
218
|
+
ChecksumCRC32: 'ChecksumCRC32',
|
|
219
|
+
}),
|
|
220
|
+
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
export { parseXmlBody,
|
|
4
|
+
export { parseXmlBody, createXmlErrorParser } from './parsePayload';
|
|
5
5
|
export {
|
|
6
6
|
SEND_DOWNLOAD_PROGRESS_EVENT,
|
|
7
7
|
SEND_UPLOAD_PROGRESS_EVENT,
|
|
@@ -13,6 +13,7 @@ export {
|
|
|
13
13
|
export {
|
|
14
14
|
buildStorageServiceError,
|
|
15
15
|
deserializeBoolean,
|
|
16
|
+
deserializeCompletedPartList,
|
|
16
17
|
deserializeMetadata,
|
|
17
18
|
deserializeNumber,
|
|
18
19
|
deserializeTimestamp,
|
|
@@ -25,3 +26,5 @@ export {
|
|
|
25
26
|
serializePathnameObjectKey,
|
|
26
27
|
validateS3RequiredParameter,
|
|
27
28
|
} from './serializeHelpers';
|
|
29
|
+
export { createRetryDecider } from './createRetryDecider';
|
|
30
|
+
export { bothNilOrEqual } from './integrityHelpers';
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
export const isNil = <T>(value?: T) => {
|
|
5
|
+
return value === undefined || value === null;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export const bothNilOrEqual = (original?: string, output?: string): boolean => {
|
|
9
|
+
return (isNil(original) && isNil(output)) || original === output;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* This function is used to determine if a value is an object.
|
|
14
|
+
* It excludes arrays and null values.
|
|
15
|
+
*
|
|
16
|
+
* @param value
|
|
17
|
+
* @returns
|
|
18
|
+
*/
|
|
19
|
+
export const isObject = <T>(value?: T) => {
|
|
20
|
+
return value != null && typeof value === 'object' && !Array.isArray(value);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* This function is used to compare two objects and determine if they are equal.
|
|
25
|
+
* It handles nested objects and arrays as well.
|
|
26
|
+
* Array order is not taken into account.
|
|
27
|
+
*
|
|
28
|
+
* @param object
|
|
29
|
+
* @param other
|
|
30
|
+
* @returns
|
|
31
|
+
*/
|
|
32
|
+
export const isEqual = <T>(object: T, other: T): boolean => {
|
|
33
|
+
if (Array.isArray(object) && !Array.isArray(other)) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
if (!Array.isArray(object) && Array.isArray(other)) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
if (Array.isArray(object) && Array.isArray(other)) {
|
|
40
|
+
return (
|
|
41
|
+
object.length === other.length &&
|
|
42
|
+
object.every((val, ix) => isEqual(val, other[ix]))
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
if (!isObject<T>(object) || !isObject<T>(other)) {
|
|
46
|
+
return object === other;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const objectKeys = Object.keys(object as any);
|
|
50
|
+
const otherKeys = Object.keys(other as any);
|
|
51
|
+
|
|
52
|
+
if (objectKeys.length !== otherKeys.length) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return objectKeys.every(key => {
|
|
57
|
+
return (
|
|
58
|
+
otherKeys.includes(key) &&
|
|
59
|
+
isEqual(object[key as keyof T] as any, other[key as keyof T] as any)
|
|
60
|
+
);
|
|
61
|
+
});
|
|
62
|
+
};
|
|
@@ -9,25 +9,43 @@ import {
|
|
|
9
9
|
|
|
10
10
|
import { parser } from '../runtime';
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Factory creating a parser that parses the JS Error object from the XML
|
|
14
|
+
* response payload.
|
|
15
|
+
*
|
|
16
|
+
* @param input Input object
|
|
17
|
+
* @param input.noErrorWrapping Whether the error code and message are located
|
|
18
|
+
* directly in the root XML element, or in a nested `<Error>` element.
|
|
19
|
+
* See: https://smithy.io/2.0/aws/protocols/aws-restxml-protocol.html#restxml-errors
|
|
20
|
+
*
|
|
21
|
+
* Default to false.
|
|
22
|
+
*
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
export const createXmlErrorParser =
|
|
26
|
+
({
|
|
27
|
+
noErrorWrapping = false,
|
|
28
|
+
}: { noErrorWrapping?: boolean } = {}): ErrorParser =>
|
|
29
|
+
async (response?: HttpResponse) => {
|
|
30
|
+
if (!response || response.statusCode < 300) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const { statusCode } = response;
|
|
34
|
+
const body = await parseXmlBody(response);
|
|
35
|
+
const errorLocation = noErrorWrapping ? body : body.Error;
|
|
36
|
+
const code = errorLocation?.Code
|
|
37
|
+
? (errorLocation.Code as string)
|
|
38
|
+
: statusCode === 404
|
|
39
|
+
? 'NotFound'
|
|
40
|
+
: statusCode.toString();
|
|
41
|
+
const message = errorLocation?.message ?? errorLocation?.Message ?? code;
|
|
42
|
+
const error = new Error(message);
|
|
25
43
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
};
|
|
44
|
+
return Object.assign(error, {
|
|
45
|
+
name: code,
|
|
46
|
+
$metadata: parseMetadata(response),
|
|
47
|
+
});
|
|
48
|
+
};
|
|
31
49
|
|
|
32
50
|
export const parseXmlBody = async (response: HttpResponse): Promise<any> => {
|
|
33
51
|
if (!response.body) {
|
|
@@ -13,6 +13,9 @@ const MiB = 1024 * 1024;
|
|
|
13
13
|
const GiB = 1024 * MiB;
|
|
14
14
|
const TiB = 1024 * GiB;
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* Default part size in MB that is used to determine if an upload task is single part or multi part.
|
|
18
|
+
*/
|
|
16
19
|
export const DEFAULT_PART_SIZE = 5 * MiB;
|
|
17
20
|
export const MAX_OBJECT_SIZE = 5 * TiB;
|
|
18
21
|
export const MAX_PARTS_COUNT = 10000;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { CRC32Checksum } from './crc32';
|
|
5
|
+
|
|
6
|
+
export const calculateContentCRC32 = async (
|
|
7
|
+
content: Blob | string | ArrayBuffer | ArrayBufferView,
|
|
8
|
+
_seed = 0,
|
|
9
|
+
): Promise<CRC32Checksum | undefined> => {
|
|
10
|
+
return undefined;
|
|
11
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import crc32 from 'crc-32';
|
|
5
|
+
|
|
6
|
+
export interface CRC32Checksum {
|
|
7
|
+
checksumArrayBuffer: ArrayBuffer;
|
|
8
|
+
checksum: string;
|
|
9
|
+
seed: number;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const calculateContentCRC32 = async (
|
|
13
|
+
content: Blob | string | ArrayBuffer | ArrayBufferView,
|
|
14
|
+
seed = 0,
|
|
15
|
+
): Promise<CRC32Checksum | undefined> => {
|
|
16
|
+
let internalSeed = seed;
|
|
17
|
+
let blob: Blob;
|
|
18
|
+
|
|
19
|
+
if (content instanceof Blob) {
|
|
20
|
+
blob = content;
|
|
21
|
+
} else {
|
|
22
|
+
blob = new Blob([content]);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
await blob.stream().pipeTo(
|
|
26
|
+
new WritableStream<Uint8Array>({
|
|
27
|
+
write(chunk) {
|
|
28
|
+
internalSeed = crc32.buf(chunk, internalSeed) >>> 0;
|
|
29
|
+
},
|
|
30
|
+
}),
|
|
31
|
+
);
|
|
32
|
+
const hex = internalSeed.toString(16).padStart(8, '0');
|
|
33
|
+
|
|
34
|
+
return {
|
|
35
|
+
checksumArrayBuffer: hexToArrayBuffer(hex),
|
|
36
|
+
checksum: hexToBase64(hex),
|
|
37
|
+
seed: internalSeed,
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const hexToArrayBuffer = (hexString: string) =>
|
|
42
|
+
new Uint8Array((hexString.match(/\w{2}/g)! ?? []).map(h => parseInt(h, 16)))
|
|
43
|
+
.buffer;
|
|
44
|
+
|
|
45
|
+
const hexToBase64 = (hexString: string) =>
|
|
46
|
+
btoa(
|
|
47
|
+
hexString
|
|
48
|
+
.match(/\w{2}/g)!
|
|
49
|
+
.map((a: string) => String.fromCharCode(parseInt(a, 16)))
|
|
50
|
+
.join(''),
|
|
51
|
+
);
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
export { calculateContentMd5 } from './md5';
|
|
5
5
|
export { resolveS3ConfigAndInput } from './resolveS3ConfigAndInput';
|
|
6
6
|
export { createDownloadTask, createUploadTask } from './transferTask';
|
|
7
|
+
export { validateBucketOwnerID } from './validateBucketOwnerID';
|
|
7
8
|
export { validateStorageOperationInput } from './validateStorageOperationInput';
|
|
8
9
|
export { validateStorageOperationInputWithPrefix } from './validateStorageOperationInputWithPrefix';
|
|
9
10
|
export { isInputWithPath } from './isInputWithPath';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { StorageValidationErrorCode } from '../../../errors/types/validation';
|
|
5
|
+
import { assertValidationError } from '../../../errors/utils/assertValidationError';
|
|
6
|
+
|
|
7
|
+
export const resolveIdentityId = (identityId?: string): string => {
|
|
8
|
+
assertValidationError(!!identityId, StorageValidationErrorCode.NoIdentityId);
|
|
9
|
+
|
|
10
|
+
return identityId;
|
|
11
|
+
};
|
|
@@ -2,11 +2,25 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { AmplifyClassV6, StorageAccessLevel } from '@aws-amplify/core';
|
|
5
|
+
import { CredentialsProviderOptions } from '@aws-amplify/core/internals/aws-client-utils';
|
|
5
6
|
|
|
6
7
|
import { assertValidationError } from '../../../errors/utils/assertValidationError';
|
|
7
8
|
import { StorageValidationErrorCode } from '../../../errors/types/validation';
|
|
8
9
|
import { resolvePrefix as defaultPrefixResolver } from '../../../utils/resolvePrefix';
|
|
9
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
StorageOperationInputWithKey,
|
|
12
|
+
StorageOperationInputWithPath,
|
|
13
|
+
StorageOperationInputWithPrefix,
|
|
14
|
+
} from '../../../types/inputs';
|
|
15
|
+
import { StorageError } from '../../../errors/StorageError';
|
|
16
|
+
import { CopyInput, CopyWithPathInput } from '../types';
|
|
17
|
+
import { INVALID_STORAGE_INPUT } from '../../../errors/constants';
|
|
18
|
+
import {
|
|
19
|
+
BucketInfo,
|
|
20
|
+
LocationCredentialsProvider,
|
|
21
|
+
ResolvedS3Config,
|
|
22
|
+
StorageBucket,
|
|
23
|
+
} from '../types/options';
|
|
10
24
|
|
|
11
25
|
import { DEFAULT_ACCESS_LEVEL, LOCAL_TESTING_S3_ENDPOINT } from './constants';
|
|
12
26
|
|
|
@@ -14,6 +28,7 @@ interface S3ApiOptions {
|
|
|
14
28
|
accessLevel?: StorageAccessLevel;
|
|
15
29
|
targetIdentityId?: string;
|
|
16
30
|
useAccelerateEndpoint?: boolean;
|
|
31
|
+
locationCredentialsProvider?: LocationCredentialsProvider;
|
|
17
32
|
bucket?: StorageBucket;
|
|
18
33
|
}
|
|
19
34
|
|
|
@@ -24,6 +39,16 @@ interface ResolvedS3ConfigAndInput {
|
|
|
24
39
|
isObjectLockEnabled?: boolean;
|
|
25
40
|
identityId?: string;
|
|
26
41
|
}
|
|
42
|
+
export type DeprecatedStorageInput =
|
|
43
|
+
| StorageOperationInputWithKey
|
|
44
|
+
| StorageOperationInputWithPrefix
|
|
45
|
+
| CopyInput;
|
|
46
|
+
|
|
47
|
+
export type CallbackPathStorageInput =
|
|
48
|
+
| StorageOperationInputWithPath
|
|
49
|
+
| CopyWithPathInput;
|
|
50
|
+
|
|
51
|
+
type StorageInput = DeprecatedStorageInput | CallbackPathStorageInput;
|
|
27
52
|
|
|
28
53
|
/**
|
|
29
54
|
* resolve the common input options for S3 API handlers from Amplify configuration and library options.
|
|
@@ -38,23 +63,35 @@ interface ResolvedS3ConfigAndInput {
|
|
|
38
63
|
*/
|
|
39
64
|
export const resolveS3ConfigAndInput = async (
|
|
40
65
|
amplify: AmplifyClassV6,
|
|
41
|
-
|
|
66
|
+
apiInput?: StorageInput & { options?: S3ApiOptions },
|
|
42
67
|
): Promise<ResolvedS3ConfigAndInput> => {
|
|
68
|
+
const { options: apiOptions } = apiInput ?? {};
|
|
43
69
|
/**
|
|
44
70
|
* IdentityId is always cached in memory so we can safely make calls here. It
|
|
45
71
|
* should be stable even for unauthenticated users, regardless of credentials.
|
|
46
72
|
*/
|
|
47
73
|
const { identityId } = await amplify.Auth.fetchAuthSession();
|
|
48
|
-
assertValidationError(!!identityId, StorageValidationErrorCode.NoIdentityId);
|
|
49
74
|
|
|
50
75
|
/**
|
|
51
76
|
* A credentials provider function instead of a static credentials object is
|
|
52
77
|
* used because the long-running tasks like multipart upload may span over the
|
|
53
78
|
* credentials expiry. Auth.fetchAuthSession() automatically refreshes the
|
|
54
79
|
* credentials if they are expired.
|
|
80
|
+
*
|
|
81
|
+
* The optional forceRefresh option is set when the S3 service returns expired
|
|
82
|
+
* tokens error in the previous API call attempt.
|
|
55
83
|
*/
|
|
56
|
-
const credentialsProvider = async () => {
|
|
57
|
-
|
|
84
|
+
const credentialsProvider = async (options?: CredentialsProviderOptions) => {
|
|
85
|
+
if (isLocationCredentialsProvider(apiOptions)) {
|
|
86
|
+
assertStorageInput(apiInput);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// TODO: forceRefresh option of fetchAuthSession would refresh both tokens and
|
|
90
|
+
// AWS credentials. So we do not support forceRefreshing from the Auth until
|
|
91
|
+
// we support refreshing only the credentials.
|
|
92
|
+
const { credentials } = isLocationCredentialsProvider(apiOptions)
|
|
93
|
+
? await apiOptions.locationCredentialsProvider(options)
|
|
94
|
+
: await amplify.Auth.fetchAuthSession();
|
|
58
95
|
assertValidationError(
|
|
59
96
|
!!credentials,
|
|
60
97
|
StorageValidationErrorCode.NoCredentials,
|
|
@@ -82,15 +119,14 @@ export const resolveS3ConfigAndInput = async (
|
|
|
82
119
|
isObjectLockEnabled,
|
|
83
120
|
} = amplify.libraryOptions?.Storage?.S3 ?? {};
|
|
84
121
|
|
|
85
|
-
const
|
|
86
|
-
accessLevel
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
});
|
|
122
|
+
const accessLevel =
|
|
123
|
+
apiOptions?.accessLevel ?? defaultAccessLevel ?? DEFAULT_ACCESS_LEVEL;
|
|
124
|
+
const targetIdentityId =
|
|
125
|
+
accessLevel === 'protected'
|
|
126
|
+
? (apiOptions?.targetIdentityId ?? identityId)
|
|
127
|
+
: identityId;
|
|
128
|
+
|
|
129
|
+
const keyPrefix = await prefixResolver({ accessLevel, targetIdentityId });
|
|
94
130
|
|
|
95
131
|
return {
|
|
96
132
|
s3Config: {
|
|
@@ -111,6 +147,65 @@ export const resolveS3ConfigAndInput = async (
|
|
|
111
147
|
};
|
|
112
148
|
};
|
|
113
149
|
|
|
150
|
+
const isLocationCredentialsProvider = (
|
|
151
|
+
options?: S3ApiOptions,
|
|
152
|
+
): options is S3ApiOptions & {
|
|
153
|
+
locationCredentialsProvider: LocationCredentialsProvider;
|
|
154
|
+
} => {
|
|
155
|
+
return !!options?.locationCredentialsProvider;
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
const isInputWithCallbackPath = (input?: CallbackPathStorageInput) => {
|
|
159
|
+
return (
|
|
160
|
+
((input as StorageOperationInputWithPath)?.path &&
|
|
161
|
+
typeof (input as StorageOperationInputWithPath).path === 'function') ||
|
|
162
|
+
((input as CopyWithPathInput)?.destination?.path &&
|
|
163
|
+
typeof (input as CopyWithPathInput).destination?.path === 'function') ||
|
|
164
|
+
((input as CopyWithPathInput)?.source?.path &&
|
|
165
|
+
typeof (input as CopyWithPathInput).source?.path === 'function')
|
|
166
|
+
);
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
const isDeprecatedInput = (
|
|
170
|
+
input?: StorageInput,
|
|
171
|
+
): input is DeprecatedStorageInput => {
|
|
172
|
+
return (
|
|
173
|
+
isInputWithKey(input) ||
|
|
174
|
+
isInputWithPrefix(input) ||
|
|
175
|
+
isInputWithCopySourceOrDestination(input)
|
|
176
|
+
);
|
|
177
|
+
};
|
|
178
|
+
const assertStorageInput = (input?: StorageInput) => {
|
|
179
|
+
if (isDeprecatedInput(input) || isInputWithCallbackPath(input)) {
|
|
180
|
+
throw new StorageError({
|
|
181
|
+
name: INVALID_STORAGE_INPUT,
|
|
182
|
+
message: 'The input needs to have a path as a string value.',
|
|
183
|
+
recoverySuggestion:
|
|
184
|
+
'Please provide a valid path as a string value for the input.',
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
const isInputWithKey = (
|
|
190
|
+
input?: StorageInput,
|
|
191
|
+
): input is StorageOperationInputWithKey => {
|
|
192
|
+
return !!(typeof (input as StorageOperationInputWithKey).key === 'string');
|
|
193
|
+
};
|
|
194
|
+
const isInputWithPrefix = (
|
|
195
|
+
input?: StorageInput,
|
|
196
|
+
): input is StorageOperationInputWithPrefix => {
|
|
197
|
+
return !!(
|
|
198
|
+
typeof (input as StorageOperationInputWithPrefix).prefix === 'string'
|
|
199
|
+
);
|
|
200
|
+
};
|
|
201
|
+
const isInputWithCopySourceOrDestination = (
|
|
202
|
+
input?: StorageInput,
|
|
203
|
+
): input is CopyInput => {
|
|
204
|
+
return !!(
|
|
205
|
+
typeof (input as CopyInput).source?.key === 'string' ||
|
|
206
|
+
typeof (input as CopyInput).destination?.key === 'string'
|
|
207
|
+
);
|
|
208
|
+
};
|
|
114
209
|
const resolveBucketConfig = (
|
|
115
210
|
apiOptions: S3ApiOptions,
|
|
116
211
|
buckets: Record<string, BucketInfo> | undefined,
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { StorageValidationErrorCode } from '../../../errors/types/validation';
|
|
5
|
+
import { assertValidationError } from '../../../errors/utils/assertValidationError';
|
|
6
|
+
|
|
7
|
+
const VALID_AWS_ACCOUNT_ID_PATTERN = /^\d{12}/;
|
|
8
|
+
|
|
9
|
+
export const validateBucketOwnerID = (accountID?: string) => {
|
|
10
|
+
if (accountID === undefined) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
assertValidationError(
|
|
15
|
+
VALID_AWS_ACCOUNT_ID_PATTERN.test(accountID),
|
|
16
|
+
StorageValidationErrorCode.InvalidAWSAccountID,
|
|
17
|
+
);
|
|
18
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { IntegrityError } from '../../../errors/IntegrityError';
|
|
5
|
+
|
|
6
|
+
import { parser } from './client/runtime';
|
|
7
|
+
import { CompletedMultipartUpload } from './client/s3data/types';
|
|
8
|
+
import {
|
|
9
|
+
deserializeCompletedPartList,
|
|
10
|
+
emptyArrayGuard,
|
|
11
|
+
map,
|
|
12
|
+
} from './client/utils';
|
|
13
|
+
import { isEqual } from './client/utils/integrityHelpers';
|
|
14
|
+
|
|
15
|
+
export function validateMultipartUploadXML(
|
|
16
|
+
input: CompletedMultipartUpload,
|
|
17
|
+
xml: string,
|
|
18
|
+
) {
|
|
19
|
+
if (!input.Parts) {
|
|
20
|
+
throw new IntegrityError();
|
|
21
|
+
}
|
|
22
|
+
const parsedXML = parser.parse(xml);
|
|
23
|
+
const mappedCompletedMultipartUpload: CompletedMultipartUpload = map(
|
|
24
|
+
parsedXML,
|
|
25
|
+
{
|
|
26
|
+
Parts: [
|
|
27
|
+
'Part',
|
|
28
|
+
value => emptyArrayGuard(value, deserializeCompletedPartList),
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
if (!isEqual(input, mappedCompletedMultipartUpload)) {
|
|
34
|
+
throw new IntegrityError();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { extendedEncodeURIComponent } from '@aws-amplify/core/internals/aws-client-utils';
|
|
5
|
+
|
|
6
|
+
import { IntegrityError } from '../../../errors/IntegrityError';
|
|
7
|
+
|
|
8
|
+
export function validateObjectUrl({
|
|
9
|
+
bucketName,
|
|
10
|
+
key,
|
|
11
|
+
objectURL,
|
|
12
|
+
}: {
|
|
13
|
+
bucketName?: string;
|
|
14
|
+
key?: string;
|
|
15
|
+
objectURL?: URL;
|
|
16
|
+
}): void {
|
|
17
|
+
if (!bucketName || !key || !objectURL) {
|
|
18
|
+
throw new IntegrityError();
|
|
19
|
+
}
|
|
20
|
+
const bucketWithDots = bucketName.includes('.');
|
|
21
|
+
const encodedBucketName = extendedEncodeURIComponent(bucketName);
|
|
22
|
+
const encodedKey = key.split('/').map(extendedEncodeURIComponent).join('/');
|
|
23
|
+
const isPathStyleUrl =
|
|
24
|
+
objectURL.pathname === `/${encodedBucketName}/${encodedKey}`;
|
|
25
|
+
const isSubdomainUrl =
|
|
26
|
+
objectURL.hostname.startsWith(`${encodedBucketName}.`) &&
|
|
27
|
+
objectURL.pathname === `/${encodedKey}`;
|
|
28
|
+
|
|
29
|
+
if (!(isPathStyleUrl || (!bucketWithDots && isSubdomainUrl))) {
|
|
30
|
+
throw new IntegrityError();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -7,6 +7,7 @@ import { StorageValidationErrorCode } from '../../../errors/types/validation';
|
|
|
7
7
|
|
|
8
8
|
import { isInputWithPath } from './isInputWithPath';
|
|
9
9
|
import { STORAGE_INPUT_KEY, STORAGE_INPUT_PATH } from './constants';
|
|
10
|
+
import { resolveIdentityId } from './resolveIdentityId';
|
|
10
11
|
|
|
11
12
|
export const validateStorageOperationInput = (
|
|
12
13
|
input: Input,
|
|
@@ -22,7 +23,10 @@ export const validateStorageOperationInput = (
|
|
|
22
23
|
|
|
23
24
|
if (isInputWithPath(input)) {
|
|
24
25
|
const { path } = input;
|
|
25
|
-
const objectKey =
|
|
26
|
+
const objectKey =
|
|
27
|
+
typeof path === 'string'
|
|
28
|
+
? path
|
|
29
|
+
: path({ identityId: resolveIdentityId(identityId) });
|
|
26
30
|
|
|
27
31
|
assertValidationError(
|
|
28
32
|
!objectKey.startsWith('/'),
|
|
@@ -9,6 +9,7 @@ import { assertValidationError } from '../../../errors/utils/assertValidationErr
|
|
|
9
9
|
import { StorageValidationErrorCode } from '../../../errors/types/validation';
|
|
10
10
|
|
|
11
11
|
import { STORAGE_INPUT_PATH, STORAGE_INPUT_PREFIX } from './constants';
|
|
12
|
+
import { resolveIdentityId } from './resolveIdentityId';
|
|
12
13
|
|
|
13
14
|
// Local assertion function with StorageOperationInputWithPrefixPath as Input
|
|
14
15
|
const _isInputWithPath = (
|
|
@@ -28,7 +29,10 @@ export const validateStorageOperationInputWithPrefix = (
|
|
|
28
29
|
);
|
|
29
30
|
if (_isInputWithPath(input)) {
|
|
30
31
|
const { path } = input;
|
|
31
|
-
const objectKey =
|
|
32
|
+
const objectKey =
|
|
33
|
+
typeof path === 'string'
|
|
34
|
+
? path
|
|
35
|
+
: path({ identityId: resolveIdentityId(identityId) });
|
|
32
36
|
|
|
33
37
|
// Assert on no leading slash in the path parameter
|
|
34
38
|
assertValidationError(
|
package/src/types/inputs.ts
CHANGED
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
|
|
4
4
|
import { StrictUnion } from '@aws-amplify/core/internals/utils';
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
CopyWithPathDestinationOptions,
|
|
8
|
+
CopyWithPathSourceOptions,
|
|
9
|
+
} from '../providers/s3/types/options';
|
|
7
10
|
|
|
8
11
|
import {
|
|
9
12
|
StorageListAllOptions,
|
|
@@ -93,8 +96,8 @@ export interface StorageCopyInputWithKey<
|
|
|
93
96
|
}
|
|
94
97
|
|
|
95
98
|
export interface StorageCopyInputWithPath {
|
|
96
|
-
source: StorageOperationInputWithPath &
|
|
97
|
-
destination: StorageOperationInputWithPath &
|
|
99
|
+
source: StorageOperationInputWithPath & CopyWithPathSourceOptions;
|
|
100
|
+
destination: StorageOperationInputWithPath & CopyWithPathDestinationOptions;
|
|
98
101
|
}
|
|
99
102
|
|
|
100
103
|
/**
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"byteLength.js","sources":["../../../../../../src/providers/s3/apis/uploadData/byteLength.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.byteLength = void 0;\n/**\n * Calculate the total size of the data to be uploaded. The total size is not required for multipart upload, as it's\n * only used in progress report.\n */\nconst byteLength = (input) => {\n if (input === null || input === undefined)\n return 0;\n if (typeof input === 'string') {\n let len = input.length;\n for (let i = len - 1; i >= 0; i--) {\n const code = input.charCodeAt(i);\n if (code > 0x7f && code <= 0x7ff)\n len++;\n else if (code > 0x7ff && code <= 0xffff)\n len += 2;\n if (code >= 0xdc00 && code <= 0xdfff)\n i--; // trail surrogate\n }\n return len;\n }\n else if (typeof input.byteLength === 'number') {\n // handles Uint8Array, ArrayBuffer, Buffer, and ArrayBufferView\n return input.byteLength;\n }\n else if (typeof input.size === 'number') {\n // handles browser File object\n return input.size;\n }\n // TODO: support Node.js stream size when Node.js runtime is supported out-of-box.\n return undefined;\n};\nexports.byteLength = byteLength;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;AAC5B;AACA;AACA;AACA;AACA,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK;AAC9B,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;AAC7C,QAAQ,OAAO,CAAC,CAAC;AACjB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,QAAQ,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;AAC/B,QAAQ,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAY,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7C,YAAY,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK;AAC5C,gBAAgB,GAAG,EAAE,CAAC;AACtB,iBAAiB,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,MAAM;AACnD,gBAAgB,GAAG,IAAI,CAAC,CAAC;AACzB,YAAY,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM;AAChD,gBAAgB,CAAC,EAAE,CAAC;AACpB,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL,SAAS,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE;AACnD;AACA,QAAQ,OAAO,KAAK,CAAC,UAAU,CAAC;AAChC,KAAK;AACL,SAAS,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC7C;AACA,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC;AAC1B,KAAK;AACL;AACA,IAAI,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AACF,OAAO,CAAC,UAAU,GAAG,UAAU;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../src/providers/s3/apis/uploadData/index.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uploadData = void 0;\nconst utils_1 = require(\"../../utils\");\nconst assertValidationError_1 = require(\"../../../../errors/utils/assertValidationError\");\nconst validation_1 = require(\"../../../../errors/types/validation\");\nconst constants_1 = require(\"../../utils/constants\");\nconst byteLength_1 = require(\"./byteLength\");\nconst putObjectJob_1 = require(\"./putObjectJob\");\nconst multipart_1 = require(\"./multipart\");\nfunction uploadData(input) {\n const { data } = input;\n const dataByteLength = (0, byteLength_1.byteLength)(data);\n (0, assertValidationError_1.assertValidationError)(dataByteLength === undefined || dataByteLength <= constants_1.MAX_OBJECT_SIZE, validation_1.StorageValidationErrorCode.ObjectIsTooLarge);\n if (dataByteLength && dataByteLength <= constants_1.DEFAULT_PART_SIZE) {\n // Single part upload\n const abortController = new AbortController();\n return (0, utils_1.createUploadTask)({\n isMultipartUpload: false,\n job: (0, putObjectJob_1.putObjectJob)(input, abortController.signal, dataByteLength),\n onCancel: (message) => {\n abortController.abort(message);\n },\n });\n }\n else {\n // Multipart upload\n const { multipartUploadJob, onPause, onResume, onCancel } = (0, multipart_1.getMultipartUploadHandlers)(input, dataByteLength);\n return (0, utils_1.createUploadTask)({\n isMultipartUpload: true,\n job: multipartUploadJob,\n onCancel: (message) => {\n onCancel(message);\n },\n onPause,\n onResume,\n });\n }\n}\nexports.uploadData = uploadData;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;AAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACvC,MAAM,uBAAuB,GAAG,OAAO,CAAC,gDAAgD,CAAC,CAAC;AAC1F,MAAM,YAAY,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC;AACpE,MAAM,WAAW,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;AACrD,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAC7C,MAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AACjD,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAC3C,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;AAC3B,IAAI,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC9D,IAAI,IAAI,uBAAuB,CAAC,qBAAqB,EAAE,cAAc,KAAK,SAAS,IAAI,cAAc,IAAI,WAAW,CAAC,eAAe,EAAE,YAAY,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;AAChM,IAAI,IAAI,cAAc,IAAI,cAAc,IAAI,WAAW,CAAC,iBAAiB,EAAE;AAC3E;AACA,QAAQ,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;AACtD,QAAQ,OAAO,IAAI,OAAO,CAAC,gBAAgB,EAAE;AAC7C,YAAY,iBAAiB,EAAE,KAAK;AACpC,YAAY,GAAG,EAAE,IAAI,cAAc,CAAC,YAAY,EAAE,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC;AAChG,YAAY,QAAQ,EAAE,CAAC,OAAO,KAAK;AACnC,gBAAgB,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/C,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL,SAAS;AACT;AACA,QAAQ,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,WAAW,CAAC,0BAA0B,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;AACvI,QAAQ,OAAO,IAAI,OAAO,CAAC,gBAAgB,EAAE;AAC7C,YAAY,iBAAiB,EAAE,IAAI;AACnC,YAAY,GAAG,EAAE,kBAAkB;AACnC,YAAY,QAAQ,EAAE,CAAC,OAAO,KAAK;AACnC,gBAAgB,QAAQ,CAAC,OAAO,CAAC,CAAC;AAClC,aAAa;AACb,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC;AACD,OAAO,CAAC,UAAU,GAAG,UAAU;;"}
|