@aws-amplify/storage 6.6.5 → 6.6.6-storage-browser.4949269.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/constants.js +8 -0
- package/dist/cjs/errors/constants.js.map +1 -0
- package/dist/cjs/errors/types/validation.js +12 -0
- package/dist/cjs/errors/types/validation.js.map +1 -1
- package/dist/cjs/providers/s3/apis/downloadData.js +3 -3
- package/dist/cjs/providers/s3/apis/downloadData.js.map +1 -1
- package/dist/cjs/providers/s3/apis/internal/copy.js +38 -6
- package/dist/cjs/providers/s3/apis/internal/copy.js.map +1 -1
- package/dist/cjs/providers/s3/apis/internal/getProperties.js +3 -4
- package/dist/cjs/providers/s3/apis/internal/getProperties.js.map +1 -1
- package/dist/cjs/providers/s3/apis/internal/getUrl.js +3 -3
- package/dist/cjs/providers/s3/apis/internal/getUrl.js.map +1 -1
- package/dist/cjs/providers/s3/apis/internal/list.js +4 -4
- package/dist/cjs/providers/s3/apis/internal/list.js.map +1 -1
- package/dist/cjs/providers/s3/apis/internal/remove.js +3 -4
- package/dist/cjs/providers/s3/apis/internal/remove.js.map +1 -1
- package/dist/cjs/providers/s3/apis/uploadData/multipart/initialUpload.js +22 -2
- package/dist/cjs/providers/s3/apis/uploadData/multipart/initialUpload.js.map +1 -1
- package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadCache.js +3 -2
- package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadCache.js.map +1 -1
- package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadHandlers.js +19 -8
- package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadHandlers.js.map +1 -1
- package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadPartExecutor.js +20 -11
- package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadPartExecutor.js.map +1 -1
- package/dist/cjs/providers/s3/apis/uploadData/putObjectJob.js +20 -7
- package/dist/cjs/providers/s3/apis/uploadData/putObjectJob.js.map +1 -1
- package/dist/cjs/providers/s3/apis/uploadData/validateObjectNotExists.js +25 -0
- package/dist/cjs/providers/s3/apis/uploadData/validateObjectNotExists.js.map +1 -0
- 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} +2 -2
- 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} +16 -11
- 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} +2 -2
- 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} +8 -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} +2 -2
- 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} +3 -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} +2 -2
- 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} +2 -2
- 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 -2
- 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} +3 -2
- 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} +4 -3
- 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 +34 -1
- package/dist/cjs/providers/s3/utils/client/utils/deserializeHelpers.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/utils/index.js +4 -2
- package/dist/cjs/providers/s3/utils/client/utils/index.js.map +1 -1
- 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/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/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/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/cjs/storageBrowser/apis/constants.js +9 -0
- package/dist/cjs/storageBrowser/apis/constants.js.map +1 -0
- package/dist/cjs/storageBrowser/apis/getDataAccess.js +57 -0
- package/dist/cjs/storageBrowser/apis/getDataAccess.js.map +1 -0
- package/dist/cjs/storageBrowser/apis/listCallerAccessGrants.js +69 -0
- package/dist/cjs/storageBrowser/apis/listCallerAccessGrants.js.map +1 -0
- package/dist/cjs/storageBrowser/apis/types.js +6 -0
- package/dist/cjs/storageBrowser/apis/types.js.map +1 -0
- package/dist/cjs/storageBrowser/index.js +11 -0
- package/dist/cjs/storageBrowser/index.js.map +1 -0
- package/dist/cjs/storageBrowser/locationCredentialsStore/constants.js +9 -0
- package/dist/cjs/storageBrowser/locationCredentialsStore/constants.js.map +1 -0
- package/dist/cjs/storageBrowser/locationCredentialsStore/create.js +36 -0
- package/dist/cjs/storageBrowser/locationCredentialsStore/create.js.map +1 -0
- package/dist/cjs/storageBrowser/locationCredentialsStore/index.js +9 -0
- package/dist/cjs/storageBrowser/locationCredentialsStore/index.js.map +1 -0
- package/dist/cjs/storageBrowser/locationCredentialsStore/registry.js +58 -0
- package/dist/cjs/storageBrowser/locationCredentialsStore/registry.js.map +1 -0
- package/dist/cjs/storageBrowser/locationCredentialsStore/store.js +99 -0
- package/dist/cjs/storageBrowser/locationCredentialsStore/store.js.map +1 -0
- package/dist/cjs/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.js +15 -0
- package/dist/cjs/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.js.map +1 -0
- package/dist/cjs/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.js +29 -0
- package/dist/cjs/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.js.map +1 -0
- package/dist/cjs/storageBrowser/managedAuthConfigAdapter/createManagedAuthConfigAdapter.js +32 -0
- package/dist/cjs/storageBrowser/managedAuthConfigAdapter/createManagedAuthConfigAdapter.js.map +1 -0
- package/dist/cjs/storageBrowser/managedAuthConfigAdapter/index.js +9 -0
- package/dist/cjs/storageBrowser/managedAuthConfigAdapter/index.js.map +1 -0
- package/dist/cjs/storageBrowser/types.js +6 -0
- package/dist/cjs/storageBrowser/types.js.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 +4 -1
- package/dist/esm/errors/types/validation.mjs +12 -0
- package/dist/esm/errors/types/validation.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/downloadData.mjs +13 -13
- package/dist/esm/providers/s3/apis/downloadData.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/internal/copy.mjs +48 -16
- package/dist/esm/providers/s3/apis/internal/copy.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/internal/getProperties.mjs +13 -14
- package/dist/esm/providers/s3/apis/internal/getProperties.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/internal/getUrl.mjs +13 -13
- package/dist/esm/providers/s3/apis/internal/getUrl.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/internal/list.mjs +13 -13
- package/dist/esm/providers/s3/apis/internal/list.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/internal/remove.mjs +13 -14
- package/dist/esm/providers/s3/apis/internal/remove.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.d.ts +2 -1
- package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.mjs +32 -12
- package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.d.ts +3 -1
- package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.mjs +13 -12
- package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.mjs +27 -16
- package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/uploadData/multipart/uploadPartExecutor.d.ts +3 -2
- package/dist/esm/providers/s3/apis/uploadData/multipart/uploadPartExecutor.mjs +27 -18
- package/dist/esm/providers/s3/apis/uploadData/multipart/uploadPartExecutor.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/uploadData/putObjectJob.mjs +30 -17
- package/dist/esm/providers/s3/apis/uploadData/putObjectJob.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/uploadData/validateObjectNotExists.d.ts +3 -0
- package/dist/esm/providers/s3/apis/uploadData/validateObjectNotExists.mjs +34 -0
- package/dist/esm/providers/s3/apis/uploadData/validateObjectNotExists.mjs.map +1 -0
- package/dist/esm/providers/s3/types/inputs.d.ts +5 -1
- package/dist/esm/providers/s3/types/options.d.ts +24 -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} +4 -4
- package/dist/esm/providers/s3/utils/client/{abortMultipartUpload.mjs → s3data/abortMultipartUpload.mjs} +5 -6
- 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} +19 -14
- 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} +4 -4
- package/dist/esm/providers/s3/utils/client/{copyObject.mjs → s3data/copyObject.mjs} +6 -6
- 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} +12 -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} +4 -4
- package/dist/esm/providers/s3/utils/client/{deleteObject.mjs → s3data/deleteObject.mjs} +5 -6
- 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} +4 -4
- package/dist/esm/providers/s3/utils/client/{getObject.mjs → s3data/getObject.mjs} +7 -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} +4 -4
- package/dist/esm/providers/s3/utils/client/{headObject.mjs → s3data/headObject.mjs} +5 -6
- 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} +6 -6
- 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} +7 -6
- 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} +6 -6
- 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} +7 -7
- 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 +17 -0
- package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.mjs +33 -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 +2 -1
- package/dist/esm/providers/s3/utils/client/utils/index.mjs +2 -1
- package/dist/esm/providers/s3/utils/client/utils/index.mjs.map +1 -1
- 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/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/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/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/storageBrowser/apis/constants.d.ts +2 -0
- package/dist/esm/storageBrowser/apis/constants.mjs +7 -0
- package/dist/esm/storageBrowser/apis/constants.mjs.map +1 -0
- package/dist/esm/storageBrowser/apis/getDataAccess.d.ts +2 -0
- package/dist/esm/storageBrowser/apis/getDataAccess.mjs +57 -0
- package/dist/esm/storageBrowser/apis/getDataAccess.mjs.map +1 -0
- package/dist/esm/storageBrowser/apis/listCallerAccessGrants.d.ts +2 -0
- package/dist/esm/storageBrowser/apis/listCallerAccessGrants.mjs +69 -0
- package/dist/esm/storageBrowser/apis/listCallerAccessGrants.mjs.map +1 -0
- package/dist/esm/storageBrowser/apis/types.d.ts +18 -0
- package/dist/esm/storageBrowser/apis/types.mjs +2 -0
- package/dist/esm/storageBrowser/apis/types.mjs.map +1 -0
- package/dist/esm/storageBrowser/index.d.ts +6 -0
- package/dist/esm/storageBrowser/index.mjs +3 -0
- package/dist/esm/storageBrowser/index.mjs.map +1 -0
- package/dist/esm/storageBrowser/locationCredentialsStore/constants.d.ts +2 -0
- package/dist/esm/storageBrowser/locationCredentialsStore/constants.mjs +7 -0
- package/dist/esm/storageBrowser/locationCredentialsStore/constants.mjs.map +1 -0
- package/dist/esm/storageBrowser/locationCredentialsStore/create.d.ts +2 -0
- package/dist/esm/storageBrowser/locationCredentialsStore/create.mjs +34 -0
- package/dist/esm/storageBrowser/locationCredentialsStore/create.mjs.map +1 -0
- package/dist/esm/storageBrowser/locationCredentialsStore/index.d.ts +1 -0
- package/dist/esm/storageBrowser/locationCredentialsStore/index.mjs +2 -0
- package/dist/esm/storageBrowser/locationCredentialsStore/index.mjs.map +1 -0
- package/dist/esm/storageBrowser/locationCredentialsStore/registry.d.ts +23 -0
- package/dist/esm/storageBrowser/locationCredentialsStore/registry.mjs +54 -0
- package/dist/esm/storageBrowser/locationCredentialsStore/registry.mjs.map +1 -0
- package/dist/esm/storageBrowser/locationCredentialsStore/store.d.ts +35 -0
- package/dist/esm/storageBrowser/locationCredentialsStore/store.mjs +95 -0
- package/dist/esm/storageBrowser/locationCredentialsStore/store.mjs.map +1 -0
- package/dist/esm/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.d.ts +8 -0
- package/dist/esm/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.mjs +13 -0
- package/dist/esm/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.mjs.map +1 -0
- package/dist/esm/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.d.ts +8 -0
- package/dist/esm/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.mjs +27 -0
- package/dist/esm/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.mjs.map +1 -0
- package/dist/esm/storageBrowser/managedAuthConfigAdapter/createManagedAuthConfigAdapter.d.ts +19 -0
- package/dist/esm/storageBrowser/managedAuthConfigAdapter/createManagedAuthConfigAdapter.mjs +30 -0
- package/dist/esm/storageBrowser/managedAuthConfigAdapter/createManagedAuthConfigAdapter.mjs.map +1 -0
- package/dist/esm/storageBrowser/managedAuthConfigAdapter/index.d.ts +1 -0
- package/dist/esm/storageBrowser/managedAuthConfigAdapter/index.mjs +2 -0
- package/dist/esm/storageBrowser/managedAuthConfigAdapter/index.mjs.map +1 -0
- package/dist/esm/storageBrowser/types.d.ts +92 -0
- package/dist/esm/storageBrowser/types.mjs +2 -0
- package/dist/esm/storageBrowser/types.mjs.map +1 -0
- package/package.json +117 -107
- package/src/errors/constants.ts +4 -0
- package/src/errors/types/validation.ts +12 -0
- package/src/providers/s3/apis/downloadData.ts +2 -2
- package/src/providers/s3/apis/internal/copy.ts +42 -12
- package/src/providers/s3/apis/internal/getProperties.ts +2 -3
- package/src/providers/s3/apis/internal/getUrl.ts +2 -2
- package/src/providers/s3/apis/internal/list.ts +3 -3
- package/src/providers/s3/apis/internal/remove.ts +2 -3
- package/src/providers/s3/apis/uploadData/multipart/initialUpload.ts +30 -1
- package/src/providers/s3/apis/uploadData/multipart/uploadCache.ts +4 -1
- package/src/providers/s3/apis/uploadData/multipart/uploadHandlers.ts +36 -17
- package/src/providers/s3/apis/uploadData/multipart/uploadPartExecutor.ts +23 -7
- package/src/providers/s3/apis/uploadData/putObjectJob.ts +22 -5
- package/src/providers/s3/apis/uploadData/validateObjectNotExists.ts +25 -0
- package/src/providers/s3/types/inputs.ts +7 -1
- package/src/providers/s3/types/options.ts +35 -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} +4 -4
- package/src/providers/s3/utils/client/{base.ts → s3data/base.ts} +26 -3
- package/src/providers/s3/utils/client/{completeMultipartUpload.ts → s3data/completeMultipartUpload.ts} +28 -19
- package/src/providers/s3/utils/client/{copyObject.ts → s3data/copyObject.ts} +4 -4
- package/src/providers/s3/utils/client/{createMultipartUpload.ts → s3data/createMultipartUpload.ts} +15 -9
- package/src/providers/s3/utils/client/{deleteObject.ts → s3data/deleteObject.ts} +7 -7
- package/src/providers/s3/utils/client/{getObject.ts → s3data/getObject.ts} +13 -9
- package/src/providers/s3/utils/client/{headObject.ts → s3data/headObject.ts} +4 -4
- package/src/providers/s3/utils/client/{listObjectsV2.ts → s3data/listObjectsV2.ts} +7 -7
- package/src/providers/s3/utils/client/{listParts.ts → s3data/listParts.ts} +9 -8
- package/src/providers/s3/utils/client/{putObject.ts → s3data/putObject.ts} +6 -4
- package/src/providers/s3/utils/client/{uploadPart.ts → s3data/uploadPart.ts} +13 -6
- package/src/providers/s3/utils/client/utils/createRetryDecider.ts +96 -0
- package/src/providers/s3/utils/client/utils/deserializeHelpers.ts +41 -0
- package/src/providers/s3/utils/client/utils/index.ts +2 -1
- package/src/providers/s3/utils/client/utils/parsePayload.ts +36 -18
- package/src/providers/s3/utils/crc32.native.ts +11 -0
- package/src/providers/s3/utils/crc32.ts +51 -0
- package/src/providers/s3/utils/resolveIdentityId.ts +11 -0
- package/src/providers/s3/utils/resolveS3ConfigAndInput.ts +109 -14
- package/src/providers/s3/utils/validateStorageOperationInput.ts +5 -1
- package/src/providers/s3/utils/validateStorageOperationInputWithPrefix.ts +5 -1
- package/src/storageBrowser/apis/constants.ts +5 -0
- package/src/storageBrowser/apis/getDataAccess.ts +79 -0
- package/src/storageBrowser/apis/listCallerAccessGrants.ts +94 -0
- package/src/storageBrowser/apis/types.ts +33 -0
- package/src/storageBrowser/index.ts +25 -0
- package/src/storageBrowser/locationCredentialsStore/constants.ts +5 -0
- package/src/storageBrowser/locationCredentialsStore/create.ts +54 -0
- package/src/storageBrowser/locationCredentialsStore/index.ts +4 -0
- package/src/storageBrowser/locationCredentialsStore/registry.ts +88 -0
- package/src/storageBrowser/locationCredentialsStore/store.ts +161 -0
- package/src/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.ts +21 -0
- package/src/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.ts +40 -0
- package/src/storageBrowser/managedAuthConfigAdapter/createManagedAuthConfigAdapter.ts +53 -0
- package/src/storageBrowser/managedAuthConfigAdapter/index.ts +8 -0
- package/src/storageBrowser/types.ts +117 -0
- 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/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.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/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/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/utils/client/{index.ts → s3data/index.ts} +0 -0
- /package/src/providers/s3/utils/client/{types.ts → s3data/types.ts} +0 -0
|
@@ -7,7 +7,9 @@ exports.resolveS3ConfigAndInput = void 0;
|
|
|
7
7
|
const assertValidationError_1 = require("../../../errors/utils/assertValidationError");
|
|
8
8
|
const validation_1 = require("../../../errors/types/validation");
|
|
9
9
|
const resolvePrefix_1 = require("../../../utils/resolvePrefix");
|
|
10
|
-
const
|
|
10
|
+
const StorageError_1 = require("../../../errors/StorageError");
|
|
11
|
+
const constants_1 = require("../../../errors/constants");
|
|
12
|
+
const constants_2 = require("./constants");
|
|
11
13
|
/**
|
|
12
14
|
* resolve the common input options for S3 API handlers from Amplify configuration and library options.
|
|
13
15
|
*
|
|
@@ -19,21 +21,32 @@ const constants_1 = require("./constants");
|
|
|
19
21
|
*
|
|
20
22
|
* @internal
|
|
21
23
|
*/
|
|
22
|
-
const resolveS3ConfigAndInput = async (amplify,
|
|
24
|
+
const resolveS3ConfigAndInput = async (amplify, apiInput) => {
|
|
25
|
+
const { options: apiOptions } = apiInput ?? {};
|
|
23
26
|
/**
|
|
24
27
|
* IdentityId is always cached in memory so we can safely make calls here. It
|
|
25
28
|
* should be stable even for unauthenticated users, regardless of credentials.
|
|
26
29
|
*/
|
|
27
30
|
const { identityId } = await amplify.Auth.fetchAuthSession();
|
|
28
|
-
(0, assertValidationError_1.assertValidationError)(!!identityId, validation_1.StorageValidationErrorCode.NoIdentityId);
|
|
29
31
|
/**
|
|
30
32
|
* A credentials provider function instead of a static credentials object is
|
|
31
33
|
* used because the long-running tasks like multipart upload may span over the
|
|
32
34
|
* credentials expiry. Auth.fetchAuthSession() automatically refreshes the
|
|
33
35
|
* credentials if they are expired.
|
|
36
|
+
*
|
|
37
|
+
* The optional forceRefresh option is set when the S3 service returns expired
|
|
38
|
+
* tokens error in the previous API call attempt.
|
|
34
39
|
*/
|
|
35
|
-
const credentialsProvider = async () => {
|
|
36
|
-
|
|
40
|
+
const credentialsProvider = async (options) => {
|
|
41
|
+
if (isLocationCredentialsProvider(apiOptions)) {
|
|
42
|
+
assertStorageInput(apiInput);
|
|
43
|
+
}
|
|
44
|
+
// TODO: forceRefresh option of fetchAuthSession would refresh both tokens and
|
|
45
|
+
// AWS credentials. So we do not support forceRefreshing from the Auth until
|
|
46
|
+
// we support refreshing only the credentials.
|
|
47
|
+
const { credentials } = isLocationCredentialsProvider(apiOptions)
|
|
48
|
+
? await apiOptions.locationCredentialsProvider(options)
|
|
49
|
+
: await amplify.Auth.fetchAuthSession();
|
|
37
50
|
(0, assertValidationError_1.assertValidationError)(!!credentials, validation_1.StorageValidationErrorCode.NoCredentials);
|
|
38
51
|
return credentials;
|
|
39
52
|
};
|
|
@@ -42,13 +55,11 @@ const resolveS3ConfigAndInput = async (amplify, apiOptions) => {
|
|
|
42
55
|
(0, assertValidationError_1.assertValidationError)(!!bucket, validation_1.StorageValidationErrorCode.NoBucket);
|
|
43
56
|
(0, assertValidationError_1.assertValidationError)(!!region, validation_1.StorageValidationErrorCode.NoRegion);
|
|
44
57
|
const { defaultAccessLevel, prefixResolver = resolvePrefix_1.resolvePrefix, isObjectLockEnabled, } = amplify.libraryOptions?.Storage?.S3 ?? {};
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
: identityId,
|
|
51
|
-
});
|
|
58
|
+
const accessLevel = apiOptions?.accessLevel ?? defaultAccessLevel ?? constants_2.DEFAULT_ACCESS_LEVEL;
|
|
59
|
+
const targetIdentityId = accessLevel === 'protected'
|
|
60
|
+
? (apiOptions?.targetIdentityId ?? identityId)
|
|
61
|
+
: identityId;
|
|
62
|
+
const keyPrefix = await prefixResolver({ accessLevel, targetIdentityId });
|
|
52
63
|
return {
|
|
53
64
|
s3Config: {
|
|
54
65
|
credentials: credentialsProvider,
|
|
@@ -56,7 +67,7 @@ const resolveS3ConfigAndInput = async (amplify, apiOptions) => {
|
|
|
56
67
|
useAccelerateEndpoint: apiOptions?.useAccelerateEndpoint,
|
|
57
68
|
...(dangerouslyConnectToHttpEndpointForTesting
|
|
58
69
|
? {
|
|
59
|
-
customEndpoint:
|
|
70
|
+
customEndpoint: constants_2.LOCAL_TESTING_S3_ENDPOINT,
|
|
60
71
|
forcePathStyle: true,
|
|
61
72
|
}
|
|
62
73
|
: {}),
|
|
@@ -68,6 +79,41 @@ const resolveS3ConfigAndInput = async (amplify, apiOptions) => {
|
|
|
68
79
|
};
|
|
69
80
|
};
|
|
70
81
|
exports.resolveS3ConfigAndInput = resolveS3ConfigAndInput;
|
|
82
|
+
const isLocationCredentialsProvider = (options) => {
|
|
83
|
+
return !!options?.locationCredentialsProvider;
|
|
84
|
+
};
|
|
85
|
+
const isInputWithCallbackPath = (input) => {
|
|
86
|
+
return ((input?.path &&
|
|
87
|
+
typeof input.path === 'function') ||
|
|
88
|
+
(input?.destination?.path &&
|
|
89
|
+
typeof input.destination?.path === 'function') ||
|
|
90
|
+
(input?.source?.path &&
|
|
91
|
+
typeof input.source?.path === 'function'));
|
|
92
|
+
};
|
|
93
|
+
const isDeprecatedInput = (input) => {
|
|
94
|
+
return (isInputWithKey(input) ||
|
|
95
|
+
isInputWithPrefix(input) ||
|
|
96
|
+
isInputWithCopySourceOrDestination(input));
|
|
97
|
+
};
|
|
98
|
+
const assertStorageInput = (input) => {
|
|
99
|
+
if (isDeprecatedInput(input) || isInputWithCallbackPath(input)) {
|
|
100
|
+
throw new StorageError_1.StorageError({
|
|
101
|
+
name: constants_1.INVALID_STORAGE_INPUT,
|
|
102
|
+
message: 'The input needs to have a path as a string value.',
|
|
103
|
+
recoverySuggestion: 'Please provide a valid path as a string value for the input.',
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
const isInputWithKey = (input) => {
|
|
108
|
+
return !!(typeof input.key === 'string');
|
|
109
|
+
};
|
|
110
|
+
const isInputWithPrefix = (input) => {
|
|
111
|
+
return !!(typeof input.prefix === 'string');
|
|
112
|
+
};
|
|
113
|
+
const isInputWithCopySourceOrDestination = (input) => {
|
|
114
|
+
return !!(typeof input.source?.key === 'string' ||
|
|
115
|
+
typeof input.destination?.key === 'string');
|
|
116
|
+
};
|
|
71
117
|
const resolveBucketConfig = (apiOptions, buckets) => {
|
|
72
118
|
if (typeof apiOptions.bucket === 'string') {
|
|
73
119
|
const bucketConfig = buckets?.[apiOptions.bucket];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveS3ConfigAndInput.js","sources":["../../../../../src/providers/s3/utils/resolveS3ConfigAndInput.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.resolveS3ConfigAndInput = void 0;\nconst assertValidationError_1 = require(\"../../../errors/utils/assertValidationError\");\nconst validation_1 = require(\"../../../errors/types/validation\");\nconst resolvePrefix_1 = require(\"../../../utils/resolvePrefix\");\nconst constants_1 = require(\"./constants\");\n/**\n * resolve the common input options for S3 API handlers from Amplify configuration and library options.\n *\n * @param {AmplifyClassV6} amplify The Amplify instance.\n * @param {S3ApiOptions} apiOptions The input options for S3 provider.\n * @returns {Promise<ResolvedS3ConfigAndInput>} The resolved common input options for S3 API handlers.\n * @throws A `StorageError` with `error.name` from `StorageValidationErrorCode` indicating invalid\n * configurations or Amplify library options.\n *\n * @internal\n */\nconst resolveS3ConfigAndInput = async (amplify, apiOptions) => {\n /**\n * IdentityId is always cached in memory so we can safely make calls here. It\n * should be stable even for unauthenticated users, regardless of credentials.\n */\n const { identityId } = await amplify.Auth.fetchAuthSession();\n (0, assertValidationError_1.assertValidationError)(!!identityId, validation_1.StorageValidationErrorCode.NoIdentityId);\n /**\n * A credentials provider function instead of a static credentials object is\n * used because the long-running tasks like multipart upload may span over the\n * credentials expiry. Auth.fetchAuthSession() automatically refreshes the\n * credentials if they are expired.\n */\n const credentialsProvider = async () => {\n const { credentials } = await amplify.Auth.fetchAuthSession();\n (0, assertValidationError_1.assertValidationError)(!!credentials, validation_1.StorageValidationErrorCode.NoCredentials);\n return credentials;\n };\n const { bucket: defaultBucket, region: defaultRegion, dangerouslyConnectToHttpEndpointForTesting, buckets, } = amplify.getConfig()?.Storage?.S3 ?? {};\n const { bucket = defaultBucket, region = defaultRegion } = (apiOptions?.bucket && resolveBucketConfig(apiOptions, buckets)) || {};\n (0, assertValidationError_1.assertValidationError)(!!bucket, validation_1.StorageValidationErrorCode.NoBucket);\n (0, assertValidationError_1.assertValidationError)(!!region, validation_1.StorageValidationErrorCode.NoRegion);\n const { defaultAccessLevel, prefixResolver = resolvePrefix_1.resolvePrefix, isObjectLockEnabled, } = amplify.libraryOptions?.Storage?.S3 ?? {};\n const keyPrefix = await prefixResolver({\n accessLevel: apiOptions?.accessLevel ?? defaultAccessLevel ?? constants_1.DEFAULT_ACCESS_LEVEL,\n // use conditional assign to make tsc happy because StorageOptions is a union type that may not have targetIdentityId\n targetIdentityId: apiOptions?.accessLevel === 'protected'\n ? (apiOptions?.targetIdentityId ?? identityId)\n : identityId,\n });\n return {\n s3Config: {\n credentials: credentialsProvider,\n region,\n useAccelerateEndpoint: apiOptions?.useAccelerateEndpoint,\n ...(dangerouslyConnectToHttpEndpointForTesting\n ? {\n customEndpoint: constants_1.LOCAL_TESTING_S3_ENDPOINT,\n forcePathStyle: true,\n }\n : {}),\n },\n bucket,\n keyPrefix,\n identityId,\n isObjectLockEnabled,\n };\n};\nexports.resolveS3ConfigAndInput = resolveS3ConfigAndInput;\nconst resolveBucketConfig = (apiOptions, buckets) => {\n if (typeof apiOptions.bucket === 'string') {\n const bucketConfig = buckets?.[apiOptions.bucket];\n (0, assertValidationError_1.assertValidationError)(!!bucketConfig, validation_1.StorageValidationErrorCode.InvalidStorageBucket);\n return { bucket: bucketConfig.bucketName, region: bucketConfig.region };\n }\n if (typeof apiOptions.bucket === 'object') {\n return {\n bucket: apiOptions.bucket.bucketName,\n region: apiOptions.bucket.region,\n };\n }\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolveS3ConfigAndInput.js","sources":["../../../../../src/providers/s3/utils/resolveS3ConfigAndInput.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.resolveS3ConfigAndInput = void 0;\nconst assertValidationError_1 = require(\"../../../errors/utils/assertValidationError\");\nconst validation_1 = require(\"../../../errors/types/validation\");\nconst resolvePrefix_1 = require(\"../../../utils/resolvePrefix\");\nconst StorageError_1 = require(\"../../../errors/StorageError\");\nconst constants_1 = require(\"../../../errors/constants\");\nconst constants_2 = require(\"./constants\");\n/**\n * resolve the common input options for S3 API handlers from Amplify configuration and library options.\n *\n * @param {AmplifyClassV6} amplify The Amplify instance.\n * @param {S3ApiOptions} apiOptions The input options for S3 provider.\n * @returns {Promise<ResolvedS3ConfigAndInput>} The resolved common input options for S3 API handlers.\n * @throws A `StorageError` with `error.name` from `StorageValidationErrorCode` indicating invalid\n * configurations or Amplify library options.\n *\n * @internal\n */\nconst resolveS3ConfigAndInput = async (amplify, apiInput) => {\n const { options: apiOptions } = apiInput ?? {};\n /**\n * IdentityId is always cached in memory so we can safely make calls here. It\n * should be stable even for unauthenticated users, regardless of credentials.\n */\n const { identityId } = await amplify.Auth.fetchAuthSession();\n /**\n * A credentials provider function instead of a static credentials object is\n * used because the long-running tasks like multipart upload may span over the\n * credentials expiry. Auth.fetchAuthSession() automatically refreshes the\n * credentials if they are expired.\n *\n * The optional forceRefresh option is set when the S3 service returns expired\n * tokens error in the previous API call attempt.\n */\n const credentialsProvider = async (options) => {\n if (isLocationCredentialsProvider(apiOptions)) {\n assertStorageInput(apiInput);\n }\n // TODO: forceRefresh option of fetchAuthSession would refresh both tokens and\n // AWS credentials. So we do not support forceRefreshing from the Auth until\n // we support refreshing only the credentials.\n const { credentials } = isLocationCredentialsProvider(apiOptions)\n ? await apiOptions.locationCredentialsProvider(options)\n : await amplify.Auth.fetchAuthSession();\n (0, assertValidationError_1.assertValidationError)(!!credentials, validation_1.StorageValidationErrorCode.NoCredentials);\n return credentials;\n };\n const { bucket: defaultBucket, region: defaultRegion, dangerouslyConnectToHttpEndpointForTesting, buckets, } = amplify.getConfig()?.Storage?.S3 ?? {};\n const { bucket = defaultBucket, region = defaultRegion } = (apiOptions?.bucket && resolveBucketConfig(apiOptions, buckets)) || {};\n (0, assertValidationError_1.assertValidationError)(!!bucket, validation_1.StorageValidationErrorCode.NoBucket);\n (0, assertValidationError_1.assertValidationError)(!!region, validation_1.StorageValidationErrorCode.NoRegion);\n const { defaultAccessLevel, prefixResolver = resolvePrefix_1.resolvePrefix, isObjectLockEnabled, } = amplify.libraryOptions?.Storage?.S3 ?? {};\n const accessLevel = apiOptions?.accessLevel ?? defaultAccessLevel ?? constants_2.DEFAULT_ACCESS_LEVEL;\n const targetIdentityId = accessLevel === 'protected'\n ? (apiOptions?.targetIdentityId ?? identityId)\n : identityId;\n const keyPrefix = await prefixResolver({ accessLevel, targetIdentityId });\n return {\n s3Config: {\n credentials: credentialsProvider,\n region,\n useAccelerateEndpoint: apiOptions?.useAccelerateEndpoint,\n ...(dangerouslyConnectToHttpEndpointForTesting\n ? {\n customEndpoint: constants_2.LOCAL_TESTING_S3_ENDPOINT,\n forcePathStyle: true,\n }\n : {}),\n },\n bucket,\n keyPrefix,\n identityId,\n isObjectLockEnabled,\n };\n};\nexports.resolveS3ConfigAndInput = resolveS3ConfigAndInput;\nconst isLocationCredentialsProvider = (options) => {\n return !!options?.locationCredentialsProvider;\n};\nconst isInputWithCallbackPath = (input) => {\n return ((input?.path &&\n typeof input.path === 'function') ||\n (input?.destination?.path &&\n typeof input.destination?.path === 'function') ||\n (input?.source?.path &&\n typeof input.source?.path === 'function'));\n};\nconst isDeprecatedInput = (input) => {\n return (isInputWithKey(input) ||\n isInputWithPrefix(input) ||\n isInputWithCopySourceOrDestination(input));\n};\nconst assertStorageInput = (input) => {\n if (isDeprecatedInput(input) || isInputWithCallbackPath(input)) {\n throw new StorageError_1.StorageError({\n name: constants_1.INVALID_STORAGE_INPUT,\n message: 'The input needs to have a path as a string value.',\n recoverySuggestion: 'Please provide a valid path as a string value for the input.',\n });\n }\n};\nconst isInputWithKey = (input) => {\n return !!(typeof input.key === 'string');\n};\nconst isInputWithPrefix = (input) => {\n return !!(typeof input.prefix === 'string');\n};\nconst isInputWithCopySourceOrDestination = (input) => {\n return !!(typeof input.source?.key === 'string' ||\n typeof input.destination?.key === 'string');\n};\nconst resolveBucketConfig = (apiOptions, buckets) => {\n if (typeof apiOptions.bucket === 'string') {\n const bucketConfig = buckets?.[apiOptions.bucket];\n (0, assertValidationError_1.assertValidationError)(!!bucketConfig, validation_1.StorageValidationErrorCode.InvalidStorageBucket);\n return { bucket: bucketConfig.bucketName, region: bucketConfig.region };\n }\n if (typeof apiOptions.bucket === 'object') {\n return {\n bucket: apiOptions.bucket.bucketName,\n region: apiOptions.bucket.region,\n };\n }\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ const assertValidationError_1 = require("../../../errors/utils/assertValidationE
|
|
|
8
8
|
const validation_1 = require("../../../errors/types/validation");
|
|
9
9
|
const isInputWithPath_1 = require("./isInputWithPath");
|
|
10
10
|
const constants_1 = require("./constants");
|
|
11
|
+
const resolveIdentityId_1 = require("./resolveIdentityId");
|
|
11
12
|
const validateStorageOperationInput = (input, identityId) => {
|
|
12
13
|
(0, assertValidationError_1.assertValidationError)(
|
|
13
14
|
// Key present without a path
|
|
@@ -16,7 +17,9 @@ const validateStorageOperationInput = (input, identityId) => {
|
|
|
16
17
|
(!input.key && !!input.path), validation_1.StorageValidationErrorCode.InvalidStorageOperationInput);
|
|
17
18
|
if ((0, isInputWithPath_1.isInputWithPath)(input)) {
|
|
18
19
|
const { path } = input;
|
|
19
|
-
const objectKey = typeof path === 'string'
|
|
20
|
+
const objectKey = typeof path === 'string'
|
|
21
|
+
? path
|
|
22
|
+
: path({ identityId: (0, resolveIdentityId_1.resolveIdentityId)(identityId) });
|
|
20
23
|
(0, assertValidationError_1.assertValidationError)(!objectKey.startsWith('/'), validation_1.StorageValidationErrorCode.InvalidStoragePathInput);
|
|
21
24
|
return {
|
|
22
25
|
inputType: constants_1.STORAGE_INPUT_PATH,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateStorageOperationInput.js","sources":["../../../../../src/providers/s3/utils/validateStorageOperationInput.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.validateStorageOperationInput = void 0;\nconst assertValidationError_1 = require(\"../../../errors/utils/assertValidationError\");\nconst validation_1 = require(\"../../../errors/types/validation\");\nconst isInputWithPath_1 = require(\"./isInputWithPath\");\nconst constants_1 = require(\"./constants\");\nconst validateStorageOperationInput = (input, identityId) => {\n (0, assertValidationError_1.assertValidationError)(\n // Key present without a path\n (!!input.key && !input.path) ||\n // Path present without a key\n (!input.key && !!input.path), validation_1.StorageValidationErrorCode.InvalidStorageOperationInput);\n if ((0, isInputWithPath_1.isInputWithPath)(input)) {\n const { path } = input;\n const objectKey = typeof path === 'string'
|
|
1
|
+
{"version":3,"file":"validateStorageOperationInput.js","sources":["../../../../../src/providers/s3/utils/validateStorageOperationInput.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.validateStorageOperationInput = void 0;\nconst assertValidationError_1 = require(\"../../../errors/utils/assertValidationError\");\nconst validation_1 = require(\"../../../errors/types/validation\");\nconst isInputWithPath_1 = require(\"./isInputWithPath\");\nconst constants_1 = require(\"./constants\");\nconst resolveIdentityId_1 = require(\"./resolveIdentityId\");\nconst validateStorageOperationInput = (input, identityId) => {\n (0, assertValidationError_1.assertValidationError)(\n // Key present without a path\n (!!input.key && !input.path) ||\n // Path present without a key\n (!input.key && !!input.path), validation_1.StorageValidationErrorCode.InvalidStorageOperationInput);\n if ((0, isInputWithPath_1.isInputWithPath)(input)) {\n const { path } = input;\n const objectKey = typeof path === 'string'\n ? path\n : path({ identityId: (0, resolveIdentityId_1.resolveIdentityId)(identityId) });\n (0, assertValidationError_1.assertValidationError)(!objectKey.startsWith('/'), validation_1.StorageValidationErrorCode.InvalidStoragePathInput);\n return {\n inputType: constants_1.STORAGE_INPUT_PATH,\n objectKey,\n };\n }\n else {\n return { inputType: constants_1.STORAGE_INPUT_KEY, objectKey: input.key };\n }\n};\nexports.validateStorageOperationInput = validateStorageOperationInput;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,6BAA6B,GAAG,KAAK,CAAC,CAAC;AAC/C,MAAM,uBAAuB,GAAG,OAAO,CAAC,6CAA6C,CAAC,CAAC;AACvF,MAAM,YAAY,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAC;AACjE,MAAM,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AACvD,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAC3C,MAAM,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAC3D,MAAM,6BAA6B,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK;AAC7D,IAAI,IAAI,uBAAuB,CAAC,qBAAqB;AACrD;AACA,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;AAC/B;AACA,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,0BAA0B,CAAC,4BAA4B,CAAC,CAAC;AAC5G,IAAI,IAAI,IAAI,iBAAiB,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE;AACvD,QAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;AAC/B,QAAQ,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,QAAQ;AAClD,cAAc,IAAI;AAClB,cAAc,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,mBAAmB,CAAC,iBAAiB,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;AAC3F,QAAQ,IAAI,uBAAuB,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,0BAA0B,CAAC,uBAAuB,CAAC,CAAC;AACxJ,QAAQ,OAAO;AACf,YAAY,SAAS,EAAE,WAAW,CAAC,kBAAkB;AACrD,YAAY,SAAS;AACrB,SAAS,CAAC;AACV,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;AAClF,KAAK;AACL,CAAC,CAAC;AACF,OAAO,CAAC,6BAA6B,GAAG,6BAA6B;;"}
|
|
@@ -7,6 +7,7 @@ exports.validateStorageOperationInputWithPrefix = void 0;
|
|
|
7
7
|
const assertValidationError_1 = require("../../../errors/utils/assertValidationError");
|
|
8
8
|
const validation_1 = require("../../../errors/types/validation");
|
|
9
9
|
const constants_1 = require("./constants");
|
|
10
|
+
const resolveIdentityId_1 = require("./resolveIdentityId");
|
|
10
11
|
// Local assertion function with StorageOperationInputWithPrefixPath as Input
|
|
11
12
|
const _isInputWithPath = (input) => {
|
|
12
13
|
return input.path !== undefined;
|
|
@@ -16,7 +17,9 @@ const validateStorageOperationInputWithPrefix = (input, identityId) => {
|
|
|
16
17
|
(0, assertValidationError_1.assertValidationError)(!(input.prefix && input.path), validation_1.StorageValidationErrorCode.InvalidStorageOperationPrefixInput);
|
|
17
18
|
if (_isInputWithPath(input)) {
|
|
18
19
|
const { path } = input;
|
|
19
|
-
const objectKey = typeof path === 'string'
|
|
20
|
+
const objectKey = typeof path === 'string'
|
|
21
|
+
? path
|
|
22
|
+
: path({ identityId: (0, resolveIdentityId_1.resolveIdentityId)(identityId) });
|
|
20
23
|
// Assert on no leading slash in the path parameter
|
|
21
24
|
(0, assertValidationError_1.assertValidationError)(!objectKey.startsWith('/'), validation_1.StorageValidationErrorCode.InvalidStoragePathInput);
|
|
22
25
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateStorageOperationInputWithPrefix.js","sources":["../../../../../src/providers/s3/utils/validateStorageOperationInputWithPrefix.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.validateStorageOperationInputWithPrefix = void 0;\nconst assertValidationError_1 = require(\"../../../errors/utils/assertValidationError\");\nconst validation_1 = require(\"../../../errors/types/validation\");\nconst constants_1 = require(\"./constants\");\n// Local assertion function with StorageOperationInputWithPrefixPath as Input\nconst _isInputWithPath = (input) => {\n return input.path !== undefined;\n};\nconst validateStorageOperationInputWithPrefix = (input, identityId) => {\n // Validate prefix & path not present at the same time\n (0, assertValidationError_1.assertValidationError)(!(input.prefix && input.path), validation_1.StorageValidationErrorCode.InvalidStorageOperationPrefixInput);\n if (_isInputWithPath(input)) {\n const { path } = input;\n const objectKey = typeof path === 'string'
|
|
1
|
+
{"version":3,"file":"validateStorageOperationInputWithPrefix.js","sources":["../../../../../src/providers/s3/utils/validateStorageOperationInputWithPrefix.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.validateStorageOperationInputWithPrefix = void 0;\nconst assertValidationError_1 = require(\"../../../errors/utils/assertValidationError\");\nconst validation_1 = require(\"../../../errors/types/validation\");\nconst constants_1 = require(\"./constants\");\nconst resolveIdentityId_1 = require(\"./resolveIdentityId\");\n// Local assertion function with StorageOperationInputWithPrefixPath as Input\nconst _isInputWithPath = (input) => {\n return input.path !== undefined;\n};\nconst validateStorageOperationInputWithPrefix = (input, identityId) => {\n // Validate prefix & path not present at the same time\n (0, assertValidationError_1.assertValidationError)(!(input.prefix && input.path), validation_1.StorageValidationErrorCode.InvalidStorageOperationPrefixInput);\n if (_isInputWithPath(input)) {\n const { path } = input;\n const objectKey = typeof path === 'string'\n ? path\n : path({ identityId: (0, resolveIdentityId_1.resolveIdentityId)(identityId) });\n // Assert on no leading slash in the path parameter\n (0, assertValidationError_1.assertValidationError)(!objectKey.startsWith('/'), validation_1.StorageValidationErrorCode.InvalidStoragePathInput);\n return {\n inputType: constants_1.STORAGE_INPUT_PATH,\n objectKey,\n };\n }\n else {\n return { inputType: constants_1.STORAGE_INPUT_PREFIX, objectKey: input.prefix ?? '' };\n }\n};\nexports.validateStorageOperationInputWithPrefix = validateStorageOperationInputWithPrefix;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,uCAAuC,GAAG,KAAK,CAAC,CAAC;AACzD,MAAM,uBAAuB,GAAG,OAAO,CAAC,6CAA6C,CAAC,CAAC;AACvF,MAAM,YAAY,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAC;AACjE,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAC3C,MAAM,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAC3D;AACA,MAAM,gBAAgB,GAAG,CAAC,KAAK,KAAK;AACpC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;AACpC,CAAC,CAAC;AACF,MAAM,uCAAuC,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK;AACvE;AACA,IAAI,IAAI,uBAAuB,CAAC,qBAAqB,EAAE,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,0BAA0B,CAAC,kCAAkC,CAAC,CAAC;AAClK,IAAI,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;AACjC,QAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;AAC/B,QAAQ,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,QAAQ;AAClD,cAAc,IAAI;AAClB,cAAc,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,mBAAmB,CAAC,iBAAiB,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;AAC3F;AACA,QAAQ,IAAI,uBAAuB,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,0BAA0B,CAAC,uBAAuB,CAAC,CAAC;AACxJ,QAAQ,OAAO;AACf,YAAY,SAAS,EAAE,WAAW,CAAC,kBAAkB;AACrD,YAAY,SAAS;AACrB,SAAS,CAAC;AACV,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,oBAAoB,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;AAC9F,KAAK;AACL,CAAC,CAAC;AACF,OAAO,CAAC,uCAAuC,GAAG,uCAAuC;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MAX_PAGE_SIZE = exports.DEFAULT_CRED_TTL = void 0;
|
|
7
|
+
exports.DEFAULT_CRED_TTL = 15 * 60; // 15 minutes
|
|
8
|
+
exports.MAX_PAGE_SIZE = 1000;
|
|
9
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/storageBrowser/apis/constants.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.MAX_PAGE_SIZE = exports.DEFAULT_CRED_TTL = void 0;\nexports.DEFAULT_CRED_TTL = 15 * 60; // 15 minutes\nexports.MAX_PAGE_SIZE = 1000;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,gBAAgB,GAAG,KAAK,CAAC,CAAC;AAC1D,OAAO,CAAC,gBAAgB,GAAG,EAAE,GAAG,EAAE,CAAC;AACnC,OAAO,CAAC,aAAa,GAAG,IAAI;;"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getDataAccess = void 0;
|
|
7
|
+
const utils_1 = require("@aws-amplify/core/internals/utils");
|
|
8
|
+
const userAgent_1 = require("../../providers/s3/utils/userAgent");
|
|
9
|
+
const s3control_1 = require("../../providers/s3/utils/client/s3control");
|
|
10
|
+
const StorageError_1 = require("../../errors/StorageError");
|
|
11
|
+
const utils_2 = require("../../utils");
|
|
12
|
+
const constants_1 = require("./constants");
|
|
13
|
+
const getDataAccess = async (input) => {
|
|
14
|
+
const targetType = input.scope.endsWith('*') ? undefined : 'Object';
|
|
15
|
+
const clientCredentialsProvider = async (options) => {
|
|
16
|
+
const { credentials } = await input.credentialsProvider(options);
|
|
17
|
+
return credentials;
|
|
18
|
+
};
|
|
19
|
+
const result = await (0, s3control_1.getDataAccess)({
|
|
20
|
+
credentials: clientCredentialsProvider,
|
|
21
|
+
region: input.region,
|
|
22
|
+
userAgentValue: (0, userAgent_1.getStorageUserAgentValue)(utils_1.StorageAction.GetDataAccess),
|
|
23
|
+
}, {
|
|
24
|
+
AccountId: input.accountId,
|
|
25
|
+
Target: input.scope,
|
|
26
|
+
Permission: input.permission,
|
|
27
|
+
TargetType: targetType,
|
|
28
|
+
DurationSeconds: constants_1.DEFAULT_CRED_TTL,
|
|
29
|
+
});
|
|
30
|
+
const grantCredentials = result.Credentials;
|
|
31
|
+
// Ensure that S3 returned credentials (this shouldn't happen)
|
|
32
|
+
if (!grantCredentials ||
|
|
33
|
+
!grantCredentials.AccessKeyId ||
|
|
34
|
+
!grantCredentials.SecretAccessKey ||
|
|
35
|
+
!grantCredentials.SessionToken ||
|
|
36
|
+
!grantCredentials.Expiration) {
|
|
37
|
+
throw new StorageError_1.StorageError({
|
|
38
|
+
name: utils_1.AmplifyErrorCode.Unknown,
|
|
39
|
+
message: 'Service did not return valid temporary credentials.',
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
utils_2.logger.debug(`Retrieved credentials for: ${result.MatchedGrantTarget}`);
|
|
44
|
+
}
|
|
45
|
+
const { AccessKeyId: accessKeyId, SecretAccessKey: secretAccessKey, SessionToken: sessionToken, Expiration: expiration, } = grantCredentials;
|
|
46
|
+
return {
|
|
47
|
+
credentials: {
|
|
48
|
+
accessKeyId,
|
|
49
|
+
secretAccessKey,
|
|
50
|
+
sessionToken,
|
|
51
|
+
expiration,
|
|
52
|
+
},
|
|
53
|
+
scope: result.MatchedGrantTarget,
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
exports.getDataAccess = getDataAccess;
|
|
57
|
+
//# sourceMappingURL=getDataAccess.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDataAccess.js","sources":["../../../../src/storageBrowser/apis/getDataAccess.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.getDataAccess = void 0;\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst userAgent_1 = require(\"../../providers/s3/utils/userAgent\");\nconst s3control_1 = require(\"../../providers/s3/utils/client/s3control\");\nconst StorageError_1 = require(\"../../errors/StorageError\");\nconst utils_2 = require(\"../../utils\");\nconst constants_1 = require(\"./constants\");\nconst getDataAccess = async (input) => {\n const targetType = input.scope.endsWith('*') ? undefined : 'Object';\n const clientCredentialsProvider = async (options) => {\n const { credentials } = await input.credentialsProvider(options);\n return credentials;\n };\n const result = await (0, s3control_1.getDataAccess)({\n credentials: clientCredentialsProvider,\n region: input.region,\n userAgentValue: (0, userAgent_1.getStorageUserAgentValue)(utils_1.StorageAction.GetDataAccess),\n }, {\n AccountId: input.accountId,\n Target: input.scope,\n Permission: input.permission,\n TargetType: targetType,\n DurationSeconds: constants_1.DEFAULT_CRED_TTL,\n });\n const grantCredentials = result.Credentials;\n // Ensure that S3 returned credentials (this shouldn't happen)\n if (!grantCredentials ||\n !grantCredentials.AccessKeyId ||\n !grantCredentials.SecretAccessKey ||\n !grantCredentials.SessionToken ||\n !grantCredentials.Expiration) {\n throw new StorageError_1.StorageError({\n name: utils_1.AmplifyErrorCode.Unknown,\n message: 'Service did not return valid temporary credentials.',\n });\n }\n else {\n utils_2.logger.debug(`Retrieved credentials for: ${result.MatchedGrantTarget}`);\n }\n const { AccessKeyId: accessKeyId, SecretAccessKey: secretAccessKey, SessionToken: sessionToken, Expiration: expiration, } = grantCredentials;\n return {\n credentials: {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration,\n },\n scope: result.MatchedGrantTarget,\n };\n};\nexports.getDataAccess = getDataAccess;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC;AAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAAC;AAC7D,MAAM,WAAW,GAAG,OAAO,CAAC,oCAAoC,CAAC,CAAC;AAClE,MAAM,WAAW,GAAG,OAAO,CAAC,2CAA2C,CAAC,CAAC;AACzE,MAAM,cAAc,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;AAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACvC,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAC3C,MAAM,aAAa,GAAG,OAAO,KAAK,KAAK;AACvC,IAAI,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,QAAQ,CAAC;AACxE,IAAI,MAAM,yBAAyB,GAAG,OAAO,OAAO,KAAK;AACzD,QAAQ,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACzE,QAAQ,OAAO,WAAW,CAAC;AAC3B,KAAK,CAAC;AACN,IAAI,MAAM,MAAM,GAAG,MAAM,IAAI,WAAW,CAAC,aAAa,EAAE;AACxD,QAAQ,WAAW,EAAE,yBAAyB;AAC9C,QAAQ,MAAM,EAAE,KAAK,CAAC,MAAM;AAC5B,QAAQ,cAAc,EAAE,IAAI,WAAW,CAAC,wBAAwB,EAAE,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC;AACtG,KAAK,EAAE;AACP,QAAQ,SAAS,EAAE,KAAK,CAAC,SAAS;AAClC,QAAQ,MAAM,EAAE,KAAK,CAAC,KAAK;AAC3B,QAAQ,UAAU,EAAE,KAAK,CAAC,UAAU;AACpC,QAAQ,UAAU,EAAE,UAAU;AAC9B,QAAQ,eAAe,EAAE,WAAW,CAAC,gBAAgB;AACrD,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC;AAChD;AACA,IAAI,IAAI,CAAC,gBAAgB;AACzB,QAAQ,CAAC,gBAAgB,CAAC,WAAW;AACrC,QAAQ,CAAC,gBAAgB,CAAC,eAAe;AACzC,QAAQ,CAAC,gBAAgB,CAAC,YAAY;AACtC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE;AACtC,QAAQ,MAAM,IAAI,cAAc,CAAC,YAAY,CAAC;AAC9C,YAAY,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,OAAO;AAClD,YAAY,OAAO,EAAE,qDAAqD;AAC1E,SAAS,CAAC,CAAC;AACX,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,2BAA2B,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AACxF,KAAK;AACL,IAAI,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,GAAG,GAAG,gBAAgB,CAAC;AACjJ,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,WAAW;AACvB,YAAY,eAAe;AAC3B,YAAY,YAAY;AACxB,YAAY,UAAU;AACtB,SAAS;AACT,QAAQ,KAAK,EAAE,MAAM,CAAC,kBAAkB;AACxC,KAAK,CAAC;AACN,CAAC,CAAC;AACF,OAAO,CAAC,aAAa,GAAG,aAAa;;"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.listCallerAccessGrants = void 0;
|
|
7
|
+
const utils_1 = require("@aws-amplify/core/internals/utils");
|
|
8
|
+
const utils_2 = require("../../utils");
|
|
9
|
+
const s3control_1 = require("../../providers/s3/utils/client/s3control");
|
|
10
|
+
const StorageError_1 = require("../../errors/StorageError");
|
|
11
|
+
const userAgent_1 = require("../../providers/s3/utils/userAgent");
|
|
12
|
+
const constants_1 = require("./constants");
|
|
13
|
+
const listCallerAccessGrants = async (input) => {
|
|
14
|
+
const { credentialsProvider, accountId, region, nextToken, pageSize } = input;
|
|
15
|
+
utils_2.logger.debug(`listing available locations from account ${input.accountId}`);
|
|
16
|
+
if (!!pageSize && pageSize > constants_1.MAX_PAGE_SIZE) {
|
|
17
|
+
utils_2.logger.debug(`defaulting pageSize to ${constants_1.MAX_PAGE_SIZE}.`);
|
|
18
|
+
}
|
|
19
|
+
const clientCredentialsProvider = async (options) => {
|
|
20
|
+
const { credentials } = await credentialsProvider(options);
|
|
21
|
+
return credentials;
|
|
22
|
+
};
|
|
23
|
+
const { CallerAccessGrantsList, NextToken } = await (0, s3control_1.listCallerAccessGrants)({
|
|
24
|
+
credentials: clientCredentialsProvider,
|
|
25
|
+
region,
|
|
26
|
+
userAgentValue: (0, userAgent_1.getStorageUserAgentValue)(utils_1.StorageAction.ListCallerAccessGrants),
|
|
27
|
+
}, {
|
|
28
|
+
AccountId: accountId,
|
|
29
|
+
NextToken: nextToken,
|
|
30
|
+
MaxResults: pageSize ?? constants_1.MAX_PAGE_SIZE,
|
|
31
|
+
});
|
|
32
|
+
const accessGrants = CallerAccessGrantsList?.map(grant => {
|
|
33
|
+
assertGrantScope(grant.GrantScope);
|
|
34
|
+
return {
|
|
35
|
+
scope: grant.GrantScope,
|
|
36
|
+
permission: grant.Permission,
|
|
37
|
+
type: parseGrantType(grant.GrantScope),
|
|
38
|
+
};
|
|
39
|
+
}) ?? [];
|
|
40
|
+
return {
|
|
41
|
+
locations: accessGrants,
|
|
42
|
+
nextToken: NextToken,
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
exports.listCallerAccessGrants = listCallerAccessGrants;
|
|
46
|
+
const parseGrantType = (grantScope) => {
|
|
47
|
+
const bucketScopeReg = /^s3:\/\/(.*)\/\*$/;
|
|
48
|
+
const possibleBucketName = grantScope.match(bucketScopeReg)?.[1];
|
|
49
|
+
if (!grantScope.endsWith('*')) {
|
|
50
|
+
return 'OBJECT';
|
|
51
|
+
}
|
|
52
|
+
else if (grantScope.endsWith('/*') &&
|
|
53
|
+
possibleBucketName &&
|
|
54
|
+
possibleBucketName.indexOf('/') === -1) {
|
|
55
|
+
return 'BUCKET';
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
return 'PREFIX';
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
function assertGrantScope(value) {
|
|
62
|
+
if (typeof value !== 'string' || !value.startsWith('s3://')) {
|
|
63
|
+
throw new StorageError_1.StorageError({
|
|
64
|
+
name: 'InvalidGrantScope',
|
|
65
|
+
message: `Expected a valid grant scope, got ${value}`,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=listCallerAccessGrants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listCallerAccessGrants.js","sources":["../../../../src/storageBrowser/apis/listCallerAccessGrants.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.listCallerAccessGrants = void 0;\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst utils_2 = require(\"../../utils\");\nconst s3control_1 = require(\"../../providers/s3/utils/client/s3control\");\nconst StorageError_1 = require(\"../../errors/StorageError\");\nconst userAgent_1 = require(\"../../providers/s3/utils/userAgent\");\nconst constants_1 = require(\"./constants\");\nconst listCallerAccessGrants = async (input) => {\n const { credentialsProvider, accountId, region, nextToken, pageSize } = input;\n utils_2.logger.debug(`listing available locations from account ${input.accountId}`);\n if (!!pageSize && pageSize > constants_1.MAX_PAGE_SIZE) {\n utils_2.logger.debug(`defaulting pageSize to ${constants_1.MAX_PAGE_SIZE}.`);\n }\n const clientCredentialsProvider = async (options) => {\n const { credentials } = await credentialsProvider(options);\n return credentials;\n };\n const { CallerAccessGrantsList, NextToken } = await (0, s3control_1.listCallerAccessGrants)({\n credentials: clientCredentialsProvider,\n region,\n userAgentValue: (0, userAgent_1.getStorageUserAgentValue)(utils_1.StorageAction.ListCallerAccessGrants),\n }, {\n AccountId: accountId,\n NextToken: nextToken,\n MaxResults: pageSize ?? constants_1.MAX_PAGE_SIZE,\n });\n const accessGrants = CallerAccessGrantsList?.map(grant => {\n assertGrantScope(grant.GrantScope);\n return {\n scope: grant.GrantScope,\n permission: grant.Permission,\n type: parseGrantType(grant.GrantScope),\n };\n }) ?? [];\n return {\n locations: accessGrants,\n nextToken: NextToken,\n };\n};\nexports.listCallerAccessGrants = listCallerAccessGrants;\nconst parseGrantType = (grantScope) => {\n const bucketScopeReg = /^s3:\\/\\/(.*)\\/\\*$/;\n const possibleBucketName = grantScope.match(bucketScopeReg)?.[1];\n if (!grantScope.endsWith('*')) {\n return 'OBJECT';\n }\n else if (grantScope.endsWith('/*') &&\n possibleBucketName &&\n possibleBucketName.indexOf('/') === -1) {\n return 'BUCKET';\n }\n else {\n return 'PREFIX';\n }\n};\nfunction assertGrantScope(value) {\n if (typeof value !== 'string' || !value.startsWith('s3://')) {\n throw new StorageError_1.StorageError({\n name: 'InvalidGrantScope',\n message: `Expected a valid grant scope, got ${value}`,\n });\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../src/storageBrowser/apis/types.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 });\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createManagedAuthConfigAdapter = exports.createLocationCredentialsStore = void 0;
|
|
7
|
+
var locationCredentialsStore_1 = require("./locationCredentialsStore");
|
|
8
|
+
Object.defineProperty(exports, "createLocationCredentialsStore", { enumerable: true, get: function () { return locationCredentialsStore_1.createLocationCredentialsStore; } });
|
|
9
|
+
var managedAuthConfigAdapter_1 = require("./managedAuthConfigAdapter");
|
|
10
|
+
Object.defineProperty(exports, "createManagedAuthConfigAdapter", { enumerable: true, get: function () { return managedAuthConfigAdapter_1.createManagedAuthConfigAdapter; } });
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/storageBrowser/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.createManagedAuthConfigAdapter = exports.createLocationCredentialsStore = void 0;\nvar locationCredentialsStore_1 = require(\"./locationCredentialsStore\");\nObject.defineProperty(exports, \"createLocationCredentialsStore\", { enumerable: true, get: function () { return locationCredentialsStore_1.createLocationCredentialsStore; } });\nvar managedAuthConfigAdapter_1 = require(\"./managedAuthConfigAdapter\");\nObject.defineProperty(exports, \"createManagedAuthConfigAdapter\", { enumerable: true, get: function () { return managedAuthConfigAdapter_1.createManagedAuthConfigAdapter; } });\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,8BAA8B,GAAG,OAAO,CAAC,8BAA8B,GAAG,KAAK,CAAC,CAAC;AACzF,IAAI,0BAA0B,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AACvE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,gCAAgC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,0BAA0B,CAAC,8BAA8B,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/K,IAAI,0BAA0B,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AACvE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,gCAAgC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,0BAA0B,CAAC,8BAA8B,CAAC,EAAE,EAAE,CAAC;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CREDENTIALS_REFRESH_WINDOW_MS = exports.CREDENTIALS_STORE_DEFAULT_SIZE = void 0;
|
|
7
|
+
exports.CREDENTIALS_STORE_DEFAULT_SIZE = 10;
|
|
8
|
+
exports.CREDENTIALS_REFRESH_WINDOW_MS = 30000;
|
|
9
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/storageBrowser/locationCredentialsStore/constants.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.CREDENTIALS_REFRESH_WINDOW_MS = exports.CREDENTIALS_STORE_DEFAULT_SIZE = void 0;\nexports.CREDENTIALS_STORE_DEFAULT_SIZE = 10;\nexports.CREDENTIALS_REFRESH_WINDOW_MS = 30000;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,6BAA6B,GAAG,OAAO,CAAC,8BAA8B,GAAG,KAAK,CAAC,CAAC;AACxF,OAAO,CAAC,8BAA8B,GAAG,EAAE,CAAC;AAC5C,OAAO,CAAC,6BAA6B,GAAG,KAAK;;"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createLocationCredentialsStore = void 0;
|
|
7
|
+
const validation_1 = require("../../errors/types/validation");
|
|
8
|
+
const assertValidationError_1 = require("../../errors/utils/assertValidationError");
|
|
9
|
+
const registry_1 = require("./registry");
|
|
10
|
+
const createLocationCredentialsStore = (input) => {
|
|
11
|
+
const storeSymbol = (0, registry_1.createStore)(input.handler);
|
|
12
|
+
const store = {
|
|
13
|
+
getProvider(providerLocation) {
|
|
14
|
+
const locationCredentialsProvider = async ({ forceRefresh = false, } = {}) => {
|
|
15
|
+
validateS3Uri(providerLocation.scope);
|
|
16
|
+
// TODO(@AllanZhengYP): validate the action bucket and paths matches provider scope.
|
|
17
|
+
return (0, registry_1.getValue)({
|
|
18
|
+
storeSymbol,
|
|
19
|
+
location: { ...providerLocation },
|
|
20
|
+
forceRefresh,
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
return locationCredentialsProvider;
|
|
24
|
+
},
|
|
25
|
+
destroy() {
|
|
26
|
+
(0, registry_1.removeStore)(storeSymbol);
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
return store;
|
|
30
|
+
};
|
|
31
|
+
exports.createLocationCredentialsStore = createLocationCredentialsStore;
|
|
32
|
+
const validateS3Uri = (uri) => {
|
|
33
|
+
const s3UrlSchemaRegex = /^s3:\/\/[^/]+/;
|
|
34
|
+
(0, assertValidationError_1.assertValidationError)(s3UrlSchemaRegex.test(uri), validation_1.StorageValidationErrorCode.InvalidS3Uri);
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sources":["../../../../src/storageBrowser/locationCredentialsStore/create.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.createLocationCredentialsStore = void 0;\nconst validation_1 = require(\"../../errors/types/validation\");\nconst assertValidationError_1 = require(\"../../errors/utils/assertValidationError\");\nconst registry_1 = require(\"./registry\");\nconst createLocationCredentialsStore = (input) => {\n const storeSymbol = (0, registry_1.createStore)(input.handler);\n const store = {\n getProvider(providerLocation) {\n const locationCredentialsProvider = async ({ forceRefresh = false, } = {}) => {\n validateS3Uri(providerLocation.scope);\n // TODO(@AllanZhengYP): validate the action bucket and paths matches provider scope.\n return (0, registry_1.getValue)({\n storeSymbol,\n location: { ...providerLocation },\n forceRefresh,\n });\n };\n return locationCredentialsProvider;\n },\n destroy() {\n (0, registry_1.removeStore)(storeSymbol);\n },\n };\n return store;\n};\nexports.createLocationCredentialsStore = createLocationCredentialsStore;\nconst validateS3Uri = (uri) => {\n const s3UrlSchemaRegex = /^s3:\\/\\/[^/]+/;\n (0, assertValidationError_1.assertValidationError)(s3UrlSchemaRegex.test(uri), validation_1.StorageValidationErrorCode.InvalidS3Uri);\n};\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,8BAA8B,GAAG,KAAK,CAAC,CAAC;AAChD,MAAM,YAAY,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;AAC9D,MAAM,uBAAuB,GAAG,OAAO,CAAC,0CAA0C,CAAC,CAAC;AACpF,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AACzC,MAAM,8BAA8B,GAAG,CAAC,KAAK,KAAK;AAClD,IAAI,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AACnE,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,WAAW,CAAC,gBAAgB,EAAE;AACtC,YAAY,MAAM,2BAA2B,GAAG,OAAO,EAAE,YAAY,GAAG,KAAK,GAAG,GAAG,EAAE,KAAK;AAC1F,gBAAgB,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACtD;AACA,gBAAgB,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE;AAChD,oBAAoB,WAAW;AAC/B,oBAAoB,QAAQ,EAAE,EAAE,GAAG,gBAAgB,EAAE;AACrD,oBAAoB,YAAY;AAChC,iBAAiB,CAAC,CAAC;AACnB,aAAa,CAAC;AACd,YAAY,OAAO,2BAA2B,CAAC;AAC/C,SAAS;AACT,QAAQ,OAAO,GAAG;AAClB,YAAY,IAAI,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AACrD,SAAS;AACT,KAAK,CAAC;AACN,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AACF,OAAO,CAAC,8BAA8B,GAAG,8BAA8B,CAAC;AACxE,MAAM,aAAa,GAAG,CAAC,GAAG,KAAK;AAC/B,IAAI,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAC7C,IAAI,IAAI,uBAAuB,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;AACzI,CAAC;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createLocationCredentialsStore = void 0;
|
|
7
|
+
var create_1 = require("./create");
|
|
8
|
+
Object.defineProperty(exports, "createLocationCredentialsStore", { enumerable: true, get: function () { return create_1.createLocationCredentialsStore; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/storageBrowser/locationCredentialsStore/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.createLocationCredentialsStore = void 0;\nvar create_1 = require(\"./create\");\nObject.defineProperty(exports, \"createLocationCredentialsStore\", { enumerable: true, get: function () { return create_1.createLocationCredentialsStore; } });\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,8BAA8B,GAAG,KAAK,CAAC,CAAC;AAChD,IAAI,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACnC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,gCAAgC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,QAAQ,CAAC,8BAA8B,CAAC,EAAE,EAAE,CAAC;;"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/* eslint-disable unused-imports/no-unused-vars */
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.removeStore = exports.getValue = exports.createStore = void 0;
|
|
6
|
+
const assertValidationError_1 = require("../../errors/utils/assertValidationError");
|
|
7
|
+
const validation_1 = require("../../errors/types/validation");
|
|
8
|
+
const store_1 = require("./store");
|
|
9
|
+
/**
|
|
10
|
+
* Keep all cache records for all instances of credentials store in a singleton
|
|
11
|
+
* so we can reliably de-reference from the memory when we destroy a store
|
|
12
|
+
* instance.
|
|
13
|
+
*/
|
|
14
|
+
const storeRegistry = new WeakMap();
|
|
15
|
+
/**
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
const createStore = (refreshHandler, size) => {
|
|
19
|
+
const storeSymbol = { value: Symbol('LocationCredentialsStore') };
|
|
20
|
+
storeRegistry.set(storeSymbol, (0, store_1.initStore)(refreshHandler, size));
|
|
21
|
+
return storeSymbol;
|
|
22
|
+
};
|
|
23
|
+
exports.createStore = createStore;
|
|
24
|
+
const getLookUpLocations = (location) => {
|
|
25
|
+
const { scope, permission } = location;
|
|
26
|
+
const locations = [{ scope, permission }];
|
|
27
|
+
if (permission === 'READ' || permission === 'WRITE') {
|
|
28
|
+
locations.push({ scope, permission: 'READWRITE' });
|
|
29
|
+
}
|
|
30
|
+
return locations;
|
|
31
|
+
};
|
|
32
|
+
const getCredentialsStore = (storeSymbol) => {
|
|
33
|
+
(0, assertValidationError_1.assertValidationError)(storeRegistry.has(storeSymbol), validation_1.StorageValidationErrorCode.LocationCredentialsStoreDestroyed);
|
|
34
|
+
return storeRegistry.get(storeSymbol);
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
39
|
+
const getValue = async (input) => {
|
|
40
|
+
const { storeSymbol: storeReference, location, forceRefresh } = input;
|
|
41
|
+
const store = getCredentialsStore(storeReference);
|
|
42
|
+
if (!forceRefresh) {
|
|
43
|
+
const lookupLocations = getLookUpLocations(location);
|
|
44
|
+
for (const lookupLocation of lookupLocations) {
|
|
45
|
+
const credentials = (0, store_1.getCacheValue)(store, lookupLocation);
|
|
46
|
+
if (credentials !== null) {
|
|
47
|
+
return { credentials };
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return (0, store_1.fetchNewValue)(store, location);
|
|
52
|
+
};
|
|
53
|
+
exports.getValue = getValue;
|
|
54
|
+
const removeStore = (storeSymbol) => {
|
|
55
|
+
storeRegistry.delete(storeSymbol);
|
|
56
|
+
};
|
|
57
|
+
exports.removeStore = removeStore;
|
|
58
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sources":["../../../../src/storageBrowser/locationCredentialsStore/registry.ts"],"sourcesContent":["\"use strict\";\n/* eslint-disable unused-imports/no-unused-vars */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeStore = exports.getValue = exports.createStore = void 0;\nconst assertValidationError_1 = require(\"../../errors/utils/assertValidationError\");\nconst validation_1 = require(\"../../errors/types/validation\");\nconst store_1 = require(\"./store\");\n/**\n * Keep all cache records for all instances of credentials store in a singleton\n * so we can reliably de-reference from the memory when we destroy a store\n * instance.\n */\nconst storeRegistry = new WeakMap();\n/**\n * @internal\n */\nconst createStore = (refreshHandler, size) => {\n const storeSymbol = { value: Symbol('LocationCredentialsStore') };\n storeRegistry.set(storeSymbol, (0, store_1.initStore)(refreshHandler, size));\n return storeSymbol;\n};\nexports.createStore = createStore;\nconst getLookUpLocations = (location) => {\n const { scope, permission } = location;\n const locations = [{ scope, permission }];\n if (permission === 'READ' || permission === 'WRITE') {\n locations.push({ scope, permission: 'READWRITE' });\n }\n return locations;\n};\nconst getCredentialsStore = (storeSymbol) => {\n (0, assertValidationError_1.assertValidationError)(storeRegistry.has(storeSymbol), validation_1.StorageValidationErrorCode.LocationCredentialsStoreDestroyed);\n return storeRegistry.get(storeSymbol);\n};\n/**\n * @internal\n */\nconst getValue = async (input) => {\n const { storeSymbol: storeReference, location, forceRefresh } = input;\n const store = getCredentialsStore(storeReference);\n if (!forceRefresh) {\n const lookupLocations = getLookUpLocations(location);\n for (const lookupLocation of lookupLocations) {\n const credentials = (0, store_1.getCacheValue)(store, lookupLocation);\n if (credentials !== null) {\n return { credentials };\n }\n }\n }\n return (0, store_1.fetchNewValue)(store, location);\n};\nexports.getValue = getValue;\nconst removeStore = (storeSymbol) => {\n storeRegistry.delete(storeSymbol);\n};\nexports.removeStore = removeStore;\n"],"names":[],"mappings":";;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;AACtE,MAAM,uBAAuB,GAAG,OAAO,CAAC,0CAA0C,CAAC,CAAC;AACpF,MAAM,YAAY,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;AAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACnC;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;AACpC;AACA;AACA;AACA,MAAM,WAAW,GAAG,CAAC,cAAc,EAAE,IAAI,KAAK;AAC9C,IAAI,MAAM,WAAW,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,0BAA0B,CAAC,EAAE,CAAC;AACtE,IAAI,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;AACjF,IAAI,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC;AACF,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;AAClC,MAAM,kBAAkB,GAAG,CAAC,QAAQ,KAAK;AACzC,IAAI,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;AAC3C,IAAI,MAAM,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;AAC9C,IAAI,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,OAAO,EAAE;AACzD,QAAQ,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AACF,MAAM,mBAAmB,GAAG,CAAC,WAAW,KAAK;AAC7C,IAAI,IAAI,uBAAuB,CAAC,qBAAqB,EAAE,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,0BAA0B,CAAC,iCAAiC,CAAC,CAAC;AAClK,IAAI,OAAO,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC1C,CAAC,CAAC;AACF;AACA;AACA;AACA,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK;AAClC,IAAI,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;AAC1E,IAAI,MAAM,KAAK,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;AACtD,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,QAAQ,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAC7D,QAAQ,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE;AACtD,YAAY,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;AAClF,YAAY,IAAI,WAAW,KAAK,IAAI,EAAE;AACtC,gBAAgB,OAAO,EAAE,WAAW,EAAE,CAAC;AACvC,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACvD,CAAC,CAAC;AACF,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC5B,MAAM,WAAW,GAAG,CAAC,WAAW,KAAK;AACrC,IAAI,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACtC,CAAC,CAAC;AACF,OAAO,CAAC,WAAW,GAAG,WAAW;;"}
|