@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
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { assertValidationError } from '../../../errors/utils/assertValidationError.mjs';
|
|
2
2
|
import { StorageValidationErrorCode } from '../../../errors/types/validation.mjs';
|
|
3
3
|
import { STORAGE_INPUT_PATH, STORAGE_INPUT_PREFIX } from './constants.mjs';
|
|
4
|
+
import { resolveIdentityId } from './resolveIdentityId.mjs';
|
|
4
5
|
|
|
5
6
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
6
7
|
// SPDX-License-Identifier: Apache-2.0
|
|
@@ -13,7 +14,9 @@ const validateStorageOperationInputWithPrefix = (input, identityId) => {
|
|
|
13
14
|
assertValidationError(!(input.prefix && input.path), StorageValidationErrorCode.InvalidStorageOperationPrefixInput);
|
|
14
15
|
if (_isInputWithPath(input)) {
|
|
15
16
|
const { path } = input;
|
|
16
|
-
const objectKey = typeof path === 'string'
|
|
17
|
+
const objectKey = typeof path === 'string'
|
|
18
|
+
? path
|
|
19
|
+
: path({ identityId: resolveIdentityId(identityId) });
|
|
17
20
|
// Assert on no leading slash in the path parameter
|
|
18
21
|
assertValidationError(!objectKey.startsWith('/'), StorageValidationErrorCode.InvalidStoragePathInput);
|
|
19
22
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateStorageOperationInputWithPrefix.mjs","sources":["../../../../../src/providers/s3/utils/validateStorageOperationInputWithPrefix.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { StorageValidationErrorCode } from '../../../errors/types/validation';\nimport { STORAGE_INPUT_PATH, STORAGE_INPUT_PREFIX } from './constants';\n// Local assertion function with StorageOperationInputWithPrefixPath as Input\nconst _isInputWithPath = (input) => {\n return input.path !== undefined;\n};\nexport const validateStorageOperationInputWithPrefix = (input, identityId) => {\n // Validate prefix & path not present at the same time\n assertValidationError(!(input.prefix && input.path), StorageValidationErrorCode.InvalidStorageOperationPrefixInput);\n if (_isInputWithPath(input)) {\n const { path } = input;\n const objectKey = typeof path === 'string'
|
|
1
|
+
{"version":3,"file":"validateStorageOperationInputWithPrefix.mjs","sources":["../../../../../src/providers/s3/utils/validateStorageOperationInputWithPrefix.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { StorageValidationErrorCode } from '../../../errors/types/validation';\nimport { STORAGE_INPUT_PATH, STORAGE_INPUT_PREFIX } from './constants';\nimport { resolveIdentityId } from './resolveIdentityId';\n// Local assertion function with StorageOperationInputWithPrefixPath as Input\nconst _isInputWithPath = (input) => {\n return input.path !== undefined;\n};\nexport const validateStorageOperationInputWithPrefix = (input, identityId) => {\n // Validate prefix & path not present at the same time\n assertValidationError(!(input.prefix && input.path), StorageValidationErrorCode.InvalidStorageOperationPrefixInput);\n if (_isInputWithPath(input)) {\n const { path } = input;\n const objectKey = typeof path === 'string'\n ? path\n : path({ identityId: resolveIdentityId(identityId) });\n // Assert on no leading slash in the path parameter\n assertValidationError(!objectKey.startsWith('/'), StorageValidationErrorCode.InvalidStoragePathInput);\n return {\n inputType: STORAGE_INPUT_PATH,\n objectKey,\n };\n }\n else {\n return { inputType: STORAGE_INPUT_PREFIX, objectKey: input.prefix ?? '' };\n }\n};\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAKA;AACA,MAAM,gBAAgB,GAAG,CAAC,KAAK,KAAK;AACpC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;AACpC,CAAC,CAAC;AACU,MAAC,uCAAuC,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK;AAC9E;AACA,IAAI,qBAAqB,CAAC,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,0BAA0B,CAAC,kCAAkC,CAAC,CAAC;AACxH,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,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAClE;AACA,QAAQ,qBAAqB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,0BAA0B,CAAC,uBAAuB,CAAC,CAAC;AAC9G,QAAQ,OAAO;AACf,YAAY,SAAS,EAAE,kBAAkB;AACzC,YAAY,SAAS;AACrB,SAAS,CAAC;AACV,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;AAClF,KAAK;AACL;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
const DEFAULT_CRED_TTL = 15 * 60; // 15 minutes
|
|
4
|
+
const MAX_PAGE_SIZE = 1000;
|
|
5
|
+
|
|
6
|
+
export { DEFAULT_CRED_TTL, MAX_PAGE_SIZE };
|
|
7
|
+
//# sourceMappingURL=constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.mjs","sources":["../../../../src/storageBrowser/apis/constants.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const DEFAULT_CRED_TTL = 15 * 60; // 15 minutes\nexport const MAX_PAGE_SIZE = 1000;\n"],"names":[],"mappings":"AAAA;AACA;AACY,MAAC,gBAAgB,GAAG,EAAE,GAAG,GAAG;AAC5B,MAAC,aAAa,GAAG;;;;"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { StorageAction, AmplifyErrorCode } from '@aws-amplify/core/internals/utils';
|
|
2
|
+
import { getStorageUserAgentValue } from '../../providers/s3/utils/userAgent.mjs';
|
|
3
|
+
import { getDataAccess as getDataAccess$1 } from '../../providers/s3/utils/client/s3control/getDataAccess.mjs';
|
|
4
|
+
import '../../providers/s3/utils/client/s3control/listCallerAccessGrants.mjs';
|
|
5
|
+
import { StorageError } from '../../errors/StorageError.mjs';
|
|
6
|
+
import '../../errors/types/validation.mjs';
|
|
7
|
+
import { logger } from '../../utils/logger.mjs';
|
|
8
|
+
import { DEFAULT_CRED_TTL } from './constants.mjs';
|
|
9
|
+
|
|
10
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
11
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
12
|
+
const getDataAccess = async (input) => {
|
|
13
|
+
const targetType = input.scope.endsWith('*') ? undefined : 'Object';
|
|
14
|
+
const clientCredentialsProvider = async (options) => {
|
|
15
|
+
const { credentials } = await input.credentialsProvider(options);
|
|
16
|
+
return credentials;
|
|
17
|
+
};
|
|
18
|
+
const result = await getDataAccess$1({
|
|
19
|
+
credentials: clientCredentialsProvider,
|
|
20
|
+
region: input.region,
|
|
21
|
+
userAgentValue: getStorageUserAgentValue(StorageAction.GetDataAccess),
|
|
22
|
+
}, {
|
|
23
|
+
AccountId: input.accountId,
|
|
24
|
+
Target: input.scope,
|
|
25
|
+
Permission: input.permission,
|
|
26
|
+
TargetType: targetType,
|
|
27
|
+
DurationSeconds: DEFAULT_CRED_TTL,
|
|
28
|
+
});
|
|
29
|
+
const grantCredentials = result.Credentials;
|
|
30
|
+
// Ensure that S3 returned credentials (this shouldn't happen)
|
|
31
|
+
if (!grantCredentials ||
|
|
32
|
+
!grantCredentials.AccessKeyId ||
|
|
33
|
+
!grantCredentials.SecretAccessKey ||
|
|
34
|
+
!grantCredentials.SessionToken ||
|
|
35
|
+
!grantCredentials.Expiration) {
|
|
36
|
+
throw new StorageError({
|
|
37
|
+
name: AmplifyErrorCode.Unknown,
|
|
38
|
+
message: 'Service did not return valid temporary credentials.',
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
logger.debug(`Retrieved credentials for: ${result.MatchedGrantTarget}`);
|
|
43
|
+
}
|
|
44
|
+
const { AccessKeyId: accessKeyId, SecretAccessKey: secretAccessKey, SessionToken: sessionToken, Expiration: expiration, } = grantCredentials;
|
|
45
|
+
return {
|
|
46
|
+
credentials: {
|
|
47
|
+
accessKeyId,
|
|
48
|
+
secretAccessKey,
|
|
49
|
+
sessionToken,
|
|
50
|
+
expiration,
|
|
51
|
+
},
|
|
52
|
+
scope: result.MatchedGrantTarget,
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export { getDataAccess };
|
|
57
|
+
//# sourceMappingURL=getDataAccess.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDataAccess.mjs","sources":["../../../../src/storageBrowser/apis/getDataAccess.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AmplifyErrorCode, StorageAction, } from '@aws-amplify/core/internals/utils';\nimport { getStorageUserAgentValue } from '../../providers/s3/utils/userAgent';\nimport { getDataAccess as getDataAccessClient } from '../../providers/s3/utils/client/s3control';\nimport { StorageError } from '../../errors/StorageError';\nimport { logger } from '../../utils';\nimport { DEFAULT_CRED_TTL } from './constants';\nexport const 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 getDataAccessClient({\n credentials: clientCredentialsProvider,\n region: input.region,\n userAgentValue: getStorageUserAgentValue(StorageAction.GetDataAccess),\n }, {\n AccountId: input.accountId,\n Target: input.scope,\n Permission: input.permission,\n TargetType: targetType,\n DurationSeconds: 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({\n name: AmplifyErrorCode.Unknown,\n message: 'Service did not return valid temporary credentials.',\n });\n }\n else {\n 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};\n"],"names":["getDataAccessClient"],"mappings":";;;;;;;;;AAAA;AACA;AAOY,MAAC,aAAa,GAAG,OAAO,KAAK,KAAK;AAC9C,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,MAAMA,eAAmB,CAAC;AAC7C,QAAQ,WAAW,EAAE,yBAAyB;AAC9C,QAAQ,MAAM,EAAE,KAAK,CAAC,MAAM;AAC5B,QAAQ,cAAc,EAAE,wBAAwB,CAAC,aAAa,CAAC,aAAa,CAAC;AAC7E,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,gBAAgB;AACzC,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,YAAY,CAAC;AAC/B,YAAY,IAAI,EAAE,gBAAgB,CAAC,OAAO;AAC1C,YAAY,OAAO,EAAE,qDAAqD;AAC1E,SAAS,CAAC,CAAC;AACX,KAAK;AACL,SAAS;AACT,QAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,2BAA2B,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAChF,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;;;;"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { StorageAction } from '@aws-amplify/core/internals/utils';
|
|
2
|
+
import '../../errors/types/validation.mjs';
|
|
3
|
+
import { StorageError } from '../../errors/StorageError.mjs';
|
|
4
|
+
import { logger } from '../../utils/logger.mjs';
|
|
5
|
+
import '../../providers/s3/utils/client/s3control/getDataAccess.mjs';
|
|
6
|
+
import { listCallerAccessGrants as listCallerAccessGrants$1 } from '../../providers/s3/utils/client/s3control/listCallerAccessGrants.mjs';
|
|
7
|
+
import { getStorageUserAgentValue } from '../../providers/s3/utils/userAgent.mjs';
|
|
8
|
+
import { MAX_PAGE_SIZE } from './constants.mjs';
|
|
9
|
+
|
|
10
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
11
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
12
|
+
const listCallerAccessGrants = async (input) => {
|
|
13
|
+
const { credentialsProvider, accountId, region, nextToken, pageSize } = input;
|
|
14
|
+
logger.debug(`listing available locations from account ${input.accountId}`);
|
|
15
|
+
if (!!pageSize && pageSize > MAX_PAGE_SIZE) {
|
|
16
|
+
logger.debug(`defaulting pageSize to ${MAX_PAGE_SIZE}.`);
|
|
17
|
+
}
|
|
18
|
+
const clientCredentialsProvider = async (options) => {
|
|
19
|
+
const { credentials } = await credentialsProvider(options);
|
|
20
|
+
return credentials;
|
|
21
|
+
};
|
|
22
|
+
const { CallerAccessGrantsList, NextToken } = await listCallerAccessGrants$1({
|
|
23
|
+
credentials: clientCredentialsProvider,
|
|
24
|
+
region,
|
|
25
|
+
userAgentValue: getStorageUserAgentValue(StorageAction.ListCallerAccessGrants),
|
|
26
|
+
}, {
|
|
27
|
+
AccountId: accountId,
|
|
28
|
+
NextToken: nextToken,
|
|
29
|
+
MaxResults: pageSize ?? MAX_PAGE_SIZE,
|
|
30
|
+
});
|
|
31
|
+
const accessGrants = CallerAccessGrantsList?.map(grant => {
|
|
32
|
+
assertGrantScope(grant.GrantScope);
|
|
33
|
+
return {
|
|
34
|
+
scope: grant.GrantScope,
|
|
35
|
+
permission: grant.Permission,
|
|
36
|
+
type: parseGrantType(grant.GrantScope),
|
|
37
|
+
};
|
|
38
|
+
}) ?? [];
|
|
39
|
+
return {
|
|
40
|
+
locations: accessGrants,
|
|
41
|
+
nextToken: NextToken,
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
const parseGrantType = (grantScope) => {
|
|
45
|
+
const bucketScopeReg = /^s3:\/\/(.*)\/\*$/;
|
|
46
|
+
const possibleBucketName = grantScope.match(bucketScopeReg)?.[1];
|
|
47
|
+
if (!grantScope.endsWith('*')) {
|
|
48
|
+
return 'OBJECT';
|
|
49
|
+
}
|
|
50
|
+
else if (grantScope.endsWith('/*') &&
|
|
51
|
+
possibleBucketName &&
|
|
52
|
+
possibleBucketName.indexOf('/') === -1) {
|
|
53
|
+
return 'BUCKET';
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
return 'PREFIX';
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
function assertGrantScope(value) {
|
|
60
|
+
if (typeof value !== 'string' || !value.startsWith('s3://')) {
|
|
61
|
+
throw new StorageError({
|
|
62
|
+
name: 'InvalidGrantScope',
|
|
63
|
+
message: `Expected a valid grant scope, got ${value}`,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export { listCallerAccessGrants };
|
|
69
|
+
//# sourceMappingURL=listCallerAccessGrants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listCallerAccessGrants.mjs","sources":["../../../../src/storageBrowser/apis/listCallerAccessGrants.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { StorageAction } from '@aws-amplify/core/internals/utils';\nimport { logger } from '../../utils';\nimport { listCallerAccessGrants as listCallerAccessGrantsClient } from '../../providers/s3/utils/client/s3control';\nimport { StorageError } from '../../errors/StorageError';\nimport { getStorageUserAgentValue } from '../../providers/s3/utils/userAgent';\nimport { MAX_PAGE_SIZE } from './constants';\nexport const listCallerAccessGrants = async (input) => {\n const { credentialsProvider, accountId, region, nextToken, pageSize } = input;\n logger.debug(`listing available locations from account ${input.accountId}`);\n if (!!pageSize && pageSize > MAX_PAGE_SIZE) {\n logger.debug(`defaulting pageSize to ${MAX_PAGE_SIZE}.`);\n }\n const clientCredentialsProvider = async (options) => {\n const { credentials } = await credentialsProvider(options);\n return credentials;\n };\n const { CallerAccessGrantsList, NextToken } = await listCallerAccessGrantsClient({\n credentials: clientCredentialsProvider,\n region,\n userAgentValue: getStorageUserAgentValue(StorageAction.ListCallerAccessGrants),\n }, {\n AccountId: accountId,\n NextToken: nextToken,\n MaxResults: pageSize ?? 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};\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({\n name: 'InvalidGrantScope',\n message: `Expected a valid grant scope, got ${value}`,\n });\n }\n}\n"],"names":["listCallerAccessGrantsClient"],"mappings":";;;;;;;;;AAAA;AACA;AAOY,MAAC,sBAAsB,GAAG,OAAO,KAAK,KAAK;AACvD,IAAI,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;AAClF,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,yCAAyC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAChF,IAAI,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,GAAG,aAAa,EAAE;AAChD,QAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,uBAAuB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,MAAM,yBAAyB,GAAG,OAAO,OAAO,KAAK;AACzD,QAAQ,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACnE,QAAQ,OAAO,WAAW,CAAC;AAC3B,KAAK,CAAC;AACN,IAAI,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,GAAG,MAAMA,wBAA4B,CAAC;AACrF,QAAQ,WAAW,EAAE,yBAAyB;AAC9C,QAAQ,MAAM;AACd,QAAQ,cAAc,EAAE,wBAAwB,CAAC,aAAa,CAAC,sBAAsB,CAAC;AACtF,KAAK,EAAE;AACP,QAAQ,SAAS,EAAE,SAAS;AAC5B,QAAQ,SAAS,EAAE,SAAS;AAC5B,QAAQ,UAAU,EAAE,QAAQ,IAAI,aAAa;AAC7C,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,YAAY,GAAG,sBAAsB,EAAE,GAAG,CAAC,KAAK,IAAI;AAC9D,QAAQ,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAC3C,QAAQ,OAAO;AACf,YAAY,KAAK,EAAE,KAAK,CAAC,UAAU;AACnC,YAAY,UAAU,EAAE,KAAK,CAAC,UAAU;AACxC,YAAY,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC;AAClD,SAAS,CAAC;AACV,KAAK,CAAC,IAAI,EAAE,CAAC;AACb,IAAI,OAAO;AACX,QAAQ,SAAS,EAAE,YAAY;AAC/B,QAAQ,SAAS,EAAE,SAAS;AAC5B,KAAK,CAAC;AACN,EAAE;AACF,MAAM,cAAc,GAAG,CAAC,UAAU,KAAK;AACvC,IAAI,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAC/C,IAAI,MAAM,kBAAkB,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACrE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACnC,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;AACtC,QAAQ,kBAAkB;AAC1B,QAAQ,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;AAChD,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL,CAAC,CAAC;AACF,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACjC,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AACjE,QAAQ,MAAM,IAAI,YAAY,CAAC;AAC/B,YAAY,IAAI,EAAE,mBAAmB;AACrC,YAAY,OAAO,EAAE,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;AACjE,SAAS,CAAC,CAAC;AACX,KAAK;AACL;;;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CredentialsProvider, ListLocationsInput, ListLocationsOutput, LocationCredentials, Permission, PrefixType, Privilege } from '../types';
|
|
2
|
+
export interface ListCallerAccessGrantsInput extends ListLocationsInput {
|
|
3
|
+
accountId: string;
|
|
4
|
+
credentialsProvider: CredentialsProvider;
|
|
5
|
+
region: string;
|
|
6
|
+
}
|
|
7
|
+
export type ListCallerAccessGrantsOutput = ListLocationsOutput;
|
|
8
|
+
export interface GetDataAccessInput {
|
|
9
|
+
accountId: string;
|
|
10
|
+
credentialsProvider: CredentialsProvider;
|
|
11
|
+
durationSeconds?: number;
|
|
12
|
+
permission: Permission;
|
|
13
|
+
prefixType?: PrefixType;
|
|
14
|
+
privilege?: Privilege;
|
|
15
|
+
region: string;
|
|
16
|
+
scope: string;
|
|
17
|
+
}
|
|
18
|
+
export type GetDataAccessOutput = LocationCredentials;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { LocationCredentialsProvider } from '../providers/s3/types/options';
|
|
2
|
+
export { StorageSubpathStrategy } from '../types/options';
|
|
3
|
+
export { createLocationCredentialsStore } from './locationCredentialsStore';
|
|
4
|
+
export { AuthConfigAdapter, createManagedAuthConfigAdapter, CreateManagedAuthConfigAdapterInput, } from './managedAuthConfigAdapter';
|
|
5
|
+
export { GetLocationCredentials, ListLocations, LocationCredentialsStore, CreateLocationCredentialsStoreInput, LocationCredentials, ListLocationsInput, ListLocationsOutput, GetLocationCredentialsInput, GetLocationCredentialsOutput, Permission, } from './types';
|
|
6
|
+
export { AWSTemporaryCredentials } from '../providers/s3/types/options';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
const CREDENTIALS_STORE_DEFAULT_SIZE = 10;
|
|
4
|
+
const CREDENTIALS_REFRESH_WINDOW_MS = 30000;
|
|
5
|
+
|
|
6
|
+
export { CREDENTIALS_REFRESH_WINDOW_MS, CREDENTIALS_STORE_DEFAULT_SIZE };
|
|
7
|
+
//# sourceMappingURL=constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.mjs","sources":["../../../../src/storageBrowser/locationCredentialsStore/constants.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const CREDENTIALS_STORE_DEFAULT_SIZE = 10;\nexport const CREDENTIALS_REFRESH_WINDOW_MS = 30000;\n"],"names":[],"mappings":"AAAA;AACA;AACY,MAAC,8BAA8B,GAAG,GAAG;AACrC,MAAC,6BAA6B,GAAG;;;;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { StorageValidationErrorCode } from '../../errors/types/validation.mjs';
|
|
2
|
+
import { assertValidationError } from '../../errors/utils/assertValidationError.mjs';
|
|
3
|
+
import { createStore, removeStore, getValue } from './registry.mjs';
|
|
4
|
+
|
|
5
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
6
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
7
|
+
const createLocationCredentialsStore = (input) => {
|
|
8
|
+
const storeSymbol = createStore(input.handler);
|
|
9
|
+
const store = {
|
|
10
|
+
getProvider(providerLocation) {
|
|
11
|
+
const locationCredentialsProvider = async ({ forceRefresh = false, } = {}) => {
|
|
12
|
+
validateS3Uri(providerLocation.scope);
|
|
13
|
+
// TODO(@AllanZhengYP): validate the action bucket and paths matches provider scope.
|
|
14
|
+
return getValue({
|
|
15
|
+
storeSymbol,
|
|
16
|
+
location: { ...providerLocation },
|
|
17
|
+
forceRefresh,
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
return locationCredentialsProvider;
|
|
21
|
+
},
|
|
22
|
+
destroy() {
|
|
23
|
+
removeStore(storeSymbol);
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
return store;
|
|
27
|
+
};
|
|
28
|
+
const validateS3Uri = (uri) => {
|
|
29
|
+
const s3UrlSchemaRegex = /^s3:\/\/[^/]+/;
|
|
30
|
+
assertValidationError(s3UrlSchemaRegex.test(uri), StorageValidationErrorCode.InvalidS3Uri);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export { createLocationCredentialsStore };
|
|
34
|
+
//# sourceMappingURL=create.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.mjs","sources":["../../../../src/storageBrowser/locationCredentialsStore/create.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { StorageValidationErrorCode } from '../../errors/types/validation';\nimport { assertValidationError } from '../../errors/utils/assertValidationError';\nimport { createStore, getValue, removeStore } from './registry';\nexport const createLocationCredentialsStore = (input) => {\n const storeSymbol = 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 getValue({\n storeSymbol,\n location: { ...providerLocation },\n forceRefresh,\n });\n };\n return locationCredentialsProvider;\n },\n destroy() {\n removeStore(storeSymbol);\n },\n };\n return store;\n};\nconst validateS3Uri = (uri) => {\n const s3UrlSchemaRegex = /^s3:\\/\\/[^/]+/;\n assertValidationError(s3UrlSchemaRegex.test(uri), StorageValidationErrorCode.InvalidS3Uri);\n};\n"],"names":[],"mappings":";;;;AAAA;AACA;AAIY,MAAC,8BAA8B,GAAG,CAAC,KAAK,KAAK;AACzD,IAAI,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACnD,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,QAAQ,CAAC;AAChC,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,WAAW,CAAC,WAAW,CAAC,CAAC;AACrC,SAAS;AACT,KAAK,CAAC;AACN,IAAI,OAAO,KAAK,CAAC;AACjB,EAAE;AACF,MAAM,aAAa,GAAG,CAAC,GAAG,KAAK;AAC/B,IAAI,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAC7C,IAAI,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,0BAA0B,CAAC,YAAY,CAAC,CAAC;AAC/F,CAAC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { createLocationCredentialsStore } from './create';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AWSTemporaryCredentials } from '../../providers/s3/types/options';
|
|
2
|
+
import { CredentialsLocation, GetLocationCredentials } from '../types';
|
|
3
|
+
interface StoreRegistrySymbol {
|
|
4
|
+
readonly value: symbol;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export declare const createStore: (refreshHandler: GetLocationCredentials, size?: number) => {
|
|
10
|
+
value: symbol;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export declare const getValue: (input: {
|
|
16
|
+
storeSymbol: StoreRegistrySymbol;
|
|
17
|
+
location: CredentialsLocation;
|
|
18
|
+
forceRefresh: boolean;
|
|
19
|
+
}) => Promise<{
|
|
20
|
+
credentials: AWSTemporaryCredentials;
|
|
21
|
+
}>;
|
|
22
|
+
export declare const removeStore: (storeSymbol: StoreRegistrySymbol) => void;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { assertValidationError } from '../../errors/utils/assertValidationError.mjs';
|
|
2
|
+
import { StorageValidationErrorCode } from '../../errors/types/validation.mjs';
|
|
3
|
+
import { initStore, getCacheValue, fetchNewValue } from './store.mjs';
|
|
4
|
+
|
|
5
|
+
/* eslint-disable unused-imports/no-unused-vars */
|
|
6
|
+
/**
|
|
7
|
+
* Keep all cache records for all instances of credentials store in a singleton
|
|
8
|
+
* so we can reliably de-reference from the memory when we destroy a store
|
|
9
|
+
* instance.
|
|
10
|
+
*/
|
|
11
|
+
const storeRegistry = new WeakMap();
|
|
12
|
+
/**
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
const createStore = (refreshHandler, size) => {
|
|
16
|
+
const storeSymbol = { value: Symbol('LocationCredentialsStore') };
|
|
17
|
+
storeRegistry.set(storeSymbol, initStore(refreshHandler, size));
|
|
18
|
+
return storeSymbol;
|
|
19
|
+
};
|
|
20
|
+
const getLookUpLocations = (location) => {
|
|
21
|
+
const { scope, permission } = location;
|
|
22
|
+
const locations = [{ scope, permission }];
|
|
23
|
+
if (permission === 'READ' || permission === 'WRITE') {
|
|
24
|
+
locations.push({ scope, permission: 'READWRITE' });
|
|
25
|
+
}
|
|
26
|
+
return locations;
|
|
27
|
+
};
|
|
28
|
+
const getCredentialsStore = (storeSymbol) => {
|
|
29
|
+
assertValidationError(storeRegistry.has(storeSymbol), StorageValidationErrorCode.LocationCredentialsStoreDestroyed);
|
|
30
|
+
return storeRegistry.get(storeSymbol);
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
const getValue = async (input) => {
|
|
36
|
+
const { storeSymbol: storeReference, location, forceRefresh } = input;
|
|
37
|
+
const store = getCredentialsStore(storeReference);
|
|
38
|
+
if (!forceRefresh) {
|
|
39
|
+
const lookupLocations = getLookUpLocations(location);
|
|
40
|
+
for (const lookupLocation of lookupLocations) {
|
|
41
|
+
const credentials = getCacheValue(store, lookupLocation);
|
|
42
|
+
if (credentials !== null) {
|
|
43
|
+
return { credentials };
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return fetchNewValue(store, location);
|
|
48
|
+
};
|
|
49
|
+
const removeStore = (storeSymbol) => {
|
|
50
|
+
storeRegistry.delete(storeSymbol);
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export { createStore, getValue, removeStore };
|
|
54
|
+
//# sourceMappingURL=registry.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.mjs","sources":["../../../../src/storageBrowser/locationCredentialsStore/registry.ts"],"sourcesContent":["/* eslint-disable unused-imports/no-unused-vars */\nimport { assertValidationError } from '../../errors/utils/assertValidationError';\nimport { StorageValidationErrorCode } from '../../errors/types/validation';\nimport { fetchNewValue, getCacheValue, initStore, } from './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 */\nexport const createStore = (refreshHandler, size) => {\n const storeSymbol = { value: Symbol('LocationCredentialsStore') };\n storeRegistry.set(storeSymbol, initStore(refreshHandler, size));\n return storeSymbol;\n};\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 assertValidationError(storeRegistry.has(storeSymbol), StorageValidationErrorCode.LocationCredentialsStoreDestroyed);\n return storeRegistry.get(storeSymbol);\n};\n/**\n * @internal\n */\nexport const 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 = getCacheValue(store, lookupLocation);\n if (credentials !== null) {\n return { credentials };\n }\n }\n }\n return fetchNewValue(store, location);\n};\nexport const removeStore = (storeSymbol) => {\n storeRegistry.delete(storeSymbol);\n};\n"],"names":[],"mappings":";;;;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;AACpC;AACA;AACA;AACY,MAAC,WAAW,GAAG,CAAC,cAAc,EAAE,IAAI,KAAK;AACrD,IAAI,MAAM,WAAW,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,0BAA0B,CAAC,EAAE,CAAC;AACtE,IAAI,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;AACpE,IAAI,OAAO,WAAW,CAAC;AACvB,EAAE;AACF,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,qBAAqB,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,0BAA0B,CAAC,iCAAiC,CAAC,CAAC;AACxH,IAAI,OAAO,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC1C,CAAC,CAAC;AACF;AACA;AACA;AACY,MAAC,QAAQ,GAAG,OAAO,KAAK,KAAK;AACzC,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,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACrE,YAAY,IAAI,WAAW,KAAK,IAAI,EAAE;AACtC,gBAAgB,OAAO,EAAE,WAAW,EAAE,CAAC;AACvC,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,OAAO,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC1C,EAAE;AACU,MAAC,WAAW,GAAG,CAAC,WAAW,KAAK;AAC5C,IAAI,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACtC;;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { CredentialsLocation, GetLocationCredentials, Permission } from '../types';
|
|
2
|
+
import { AWSTemporaryCredentials } from '../../providers/s3/types/options';
|
|
3
|
+
interface StoreValue extends CredentialsLocation {
|
|
4
|
+
credentials?: AWSTemporaryCredentials;
|
|
5
|
+
inflightCredentials?: Promise<{
|
|
6
|
+
credentials: AWSTemporaryCredentials;
|
|
7
|
+
}>;
|
|
8
|
+
}
|
|
9
|
+
type S3Uri = string;
|
|
10
|
+
type CacheKey = `${S3Uri}_${Permission}`;
|
|
11
|
+
/**
|
|
12
|
+
* LRU implementation for Location Credentials Store
|
|
13
|
+
* O(n) for get and set for simplicity.
|
|
14
|
+
*
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export interface LruLocationCredentialsStore {
|
|
18
|
+
capacity: number;
|
|
19
|
+
refreshHandler: GetLocationCredentials;
|
|
20
|
+
values: Map<CacheKey, StoreValue>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
export declare const initStore: (refreshHandler: GetLocationCredentials, size?: number) => LruLocationCredentialsStore;
|
|
26
|
+
export declare const getCacheValue: (store: LruLocationCredentialsStore, location: CredentialsLocation) => AWSTemporaryCredentials | null;
|
|
27
|
+
/**
|
|
28
|
+
* Fetch new credentials value with refresh handler and cache the result in
|
|
29
|
+
* LRU cache.
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
export declare const fetchNewValue: (store: LruLocationCredentialsStore, location: CredentialsLocation) => Promise<{
|
|
33
|
+
credentials: AWSTemporaryCredentials;
|
|
34
|
+
}>;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { assertValidationError } from '../../errors/utils/assertValidationError.mjs';
|
|
2
|
+
import { StorageValidationErrorCode } from '../../errors/types/validation.mjs';
|
|
3
|
+
import { CREDENTIALS_STORE_DEFAULT_SIZE, CREDENTIALS_REFRESH_WINDOW_MS } from './constants.mjs';
|
|
4
|
+
|
|
5
|
+
/* eslint-disable unused-imports/no-unused-vars */
|
|
6
|
+
const createCacheKey = (location) => `${location.scope}_${location.permission}`;
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
const initStore = (refreshHandler, size = CREDENTIALS_STORE_DEFAULT_SIZE) => {
|
|
11
|
+
assertValidationError(size > 0, StorageValidationErrorCode.InvalidLocationCredentialsCacheSize);
|
|
12
|
+
return {
|
|
13
|
+
capacity: size,
|
|
14
|
+
refreshHandler,
|
|
15
|
+
values: new Map(),
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
const getCacheValue = (store, location) => {
|
|
19
|
+
const cacheKey = createCacheKey(location);
|
|
20
|
+
const cachedValue = store.values.get(cacheKey);
|
|
21
|
+
const cachedCredentials = cachedValue?.credentials;
|
|
22
|
+
if (!cachedCredentials) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
// Delete and re-insert to key to map to indicate a latest reference in LRU.
|
|
26
|
+
store.values.delete(cacheKey);
|
|
27
|
+
if (!pastTTL(cachedCredentials)) {
|
|
28
|
+
// TODO(@AllanZhengYP): If the credential is still valid but will expire
|
|
29
|
+
// soon, we should return credentials AND dispatch a refresh.
|
|
30
|
+
store.values.set(cacheKey, cachedValue);
|
|
31
|
+
return cachedCredentials;
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
};
|
|
35
|
+
const pastTTL = (credentials) => {
|
|
36
|
+
const { expiration } = credentials;
|
|
37
|
+
return expiration.getTime() - CREDENTIALS_REFRESH_WINDOW_MS <= Date.now();
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Fetch new credentials value with refresh handler and cache the result in
|
|
41
|
+
* LRU cache.
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
44
|
+
const fetchNewValue = async (store, location) => {
|
|
45
|
+
const storeValues = store.values;
|
|
46
|
+
const key = createCacheKey(location);
|
|
47
|
+
if (!storeValues.has(key)) {
|
|
48
|
+
const newStoreValue = {
|
|
49
|
+
scope: location.scope,
|
|
50
|
+
permission: location.permission,
|
|
51
|
+
};
|
|
52
|
+
setCacheRecord(store, key, newStoreValue);
|
|
53
|
+
}
|
|
54
|
+
const storeValue = storeValues.get(key);
|
|
55
|
+
return dispatchRefresh(store.refreshHandler, storeValue, () => {
|
|
56
|
+
store.values.delete(key);
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
const dispatchRefresh = (refreshHandler, value, onRefreshFailure) => {
|
|
60
|
+
if (value.inflightCredentials) {
|
|
61
|
+
return value.inflightCredentials;
|
|
62
|
+
}
|
|
63
|
+
value.inflightCredentials = (async () => {
|
|
64
|
+
try {
|
|
65
|
+
const { credentials } = await refreshHandler({
|
|
66
|
+
scope: value.scope,
|
|
67
|
+
permission: value.permission,
|
|
68
|
+
});
|
|
69
|
+
value.credentials = credentials;
|
|
70
|
+
return { credentials };
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
onRefreshFailure();
|
|
74
|
+
throw e;
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
value.inflightCredentials = undefined;
|
|
78
|
+
}
|
|
79
|
+
})();
|
|
80
|
+
return value.inflightCredentials;
|
|
81
|
+
};
|
|
82
|
+
const setCacheRecord = (store, key, value) => {
|
|
83
|
+
if (store.capacity === store.values.size) {
|
|
84
|
+
// Pop least used entry. The Map's key are in insertion order.
|
|
85
|
+
// So first key is the last recently inserted.
|
|
86
|
+
const [oldestKey] = store.values.keys();
|
|
87
|
+
store.values.delete(oldestKey);
|
|
88
|
+
// TODO(@AllanZhengYP): Add log info when record is evicted.
|
|
89
|
+
}
|
|
90
|
+
// Add latest used value to the cache.
|
|
91
|
+
store.values.set(key, value);
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export { fetchNewValue, getCacheValue, initStore };
|
|
95
|
+
//# sourceMappingURL=store.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.mjs","sources":["../../../../src/storageBrowser/locationCredentialsStore/store.ts"],"sourcesContent":["/* eslint-disable unused-imports/no-unused-vars */\nimport { assertValidationError } from '../../errors/utils/assertValidationError';\nimport { StorageValidationErrorCode } from '../../errors/types/validation';\nimport { CREDENTIALS_REFRESH_WINDOW_MS, CREDENTIALS_STORE_DEFAULT_SIZE, } from './constants';\nconst createCacheKey = (location) => `${location.scope}_${location.permission}`;\n/**\n * @internal\n */\nexport const initStore = (refreshHandler, size = CREDENTIALS_STORE_DEFAULT_SIZE) => {\n assertValidationError(size > 0, StorageValidationErrorCode.InvalidLocationCredentialsCacheSize);\n return {\n capacity: size,\n refreshHandler,\n values: new Map(),\n };\n};\nexport const getCacheValue = (store, location) => {\n const cacheKey = createCacheKey(location);\n const cachedValue = store.values.get(cacheKey);\n const cachedCredentials = cachedValue?.credentials;\n if (!cachedCredentials) {\n return null;\n }\n // Delete and re-insert to key to map to indicate a latest reference in LRU.\n store.values.delete(cacheKey);\n if (!pastTTL(cachedCredentials)) {\n // TODO(@AllanZhengYP): If the credential is still valid but will expire\n // soon, we should return credentials AND dispatch a refresh.\n store.values.set(cacheKey, cachedValue);\n return cachedCredentials;\n }\n return null;\n};\nconst pastTTL = (credentials) => {\n const { expiration } = credentials;\n return expiration.getTime() - CREDENTIALS_REFRESH_WINDOW_MS <= Date.now();\n};\n/**\n * Fetch new credentials value with refresh handler and cache the result in\n * LRU cache.\n * @internal\n */\nexport const fetchNewValue = async (store, location) => {\n const storeValues = store.values;\n const key = createCacheKey(location);\n if (!storeValues.has(key)) {\n const newStoreValue = {\n scope: location.scope,\n permission: location.permission,\n };\n setCacheRecord(store, key, newStoreValue);\n }\n const storeValue = storeValues.get(key);\n return dispatchRefresh(store.refreshHandler, storeValue, () => {\n store.values.delete(key);\n });\n};\nconst dispatchRefresh = (refreshHandler, value, onRefreshFailure) => {\n if (value.inflightCredentials) {\n return value.inflightCredentials;\n }\n value.inflightCredentials = (async () => {\n try {\n const { credentials } = await refreshHandler({\n scope: value.scope,\n permission: value.permission,\n });\n value.credentials = credentials;\n return { credentials };\n }\n catch (e) {\n onRefreshFailure();\n throw e;\n }\n finally {\n value.inflightCredentials = undefined;\n }\n })();\n return value.inflightCredentials;\n};\nconst setCacheRecord = (store, key, value) => {\n if (store.capacity === store.values.size) {\n // Pop least used entry. The Map's key are in insertion order.\n // So first key is the last recently inserted.\n const [oldestKey] = store.values.keys();\n store.values.delete(oldestKey);\n // TODO(@AllanZhengYP): Add log info when record is evicted.\n }\n // Add latest used value to the cache.\n store.values.set(key, value);\n};\n"],"names":[],"mappings":";;;;AAAA;AAIA,MAAM,cAAc,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAChF;AACA;AACA;AACY,MAAC,SAAS,GAAG,CAAC,cAAc,EAAE,IAAI,GAAG,8BAA8B,KAAK;AACpF,IAAI,qBAAqB,CAAC,IAAI,GAAG,CAAC,EAAE,0BAA0B,CAAC,mCAAmC,CAAC,CAAC;AACpG,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE,IAAI;AACtB,QAAQ,cAAc;AACtB,QAAQ,MAAM,EAAE,IAAI,GAAG,EAAE;AACzB,KAAK,CAAC;AACN,EAAE;AACU,MAAC,aAAa,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK;AAClD,IAAI,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC9C,IAAI,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACnD,IAAI,MAAM,iBAAiB,GAAG,WAAW,EAAE,WAAW,CAAC;AACvD,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAClC,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;AACrC;AACA;AACA,QAAQ,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAChD,QAAQ,OAAO,iBAAiB,CAAC;AACjC,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,EAAE;AACF,MAAM,OAAO,GAAG,CAAC,WAAW,KAAK;AACjC,IAAI,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC;AACvC,IAAI,OAAO,UAAU,CAAC,OAAO,EAAE,GAAG,6BAA6B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AAC9E,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACY,MAAC,aAAa,GAAG,OAAO,KAAK,EAAE,QAAQ,KAAK;AACxD,IAAI,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;AACrC,IAAI,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;AACzC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC/B,QAAQ,MAAM,aAAa,GAAG;AAC9B,YAAY,KAAK,EAAE,QAAQ,CAAC,KAAK;AACjC,YAAY,UAAU,EAAE,QAAQ,CAAC,UAAU;AAC3C,SAAS,CAAC;AACV,QAAQ,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;AAClD,KAAK;AACL,IAAI,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5C,IAAI,OAAO,eAAe,CAAC,KAAK,CAAC,cAAc,EAAE,UAAU,EAAE,MAAM;AACnE,QAAQ,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACjC,KAAK,CAAC,CAAC;AACP,EAAE;AACF,MAAM,eAAe,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,gBAAgB,KAAK;AACrE,IAAI,IAAI,KAAK,CAAC,mBAAmB,EAAE;AACnC,QAAQ,OAAO,KAAK,CAAC,mBAAmB,CAAC;AACzC,KAAK;AACL,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,YAAY;AAC7C,QAAQ,IAAI;AACZ,YAAY,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,cAAc,CAAC;AACzD,gBAAgB,KAAK,EAAE,KAAK,CAAC,KAAK;AAClC,gBAAgB,UAAU,EAAE,KAAK,CAAC,UAAU;AAC5C,aAAa,CAAC,CAAC;AACf,YAAY,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;AAC5C,YAAY,OAAO,EAAE,WAAW,EAAE,CAAC;AACnC,SAAS;AACT,QAAQ,OAAO,CAAC,EAAE;AAClB,YAAY,gBAAgB,EAAE,CAAC;AAC/B,YAAY,MAAM,CAAC,CAAC;AACpB,SAAS;AACT,gBAAgB;AAChB,YAAY,KAAK,CAAC,mBAAmB,GAAG,SAAS,CAAC;AAClD,SAAS;AACT,KAAK,GAAG,CAAC;AACT,IAAI,OAAO,KAAK,CAAC,mBAAmB,CAAC;AACrC,CAAC,CAAC;AACF,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,KAAK;AAC9C,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;AAC9C;AACA;AACA,QAAQ,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAChD,QAAQ,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACvC;AACA,KAAK;AACL;AACA,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CredentialsProvider, ListLocations } from '../types';
|
|
2
|
+
interface CreateListLocationsHandlerInput {
|
|
3
|
+
accountId: string;
|
|
4
|
+
credentialsProvider: CredentialsProvider;
|
|
5
|
+
region: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const createListLocationsHandler: (handlerInput: CreateListLocationsHandlerInput) => ListLocations;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { listCallerAccessGrants } from '../apis/listCallerAccessGrants.mjs';
|
|
2
|
+
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
const createListLocationsHandler = (handlerInput) => {
|
|
6
|
+
return async function listLocations(input = {}) {
|
|
7
|
+
const result = await listCallerAccessGrants({ ...input, ...handlerInput });
|
|
8
|
+
return result;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { createListLocationsHandler };
|
|
13
|
+
//# sourceMappingURL=createListLocationsHandler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createListLocationsHandler.mjs","sources":["../../../../src/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { listCallerAccessGrants } from '../apis/listCallerAccessGrants';\nexport const createListLocationsHandler = (handlerInput) => {\n return async function listLocations(input = {}) {\n const result = await listCallerAccessGrants({ ...input, ...handlerInput });\n return result;\n };\n};\n"],"names":[],"mappings":";;AAAA;AACA;AAEY,MAAC,0BAA0B,GAAG,CAAC,YAAY,KAAK;AAC5D,IAAI,OAAO,eAAe,aAAa,CAAC,KAAK,GAAG,EAAE,EAAE;AACpD,QAAQ,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;AACnF,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,CAAC;AACN;;;;"}
|
package/dist/esm/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CredentialsProvider, GetLocationCredentials } from '../types';
|
|
2
|
+
interface CreateLocationCredentialsHandlerInput {
|
|
3
|
+
accountId: string;
|
|
4
|
+
credentialsProvider: CredentialsProvider;
|
|
5
|
+
region: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const createLocationCredentialsHandler: (handlerInput: CreateLocationCredentialsHandlerInput) => GetLocationCredentials;
|
|
8
|
+
export {};
|