@aws-amplify/core 6.0.16 → 6.0.17-unstable.3d2803e.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 +7 -6
- 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 +12 -11
- 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 +8 -5
- 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
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import JsCookie from 'js-cookie';
|
|
5
|
+
|
|
5
6
|
import {
|
|
6
7
|
CookieStorageData,
|
|
7
8
|
KeyValueStorageInterface,
|
|
@@ -18,19 +19,23 @@ export class CookieStorage implements KeyValueStorageInterface {
|
|
|
18
19
|
constructor(data: CookieStorageData = {}) {
|
|
19
20
|
const { path, domain, expires, sameSite, secure } = data;
|
|
20
21
|
this.domain = domain;
|
|
21
|
-
this.path = path
|
|
22
|
-
this.expires =
|
|
23
|
-
|
|
22
|
+
this.path = path || '/';
|
|
23
|
+
this.expires = Object.prototype.hasOwnProperty.call(data, 'expires')
|
|
24
|
+
? expires
|
|
25
|
+
: 365;
|
|
26
|
+
this.secure = Object.prototype.hasOwnProperty.call(data, 'secure')
|
|
27
|
+
? secure
|
|
28
|
+
: true;
|
|
24
29
|
|
|
25
|
-
if (
|
|
30
|
+
if (Object.prototype.hasOwnProperty.call(data, 'sameSite')) {
|
|
26
31
|
if (!sameSite || !['strict', 'lax', 'none'].includes(sameSite)) {
|
|
27
32
|
throw new Error(
|
|
28
|
-
'The sameSite value of cookieStorage must be "lax", "strict" or "none".'
|
|
33
|
+
'The sameSite value of cookieStorage must be "lax", "strict" or "none".',
|
|
29
34
|
);
|
|
30
35
|
}
|
|
31
36
|
if (sameSite === 'none' && !this.secure) {
|
|
32
37
|
throw new Error(
|
|
33
|
-
'sameSite = None requires the Secure attribute in latest browser versions.'
|
|
38
|
+
'sameSite = None requires the Secure attribute in latest browser versions.',
|
|
34
39
|
);
|
|
35
40
|
}
|
|
36
41
|
this.sameSite = sameSite;
|
|
@@ -43,6 +48,7 @@ export class CookieStorage implements KeyValueStorageInterface {
|
|
|
43
48
|
|
|
44
49
|
async getItem(key: string) {
|
|
45
50
|
const item = JsCookie.get(key);
|
|
51
|
+
|
|
46
52
|
return item ?? null;
|
|
47
53
|
}
|
|
48
54
|
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { loadAsyncStorage } from '@aws-amplify/react-native';
|
|
5
|
+
|
|
5
6
|
import { KeyValueStorageInterface } from '../types';
|
|
6
7
|
|
|
7
8
|
const MEMORY_KEY_PREFIX = '@MemoryStorage:';
|
|
@@ -51,8 +52,9 @@ export class DefaultStorage implements KeyValueStorageInterface {
|
|
|
51
52
|
*/
|
|
52
53
|
async clear(): Promise<void> {
|
|
53
54
|
const allKeys = await this.asyncStorage.getAllKeys();
|
|
55
|
+
|
|
54
56
|
return this.asyncStorage.multiRemove(
|
|
55
|
-
allKeys.filter(key => key.startsWith(MEMORY_KEY_PREFIX))
|
|
57
|
+
allKeys.filter(key => key.startsWith(MEMORY_KEY_PREFIX)),
|
|
56
58
|
);
|
|
57
59
|
}
|
|
58
60
|
}
|
package/src/types/core.ts
CHANGED
|
@@ -15,7 +15,7 @@ export interface AmplifyConfig {
|
|
|
15
15
|
ssr?: boolean;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
export
|
|
18
|
+
export interface UserProfile {
|
|
19
19
|
customProperties?: Record<string, string[]>;
|
|
20
20
|
demographic?: {
|
|
21
21
|
appVersion?: string;
|
|
@@ -39,7 +39,7 @@ export type UserProfile = {
|
|
|
39
39
|
metrics?: Record<string, number>;
|
|
40
40
|
name?: string;
|
|
41
41
|
plan?: string;
|
|
42
|
-
}
|
|
42
|
+
}
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
45
|
* @internal
|
|
@@ -47,5 +47,5 @@ export type UserProfile = {
|
|
|
47
47
|
export type DelayFunction = (
|
|
48
48
|
attempt: number,
|
|
49
49
|
args?: any[],
|
|
50
|
-
error?: unknown
|
|
50
|
+
error?: unknown,
|
|
51
51
|
) => number | false;
|
package/src/types/errors.ts
CHANGED
|
@@ -7,12 +7,12 @@ export enum AmplifyErrorCode {
|
|
|
7
7
|
Unknown = 'Unknown',
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
export
|
|
10
|
+
export interface AmplifyErrorParams<ErrorCode extends string = string> {
|
|
11
11
|
message: string;
|
|
12
12
|
name: ErrorCode;
|
|
13
13
|
recoverySuggestion?: string;
|
|
14
14
|
underlyingError?: Error | unknown;
|
|
15
|
-
}
|
|
15
|
+
}
|
|
16
16
|
|
|
17
17
|
export type AmplifyErrorMap<ErrorCode extends string = string> = {
|
|
18
18
|
[name in ErrorCode]: {
|
|
@@ -21,13 +21,13 @@ export type AmplifyErrorMap<ErrorCode extends string = string> = {
|
|
|
21
21
|
};
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
export
|
|
24
|
+
export interface ServiceError {
|
|
25
25
|
name: string;
|
|
26
26
|
message: string;
|
|
27
|
-
}
|
|
27
|
+
}
|
|
28
28
|
|
|
29
29
|
export type AssertionFunction<ErrorCode extends string = string> = (
|
|
30
30
|
assertion: boolean,
|
|
31
31
|
name: ErrorCode,
|
|
32
|
-
additionalContext?: string
|
|
32
|
+
additionalContext?: string,
|
|
33
33
|
) => asserts assertion;
|
package/src/types/storage.ts
CHANGED
|
@@ -10,7 +10,7 @@ export interface KeyValueStorageInterface {
|
|
|
10
10
|
|
|
11
11
|
export type SameSite = 'strict' | 'lax' | 'none';
|
|
12
12
|
|
|
13
|
-
export
|
|
13
|
+
export interface CookieStorageData {
|
|
14
14
|
domain?: string;
|
|
15
15
|
path?: string;
|
|
16
16
|
|
|
@@ -20,4 +20,4 @@ export type CookieStorageData = {
|
|
|
20
20
|
expires?: number;
|
|
21
21
|
secure?: boolean;
|
|
22
22
|
sameSite?: SameSite;
|
|
23
|
-
}
|
|
23
|
+
}
|
package/src/utils/WordArray.ts
CHANGED
|
@@ -12,8 +12,8 @@ import { cryptoSecureRandomInt } from './cryptoSecureRandomInt';
|
|
|
12
12
|
*/
|
|
13
13
|
function hexStringify(wordArray: WordArray): string {
|
|
14
14
|
// Shortcuts
|
|
15
|
-
const words = wordArray
|
|
16
|
-
const sigBytes = wordArray
|
|
15
|
+
const { words } = wordArray;
|
|
16
|
+
const { sigBytes } = wordArray;
|
|
17
17
|
|
|
18
18
|
// Convert
|
|
19
19
|
const hexChars: string[] = [];
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
// this will make the tsc-compliance-test to pass
|
|
5
|
-
type Awaited<T> = T extends null | undefined
|
|
6
|
-
? T // special case for `null | undefined` when not in `--strictNullChecks` mode
|
|
7
|
-
: T extends object & { then(onfulfilled: infer F, ...args: infer _): any } // `await` only unwraps object types with a callable `then`. Non-object types are not unwrapped
|
|
8
|
-
? F extends (value: infer V, ...args: infer _) => any // if the argument to `then` is callable, extracts the first argument
|
|
9
|
-
? Awaited<V> // recursively unwrap the value
|
|
10
|
-
: never // the argument to `then` was not callable
|
|
11
|
-
: T; //
|
|
12
4
|
/**
|
|
13
5
|
* returns in-flight promise if there is one
|
|
14
6
|
*
|
|
@@ -16,21 +8,24 @@ type Awaited<T> = T extends null | undefined
|
|
|
16
8
|
* @returns - the return type of the callback
|
|
17
9
|
*/
|
|
18
10
|
export const deDupeAsyncFunction = <A extends any[], R>(
|
|
19
|
-
asyncFunction: (...args: A) => Promise<R
|
|
11
|
+
asyncFunction: (...args: A) => Promise<R>,
|
|
20
12
|
) => {
|
|
21
|
-
let inflightPromise: Promise<
|
|
22
|
-
|
|
13
|
+
let inflightPromise: Promise<R> | undefined;
|
|
14
|
+
|
|
15
|
+
return async (...args: A): Promise<R> => {
|
|
23
16
|
if (inflightPromise) return inflightPromise;
|
|
24
17
|
|
|
25
|
-
inflightPromise = new Promise(
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
18
|
+
inflightPromise = new Promise<R>((resolve, reject) => {
|
|
19
|
+
asyncFunction(...args)
|
|
20
|
+
.then(result => {
|
|
21
|
+
resolve(result);
|
|
22
|
+
})
|
|
23
|
+
.catch(error => {
|
|
24
|
+
reject(error);
|
|
25
|
+
})
|
|
26
|
+
.finally(() => {
|
|
27
|
+
inflightPromise = undefined;
|
|
28
|
+
});
|
|
34
29
|
});
|
|
35
30
|
|
|
36
31
|
return inflightPromise;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
|
|
4
|
-
import {
|
|
3
|
+
|
|
4
|
+
import { Dimensions, Platform } from 'react-native';
|
|
5
|
+
|
|
5
6
|
import { ConsoleLogger } from '../../Logger';
|
|
6
7
|
|
|
7
8
|
const logger = new ConsoleLogger('getClientInfo');
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
|
|
4
|
-
import {
|
|
3
|
+
|
|
4
|
+
import { Dimensions, Platform } from 'react-native';
|
|
5
|
+
|
|
5
6
|
import { ConsoleLogger } from '../../Logger';
|
|
6
7
|
|
|
7
8
|
const logger = new ConsoleLogger('getClientInfo');
|
|
@@ -12,6 +13,7 @@ export const getClientInfo = () => {
|
|
|
12
13
|
const OS = 'ios';
|
|
13
14
|
const { Version } = Platform;
|
|
14
15
|
const { make, model } = dimToMake(dim);
|
|
16
|
+
|
|
15
17
|
return {
|
|
16
18
|
platform: OS,
|
|
17
19
|
version: String(Version),
|
|
@@ -50,7 +50,7 @@ function browserTimezone() {
|
|
|
50
50
|
function getBrowserType(userAgent: string) {
|
|
51
51
|
// The latest user agents for Opera: https://www.whatismybrowser.com/guides/the-latest-user-agent/opera
|
|
52
52
|
const operaMatch = /.+(Opera[\s[A-Z]*|OPR[\sA-Z]*)\/([0-9.]+).*/i.exec(
|
|
53
|
-
userAgent
|
|
53
|
+
userAgent,
|
|
54
54
|
);
|
|
55
55
|
if (operaMatch) {
|
|
56
56
|
return { type: operaMatch[1], version: operaMatch[2] };
|
|
@@ -58,7 +58,7 @@ function getBrowserType(userAgent: string) {
|
|
|
58
58
|
|
|
59
59
|
// The latest user agents for Edge: https://www.whatismybrowser.com/guides/the-latest-user-agent/edge
|
|
60
60
|
const ieMatch = /.+(Trident|Edge|Edg|EdgA|EdgiOS)\/([0-9.]+).*/i.exec(
|
|
61
|
-
userAgent
|
|
61
|
+
userAgent,
|
|
62
62
|
);
|
|
63
63
|
if (ieMatch) {
|
|
64
64
|
return { type: ieMatch[1], version: ieMatch[2] };
|
|
@@ -68,7 +68,7 @@ function getBrowserType(userAgent: string) {
|
|
|
68
68
|
// https://www.whatismybrowser.com/guides/the-latest-user-agent/firefox
|
|
69
69
|
// https://www.whatismybrowser.com/guides/the-latest-user-agent/chrome
|
|
70
70
|
const cfMatch = /.+(Chrome|CriOS|Firefox|FxiOS)\/([0-9.]+).*/i.exec(
|
|
71
|
-
userAgent
|
|
71
|
+
userAgent,
|
|
72
72
|
);
|
|
73
73
|
if (cfMatch) {
|
|
74
74
|
return { type: cfMatch[1], version: cfMatch[2] };
|
|
@@ -1,7 +1,8 @@
|
|
|
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 { loadBase64, loadGetRandomValues } from '@aws-amplify/react-native';
|
|
5
|
+
|
|
5
6
|
import { AmplifyError } from '../../errors';
|
|
6
7
|
|
|
7
8
|
loadGetRandomValues();
|
|
@@ -5,10 +5,13 @@ import { AWSCredentials } from '../libraryUtils';
|
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Utility for determining if credentials have changed.
|
|
8
|
-
*
|
|
8
|
+
*
|
|
9
9
|
* @internal
|
|
10
10
|
*/
|
|
11
|
-
export const haveCredentialsChanged = (
|
|
11
|
+
export const haveCredentialsChanged = (
|
|
12
|
+
cachedCredentials: AWSCredentials,
|
|
13
|
+
credentials: AWSCredentials,
|
|
14
|
+
) => {
|
|
12
15
|
return (
|
|
13
16
|
cachedCredentials.accessKeyId !== credentials.accessKeyId ||
|
|
14
17
|
cachedCredentials.sessionToken !== credentials.sessionToken ||
|
package/src/utils/isWebWorker.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { loadAsyncStorage } from '@aws-amplify/react-native';
|
|
5
|
+
|
|
5
6
|
import {
|
|
6
7
|
AddItemWithAuthPropertiesNative,
|
|
7
8
|
QueuedItem,
|
|
@@ -18,7 +19,7 @@ export const createQueuedStorage = (): QueuedStorage => {
|
|
|
18
19
|
|
|
19
20
|
const openDBPromise = new Promise<
|
|
20
21
|
ReturnType<typeof loadAsyncStorage> | undefined
|
|
21
|
-
>((resolve,
|
|
22
|
+
>((resolve, _reject) => {
|
|
22
23
|
try {
|
|
23
24
|
const asyncStorage = loadAsyncStorage();
|
|
24
25
|
|
|
@@ -28,9 +29,10 @@ export const createQueuedStorage = (): QueuedStorage => {
|
|
|
28
29
|
for (const item of items) {
|
|
29
30
|
currentBytesSize += item.bytesSize;
|
|
30
31
|
}
|
|
32
|
+
|
|
31
33
|
return undefined;
|
|
32
34
|
})
|
|
33
|
-
.then(
|
|
35
|
+
.then(__ => {
|
|
34
36
|
resolve(asyncStorage);
|
|
35
37
|
});
|
|
36
38
|
} catch (err) {
|
|
@@ -60,7 +62,7 @@ export const createQueuedStorage = (): QueuedStorage => {
|
|
|
60
62
|
return {
|
|
61
63
|
async add(
|
|
62
64
|
item,
|
|
63
|
-
{ dequeueBeforeEnqueue } = { dequeueBeforeEnqueue: false }
|
|
65
|
+
{ dequeueBeforeEnqueue } = { dequeueBeforeEnqueue: false },
|
|
64
66
|
) {
|
|
65
67
|
if (dequeueBeforeEnqueue) {
|
|
66
68
|
const itemsToDelete = await this.peek(1);
|
|
@@ -112,7 +114,7 @@ export const createQueuedStorage = (): QueuedStorage => {
|
|
|
112
114
|
|
|
113
115
|
const getQueuedItemKeys = async (
|
|
114
116
|
as: ReturnType<typeof loadAsyncStorage>,
|
|
115
|
-
sortKeys
|
|
117
|
+
sortKeys = false,
|
|
116
118
|
): Promise<string[]> => {
|
|
117
119
|
const keys = (await as.getAllKeys()).filter(key => key.startsWith(keyPrefix));
|
|
118
120
|
|
|
@@ -120,6 +122,7 @@ const getQueuedItemKeys = async (
|
|
|
120
122
|
? keys.sort((a, b) => {
|
|
121
123
|
const timestampA = a.split('_').pop() as string;
|
|
122
124
|
const timestampB = b.split('_').pop() as string;
|
|
125
|
+
|
|
123
126
|
return parseInt(timestampA) - parseInt(timestampB);
|
|
124
127
|
})
|
|
125
128
|
: keys;
|
|
@@ -127,7 +130,7 @@ const getQueuedItemKeys = async (
|
|
|
127
130
|
|
|
128
131
|
const getQueuedItems = async (
|
|
129
132
|
as: ReturnType<typeof loadAsyncStorage>,
|
|
130
|
-
keys: string[]
|
|
133
|
+
keys: string[],
|
|
131
134
|
): Promise<QueuedItem[]> =>
|
|
132
135
|
(await as.multiGet(keys))
|
|
133
136
|
.filter((item): item is [string, string] => item[1] !== null)
|
|
@@ -46,6 +46,7 @@ export const createQueuedStorage = (): QueuedStorage => {
|
|
|
46
46
|
};
|
|
47
47
|
}).catch(err => {
|
|
48
48
|
error = err;
|
|
49
|
+
|
|
49
50
|
return undefined;
|
|
50
51
|
});
|
|
51
52
|
|
|
@@ -62,6 +63,7 @@ export const createQueuedStorage = (): QueuedStorage => {
|
|
|
62
63
|
const getStore = async (): Promise<IDBObjectStore> => {
|
|
63
64
|
const db = await getDB();
|
|
64
65
|
const transaction = db.transaction(STORE_NAME, 'readwrite');
|
|
66
|
+
|
|
65
67
|
return transaction.objectStore(STORE_NAME);
|
|
66
68
|
};
|
|
67
69
|
|
|
@@ -77,7 +79,7 @@ export const createQueuedStorage = (): QueuedStorage => {
|
|
|
77
79
|
return {
|
|
78
80
|
async add(
|
|
79
81
|
item,
|
|
80
|
-
{ dequeueBeforeEnqueue } = { dequeueBeforeEnqueue: false }
|
|
82
|
+
{ dequeueBeforeEnqueue } = { dequeueBeforeEnqueue: false },
|
|
81
83
|
) {
|
|
82
84
|
if (dequeueBeforeEnqueue) {
|
|
83
85
|
const itemsToDelete = await this.peek(1);
|
|
@@ -115,11 +117,13 @@ export const createQueuedStorage = (): QueuedStorage => {
|
|
|
115
117
|
const keyRangesToDelete = findRanges(
|
|
116
118
|
items
|
|
117
119
|
.map(item => item.id)
|
|
118
|
-
.filter((id): id is number => id !== undefined)
|
|
120
|
+
.filter((id): id is number => id !== undefined),
|
|
119
121
|
).map(([lower, upper]) => IDBKeyRange.bound(lower, upper));
|
|
120
122
|
|
|
121
123
|
await Promise.all(
|
|
122
|
-
keyRangesToDelete.map(range =>
|
|
124
|
+
keyRangesToDelete.map(range =>
|
|
125
|
+
promisifyIDBRequest(store.delete(range)),
|
|
126
|
+
),
|
|
123
127
|
);
|
|
124
128
|
|
|
125
129
|
for (const item of items) {
|
|
@@ -35,7 +35,7 @@ export interface AddItemWithAuthPropertiesNative
|
|
|
35
35
|
export interface QueuedStorage {
|
|
36
36
|
add(
|
|
37
37
|
item: ItemToAdd,
|
|
38
|
-
options?: { dequeueBeforeEnqueue: boolean }
|
|
38
|
+
options?: { dequeueBeforeEnqueue: boolean },
|
|
39
39
|
): Promise<void>;
|
|
40
40
|
peek(n?: number): Promise<QueuedItem[]>;
|
|
41
41
|
peekAll(): Promise<QueuedItem[]>;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { DelayFunction } from '../../types';
|
|
5
|
+
|
|
5
6
|
import { MAX_DELAY_MS } from './constants';
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -9,13 +10,14 @@ import { MAX_DELAY_MS } from './constants';
|
|
|
9
10
|
* Internal use of Amplify only
|
|
10
11
|
*/
|
|
11
12
|
export function jitteredBackoff(
|
|
12
|
-
maxDelayMs: number = MAX_DELAY_MS
|
|
13
|
+
maxDelayMs: number = MAX_DELAY_MS,
|
|
13
14
|
): DelayFunction {
|
|
14
15
|
const BASE_TIME_MS = 100;
|
|
15
16
|
const JITTER_FACTOR = 100;
|
|
16
17
|
|
|
17
18
|
return attempt => {
|
|
18
19
|
const delay = 2 ** attempt * BASE_TIME_MS + JITTER_FACTOR * Math.random();
|
|
20
|
+
|
|
19
21
|
return delay > maxDelayMs ? false : delay;
|
|
20
22
|
};
|
|
21
23
|
}
|
|
@@ -13,6 +13,6 @@ export const jitteredExponentialRetry = <T>(
|
|
|
13
13
|
functionToRetry: (...args: any[]) => T,
|
|
14
14
|
args: any[],
|
|
15
15
|
maxDelayMs: number = MAX_DELAY_MS,
|
|
16
|
-
onTerminate?: Promise<void
|
|
16
|
+
onTerminate?: Promise<void>,
|
|
17
17
|
): Promise<T> =>
|
|
18
18
|
retry(functionToRetry, args, jitteredBackoff(maxDelayMs), onTerminate);
|
package/src/utils/retry/retry.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
import { DelayFunction } from '../../types';
|
|
5
5
|
import { ConsoleLogger } from '../../Logger/ConsoleLogger';
|
|
6
|
+
|
|
6
7
|
import { isNonRetryableError } from './isNonRetryableError';
|
|
7
8
|
|
|
8
9
|
const logger = new ConsoleLogger('retryUtil');
|
|
@@ -15,17 +16,21 @@ export async function retry<T>(
|
|
|
15
16
|
functionToRetry: (...args: any[]) => T,
|
|
16
17
|
args: any[],
|
|
17
18
|
delayFn: DelayFunction,
|
|
18
|
-
onTerminate?: Promise<void
|
|
19
|
+
onTerminate?: Promise<void>,
|
|
19
20
|
): Promise<T> {
|
|
20
21
|
if (typeof functionToRetry !== 'function') {
|
|
21
22
|
throw Error('functionToRetry must be a function');
|
|
22
23
|
}
|
|
23
24
|
|
|
25
|
+
// TODO(eslint): remove this linter suppression with refactoring.
|
|
26
|
+
// eslint-disable-next-line no-async-promise-executor
|
|
24
27
|
return new Promise(async (resolve, reject) => {
|
|
25
28
|
let attempt = 0;
|
|
26
29
|
let terminated = false;
|
|
27
30
|
let timeout: any;
|
|
28
|
-
let wakeUp: any = () => {
|
|
31
|
+
let wakeUp: any = () => {
|
|
32
|
+
// no-op
|
|
33
|
+
}; // will be replaced with a resolver()
|
|
29
34
|
|
|
30
35
|
// used after the loop if terminated while waiting for a timer.
|
|
31
36
|
let lastError: unknown;
|
|
@@ -40,24 +45,31 @@ export async function retry<T>(
|
|
|
40
45
|
wakeUp();
|
|
41
46
|
});
|
|
42
47
|
|
|
48
|
+
// TODO(eslint): remove this linter suppression with refactoring.
|
|
49
|
+
// eslint-disable-next-line no-unmodified-loop-condition
|
|
43
50
|
while (!terminated) {
|
|
44
51
|
attempt++;
|
|
45
52
|
|
|
46
53
|
logger.debug(
|
|
47
54
|
`${
|
|
48
55
|
functionToRetry.name
|
|
49
|
-
} attempt #${attempt} with this vars: ${JSON.stringify(args)}
|
|
56
|
+
} attempt #${attempt} with this vars: ${JSON.stringify(args)}`,
|
|
50
57
|
);
|
|
51
58
|
|
|
52
59
|
try {
|
|
53
|
-
|
|
60
|
+
resolve(await functionToRetry(...args));
|
|
61
|
+
|
|
62
|
+
return;
|
|
54
63
|
} catch (err) {
|
|
55
64
|
lastError = err;
|
|
56
65
|
logger.debug(`error on ${functionToRetry.name}`, err);
|
|
57
66
|
|
|
58
67
|
if (isNonRetryableError(err)) {
|
|
59
68
|
logger.debug(`${functionToRetry.name} non retryable error`, err);
|
|
60
|
-
|
|
69
|
+
|
|
70
|
+
reject(err);
|
|
71
|
+
|
|
72
|
+
return;
|
|
61
73
|
}
|
|
62
74
|
|
|
63
75
|
const retryIn = delayFn(attempt, args, err);
|
|
@@ -66,10 +78,12 @@ export async function retry<T>(
|
|
|
66
78
|
// we check `terminated` again here because it could have flipped
|
|
67
79
|
// in the time it took `functionToRetry` to return.
|
|
68
80
|
if (retryIn === false || terminated) {
|
|
69
|
-
|
|
81
|
+
reject(err);
|
|
82
|
+
|
|
83
|
+
return;
|
|
70
84
|
} else {
|
|
71
|
-
await new Promise(
|
|
72
|
-
wakeUp =
|
|
85
|
+
await new Promise(_resolve => {
|
|
86
|
+
wakeUp = _resolve; // export wakeUp for onTerminate handling
|
|
73
87
|
timeout = setTimeout(wakeUp, retryIn);
|
|
74
88
|
});
|
|
75
89
|
}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { loadAppState } from '@aws-amplify/react-native';
|
|
5
|
+
|
|
5
6
|
import {
|
|
6
|
-
SessionStateChangeListener,
|
|
7
|
-
SessionState,
|
|
8
7
|
SessionListenerInterface,
|
|
8
|
+
SessionState,
|
|
9
|
+
SessionStateChangeListener,
|
|
9
10
|
} from './types';
|
|
10
11
|
|
|
11
12
|
const stateChangeListeners = new Set<SessionStateChangeListener>();
|
|
@@ -25,7 +26,7 @@ export class SessionListener implements SessionListenerInterface {
|
|
|
25
26
|
|
|
26
27
|
public addStateChangeListener(
|
|
27
28
|
listener: SessionStateChangeListener,
|
|
28
|
-
notifyOnAdd
|
|
29
|
+
notifyOnAdd = false,
|
|
29
30
|
) {
|
|
30
31
|
stateChangeListeners.add(listener);
|
|
31
32
|
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { isBrowser } from '../isBrowser';
|
|
5
|
-
|
|
5
|
+
|
|
6
|
+
import { SessionListenerInterface, SessionStateChangeListener } from './types';
|
|
6
7
|
|
|
7
8
|
const stateChangeListeners = new Set<SessionStateChangeListener>();
|
|
8
9
|
|
|
@@ -18,7 +19,7 @@ export class SessionListener implements SessionListenerInterface {
|
|
|
18
19
|
document.addEventListener(
|
|
19
20
|
'visibilitychange',
|
|
20
21
|
this.handleVisibilityChange,
|
|
21
|
-
false
|
|
22
|
+
false,
|
|
22
23
|
);
|
|
23
24
|
|
|
24
25
|
this.listenerActive = true;
|
|
@@ -27,7 +28,7 @@ export class SessionListener implements SessionListenerInterface {
|
|
|
27
28
|
|
|
28
29
|
public addStateChangeListener(
|
|
29
30
|
listener: SessionStateChangeListener,
|
|
30
|
-
notifyOnAdd
|
|
31
|
+
notifyOnAdd = false,
|
|
31
32
|
) {
|
|
32
33
|
// No-op if document listener is not active
|
|
33
34
|
if (!this.listenerActive) {
|