@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.
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,50 +1,14 @@
1
1
  "use strict";
2
2
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  // SPDX-License-Identifier: Apache-2.0
4
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
5
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6
- return new (P || (P = Promise))(function (resolve, reject) {
7
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
8
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
9
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
10
- step((generator = generator.apply(thisArg, _arguments || [])).next());
11
- });
12
- };
13
- var __generator = (this && this.__generator) || function (thisArg, body) {
14
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
15
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
16
- function verb(n) { return function (v) { return step([n, v]); }; }
17
- function step(op) {
18
- if (f) throw new TypeError("Generator is already executing.");
19
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
20
- 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;
21
- if (y = 0, t) op = [op[0] & 2, t.value];
22
- switch (op[0]) {
23
- case 0: case 1: t = op; break;
24
- case 4: _.label++; return { value: op[1], done: false };
25
- case 5: _.label++; y = op[1]; op = [0]; continue;
26
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
27
- default:
28
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
29
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
30
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
31
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
32
- if (t[2]) _.ops.pop();
33
- _.trys.pop(); continue;
34
- }
35
- op = body.call(thisArg, _);
36
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
37
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
38
- }
39
- };
40
4
  Object.defineProperty(exports, "__esModule", { value: true });
41
5
  exports.ServiceWorkerClass = void 0;
42
- var Logger_1 = require("../Logger");
43
- var utils_1 = require("../utils");
44
- var errors_1 = require("../errors");
45
- var errorHelpers_1 = require("./errorHelpers");
46
- var pinpoint_1 = require("../providers/pinpoint");
47
- var singleton_1 = require("../singleton");
6
+ const Logger_1 = require("../Logger");
7
+ const utils_1 = require("../utils");
8
+ const errors_1 = require("../errors");
9
+ const errorHelpers_1 = require("./errorHelpers");
10
+ const pinpoint_1 = require("../providers/pinpoint");
11
+ const singleton_1 = require("../singleton");
48
12
  /**
49
13
  * Provides a means to registering a service worker in the browser
50
14
  * and communicating with it via postMessage events.
@@ -57,22 +21,18 @@ var singleton_1 = require("../singleton");
57
21
  * and attempt to dispatch messages on state change and record analytics
58
22
  * events based on the service worker lifecycle.
59
23
  */
