@aws-amplify/core 6.0.1-api-v6-models.9351bcf.0 → 6.0.1-api-v6-models.58f2536.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/lib/BackgroundProcessManager/BackgroundManagerNotOpenError.js +4 -21
- package/lib/BackgroundProcessManager/BackgroundProcessManager.js +126 -245
- package/lib/Cache/StorageCache.js +32 -92
- package/lib/Cache/StorageCache.native.js +38 -140
- package/lib/Cache/StorageCacheCommon.js +271 -600
- package/lib/Cache/index.js +1 -1
- package/lib/Cache/utils/CacheList.js +42 -66
- package/lib/Cache/utils/cacheHelpers.js +6 -8
- package/lib/Cache/utils/errorHelpers.js +6 -7
- package/lib/Hub/index.js +34 -74
- package/lib/I18n/I18n.js +24 -39
- package/lib/I18n/errorHelpers.js +4 -5
- package/lib/I18n/index.js +24 -27
- package/lib/I18n/types.js +3 -4
- package/lib/Logger/ConsoleLogger.js +53 -129
- package/lib/Mutex/Mutex.js +15 -19
- package/lib/Platform/customUserAgent.js +13 -26
- package/lib/Platform/detectFramework.js +12 -13
- package/lib/Platform/detection/Angular.js +4 -5
- package/lib/Platform/detection/Expo.js +1 -1
- package/lib/Platform/detection/Next.js +1 -1
- package/lib/Platform/detection/Nuxt.js +1 -1
- package/lib/Platform/detection/React.js +5 -5
- package/lib/Platform/detection/Svelte.js +2 -2
- package/lib/Platform/detection/Vue.js +1 -1
- package/lib/Platform/detection/Web.js +1 -1
- package/lib/Platform/detection/helpers.js +7 -7
- package/lib/Platform/detection/index.js +13 -13
- package/lib/Platform/index.js +26 -55
- package/lib/Platform/types.d.ts +1 -1
- package/lib/Platform/types.js +1 -1
- package/lib/Platform/version.d.ts +1 -1
- package/lib/Platform/version.js +1 -1
- package/lib/Reachability/Reachability.js +20 -48
- package/lib/Reachability/Reachability.native.js +12 -16
- package/lib/ServiceWorker/ServiceWorker.js +80 -136
- package/lib/ServiceWorker/errorHelpers.js +6 -7
- package/lib/Signer/DateUtils.d.ts +9 -0
- package/lib/Signer/DateUtils.js +19 -28
- package/lib/Signer/Signer.d.ts +9 -0
- package/lib/Signer/Signer.js +58 -54
- package/lib/adapterCore/error/AmplifyServerContextError.js +9 -27
- package/lib/adapterCore/serverContext/serverContext.js +8 -8
- package/lib/adapterCore/serverContext/serverContextRegistry.js +6 -6
- package/lib/awsClients/cognitoIdentity/base.js +25 -73
- package/lib/awsClients/cognitoIdentity/getCredentialsForIdentity.js +24 -68
- package/lib/awsClients/cognitoIdentity/getId.js +19 -62
- package/lib/awsClients/pinpoint/base.js +12 -15
- package/lib/awsClients/pinpoint/errorHelpers.js +4 -5
- package/lib/awsClients/pinpoint/getInAppMessages.js +24 -68
- package/lib/awsClients/pinpoint/putEvents.js +26 -70
- package/lib/awsClients/pinpoint/updateEndpoint.js +28 -72
- package/lib/clients/endpoints/getDnsSuffix.js +7 -29
- package/lib/clients/handlers/authenticated.js +5 -5
- package/lib/clients/handlers/fetch.js +41 -98
- package/lib/clients/handlers/unauthenticated.js +4 -4
- package/lib/clients/internal/composeServiceApi.js +17 -67
- package/lib/clients/internal/composeTransferHandler.js +9 -11
- package/lib/clients/middleware/retry/defaultRetryDecider.js +18 -75
- package/lib/clients/middleware/retry/isClockSkewError.js +2 -4
- package/lib/clients/middleware/retry/jitteredBackoff.js +5 -5
- package/lib/clients/middleware/retry/middleware.js +61 -125
- package/lib/clients/middleware/signing/middleware.js +24 -86
- package/lib/clients/middleware/signing/signer/signatureV4/index.js +0 -1
- package/lib/clients/middleware/signing/signer/signatureV4/presignUrl.js +21 -56
- package/lib/clients/middleware/signing/signer/signatureV4/signRequest.js +14 -25
- package/lib/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.js +7 -7
- package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalHeaders.js +8 -30
- package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.js +11 -38
- package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalRequest.js +13 -17
- package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalUri.js +5 -8
- package/lib/clients/middleware/signing/signer/signatureV4/utils/getCredentialScope.js +2 -2
- package/lib/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.js +3 -3
- package/lib/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.js +7 -11
- package/lib/clients/middleware/signing/signer/signatureV4/utils/getSignature.js +9 -10
- package/lib/clients/middleware/signing/signer/signatureV4/utils/getSignedHeaders.js +4 -6
- package/lib/clients/middleware/signing/signer/signatureV4/utils/getSigningKey.js +8 -8
- package/lib/clients/middleware/signing/signer/signatureV4/utils/getSigningValues.js +15 -16
- package/lib/clients/middleware/signing/signer/signatureV4/utils/getStringToSign.js +2 -4
- package/lib/clients/middleware/signing/utils/extendedEncodeURIComponent.js +3 -5
- package/lib/clients/middleware/signing/utils/getSkewCorrectedDate.js +1 -3
- package/lib/clients/middleware/signing/utils/getUpdatedSystemClockOffset.js +2 -2
- package/lib/clients/middleware/signing/utils/isClockSkewed.js +4 -6
- package/lib/clients/middleware/userAgent/middleware.js +14 -63
- package/lib/clients/serde/json.js +30 -96
- package/lib/clients/serde/responseInfo.js +12 -18
- package/lib/clients/utils/memoization.js +3 -3
- package/lib/constants.js +1 -1
- package/lib/errors/AmplifyError.js +9 -28
- package/lib/errors/PlatformNotSupportedError.js +7 -24
- package/lib/errors/createAssertionFunction.js +12 -15
- package/lib/errors/errorHelpers.js +7 -8
- package/lib/index.d.ts +1 -1
- package/lib/libraryUtils.d.ts +4 -0
- package/lib/libraryUtils.js +13 -3
- package/lib/parseAWSExports.js +109 -100
- package/lib/providers/kinesis/types/kinesis.d.ts +1 -1
- package/lib/providers/kinesis-firehose/types/kinesis-firehose.d.ts +1 -1
- package/lib/providers/personalize/types/personalize.d.ts +1 -1
- package/lib/providers/pinpoint/apis/flushEvents.js +8 -8
- package/lib/providers/pinpoint/apis/record.js +58 -93
- package/lib/providers/pinpoint/apis/updateEndpoint.js +65 -112
- package/lib/providers/pinpoint/types/pinpoint.d.ts +3 -1
- package/lib/providers/pinpoint/utils/PinpointEventBuffer.js +105 -196
- package/lib/providers/pinpoint/utils/cacheEndpointId.js +12 -49
- package/lib/providers/pinpoint/utils/getCacheKey.js +2 -2
- package/lib/providers/pinpoint/utils/getEndpointId.js +7 -51
- package/lib/providers/pinpoint/utils/getEventBuffer.js +19 -21
- package/lib/providers/pinpoint/utils/isAppInForeground.js +1 -1
- package/lib/providers/pinpoint/utils/isAppInForeground.native.js +2 -2
- package/lib/providers/pinpoint/utils/resolveEndpointId.js +20 -71
- package/lib/singleton/Amplify.d.ts +4 -0
- package/lib/singleton/Amplify.js +21 -103
- package/lib/singleton/Analytics/types.d.ts +5 -1
- package/lib/singleton/Auth/index.js +48 -115
- package/lib/singleton/Auth/types.d.ts +2 -2
- package/lib/singleton/Auth/utils/errorHelpers.js +7 -8
- package/lib/singleton/Auth/utils/index.js +18 -19
- package/lib/singleton/Predictions/types.d.ts +49 -0
- package/lib/singleton/Predictions/types.js +4 -0
- package/lib/singleton/apis/clearCredentials.js +1 -1
- package/lib/singleton/apis/fetchAuthSession.js +3 -3
- package/lib/singleton/apis/internal/fetchAuthSession.js +1 -1
- package/lib/singleton/apis/server/fetchAuthSession.js +3 -3
- package/lib/singleton/types.d.ts +3 -1
- package/lib/storage/CookieStorage.js +29 -99
- package/lib/storage/CookieStorage.native.js +5 -22
- package/lib/storage/DefaultStorage.js +6 -23
- package/lib/storage/DefaultStorage.native.js +18 -64
- package/lib/storage/InMemoryStorage.js +17 -23
- package/lib/storage/KeyValueStorage.js +24 -80
- package/lib/storage/SessionStorage.js +6 -23
- package/lib/storage/index.js +4 -4
- package/lib/storage/utils.js +7 -11
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/utils/WordArray.d.ts +7 -0
- package/lib/utils/WordArray.js +49 -0
- package/lib/utils/amplifyUrl/index.js +2 -2
- package/lib/utils/amplifyUrl/polyfill.native.js +1 -1
- package/lib/utils/amplifyUuid/index.d.ts +1 -1
- package/lib/utils/amplifyUuid/index.js +2 -2
- package/lib/utils/amplifyUuid/polyfill.native.js +1 -1
- package/lib/utils/convert/base64/base64Decoder.js +2 -2
- package/lib/utils/convert/base64/base64Encoder.js +5 -6
- package/lib/utils/convert/base64/bytesToString.js +1 -1
- package/lib/utils/cryptoSecureRandomInt.d.ts +1 -0
- package/lib/utils/cryptoSecureRandomInt.js +16 -0
- package/lib/utils/deepFreeze.js +6 -28
- package/lib/utils/generateRandomString.js +4 -4
- package/lib/utils/getClientInfo/getClientInfo.android.js +7 -7
- package/lib/utils/getClientInfo/getClientInfo.ios.js +12 -12
- package/lib/utils/getClientInfo/getClientInfo.js +16 -16
- package/lib/utils/globalHelpers/index.js +4 -4
- package/lib/utils/globalHelpers/index.native.js +6 -6
- package/lib/utils/isBrowser.js +1 -3
- package/lib/utils/isWebWorker.js +2 -2
- package/lib/utils/retry/NonRetryableError.js +5 -23
- package/lib/utils/retry/isNonRetryableError.js +2 -2
- package/lib/utils/retry/jitteredBackoff.js +6 -7
- package/lib/utils/retry/jitteredExponentialRetry.js +4 -7
- package/lib/utils/retry/retry.js +50 -140
- package/lib/utils/sessionListener/SessionListener.js +17 -19
- package/lib/utils/sessionListener/SessionListener.native.js +18 -22
- package/lib/utils/sessionListener/constants.d.ts +2 -0
- package/lib/utils/sessionListener/constants.js +8 -0
- package/lib/utils/sessionListener/index.d.ts +1 -0
- package/lib/utils/sessionListener/index.js +5 -2
- package/lib/utils/urlSafeDecode.js +2 -2
- package/lib/utils/urlSafeEncode.js +1 -1
- package/lib-esm/BackgroundProcessManager/BackgroundManagerNotOpenError.js +4 -22
- package/lib-esm/BackgroundProcessManager/BackgroundProcessManager.js +124 -244
- package/lib-esm/Cache/StorageCache.js +26 -87
- package/lib-esm/Cache/StorageCache.native.js +33 -136
- package/lib-esm/Cache/StorageCacheCommon.js +267 -597
- package/lib-esm/Cache/constants.js +2 -2
- package/lib-esm/Cache/index.js +1 -1
- package/lib-esm/Cache/utils/CacheList.js +41 -66
- package/lib-esm/Cache/utils/cacheHelpers.js +5 -7
- package/lib-esm/Cache/utils/errorHelpers.js +6 -7
- package/lib-esm/Hub/index.js +34 -75
- package/lib-esm/I18n/I18n.js +23 -39
- package/lib-esm/I18n/errorHelpers.js +4 -5
- package/lib-esm/I18n/index.js +21 -25
- package/lib-esm/I18n/types.js +3 -5
- package/lib-esm/Logger/ConsoleLogger.js +52 -128
- package/lib-esm/Mutex/Mutex.js +15 -20
- package/lib-esm/Platform/customUserAgent.js +13 -26
- package/lib-esm/Platform/detectFramework.js +11 -12
- package/lib-esm/Platform/detection/Angular.js +3 -4
- package/lib-esm/Platform/detection/React.js +4 -4
- package/lib-esm/Platform/detection/Svelte.js +1 -1
- package/lib-esm/Platform/detection/helpers.js +7 -7
- package/lib-esm/Platform/detection/index.js +3 -3
- package/lib-esm/Platform/index.js +23 -52
- package/lib-esm/Platform/types.d.ts +1 -1
- package/lib-esm/Platform/types.js +1 -1
- package/lib-esm/Platform/version.d.ts +1 -1
- package/lib-esm/Platform/version.js +1 -1
- package/lib-esm/Reachability/Reachability.js +18 -46
- package/lib-esm/Reachability/Reachability.native.js +10 -15
- package/lib-esm/ServiceWorker/ServiceWorker.js +74 -131
- package/lib-esm/ServiceWorker/errorHelpers.js +6 -7
- package/lib-esm/Signer/DateUtils.d.ts +9 -0
- package/lib-esm/Signer/DateUtils.js +20 -29
- package/lib-esm/Signer/Signer.d.ts +9 -0
- package/lib-esm/Signer/Signer.js +54 -51
- package/lib-esm/adapterCore/error/AmplifyServerContextError.js +8 -27
- package/lib-esm/adapterCore/serverContext/serverContext.js +6 -6
- package/lib-esm/adapterCore/serverContext/serverContextRegistry.js +7 -7
- package/lib-esm/awsClients/cognitoIdentity/base.js +21 -69
- package/lib-esm/awsClients/cognitoIdentity/getCredentialsForIdentity.js +22 -66
- package/lib-esm/awsClients/cognitoIdentity/getId.js +17 -60
- package/lib-esm/awsClients/pinpoint/base.js +8 -11
- package/lib-esm/awsClients/pinpoint/errorHelpers.js +4 -5
- package/lib-esm/awsClients/pinpoint/getInAppMessages.js +19 -63
- package/lib-esm/awsClients/pinpoint/putEvents.js +20 -64
- package/lib-esm/awsClients/pinpoint/updateEndpoint.js +23 -67
- package/lib-esm/clients/endpoints/getDnsSuffix.js +6 -28
- package/lib-esm/clients/endpoints/partitions.js +2 -2
- package/lib-esm/clients/handlers/authenticated.js +1 -1
- package/lib-esm/clients/handlers/fetch.js +40 -97
- package/lib-esm/clients/handlers/unauthenticated.js +1 -1
- package/lib-esm/clients/internal/composeServiceApi.js +17 -67
- package/lib-esm/clients/internal/composeTransferHandler.js +9 -11
- package/lib-esm/clients/middleware/retry/defaultRetryDecider.js +17 -74
- package/lib-esm/clients/middleware/retry/isClockSkewError.js +2 -4
- package/lib-esm/clients/middleware/retry/jitteredBackoff.js +4 -4
- package/lib-esm/clients/middleware/retry/middleware.js +61 -125
- package/lib-esm/clients/middleware/signing/middleware.js +21 -83
- package/lib-esm/clients/middleware/signing/signer/signatureV4/constants.js +17 -17
- package/lib-esm/clients/middleware/signing/signer/signatureV4/index.js +0 -1
- package/lib-esm/clients/middleware/signing/signer/signatureV4/presignUrl.js +17 -52
- package/lib-esm/clients/middleware/signing/signer/signatureV4/signRequest.js +10 -21
- package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.js +5 -5
- package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalHeaders.js +8 -30
- package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.js +11 -38
- package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalRequest.js +8 -12
- package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalUri.js +5 -8
- package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCredentialScope.js +1 -1
- package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.js +3 -3
- package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.js +5 -9
- package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSignature.js +5 -6
- package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSignedHeaders.js +4 -6
- package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSigningKey.js +6 -6
- package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSigningValues.js +13 -14
- package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getStringToSign.js +1 -3
- package/lib-esm/clients/middleware/signing/utils/extendedEncodeURIComponent.js +3 -5
- package/lib-esm/clients/middleware/signing/utils/getSkewCorrectedDate.js +1 -3
- package/lib-esm/clients/middleware/signing/utils/getUpdatedSystemClockOffset.js +1 -1
- package/lib-esm/clients/middleware/signing/utils/isClockSkewed.js +3 -5
- package/lib-esm/clients/middleware/userAgent/middleware.js +14 -63
- package/lib-esm/clients/serde/json.js +29 -95
- package/lib-esm/clients/serde/responseInfo.js +11 -17
- package/lib-esm/clients/utils/memoization.js +3 -3
- package/lib-esm/constants.js +5 -5
- package/lib-esm/errors/AmplifyError.js +9 -29
- package/lib-esm/errors/PlatformNotSupportedError.js +5 -23
- package/lib-esm/errors/createAssertionFunction.js +11 -14
- package/lib-esm/errors/errorHelpers.js +6 -7
- package/lib-esm/index.d.ts +1 -1
- package/lib-esm/libraryUtils.d.ts +4 -0
- package/lib-esm/libraryUtils.js +4 -0
- package/lib-esm/parseAWSExports.js +108 -99
- package/lib-esm/providers/kinesis/types/kinesis.d.ts +1 -1
- package/lib-esm/providers/kinesis-firehose/types/kinesis-firehose.d.ts +1 -1
- package/lib-esm/providers/personalize/types/personalize.d.ts +1 -1
- package/lib-esm/providers/pinpoint/apis/flushEvents.js +6 -6
- package/lib-esm/providers/pinpoint/apis/record.js +54 -89
- package/lib-esm/providers/pinpoint/apis/updateEndpoint.js +61 -108
- package/lib-esm/providers/pinpoint/types/pinpoint.d.ts +3 -1
- package/lib-esm/providers/pinpoint/utils/PinpointEventBuffer.js +102 -194
- package/lib-esm/providers/pinpoint/utils/cacheEndpointId.js +10 -47
- package/lib-esm/providers/pinpoint/utils/constants.js +4 -4
- package/lib-esm/providers/pinpoint/utils/getCacheKey.js +2 -2
- package/lib-esm/providers/pinpoint/utils/getEndpointId.js +5 -49
- package/lib-esm/providers/pinpoint/utils/getEventBuffer.js +17 -19
- package/lib-esm/providers/pinpoint/utils/isAppInForeground.js +1 -1
- package/lib-esm/providers/pinpoint/utils/isAppInForeground.native.js +1 -1
- package/lib-esm/providers/pinpoint/utils/resolveEndpointId.js +16 -67
- package/lib-esm/singleton/Amplify.d.ts +4 -0
- package/lib-esm/singleton/Amplify.js +18 -101
- package/lib-esm/singleton/Analytics/types.d.ts +5 -1
- package/lib-esm/singleton/Auth/index.js +48 -116
- package/lib-esm/singleton/Auth/types.d.ts +2 -2
- package/lib-esm/singleton/Auth/utils/errorHelpers.js +7 -8
- package/lib-esm/singleton/Auth/utils/index.js +16 -17
- package/lib-esm/singleton/Predictions/types.d.ts +49 -0
- package/lib-esm/singleton/Predictions/types.js +3 -0
- package/lib-esm/singleton/apis/fetchAuthSession.js +1 -1
- package/lib-esm/singleton/apis/internal/fetchAuthSession.js +1 -1
- package/lib-esm/singleton/apis/server/fetchAuthSession.js +1 -1
- package/lib-esm/singleton/types.d.ts +3 -1
- package/lib-esm/storage/CookieStorage.js +28 -99
- package/lib-esm/storage/CookieStorage.native.js +4 -22
- package/lib-esm/storage/DefaultStorage.js +4 -22
- package/lib-esm/storage/DefaultStorage.native.js +17 -64
- package/lib-esm/storage/InMemoryStorage.js +17 -24
- package/lib-esm/storage/KeyValueStorage.js +23 -80
- package/lib-esm/storage/SessionStorage.js +4 -22
- package/lib-esm/storage/index.js +3 -3
- package/lib-esm/storage/utils.js +6 -10
- package/lib-esm/tsconfig.tsbuildinfo +1 -1
- package/lib-esm/utils/WordArray.d.ts +7 -0
- package/lib-esm/utils/WordArray.js +46 -0
- package/lib-esm/utils/amplifyUrl/index.js +2 -2
- package/lib-esm/utils/amplifyUuid/index.d.ts +1 -1
- package/lib-esm/utils/amplifyUuid/index.js +1 -1
- package/lib-esm/utils/convert/base64/base64Decoder.js +2 -2
- package/lib-esm/utils/convert/base64/base64Encoder.js +4 -5
- package/lib-esm/utils/convert/base64/bytesToString.js +1 -1
- package/lib-esm/utils/cryptoSecureRandomInt.d.ts +1 -0
- package/lib-esm/utils/cryptoSecureRandomInt.js +12 -0
- package/lib-esm/utils/deepFreeze.js +6 -28
- package/lib-esm/utils/generateRandomString.js +4 -4
- package/lib-esm/utils/getClientInfo/getClientInfo.android.js +5 -5
- package/lib-esm/utils/getClientInfo/getClientInfo.ios.js +10 -10
- package/lib-esm/utils/getClientInfo/getClientInfo.js +15 -15
- package/lib-esm/utils/globalHelpers/index.js +3 -3
- package/lib-esm/utils/globalHelpers/index.native.js +4 -4
- package/lib-esm/utils/isBrowser.js +1 -3
- package/lib-esm/utils/isWebWorker.js +2 -2
- package/lib-esm/utils/retry/NonRetryableError.js +5 -24
- package/lib-esm/utils/retry/constants.js +1 -1
- package/lib-esm/utils/retry/isNonRetryableError.js +2 -2
- package/lib-esm/utils/retry/jitteredBackoff.js +5 -6
- package/lib-esm/utils/retry/jitteredExponentialRetry.js +1 -4
- package/lib-esm/utils/retry/retry.js +48 -138
- package/lib-esm/utils/sessionListener/SessionListener.js +16 -19
- package/lib-esm/utils/sessionListener/SessionListener.native.js +17 -22
- package/lib-esm/utils/sessionListener/constants.d.ts +2 -0
- package/lib-esm/utils/sessionListener/constants.js +5 -0
- package/lib-esm/utils/sessionListener/index.d.ts +1 -0
- package/lib-esm/utils/sessionListener/index.js +2 -1
- package/lib-esm/utils/urlSafeDecode.js +2 -2
- package/lib-esm/utils/urlSafeEncode.js +1 -1
- package/package.json +11 -24
- package/src/Cache/types/index.ts +4 -4
- package/src/Platform/types.ts +1 -1
- package/src/Platform/version.ts +1 -1
- package/src/Signer/DateUtils.ts +10 -2
- package/src/Signer/Signer.ts +9 -2
- package/src/clients/middleware/signing/signer/signatureV4/index.ts +0 -1
- package/src/index.ts +1 -0
- package/src/libraryUtils.ts +7 -1
- package/src/parseAWSExports.ts +45 -6
- package/src/providers/kinesis/types/kinesis.ts +1 -1
- package/src/providers/kinesis-firehose/types/kinesis-firehose.ts +1 -1
- package/src/providers/personalize/types/personalize.ts +1 -1
- package/src/providers/pinpoint/apis/record.ts +22 -5
- package/src/providers/pinpoint/types/pinpoint.ts +3 -1
- package/src/singleton/Amplify.ts +9 -52
- package/src/singleton/Analytics/types.ts +9 -4
- package/src/singleton/Auth/types.ts +2 -2
- package/src/singleton/Predictions/types.ts +61 -0
- package/src/singleton/types.ts +3 -1
- package/src/utils/WordArray.ts +57 -0
- package/src/utils/amplifyUuid/index.ts +1 -1
- package/src/utils/cryptoSecureRandomInt.ts +14 -0
- package/src/utils/sessionListener/constants.ts +6 -0
- package/src/utils/sessionListener/index.ts +1 -0
|
@@ -1,41 +1,5 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
-
});
|
|
11
|
-
};
|
|
12
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
13
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
14
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
15
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
16
|
-
function step(op) {
|
|
17
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
18
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
19
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
20
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
21
|
-
switch (op[0]) {
|
|
22
|
-
case 0: case 1: t = op; break;
|
|
23
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
24
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
25
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
26
|
-
default:
|
|
27
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
28
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
29
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
30
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
31
|
-
if (t[2]) _.ops.pop();
|
|
32
|
-
_.trys.pop(); continue;
|
|
33
|
-
}
|
|
34
|
-
op = body.call(thisArg, _);
|
|
35
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
36
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
3
|
import { signRequest } from './signer/signatureV4';
|
|
40
4
|
import { getSkewCorrectedDate } from './utils/getSkewCorrectedDate';
|
|
41
5
|
import { getUpdatedSystemClockOffset } from './utils/getUpdatedSystemClockOffset';
|
|
@@ -43,53 +7,27 @@ import { getUpdatedSystemClockOffset } from './utils/getUpdatedSystemClockOffset
|
|
|
43
7
|
* Middleware that SigV4 signs request with AWS credentials, and correct system clock offset.
|
|
44
8
|
* This middleware is expected to be placed after retry middleware.
|
|
45
9
|
*/
|
|
46
|
-
export
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
case 0:
|
|
57
|
-
currentSystemClockOffset = currentSystemClockOffset !== null && currentSystemClockOffset !== void 0 ? currentSystemClockOffset : 0;
|
|
58
|
-
_b = {};
|
|
59
|
-
if (!(typeof credentials === 'function')) return [3 /*break*/, 2];
|
|
60
|
-
return [4 /*yield*/, credentials()];
|
|
61
|
-
case 1:
|
|
62
|
-
_a = _c.sent();
|
|
63
|
-
return [3 /*break*/, 3];
|
|
64
|
-
case 2:
|
|
65
|
-
_a = credentials;
|
|
66
|
-
_c.label = 3;
|
|
67
|
-
case 3:
|
|
68
|
-
signRequestOptions = (_b.credentials = _a,
|
|
69
|
-
_b.signingDate = getSkewCorrectedDate(currentSystemClockOffset),
|
|
70
|
-
_b.signingRegion = region,
|
|
71
|
-
_b.signingService = service,
|
|
72
|
-
_b.uriEscapePath = uriEscapePath,
|
|
73
|
-
_b);
|
|
74
|
-
return [4 /*yield*/, signRequest(request, signRequestOptions)];
|
|
75
|
-
case 4:
|
|
76
|
-
signedRequest = _c.sent();
|
|
77
|
-
return [4 /*yield*/, next(signedRequest)];
|
|
78
|
-
case 5:
|
|
79
|
-
response = _c.sent();
|
|
80
|
-
dateString = getDateHeader(response);
|
|
81
|
-
if (dateString) {
|
|
82
|
-
currentSystemClockOffset = getUpdatedSystemClockOffset(Date.parse(dateString), currentSystemClockOffset);
|
|
83
|
-
}
|
|
84
|
-
return [2 /*return*/, response];
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
});
|
|
10
|
+
export const signingMiddleware = ({ credentials, region, service, uriEscapePath = true, }) => {
|
|
11
|
+
let currentSystemClockOffset;
|
|
12
|
+
return (next) => async function signingMiddleware(request) {
|
|
13
|
+
currentSystemClockOffset = currentSystemClockOffset ?? 0;
|
|
14
|
+
const signRequestOptions = {
|
|
15
|
+
credentials: typeof credentials === 'function' ? await credentials() : credentials,
|
|
16
|
+
signingDate: getSkewCorrectedDate(currentSystemClockOffset),
|
|
17
|
+
signingRegion: region,
|
|
18
|
+
signingService: service,
|
|
19
|
+
uriEscapePath,
|
|
88
20
|
};
|
|
21
|
+
const signedRequest = await signRequest(request, signRequestOptions);
|
|
22
|
+
const response = await next(signedRequest);
|
|
23
|
+
// Update system clock offset if response contains date header, regardless of the status code.
|
|
24
|
+
// non-2xx response will still be returned from next handler instead of thrown, because it's
|
|
25
|
+
// only thrown by the retry middleware.
|
|
26
|
+
const dateString = getDateHeader(response);
|
|
27
|
+
if (dateString) {
|
|
28
|
+
currentSystemClockOffset = getUpdatedSystemClockOffset(Date.parse(dateString), currentSystemClockOffset);
|
|
29
|
+
}
|
|
30
|
+
return response;
|
|
89
31
|
};
|
|
90
32
|
};
|
|
91
|
-
|
|
92
|
-
var _b, _c;
|
|
93
|
-
var _d = _a === void 0 ? {} : _a, headers = _d.headers;
|
|
94
|
-
return (_c = (_b = headers === null || headers === void 0 ? void 0 : headers.date) !== null && _b !== void 0 ? _b : headers === null || headers === void 0 ? void 0 : headers.Date) !== null && _c !== void 0 ? _c : headers === null || headers === void 0 ? void 0 : headers['x-amz-date'];
|
|
95
|
-
};
|
|
33
|
+
const getDateHeader = ({ headers } = {}) => headers?.date ?? headers?.Date ?? headers?.['x-amz-date'];
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
// query params
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
4
|
+
export const ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm';
|
|
5
|
+
export const AMZ_DATE_QUERY_PARAM = 'X-Amz-Date';
|
|
6
|
+
export const CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential';
|
|
7
|
+
export const EXPIRES_QUERY_PARAM = 'X-Amz-Expires';
|
|
8
|
+
export const REGION_SET_PARAM = 'X-Amz-Region-Set';
|
|
9
|
+
export const SIGNATURE_QUERY_PARAM = 'X-Amz-Signature';
|
|
10
|
+
export const SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders';
|
|
11
|
+
export const TOKEN_QUERY_PARAM = 'X-Amz-Security-Token';
|
|
12
12
|
// headers
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
export
|
|
13
|
+
export const AUTH_HEADER = 'authorization';
|
|
14
|
+
export const HOST_HEADER = 'host';
|
|
15
|
+
export const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();
|
|
16
|
+
export const TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();
|
|
17
17
|
// identifiers
|
|
18
|
-
export
|
|
19
|
-
export
|
|
20
|
-
export
|
|
18
|
+
export const KEY_TYPE_IDENTIFIER = 'aws4_request';
|
|
19
|
+
export const SHA256_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256';
|
|
20
|
+
export const SIGNATURE_IDENTIFIER = 'AWS4';
|
|
21
21
|
// preset values
|
|
22
|
-
export
|
|
23
|
-
export
|
|
22
|
+
export const EMPTY_HASH = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855';
|
|
23
|
+
export const UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD';
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
// TODO: V6 replace Signer
|
|
4
3
|
export { signRequest } from './signRequest';
|
|
5
4
|
export { presignUrl } from './presignUrl';
|
|
6
5
|
export { TOKEN_QUERY_PARAM } from './constants';
|
|
@@ -1,43 +1,5 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
var __assign = (this && this.__assign) || function () {
|
|
4
|
-
__assign = Object.assign || function(t) {
|
|
5
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
6
|
-
s = arguments[i];
|
|
7
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
8
|
-
t[p] = s[p];
|
|
9
|
-
}
|
|
10
|
-
return t;
|
|
11
|
-
};
|
|
12
|
-
return __assign.apply(this, arguments);
|
|
13
|
-
};
|
|
14
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
15
|
-
var t = {};
|
|
16
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
17
|
-
t[p] = s[p];
|
|
18
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
19
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
20
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
21
|
-
t[p[i]] = s[p[i]];
|
|
22
|
-
}
|
|
23
|
-
return t;
|
|
24
|
-
};
|
|
25
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
26
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
27
|
-
if (!m) return o;
|
|
28
|
-
var i = m.call(o), r, ar = [], e;
|
|
29
|
-
try {
|
|
30
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
31
|
-
}
|
|
32
|
-
catch (error) { e = { error: error }; }
|
|
33
|
-
finally {
|
|
34
|
-
try {
|
|
35
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
36
|
-
}
|
|
37
|
-
finally { if (e) throw e.error; }
|
|
38
|
-
}
|
|
39
|
-
return ar;
|
|
40
|
-
};
|
|
41
3
|
import { ALGORITHM_QUERY_PARAM, AMZ_DATE_QUERY_PARAM, CREDENTIAL_QUERY_PARAM, EXPIRES_QUERY_PARAM, HOST_HEADER, SHA256_ALGORITHM_IDENTIFIER, SIGNATURE_QUERY_PARAM, SIGNED_HEADERS_QUERY_PARAM, TOKEN_QUERY_PARAM, } from './constants';
|
|
42
4
|
import { getSigningValues } from './utils/getSigningValues';
|
|
43
5
|
import { getSignature } from './utils/getSignature';
|
|
@@ -49,27 +11,30 @@ import { AmplifyUrl } from '../../../../../utils/amplifyUrl';
|
|
|
49
11
|
* @param presignUrlOptions `PresignUrlOptions` object containing values used to construct the signature.
|
|
50
12
|
* @returns A `URL` with authentication query params which can grant temporary access to AWS resources.
|
|
51
13
|
*/
|
|
52
|
-
export
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
var expiration = _b.expiration, options = __rest(_b, ["expiration"]);
|
|
56
|
-
var signingValues = getSigningValues(options);
|
|
57
|
-
var accessKeyId = signingValues.accessKeyId, credentialScope = signingValues.credentialScope, longDate = signingValues.longDate, sessionToken = signingValues.sessionToken;
|
|
14
|
+
export const presignUrl = ({ body, method = 'GET', url }, { expiration, ...options }) => {
|
|
15
|
+
const signingValues = getSigningValues(options);
|
|
16
|
+
const { accessKeyId, credentialScope, longDate, sessionToken } = signingValues;
|
|
58
17
|
// create the request to sign
|
|
59
18
|
// @ts-ignore URL constructor accepts a URL object
|
|
60
|
-
|
|
61
|
-
Object.entries(
|
|
62
|
-
|
|
19
|
+
const presignedUrl = new AmplifyUrl(url);
|
|
20
|
+
Object.entries({
|
|
21
|
+
[ALGORITHM_QUERY_PARAM]: SHA256_ALGORITHM_IDENTIFIER,
|
|
22
|
+
[CREDENTIAL_QUERY_PARAM]: `${accessKeyId}/${credentialScope}`,
|
|
23
|
+
[AMZ_DATE_QUERY_PARAM]: longDate,
|
|
24
|
+
[SIGNED_HEADERS_QUERY_PARAM]: HOST_HEADER,
|
|
25
|
+
...(expiration && { [EXPIRES_QUERY_PARAM]: expiration.toString() }),
|
|
26
|
+
...(sessionToken && { [TOKEN_QUERY_PARAM]: sessionToken }),
|
|
27
|
+
}).forEach(([key, value]) => {
|
|
63
28
|
presignedUrl.searchParams.append(key, value);
|
|
64
29
|
});
|
|
65
|
-
|
|
66
|
-
body
|
|
67
|
-
headers:
|
|
68
|
-
method
|
|
30
|
+
const requestToSign = {
|
|
31
|
+
body,
|
|
32
|
+
headers: { [HOST_HEADER]: url.host },
|
|
33
|
+
method,
|
|
69
34
|
url: presignedUrl,
|
|
70
35
|
};
|
|
71
36
|
// calculate and add the signature to the url
|
|
72
|
-
|
|
37
|
+
const signature = getSignature(requestToSign, signingValues);
|
|
73
38
|
presignedUrl.searchParams.append(SIGNATURE_QUERY_PARAM, signature);
|
|
74
39
|
return presignedUrl;
|
|
75
40
|
};
|
|
@@ -1,16 +1,5 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
var __assign = (this && this.__assign) || function () {
|
|
4
|
-
__assign = Object.assign || function(t) {
|
|
5
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
6
|
-
s = arguments[i];
|
|
7
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
8
|
-
t[p] = s[p];
|
|
9
|
-
}
|
|
10
|
-
return t;
|
|
11
|
-
};
|
|
12
|
-
return __assign.apply(this, arguments);
|
|
13
|
-
};
|
|
14
3
|
import { getSignedHeaders } from './utils/getSignedHeaders';
|
|
15
4
|
import { getSigningValues } from './utils/getSigningValues';
|
|
16
5
|
import { AMZ_DATE_HEADER, AUTH_HEADER, HOST_HEADER, SHA256_ALGORITHM_IDENTIFIER, TOKEN_HEADER, } from './constants';
|
|
@@ -22,22 +11,22 @@ import { getSignature } from './utils/getSignature';
|
|
|
22
11
|
* @param signRequestOptions `SignRequestOptions` object containing values used to construct the signature.
|
|
23
12
|
* @returns A `HttpRequest` with authentication headers which can grant temporary access to AWS resources.
|
|
24
13
|
*/
|
|
25
|
-
export
|
|
26
|
-
|
|
27
|
-
|
|
14
|
+
export const signRequest = (request, options) => {
|
|
15
|
+
const signingValues = getSigningValues(options);
|
|
16
|
+
const { accessKeyId, credentialScope, longDate, sessionToken } = signingValues;
|
|
28
17
|
// create the request to sign
|
|
29
|
-
|
|
18
|
+
const headers = { ...request.headers };
|
|
30
19
|
headers[HOST_HEADER] = request.url.host;
|
|
31
20
|
headers[AMZ_DATE_HEADER] = longDate;
|
|
32
21
|
if (sessionToken) {
|
|
33
22
|
headers[TOKEN_HEADER] = sessionToken;
|
|
34
23
|
}
|
|
35
|
-
|
|
24
|
+
const requestToSign = { ...request, headers };
|
|
36
25
|
// calculate and add the signature to the request
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
headers[AUTH_HEADER] =
|
|
26
|
+
const signature = getSignature(requestToSign, signingValues);
|
|
27
|
+
const credentialEntry = `Credential=${accessKeyId}/${credentialScope}`;
|
|
28
|
+
const signedHeadersEntry = `SignedHeaders=${getSignedHeaders(headers)}`;
|
|
29
|
+
const signatureEntry = `Signature=${signature}`;
|
|
30
|
+
headers[AUTH_HEADER] = `${SHA256_ALGORITHM_IDENTIFIER} ${credentialEntry}, ${signedHeadersEntry}, ${signatureEntry}`;
|
|
42
31
|
return requestToSign;
|
|
43
32
|
};
|
|
@@ -10,11 +10,11 @@ import { toHex } from '@smithy/util-hex-encoding';
|
|
|
10
10
|
* @param data Hashable `SourceData`.
|
|
11
11
|
* @returns `Uint8Array` created from the data as input to a hash function.
|
|
12
12
|
*/
|
|
13
|
-
export
|
|
14
|
-
|
|
13
|
+
export const getHashedData = (key, data) => {
|
|
14
|
+
const sha256 = new Sha256(key ?? undefined);
|
|
15
15
|
sha256.update(data);
|
|
16
16
|
// TODO: V6 flip to async digest
|
|
17
|
-
|
|
17
|
+
const hashedData = sha256.digestSync();
|
|
18
18
|
return hashedData;
|
|
19
19
|
};
|
|
20
20
|
/**
|
|
@@ -26,7 +26,7 @@ export var getHashedData = function (key, data) {
|
|
|
26
26
|
*
|
|
27
27
|
* @internal
|
|
28
28
|
*/
|
|
29
|
-
export
|
|
30
|
-
|
|
29
|
+
export const getHashedDataAsHex = (key, data) => {
|
|
30
|
+
const hashedData = getHashedData(key, data);
|
|
31
31
|
return toHex(hashedData);
|
|
32
32
|
};
|
|
@@ -1,21 +1,5 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
4
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
5
|
-
if (!m) return o;
|
|
6
|
-
var i = m.call(o), r, ar = [], e;
|
|
7
|
-
try {
|
|
8
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
9
|
-
}
|
|
10
|
-
catch (error) { e = { error: error }; }
|
|
11
|
-
finally {
|
|
12
|
-
try {
|
|
13
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
14
|
-
}
|
|
15
|
-
finally { if (e) throw e.error; }
|
|
16
|
-
}
|
|
17
|
-
return ar;
|
|
18
|
-
};
|
|
19
3
|
/**
|
|
20
4
|
* Returns canonical headers.
|
|
21
5
|
*
|
|
@@ -27,17 +11,11 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
27
11
|
*
|
|
28
12
|
* @internal
|
|
29
13
|
*/
|
|
30
|
-
export
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
});
|
|
39
|
-
})
|
|
40
|
-
.sort(function (a, b) { return (a.key < b.key ? -1 : 1); })
|
|
41
|
-
.map(function (entry) { return "".concat(entry.key, ":").concat(entry.value, "\n"); })
|
|
42
|
-
.join('');
|
|
43
|
-
};
|
|
14
|
+
export const getCanonicalHeaders = (headers) => Object.entries(headers)
|
|
15
|
+
.map(([key, value]) => ({
|
|
16
|
+
key: key.toLowerCase(),
|
|
17
|
+
value: value?.trim().replace(/\s+/g, ' ') ?? '',
|
|
18
|
+
}))
|
|
19
|
+
.sort((a, b) => (a.key < b.key ? -1 : 1))
|
|
20
|
+
.map(entry => `${entry.key}:${entry.value}\n`)
|
|
21
|
+
.join('');
|
package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.js
CHANGED
|
@@ -1,21 +1,5 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
4
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
5
|
-
if (!m) return o;
|
|
6
|
-
var i = m.call(o), r, ar = [], e;
|
|
7
|
-
try {
|
|
8
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
9
|
-
}
|
|
10
|
-
catch (error) { e = { error: error }; }
|
|
11
|
-
finally {
|
|
12
|
-
try {
|
|
13
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
14
|
-
}
|
|
15
|
-
finally { if (e) throw e.error; }
|
|
16
|
-
}
|
|
17
|
-
return ar;
|
|
18
|
-
};
|
|
19
3
|
/**
|
|
20
4
|
* Returns a canonical query string.
|
|
21
5
|
*
|
|
@@ -27,25 +11,14 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
27
11
|
*
|
|
28
12
|
* @internal
|
|
29
13
|
*/
|
|
30
|
-
export
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
var _b = __read(_a, 2), key = _b[0], val = _b[1];
|
|
42
|
-
return "".concat(escapeUri(key), "=").concat(escapeUri(val));
|
|
43
|
-
})
|
|
44
|
-
.join('&');
|
|
45
|
-
};
|
|
46
|
-
var escapeUri = function (uri) {
|
|
47
|
-
return encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);
|
|
48
|
-
};
|
|
49
|
-
var hexEncode = function (c) {
|
|
50
|
-
return "%".concat(c.charCodeAt(0).toString(16).toUpperCase());
|
|
51
|
-
};
|
|
14
|
+
export const getCanonicalQueryString = (searchParams) => Array.from(searchParams)
|
|
15
|
+
.sort(([keyA, valA], [keyB, valB]) => {
|
|
16
|
+
if (keyA === keyB) {
|
|
17
|
+
return valA < valB ? -1 : 1;
|
|
18
|
+
}
|
|
19
|
+
return keyA < keyB ? -1 : 1;
|
|
20
|
+
})
|
|
21
|
+
.map(([key, val]) => `${escapeUri(key)}=${escapeUri(val)}`)
|
|
22
|
+
.join('&');
|
|
23
|
+
const escapeUri = (uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);
|
|
24
|
+
const hexEncode = (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;
|
|
@@ -21,15 +21,11 @@ import { getSignedHeaders } from './getSignedHeaders';
|
|
|
21
21
|
*
|
|
22
22
|
* @internal
|
|
23
23
|
*/
|
|
24
|
-
export
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
getSignedHeaders(headers),
|
|
33
|
-
getHashedPayload(body),
|
|
34
|
-
].join('\n');
|
|
35
|
-
};
|
|
24
|
+
export const getCanonicalRequest = ({ body, headers, method, url }, uriEscapePath = true) => [
|
|
25
|
+
method,
|
|
26
|
+
getCanonicalUri(url.pathname, uriEscapePath),
|
|
27
|
+
getCanonicalQueryString(url.searchParams),
|
|
28
|
+
getCanonicalHeaders(headers),
|
|
29
|
+
getSignedHeaders(headers),
|
|
30
|
+
getHashedPayload(body),
|
|
31
|
+
].join('\n');
|
|
@@ -11,11 +11,8 @@
|
|
|
11
11
|
*
|
|
12
12
|
* @internal
|
|
13
13
|
*/
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
: pathname
|
|
20
|
-
: '/';
|
|
21
|
-
};
|
|
14
|
+
export const getCanonicalUri = (pathname, uriEscapePath = true) => pathname
|
|
15
|
+
? uriEscapePath
|
|
16
|
+
? encodeURIComponent(pathname).replace(/%2F/g, '/')
|
|
17
|
+
: pathname
|
|
18
|
+
: '/';
|
|
@@ -12,4 +12,4 @@ import { KEY_TYPE_IDENTIFIER } from '../constants';
|
|
|
12
12
|
*
|
|
13
13
|
* @internal
|
|
14
14
|
*/
|
|
15
|
-
export
|
|
15
|
+
export const getCredentialScope = (date, region, service) => `${date}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`;
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @internal
|
|
12
12
|
*/
|
|
13
|
-
export
|
|
14
|
-
|
|
13
|
+
export const getFormattedDates = (date) => {
|
|
14
|
+
const longDate = date.toISOString().replace(/[:\-]|\.\d{3}/g, '');
|
|
15
15
|
return {
|
|
16
|
-
longDate
|
|
16
|
+
longDate,
|
|
17
17
|
shortDate: longDate.slice(0, 8),
|
|
18
18
|
};
|
|
19
19
|
};
|
|
@@ -11,22 +11,18 @@ import { getHashedDataAsHex } from './dataHashHelpers';
|
|
|
11
11
|
*
|
|
12
12
|
* @internal
|
|
13
13
|
*/
|
|
14
|
-
export
|
|
14
|
+
export const getHashedPayload = (body) => {
|
|
15
15
|
// return precalculated empty hash if body is undefined or null
|
|
16
16
|
if (body == null) {
|
|
17
17
|
return EMPTY_HASH;
|
|
18
18
|
}
|
|
19
19
|
if (isSourceData(body)) {
|
|
20
|
-
|
|
20
|
+
const hashedData = getHashedDataAsHex(null, body);
|
|
21
21
|
return hashedData;
|
|
22
22
|
}
|
|
23
23
|
// Defined body is not signable. Return unsigned payload which may or may not be accepted by the service.
|
|
24
24
|
return UNSIGNED_PAYLOAD;
|
|
25
25
|
};
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
var isArrayBuffer = function (arg) {
|
|
30
|
-
return (typeof ArrayBuffer === 'function' && arg instanceof ArrayBuffer) ||
|
|
31
|
-
Object.prototype.toString.call(arg) === '[object ArrayBuffer]';
|
|
32
|
-
};
|
|
26
|
+
const isSourceData = (body) => typeof body === 'string' || ArrayBuffer.isView(body) || isArrayBuffer(body);
|
|
27
|
+
const isArrayBuffer = (arg) => (typeof ArrayBuffer === 'function' && arg instanceof ArrayBuffer) ||
|
|
28
|
+
Object.prototype.toString.call(arg) === '[object ArrayBuffer]';
|
|
@@ -14,15 +14,14 @@ import { getStringToSign } from './getStringToSign';
|
|
|
14
14
|
*
|
|
15
15
|
* @internal
|
|
16
16
|
*/
|
|
17
|
-
export
|
|
18
|
-
var credentialScope = _a.credentialScope, longDate = _a.longDate, secretAccessKey = _a.secretAccessKey, shortDate = _a.shortDate, signingRegion = _a.signingRegion, signingService = _a.signingService, uriEscapePath = _a.uriEscapePath;
|
|
17
|
+
export const getSignature = (request, { credentialScope, longDate, secretAccessKey, shortDate, signingRegion, signingService, uriEscapePath, }) => {
|
|
19
18
|
// step 1: create a canonical request
|
|
20
|
-
|
|
19
|
+
const canonicalRequest = getCanonicalRequest(request, uriEscapePath);
|
|
21
20
|
// step 2: create a hash of the canonical request
|
|
22
|
-
|
|
21
|
+
const hashedRequest = getHashedDataAsHex(null, canonicalRequest);
|
|
23
22
|
// step 3: create a string to sign
|
|
24
|
-
|
|
23
|
+
const stringToSign = getStringToSign(longDate, credentialScope, hashedRequest);
|
|
25
24
|
// step 4: calculate the signature
|
|
26
|
-
|
|
25
|
+
const signature = getHashedDataAsHex(getSigningKey(secretAccessKey, shortDate, signingRegion, signingService), stringToSign);
|
|
27
26
|
return signature;
|
|
28
27
|
};
|
|
@@ -9,9 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @internal
|
|
11
11
|
*/
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
.join(';');
|
|
17
|
-
};
|
|
12
|
+
export const getSignedHeaders = (headers) => Object.keys(headers)
|
|
13
|
+
.map(key => key.toLowerCase())
|
|
14
|
+
.sort()
|
|
15
|
+
.join(';');
|
|
@@ -14,11 +14,11 @@ import { getHashedData } from './dataHashHelpers';
|
|
|
14
14
|
*
|
|
15
15
|
* @internal
|
|
16
16
|
*/
|
|
17
|
-
export
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
export const getSigningKey = (secretAccessKey, date, region, service) => {
|
|
18
|
+
const key = `${SIGNATURE_IDENTIFIER}${secretAccessKey}`;
|
|
19
|
+
const dateKey = getHashedData(key, date);
|
|
20
|
+
const regionKey = getHashedData(dateKey, region);
|
|
21
|
+
const serviceKey = getHashedData(regionKey, service);
|
|
22
|
+
const signingKey = getHashedData(serviceKey, KEY_TYPE_IDENTIFIER);
|
|
23
23
|
return signingKey;
|
|
24
24
|
};
|
|
@@ -10,23 +10,22 @@ import { getFormattedDates } from './getFormattedDates';
|
|
|
10
10
|
*
|
|
11
11
|
* @internal
|
|
12
12
|
*/
|
|
13
|
-
export
|
|
14
|
-
var credentials = _a.credentials, _b = _a.signingDate, signingDate = _b === void 0 ? new Date() : _b, signingRegion = _a.signingRegion, signingService = _a.signingService, _c = _a.uriEscapePath, uriEscapePath = _c === void 0 ? true : _c;
|
|
13
|
+
export const getSigningValues = ({ credentials, signingDate = new Date(), signingRegion, signingService, uriEscapePath = true, }) => {
|
|
15
14
|
// get properties from credentials
|
|
16
|
-
|
|
15
|
+
const { accessKeyId, secretAccessKey, sessionToken } = credentials;
|
|
17
16
|
// get formatted dates for signing
|
|
18
|
-
|
|
17
|
+
const { longDate, shortDate } = getFormattedDates(signingDate);
|
|
19
18
|
// copy header and set signing properties
|
|
20
|
-
|
|
19
|
+
const credentialScope = getCredentialScope(shortDate, signingRegion, signingService);
|
|
21
20
|
return {
|
|
22
|
-
accessKeyId
|
|
23
|
-
credentialScope
|
|
24
|
-
longDate
|
|
25
|
-
secretAccessKey
|
|
26
|
-
sessionToken
|
|
27
|
-
shortDate
|
|
28
|
-
signingRegion
|
|
29
|
-
signingService
|
|
30
|
-
uriEscapePath
|
|
21
|
+
accessKeyId,
|
|
22
|
+
credentialScope,
|
|
23
|
+
longDate,
|
|
24
|
+
secretAccessKey,
|
|
25
|
+
sessionToken,
|
|
26
|
+
shortDate,
|
|
27
|
+
signingRegion,
|
|
28
|
+
signingService,
|
|
29
|
+
uriEscapePath,
|
|
31
30
|
};
|
|
32
31
|
};
|