@aws-amplify/core 6.0.16 → 6.0.17-unstable.0d2aa5d.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/BackgroundProcessManager/BackgroundProcessManager.js +11 -16
- package/dist/cjs/BackgroundProcessManager/BackgroundProcessManager.js.map +1 -1
- package/dist/cjs/Cache/StorageCacheCommon.js +5 -5
- package/dist/cjs/Cache/StorageCacheCommon.js.map +1 -1
- package/dist/cjs/Cache/utils/CacheList.js +2 -2
- package/dist/cjs/Cache/utils/CacheList.js.map +1 -1
- package/dist/cjs/Hub/index.js +2 -2
- package/dist/cjs/Hub/index.js.map +1 -1
- package/dist/cjs/I18n/I18n.js +8 -13
- package/dist/cjs/I18n/I18n.js.map +1 -1
- package/dist/cjs/I18n/index.js +4 -4
- package/dist/cjs/I18n/index.js.map +1 -1
- package/dist/cjs/Logger/ConsoleLogger.js +8 -7
- package/dist/cjs/Logger/ConsoleLogger.js.map +1 -1
- package/dist/cjs/Logger/types.js +1 -0
- package/dist/cjs/Logger/types.js.map +1 -1
- package/dist/cjs/Mutex/Mutex.js +4 -1
- package/dist/cjs/Mutex/Mutex.js.map +1 -1
- package/dist/cjs/Platform/detectFramework.js +3 -1
- package/dist/cjs/Platform/detectFramework.js.map +1 -1
- package/dist/cjs/Platform/detection/Angular.js +2 -4
- package/dist/cjs/Platform/detection/Angular.js.map +1 -1
- package/dist/cjs/Platform/detection/Expo.js +1 -2
- package/dist/cjs/Platform/detection/Expo.js.map +1 -1
- package/dist/cjs/Platform/detection/Next.js +3 -2
- package/dist/cjs/Platform/detection/Next.js.map +1 -1
- package/dist/cjs/Platform/detection/Nuxt.js +3 -4
- package/dist/cjs/Platform/detection/Nuxt.js.map +1 -1
- package/dist/cjs/Platform/index.js +1 -1
- package/dist/cjs/Platform/index.js.map +1 -1
- package/dist/cjs/Platform/version.js +1 -1
- package/dist/cjs/Platform/version.js.map +1 -1
- package/dist/cjs/Reachability/Reachability.js +6 -2
- package/dist/cjs/Reachability/Reachability.js.map +1 -1
- package/dist/cjs/ServiceWorker/ServiceWorker.js +11 -11
- package/dist/cjs/ServiceWorker/ServiceWorker.js.map +1 -1
- package/dist/cjs/Signer/DateUtils.js +1 -1
- package/dist/cjs/Signer/DateUtils.js.map +1 -1
- package/dist/cjs/Signer/Signer.js +3 -3
- package/dist/cjs/Signer/Signer.js.map +1 -1
- package/dist/cjs/adapterCore/serverContext/serverContext.js +1 -1
- package/dist/cjs/adapterCore/serverContext/serverContext.js.map +1 -1
- package/dist/cjs/awsClients/cognitoIdentity/base.js +2 -2
- package/dist/cjs/awsClients/cognitoIdentity/base.js.map +1 -1
- package/dist/cjs/awsClients/cognitoIdentity/getCredentialsForIdentity.js +1 -1
- package/dist/cjs/awsClients/cognitoIdentity/getCredentialsForIdentity.js.map +1 -1
- package/dist/cjs/awsClients/cognitoIdentity/getId.js +1 -1
- package/dist/cjs/awsClients/cognitoIdentity/getId.js.map +1 -1
- package/dist/cjs/awsClients/pinpoint/getInAppMessages.js +1 -1
- package/dist/cjs/awsClients/pinpoint/getInAppMessages.js.map +1 -1
- package/dist/cjs/awsClients/pinpoint/putEvents.js +1 -1
- package/dist/cjs/awsClients/pinpoint/putEvents.js.map +1 -1
- package/dist/cjs/awsClients/pinpoint/types.js +0 -1
- package/dist/cjs/awsClients/pinpoint/types.js.map +1 -1
- package/dist/cjs/awsClients/pinpoint/updateEndpoint.js +1 -1
- package/dist/cjs/awsClients/pinpoint/updateEndpoint.js.map +1 -1
- package/dist/cjs/clients/handlers/authenticated.js +3 -3
- package/dist/cjs/clients/handlers/authenticated.js.map +1 -1
- package/dist/cjs/clients/handlers/unauthenticated.js +1 -1
- package/dist/cjs/clients/handlers/unauthenticated.js.map +1 -1
- package/dist/cjs/clients/index.js +4 -4
- package/dist/cjs/clients/index.js.map +1 -1
- package/dist/cjs/clients/internal/composeServiceApi.js +1 -1
- package/dist/cjs/clients/internal/composeServiceApi.js.map +1 -1
- package/dist/cjs/clients/internal/composeTransferHandler.js +1 -1
- package/dist/cjs/clients/internal/composeTransferHandler.js.map +1 -1
- package/dist/cjs/clients/middleware/retry/defaultRetryDecider.js +2 -2
- package/dist/cjs/clients/middleware/retry/defaultRetryDecider.js.map +1 -1
- package/dist/cjs/clients/middleware/retry/index.js +2 -2
- package/dist/cjs/clients/middleware/retry/index.js.map +1 -1
- package/dist/cjs/clients/middleware/retry/jitteredBackoff.js +1 -1
- package/dist/cjs/clients/middleware/retry/jitteredBackoff.js.map +1 -1
- package/dist/cjs/clients/middleware/retry/middleware.js +6 -6
- package/dist/cjs/clients/middleware/retry/middleware.js.map +1 -1
- package/dist/cjs/clients/middleware/signing/index.js +2 -2
- package/dist/cjs/clients/middleware/signing/index.js.map +1 -1
- package/dist/cjs/clients/middleware/signing/middleware.js +3 -3
- package/dist/cjs/clients/middleware/signing/middleware.js.map +1 -1
- package/dist/cjs/clients/middleware/signing/signer/signatureV4/presignUrl.js +1 -2
- package/dist/cjs/clients/middleware/signing/signer/signatureV4/presignUrl.js.map +1 -1
- package/dist/cjs/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.js +1 -1
- package/dist/cjs/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.js.map +1 -1
- package/dist/cjs/clients/middleware/userAgent/index.js +2 -2
- package/dist/cjs/clients/middleware/userAgent/index.js.map +1 -1
- package/dist/cjs/clients/middleware/userAgent/middleware.js +3 -3
- package/dist/cjs/clients/middleware/userAgent/middleware.js.map +1 -1
- package/dist/cjs/clients/serde/json.js +1 -1
- package/dist/cjs/clients/serde/json.js.map +1 -1
- package/dist/cjs/errors/errorHelpers.js +1 -1
- package/dist/cjs/errors/errorHelpers.js.map +1 -1
- package/dist/cjs/parseAWSExports.js +1 -1
- package/dist/cjs/parseAWSExports.js.map +1 -1
- package/dist/cjs/providers/pinpoint/apis/updateEndpoint.js +1 -1
- package/dist/cjs/providers/pinpoint/apis/updateEndpoint.js.map +1 -1
- package/dist/cjs/providers/pinpoint/utils/PinpointEventBuffer.js +2 -3
- package/dist/cjs/providers/pinpoint/utils/PinpointEventBuffer.js.map +1 -1
- package/dist/cjs/providers/pinpoint/utils/isAppInForeground.native.js +0 -1
- package/dist/cjs/providers/pinpoint/utils/isAppInForeground.native.js.map +1 -1
- package/dist/cjs/singleton/Amplify.js +1 -1
- package/dist/cjs/singleton/Amplify.js.map +1 -1
- package/dist/cjs/singleton/Auth/index.js +2 -6
- package/dist/cjs/singleton/Auth/index.js.map +1 -1
- package/dist/cjs/singleton/Auth/utils/index.js +4 -4
- package/dist/cjs/singleton/Auth/utils/index.js.map +1 -1
- package/dist/cjs/singleton/apis/fetchAuthSession.js +1 -1
- package/dist/cjs/singleton/apis/fetchAuthSession.js.map +1 -1
- package/dist/cjs/storage/CookieStorage.js +8 -4
- package/dist/cjs/storage/CookieStorage.js.map +1 -1
- package/dist/cjs/storage/CookieStorage.native.js +0 -3
- package/dist/cjs/storage/CookieStorage.native.js.map +1 -1
- package/dist/cjs/utils/WordArray.js +2 -2
- package/dist/cjs/utils/WordArray.js.map +1 -1
- package/dist/cjs/utils/deDupeAsyncFunction.js +8 -8
- package/dist/cjs/utils/deDupeAsyncFunction.js.map +1 -1
- package/dist/cjs/utils/getClientInfo/getClientInfo.android.js +2 -3
- package/dist/cjs/utils/getClientInfo/getClientInfo.android.js.map +1 -1
- package/dist/cjs/utils/getClientInfo/getClientInfo.ios.js +2 -3
- package/dist/cjs/utils/getClientInfo/getClientInfo.ios.js.map +1 -1
- package/dist/cjs/utils/queuedStorage/createQueuedStorage.native.js +2 -2
- package/dist/cjs/utils/queuedStorage/createQueuedStorage.native.js.map +1 -1
- package/dist/cjs/utils/retry/NonRetryableError.js +2 -2
- package/dist/cjs/utils/retry/NonRetryableError.js.map +1 -1
- package/dist/cjs/utils/retry/retry.js +15 -6
- package/dist/cjs/utils/retry/retry.js.map +1 -1
- package/dist/esm/BackgroundProcessManager/BackgroundProcessManager.d.ts +2 -8
- package/dist/esm/BackgroundProcessManager/BackgroundProcessManager.mjs +11 -16
- package/dist/esm/BackgroundProcessManager/BackgroundProcessManager.mjs.map +1 -1
- package/dist/esm/BackgroundProcessManager/types.d.ts +3 -3
- package/dist/esm/Cache/StorageCacheCommon.mjs +5 -5
- package/dist/esm/Cache/StorageCacheCommon.mjs.map +1 -1
- package/dist/esm/Cache/types/cache.d.ts +1 -1
- package/dist/esm/Cache/utils/CacheList.mjs +2 -2
- package/dist/esm/Cache/utils/CacheList.mjs.map +1 -1
- package/dist/esm/Hub/index.d.ts +4 -4
- package/dist/esm/Hub/index.mjs +2 -2
- package/dist/esm/Hub/index.mjs.map +1 -1
- package/dist/esm/Hub/types/AuthTypes.d.ts +11 -11
- package/dist/esm/Hub/types/HubTypes.d.ts +8 -8
- package/dist/esm/I18n/I18n.d.ts +0 -6
- package/dist/esm/I18n/I18n.mjs +8 -13
- package/dist/esm/I18n/I18n.mjs.map +1 -1
- package/dist/esm/I18n/index.mjs +4 -4
- package/dist/esm/I18n/index.mjs.map +1 -1
- package/dist/esm/Logger/ConsoleLogger.d.ts +1 -1
- package/dist/esm/Logger/ConsoleLogger.mjs +8 -7
- package/dist/esm/Logger/ConsoleLogger.mjs.map +1 -1
- package/dist/esm/Logger/types.d.ts +2 -1
- package/dist/esm/Logger/types.mjs +1 -0
- package/dist/esm/Logger/types.mjs.map +1 -1
- package/dist/esm/Mutex/Mutex.mjs +4 -1
- package/dist/esm/Mutex/Mutex.mjs.map +1 -1
- package/dist/esm/Mutex/types.d.ts +2 -6
- package/dist/esm/Platform/detectFramework.mjs +3 -1
- package/dist/esm/Platform/detectFramework.mjs.map +1 -1
- package/dist/esm/Platform/detection/Angular.mjs +2 -4
- package/dist/esm/Platform/detection/Angular.mjs.map +1 -1
- package/dist/esm/Platform/detection/Expo.mjs +1 -2
- package/dist/esm/Platform/detection/Expo.mjs.map +1 -1
- package/dist/esm/Platform/detection/Next.mjs +3 -2
- package/dist/esm/Platform/detection/Next.mjs.map +1 -1
- package/dist/esm/Platform/detection/Nuxt.mjs +3 -4
- package/dist/esm/Platform/detection/Nuxt.mjs.map +1 -1
- package/dist/esm/Platform/detection/index.mjs.map +1 -1
- package/dist/esm/Platform/index.d.ts +2 -2
- package/dist/esm/Platform/index.mjs +1 -1
- package/dist/esm/Platform/index.mjs.map +1 -1
- package/dist/esm/Platform/types.d.ts +12 -12
- package/dist/esm/Platform/version.d.ts +1 -1
- package/dist/esm/Platform/version.mjs +1 -1
- package/dist/esm/Platform/version.mjs.map +1 -1
- package/dist/esm/Reachability/Reachability.mjs +6 -2
- package/dist/esm/Reachability/Reachability.mjs.map +1 -1
- package/dist/esm/Reachability/types.d.ts +2 -2
- package/dist/esm/ServiceWorker/ServiceWorker.d.ts +0 -1
- package/dist/esm/ServiceWorker/ServiceWorker.mjs +11 -11
- package/dist/esm/ServiceWorker/ServiceWorker.mjs.map +1 -1
- package/dist/esm/Signer/DateUtils.d.ts +9 -9
- package/dist/esm/Signer/DateUtils.mjs +1 -1
- package/dist/esm/Signer/DateUtils.mjs.map +1 -1
- package/dist/esm/Signer/Signer.mjs +3 -3
- package/dist/esm/Signer/Signer.mjs.map +1 -1
- package/dist/esm/adapterCore/serverContext/serverContext.d.ts +1 -1
- package/dist/esm/adapterCore/serverContext/serverContext.mjs +1 -1
- package/dist/esm/adapterCore/serverContext/serverContext.mjs.map +1 -1
- package/dist/esm/adapterCore/serverContext/types/amplifyServer.d.ts +7 -9
- package/dist/esm/awsClients/cognitoIdentity/base.d.ts +1 -1
- package/dist/esm/awsClients/cognitoIdentity/base.mjs +2 -2
- package/dist/esm/awsClients/cognitoIdentity/base.mjs.map +1 -1
- package/dist/esm/awsClients/cognitoIdentity/getCredentialsForIdentity.d.ts +2 -6
- package/dist/esm/awsClients/cognitoIdentity/getCredentialsForIdentity.mjs +1 -1
- package/dist/esm/awsClients/cognitoIdentity/getCredentialsForIdentity.mjs.map +1 -1
- package/dist/esm/awsClients/cognitoIdentity/getId.d.ts +2 -6
- package/dist/esm/awsClients/cognitoIdentity/getId.mjs +1 -1
- package/dist/esm/awsClients/cognitoIdentity/getId.mjs.map +1 -1
- package/dist/esm/awsClients/cognitoIdentity/types.d.ts +2 -4
- package/dist/esm/awsClients/pinpoint/base.mjs.map +1 -1
- package/dist/esm/awsClients/pinpoint/getInAppMessages.d.ts +1 -1
- package/dist/esm/awsClients/pinpoint/getInAppMessages.mjs +1 -1
- package/dist/esm/awsClients/pinpoint/getInAppMessages.mjs.map +1 -1
- package/dist/esm/awsClients/pinpoint/putEvents.d.ts +1 -1
- package/dist/esm/awsClients/pinpoint/putEvents.mjs +1 -1
- package/dist/esm/awsClients/pinpoint/putEvents.mjs.map +1 -1
- package/dist/esm/awsClients/pinpoint/types.d.ts +3 -6
- package/dist/esm/awsClients/pinpoint/updateEndpoint.d.ts +1 -1
- package/dist/esm/awsClients/pinpoint/updateEndpoint.mjs +1 -1
- package/dist/esm/awsClients/pinpoint/updateEndpoint.mjs.map +1 -1
- package/dist/esm/clients/handlers/authenticated.mjs +6 -6
- package/dist/esm/clients/handlers/authenticated.mjs.map +1 -1
- package/dist/esm/clients/handlers/unauthenticated.mjs +3 -3
- package/dist/esm/clients/handlers/unauthenticated.mjs.map +1 -1
- package/dist/esm/clients/index.d.ts +3 -3
- package/dist/esm/clients/index.mjs +3 -3
- package/dist/esm/clients/internal/composeServiceApi.d.ts +2 -2
- package/dist/esm/clients/internal/composeServiceApi.mjs +1 -1
- package/dist/esm/clients/internal/composeServiceApi.mjs.map +1 -1
- package/dist/esm/clients/internal/composeTransferHandler.d.ts +2 -2
- package/dist/esm/clients/internal/composeTransferHandler.mjs +1 -1
- package/dist/esm/clients/internal/composeTransferHandler.mjs.map +1 -1
- package/dist/esm/clients/middleware/retry/defaultRetryDecider.d.ts +1 -1
- package/dist/esm/clients/middleware/retry/defaultRetryDecider.mjs +2 -2
- package/dist/esm/clients/middleware/retry/defaultRetryDecider.mjs.map +1 -1
- package/dist/esm/clients/middleware/retry/index.d.ts +1 -1
- package/dist/esm/clients/middleware/retry/index.mjs +1 -1
- package/dist/esm/clients/middleware/retry/jitteredBackoff.mjs.map +1 -1
- package/dist/esm/clients/middleware/retry/middleware.d.ts +3 -3
- package/dist/esm/clients/middleware/retry/middleware.mjs +5 -5
- package/dist/esm/clients/middleware/retry/middleware.mjs.map +1 -1
- package/dist/esm/clients/middleware/signing/index.d.ts +1 -1
- package/dist/esm/clients/middleware/signing/index.mjs +1 -1
- package/dist/esm/clients/middleware/signing/middleware.d.ts +1 -1
- package/dist/esm/clients/middleware/signing/middleware.mjs +2 -2
- package/dist/esm/clients/middleware/signing/middleware.mjs.map +1 -1
- package/dist/esm/clients/middleware/signing/signer/signatureV4/presignUrl.d.ts +1 -1
- package/dist/esm/clients/middleware/signing/signer/signatureV4/presignUrl.mjs +1 -2
- package/dist/esm/clients/middleware/signing/signer/signatureV4/presignUrl.mjs.map +1 -1
- package/dist/esm/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.mjs +1 -1
- package/dist/esm/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.mjs.map +1 -1
- package/dist/esm/clients/middleware/userAgent/index.d.ts +1 -1
- package/dist/esm/clients/middleware/userAgent/index.mjs +1 -1
- package/dist/esm/clients/middleware/userAgent/middleware.d.ts +1 -1
- package/dist/esm/clients/middleware/userAgent/middleware.mjs +2 -2
- package/dist/esm/clients/middleware/userAgent/middleware.mjs.map +1 -1
- package/dist/esm/clients/serde/json.mjs +1 -1
- package/dist/esm/clients/serde/json.mjs.map +1 -1
- package/dist/esm/clients/types/aws.d.ts +3 -3
- package/dist/esm/clients/types/core.d.ts +3 -5
- package/dist/esm/errors/APIError.d.ts +1 -1
- package/dist/esm/errors/errorHelpers.mjs +1 -1
- package/dist/esm/errors/errorHelpers.mjs.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/libraryUtils.d.ts +1 -1
- package/dist/esm/parseAWSExports.mjs +1 -1
- package/dist/esm/parseAWSExports.mjs.map +1 -1
- package/dist/esm/providers/kinesis/types/kinesis.d.ts +2 -2
- package/dist/esm/providers/kinesis-firehose/types/kinesis-firehose.d.ts +2 -2
- package/dist/esm/providers/personalize/types/personalize.d.ts +2 -2
- package/dist/esm/providers/pinpoint/apis/updateEndpoint.mjs +1 -1
- package/dist/esm/providers/pinpoint/apis/updateEndpoint.mjs.map +1 -1
- package/dist/esm/providers/pinpoint/types/buffer.d.ts +6 -8
- package/dist/esm/providers/pinpoint/types/pinpoint.d.ts +10 -10
- package/dist/esm/providers/pinpoint/utils/PinpointEventBuffer.d.ts +1 -1
- package/dist/esm/providers/pinpoint/utils/PinpointEventBuffer.mjs +2 -3
- package/dist/esm/providers/pinpoint/utils/PinpointEventBuffer.mjs.map +1 -1
- package/dist/esm/providers/pinpoint/utils/getEventBuffer.d.ts +1 -1
- package/dist/esm/providers/pinpoint/utils/isAppInForeground.native.mjs +0 -1
- package/dist/esm/providers/pinpoint/utils/isAppInForeground.native.mjs.map +1 -1
- package/dist/esm/singleton/API/types.d.ts +35 -37
- package/dist/esm/singleton/Amplify.d.ts +1 -1
- package/dist/esm/singleton/Amplify.mjs +1 -1
- package/dist/esm/singleton/Amplify.mjs.map +1 -1
- package/dist/esm/singleton/Auth/index.d.ts +0 -1
- package/dist/esm/singleton/Auth/index.mjs +2 -6
- package/dist/esm/singleton/Auth/index.mjs.map +1 -1
- package/dist/esm/singleton/Auth/types.d.ts +53 -52
- package/dist/esm/singleton/Auth/utils/index.d.ts +1 -1
- package/dist/esm/singleton/Auth/utils/index.mjs +4 -4
- package/dist/esm/singleton/Auth/utils/index.mjs.map +1 -1
- package/dist/esm/singleton/Geo/types.d.ts +3 -3
- package/dist/esm/singleton/Interactions/types.d.ts +4 -4
- package/dist/esm/singleton/Notifications/types.d.ts +5 -5
- package/dist/esm/singleton/Predictions/types.d.ts +28 -28
- package/dist/esm/singleton/Storage/types.d.ts +2 -2
- package/dist/esm/singleton/apis/fetchAuthSession.mjs +1 -1
- package/dist/esm/singleton/apis/fetchAuthSession.mjs.map +1 -1
- package/dist/esm/singleton/types.d.ts +8 -8
- package/dist/esm/storage/CookieStorage.mjs +8 -4
- package/dist/esm/storage/CookieStorage.mjs.map +1 -1
- package/dist/esm/storage/CookieStorage.native.d.ts +0 -1
- package/dist/esm/storage/CookieStorage.native.mjs +0 -3
- package/dist/esm/storage/CookieStorage.native.mjs.map +1 -1
- package/dist/esm/types/core.d.ts +2 -2
- package/dist/esm/types/errors.d.ts +4 -4
- package/dist/esm/types/storage.d.ts +2 -2
- package/dist/esm/utils/WordArray.mjs +2 -2
- package/dist/esm/utils/WordArray.mjs.map +1 -1
- package/dist/esm/utils/deDupeAsyncFunction.d.ts +1 -5
- package/dist/esm/utils/deDupeAsyncFunction.mjs +8 -8
- package/dist/esm/utils/deDupeAsyncFunction.mjs.map +1 -1
- package/dist/esm/utils/getClientInfo/getClientInfo.android.mjs +0 -1
- package/dist/esm/utils/getClientInfo/getClientInfo.android.mjs.map +1 -1
- package/dist/esm/utils/getClientInfo/getClientInfo.ios.mjs +0 -1
- package/dist/esm/utils/getClientInfo/getClientInfo.ios.mjs.map +1 -1
- package/dist/esm/utils/globalHelpers/index.native.mjs.map +1 -1
- package/dist/esm/utils/queuedStorage/createQueuedStorage.native.mjs +2 -2
- package/dist/esm/utils/queuedStorage/createQueuedStorage.native.mjs.map +1 -1
- package/dist/esm/utils/retry/NonRetryableError.d.ts +0 -1
- package/dist/esm/utils/retry/NonRetryableError.mjs +2 -2
- package/dist/esm/utils/retry/NonRetryableError.mjs.map +1 -1
- package/dist/esm/utils/retry/retry.mjs +15 -6
- package/dist/esm/utils/retry/retry.mjs.map +1 -1
- package/dist/esm/utils/sessionListener/SessionListener.d.ts +1 -1
- package/dist/esm/utils/sessionListener/SessionListener.native.d.ts +1 -1
- package/dist/esm/utils/sessionListener/types.d.ts +2 -2
- package/package.json +5 -4
- package/src/BackgroundProcessManager/BackgroundProcessManager.ts +29 -34
- package/src/BackgroundProcessManager/types.ts +3 -3
- package/src/Cache/StorageCache.native.ts +5 -0
- package/src/Cache/StorageCache.ts +2 -0
- package/src/Cache/StorageCacheCommon.ts +49 -29
- package/src/Cache/types/cache.ts +2 -1
- package/src/Cache/utils/CacheList.ts +6 -3
- package/src/Cache/utils/cacheHelpers.ts +2 -1
- package/src/Hub/index.ts +15 -15
- package/src/Hub/types/AuthTypes.ts +11 -11
- package/src/Hub/types/HubTypes.ts +11 -8
- package/src/I18n/I18n.ts +10 -16
- package/src/I18n/index.ts +7 -7
- package/src/Logger/ConsoleLogger.ts +12 -9
- package/src/Logger/types.ts +1 -0
- package/src/Mutex/Mutex.ts +8 -4
- package/src/Mutex/types.ts +3 -7
- package/src/Platform/customUserAgent.ts +3 -3
- package/src/Platform/detectFramework.ts +4 -1
- package/src/Platform/detection/Angular.ts +4 -4
- package/src/Platform/detection/Expo.ts +1 -2
- package/src/Platform/detection/Next.ts +5 -2
- package/src/Platform/detection/Nuxt.ts +5 -4
- package/src/Platform/detection/index.ts +9 -9
- package/src/Platform/index.ts +4 -4
- package/src/Platform/types.ts +12 -12
- package/src/Platform/version.ts +1 -1
- package/src/Reachability/Reachability.native.ts +6 -3
- package/src/Reachability/Reachability.ts +12 -6
- package/src/Reachability/types.ts +2 -2
- package/src/ServiceWorker/ServiceWorker.ts +28 -23
- package/src/Signer/DateUtils.ts +16 -16
- package/src/Signer/Signer.ts +19 -13
- package/src/adapterCore/serverContext/serverContext.ts +6 -5
- package/src/adapterCore/serverContext/serverContextRegistry.ts +2 -1
- package/src/adapterCore/serverContext/types/amplifyServer.ts +15 -17
- package/src/adapterCore/serverContext/types/cookieStorage.ts +1 -1
- package/src/awsClients/cognitoIdentity/base.ts +16 -12
- package/src/awsClients/cognitoIdentity/getCredentialsForIdentity.ts +13 -10
- package/src/awsClients/cognitoIdentity/getId.ts +12 -9
- package/src/awsClients/cognitoIdentity/types.ts +3 -3
- package/src/awsClients/pinpoint/base.ts +1 -1
- package/src/awsClients/pinpoint/getInAppMessages.ts +8 -5
- package/src/awsClients/pinpoint/putEvents.ts +8 -5
- package/src/awsClients/pinpoint/types.ts +3 -4
- package/src/awsClients/pinpoint/updateEndpoint.ts +8 -5
- package/src/clients/endpoints/getDnsSuffix.ts +1 -0
- package/src/clients/handlers/authenticated.ts +14 -7
- package/src/clients/handlers/fetch.ts +1 -1
- package/src/clients/handlers/unauthenticated.ts +8 -4
- package/src/clients/index.ts +6 -3
- package/src/clients/internal/composeServiceApi.ts +8 -7
- package/src/clients/internal/composeTransferHandler.ts +16 -15
- package/src/clients/middleware/retry/defaultRetryDecider.ts +5 -3
- package/src/clients/middleware/retry/index.ts +1 -1
- package/src/clients/middleware/retry/jitteredBackoff.ts +3 -1
- package/src/clients/middleware/retry/middleware.ts +12 -9
- package/src/clients/middleware/signing/index.ts +1 -1
- package/src/clients/middleware/signing/middleware.ts +5 -2
- package/src/clients/middleware/signing/signer/signatureV4/presignUrl.ts +4 -4
- package/src/clients/middleware/signing/signer/signatureV4/signRequest.ts +2 -1
- package/src/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.ts +4 -2
- package/src/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.ts +2 -1
- package/src/clients/middleware/signing/signer/signatureV4/utils/getCanonicalRequest.ts +2 -1
- package/src/clients/middleware/signing/signer/signatureV4/utils/getCanonicalUri.ts +1 -1
- package/src/clients/middleware/signing/signer/signatureV4/utils/getCredentialScope.ts +1 -1
- package/src/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.ts +2 -1
- package/src/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.ts +3 -0
- package/src/clients/middleware/signing/signer/signatureV4/utils/getSignature.ts +4 -3
- package/src/clients/middleware/signing/signer/signatureV4/utils/getSigningKey.ts +3 -1
- package/src/clients/middleware/signing/signer/signatureV4/utils/getSigningValues.ts +3 -1
- package/src/clients/middleware/signing/signer/signatureV4/utils/getStringToSign.ts +2 -2
- package/src/clients/middleware/signing/utils/getUpdatedSystemClockOffset.ts +2 -1
- package/src/clients/middleware/signing/utils/isClockSkewed.ts +2 -2
- package/src/clients/middleware/userAgent/index.ts +1 -1
- package/src/clients/middleware/userAgent/middleware.ts +3 -1
- package/src/clients/serde/json.ts +6 -2
- package/src/clients/serde/responseInfo.ts +6 -2
- package/src/clients/types/aws.ts +6 -3
- package/src/clients/types/core.ts +6 -8
- package/src/clients/types/http.ts +2 -1
- package/src/clients/utils/memoization.ts +2 -0
- package/src/errors/APIError.ts +3 -2
- package/src/errors/PlatformNotSupportedError.ts +1 -0
- package/src/errors/createAssertionFunction.ts +2 -1
- package/src/errors/errorHelpers.ts +2 -1
- package/src/index.ts +0 -1
- package/src/libraryUtils.ts +1 -0
- package/src/parseAWSExports.ts +16 -15
- package/src/providers/kinesis/types/kinesis.ts +2 -2
- package/src/providers/kinesis-firehose/types/kinesis-firehose.ts +2 -2
- package/src/providers/personalize/types/personalize.ts +2 -2
- package/src/providers/pinpoint/apis/updateEndpoint.ts +2 -2
- package/src/providers/pinpoint/types/buffer.ts +7 -8
- package/src/providers/pinpoint/types/pinpoint.ts +11 -10
- package/src/providers/pinpoint/utils/PinpointEventBuffer.ts +11 -21
- package/src/providers/pinpoint/utils/cacheEndpointId.ts +3 -1
- package/src/providers/pinpoint/utils/getCacheKey.ts +1 -1
- package/src/providers/pinpoint/utils/getEndpointId.ts +3 -1
- package/src/providers/pinpoint/utils/getEventBuffer.ts +2 -1
- package/src/providers/pinpoint/utils/isAppInForeground.native.ts +0 -1
- package/src/providers/pinpoint/utils/resolveEndpointId.ts +1 -0
- package/src/singleton/API/types.ts +35 -33
- package/src/singleton/Amplify.ts +8 -6
- package/src/singleton/Auth/index.ts +9 -13
- package/src/singleton/Auth/types.ts +59 -51
- package/src/singleton/Auth/utils/index.ts +16 -28
- package/src/singleton/Geo/types.ts +3 -3
- package/src/singleton/Interactions/types.ts +4 -4
- package/src/singleton/Notifications/types.ts +6 -5
- package/src/singleton/Predictions/types.ts +28 -28
- package/src/singleton/Storage/types.ts +2 -2
- package/src/singleton/apis/fetchAuthSession.ts +2 -1
- package/src/singleton/apis/internal/fetchAuthSession.ts +1 -1
- package/src/singleton/apis/server/fetchAuthSession.ts +2 -2
- package/src/singleton/types.ts +10 -10
- package/src/storage/CookieStorage.native.ts +1 -5
- package/src/storage/CookieStorage.ts +12 -6
- package/src/storage/DefaultStorage.native.ts +3 -1
- package/src/storage/InMemoryStorage.ts +1 -0
- package/src/storage/KeyValueStorage.ts +1 -0
- package/src/types/core.ts +3 -3
- package/src/types/errors.ts +5 -5
- package/src/types/storage.ts +2 -2
- package/src/utils/WordArray.ts +2 -2
- package/src/utils/convert/base64/base64Encoder.ts +1 -0
- package/src/utils/convert/types.ts +1 -1
- package/src/utils/cryptoSecureRandomInt.ts +1 -0
- package/src/utils/deDupeAsyncFunction.ts +15 -20
- package/src/utils/generateRandomString.ts +1 -1
- package/src/utils/getClientInfo/getClientInfo.android.ts +3 -2
- package/src/utils/getClientInfo/getClientInfo.ios.ts +4 -2
- package/src/utils/getClientInfo/getClientInfo.ts +3 -3
- package/src/utils/globalHelpers/index.native.ts +2 -1
- package/src/utils/haveCredentialsChanged.ts +5 -2
- package/src/utils/isWebWorker.ts +1 -0
- package/src/utils/queuedStorage/createQueuedStorage.native.ts +9 -6
- package/src/utils/queuedStorage/createQueuedStorage.ts +7 -3
- package/src/utils/queuedStorage/types.ts +1 -1
- package/src/utils/retry/NonRetryableError.ts +0 -3
- package/src/utils/retry/isNonRetryableError.ts +1 -0
- package/src/utils/retry/jitteredBackoff.ts +3 -1
- package/src/utils/retry/jitteredExponentialRetry.ts +1 -1
- package/src/utils/retry/retry.ts +22 -8
- package/src/utils/sessionListener/SessionListener.native.ts +4 -3
- package/src/utils/sessionListener/SessionListener.ts +4 -3
- package/src/utils/sessionListener/index.ts +1 -0
- package/src/utils/sessionListener/types.ts +2 -2
- package/src/utils/urlSafeDecode.ts +1 -0
|
@@ -21,14 +21,14 @@ export interface RetryOptions<TResponse = Response> {
|
|
|
21
21
|
* @param error Optional error thrown from previous attempts.
|
|
22
22
|
* @returns True if the request should be retried.
|
|
23
23
|
*/
|
|
24
|
-
retryDecider
|
|
24
|
+
retryDecider(response?: TResponse, error?: unknown): Promise<boolean>;
|
|
25
25
|
/**
|
|
26
26
|
* Function to compute the delay in milliseconds before the next retry based
|
|
27
27
|
* on the number of attempts.
|
|
28
28
|
* @param attempt Current number of attempts, including the first attempt.
|
|
29
29
|
* @returns Delay in milliseconds.
|
|
30
30
|
*/
|
|
31
|
-
computeDelay
|
|
31
|
+
computeDelay(attempt: number): number;
|
|
32
32
|
/**
|
|
33
33
|
* Maximum number of retry attempts, starting from 1. Defaults to 3.
|
|
34
34
|
*/
|
|
@@ -42,7 +42,7 @@ export interface RetryOptions<TResponse = Response> {
|
|
|
42
42
|
/**
|
|
43
43
|
* Retry middleware
|
|
44
44
|
*/
|
|
45
|
-
export const
|
|
45
|
+
export const retryMiddlewareFactory = <TInput = Request, TOutput = Response>({
|
|
46
46
|
maxAttempts = DEFAULT_RETRY_ATTEMPTS,
|
|
47
47
|
retryDecider,
|
|
48
48
|
computeDelay,
|
|
@@ -51,9 +51,10 @@ export const retryMiddleware = <TInput = Request, TOutput = Response>({
|
|
|
51
51
|
if (maxAttempts < 1) {
|
|
52
52
|
throw new Error('maxAttempts must be greater than 0');
|
|
53
53
|
}
|
|
54
|
+
|
|
54
55
|
return (
|
|
55
56
|
next: MiddlewareHandler<TInput, TOutput>,
|
|
56
|
-
context: MiddlewareContext
|
|
57
|
+
context: MiddlewareContext,
|
|
57
58
|
) =>
|
|
58
59
|
async function retryMiddleware(request: TInput) {
|
|
59
60
|
let error: unknown;
|
|
@@ -64,6 +65,7 @@ export const retryMiddleware = <TInput = Request, TOutput = Response>({
|
|
|
64
65
|
const handleTerminalErrorOrResponse = () => {
|
|
65
66
|
if (response) {
|
|
66
67
|
addOrIncrementMetadataAttempts(response, attemptsCount);
|
|
68
|
+
|
|
67
69
|
return response;
|
|
68
70
|
} else {
|
|
69
71
|
addOrIncrementMetadataAttempts(error as object, attemptsCount);
|
|
@@ -110,28 +112,29 @@ const cancellableSleep = (timeoutMs: number, abortSignal?: AbortSignal) => {
|
|
|
110
112
|
return Promise.resolve();
|
|
111
113
|
}
|
|
112
114
|
let timeoutId: ReturnType<typeof setTimeout>;
|
|
113
|
-
let sleepPromiseResolveFn:
|
|
115
|
+
let sleepPromiseResolveFn: () => void;
|
|
114
116
|
const sleepPromise = new Promise<void>(resolve => {
|
|
115
117
|
sleepPromiseResolveFn = resolve;
|
|
116
118
|
timeoutId = setTimeout(resolve, timeoutMs);
|
|
117
119
|
});
|
|
118
|
-
abortSignal?.addEventListener('abort', function cancelSleep(
|
|
120
|
+
abortSignal?.addEventListener('abort', function cancelSleep(_) {
|
|
119
121
|
clearTimeout(timeoutId);
|
|
120
122
|
abortSignal?.removeEventListener('abort', cancelSleep);
|
|
121
123
|
sleepPromiseResolveFn();
|
|
122
124
|
});
|
|
125
|
+
|
|
123
126
|
return sleepPromise;
|
|
124
127
|
};
|
|
125
128
|
|
|
126
129
|
const addOrIncrementMetadataAttempts = (
|
|
127
130
|
nextHandlerOutput: Record<string, any>,
|
|
128
|
-
attempts: number
|
|
131
|
+
attempts: number,
|
|
129
132
|
) => {
|
|
130
133
|
if (Object.prototype.toString.call(nextHandlerOutput) !== '[object Object]') {
|
|
131
134
|
return;
|
|
132
135
|
}
|
|
133
|
-
nextHandlerOutput
|
|
134
|
-
...(nextHandlerOutput
|
|
136
|
+
nextHandlerOutput.$metadata = {
|
|
137
|
+
...(nextHandlerOutput.$metadata ?? {}),
|
|
135
138
|
attempts,
|
|
136
139
|
};
|
|
137
140
|
};
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
HttpResponse,
|
|
8
8
|
MiddlewareHandler,
|
|
9
9
|
} from '../../types';
|
|
10
|
+
|
|
10
11
|
import { signRequest } from './signer/signatureV4';
|
|
11
12
|
import { getSkewCorrectedDate } from './utils/getSkewCorrectedDate';
|
|
12
13
|
import { getUpdatedSystemClockOffset } from './utils/getUpdatedSystemClockOffset';
|
|
@@ -32,13 +33,14 @@ export interface SigningOptions {
|
|
|
32
33
|
* Middleware that SigV4 signs request with AWS credentials, and correct system clock offset.
|
|
33
34
|
* This middleware is expected to be placed after retry middleware.
|
|
34
35
|
*/
|
|
35
|
-
export const
|
|
36
|
+
export const signingMiddlewareFactory = ({
|
|
36
37
|
credentials,
|
|
37
38
|
region,
|
|
38
39
|
service,
|
|
39
40
|
uriEscapePath = true,
|
|
40
41
|
}: SigningOptions) => {
|
|
41
42
|
let currentSystemClockOffset: number;
|
|
43
|
+
|
|
42
44
|
return (next: MiddlewareHandler<HttpRequest, HttpResponse>) =>
|
|
43
45
|
async function signingMiddleware(request: HttpRequest) {
|
|
44
46
|
currentSystemClockOffset = currentSystemClockOffset ?? 0;
|
|
@@ -59,9 +61,10 @@ export const signingMiddleware = ({
|
|
|
59
61
|
if (dateString) {
|
|
60
62
|
currentSystemClockOffset = getUpdatedSystemClockOffset(
|
|
61
63
|
Date.parse(dateString),
|
|
62
|
-
currentSystemClockOffset
|
|
64
|
+
currentSystemClockOffset,
|
|
63
65
|
);
|
|
64
66
|
}
|
|
67
|
+
|
|
65
68
|
return response;
|
|
66
69
|
};
|
|
67
70
|
};
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { AmplifyUrl } from '../../../../../utils/amplifyUrl';
|
|
5
|
+
|
|
6
|
+
import { PresignUrlOptions, Presignable } from './types';
|
|
5
7
|
import {
|
|
6
8
|
ALGORITHM_QUERY_PARAM,
|
|
7
9
|
AMZ_DATE_QUERY_PARAM,
|
|
@@ -15,7 +17,6 @@ import {
|
|
|
15
17
|
} from './constants';
|
|
16
18
|
import { getSigningValues } from './utils/getSigningValues';
|
|
17
19
|
import { getSignature } from './utils/getSignature';
|
|
18
|
-
import { AmplifyUrl } from '../../../../../utils/amplifyUrl';
|
|
19
20
|
|
|
20
21
|
/**
|
|
21
22
|
* Given a `Presignable` object, returns a Signature Version 4 presigned `URL` object.
|
|
@@ -26,14 +27,13 @@ import { AmplifyUrl } from '../../../../../utils/amplifyUrl';
|
|
|
26
27
|
*/
|
|
27
28
|
export const presignUrl = (
|
|
28
29
|
{ body, method = 'GET', url }: Presignable,
|
|
29
|
-
{ expiration, ...options }: PresignUrlOptions
|
|
30
|
+
{ expiration, ...options }: PresignUrlOptions,
|
|
30
31
|
): URL => {
|
|
31
32
|
const signingValues = getSigningValues(options);
|
|
32
33
|
const { accessKeyId, credentialScope, longDate, sessionToken } =
|
|
33
34
|
signingValues;
|
|
34
35
|
|
|
35
36
|
// create the request to sign
|
|
36
|
-
// @ts-ignore URL constructor accepts a URL object
|
|
37
37
|
const presignedUrl = new AmplifyUrl(url);
|
|
38
38
|
Object.entries({
|
|
39
39
|
[ALGORITHM_QUERY_PARAM]: SHA256_ALGORITHM_IDENTIFIER,
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { HttpRequest } from '../../../../types';
|
|
5
|
+
|
|
5
6
|
import { SignRequestOptions } from './types/signer';
|
|
6
7
|
import { getSignedHeaders } from './utils/getSignedHeaders';
|
|
7
8
|
import { getSigningValues } from './utils/getSigningValues';
|
|
@@ -23,7 +24,7 @@ import { getSignature } from './utils/getSignature';
|
|
|
23
24
|
*/
|
|
24
25
|
export const signRequest = (
|
|
25
26
|
request: HttpRequest,
|
|
26
|
-
options: SignRequestOptions
|
|
27
|
+
options: SignRequestOptions,
|
|
27
28
|
): HttpRequest => {
|
|
28
29
|
const signingValues = getSigningValues(options);
|
|
29
30
|
const { accessKeyId, credentialScope, longDate, sessionToken } =
|
|
@@ -15,12 +15,13 @@ import { toHex } from '@smithy/util-hex-encoding';
|
|
|
15
15
|
*/
|
|
16
16
|
export const getHashedData = (
|
|
17
17
|
key: SourceData | null,
|
|
18
|
-
data: SourceData
|
|
18
|
+
data: SourceData,
|
|
19
19
|
): Uint8Array => {
|
|
20
20
|
const sha256 = new Sha256(key ?? undefined);
|
|
21
21
|
sha256.update(data);
|
|
22
22
|
// TODO: V6 flip to async digest
|
|
23
23
|
const hashedData = sha256.digestSync();
|
|
24
|
+
|
|
24
25
|
return hashedData;
|
|
25
26
|
};
|
|
26
27
|
|
|
@@ -35,8 +36,9 @@ export const getHashedData = (
|
|
|
35
36
|
*/
|
|
36
37
|
export const getHashedDataAsHex = (
|
|
37
38
|
key: SourceData | null,
|
|
38
|
-
data: SourceData
|
|
39
|
+
data: SourceData,
|
|
39
40
|
): string => {
|
|
40
41
|
const hashedData = getHashedData(key, data);
|
|
42
|
+
|
|
41
43
|
return toHex(hashedData);
|
|
42
44
|
};
|
|
@@ -13,13 +13,14 @@
|
|
|
13
13
|
* @internal
|
|
14
14
|
*/
|
|
15
15
|
export const getCanonicalQueryString = (
|
|
16
|
-
searchParams: URLSearchParams
|
|
16
|
+
searchParams: URLSearchParams,
|
|
17
17
|
): string =>
|
|
18
18
|
Array.from(searchParams)
|
|
19
19
|
.sort(([keyA, valA], [keyB, valB]) => {
|
|
20
20
|
if (keyA === keyB) {
|
|
21
21
|
return valA < valB ? -1 : 1;
|
|
22
22
|
}
|
|
23
|
+
|
|
23
24
|
return keyA < keyB ? -1 : 1;
|
|
24
25
|
})
|
|
25
26
|
.map(([key, val]) => `${escapeUri(key)}=${escapeUri(val)}`)
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { HttpRequest } from '../../../../../types';
|
|
5
|
+
|
|
5
6
|
import { getCanonicalHeaders } from './getCanonicalHeaders';
|
|
6
7
|
import { getCanonicalQueryString } from './getCanonicalQueryString';
|
|
7
8
|
import { getCanonicalUri } from './getCanonicalUri';
|
|
@@ -26,7 +27,7 @@ import { getSignedHeaders } from './getSignedHeaders';
|
|
|
26
27
|
*/
|
|
27
28
|
export const getCanonicalRequest = (
|
|
28
29
|
{ body, headers, method, url }: HttpRequest,
|
|
29
|
-
uriEscapePath = true
|
|
30
|
+
uriEscapePath = true,
|
|
30
31
|
): string =>
|
|
31
32
|
[
|
|
32
33
|
method,
|
|
@@ -14,7 +14,8 @@ import { FormattedDates } from '../types/signer';
|
|
|
14
14
|
* @internal
|
|
15
15
|
*/
|
|
16
16
|
export const getFormattedDates = (date: Date): FormattedDates => {
|
|
17
|
-
const longDate = date.toISOString().replace(/[
|
|
17
|
+
const longDate = date.toISOString().replace(/[:-]|\.\d{3}/g, '');
|
|
18
|
+
|
|
18
19
|
return {
|
|
19
20
|
longDate,
|
|
20
21
|
shortDate: longDate.slice(0, 8),
|
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { SourceData } from '@aws-sdk/types';
|
|
5
|
+
|
|
5
6
|
import { HttpRequest } from '../../../../../types';
|
|
6
7
|
import { EMPTY_HASH, UNSIGNED_PAYLOAD } from '../constants';
|
|
8
|
+
|
|
7
9
|
import { getHashedDataAsHex } from './dataHashHelpers';
|
|
8
10
|
|
|
9
11
|
/**
|
|
@@ -23,6 +25,7 @@ export const getHashedPayload = (body: HttpRequest['body']): string => {
|
|
|
23
25
|
|
|
24
26
|
if (isSourceData(body)) {
|
|
25
27
|
const hashedData = getHashedDataAsHex(null, body);
|
|
28
|
+
|
|
26
29
|
return hashedData;
|
|
27
30
|
}
|
|
28
31
|
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
import { HttpRequest } from '../../../../../types';
|
|
5
5
|
import { SigningValues } from '../types/signer';
|
|
6
|
+
|
|
6
7
|
import { getHashedDataAsHex } from './dataHashHelpers';
|
|
7
8
|
import { getCanonicalRequest } from './getCanonicalRequest';
|
|
8
9
|
import { getSigningKey } from './getSigningKey';
|
|
@@ -28,7 +29,7 @@ export const getSignature = (
|
|
|
28
29
|
signingRegion,
|
|
29
30
|
signingService,
|
|
30
31
|
uriEscapePath,
|
|
31
|
-
}: SigningValues
|
|
32
|
+
}: SigningValues,
|
|
32
33
|
): string => {
|
|
33
34
|
// step 1: create a canonical request
|
|
34
35
|
const canonicalRequest = getCanonicalRequest(request, uriEscapePath);
|
|
@@ -40,13 +41,13 @@ export const getSignature = (
|
|
|
40
41
|
const stringToSign = getStringToSign(
|
|
41
42
|
longDate,
|
|
42
43
|
credentialScope,
|
|
43
|
-
hashedRequest
|
|
44
|
+
hashedRequest,
|
|
44
45
|
);
|
|
45
46
|
|
|
46
47
|
// step 4: calculate the signature
|
|
47
48
|
const signature = getHashedDataAsHex(
|
|
48
49
|
getSigningKey(secretAccessKey, shortDate, signingRegion, signingService),
|
|
49
|
-
stringToSign
|
|
50
|
+
stringToSign,
|
|
50
51
|
);
|
|
51
52
|
|
|
52
53
|
return signature;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { KEY_TYPE_IDENTIFIER, SIGNATURE_IDENTIFIER } from '../constants';
|
|
5
|
+
|
|
5
6
|
import { getHashedData } from './dataHashHelpers';
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -20,12 +21,13 @@ export const getSigningKey = (
|
|
|
20
21
|
secretAccessKey: string,
|
|
21
22
|
date: string,
|
|
22
23
|
region: string,
|
|
23
|
-
service: string
|
|
24
|
+
service: string,
|
|
24
25
|
): Uint8Array => {
|
|
25
26
|
const key = `${SIGNATURE_IDENTIFIER}${secretAccessKey}`;
|
|
26
27
|
const dateKey = getHashedData(key, date);
|
|
27
28
|
const regionKey = getHashedData(dateKey, region);
|
|
28
29
|
const serviceKey = getHashedData(regionKey, service);
|
|
29
30
|
const signingKey = getHashedData(serviceKey, KEY_TYPE_IDENTIFIER);
|
|
31
|
+
|
|
30
32
|
return signingKey;
|
|
31
33
|
};
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
import { SignRequestOptions } from '../types';
|
|
5
5
|
import { SigningValues } from '../types/signer';
|
|
6
|
+
|
|
6
7
|
import { getCredentialScope } from './getCredentialScope';
|
|
7
8
|
import { getFormattedDates } from './getFormattedDates';
|
|
8
9
|
|
|
@@ -29,8 +30,9 @@ export const getSigningValues = ({
|
|
|
29
30
|
const credentialScope = getCredentialScope(
|
|
30
31
|
shortDate,
|
|
31
32
|
signingRegion,
|
|
32
|
-
signingService
|
|
33
|
+
signingService,
|
|
33
34
|
);
|
|
35
|
+
|
|
34
36
|
return {
|
|
35
37
|
accessKeyId,
|
|
36
38
|
credentialScope,
|
|
@@ -21,8 +21,8 @@ import { SHA256_ALGORITHM_IDENTIFIER } from '../constants';
|
|
|
21
21
|
export const getStringToSign = (
|
|
22
22
|
date: string,
|
|
23
23
|
credentialScope: string,
|
|
24
|
-
hashedRequest: string
|
|
24
|
+
hashedRequest: string,
|
|
25
25
|
): string =>
|
|
26
26
|
[SHA256_ALGORITHM_IDENTIFIER, date, credentialScope, hashedRequest].join(
|
|
27
|
-
'\n'
|
|
27
|
+
'\n',
|
|
28
28
|
);
|
|
@@ -13,10 +13,11 @@ import { isClockSkewed } from './isClockSkewed';
|
|
|
13
13
|
*/
|
|
14
14
|
export const getUpdatedSystemClockOffset = (
|
|
15
15
|
clockTimeInMilliseconds: number,
|
|
16
|
-
currentSystemClockOffset: number
|
|
16
|
+
currentSystemClockOffset: number,
|
|
17
17
|
): number => {
|
|
18
18
|
if (isClockSkewed(clockTimeInMilliseconds, currentSystemClockOffset)) {
|
|
19
19
|
return clockTimeInMilliseconds - Date.now();
|
|
20
20
|
}
|
|
21
|
+
|
|
21
22
|
return currentSystemClockOffset;
|
|
22
23
|
};
|
|
@@ -18,9 +18,9 @@ const SKEW_WINDOW = 5 * 60 * 1000;
|
|
|
18
18
|
*/
|
|
19
19
|
export const isClockSkewed = (
|
|
20
20
|
clockTimeInMilliseconds: number,
|
|
21
|
-
clockOffsetInMilliseconds: number
|
|
21
|
+
clockOffsetInMilliseconds: number,
|
|
22
22
|
): boolean =>
|
|
23
23
|
Math.abs(
|
|
24
24
|
getSkewCorrectedDate(clockOffsetInMilliseconds).getTime() -
|
|
25
|
-
clockTimeInMilliseconds
|
|
25
|
+
clockTimeInMilliseconds,
|
|
26
26
|
) >= SKEW_WINDOW;
|
|
@@ -15,7 +15,7 @@ export interface UserAgentOptions {
|
|
|
15
15
|
*
|
|
16
16
|
* TODO: incorporate new user agent design
|
|
17
17
|
*/
|
|
18
|
-
export const
|
|
18
|
+
export const userAgentMiddlewareFactory: Middleware<
|
|
19
19
|
HttpRequest,
|
|
20
20
|
HttpResponse,
|
|
21
21
|
UserAgentOptions
|
|
@@ -28,6 +28,7 @@ export const userAgentMiddleware: Middleware<
|
|
|
28
28
|
return async function userAgentMiddleware(request) {
|
|
29
29
|
if (userAgentValue.trim().length === 0) {
|
|
30
30
|
const result = await next(request);
|
|
31
|
+
|
|
31
32
|
return result;
|
|
32
33
|
} else {
|
|
33
34
|
const headerName = userAgentHeader.toLowerCase();
|
|
@@ -35,6 +36,7 @@ export const userAgentMiddleware: Middleware<
|
|
|
35
36
|
? `${request.headers[headerName]} ${userAgentValue}`
|
|
36
37
|
: userAgentValue;
|
|
37
38
|
const response = await next(request);
|
|
39
|
+
|
|
38
40
|
return response;
|
|
39
41
|
}
|
|
40
42
|
};
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { ErrorParser, HttpResponse } from '../types';
|
|
5
|
+
|
|
5
6
|
import { parseMetadata } from './responseInfo';
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -17,20 +18,22 @@ export const parseJsonError: ErrorParser = async (response?: HttpResponse) => {
|
|
|
17
18
|
}
|
|
18
19
|
const body = await parseJsonBody(response);
|
|
19
20
|
const sanitizeErrorCode = (rawValue: string | number): string => {
|
|
20
|
-
const [cleanValue] = rawValue.toString().split(/[
|
|
21
|
+
const [cleanValue] = rawValue.toString().split(/[,:]+/);
|
|
21
22
|
if (cleanValue.includes('#')) {
|
|
22
23
|
return cleanValue.split('#')[1];
|
|
23
24
|
}
|
|
25
|
+
|
|
24
26
|
return cleanValue;
|
|
25
27
|
};
|
|
26
28
|
const code = sanitizeErrorCode(
|
|
27
29
|
response.headers['x-amzn-errortype'] ??
|
|
28
30
|
body.code ??
|
|
29
31
|
body.__type ??
|
|
30
|
-
'UnknownError'
|
|
32
|
+
'UnknownError',
|
|
31
33
|
);
|
|
32
34
|
const message = body.message ?? body.Message ?? 'Unknown error';
|
|
33
35
|
const error = new Error(message);
|
|
36
|
+
|
|
34
37
|
return Object.assign(error, {
|
|
35
38
|
name: code,
|
|
36
39
|
$metadata: parseMetadata(response),
|
|
@@ -45,6 +48,7 @@ export const parseJsonBody = async (response: HttpResponse): Promise<any> => {
|
|
|
45
48
|
throw new Error('Missing response payload');
|
|
46
49
|
}
|
|
47
50
|
const output = await response.body.json();
|
|
51
|
+
|
|
48
52
|
return Object.assign(output, {
|
|
49
53
|
$metadata: parseMetadata(response),
|
|
50
54
|
});
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { MetadataBearer, ResponseMetadata } from '@aws-sdk/types';
|
|
5
|
+
|
|
5
6
|
import { HttpResponse } from '../types/http';
|
|
6
7
|
|
|
7
8
|
export const parseMetadata = (response: HttpResponse): ResponseMetadata => {
|
|
8
9
|
const { headers, statusCode } = response;
|
|
10
|
+
|
|
9
11
|
return {
|
|
10
12
|
...(isMetadataBearer(response) ? response.$metadata : {}),
|
|
11
13
|
httpStatusCode: statusCode,
|
|
@@ -18,6 +20,8 @@ export const parseMetadata = (response: HttpResponse): ResponseMetadata => {
|
|
|
18
20
|
};
|
|
19
21
|
};
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
interface IsResponse {
|
|
24
|
+
$metadata: any;
|
|
25
|
+
}
|
|
22
26
|
const isMetadataBearer = (response: unknown): response is MetadataBearer =>
|
|
23
27
|
typeof (response as IsResponse)?.$metadata === 'object';
|
package/src/clients/types/aws.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { MetadataBearer } from '@aws-sdk/types';
|
|
5
|
+
|
|
5
6
|
import { Endpoint } from './core';
|
|
6
7
|
import { HttpResponse } from './http';
|
|
7
8
|
|
|
@@ -15,11 +16,13 @@ export type SourceData = string | ArrayBuffer | ArrayBufferView;
|
|
|
15
16
|
/**
|
|
16
17
|
* Basic option type for endpoint resolvers. It contains region only.
|
|
17
18
|
*/
|
|
18
|
-
export
|
|
19
|
+
export interface EndpointResolverOptions {
|
|
20
|
+
region: string;
|
|
21
|
+
}
|
|
19
22
|
|
|
20
23
|
export interface ServiceClientOptions {
|
|
21
24
|
region: string;
|
|
22
|
-
endpointResolver
|
|
25
|
+
endpointResolver(options: EndpointResolverOptions, input?: any): Endpoint;
|
|
23
26
|
}
|
|
24
27
|
|
|
25
28
|
/**
|
|
@@ -27,5 +30,5 @@ export interface ServiceClientOptions {
|
|
|
27
30
|
* This function is protocol-specific (e.g. JSON, XML, etc.)
|
|
28
31
|
*/
|
|
29
32
|
export type ErrorParser = (
|
|
30
|
-
response?: HttpResponse
|
|
33
|
+
response?: HttpResponse,
|
|
31
34
|
) => Promise<(Error & MetadataBearer) | undefined>;
|
|
@@ -13,34 +13,32 @@ export interface Response {
|
|
|
13
13
|
body: unknown;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
export
|
|
16
|
+
export type TransferHandler<
|
|
17
17
|
Input extends Request,
|
|
18
18
|
Output extends Response,
|
|
19
19
|
TransferOptions,
|
|
20
|
-
>
|
|
21
|
-
(request: Input, options: TransferOptions): Promise<Output>;
|
|
22
|
-
}
|
|
20
|
+
> = (request: Input, options: TransferOptions) => Promise<Output>;
|
|
23
21
|
|
|
24
22
|
/**
|
|
25
23
|
* A slimmed down version of the AWS SDK v3 middleware handler, only handling instantiated requests
|
|
26
24
|
*/
|
|
27
25
|
export type MiddlewareHandler<Input, Output> = (
|
|
28
|
-
request: Input
|
|
26
|
+
request: Input,
|
|
29
27
|
) => Promise<Output>;
|
|
30
28
|
|
|
31
29
|
/**
|
|
32
30
|
* The context object to store states across the middleware chain.
|
|
33
31
|
*/
|
|
34
|
-
export
|
|
32
|
+
export interface MiddlewareContext {
|
|
35
33
|
/**
|
|
36
34
|
* The number of times the request has been attempted. This is set by retry middleware
|
|
37
35
|
*/
|
|
38
36
|
attemptsCount?: number;
|
|
39
|
-
}
|
|
37
|
+
}
|
|
40
38
|
|
|
41
39
|
type ConfiguredMiddleware<Input extends Request, Output extends Response> = (
|
|
42
40
|
next: MiddlewareHandler<Input, Output>,
|
|
43
|
-
context: MiddlewareContext
|
|
41
|
+
context: MiddlewareContext,
|
|
44
42
|
) => MiddlewareHandler<Input, Output>;
|
|
45
43
|
|
|
46
44
|
/**
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
import { Request, Response, TransferHandler } from './core';
|
|
5
4
|
import type { fetchTransferHandler } from '../handlers/fetch';
|
|
6
5
|
|
|
6
|
+
import { Request, Response, TransferHandler } from './core';
|
|
7
|
+
|
|
7
8
|
/**
|
|
8
9
|
* Use basic Record interface to workaround fetch Header class not available in Node.js
|
|
9
10
|
* The header names must be lowercased.
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
export const withMemoization = <T>(payloadAccessor: () => Promise<T>) => {
|
|
13
13
|
let cached: Promise<T>;
|
|
14
|
+
|
|
14
15
|
return () => {
|
|
15
16
|
if (!cached) {
|
|
16
17
|
// Explicitly not awaiting. Intermediate await would add overhead and
|
|
@@ -18,6 +19,7 @@ export const withMemoization = <T>(payloadAccessor: () => Promise<T>) => {
|
|
|
18
19
|
// again before the first `payloadAccessor` call resolves.
|
|
19
20
|
cached = payloadAccessor();
|
|
20
21
|
}
|
|
22
|
+
|
|
21
23
|
return cached;
|
|
22
24
|
};
|
|
23
25
|
};
|
package/src/errors/APIError.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
import { AmplifyError } from './AmplifyError';
|
|
5
4
|
import { AmplifyErrorParams } from '../types/errors';
|
|
6
5
|
|
|
6
|
+
import { AmplifyError } from './AmplifyError';
|
|
7
|
+
|
|
7
8
|
/**
|
|
8
9
|
* The type of an unwrapped HTTP response causing the given API error.
|
|
9
10
|
* @internal
|
|
@@ -52,7 +53,7 @@ export class ApiError extends AmplifyError {
|
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
const replicateApiErrorResponse = (
|
|
55
|
-
response: ApiErrorResponse
|
|
56
|
+
response: ApiErrorResponse,
|
|
56
57
|
): ApiErrorResponse => ({
|
|
57
58
|
...response,
|
|
58
59
|
headers: { ...response.headers },
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { AmplifyErrorMap, AssertionFunction } from '../types';
|
|
5
|
+
|
|
5
6
|
import { AmplifyError } from './AmplifyError';
|
|
6
7
|
|
|
7
8
|
export const createAssertionFunction =
|
|
8
9
|
(
|
|
9
10
|
errorMap: AmplifyErrorMap,
|
|
10
|
-
AssertionError = AmplifyError
|
|
11
|
+
AssertionError = AmplifyError,
|
|
11
12
|
): AssertionFunction =>
|
|
12
13
|
(assertion, name, additionalContext) => {
|
|
13
14
|
const { message, recoverySuggestion } = errorMap[name];
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
import { createAssertionFunction } from './createAssertionFunction';
|
|
5
4
|
import { AmplifyErrorCode, AmplifyErrorMap, AssertionFunction } from '../types';
|
|
6
5
|
|
|
6
|
+
import { createAssertionFunction } from './createAssertionFunction';
|
|
7
|
+
|
|
7
8
|
const amplifyErrorMap: AmplifyErrorMap<AmplifyErrorCode> = {
|
|
8
9
|
[AmplifyErrorCode.NoEndpointId]: {
|
|
9
10
|
message: 'Endpoint ID was not found and was unable to be created.',
|