@aws-amplify/core 6.0.1-api-v6-models.9351bcf.0 → 6.0.1-api-v6-models.891fe0d.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.
Files changed (360) hide show
  1. package/lib/BackgroundProcessManager/BackgroundManagerNotOpenError.js +4 -21
  2. package/lib/BackgroundProcessManager/BackgroundProcessManager.js +126 -245
  3. package/lib/Cache/StorageCache.js +32 -92
  4. package/lib/Cache/StorageCache.native.js +38 -140
  5. package/lib/Cache/StorageCacheCommon.js +271 -600
  6. package/lib/Cache/index.js +1 -1
  7. package/lib/Cache/utils/CacheList.js +42 -66
  8. package/lib/Cache/utils/cacheHelpers.js +6 -8
  9. package/lib/Cache/utils/errorHelpers.js +6 -7
  10. package/lib/Hub/index.js +34 -74
  11. package/lib/I18n/I18n.js +24 -39
  12. package/lib/I18n/errorHelpers.js +4 -5
  13. package/lib/I18n/index.js +24 -27
  14. package/lib/I18n/types.js +3 -4
  15. package/lib/Logger/ConsoleLogger.js +53 -129
  16. package/lib/Mutex/Mutex.js +15 -19
  17. package/lib/Platform/customUserAgent.js +13 -26
  18. package/lib/Platform/detectFramework.js +12 -13
  19. package/lib/Platform/detection/Angular.js +4 -5
  20. package/lib/Platform/detection/Expo.js +1 -1
  21. package/lib/Platform/detection/Next.js +1 -1
  22. package/lib/Platform/detection/Nuxt.js +1 -1
  23. package/lib/Platform/detection/React.js +5 -5
  24. package/lib/Platform/detection/Svelte.js +2 -2
  25. package/lib/Platform/detection/Vue.js +1 -1
  26. package/lib/Platform/detection/Web.js +1 -1
  27. package/lib/Platform/detection/helpers.js +7 -7
  28. package/lib/Platform/detection/index.js +13 -13
  29. package/lib/Platform/index.js +26 -55
  30. package/lib/Platform/types.d.ts +1 -1
  31. package/lib/Platform/types.js +1 -1
  32. package/lib/Platform/version.d.ts +1 -1
  33. package/lib/Platform/version.js +1 -1
  34. package/lib/Reachability/Reachability.js +20 -48
  35. package/lib/Reachability/Reachability.native.js +12 -16
  36. package/lib/ServiceWorker/ServiceWorker.js +80 -136
  37. package/lib/ServiceWorker/errorHelpers.js +6 -7
  38. package/lib/Signer/DateUtils.d.ts +9 -0
  39. package/lib/Signer/DateUtils.js +19 -28
  40. package/lib/Signer/Signer.d.ts +9 -0
  41. package/lib/Signer/Signer.js +58 -54
  42. package/lib/adapterCore/error/AmplifyServerContextError.js +9 -27
  43. package/lib/adapterCore/serverContext/serverContext.js +8 -8
  44. package/lib/adapterCore/serverContext/serverContextRegistry.js +6 -6
  45. package/lib/awsClients/cognitoIdentity/base.js +25 -73
  46. package/lib/awsClients/cognitoIdentity/getCredentialsForIdentity.js +24 -68
  47. package/lib/awsClients/cognitoIdentity/getId.js +19 -62
  48. package/lib/awsClients/pinpoint/base.js +12 -15
  49. package/lib/awsClients/pinpoint/errorHelpers.js +4 -5
  50. package/lib/awsClients/pinpoint/getInAppMessages.js +24 -68
  51. package/lib/awsClients/pinpoint/putEvents.js +26 -70
  52. package/lib/awsClients/pinpoint/updateEndpoint.js +28 -72
  53. package/lib/clients/endpoints/getDnsSuffix.js +7 -29
  54. package/lib/clients/handlers/authenticated.js +5 -5
  55. package/lib/clients/handlers/fetch.js +41 -98
  56. package/lib/clients/handlers/unauthenticated.js +4 -4
  57. package/lib/clients/internal/composeServiceApi.js +17 -67
  58. package/lib/clients/internal/composeTransferHandler.js +9 -11
  59. package/lib/clients/middleware/retry/defaultRetryDecider.js +18 -75
  60. package/lib/clients/middleware/retry/isClockSkewError.js +2 -4
  61. package/lib/clients/middleware/retry/jitteredBackoff.js +5 -5
  62. package/lib/clients/middleware/retry/middleware.js +61 -125
  63. package/lib/clients/middleware/signing/middleware.js +24 -86
  64. package/lib/clients/middleware/signing/signer/signatureV4/index.js +0 -1
  65. package/lib/clients/middleware/signing/signer/signatureV4/presignUrl.js +21 -56
  66. package/lib/clients/middleware/signing/signer/signatureV4/signRequest.js +14 -25
  67. package/lib/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.js +7 -7
  68. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalHeaders.js +8 -30
  69. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.js +11 -38
  70. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalRequest.js +13 -17
  71. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalUri.js +5 -8
  72. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCredentialScope.js +2 -2
  73. package/lib/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.js +3 -3
  74. package/lib/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.js +7 -11
  75. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSignature.js +9 -10
  76. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSignedHeaders.js +4 -6
  77. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSigningKey.js +8 -8
  78. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSigningValues.js +15 -16
  79. package/lib/clients/middleware/signing/signer/signatureV4/utils/getStringToSign.js +2 -4
  80. package/lib/clients/middleware/signing/utils/extendedEncodeURIComponent.js +3 -5
  81. package/lib/clients/middleware/signing/utils/getSkewCorrectedDate.js +1 -3
  82. package/lib/clients/middleware/signing/utils/getUpdatedSystemClockOffset.js +2 -2
  83. package/lib/clients/middleware/signing/utils/isClockSkewed.js +4 -6
  84. package/lib/clients/middleware/userAgent/middleware.js +14 -63
  85. package/lib/clients/serde/json.js +30 -96
  86. package/lib/clients/serde/responseInfo.js +12 -18
  87. package/lib/clients/utils/memoization.js +3 -3
  88. package/lib/constants.js +1 -1
  89. package/lib/errors/AmplifyError.js +9 -28
  90. package/lib/errors/PlatformNotSupportedError.js +7 -24
  91. package/lib/errors/createAssertionFunction.js +12 -15
  92. package/lib/errors/errorHelpers.js +7 -8
  93. package/lib/index.d.ts +1 -1
  94. package/lib/libraryUtils.d.ts +4 -0
  95. package/lib/libraryUtils.js +13 -3
  96. package/lib/parseAWSExports.js +109 -100
  97. package/lib/providers/kinesis/types/kinesis.d.ts +1 -1
  98. package/lib/providers/kinesis-firehose/types/kinesis-firehose.d.ts +1 -1
  99. package/lib/providers/personalize/types/personalize.d.ts +1 -1
  100. package/lib/providers/pinpoint/apis/flushEvents.js +8 -8
  101. package/lib/providers/pinpoint/apis/record.js +58 -93
  102. package/lib/providers/pinpoint/apis/updateEndpoint.js +65 -112
  103. package/lib/providers/pinpoint/types/pinpoint.d.ts +3 -1
  104. package/lib/providers/pinpoint/utils/PinpointEventBuffer.js +105 -196
  105. package/lib/providers/pinpoint/utils/cacheEndpointId.js +12 -49
  106. package/lib/providers/pinpoint/utils/getCacheKey.js +2 -2
  107. package/lib/providers/pinpoint/utils/getEndpointId.js +7 -51
  108. package/lib/providers/pinpoint/utils/getEventBuffer.js +19 -21
  109. package/lib/providers/pinpoint/utils/isAppInForeground.js +1 -1
  110. package/lib/providers/pinpoint/utils/isAppInForeground.native.js +2 -2
  111. package/lib/providers/pinpoint/utils/resolveEndpointId.js +20 -71
  112. package/lib/singleton/Amplify.d.ts +4 -0
  113. package/lib/singleton/Amplify.js +21 -103
  114. package/lib/singleton/Analytics/types.d.ts +5 -1
  115. package/lib/singleton/Auth/index.js +48 -115
  116. package/lib/singleton/Auth/types.d.ts +2 -2
  117. package/lib/singleton/Auth/utils/errorHelpers.js +7 -8
  118. package/lib/singleton/Auth/utils/index.js +18 -19
  119. package/lib/singleton/Predictions/types.d.ts +49 -0
  120. package/lib/singleton/Predictions/types.js +4 -0
  121. package/lib/singleton/apis/clearCredentials.js +1 -1
  122. package/lib/singleton/apis/fetchAuthSession.js +3 -3
  123. package/lib/singleton/apis/internal/fetchAuthSession.js +1 -1
  124. package/lib/singleton/apis/server/fetchAuthSession.js +3 -3
  125. package/lib/singleton/types.d.ts +3 -1
  126. package/lib/storage/CookieStorage.js +29 -99
  127. package/lib/storage/CookieStorage.native.js +5 -22
  128. package/lib/storage/DefaultStorage.js +6 -23
  129. package/lib/storage/DefaultStorage.native.js +18 -64
  130. package/lib/storage/InMemoryStorage.js +17 -23
  131. package/lib/storage/KeyValueStorage.js +24 -80
  132. package/lib/storage/SessionStorage.js +6 -23
  133. package/lib/storage/index.js +4 -4
  134. package/lib/storage/utils.js +7 -11
  135. package/lib/tsconfig.tsbuildinfo +1 -1
  136. package/lib/utils/WordArray.d.ts +7 -0
  137. package/lib/utils/WordArray.js +49 -0
  138. package/lib/utils/amplifyUrl/index.js +2 -2
  139. package/lib/utils/amplifyUrl/polyfill.native.js +1 -1
  140. package/lib/utils/amplifyUuid/index.d.ts +1 -1
  141. package/lib/utils/amplifyUuid/index.js +2 -2
  142. package/lib/utils/amplifyUuid/polyfill.native.js +1 -1
  143. package/lib/utils/convert/base64/base64Decoder.js +2 -2
  144. package/lib/utils/convert/base64/base64Encoder.js +5 -6
  145. package/lib/utils/convert/base64/bytesToString.js +1 -1
  146. package/lib/utils/cryptoSecureRandomInt.d.ts +1 -0
  147. package/lib/utils/cryptoSecureRandomInt.js +16 -0
  148. package/lib/utils/deepFreeze.js +6 -28
  149. package/lib/utils/generateRandomString.js +4 -4
  150. package/lib/utils/getClientInfo/getClientInfo.android.js +7 -7
  151. package/lib/utils/getClientInfo/getClientInfo.ios.js +12 -12
  152. package/lib/utils/getClientInfo/getClientInfo.js +16 -16
  153. package/lib/utils/globalHelpers/index.js +4 -4
  154. package/lib/utils/globalHelpers/index.native.js +6 -6
  155. package/lib/utils/isBrowser.js +1 -3
  156. package/lib/utils/isWebWorker.js +2 -2
  157. package/lib/utils/retry/NonRetryableError.js +5 -23
  158. package/lib/utils/retry/isNonRetryableError.js +2 -2
  159. package/lib/utils/retry/jitteredBackoff.js +6 -7
  160. package/lib/utils/retry/jitteredExponentialRetry.js +4 -7
  161. package/lib/utils/retry/retry.js +50 -140
  162. package/lib/utils/sessionListener/SessionListener.js +17 -19
  163. package/lib/utils/sessionListener/SessionListener.native.js +18 -22
  164. package/lib/utils/sessionListener/constants.d.ts +2 -0
  165. package/lib/utils/sessionListener/constants.js +8 -0
  166. package/lib/utils/sessionListener/index.d.ts +1 -0
  167. package/lib/utils/sessionListener/index.js +5 -2
  168. package/lib/utils/urlSafeDecode.js +2 -2
  169. package/lib/utils/urlSafeEncode.js +1 -1
  170. package/lib-esm/BackgroundProcessManager/BackgroundManagerNotOpenError.js +4 -22
  171. package/lib-esm/BackgroundProcessManager/BackgroundProcessManager.js +124 -244
  172. package/lib-esm/Cache/StorageCache.js +26 -87
  173. package/lib-esm/Cache/StorageCache.native.js +33 -136
  174. package/lib-esm/Cache/StorageCacheCommon.js +267 -597
  175. package/lib-esm/Cache/constants.js +2 -2
  176. package/lib-esm/Cache/index.js +1 -1
  177. package/lib-esm/Cache/utils/CacheList.js +41 -66
  178. package/lib-esm/Cache/utils/cacheHelpers.js +5 -7
  179. package/lib-esm/Cache/utils/errorHelpers.js +6 -7
  180. package/lib-esm/Hub/index.js +34 -75
  181. package/lib-esm/I18n/I18n.js +23 -39
  182. package/lib-esm/I18n/errorHelpers.js +4 -5
  183. package/lib-esm/I18n/index.js +21 -25
  184. package/lib-esm/I18n/types.js +3 -5
  185. package/lib-esm/Logger/ConsoleLogger.js +52 -128
  186. package/lib-esm/Mutex/Mutex.js +15 -20
  187. package/lib-esm/Platform/customUserAgent.js +13 -26
  188. package/lib-esm/Platform/detectFramework.js +11 -12
  189. package/lib-esm/Platform/detection/Angular.js +3 -4
  190. package/lib-esm/Platform/detection/React.js +4 -4
  191. package/lib-esm/Platform/detection/Svelte.js +1 -1
  192. package/lib-esm/Platform/detection/helpers.js +7 -7
  193. package/lib-esm/Platform/detection/index.js +3 -3
  194. package/lib-esm/Platform/index.js +23 -52
  195. package/lib-esm/Platform/types.d.ts +1 -1
  196. package/lib-esm/Platform/types.js +1 -1
  197. package/lib-esm/Platform/version.d.ts +1 -1
  198. package/lib-esm/Platform/version.js +1 -1
  199. package/lib-esm/Reachability/Reachability.js +18 -46
  200. package/lib-esm/Reachability/Reachability.native.js +10 -15
  201. package/lib-esm/ServiceWorker/ServiceWorker.js +74 -131
  202. package/lib-esm/ServiceWorker/errorHelpers.js +6 -7
  203. package/lib-esm/Signer/DateUtils.d.ts +9 -0
  204. package/lib-esm/Signer/DateUtils.js +20 -29
  205. package/lib-esm/Signer/Signer.d.ts +9 -0
  206. package/lib-esm/Signer/Signer.js +54 -51
  207. package/lib-esm/adapterCore/error/AmplifyServerContextError.js +8 -27
  208. package/lib-esm/adapterCore/serverContext/serverContext.js +6 -6
  209. package/lib-esm/adapterCore/serverContext/serverContextRegistry.js +7 -7
  210. package/lib-esm/awsClients/cognitoIdentity/base.js +21 -69
  211. package/lib-esm/awsClients/cognitoIdentity/getCredentialsForIdentity.js +22 -66
  212. package/lib-esm/awsClients/cognitoIdentity/getId.js +17 -60
  213. package/lib-esm/awsClients/pinpoint/base.js +8 -11
  214. package/lib-esm/awsClients/pinpoint/errorHelpers.js +4 -5
  215. package/lib-esm/awsClients/pinpoint/getInAppMessages.js +19 -63
  216. package/lib-esm/awsClients/pinpoint/putEvents.js +20 -64
  217. package/lib-esm/awsClients/pinpoint/updateEndpoint.js +23 -67
  218. package/lib-esm/clients/endpoints/getDnsSuffix.js +6 -28
  219. package/lib-esm/clients/endpoints/partitions.js +2 -2
  220. package/lib-esm/clients/handlers/authenticated.js +1 -1
  221. package/lib-esm/clients/handlers/fetch.js +40 -97
  222. package/lib-esm/clients/handlers/unauthenticated.js +1 -1
  223. package/lib-esm/clients/internal/composeServiceApi.js +17 -67
  224. package/lib-esm/clients/internal/composeTransferHandler.js +9 -11
  225. package/lib-esm/clients/middleware/retry/defaultRetryDecider.js +17 -74
  226. package/lib-esm/clients/middleware/retry/isClockSkewError.js +2 -4
  227. package/lib-esm/clients/middleware/retry/jitteredBackoff.js +4 -4
  228. package/lib-esm/clients/middleware/retry/middleware.js +61 -125
  229. package/lib-esm/clients/middleware/signing/middleware.js +21 -83
  230. package/lib-esm/clients/middleware/signing/signer/signatureV4/constants.js +17 -17
  231. package/lib-esm/clients/middleware/signing/signer/signatureV4/index.js +0 -1
  232. package/lib-esm/clients/middleware/signing/signer/signatureV4/presignUrl.js +17 -52
  233. package/lib-esm/clients/middleware/signing/signer/signatureV4/signRequest.js +10 -21
  234. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.js +5 -5
  235. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalHeaders.js +8 -30
  236. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.js +11 -38
  237. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalRequest.js +8 -12
  238. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalUri.js +5 -8
  239. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCredentialScope.js +1 -1
  240. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.js +3 -3
  241. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.js +5 -9
  242. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSignature.js +5 -6
  243. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSignedHeaders.js +4 -6
  244. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSigningKey.js +6 -6
  245. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSigningValues.js +13 -14
  246. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getStringToSign.js +1 -3
  247. package/lib-esm/clients/middleware/signing/utils/extendedEncodeURIComponent.js +3 -5
  248. package/lib-esm/clients/middleware/signing/utils/getSkewCorrectedDate.js +1 -3
  249. package/lib-esm/clients/middleware/signing/utils/getUpdatedSystemClockOffset.js +1 -1
  250. package/lib-esm/clients/middleware/signing/utils/isClockSkewed.js +3 -5
  251. package/lib-esm/clients/middleware/userAgent/middleware.js +14 -63
  252. package/lib-esm/clients/serde/json.js +29 -95
  253. package/lib-esm/clients/serde/responseInfo.js +11 -17
  254. package/lib-esm/clients/utils/memoization.js +3 -3
  255. package/lib-esm/constants.js +5 -5
  256. package/lib-esm/errors/AmplifyError.js +9 -29
  257. package/lib-esm/errors/PlatformNotSupportedError.js +5 -23
  258. package/lib-esm/errors/createAssertionFunction.js +11 -14
  259. package/lib-esm/errors/errorHelpers.js +6 -7
  260. package/lib-esm/index.d.ts +1 -1
  261. package/lib-esm/libraryUtils.d.ts +4 -0
  262. package/lib-esm/libraryUtils.js +4 -0
  263. package/lib-esm/parseAWSExports.js +108 -99
  264. package/lib-esm/providers/kinesis/types/kinesis.d.ts +1 -1
  265. package/lib-esm/providers/kinesis-firehose/types/kinesis-firehose.d.ts +1 -1
  266. package/lib-esm/providers/personalize/types/personalize.d.ts +1 -1
  267. package/lib-esm/providers/pinpoint/apis/flushEvents.js +6 -6
  268. package/lib-esm/providers/pinpoint/apis/record.js +54 -89
  269. package/lib-esm/providers/pinpoint/apis/updateEndpoint.js +61 -108
  270. package/lib-esm/providers/pinpoint/types/pinpoint.d.ts +3 -1
  271. package/lib-esm/providers/pinpoint/utils/PinpointEventBuffer.js +102 -194
  272. package/lib-esm/providers/pinpoint/utils/cacheEndpointId.js +10 -47
  273. package/lib-esm/providers/pinpoint/utils/constants.js +4 -4
  274. package/lib-esm/providers/pinpoint/utils/getCacheKey.js +2 -2
  275. package/lib-esm/providers/pinpoint/utils/getEndpointId.js +5 -49
  276. package/lib-esm/providers/pinpoint/utils/getEventBuffer.js +17 -19
  277. package/lib-esm/providers/pinpoint/utils/isAppInForeground.js +1 -1
  278. package/lib-esm/providers/pinpoint/utils/isAppInForeground.native.js +1 -1
  279. package/lib-esm/providers/pinpoint/utils/resolveEndpointId.js +16 -67
  280. package/lib-esm/singleton/Amplify.d.ts +4 -0
  281. package/lib-esm/singleton/Amplify.js +18 -101
  282. package/lib-esm/singleton/Analytics/types.d.ts +5 -1
  283. package/lib-esm/singleton/Auth/index.js +48 -116
  284. package/lib-esm/singleton/Auth/types.d.ts +2 -2
  285. package/lib-esm/singleton/Auth/utils/errorHelpers.js +7 -8
  286. package/lib-esm/singleton/Auth/utils/index.js +16 -17
  287. package/lib-esm/singleton/Predictions/types.d.ts +49 -0
  288. package/lib-esm/singleton/Predictions/types.js +3 -0
  289. package/lib-esm/singleton/apis/fetchAuthSession.js +1 -1
  290. package/lib-esm/singleton/apis/internal/fetchAuthSession.js +1 -1
  291. package/lib-esm/singleton/apis/server/fetchAuthSession.js +1 -1
  292. package/lib-esm/singleton/types.d.ts +3 -1
  293. package/lib-esm/storage/CookieStorage.js +28 -99
  294. package/lib-esm/storage/CookieStorage.native.js +4 -22
  295. package/lib-esm/storage/DefaultStorage.js +4 -22
  296. package/lib-esm/storage/DefaultStorage.native.js +17 -64
  297. package/lib-esm/storage/InMemoryStorage.js +17 -24
  298. package/lib-esm/storage/KeyValueStorage.js +23 -80
  299. package/lib-esm/storage/SessionStorage.js +4 -22
  300. package/lib-esm/storage/index.js +3 -3
  301. package/lib-esm/storage/utils.js +6 -10
  302. package/lib-esm/tsconfig.tsbuildinfo +1 -1
  303. package/lib-esm/utils/WordArray.d.ts +7 -0
  304. package/lib-esm/utils/WordArray.js +46 -0
  305. package/lib-esm/utils/amplifyUrl/index.js +2 -2
  306. package/lib-esm/utils/amplifyUuid/index.d.ts +1 -1
  307. package/lib-esm/utils/amplifyUuid/index.js +1 -1
  308. package/lib-esm/utils/convert/base64/base64Decoder.js +2 -2
  309. package/lib-esm/utils/convert/base64/base64Encoder.js +4 -5
  310. package/lib-esm/utils/convert/base64/bytesToString.js +1 -1
  311. package/lib-esm/utils/cryptoSecureRandomInt.d.ts +1 -0
  312. package/lib-esm/utils/cryptoSecureRandomInt.js +12 -0
  313. package/lib-esm/utils/deepFreeze.js +6 -28
  314. package/lib-esm/utils/generateRandomString.js +4 -4
  315. package/lib-esm/utils/getClientInfo/getClientInfo.android.js +5 -5
  316. package/lib-esm/utils/getClientInfo/getClientInfo.ios.js +10 -10
  317. package/lib-esm/utils/getClientInfo/getClientInfo.js +15 -15
  318. package/lib-esm/utils/globalHelpers/index.js +3 -3
  319. package/lib-esm/utils/globalHelpers/index.native.js +4 -4
  320. package/lib-esm/utils/isBrowser.js +1 -3
  321. package/lib-esm/utils/isWebWorker.js +2 -2
  322. package/lib-esm/utils/retry/NonRetryableError.js +5 -24
  323. package/lib-esm/utils/retry/constants.js +1 -1
  324. package/lib-esm/utils/retry/isNonRetryableError.js +2 -2
  325. package/lib-esm/utils/retry/jitteredBackoff.js +5 -6
  326. package/lib-esm/utils/retry/jitteredExponentialRetry.js +1 -4
  327. package/lib-esm/utils/retry/retry.js +48 -138
  328. package/lib-esm/utils/sessionListener/SessionListener.js +16 -19
  329. package/lib-esm/utils/sessionListener/SessionListener.native.js +17 -22
  330. package/lib-esm/utils/sessionListener/constants.d.ts +2 -0
  331. package/lib-esm/utils/sessionListener/constants.js +5 -0
  332. package/lib-esm/utils/sessionListener/index.d.ts +1 -0
  333. package/lib-esm/utils/sessionListener/index.js +2 -1
  334. package/lib-esm/utils/urlSafeDecode.js +2 -2
  335. package/lib-esm/utils/urlSafeEncode.js +1 -1
  336. package/package.json +11 -24
  337. package/src/Cache/types/index.ts +4 -4
  338. package/src/Platform/types.ts +1 -1
  339. package/src/Platform/version.ts +1 -1
  340. package/src/Signer/DateUtils.ts +10 -2
  341. package/src/Signer/Signer.ts +9 -2
  342. package/src/clients/middleware/signing/signer/signatureV4/index.ts +0 -1
  343. package/src/index.ts +1 -0
  344. package/src/libraryUtils.ts +7 -1
  345. package/src/parseAWSExports.ts +45 -6
  346. package/src/providers/kinesis/types/kinesis.ts +1 -1
  347. package/src/providers/kinesis-firehose/types/kinesis-firehose.ts +1 -1
  348. package/src/providers/personalize/types/personalize.ts +1 -1
  349. package/src/providers/pinpoint/apis/record.ts +22 -5
  350. package/src/providers/pinpoint/types/pinpoint.ts +3 -1
  351. package/src/singleton/Amplify.ts +9 -52
  352. package/src/singleton/Analytics/types.ts +9 -4
  353. package/src/singleton/Auth/types.ts +2 -2
  354. package/src/singleton/Predictions/types.ts +61 -0
  355. package/src/singleton/types.ts +3 -1
  356. package/src/utils/WordArray.ts +57 -0
  357. package/src/utils/amplifyUuid/index.ts +1 -1
  358. package/src/utils/cryptoSecureRandomInt.ts +14 -0
  359. package/src/utils/sessionListener/constants.ts +6 -0
  360. 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 var signingMiddleware = function (_a) {
47
- var credentials = _a.credentials, region = _a.region, service = _a.service, _b = _a.uriEscapePath, uriEscapePath = _b === void 0 ? true : _b;
48
- var currentSystemClockOffset;
49
- return function (next) {
50
- return function signingMiddleware(request) {
51
- return __awaiter(this, void 0, void 0, function () {
52
- var signRequestOptions, _a, signedRequest, response, dateString;
53
- var _b;
54
- return __generator(this, function (_c) {
55
- switch (_c.label) {
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
- var getDateHeader = function (_a) {
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 var ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm';
5
- export var AMZ_DATE_QUERY_PARAM = 'X-Amz-Date';
6
- export var CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential';
7
- export var EXPIRES_QUERY_PARAM = 'X-Amz-Expires';
8
- export var REGION_SET_PARAM = 'X-Amz-Region-Set';
9
- export var SIGNATURE_QUERY_PARAM = 'X-Amz-Signature';
10
- export var SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders';
11
- export var TOKEN_QUERY_PARAM = 'X-Amz-Security-Token';
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 var AUTH_HEADER = 'authorization';
14
- export var HOST_HEADER = 'host';
15
- export var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();
16
- export var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();
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 var KEY_TYPE_IDENTIFIER = 'aws4_request';
19
- export var SHA256_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256';
20
- export var SIGNATURE_IDENTIFIER = 'AWS4';
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 var EMPTY_HASH = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855';
23
- export var UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD';
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 var presignUrl = function (_a, _b) {
53
- var _c, _d, _e, _f;
54
- var body = _a.body, _g = _a.method, method = _g === void 0 ? 'GET' : _g, url = _a.url;
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
- var presignedUrl = new AmplifyUrl(url);
61
- Object.entries(__assign(__assign((_c = {}, _c[ALGORITHM_QUERY_PARAM] = SHA256_ALGORITHM_IDENTIFIER, _c[CREDENTIAL_QUERY_PARAM] = "".concat(accessKeyId, "/").concat(credentialScope), _c[AMZ_DATE_QUERY_PARAM] = longDate, _c[SIGNED_HEADERS_QUERY_PARAM] = HOST_HEADER, _c), (expiration && (_d = {}, _d[EXPIRES_QUERY_PARAM] = expiration.toString(), _d))), (sessionToken && (_e = {}, _e[TOKEN_QUERY_PARAM] = sessionToken, _e)))).forEach(function (_a) {
62
- var _b = __read(_a, 2), key = _b[0], value = _b[1];
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
- var requestToSign = {
66
- body: body,
67
- headers: (_f = {}, _f[HOST_HEADER] = url.host, _f),
68
- method: 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
- var signature = getSignature(requestToSign, signingValues);
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 var signRequest = function (request, options) {
26
- var signingValues = getSigningValues(options);
27
- var accessKeyId = signingValues.accessKeyId, credentialScope = signingValues.credentialScope, longDate = signingValues.longDate, sessionToken = signingValues.sessionToken;
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
- var headers = __assign({}, request.headers);
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
- var requestToSign = __assign(__assign({}, request), { headers: headers });
24
+ const requestToSign = { ...request, headers };
36
25
  // calculate and add the signature to the request
37
- var signature = getSignature(requestToSign, signingValues);
38
- var credentialEntry = "Credential=".concat(accessKeyId, "/").concat(credentialScope);
39
- var signedHeadersEntry = "SignedHeaders=".concat(getSignedHeaders(headers));
40
- var signatureEntry = "Signature=".concat(signature);
41
- headers[AUTH_HEADER] = "".concat(SHA256_ALGORITHM_IDENTIFIER, " ").concat(credentialEntry, ", ").concat(signedHeadersEntry, ", ").concat(signatureEntry);
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 var getHashedData = function (key, data) {
14
- var sha256 = new Sha256(key !== null && key !== void 0 ? key : undefined);
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
- var hashedData = sha256.digestSync();
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 var getHashedDataAsHex = function (key, data) {
30
- var hashedData = getHashedData(key, data);
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 var getCanonicalHeaders = function (headers) {
31
- return Object.entries(headers)
32
- .map(function (_a) {
33
- var _b;
34
- var _c = __read(_a, 2), key = _c[0], value = _c[1];
35
- return ({
36
- key: key.toLowerCase(),
37
- value: (_b = value === null || value === void 0 ? void 0 : value.trim().replace(/\s+/g, ' ')) !== null && _b !== void 0 ? _b : '',
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('');
@@ -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 var getCanonicalQueryString = function (searchParams) {
31
- return Array.from(searchParams)
32
- .sort(function (_a, _b) {
33
- var _c = __read(_a, 2), keyA = _c[0], valA = _c[1];
34
- var _d = __read(_b, 2), keyB = _d[0], valB = _d[1];
35
- if (keyA === keyB) {
36
- return valA < valB ? -1 : 1;
37
- }
38
- return keyA < keyB ? -1 : 1;
39
- })
40
- .map(function (_a) {
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 var getCanonicalRequest = function (_a, uriEscapePath) {
25
- var body = _a.body, headers = _a.headers, method = _a.method, url = _a.url;
26
- if (uriEscapePath === void 0) { uriEscapePath = true; }
27
- return [
28
- method,
29
- getCanonicalUri(url.pathname, uriEscapePath),
30
- getCanonicalQueryString(url.searchParams),
31
- getCanonicalHeaders(headers),
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 var getCanonicalUri = function (pathname, uriEscapePath) {
15
- if (uriEscapePath === void 0) { uriEscapePath = true; }
16
- return pathname
17
- ? uriEscapePath
18
- ? encodeURIComponent(pathname).replace(/%2F/g, '/')
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 var getCredentialScope = function (date, region, service) { return "".concat(date, "/").concat(region, "/").concat(service, "/").concat(KEY_TYPE_IDENTIFIER); };
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 var getFormattedDates = function (date) {
14
- var longDate = date.toISOString().replace(/[:\-]|\.\d{3}/g, '');
13
+ export const getFormattedDates = (date) => {
14
+ const longDate = date.toISOString().replace(/[:\-]|\.\d{3}/g, '');
15
15
  return {
16
- longDate: 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 var getHashedPayload = function (body) {
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
- var hashedData = getHashedDataAsHex(null, body);
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
- var isSourceData = function (body) {
27
- return typeof body === 'string' || ArrayBuffer.isView(body) || isArrayBuffer(body);
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 var getSignature = function (request, _a) {
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
- var canonicalRequest = getCanonicalRequest(request, uriEscapePath);
19
+ const canonicalRequest = getCanonicalRequest(request, uriEscapePath);
21
20
  // step 2: create a hash of the canonical request
22
- var hashedRequest = getHashedDataAsHex(null, canonicalRequest);
21
+ const hashedRequest = getHashedDataAsHex(null, canonicalRequest);
23
22
  // step 3: create a string to sign
24
- var stringToSign = getStringToSign(longDate, credentialScope, hashedRequest);
23
+ const stringToSign = getStringToSign(longDate, credentialScope, hashedRequest);
25
24
  // step 4: calculate the signature
26
- var signature = getHashedDataAsHex(getSigningKey(secretAccessKey, shortDate, signingRegion, signingService), stringToSign);
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 var getSignedHeaders = function (headers) {
13
- return Object.keys(headers)
14
- .map(function (key) { return key.toLowerCase(); })
15
- .sort()
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 var getSigningKey = function (secretAccessKey, date, region, service) {
18
- var key = "".concat(SIGNATURE_IDENTIFIER).concat(secretAccessKey);
19
- var dateKey = getHashedData(key, date);
20
- var regionKey = getHashedData(dateKey, region);
21
- var serviceKey = getHashedData(regionKey, service);
22
- var signingKey = getHashedData(serviceKey, KEY_TYPE_IDENTIFIER);
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 var getSigningValues = function (_a) {
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
- var accessKeyId = credentials.accessKeyId, secretAccessKey = credentials.secretAccessKey, sessionToken = credentials.sessionToken;
15
+ const { accessKeyId, secretAccessKey, sessionToken } = credentials;
17
16
  // get formatted dates for signing
18
- var _d = getFormattedDates(signingDate), longDate = _d.longDate, shortDate = _d.shortDate;
17
+ const { longDate, shortDate } = getFormattedDates(signingDate);
19
18
  // copy header and set signing properties
20
- var credentialScope = getCredentialScope(shortDate, signingRegion, signingService);
19
+ const credentialScope = getCredentialScope(shortDate, signingRegion, signingService);
21
20
  return {
22
- accessKeyId: accessKeyId,
23
- credentialScope: credentialScope,
24
- longDate: longDate,
25
- secretAccessKey: secretAccessKey,
26
- sessionToken: sessionToken,
27
- shortDate: shortDate,
28
- signingRegion: signingRegion,
29
- signingService: signingService,
30
- uriEscapePath: uriEscapePath,
21
+ accessKeyId,
22
+ credentialScope,
23
+ longDate,
24
+ secretAccessKey,
25
+ sessionToken,
26
+ shortDate,
27
+ signingRegion,
28
+ signingService,
29
+ uriEscapePath,
31
30
  };
32
31
  };