@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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type SessionState = 'started' | 'ended';
|
|
2
2
|
export type SessionStateChangeListener = (state: SessionState) => void;
|
|
3
3
|
export interface SessionListenerInterface {
|
|
4
|
-
addStateChangeListener
|
|
5
|
-
removeStateChangeListener
|
|
4
|
+
addStateChangeListener(listener: SessionStateChangeListener): void;
|
|
5
|
+
removeStateChangeListener(listener: SessionStateChangeListener): void;
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-amplify/core",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.17-unstable.3d2803e.0+3d2803e",
|
|
4
4
|
"description": "Core category of aws-amplify",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"module": "./dist/esm/index.mjs",
|
|
@@ -27,7 +27,8 @@
|
|
|
27
27
|
"clean": "npm run clean:size && rimraf dist lib lib-esm",
|
|
28
28
|
"clean:size": "rimraf dual-publish-tmp tmp*",
|
|
29
29
|
"format": "echo \"Not implemented\"",
|
|
30
|
-
"lint": "
|
|
30
|
+
"lint": "eslint '**/*.{ts,tsx}' && npm run ts-coverage",
|
|
31
|
+
"lint:fix": "eslint '**/*.{ts,tsx}' --fix",
|
|
31
32
|
"prepublishOnly": "npm run build",
|
|
32
33
|
"ts-coverage": "typescript-coverage-report -p ./tsconfig.build.json -t 92.36"
|
|
33
34
|
},
|
|
@@ -59,7 +60,7 @@
|
|
|
59
60
|
"uuid": "^9.0.0"
|
|
60
61
|
},
|
|
61
62
|
"devDependencies": {
|
|
62
|
-
"@aws-amplify/react-native": "1.0.
|
|
63
|
+
"@aws-amplify/react-native": "1.0.17-unstable.3d2803e.0+3d2803e",
|
|
63
64
|
"@types/js-cookie": "3.0.2",
|
|
64
65
|
"genversion": "^2.2.0",
|
|
65
66
|
"typescript": "5.0.2"
|
|
@@ -191,5 +192,5 @@
|
|
|
191
192
|
]
|
|
192
193
|
}
|
|
193
194
|
},
|
|
194
|
-
"gitHead": "
|
|
195
|
+
"gitHead": "3d2803eb859c37e52f1dc9459b79d628e0377d2e"
|
|
195
196
|
}
|
|
@@ -29,13 +29,6 @@ export class BackgroundProcessManager {
|
|
|
29
29
|
*/
|
|
30
30
|
private jobs = new Set<JobEntry>();
|
|
31
31
|
|
|
32
|
-
/**
|
|
33
|
-
* Creates a new manager for promises, observables, and other types
|
|
34
|
-
* of work that may be running in the background. This manager provides
|
|
35
|
-
* a centralized mechanism to request termination and await completion.
|
|
36
|
-
*/
|
|
37
|
-
constructor() {}
|
|
38
|
-
|
|
39
32
|
/**
|
|
40
33
|
* Executes an async `job` function, passing the return value through to
|
|
41
34
|
* the caller, registering it as a running job in the manager. When the
|
|
@@ -61,7 +54,7 @@ export class BackgroundProcessManager {
|
|
|
61
54
|
*/
|
|
62
55
|
add<T>(
|
|
63
56
|
job: (onTerminate: Promise<void>) => Promise<T>,
|
|
64
|
-
description?: string
|
|
57
|
+
description?: string,
|
|
65
58
|
): Promise<T>;
|
|
66
59
|
|
|
67
60
|
/**
|
|
@@ -76,8 +69,8 @@ export class BackgroundProcessManager {
|
|
|
76
69
|
* @returns Job promise hooks + onTerminate signaling promise
|
|
77
70
|
*/
|
|
78
71
|
add(description?: string): {
|
|
79
|
-
resolve
|
|
80
|
-
reject
|
|
72
|
+
resolve(value?: unknown): void;
|
|
73
|
+
reject(reason?: any): void;
|
|
81
74
|
onTerminate: Promise<void>;
|
|
82
75
|
};
|
|
83
76
|
|
|
@@ -96,7 +89,7 @@ export class BackgroundProcessManager {
|
|
|
96
89
|
| string
|
|
97
90
|
| BackgroundProcessManager
|
|
98
91
|
| ((...args: any) => Promise<T>),
|
|
99
|
-
optionalDescription?: string
|
|
92
|
+
optionalDescription?: string,
|
|
100
93
|
) {
|
|
101
94
|
let job:
|
|
102
95
|
| BackgroundProcessManager
|
|
@@ -120,10 +113,10 @@ export class BackgroundProcessManager {
|
|
|
120
113
|
} else if (typeof job === 'function') {
|
|
121
114
|
return this.addFunction(job, description);
|
|
122
115
|
} else if (job instanceof BackgroundProcessManager) {
|
|
123
|
-
|
|
116
|
+
this.addManager(job, description);
|
|
124
117
|
} else {
|
|
125
118
|
throw new Error(
|
|
126
|
-
'If `job` is provided, it must be an Observable, Function, or BackgroundProcessManager.'
|
|
119
|
+
'If `job` is provided, it must be an Observable, Function, or BackgroundProcessManager.',
|
|
127
120
|
);
|
|
128
121
|
}
|
|
129
122
|
}
|
|
@@ -140,7 +133,7 @@ export class BackgroundProcessManager {
|
|
|
140
133
|
*/
|
|
141
134
|
addCleaner<T>(
|
|
142
135
|
clean: () => Promise<T>,
|
|
143
|
-
description?: string
|
|
136
|
+
description?: string,
|
|
144
137
|
): () => Promise<void> {
|
|
145
138
|
const { resolve, onTerminate } = this.addHook(description);
|
|
146
139
|
|
|
@@ -156,15 +149,17 @@ export class BackgroundProcessManager {
|
|
|
156
149
|
|
|
157
150
|
private addFunction<T>(
|
|
158
151
|
job: () => Promise<T>,
|
|
159
|
-
description?: string
|
|
152
|
+
description?: string,
|
|
160
153
|
): Promise<T>;
|
|
154
|
+
|
|
161
155
|
private addFunction<T>(
|
|
162
156
|
job: (onTerminate: Promise<void>) => Promise<T>,
|
|
163
|
-
description?: string
|
|
157
|
+
description?: string,
|
|
164
158
|
): Promise<T>;
|
|
159
|
+
|
|
165
160
|
private addFunction<T>(
|
|
166
161
|
job: (() => Promise<T>) | ((onTerminate: Promise<void>) => Promise<T>),
|
|
167
|
-
description?: string
|
|
162
|
+
description?: string,
|
|
168
163
|
) {
|
|
169
164
|
// the function we call when we want to try to terminate this job.
|
|
170
165
|
let terminate;
|
|
@@ -183,7 +178,7 @@ export class BackgroundProcessManager {
|
|
|
183
178
|
this.registerPromise(
|
|
184
179
|
jobResult,
|
|
185
180
|
terminate as unknown as () => void,
|
|
186
|
-
description
|
|
181
|
+
description,
|
|
187
182
|
);
|
|
188
183
|
}
|
|
189
184
|
|
|
@@ -194,7 +189,7 @@ export class BackgroundProcessManager {
|
|
|
194
189
|
}
|
|
195
190
|
|
|
196
191
|
private addManager(manager: BackgroundProcessManager, description?: string) {
|
|
197
|
-
this.addCleaner(async () =>
|
|
192
|
+
this.addCleaner(async () => manager.close(), description);
|
|
198
193
|
}
|
|
199
194
|
|
|
200
195
|
/**
|
|
@@ -210,33 +205,33 @@ export class BackgroundProcessManager {
|
|
|
210
205
|
private addHook(description?: string) {
|
|
211
206
|
// the resolve/reject functions we'll provide to the caller to signal
|
|
212
207
|
// the state of the job.
|
|
213
|
-
let
|
|
214
|
-
let
|
|
208
|
+
let promiseResolve!: (value?: unknown) => void;
|
|
209
|
+
let promiseReject!: (reason?: any) => void;
|
|
215
210
|
|
|
216
211
|
// the underlying promise we'll use to manage it, pretty much like
|
|
217
212
|
// any other promise.
|
|
218
|
-
const promise = new Promise((
|
|
219
|
-
|
|
220
|
-
|
|
213
|
+
const promise = new Promise((resolve, reject) => {
|
|
214
|
+
promiseResolve = resolve;
|
|
215
|
+
promiseReject = reject;
|
|
221
216
|
});
|
|
222
217
|
|
|
223
218
|
// the function we call when we want to try to terminate this job.
|
|
224
219
|
let terminate;
|
|
225
220
|
|
|
226
221
|
// the promise the job can opt into listening to for termination.
|
|
227
|
-
const onTerminate = new Promise(
|
|
228
|
-
terminate =
|
|
222
|
+
const onTerminate = new Promise(resolve => {
|
|
223
|
+
terminate = resolve;
|
|
229
224
|
});
|
|
230
225
|
|
|
231
226
|
this.registerPromise(
|
|
232
227
|
promise,
|
|
233
228
|
terminate as unknown as () => void,
|
|
234
|
-
description
|
|
229
|
+
description,
|
|
235
230
|
);
|
|
236
231
|
|
|
237
232
|
return {
|
|
238
|
-
resolve,
|
|
239
|
-
reject,
|
|
233
|
+
resolve: promiseResolve,
|
|
234
|
+
reject: promiseReject,
|
|
240
235
|
onTerminate,
|
|
241
236
|
};
|
|
242
237
|
}
|
|
@@ -255,7 +250,7 @@ export class BackgroundProcessManager {
|
|
|
255
250
|
private registerPromise<T extends Promise<any>>(
|
|
256
251
|
promise: T,
|
|
257
252
|
terminate: () => void,
|
|
258
|
-
description?: string
|
|
253
|
+
description?: string,
|
|
259
254
|
) {
|
|
260
255
|
const jobEntry = { promise, terminate, description };
|
|
261
256
|
this.jobs.add(jobEntry);
|
|
@@ -345,8 +340,8 @@ export class BackgroundProcessManager {
|
|
|
345
340
|
`Pending jobs: [\n${this.pending
|
|
346
341
|
.map(t => ' ' + t)
|
|
347
342
|
.join(',\n')}\n]`,
|
|
348
|
-
].join('\n')
|
|
349
|
-
)
|
|
343
|
+
].join('\n'),
|
|
344
|
+
),
|
|
350
345
|
);
|
|
351
346
|
}
|
|
352
347
|
}
|
|
@@ -382,7 +377,7 @@ export class BackgroundProcessManager {
|
|
|
382
377
|
`Failed to send termination signal to job. Error: ${
|
|
383
378
|
(error as Error).message
|
|
384
379
|
}`,
|
|
385
|
-
job
|
|
380
|
+
job,
|
|
386
381
|
);
|
|
387
382
|
}
|
|
388
383
|
}
|
|
@@ -390,7 +385,7 @@ export class BackgroundProcessManager {
|
|
|
390
385
|
// Use `allSettled()` because we want to wait for all to finish. We do
|
|
391
386
|
// not want to stop waiting if there is a failure.
|
|
392
387
|
this._closingPromise = Promise.allSettled(
|
|
393
|
-
Array.from(this.jobs).map(j => j.promise)
|
|
388
|
+
Array.from(this.jobs).map(j => j.promise),
|
|
394
389
|
);
|
|
395
390
|
|
|
396
391
|
await this._closingPromise;
|
|
@@ -25,7 +25,7 @@ export enum BackgroundProcessManagerState {
|
|
|
25
25
|
* Completely internal to `BackgroundProcessManager`, and describes the structure of
|
|
26
26
|
* an entry in the jobs registry.
|
|
27
27
|
*/
|
|
28
|
-
export
|
|
28
|
+
export interface JobEntry {
|
|
29
29
|
/**
|
|
30
30
|
* The underlying promise provided by the job function to wait for.
|
|
31
31
|
*/
|
|
@@ -34,7 +34,7 @@ export type JobEntry = {
|
|
|
34
34
|
/**
|
|
35
35
|
* Request the termination of the job.
|
|
36
36
|
*/
|
|
37
|
-
terminate
|
|
37
|
+
terminate(): void;
|
|
38
38
|
|
|
39
39
|
/**
|
|
40
40
|
* An object provided by the caller that can be used to identify the description
|
|
@@ -46,4 +46,4 @@ export type JobEntry = {
|
|
|
46
46
|
* on `close()`.
|
|
47
47
|
*/
|
|
48
48
|
description?: string;
|
|
49
|
-
}
|
|
49
|
+
}
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { loadAsyncStorage } from '@aws-amplify/react-native';
|
|
5
|
+
|
|
5
6
|
import { ConsoleLogger } from '../Logger';
|
|
7
|
+
|
|
6
8
|
import { defaultConfig } from './constants';
|
|
7
9
|
import { StorageCacheCommon } from './StorageCacheCommon';
|
|
8
10
|
import { Cache, CacheConfig } from './types';
|
|
@@ -38,6 +40,7 @@ export class StorageCache extends StorageCacheCommon implements Cache {
|
|
|
38
40
|
keys.push(key.substring(this.config.keyPrefix.length));
|
|
39
41
|
}
|
|
40
42
|
}
|
|
43
|
+
|
|
41
44
|
return keys;
|
|
42
45
|
}
|
|
43
46
|
|
|
@@ -46,6 +49,7 @@ export class StorageCache extends StorageCacheCommon implements Cache {
|
|
|
46
49
|
return AsyncStorage.getAllKeys();
|
|
47
50
|
} catch (e) {
|
|
48
51
|
logger.warn(`getAllKeys failed! ${e}`);
|
|
52
|
+
|
|
49
53
|
return [];
|
|
50
54
|
}
|
|
51
55
|
}
|
|
@@ -60,6 +64,7 @@ export class StorageCache extends StorageCacheCommon implements Cache {
|
|
|
60
64
|
logger.error('invalid keyPrefix, setting keyPrefix with timeStamp');
|
|
61
65
|
config.keyPrefix = getCurrentTime.toString();
|
|
62
66
|
}
|
|
67
|
+
|
|
63
68
|
return new StorageCache(config);
|
|
64
69
|
}
|
|
65
70
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { ConsoleLogger } from '../Logger';
|
|
5
5
|
import { KeyValueStorage } from '../storage/KeyValueStorage';
|
|
6
6
|
import { getLocalStorageWithFallback } from '../storage/utils';
|
|
7
|
+
|
|
7
8
|
import { defaultConfig } from './constants';
|
|
8
9
|
import { StorageCacheCommon } from './StorageCacheCommon';
|
|
9
10
|
import { Cache, CacheConfig } from './types';
|
|
@@ -42,6 +43,7 @@ export class StorageCache extends StorageCacheCommon implements Cache {
|
|
|
42
43
|
keys.push(key.substring(this.config.keyPrefix.length));
|
|
43
44
|
}
|
|
44
45
|
}
|
|
46
|
+
|
|
45
47
|
return keys;
|
|
46
48
|
}
|
|
47
49
|
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
|
|
4
4
|
import { ConsoleLogger } from '../Logger';
|
|
5
5
|
import { KeyValueStorageInterface } from '../types';
|
|
6
|
+
|
|
6
7
|
import { currentSizeKey, defaultConfig } from './constants';
|
|
7
8
|
import { CacheConfig, CacheItem, CacheItemOptions } from './types';
|
|
8
|
-
import { getCurrentSizeKey, getCurrentTime
|
|
9
|
-
import {
|
|
9
|
+
import { getByteLength, getCurrentSizeKey, getCurrentTime } from './utils';
|
|
10
|
+
import { CacheErrorCode, assert } from './utils/errorHelpers';
|
|
10
11
|
|
|
11
12
|
const logger = new ConsoleLogger('StorageCache');
|
|
12
13
|
|
|
@@ -58,7 +59,7 @@ export abstract class StorageCacheCommon {
|
|
|
58
59
|
if (config) {
|
|
59
60
|
if ((config as CacheConfig).keyPrefix) {
|
|
60
61
|
logger.warn(
|
|
61
|
-
'keyPrefix can not be re-configured on an existing Cache instance.'
|
|
62
|
+
'keyPrefix can not be re-configured on an existing Cache instance.',
|
|
62
63
|
);
|
|
63
64
|
}
|
|
64
65
|
|
|
@@ -79,15 +80,16 @@ export abstract class StorageCacheCommon {
|
|
|
79
80
|
*/
|
|
80
81
|
public async getCurrentCacheSize() {
|
|
81
82
|
let size = await this.getStorage().getItem(
|
|
82
|
-
getCurrentSizeKey(this.config.keyPrefix)
|
|
83
|
+
getCurrentSizeKey(this.config.keyPrefix),
|
|
83
84
|
);
|
|
84
85
|
if (!size) {
|
|
85
86
|
await this.getStorage().setItem(
|
|
86
87
|
getCurrentSizeKey(this.config.keyPrefix),
|
|
87
|
-
'0'
|
|
88
|
+
'0',
|
|
88
89
|
);
|
|
89
90
|
size = '0';
|
|
90
91
|
}
|
|
92
|
+
|
|
91
93
|
return Number(size);
|
|
92
94
|
}
|
|
93
95
|
|
|
@@ -112,21 +114,23 @@ export abstract class StorageCacheCommon {
|
|
|
112
114
|
public async setItem(
|
|
113
115
|
key: string,
|
|
114
116
|
value: any,
|
|
115
|
-
options?: Record<string, any
|
|
117
|
+
options?: Record<string, any>,
|
|
116
118
|
): Promise<void> {
|
|
117
119
|
logger.debug(
|
|
118
|
-
`Set item: key is ${key}, value is ${value} with options: ${options}
|
|
120
|
+
`Set item: key is ${key}, value is ${value} with options: ${options}`,
|
|
119
121
|
);
|
|
120
122
|
|
|
121
123
|
if (!key || key === currentSizeKey) {
|
|
122
124
|
logger.warn(
|
|
123
|
-
`Invalid key: should not be empty or reserved key: '${currentSizeKey}'
|
|
125
|
+
`Invalid key: should not be empty or reserved key: '${currentSizeKey}'`,
|
|
124
126
|
);
|
|
127
|
+
|
|
125
128
|
return;
|
|
126
129
|
}
|
|
127
130
|
|
|
128
131
|
if (typeof value === 'undefined') {
|
|
129
132
|
logger.warn(`The value of item should not be undefined!`);
|
|
133
|
+
|
|
130
134
|
return;
|
|
131
135
|
}
|
|
132
136
|
|
|
@@ -143,8 +147,9 @@ export abstract class StorageCacheCommon {
|
|
|
143
147
|
|
|
144
148
|
if (cacheItemOptions.priority < 1 || cacheItemOptions.priority > 5) {
|
|
145
149
|
logger.warn(
|
|
146
|
-
`Invalid parameter: priority due to out or range. It should be within 1 and 5
|
|
150
|
+
`Invalid parameter: priority due to out or range. It should be within 1 and 5.`,
|
|
147
151
|
);
|
|
152
|
+
|
|
148
153
|
return;
|
|
149
154
|
}
|
|
150
155
|
|
|
@@ -154,8 +159,9 @@ export abstract class StorageCacheCommon {
|
|
|
154
159
|
// check whether this item is too big;
|
|
155
160
|
if (item.byteSize > this.config.itemMaxSize) {
|
|
156
161
|
logger.warn(
|
|
157
|
-
`Item with key: ${key} you are trying to put into is too big
|
|
162
|
+
`Item with key: ${key} you are trying to put into is too big!`,
|
|
158
163
|
);
|
|
164
|
+
|
|
159
165
|
return;
|
|
160
166
|
}
|
|
161
167
|
|
|
@@ -174,6 +180,7 @@ export abstract class StorageCacheCommon {
|
|
|
174
180
|
await this.popOutItems(validKeys, sizeToPop);
|
|
175
181
|
}
|
|
176
182
|
}
|
|
183
|
+
|
|
177
184
|
// put item in the cache
|
|
178
185
|
return this.setCacheItem(prefixedKey, item);
|
|
179
186
|
} catch (e) {
|
|
@@ -198,15 +205,16 @@ export abstract class StorageCacheCommon {
|
|
|
198
205
|
*/
|
|
199
206
|
public async getItem(
|
|
200
207
|
key: string,
|
|
201
|
-
options?: CacheItemOptions
|
|
208
|
+
options?: CacheItemOptions,
|
|
202
209
|
): Promise<CacheItem['data']> {
|
|
203
210
|
logger.debug(`Get item: key is ${key} with options ${options}`);
|
|
204
211
|
let cached;
|
|
205
212
|
|
|
206
213
|
if (!key || key === currentSizeKey) {
|
|
207
214
|
logger.warn(
|
|
208
|
-
`Invalid key: should not be empty or reserved key: '${currentSizeKey}'
|
|
215
|
+
`Invalid key: should not be empty or reserved key: '${currentSizeKey}'`,
|
|
209
216
|
);
|
|
217
|
+
|
|
210
218
|
return null;
|
|
211
219
|
}
|
|
212
220
|
|
|
@@ -222,8 +230,9 @@ export abstract class StorageCacheCommon {
|
|
|
222
230
|
// if not expired, update its visitedTime and return the value
|
|
223
231
|
const item = await this.updateVisitedTime(
|
|
224
232
|
JSON.parse(cached),
|
|
225
|
-
prefixedKey
|
|
233
|
+
prefixedKey,
|
|
226
234
|
);
|
|
235
|
+
|
|
227
236
|
return item.data;
|
|
228
237
|
}
|
|
229
238
|
}
|
|
@@ -233,11 +242,14 @@ export abstract class StorageCacheCommon {
|
|
|
233
242
|
if (val !== null) {
|
|
234
243
|
await this.setItem(key, val, options);
|
|
235
244
|
}
|
|
245
|
+
|
|
236
246
|
return val;
|
|
237
247
|
}
|
|
248
|
+
|
|
238
249
|
return null;
|
|
239
250
|
} catch (e) {
|
|
240
251
|
logger.warn(`getItem failed! ${e}`);
|
|
252
|
+
|
|
241
253
|
return null;
|
|
242
254
|
}
|
|
243
255
|
}
|
|
@@ -254,8 +266,9 @@ export abstract class StorageCacheCommon {
|
|
|
254
266
|
|
|
255
267
|
if (!key || key === currentSizeKey) {
|
|
256
268
|
logger.warn(
|
|
257
|
-
`Invalid key: should not be empty or reserved key: '${currentSizeKey}'
|
|
269
|
+
`Invalid key: should not be empty or reserved key: '${currentSizeKey}'`,
|
|
258
270
|
);
|
|
271
|
+
|
|
259
272
|
return;
|
|
260
273
|
}
|
|
261
274
|
|
|
@@ -282,6 +295,7 @@ export abstract class StorageCacheCommon {
|
|
|
282
295
|
return await this.getAllCacheKeys();
|
|
283
296
|
} catch (e) {
|
|
284
297
|
logger.warn(`getAllkeys failed! ${e}`);
|
|
298
|
+
|
|
285
299
|
return [];
|
|
286
300
|
}
|
|
287
301
|
}
|
|
@@ -304,6 +318,7 @@ export abstract class StorageCacheCommon {
|
|
|
304
318
|
if (getCurrentTime() >= item.expires) {
|
|
305
319
|
return true;
|
|
306
320
|
}
|
|
321
|
+
|
|
307
322
|
return false;
|
|
308
323
|
}
|
|
309
324
|
|
|
@@ -315,7 +330,7 @@ export abstract class StorageCacheCommon {
|
|
|
315
330
|
*/
|
|
316
331
|
protected async removeCacheItem(
|
|
317
332
|
prefixedKey: string,
|
|
318
|
-
size?: number
|
|
333
|
+
size?: number,
|
|
319
334
|
): Promise<void> {
|
|
320
335
|
const item = await this.getStorage().getItem(prefixedKey);
|
|
321
336
|
assert(item !== null, CacheErrorCode.NoCacheItem, `Key: ${prefixedKey}`);
|
|
@@ -343,7 +358,7 @@ export abstract class StorageCacheCommon {
|
|
|
343
358
|
protected fillCacheItem(
|
|
344
359
|
key: string,
|
|
345
360
|
value: object | number | string | boolean,
|
|
346
|
-
options: CacheItemOptions
|
|
361
|
+
options: CacheItemOptions,
|
|
347
362
|
): CacheItem {
|
|
348
363
|
const item: CacheItem = {
|
|
349
364
|
key,
|
|
@@ -359,20 +374,21 @@ export abstract class StorageCacheCommon {
|
|
|
359
374
|
item.byteSize = getByteLength(JSON.stringify(item));
|
|
360
375
|
// re-calculate using cache item with updated byteSize property
|
|
361
376
|
item.byteSize = getByteLength(JSON.stringify(item));
|
|
377
|
+
|
|
362
378
|
return item;
|
|
363
379
|
}
|
|
364
380
|
|
|
365
381
|
private sanitizeConfig(): void {
|
|
366
382
|
if (this.config.itemMaxSize > this.config.capacityInBytes) {
|
|
367
383
|
logger.error(
|
|
368
|
-
'Invalid parameter: itemMaxSize. It should be smaller than capacityInBytes. Setting back to default.'
|
|
384
|
+
'Invalid parameter: itemMaxSize. It should be smaller than capacityInBytes. Setting back to default.',
|
|
369
385
|
);
|
|
370
386
|
this.config.itemMaxSize = defaultConfig.itemMaxSize;
|
|
371
387
|
}
|
|
372
388
|
|
|
373
389
|
if (this.config.defaultPriority > 5 || this.config.defaultPriority < 1) {
|
|
374
390
|
logger.error(
|
|
375
|
-
'Invalid parameter: defaultPriority. It should be between 1 and 5. Setting back to default.'
|
|
391
|
+
'Invalid parameter: defaultPriority. It should be between 1 and 5. Setting back to default.',
|
|
376
392
|
);
|
|
377
393
|
this.config.defaultPriority = defaultConfig.defaultPriority;
|
|
378
394
|
}
|
|
@@ -382,7 +398,7 @@ export abstract class StorageCacheCommon {
|
|
|
382
398
|
Number(this.config.warningThreshold) < 0
|
|
383
399
|
) {
|
|
384
400
|
logger.error(
|
|
385
|
-
'Invalid parameter: warningThreshold. It should be between 0 and 1. Setting back to default.'
|
|
401
|
+
'Invalid parameter: warningThreshold. It should be between 0 and 1. Setting back to default.',
|
|
386
402
|
);
|
|
387
403
|
this.config.warningThreshold = defaultConfig.warningThreshold;
|
|
388
404
|
}
|
|
@@ -391,7 +407,7 @@ export abstract class StorageCacheCommon {
|
|
|
391
407
|
const cacheLimit: number = 5 * 1024 * 1024;
|
|
392
408
|
if (this.config.capacityInBytes > cacheLimit) {
|
|
393
409
|
logger.error(
|
|
394
|
-
'Cache Capacity should be less than 5MB. Setting back to default. Setting back to default.'
|
|
410
|
+
'Cache Capacity should be less than 5MB. Setting back to default. Setting back to default.',
|
|
395
411
|
);
|
|
396
412
|
this.config.capacityInBytes = defaultConfig.capacityInBytes;
|
|
397
413
|
}
|
|
@@ -406,7 +422,7 @@ export abstract class StorageCacheCommon {
|
|
|
406
422
|
const size = await this.getCurrentCacheSize();
|
|
407
423
|
await this.getStorage().setItem(
|
|
408
424
|
getCurrentSizeKey(this.config.keyPrefix),
|
|
409
|
-
(size + amount).toString()
|
|
425
|
+
(size + amount).toString(),
|
|
410
426
|
);
|
|
411
427
|
}
|
|
412
428
|
|
|
@@ -419,7 +435,7 @@ export abstract class StorageCacheCommon {
|
|
|
419
435
|
const size = await this.getCurrentCacheSize();
|
|
420
436
|
await this.getStorage().setItem(
|
|
421
437
|
getCurrentSizeKey(this.config.keyPrefix),
|
|
422
|
-
(size - amount).toString()
|
|
438
|
+
(size - amount).toString(),
|
|
423
439
|
);
|
|
424
440
|
}
|
|
425
441
|
|
|
@@ -433,10 +449,11 @@ export abstract class StorageCacheCommon {
|
|
|
433
449
|
*/
|
|
434
450
|
private async updateVisitedTime(
|
|
435
451
|
item: CacheItem,
|
|
436
|
-
prefixedKey: string
|
|
452
|
+
prefixedKey: string,
|
|
437
453
|
): Promise<CacheItem> {
|
|
438
454
|
item.visitedTime = getCurrentTime();
|
|
439
455
|
await this.getStorage().setItem(prefixedKey, JSON.stringify(item));
|
|
456
|
+
|
|
440
457
|
return item;
|
|
441
458
|
}
|
|
442
459
|
|
|
@@ -449,7 +466,7 @@ export abstract class StorageCacheCommon {
|
|
|
449
466
|
*/
|
|
450
467
|
private async setCacheItem(
|
|
451
468
|
prefixedKey: string,
|
|
452
|
-
item: CacheItem
|
|
469
|
+
item: CacheItem,
|
|
453
470
|
): Promise<void> {
|
|
454
471
|
// first try to update the current size of the cache.
|
|
455
472
|
await this.increaseCurrentSizeInBytes(item.byteSize);
|
|
@@ -476,6 +493,7 @@ export abstract class StorageCacheCommon {
|
|
|
476
493
|
const spaceItemNeed = cur + itemSize - this.config.capacityInBytes;
|
|
477
494
|
const cacheThresholdSpace =
|
|
478
495
|
(1 - this.config.warningThreshold) * this.config.capacityInBytes;
|
|
496
|
+
|
|
479
497
|
return spaceItemNeed > cacheThresholdSpace
|
|
480
498
|
? spaceItemNeed
|
|
481
499
|
: cacheThresholdSpace;
|
|
@@ -490,6 +508,7 @@ export abstract class StorageCacheCommon {
|
|
|
490
508
|
*/
|
|
491
509
|
private async isCacheFull(itemSize: number): Promise<boolean> {
|
|
492
510
|
const cur = await this.getCurrentCacheSize();
|
|
511
|
+
|
|
493
512
|
return itemSize + cur > this.config.capacityInBytes;
|
|
494
513
|
}
|
|
495
514
|
|
|
@@ -504,8 +523,8 @@ export abstract class StorageCacheCommon {
|
|
|
504
523
|
private async popOutItems(keys: string[], sizeToPop: number): Promise<void> {
|
|
505
524
|
const items: any[] = [];
|
|
506
525
|
let remainedSize = sizeToPop;
|
|
507
|
-
for (
|
|
508
|
-
const val = await this.getStorage().getItem(
|
|
526
|
+
for (const key of keys) {
|
|
527
|
+
const val = await this.getStorage().getItem(key);
|
|
509
528
|
if (val != null) {
|
|
510
529
|
const item = JSON.parse(val);
|
|
511
530
|
items.push(item);
|
|
@@ -526,10 +545,10 @@ export abstract class StorageCacheCommon {
|
|
|
526
545
|
}
|
|
527
546
|
});
|
|
528
547
|
|
|
529
|
-
for (
|
|
548
|
+
for (const item of items) {
|
|
530
549
|
// pop out items until we have enough room for new item
|
|
531
|
-
await this.removeCacheItem(
|
|
532
|
-
remainedSize -=
|
|
550
|
+
await this.removeCacheItem(item.key, item.byteSize);
|
|
551
|
+
remainedSize -= item.byteSize;
|
|
533
552
|
if (remainedSize <= 0) {
|
|
534
553
|
return;
|
|
535
554
|
}
|
|
@@ -555,6 +574,7 @@ export abstract class StorageCacheCommon {
|
|
|
555
574
|
remainingKeys.push(key);
|
|
556
575
|
}
|
|
557
576
|
}
|
|
577
|
+
|
|
558
578
|
return remainingKeys;
|
|
559
579
|
}
|
|
560
580
|
|
package/src/Cache/types/cache.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { CacheConfig } from '../../singleton/Cache/types';
|
|
5
|
+
|
|
5
6
|
export { CacheConfig };
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -47,5 +48,5 @@ export interface CacheItem {
|
|
|
47
48
|
export interface CacheItemOptions {
|
|
48
49
|
priority?: number;
|
|
49
50
|
expires?: number;
|
|
50
|
-
callback
|
|
51
|
+
callback?(): unknown;
|
|
51
52
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { CacheErrorCode, assert } from './errorHelpers';
|
|
5
5
|
|
|
6
6
|
class DoubleLinkedNode {
|
|
7
7
|
key: string;
|
|
@@ -9,7 +9,7 @@ class DoubleLinkedNode {
|
|
|
9
9
|
nextNode: DoubleLinkedNode | null;
|
|
10
10
|
|
|
11
11
|
constructor(keyVal?: string) {
|
|
12
|
-
this.key = keyVal
|
|
12
|
+
this.key = keyVal || '';
|
|
13
13
|
this.prevNode = null;
|
|
14
14
|
this.nextNode = null;
|
|
15
15
|
}
|
|
@@ -112,6 +112,7 @@ export class CacheList {
|
|
|
112
112
|
*/
|
|
113
113
|
public getLastItem(): string {
|
|
114
114
|
assert(this.tail.prevNode !== null, CacheErrorCode.NullPreviousNode);
|
|
115
|
+
|
|
115
116
|
return this.tail.prevNode.key;
|
|
116
117
|
}
|
|
117
118
|
|
|
@@ -145,7 +146,7 @@ export class CacheList {
|
|
|
145
146
|
*/
|
|
146
147
|
public clearList(): void {
|
|
147
148
|
for (const key of Object.keys(this.hashtable)) {
|
|
148
|
-
if (
|
|
149
|
+
if (Object.prototype.hasOwnProperty.call(this.hashtable, key)) {
|
|
149
150
|
delete this.hashtable[key];
|
|
150
151
|
}
|
|
151
152
|
}
|
|
@@ -169,6 +170,7 @@ export class CacheList {
|
|
|
169
170
|
*/
|
|
170
171
|
public isHeadNode(key: string): boolean {
|
|
171
172
|
const node = this.hashtable[key];
|
|
173
|
+
|
|
172
174
|
return node.prevNode === this.head;
|
|
173
175
|
}
|
|
174
176
|
|
|
@@ -180,6 +182,7 @@ export class CacheList {
|
|
|
180
182
|
*/
|
|
181
183
|
public isTailNode(key: string): boolean {
|
|
182
184
|
const node = this.hashtable[key];
|
|
185
|
+
|
|
183
186
|
return node.nextNode === this.tail;
|
|
184
187
|
}
|
|
185
188
|
}
|
|
@@ -8,7 +8,7 @@ import { currentSizeKey } from '../constants';
|
|
|
8
8
|
* @param str
|
|
9
9
|
*/
|
|
10
10
|
export function getByteLength(str: string): number {
|
|
11
|
-
let ret
|
|
11
|
+
let ret = 0;
|
|
12
12
|
ret = str.length;
|
|
13
13
|
|
|
14
14
|
for (let i = str.length; i >= 0; i -= 1) {
|
|
@@ -32,6 +32,7 @@ export function getByteLength(str: string): number {
|
|
|
32
32
|
*/
|
|
33
33
|
export function getCurrentTime(): number {
|
|
34
34
|
const currentTime = new Date();
|
|
35
|
+
|
|
35
36
|
return currentTime.getTime();
|
|
36
37
|
}
|
|
37
38
|
|