@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,47 +1,11 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __read = (this && this.__read) || function (o, n) {
14
- var m = typeof Symbol === "function" && o[Symbol.iterator];
15
- if (!m) return o;
16
- var i = m.call(o), r, ar = [], e;
17
- try {
18
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
- }
20
- catch (error) { e = { error: error }; }
21
- finally {
22
- try {
23
- if (r && !r.done && (m = i["return"])) m.call(i);
24
- }
25
- finally { if (e) throw e.error; }
26
- }
27
- return ar;
28
- };
29
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
30
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
31
- if (ar || !(i in from)) {
32
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
33
- ar[i] = from[i];
34
- }
35
- }
36
- return to.concat(ar || Array.prototype.slice.call(from));
37
- };
38
2
  Object.defineProperty(exports, "__esModule", { value: true });
39
3
  exports.parseAWSExports = void 0;
40
4
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
41
5
  // SPDX-License-Identifier: Apache-2.0
42
- var Logger_1 = require("./Logger");
43
- var logger = new Logger_1.ConsoleLogger('parseAWSExports');
44
- var authTypeMapping = {
6
+ const Logger_1 = require("./Logger");
7
+ const logger = new Logger_1.ConsoleLogger('parseAWSExports');
8
+ const authTypeMapping = {
45
9
  API_KEY: 'apiKey',
46
10
  AWS_IAM: 'iam',
47
11
  AMAZON_COGNITO_USER_POOLS: 'userPool',
@@ -57,11 +21,9 @@ var authTypeMapping = {
57
21
  *
58
22
  * @returns A {@link ResourcesConfig} object.
59
23
  */
60
- var parseAWSExports = function (config) {
61
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
62
- if (config === void 0) { config = {}; }
63
- var aws_appsync_apiKey = config.aws_appsync_apiKey, aws_appsync_authenticationType = config.aws_appsync_authenticationType, aws_appsync_graphqlEndpoint = config.aws_appsync_graphqlEndpoint, aws_appsync_region = config.aws_appsync_region, aws_bots = config.aws_bots, aws_bots_config = config.aws_bots_config, aws_cognito_identity_pool_id = config.aws_cognito_identity_pool_id, aws_cognito_sign_up_verification_method = config.aws_cognito_sign_up_verification_method, aws_cognito_mfa_configuration = config.aws_cognito_mfa_configuration, aws_cognito_mfa_types = config.aws_cognito_mfa_types, aws_cognito_password_protection_settings = config.aws_cognito_password_protection_settings, aws_cognito_verification_mechanisms = config.aws_cognito_verification_mechanisms, aws_cognito_signup_attributes = config.aws_cognito_signup_attributes, aws_cognito_username_attributes = config.aws_cognito_username_attributes, aws_mandatory_sign_in = config.aws_mandatory_sign_in, aws_mobile_analytics_app_id = config.aws_mobile_analytics_app_id, aws_mobile_analytics_app_region = config.aws_mobile_analytics_app_region, aws_user_files_s3_bucket = config.aws_user_files_s3_bucket, aws_user_files_s3_bucket_region = config.aws_user_files_s3_bucket_region, aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing = config.aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing, aws_user_pools_id = config.aws_user_pools_id, aws_user_pools_web_client_id = config.aws_user_pools_web_client_id, geo = config.geo, oauth = config.oauth, aws_cloud_logic_custom = config.aws_cloud_logic_custom, Notifications = config.Notifications, modelIntrospection = config.modelIntrospection;
64
- var amplifyConfig = {};
24
+ const parseAWSExports = (config = {}) => {
25
+ const { aws_appsync_apiKey, aws_appsync_authenticationType, aws_appsync_graphqlEndpoint, aws_appsync_region, aws_bots, aws_bots_config, aws_cognito_identity_pool_id, aws_cognito_sign_up_verification_method, aws_cognito_mfa_configuration, aws_cognito_mfa_types, aws_cognito_password_protection_settings, aws_cognito_verification_mechanisms, aws_cognito_signup_attributes, aws_cognito_social_providers, aws_cognito_username_attributes, aws_mandatory_sign_in, aws_mobile_analytics_app_id, aws_mobile_analytics_app_region, aws_user_files_s3_bucket, aws_user_files_s3_bucket_region, aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing, aws_user_pools_id, aws_user_pools_web_client_id, geo, oauth, predictions, aws_cloud_logic_custom, Notifications, modelIntrospection, } = config;
26
+ const amplifyConfig = {};
65
27
  // Analytics
66
28
  if (aws_mobile_analytics_app_id) {
67
29
  amplifyConfig.Analytics = {
@@ -72,24 +34,24 @@ var parseAWSExports = function (config) {
72
34
  };
73
35
  }
74
36
  // Notifications
75
- var _o = Notifications !== null && Notifications !== void 0 ? Notifications : {}, InAppMessaging = _o.InAppMessaging, Push = _o.Push;
76
- if ((InAppMessaging === null || InAppMessaging === void 0 ? void 0 : InAppMessaging.AWSPinpoint) || (Push === null || Push === void 0 ? void 0 : Push.AWSPinpoint)) {
37
+ const { InAppMessaging, Push } = Notifications ?? {};
38
+ if (InAppMessaging?.AWSPinpoint || Push?.AWSPinpoint) {
77
39
  amplifyConfig.Notifications = {};
78
- if (InAppMessaging === null || InAppMessaging === void 0 ? void 0 : InAppMessaging.AWSPinpoint) {
79
- var _p = InAppMessaging.AWSPinpoint, appId = _p.appId, region = _p.region;
40
+ if (InAppMessaging?.AWSPinpoint) {
41
+ const { appId, region } = InAppMessaging.AWSPinpoint;
80
42
  amplifyConfig.Notifications.InAppMessaging = {
81
43
  Pinpoint: {
82
- appId: appId,
83
- region: region,
44
+ appId,
45
+ region,
84
46
  },
85
47
  };
86
48
  }
87
- if (Push === null || Push === void 0 ? void 0 : Push.AWSPinpoint) {
88
- var _q = Push.AWSPinpoint, appId = _q.appId, region = _q.region;
49
+ if (Push?.AWSPinpoint) {
50
+ const { appId, region } = Push.AWSPinpoint;
89
51
  amplifyConfig.Notifications.PushNotification = {
90
52
  Pinpoint: {
91
- appId: appId,
92
- region: region,
53
+ appId,
54
+ region,
93
55
  },
94
56
  };
95
57
  }
@@ -97,21 +59,21 @@ var parseAWSExports = function (config) {
97
59
  // Interactions
98
60
  if (Array.isArray(aws_bots_config)) {
99
61
  amplifyConfig.Interactions = {
100
- LexV1: Object.fromEntries(aws_bots_config.map(function (bot) { return [bot.name, bot]; })),
62
+ LexV1: Object.fromEntries(aws_bots_config.map(bot => [bot.name, bot])),
101
63
  };
102
64
  }
103
65
  // API
104
66
  if (aws_appsync_graphqlEndpoint) {
105
- var defaultAuthMode = authTypeMapping[aws_appsync_authenticationType];
67
+ const defaultAuthMode = authTypeMapping[aws_appsync_authenticationType];
106
68
  if (!defaultAuthMode) {
107
- logger.debug("Invalid authentication type ".concat(aws_appsync_authenticationType, ". Falling back to IAM."));
69
+ logger.debug(`Invalid authentication type ${aws_appsync_authenticationType}. Falling back to IAM.`);
108
70
  }
109
71
  amplifyConfig.API = {
110
72
  GraphQL: {
111
73
  endpoint: aws_appsync_graphqlEndpoint,
112
74
  apiKey: aws_appsync_apiKey,
113
75
  region: aws_appsync_region,
114
- defaultAuthMode: defaultAuthMode !== null && defaultAuthMode !== void 0 ? defaultAuthMode : 'iam',
76
+ defaultAuthMode: defaultAuthMode ?? 'iam',
115
77
  },
116
78
  };
117
79
  if (modelIntrospection) {
@@ -119,34 +81,34 @@ var parseAWSExports = function (config) {
119
81
  }
120
82
  }
121
83
  // Auth
122
- var mfaConfig = aws_cognito_mfa_configuration
84
+ const mfaConfig = aws_cognito_mfa_configuration
123
85
  ? {
124
86
  status: aws_cognito_mfa_configuration &&
125
87
  aws_cognito_mfa_configuration.toLowerCase(),
126
- totpEnabled: (_a = aws_cognito_mfa_types === null || aws_cognito_mfa_types === void 0 ? void 0 : aws_cognito_mfa_types.includes('TOTP')) !== null && _a !== void 0 ? _a : false,
127
- smsEnabled: (_b = aws_cognito_mfa_types === null || aws_cognito_mfa_types === void 0 ? void 0 : aws_cognito_mfa_types.includes('SMS')) !== null && _b !== void 0 ? _b : false,
88
+ totpEnabled: aws_cognito_mfa_types?.includes('TOTP') ?? false,
89
+ smsEnabled: aws_cognito_mfa_types?.includes('SMS') ?? false,
128
90
  }
129
91
  : undefined;
130
- var passwordFormatConfig = aws_cognito_password_protection_settings
92
+ const passwordFormatConfig = aws_cognito_password_protection_settings
131
93
  ? {
132
94
  minLength: aws_cognito_password_protection_settings.passwordPolicyMinLength,
133
- requireLowercase: (_d = (_c = aws_cognito_password_protection_settings.passwordPolicyCharacters) === null || _c === void 0 ? void 0 : _c.includes('REQUIRES_LOWERCASE')) !== null && _d !== void 0 ? _d : false,
134
- requireUppercase: (_f = (_e = aws_cognito_password_protection_settings.passwordPolicyCharacters) === null || _e === void 0 ? void 0 : _e.includes('REQUIRES_UPPERCASE')) !== null && _f !== void 0 ? _f : false,
135
- requireNumbers: (_h = (_g = aws_cognito_password_protection_settings.passwordPolicyCharacters) === null || _g === void 0 ? void 0 : _g.includes('REQUIRES_NUMBERS')) !== null && _h !== void 0 ? _h : false,
136
- requireSpecialCharacters: (_k = (_j = aws_cognito_password_protection_settings.passwordPolicyCharacters) === null || _j === void 0 ? void 0 : _j.includes('REQUIRES_SYMBOLS')) !== null && _k !== void 0 ? _k : false,
95
+ requireLowercase: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_LOWERCASE') ?? false,
96
+ requireUppercase: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_UPPERCASE') ?? false,
97
+ requireNumbers: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_NUMBERS') ?? false,
98
+ requireSpecialCharacters: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_SYMBOLS') ?? false,
137
99
  }
138
100
  : undefined;
139
- var mergedUserAttributes = Array.from(new Set(__spreadArray(__spreadArray([], __read((aws_cognito_verification_mechanisms !== null && aws_cognito_verification_mechanisms !== void 0 ? aws_cognito_verification_mechanisms : [])), false), __read((aws_cognito_signup_attributes !== null && aws_cognito_signup_attributes !== void 0 ? aws_cognito_signup_attributes : [])), false)));
140
- var userAttributesConfig = mergedUserAttributes.map(function (s) {
141
- var _a;
142
- return (_a = {},
143
- _a[s.toLowerCase()] = {
144
- required: true, // All user attributes generated by the CLI will be required
145
- },
146
- _a);
147
- });
148
- var loginWithEmailEnabled = (_l = aws_cognito_username_attributes === null || aws_cognito_username_attributes === void 0 ? void 0 : aws_cognito_username_attributes.includes('EMAIL')) !== null && _l !== void 0 ? _l : false;
149
- var loginWithPhoneEnabled = (_m = aws_cognito_username_attributes === null || aws_cognito_username_attributes === void 0 ? void 0 : aws_cognito_username_attributes.includes('PHONE_NUMBER')) !== null && _m !== void 0 ? _m : false;
101
+ const mergedUserAttributes = Array.from(new Set([
102
+ ...(aws_cognito_verification_mechanisms ?? []),
103
+ ...(aws_cognito_signup_attributes ?? []),
104
+ ]));
105
+ const userAttributesConfig = mergedUserAttributes.map((s) => ({
106
+ [s.toLowerCase()]: {
107
+ required: true, // All user attributes generated by the CLI will be required
108
+ },
109
+ }));
110
+ const loginWithEmailEnabled = aws_cognito_username_attributes?.includes('EMAIL') ?? false;
111
+ const loginWithPhoneEnabled = aws_cognito_username_attributes?.includes('PHONE_NUMBER') ?? false;
150
112
  if (aws_cognito_identity_pool_id || aws_user_pools_id) {
151
113
  amplifyConfig.Auth = {
152
114
  Cognito: {
@@ -158,10 +120,26 @@ var parseAWSExports = function (config) {
158
120
  userPoolId: aws_user_pools_id,
159
121
  mfa: mfaConfig,
160
122
  passwordFormat: passwordFormatConfig,
161
- loginWith: __assign({ username: loginWithEmailEnabled || loginWithPhoneEnabled ? false : true, email: loginWithEmailEnabled, phone: loginWithPhoneEnabled }, (oauth &&
162
- Object.keys(oauth).length > 0 && {
163
- oauth: getOAuthConfig(oauth),
164
- })),
123
+ loginWith: {
124
+ username: loginWithEmailEnabled || loginWithPhoneEnabled ? false : true,
125
+ email: loginWithEmailEnabled,
126
+ phone: loginWithPhoneEnabled,
127
+ },
128
+ },
129
+ };
130
+ }
131
+ const hasOAuthConfig = oauth ? Object.keys(oauth).length > 0 : false;
132
+ const hasSocialProviderConfig = aws_cognito_social_providers
133
+ ? aws_cognito_social_providers.length > 0
134
+ : false;
135
+ if (amplifyConfig.Auth && hasOAuthConfig) {
136
+ amplifyConfig.Auth.Cognito.loginWith = {
137
+ ...amplifyConfig.Auth.Cognito.loginWith,
138
+ oauth: {
139
+ ...getOAuthConfig(oauth),
140
+ ...(hasSocialProviderConfig && {
141
+ providers: parseSocialProviders(aws_cognito_social_providers),
142
+ }),
165
143
  },
166
144
  };
167
145
  }
@@ -177,34 +155,65 @@ var parseAWSExports = function (config) {
177
155
  }
178
156
  // Geo
179
157
  if (geo) {
180
- var amazon_location_service = geo.amazon_location_service;
158
+ const { amazon_location_service } = geo;
181
159
  amplifyConfig.Geo = amazon_location_service
182
160
  ? {
183
- LocationService: __assign(__assign({}, amazon_location_service), { searchIndices: amazon_location_service.search_indices, region: amazon_location_service.region }),
161
+ LocationService: {
162
+ ...amazon_location_service,
163
+ searchIndices: amazon_location_service.search_indices,
164
+ region: amazon_location_service.region,
165
+ },
184
166
  }
185
- : __assign({}, geo);
167
+ : { ...geo };
186
168
  }
187
169
  // REST API
188
170
  if (aws_cloud_logic_custom) {
189
- amplifyConfig.API = __assign(__assign({}, amplifyConfig.API), { REST: aws_cloud_logic_custom.reduce(function (acc, api) {
190
- var _a;
191
- var name = api.name, endpoint = api.endpoint, region = api.region, service = api.service;
192
- return __assign(__assign({}, acc), (_a = {}, _a[name] = __assign(__assign({ endpoint: endpoint }, (service ? { service: service } : undefined)), (region ? { region: region } : undefined)), _a));
193
- }, {}) });
171
+ amplifyConfig.API = {
172
+ ...amplifyConfig.API,
173
+ REST: aws_cloud_logic_custom.reduce((acc, api) => {
174
+ const { name, endpoint, region, service } = api;
175
+ return {
176
+ ...acc,
177
+ [name]: {
178
+ endpoint,
179
+ ...(service ? { service } : undefined),
180
+ ...(region ? { region } : undefined),
181
+ },
182
+ };
183
+ }, {}),
184
+ };
185
+ }
186
+ // Predictions
187
+ if (predictions) {
188
+ // map VoiceId from speechGenerator defaults to voiceId
189
+ const { VoiceId: voiceId } = predictions?.convert?.speechGenerator?.defaults ?? {};
190
+ amplifyConfig.Predictions = voiceId
191
+ ? {
192
+ ...predictions,
193
+ convert: {
194
+ ...predictions.convert,
195
+ speechGenerator: {
196
+ ...predictions.convert.speechGenerator,
197
+ defaults: { voiceId },
198
+ },
199
+ },
200
+ }
201
+ : predictions;
194
202
  }
195
203
  return amplifyConfig;
196
204
  };
197
205
  exports.parseAWSExports = parseAWSExports;
198
- var getRedirectUrl = function (redirectStr) {
199
- return redirectStr.split(',');
200
- };
201
- var getOAuthConfig = function (_a) {
202
- var domain = _a.domain, scope = _a.scope, redirectSignIn = _a.redirectSignIn, redirectSignOut = _a.redirectSignOut, responseType = _a.responseType;
203
- return ({
204
- domain: domain,
205
- scopes: scope,
206
- redirectSignIn: getRedirectUrl(redirectSignIn),
207
- redirectSignOut: getRedirectUrl(redirectSignOut),
208
- responseType: responseType,
206
+ const getRedirectUrl = (redirectStr) => redirectStr.split(',');
207
+ const getOAuthConfig = ({ domain, scope, redirectSignIn, redirectSignOut, responseType, }) => ({
208
+ domain,
209
+ scopes: scope,
210
+ redirectSignIn: getRedirectUrl(redirectSignIn),
211
+ redirectSignOut: getRedirectUrl(redirectSignOut),
212
+ responseType,
213
+ });
214
+ const parseSocialProviders = (aws_cognito_social_providers) => {
215
+ return aws_cognito_social_providers.map((provider) => {
216
+ const updatedProvider = provider.toLowerCase();
217
+ return updatedProvider.charAt(0).toUpperCase() + updatedProvider.slice(1);
209
218
  });
210
219
  };
@@ -1,5 +1,5 @@
1
1
  export type KinesisProviderConfig = {
2
- Kinesis?: {
2
+ Kinesis: {
3
3
  region: string;
4
4
  bufferSize?: number;
5
5
  flushSize?: number;
@@ -1,5 +1,5 @@
1
1
  export type KinesisFirehoseProviderConfig = {
2
- KinesisFirehose?: {
2
+ KinesisFirehose: {
3
3
  region: string;
4
4
  bufferSize?: number;
5
5
  flushSize?: number;
@@ -1,5 +1,5 @@
1
1
  export type PersonalizeProviderConfig = {
2
- Personalize?: {
2
+ Personalize: {
3
3
  trackingId: string;
4
4
  region: string;
5
5
  flushSize?: number;
@@ -3,19 +3,19 @@
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.flushEvents = void 0;
6
- var getEventBuffer_1 = require("../utils/getEventBuffer");
7
- var constants_1 = require("../utils/constants");
8
- var flushEvents = function (appId, region, credentials, identityId, userAgentValue) {
6
+ const getEventBuffer_1 = require("../utils/getEventBuffer");
7
+ const constants_1 = require("../utils/constants");
8
+ const flushEvents = (appId, region, credentials, identityId, userAgentValue) => {
9
9
  (0, getEventBuffer_1.getEventBuffer)({
10
- appId: appId,
10
+ appId,
11
11
  bufferSize: constants_1.BUFFER_SIZE,
12
- credentials: credentials,
12
+ credentials,
13
13
  flushInterval: constants_1.FLUSH_INTERVAL,
14
14
  flushSize: constants_1.FLUSH_SIZE,
15
- identityId: identityId,
16
- region: region,
15
+ identityId,
16
+ region,
17
17
  resendLimit: constants_1.RESEND_LIMIT,
18
- userAgentValue: userAgentValue,
18
+ userAgentValue,
19
19
  }).flushAll();
20
20
  };
21
21
  exports.flushEvents = flushEvents;
@@ -1,104 +1,69 @@
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.record = void 0;
42
- var amplifyUuid_1 = require("../../../utils/amplifyUuid");
43
- var utils_1 = require("../utils");
44
- var constants_1 = require("../utils/constants");
45
- var getEventBuffer_1 = require("../utils/getEventBuffer");
46
- // TODO(v6) Refactor when we add support for session tracking & `autoTrack`
47
- var session;
6
+ const amplifyUuid_1 = require("../../../utils/amplifyUuid");
7
+ const utils_1 = require("../utils");
8
+ const sessionListener_1 = require("../../../utils/sessionListener");
9
+ const constants_1 = require("../utils/constants");
10
+ const getEventBuffer_1 = require("../utils/getEventBuffer");
11
+ let session;
48
12
  /**
49
13
  * @internal
50
14
  */
51
- var record = function (_a) {
52
- var appId = _a.appId, category = _a.category, channelType = _a.channelType, credentials = _a.credentials, event = _a.event, identityId = _a.identityId, region = _a.region, userAgentValue = _a.userAgentValue;
53
- return __awaiter(void 0, void 0, void 0, function () {
54
- var timestampISOString, eventId, buffer, endpointId, sessionId;
55
- return __generator(this, function (_b) {
56
- switch (_b.label) {
57
- case 0:
58
- timestampISOString = new Date().toISOString();
59
- eventId = (0, amplifyUuid_1.amplifyUuid)();
60
- buffer = (0, getEventBuffer_1.getEventBuffer)({
61
- appId: appId,
62
- bufferSize: constants_1.BUFFER_SIZE,
63
- credentials: credentials,
64
- flushInterval: constants_1.FLUSH_INTERVAL,
65
- flushSize: constants_1.FLUSH_SIZE,
66
- identityId: identityId,
67
- region: region,
68
- resendLimit: constants_1.RESEND_LIMIT,
69
- userAgentValue: userAgentValue,
70
- });
71
- return [4 /*yield*/, (0, utils_1.resolveEndpointId)({
72
- appId: appId,
73
- category: category,
74
- channelType: channelType,
75
- credentials: credentials,
76
- identityId: identityId,
77
- region: region,
78
- userAgentValue: userAgentValue,
79
- })];
80
- case 1:
81
- endpointId = _b.sent();
82
- // Generate session if required
83
- if (!session) {
84
- sessionId = (0, amplifyUuid_1.amplifyUuid)();
85
- session = {
86
- Id: sessionId,
87
- StartTimestamp: timestampISOString,
88
- };
89
- }
90
- // Push event to buffer
91
- buffer.push({
92
- eventId: eventId,
93
- endpointId: endpointId,
94
- event: event,
95
- session: session,
96
- timestamp: timestampISOString,
97
- resendLimit: constants_1.RESEND_LIMIT,
98
- });
99
- return [2 /*return*/];
100
- }
101
- });
15
+ const record = async ({ appId, category, channelType, credentials, event, identityId, region, userAgentValue, }) => {
16
+ let eventSession = session;
17
+ const currentTime = new Date();
18
+ const timestampISOString = currentTime.toISOString();
19
+ const eventId = (0, amplifyUuid_1.amplifyUuid)();
20
+ // Prepare event buffer if required
21
+ const buffer = (0, getEventBuffer_1.getEventBuffer)({
22
+ appId,
23
+ bufferSize: constants_1.BUFFER_SIZE,
24
+ credentials,
25
+ flushInterval: constants_1.FLUSH_INTERVAL,
26
+ flushSize: constants_1.FLUSH_SIZE,
27
+ identityId,
28
+ region,
29
+ resendLimit: constants_1.RESEND_LIMIT,
30
+ userAgentValue,
31
+ });
32
+ const endpointId = await (0, utils_1.resolveEndpointId)({
33
+ appId,
34
+ category,
35
+ channelType,
36
+ credentials,
37
+ identityId,
38
+ region,
39
+ userAgentValue,
40
+ });
41
+ // Generate session if required
42
+ if (!eventSession || event.name === sessionListener_1.SESSION_START_EVENT) {
43
+ const sessionId = (0, amplifyUuid_1.amplifyUuid)();
44
+ session = {
45
+ Id: sessionId,
46
+ StartTimestamp: timestampISOString,
47
+ };
48
+ eventSession = session;
49
+ }
50
+ // Terminate session when required
51
+ if (session && event.name === sessionListener_1.SESSION_STOP_EVENT) {
52
+ eventSession = {
53
+ ...session,
54
+ StopTimestamp: timestampISOString,
55
+ Duration: currentTime.getTime() - new Date(session.StartTimestamp).getTime(),
56
+ };
57
+ session = undefined;
58
+ }
59
+ // Push event to buffer
60
+ buffer.push({
61
+ eventId,
62
+ endpointId,
63
+ event,
64
+ session: eventSession,
65
+ timestamp: timestampISOString,
66
+ resendLimit: constants_1.RESEND_LIMIT,
102
67
  });
103
68
  };
104
69
  exports.record = record;