60
- var ServiceWorkerClass = /** @class */ (function () {
61
- function ServiceWorkerClass() {
24
+ class ServiceWorkerClass {
25
+ constructor() {
62
26
  // The AWS Amplify logger
63
27
  this._logger = new Logger_1.ConsoleLogger('ServiceWorker');
64
28
  }
65
- Object.defineProperty(ServiceWorkerClass.prototype, "serviceWorker", {
66
- /**
67
- * Get the currently active service worker
68
- */
69
- get: function () {
70
- (0, errorHelpers_1.assert)(this._serviceWorker !== undefined, errorHelpers_1.ServiceWorkerErrorCode.UndefinedInstance);
71
- return this._serviceWorker;
72
- },
73
- enumerable: false,
74
- configurable: true
75
- });
29
+ /**
30
+ * Get the currently active service worker
31
+ */
32
+ get serviceWorker() {
33
+ (0, errorHelpers_1.assert)(this._serviceWorker !== undefined, errorHelpers_1.ServiceWorkerErrorCode.UndefinedInstance);
34
+ return this._serviceWorker;
35
+ }
76
36
  /**
77
37
  * Register the service-worker.js file in the browser
78
38
  * Make sure the service-worker.js is part of the build
@@ -85,35 +45,32 @@ var ServiceWorkerClass = /** @class */ (function () {
85
45
  * - resolve(ServiceWorkerRegistration)
86
46
  * - reject(Error)
87
47
  **/
88
- ServiceWorkerClass.prototype.register = function (filePath, scope) {
89
- var _this = this;
90
- if (filePath === void 0) { filePath = '/service-worker.js'; }
91
- if (scope === void 0) { scope = '/'; }
92
- this._logger.debug("registering ".concat(filePath));
93
- this._logger.debug("registering service worker with scope ".concat(scope));
94
- return new Promise(function (resolve, reject) {
48
+ register(filePath = '/service-worker.js', scope = '/') {
49
+ this._logger.debug(`registering ${filePath}`);
50
+ this._logger.debug(`registering service worker with scope ${scope}`);
51
+ return new Promise((resolve, reject) => {
95
52
  if (navigator && 'serviceWorker' in navigator) {
96
53
  navigator.serviceWorker
97
54
  .register(filePath, {
98
- scope: scope,
55
+ scope,
99
56
  })
100
- .then(function (registration) {
57
+ .then(registration => {
101
58
  if (registration.installing) {
102
- _this._serviceWorker = registration.installing;
59
+ this._serviceWorker = registration.installing;
103
60
  }
104
61
  else if (registration.waiting) {
105
- _this._serviceWorker = registration.waiting;
62
+ this._serviceWorker = registration.waiting;
106
63
  }
107
64
  else if (registration.active) {
108
- _this._serviceWorker = registration.active;
65
+ this._serviceWorker = registration.active;
109
66
  }
110
- _this._registration = registration;
111
- _this._setupListeners();
112
- _this._logger.debug("Service Worker Registration Success: ".concat(registration));
67
+ this._registration = registration;
68
+ this._setupListeners();
69
+ this._logger.debug(`Service Worker Registration Success: ${registration}`);
113
70
  return resolve(registration);
114
71
  })
115
- .catch(function (error) {
116
- _this._logger.debug("Service Worker Registration Failed ".concat(error));
72
+ .catch(error => {
73
+ this._logger.debug(`Service Worker Registration Failed ${error}`);
117
74
  return reject(new errors_1.AmplifyError({
118
75
  name: errorHelpers_1.ServiceWorkerErrorCode.Unavailable,
119
76
  message: 'Service Worker not available',
@@ -128,7 +85,7 @@ var ServiceWorkerClass = /** @class */ (function () {
128
85
  }));
129
86
  }
130
87
  });
131
- };
88
+ }
132
89
  /**
133
90
  * Enable web push notifications. If not subscribed, a new subscription will
134
91
  * be created and registered.
@@ -140,32 +97,31 @@ var ServiceWorkerClass = /** @class */ (function () {
140
97
  * - resolve(PushSubscription)
141
98
  * - reject(Error)
142
99
  */
143
- ServiceWorkerClass.prototype.enablePush = function (publicKey) {
144
- var _this = this;
100
+ enablePush(publicKey) {
145
101
  (0, errorHelpers_1.assert)(this._registration !== undefined, errorHelpers_1.ServiceWorkerErrorCode.UndefinedRegistration);
146
102
  this._publicKey = publicKey;
147
- return new Promise(function (resolve, reject) {
103
+ return new Promise((resolve, reject) => {
148
104
  if ((0, utils_1.isBrowser)()) {
149
- (0, errorHelpers_1.assert)(_this._registration !== undefined, errorHelpers_1.ServiceWorkerErrorCode.UndefinedRegistration);
150
- _this._registration.pushManager.getSubscription().then(function (subscription) {
105
+ (0, errorHelpers_1.assert)(this._registration !== undefined, errorHelpers_1.ServiceWorkerErrorCode.UndefinedRegistration);
106
+ this._registration.pushManager.getSubscription().then(subscription => {
151
107
  if (subscription) {
152
- _this._subscription = subscription;
153
- _this._logger.debug("User is subscribed to push: ".concat(JSON.stringify(subscription)));
108
+ this._subscription = subscription;
109
+ this._logger.debug(`User is subscribed to push: ${JSON.stringify(subscription)}`);
154
110
  resolve(subscription);
155
111
  }
156
112
  else {
157
- _this._logger.debug("User is NOT subscribed to push");
158
- return _this._registration.pushManager.subscribe({
113
+ this._logger.debug(`User is NOT subscribed to push`);
114
+ return this._registration.pushManager.subscribe({
159
115
  userVisibleOnly: true,
160
- applicationServerKey: _this._urlB64ToUint8Array(publicKey),
116
+ applicationServerKey: this._urlB64ToUint8Array(publicKey),
161
117
  })
162
- .then(function (subscription) {
163
- _this._subscription = subscription;
164
- _this._logger.debug("User subscribed: ".concat(JSON.stringify(subscription)));
118
+ .then(subscription => {
119
+ this._subscription = subscription;
120
+ this._logger.debug(`User subscribed: ${JSON.stringify(subscription)}`);
165
121
  resolve(subscription);
166
122
  })
167
- .catch(function (error) {
168
- _this._logger.error(error);
123
+ .catch(error => {
124
+ this._logger.error(error);
169
125
  });
170
126
  }
171
127
  });
@@ -177,23 +133,23 @@ var ServiceWorkerClass = /** @class */ (function () {
177
133
  }));
178
134
  }
179
135
  });
180
- };
136
+ }
181
137
  /**
182
138
  * Convert a base64 encoded string to a Uint8 array for the push server key
183
139
  * @param base64String
184
140
  */
185
- ServiceWorkerClass.prototype._urlB64ToUint8Array = function (base64String) {
186
- var padding = '='.repeat((4 - (base64String.length % 4)) % 4);
187
- var base64 = (base64String + padding)
141
+ _urlB64ToUint8Array(base64String) {
142
+ const padding = '='.repeat((4 - (base64String.length % 4)) % 4);
143
+ const base64 = (base64String + padding)
188
144
  .replace(/\-/g, '+')
189
145
  .replace(/_/g, '/');
190
- var rawData = window.atob(base64);
191
- var outputArray = new Uint8Array(rawData.length);
192
- for (var i = 0; i < rawData.length; ++i) {
146
+ const rawData = window.atob(base64);
147
+ const outputArray = new Uint8Array(rawData.length);
148
+ for (let i = 0; i < rawData.length; ++i) {
193
149
  outputArray[i] = rawData.charCodeAt(i);
194
150
  }
195
151
  return outputArray;
196
- };
152
+ }
197
153
  /**
198
154
  * Send a message to the service worker. The service worker needs
199
155
  * to implement `self.addEventListener('message') to handle the
@@ -202,52 +158,40 @@ var ServiceWorkerClass = /** @class */ (function () {
202
158
  * - see: https://developer.mozilla.org/en-US/docs/Web/API/Transferable
203
159
  * @returns {Promise}
204
160
  **/
205
- ServiceWorkerClass.prototype.send = function (message) {
161
+ send(message) {
206
162
  if (this._serviceWorker) {
207
163
  this._serviceWorker.postMessage(typeof message === 'object' ? JSON.stringify(message) : message);
208
164
  }
209
- };
165
+ }
210
166
  /**
211
167
  * Listen for service worker state change and message events
212
168
  * https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/state
213
169
  **/
214
- ServiceWorkerClass.prototype._setupListeners = function () {
215
- var _this = this;
216
- this.serviceWorker.addEventListener('statechange', function (event) { return __awaiter(_this, void 0, void 0, function () {
217
- var currentState, _a, appId, region, credentials;
218
- var _b, _c;
219
- return __generator(this, function (_d) {
220
- switch (_d.label) {
221
- case 0:
222
- currentState = this.serviceWorker.state;
223
- this._logger.debug("ServiceWorker statechange: ".concat(currentState));
224
- _a = (_c = (_b = singleton_1.Amplify.getConfig().Analytics) === null || _b === void 0 ? void 0 : _b.Pinpoint) !== null && _c !== void 0 ? _c : {}, appId = _a.appId, region = _a.region;
225
- return [4 /*yield*/, (0, singleton_1.fetchAuthSession)()];
226
- case 1:
227
- credentials = (_d.sent()).credentials;
228
- if (appId && region && credentials) {
229
- // Pinpoint is configured, record an event
230
- (0, pinpoint_1.record)({
231
- appId: appId,
232
- region: region,
233
- category: 'Core',
234
- credentials: credentials,
235
- event: {
236
- name: 'ServiceWorker',
237
- attributes: {
238
- state: currentState,
239
- },
240
- },
241
- });
242
- }
243
- return [2 /*return*/];
244
- }
245
- });
246
- }); });
247
- this.serviceWorker.addEventListener('message', function (event) {
248
- _this._logger.debug("ServiceWorker message event: ".concat(event));
170
+ _setupListeners() {
171
+ this.serviceWorker.addEventListener('statechange', async (event) => {
172
+ const currentState = this.serviceWorker.state;
173
+ this._logger.debug(`ServiceWorker statechange: ${currentState}`);
174
+ const { appId, region } = singleton_1.Amplify.getConfig().Analytics?.Pinpoint ?? {};
175
+ const { credentials } = await (0, singleton_1.fetchAuthSession)();
176
+ if (appId && region && credentials) {
177
+ // Pinpoint is configured, record an event
178
+ (0, pinpoint_1.record)({
179
+ appId,
180
+ region,
181
+ category: 'Core',
182
+ credentials,
183
+ event: {
184
+ name: 'ServiceWorker',
185
+ attributes: {
186
+ state: currentState,
187
+ },
188
+ },
189
+ });
190
+ }
191
+ });
192
+ this.serviceWorker.addEventListener('message', event => {
193
+ this._logger.debug(`ServiceWorker message event: ${event}`);
249
194
  });
250
- };
251
- return ServiceWorkerClass;
252
- }());
195
+ }
196
+ }
253
197
  exports.ServiceWorkerClass = ServiceWorkerClass;
@@ -1,25 +1,24 @@
1
1
  "use strict";
2
2
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  // SPDX-License-Identifier: Apache-2.0
4
- var _a;
5
4
  Object.defineProperty(exports, "__esModule", { value: true });
6
5
  exports.assert = exports.ServiceWorkerErrorCode = void 0;
7
- var errors_1 = require("../errors");
6
+ const errors_1 = require("../errors");
8
7
  var ServiceWorkerErrorCode;
9
8
  (function (ServiceWorkerErrorCode) {
10
9
  ServiceWorkerErrorCode["UndefinedInstance"] = "UndefinedInstance";
11
10
  ServiceWorkerErrorCode["UndefinedRegistration"] = "UndefinedRegistration";
12
11
  ServiceWorkerErrorCode["Unavailable"] = "Unavailable";
13
12
  })(ServiceWorkerErrorCode = exports.ServiceWorkerErrorCode || (exports.ServiceWorkerErrorCode = {}));
14
- var serviceWorkerErrorMap = (_a = {},
15
- _a[ServiceWorkerErrorCode.UndefinedInstance] = {
13
+ const serviceWorkerErrorMap = {
14
+ [ServiceWorkerErrorCode.UndefinedInstance]: {
16
15
  message: 'Service Worker instance is undefined.',
17
16
  },
18
- _a[ServiceWorkerErrorCode.UndefinedRegistration] = {
17
+ [ServiceWorkerErrorCode.UndefinedRegistration]: {
19
18
  message: 'Service Worker registration is undefined.',
20
19
  },
21
- _a[ServiceWorkerErrorCode.Unavailable] = {
20
+ [ServiceWorkerErrorCode.Unavailable]: {
22
21
  message: 'Service Worker not available.',
23
22
  },
24
- _a);
23
+ };
25
24
  exports.assert = (0, errors_1.createAssertionFunction)(serviceWorkerErrorMap);
@@ -14,5 +14,14 @@ type DateUtils = {
14
14
  isClockSkewError: (error: any) => boolean;
15
15
  setClockOffset: (offset: number) => void;
16
16
  };
17
+ /**
18
+ * This utility is intended to be deprecated and replaced by `signRequest` and `presignUrl` functions from
19
+ * `clients/middleware/signing/signer/signatureV4`.
20
+ *
21
+ * TODO: refactor the logics here into `signRequest` and `presignUrl` functions and remove this class.
22
+ *
23
+ * @internal
24
+ * @deprecated
25
+ */
17
26
  export declare const DateUtils: DateUtils;
18
27
  export {};
@@ -7,32 +7,24 @@
7
7
  *
8
8
  * @see https://github.com/aws/aws-sdk-js/blob/6edf586dcc1de7fe8fbfbbd9a0d2b1847921e6e1/lib/util.js#L262
9
9
  */
10
- var __read = (this && this.__read) || function (o, n) {
11
- var m = typeof Symbol === "function" && o[Symbol.iterator];
12
- if (!m) return o;
13
- var i = m.call(o), r, ar = [], e;
14
- try {
15
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
16
- }
17
- catch (error) { e = { error: error }; }
18
- finally {
19
- try {
20
- if (r && !r.done && (m = i["return"])) m.call(i);
21
- }
22
- finally { if (e) throw e.error; }
23
- }
24
- return ar;
25
- };
26
10
  Object.defineProperty(exports, "__esModule", { value: true });
27
11
  exports.DateUtils = void 0;
28
- // Comment - TODO: remove
29
- var FIVE_MINUTES_IN_MS = 1000 * 60 * 5;
12
+ const FIVE_MINUTES_IN_MS = 1000 * 60 * 5;
13
+ /**
14
+ * This utility is intended to be deprecated and replaced by `signRequest` and `presignUrl` functions from
15
+ * `clients/middleware/signing/signer/signatureV4`.
16
+ *
17
+ * TODO: refactor the logics here into `signRequest` and `presignUrl` functions and remove this class.
18
+ *
19
+ * @internal
20
+ * @deprecated
21
+ */
30
22
  exports.DateUtils = {
31
23
  /**
32
24
  * Milliseconds to offset the date to compensate for clock skew between device & services
33
25
  */
34
26
  clockOffset: 0,
35
- getDateWithClockOffset: function () {
27
+ getDateWithClockOffset() {
36
28
  if (exports.DateUtils.clockOffset) {
37
29
  return new Date(new Date().getTime() + exports.DateUtils.clockOffset);
38
30
  }
@@ -43,33 +35,32 @@ exports.DateUtils = {
43
35
  /**
44
36
  * @returns {number} Clock offset in milliseconds
45
37
  */
46
- getClockOffset: function () {
38
+ getClockOffset() {
47
39
  return exports.DateUtils.clockOffset;
48
40
  },
49
- getHeaderStringFromDate: function (date) {
50
- if (date === void 0) { date = exports.DateUtils.getDateWithClockOffset(); }
41
+ getHeaderStringFromDate(date = exports.DateUtils.getDateWithClockOffset()) {
51
42
  return date.toISOString().replace(/[:\-]|\.\d{3}/g, '');
52
43
  },
53
- getDateFromHeaderString: function (header) {
54
- var _a = __read(header.match(/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2}).+/), 7), year = _a[1], month = _a[2], day = _a[3], hour = _a[4], minute = _a[5], second = _a[6];
44
+ getDateFromHeaderString(header) {
45
+ const [, year, month, day, hour, minute, second] = header.match(/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2}).+/);
55
46
  return new Date(Date.UTC(Number(year), Number(month) - 1, Number(day), Number(hour), Number(minute), Number(second)));
56
47
  },
57
- isClockSkewed: function (serverDate) {
48
+ isClockSkewed(serverDate) {
58
49
  // API gateway permits client calls that are off by no more than ±5 minutes
59
50
  return (Math.abs(serverDate.getTime() - exports.DateUtils.getDateWithClockOffset().getTime()) >= FIVE_MINUTES_IN_MS);
60
51
  },
61
- isClockSkewError: function (error) {
52
+ isClockSkewError(error) {
62
53
  if (!error.response || !error.response.headers) {
63
54
  return false;
64
55
  }
65
- var headers = error.response.headers;
56
+ const { headers } = error.response;
66
57
  return Boolean(['BadRequestException', 'InvalidSignatureException'].includes(headers['x-amzn-errortype']) &&
67
58
  (headers.date || headers.Date));
68
59
  },
69
60
  /**
70
61
  * @param {number} offset Clock offset in milliseconds
71
62
  */
72
- setClockOffset: function (offset) {
63
+ setClockOffset(offset) {
73
64
  exports.DateUtils.clockOffset = offset;
74
65
  },
75
66
  };
@@ -1,3 +1,12 @@
1
+ /**
2
+ * This class is intended to be deprecated and replaced by `signRequest` and `presignUrl` functions from
3
+ * `clients/middleware/signing/signer/signatureV4`.
4
+ *
5
+ * TODO: refactor the logics here into `signRequest` and `presignUrl` functions and remove this class.
6
+ *
7
+ * @internal
8
+ * @deprecated
9
+ */
1
10
  export declare class Signer {
2
11
  /**
3
12
  * Sign a HTTP request, add 'Authorization' header to request param
@@ -1,28 +1,24 @@
1
1
  "use strict";
2
2
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  // SPDX-License-Identifier: Apache-2.0
4
- var __assign = (this && this.__assign) || function () {
5
- __assign = Object.assign || function(t) {
6
- for (var s, i = 1, n = arguments.length; i < n; i++) {
7
- s = arguments[i];
8
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9
- t[p] = s[p];
10
- }
11
- return t;
12
- };
13
- return __assign.apply(this, arguments);
14
- };
15
4
  Object.defineProperty(exports, "__esModule", { value: true });
16
5
  exports.Signer = void 0;
17
- var DateUtils_1 = require("./DateUtils");
18
- var signatureV4_1 = require("../clients/middleware/signing/signer/signatureV4");
19
- var amplifyUrl_1 = require("../utils/amplifyUrl");
20
- var IOT_SERVICE_NAME = 'iotdevicegateway';
6
+ const DateUtils_1 = require("./DateUtils");
7
+ const signatureV4_1 = require("../clients/middleware/signing/signer/signatureV4");
8
+ const amplifyUrl_1 = require("../utils/amplifyUrl");
9
+ const IOT_SERVICE_NAME = 'iotdevicegateway';
21
10
  // Best practice regex to parse the service and region from an AWS endpoint
22
- var AWS_ENDPOINT_REGEX = /([^\.]+)\.(?:([^\.]*)\.)?amazonaws\.com(.cn)?$/;
23
- var Signer = /** @class */ (function () {
24
- function Signer() {
25
- }
11
+ const AWS_ENDPOINT_REGEX = /([^\.]+)\.(?:([^\.]*)\.)?amazonaws\.com(.cn)?$/;
12
+ /**
13
+ * This class is intended to be deprecated and replaced by `signRequest` and `presignUrl` functions from
14
+ * `clients/middleware/signing/signer/signatureV4`.
15
+ *
16
+ * TODO: refactor the logics here into `signRequest` and `presignUrl` functions and remove this class.
17
+ *
18
+ * @internal
19
+ * @deprecated
20
+ */
21
+ class Signer {
26
22
  /**
27
23
  * Sign a HTTP request, add 'Authorization' header to request param
28
24
  * @method sign
@@ -59,14 +55,18 @@ var Signer = /** @class */ (function () {
59
55
  *
60
56
  * @returns {object} Signed HTTP request
61
57
  */
62
- Signer.sign = function (request, accessInfo, serviceInfo) {
58
+ static sign(request, accessInfo, serviceInfo) {
63
59
  request.headers = request.headers || {};
64
60
  if (request.body && !request.data) {
65
61
  throw new Error('The attribute "body" was found on the request object. Please use the attribute "data" instead.');
66
62
  }
67
- var requestToSign = __assign(__assign({}, request), { body: request.data, url: new amplifyUrl_1.AmplifyUrl(request.url) });
68
- var options = getOptions(requestToSign, accessInfo, serviceInfo);
69
- var signedRequest = (0, signatureV4_1.signRequest)(requestToSign, options);
63
+ const requestToSign = {
64
+ ...request,
65
+ body: request.data,
66
+ url: new amplifyUrl_1.AmplifyUrl(request.url),
67
+ };
68
+ const options = getOptions(requestToSign, accessInfo, serviceInfo);
69
+ const signedRequest = (0, signatureV4_1.signRequest)(requestToSign, options);
70
70
  // Prior to using `signRequest`, Signer accepted urls as strings and outputted urls as string. Coerce the property
71
71
  // back to a string so as not to disrupt consumers of Signer.
72
72
  signedRequest.url = signedRequest.url.toString();
@@ -78,42 +78,49 @@ var Signer = /** @class */ (function () {
78
78
  delete signedRequest.headers.authorization;
79
79
  delete signedRequest.headers['x-amz-security-token'];
80
80
  return signedRequest;
81
- };
82
- Signer.signUrl = function (urlOrRequest, accessInfo, serviceInfo, expiration) {
83
- var urlToSign = typeof urlOrRequest === 'object' ? urlOrRequest.url : urlOrRequest;
84
- var method = typeof urlOrRequest === 'object' ? urlOrRequest.method : 'GET';
85
- var body = typeof urlOrRequest === 'object' ? urlOrRequest.body : undefined;
86
- var presignable = {
87
- body: body,
88
- method: method,
81
+ }
82
+ static signUrl(urlOrRequest, accessInfo, serviceInfo, expiration) {
83
+ const urlToSign = typeof urlOrRequest === 'object' ? urlOrRequest.url : urlOrRequest;
84
+ const method = typeof urlOrRequest === 'object' ? urlOrRequest.method : 'GET';
85
+ const body = typeof urlOrRequest === 'object' ? urlOrRequest.body : undefined;
86
+ const presignable = {
87
+ body,
88
+ method,
89
89
  url: new amplifyUrl_1.AmplifyUrl(urlToSign),
90
90
  };
91
- var options = getOptions(presignable, accessInfo, serviceInfo, expiration);
92
- var signedUrl = (0, signatureV4_1.presignUrl)(presignable, options);
91
+ const options = getOptions(presignable, accessInfo, serviceInfo, expiration);
92
+ const signedUrl = (0, signatureV4_1.presignUrl)(presignable, options);
93
93
  if (accessInfo.session_token &&
94
94
  !sessionTokenRequiredInSigning(options.signingService)) {
95
95
  signedUrl.searchParams.append(signatureV4_1.TOKEN_QUERY_PARAM, accessInfo.session_token);
96
96
  }
97
97
  return signedUrl.toString();
98
- };
99
- return Signer;
100
- }());
98
+ }
99
+ }
101
100
  exports.Signer = Signer;
102
- var getOptions = function (request, accessInfo, serviceInfo, expiration) {
103
- var _a = accessInfo !== null && accessInfo !== void 0 ? accessInfo : {}, access_key = _a.access_key, secret_key = _a.secret_key, session_token = _a.session_token;
104
- var _b = parseServiceInfo(request.url), urlRegion = _b.region, urlService = _b.service;
105
- var _c = serviceInfo !== null && serviceInfo !== void 0 ? serviceInfo : {}, _d = _c.region, region = _d === void 0 ? urlRegion : _d, _e = _c.service, service = _e === void 0 ? urlService : _e;
106
- var credentials = __assign({ accessKeyId: access_key, secretAccessKey: secret_key }, (sessionTokenRequiredInSigning(service)
107
- ? { sessionToken: session_token }
108
- : {}));
109
- return __assign({ credentials: credentials, signingDate: DateUtils_1.DateUtils.getDateWithClockOffset(), signingRegion: region, signingService: service }, (expiration && { expiration: expiration }));
101
+ const getOptions = (request, accessInfo, serviceInfo, expiration) => {
102
+ const { access_key, secret_key, session_token } = accessInfo ?? {};
103
+ const { region: urlRegion, service: urlService } = parseServiceInfo(request.url);
104
+ const { region = urlRegion, service = urlService } = serviceInfo ?? {};
105
+ const credentials = {
106
+ accessKeyId: access_key,
107
+ secretAccessKey: secret_key,
108
+ ...(sessionTokenRequiredInSigning(service)
109
+ ? { sessionToken: session_token }
110
+ : {}),
111
+ };
112
+ return {
113
+ credentials,
114
+ signingDate: DateUtils_1.DateUtils.getDateWithClockOffset(),
115
+ signingRegion: region,
116
+ signingService: service,
117
+ ...(expiration && { expiration }),
118
+ };
110
119
  };
111
- // TODO: V6 investigate whether add to custom clients' general signer implementation.
112
- var parseServiceInfo = function (url) {
113
- var _a;
114
- var host = url.host;
115
- var matched = (_a = host.match(AWS_ENDPOINT_REGEX)) !== null && _a !== void 0 ? _a : [];
116
- var parsed = matched.slice(1, 3);
120
+ const parseServiceInfo = (url) => {
121
+ const host = url.host;
122
+ const matched = host.match(AWS_ENDPOINT_REGEX) ?? [];
123
+ let parsed = matched.slice(1, 3);
117
124
  if (parsed[1] === 'es') {
118
125
  // Elastic Search
119
126
  parsed = parsed.reverse();
@@ -125,7 +132,4 @@ var parseServiceInfo = function (url) {
125
132
  };
126
133
  // IoT service does not allow the session token in the canonical request
127
134
  // https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html
128
- // TODO: V6 investigate whether add to custom clients' general signer implementation.
129
- var sessionTokenRequiredInSigning = function (service) {
130
- return service !== IOT_SERVICE_NAME;
131
- };
135
+ const sessionTokenRequiredInSigning = (service) => service !== IOT_SERVICE_NAME;