@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,122 +1,75 @@
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
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
16
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17
- return new (P || (P = Promise))(function (resolve, reject) {
18
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
19
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
20
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
21
- step((generator = generator.apply(thisArg, _arguments || [])).next());
22
- });
23
- };
24
- var __generator = (this && this.__generator) || function (thisArg, body) {
25
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
26
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
27
- function verb(n) { return function (v) { return step([n, v]); }; }
28
- function step(op) {
29
- if (f) throw new TypeError("Generator is already executing.");
30
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
31
- 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;
32
- if (y = 0, t) op = [op[0] & 2, t.value];
33
- switch (op[0]) {
34
- case 0: case 1: t = op; break;
35
- case 4: _.label++; return { value: op[1], done: false };
36
- case 5: _.label++; y = op[1]; op = [0]; continue;
37
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
38
- default:
39
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
40
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
41
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
42
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
43
- if (t[2]) _.ops.pop();
44
- _.trys.pop(); continue;
45
- }
46
- op = body.call(thisArg, _);
47
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
48
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
49
- }
50
- };
51
4
  Object.defineProperty(exports, "__esModule", { value: true });
52
5
  exports.updateEndpoint = void 0;
53
- var amplifyUuid_1 = require("../../../utils/amplifyUuid");
54
- var getClientInfo_1 = require("../../../utils/getClientInfo");
55
- var pinpoint_1 = require("../../../awsClients/pinpoint");
56
- var utils_1 = require("../utils");
6
+ const amplifyUuid_1 = require("../../../utils/amplifyUuid");
7
+ const getClientInfo_1 = require("../../../utils/getClientInfo");
8
+ const pinpoint_1 = require("../../../awsClients/pinpoint");
9
+ const utils_1 = require("../utils");
57
10
  /**
58
11
  * @internal
59
12
  */
60
- var updateEndpoint = function (_a) {
61
- var address = _a.address, appId = _a.appId, category = _a.category, channelType = _a.channelType, credentials = _a.credentials, identityId = _a.identityId, optOut = _a.optOut, region = _a.region, userAttributes = _a.userAttributes, userId = _a.userId, userProfile = _a.userProfile, userAgentValue = _a.userAgentValue;
62
- return __awaiter(void 0, void 0, void 0, function () {
63
- var endpointId, createdEndpointId, _b, customProperties, demographic, email, location, metrics, name, plan, clientInfo, mergedDemographic, shouldAddAttributes, attributes, input;
64
- return __generator(this, function (_c) {
65
- switch (_c.label) {
66
- case 0: return [4 /*yield*/, (0, utils_1.getEndpointId)(appId, category)];
67
- case 1:
68
- endpointId = _c.sent();
69
- createdEndpointId = !endpointId ? (0, amplifyUuid_1.amplifyUuid)() : undefined;
70
- _b = userProfile !== null && userProfile !== void 0 ? userProfile : {}, customProperties = _b.customProperties, demographic = _b.demographic, email = _b.email, location = _b.location, metrics = _b.metrics, name = _b.name, plan = _b.plan;
71
- clientInfo = (0, getClientInfo_1.getClientInfo)();
72
- mergedDemographic = __assign({ appVersion: clientInfo.appVersion, make: clientInfo.make, model: clientInfo.model, modelVersion: clientInfo.version, platform: clientInfo.platform }, demographic);
73
- shouldAddAttributes = email || customProperties || name || plan;
74
- attributes = __assign(__assign(__assign(__assign({}, (email && { email: [email] })), (name && { name: [name] })), (plan && { plan: [plan] })), customProperties);
75
- input = {
76
- ApplicationId: appId,
77
- EndpointId: endpointId !== null && endpointId !== void 0 ? endpointId : createdEndpointId,
78
- EndpointRequest: {
79
- RequestId: (0, amplifyUuid_1.amplifyUuid)(),
80
- EffectiveDate: new Date().toISOString(),
81
- ChannelType: channelType,
82
- Address: address,
83
- Attributes: shouldAddAttributes ? attributes : undefined,
84
- Demographic: {
85
- AppVersion: mergedDemographic.appVersion,
86
- Locale: mergedDemographic.locale,
87
- Make: mergedDemographic.make,
88
- Model: mergedDemographic.model,
89
- ModelVersion: mergedDemographic.modelVersion,
90
- Platform: mergedDemographic.platform,
91
- PlatformVersion: mergedDemographic.platformVersion,
92
- Timezone: mergedDemographic.timezone,
93
- },
94
- Location: {
95
- City: location === null || location === void 0 ? void 0 : location.city,
96
- Country: location === null || location === void 0 ? void 0 : location.country,
97
- Latitude: location === null || location === void 0 ? void 0 : location.latitude,
98
- Longitude: location === null || location === void 0 ? void 0 : location.longitude,
99
- PostalCode: location === null || location === void 0 ? void 0 : location.postalCode,
100
- Region: location === null || location === void 0 ? void 0 : location.region,
101
- },
102
- Metrics: metrics,
103
- OptOut: optOut,
104
- User: {
105
- UserId: userId !== null && userId !== void 0 ? userId : identityId,
106
- UserAttributes: userAttributes,
107
- },
108
- },
109
- };
110
- return [4 /*yield*/, (0, pinpoint_1.updateEndpoint)({ credentials: credentials, region: region, userAgentValue: userAgentValue }, input)];
111
- case 2:
112
- _c.sent();
113
- // if we had to create an endpoint id, we need to now cache it
114
- if (!!createdEndpointId) {
115
- return [2 /*return*/, (0, utils_1.cacheEndpointId)(appId, category, createdEndpointId)];
116
- }
117
- return [2 /*return*/];
118
- }
119
- });
120
- });
13
+ const updateEndpoint = async ({ address, appId, category, channelType, credentials, identityId, optOut, region, userAttributes, userId, userProfile, userAgentValue, }) => {
14
+ const endpointId = await (0, utils_1.getEndpointId)(appId, category);
15
+ // only generate a new endpoint id if one was not found in cache
16
+ const createdEndpointId = !endpointId ? (0, amplifyUuid_1.amplifyUuid)() : undefined;
17
+ const { customProperties, demographic, email, location, metrics, name, plan, } = userProfile ?? {};
18
+ const clientInfo = (0, getClientInfo_1.getClientInfo)();
19
+ const mergedDemographic = {
20
+ appVersion: clientInfo.appVersion,
21
+ make: clientInfo.make,
22
+ model: clientInfo.model,
23
+ modelVersion: clientInfo.version,
24
+ platform: clientInfo.platform,
25
+ ...demographic,
26
+ };
27
+ const shouldAddAttributes = email || customProperties || name || plan;
28
+ const attributes = {
29
+ ...(email && { email: [email] }),
30
+ ...(name && { name: [name] }),
31
+ ...(plan && { plan: [plan] }),
32
+ ...customProperties,
33
+ };
34
+ const input = {
35
+ ApplicationId: appId,
36
+ EndpointId: endpointId ?? createdEndpointId,
37
+ EndpointRequest: {
38
+ RequestId: (0, amplifyUuid_1.amplifyUuid)(),
39
+ EffectiveDate: new Date().toISOString(),
40
+ ChannelType: channelType,
41
+ Address: address,
42
+ Attributes: shouldAddAttributes ? attributes : undefined,
43
+ Demographic: {
44
+ AppVersion: mergedDemographic.appVersion,
45
+ Locale: mergedDemographic.locale,
46
+ Make: mergedDemographic.make,
47
+ Model: mergedDemographic.model,
48
+ ModelVersion: mergedDemographic.modelVersion,
49
+ Platform: mergedDemographic.platform,
50
+ PlatformVersion: mergedDemographic.platformVersion,
51
+ Timezone: mergedDemographic.timezone,
52
+ },
53
+ Location: {
54
+ City: location?.city,
55
+ Country: location?.country,
56
+ Latitude: location?.latitude,
57
+ Longitude: location?.longitude,
58
+ PostalCode: location?.postalCode,
59
+ Region: location?.region,
60
+ },
61
+ Metrics: metrics,
62
+ OptOut: optOut,
63
+ User: {
64
+ UserId: userId ?? identityId,
65
+ UserAttributes: userAttributes,
66
+ },
67
+ },
68
+ };
69
+ await (0, pinpoint_1.updateEndpoint)({ credentials, region, userAgentValue }, input);
70
+ // if we had to create an endpoint id, we need to now cache it
71
+ if (!!createdEndpointId) {
72
+ return (0, utils_1.cacheEndpointId)(appId, category, createdEndpointId);
73
+ }
121
74
  };
122
75
  exports.updateEndpoint = updateEndpoint;
@@ -3,7 +3,7 @@ import { UserProfile } from '../../../types';
3
3
  export type SupportedCategory = 'Analytics' | 'Core' | 'InAppMessaging' | 'PushNotification';
4
4
  type SupportedChannelType = 'APNS' | 'APNS_SANDBOX' | 'GCM' | 'IN_APP';
5
5
  export type PinpointProviderConfig = {
6
- Pinpoint?: {
6
+ Pinpoint: {
7
7
  appId: string;
8
8
  region: string;
9
9
  };
@@ -15,7 +15,9 @@ export type PinpointServiceOptions = {
15
15
  };
16
16
  export type PinpointSession = {
17
17
  Id: string;
18
+ Duration?: number;
18
19
  StartTimestamp: string;
20
+ StopTimestamp?: string;
19
21
  };
20
22
  export type PinpointAnalyticsEvent = {
21
23
  name: string;
@@ -1,88 +1,16 @@
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
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
16
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17
- return new (P || (P = Promise))(function (resolve, reject) {
18
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
19
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
20
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
21
- step((generator = generator.apply(thisArg, _arguments || [])).next());
22
- });
23
- };
24
- var __generator = (this && this.__generator) || function (thisArg, body) {
25
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
26
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
27
- function verb(n) { return function (v) { return step([n, v]); }; }
28
- function step(op) {
29
- if (f) throw new TypeError("Generator is already executing.");
30
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
31
- 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;
32
- if (y = 0, t) op = [op[0] & 2, t.value];
33
- switch (op[0]) {
34
- case 0: case 1: t = op; break;
35
- case 4: _.label++; return { value: op[1], done: false };
36
- case 5: _.label++; y = op[1]; op = [0]; continue;
37
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
38
- default:
39
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
40
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
41
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
42
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
43
- if (t[2]) _.ops.pop();
44
- _.trys.pop(); continue;
45
- }
46
- op = body.call(thisArg, _);
47
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
48
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
49
- }
50
- };
51
- var __read = (this && this.__read) || function (o, n) {
52
- var m = typeof Symbol === "function" && o[Symbol.iterator];
53
- if (!m) return o;
54
- var i = m.call(o), r, ar = [], e;
55
- try {
56
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
57
- }
58
- catch (error) { e = { error: error }; }
59
- finally {
60
- try {
61
- if (r && !r.done && (m = i["return"])) m.call(i);
62
- }
63
- finally { if (e) throw e.error; }
64
- }
65
- return ar;
66
- };
67
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
68
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
69
- if (ar || !(i in from)) {
70
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
71
- ar[i] = from[i];
72
- }
73
- }
74
- return to.concat(ar || Array.prototype.slice.call(from));
75
- };
76
4
  Object.defineProperty(exports, "__esModule", { value: true });
77
5
  exports.PinpointEventBuffer = void 0;
78
- var Logger_1 = require("../../../Logger");
79
- var pinpoint_1 = require("../../../awsClients/pinpoint");
80
- var isAppInForeground_1 = require("./isAppInForeground");
81
- var logger = new Logger_1.ConsoleLogger('PinpointEventBuffer');
82
- var RETRYABLE_CODES = [429, 500];
83
- var ACCEPTED_CODES = [202];
84
- var PinpointEventBuffer = /** @class */ (function () {
85
- function PinpointEventBuffer(config) {
6
+ const Logger_1 = require("../../../Logger");
7
+ const pinpoint_1 = require("../../../awsClients/pinpoint");
8
+ const isAppInForeground_1 = require("./isAppInForeground");
9
+ const logger = new Logger_1.ConsoleLogger('PinpointEventBuffer');
10
+ const RETRYABLE_CODES = [429, 500];
11
+ const ACCEPTED_CODES = [202];
12
+ class PinpointEventBuffer {
13
+ constructor(config) {
86
14
  this._interval = undefined;
87
15
  this._pause = false;
88
16
  this._flush = false;
@@ -91,96 +19,85 @@ var PinpointEventBuffer = /** @class */ (function () {
91
19
  this._sendBatch = this._sendBatch.bind(this);
92
20
  this._startLoop();
93
21
  }
94
- PinpointEventBuffer.prototype.push = function (event) {
95
- var _a;
22
+ push(event) {
96
23
  if (this._buffer.length >= this._config.bufferSize) {
97
24
  logger.debug('Exceeded Pinpoint event buffer limits, event dropped.', {
98
25
  eventId: event.eventId,
99
26
  });
100
27
  return;
101
28
  }
102
- this._buffer.push((_a = {}, _a[event.eventId] = event, _a));
103
- };
104
- PinpointEventBuffer.prototype.pause = function () {
29
+ this._buffer.push({ [event.eventId]: event });
30
+ }
31
+ pause() {
105
32
  this._pause = true;
106
- };
107
- PinpointEventBuffer.prototype.resume = function () {
33
+ }
34
+ resume() {
108
35
  this._pause = false;
109
- };
110
- PinpointEventBuffer.prototype.flush = function () {
36
+ }
37
+ flush() {
111
38
  this._flush = true;
112
- };
113
- PinpointEventBuffer.prototype.identityHasChanged = function (identityId) {
39
+ }
40
+ identityHasChanged(identityId) {
114
41
  return this._config.identityId !== identityId;
115
- };
116
- PinpointEventBuffer.prototype.flushAll = function () {
42
+ }
43
+ flushAll() {
117
44
  this._putEvents(this._buffer.splice(0, this._buffer.length));
118
- };
119
- PinpointEventBuffer.prototype._startLoop = function () {
45
+ }
46
+ _startLoop() {
120
47
  if (this._interval) {
121
48
  clearInterval(this._interval);
122
49
  }
123
- var flushInterval = this._config.flushInterval;
50
+ const { flushInterval } = this._config;
124
51
  this._interval = setInterval(this._sendBatch, flushInterval);
125
- };
126
- PinpointEventBuffer.prototype._sendBatch = function () {
127
- var bufferLength = this._buffer.length;
52
+ }
53
+ _sendBatch() {
54
+ const bufferLength = this._buffer.length;
128
55
  if (this._flush && !bufferLength && this._interval) {
129
56
  clearInterval(this._interval);
130
57
  }
131
58
  if (this._pause || !bufferLength || !(0, isAppInForeground_1.isAppInForeground)()) {
132
59
  return;
133
60
  }
134
- var flushSize = this._config.flushSize;
135
- var batchSize = Math.min(flushSize, bufferLength);
136
- var bufferSubset = this._buffer.splice(0, batchSize);
61
+ const { flushSize } = this._config;
62
+ const batchSize = Math.min(flushSize, bufferLength);
63
+ const bufferSubset = this._buffer.splice(0, batchSize);
137
64
  this._putEvents(bufferSubset);
138
- };
139
- PinpointEventBuffer.prototype._putEvents = function (buffer) {
140
- return __awaiter(this, void 0, void 0, function () {
141
- var eventMap, batchEventParams, _a, credentials, region, userAgentValue, data, err_1;
142
- return __generator(this, function (_b) {
143
- switch (_b.label) {
144
- case 0:
145
- eventMap = this._bufferToMap(buffer);
146
- batchEventParams = this._generateBatchEventParams(eventMap);
147
- _b.label = 1;
148
- case 1:
149
- _b.trys.push([1, 3, , 4]);
150
- _a = this._config, credentials = _a.credentials, region = _a.region, userAgentValue = _a.userAgentValue;
151
- return [4 /*yield*/, (0, pinpoint_1.putEvents)({
152
- credentials: credentials,
153
- region: region,
154
- userAgentValue: userAgentValue,
155
- }, batchEventParams)];
156
- case 2:
157
- data = _b.sent();
158
- this._processPutEventsSuccessResponse(data, eventMap);
159
- return [3 /*break*/, 4];
160
- case 3:
161
- err_1 = _b.sent();
162
- return [2 /*return*/, this._handlePutEventsFailure(err_1, eventMap)];
163
- case 4: return [2 /*return*/];
164
- }
165
- });
166
- });
167
- };
168
- PinpointEventBuffer.prototype._generateBatchEventParams = function (eventMap) {
169
- var batchItem = {};
170
- Object.values(eventMap).forEach(function (item) {
171
- var _a;
172
- var _b, _c;
173
- var event = item.event, timestamp = item.timestamp, endpointId = item.endpointId, eventId = item.eventId, session = item.session;
174
- var name = event.name, attributes = event.attributes, metrics = event.metrics;
65
+ }
66
+ async _putEvents(buffer) {
67
+ const eventMap = this._bufferToMap(buffer);
68
+ const batchEventParams = this._generateBatchEventParams(eventMap);
69
+ try {
70
+ const { credentials, region, userAgentValue } = this._config;
71
+ const data = await (0, pinpoint_1.putEvents)({
72
+ credentials,
73
+ region,
74
+ userAgentValue,
75
+ }, batchEventParams);
76
+ this._processPutEventsSuccessResponse(data, eventMap);
77
+ }
78
+ catch (err) {
79
+ return this._handlePutEventsFailure(err, eventMap);
80
+ }
81
+ }
82
+ _generateBatchEventParams(eventMap) {
83
+ const batchItem = {};
84
+ Object.values(eventMap).forEach(item => {
85
+ const { event, timestamp, endpointId, eventId, session } = item;
86
+ const { name, attributes, metrics } = event;
175
87
  batchItem[endpointId] = {
176
- Endpoint: __assign({}, (_b = batchItem[endpointId]) === null || _b === void 0 ? void 0 : _b.Endpoint),
177
- Events: __assign(__assign({}, (_c = batchItem[endpointId]) === null || _c === void 0 ? void 0 : _c.Events), (_a = {}, _a[eventId] = {
178
- EventType: name,
179
- Timestamp: new Date(timestamp).toISOString(),
180
- Attributes: attributes,
181
- Metrics: metrics,
182
- Session: session,
183
- }, _a)),
88
+ Endpoint: {
89
+ ...batchItem[endpointId]?.Endpoint,
90
+ },
91
+ Events: {
92
+ ...batchItem[endpointId]?.Events,
93
+ [eventId]: {
94
+ EventType: name,
95
+ Timestamp: new Date(timestamp).toISOString(),
96
+ Attributes: attributes,
97
+ Metrics: metrics,
98
+ Session: session,
99
+ },
100
+ },
184
101
  };
185
102
  });
186
103
  return {
@@ -189,42 +106,37 @@ var PinpointEventBuffer = /** @class */ (function () {
189
106
  BatchItem: batchItem,
190
107
  },
191
108
  };
192
- };
193
- PinpointEventBuffer.prototype._handlePutEventsFailure = function (err, eventMap) {
109
+ }
110
+ _handlePutEventsFailure(err, eventMap) {
194
111
  logger.debug('putEvents call to Pinpoint failed.', err);
195
- var statusCode = err.$metadata && err.$metadata.httpStatusCode;
112
+ const statusCode = err.$metadata && err.$metadata.httpStatusCode;
196
113
  if (RETRYABLE_CODES.includes(statusCode)) {
197
- var retryableEvents = Object.values(eventMap);
114
+ const retryableEvents = Object.values(eventMap);
198
115
  this._retry(retryableEvents);
199
116
  return;
200
117
  }
201
- };
202
- PinpointEventBuffer.prototype._processPutEventsSuccessResponse = function (data, eventMap) {
203
- var _a;
204
- var _b = ((_a = data.EventsResponse) !== null && _a !== void 0 ? _a : {}).Results, Results = _b === void 0 ? {} : _b;
205
- var retryableEvents = [];
206
- Object.entries(Results).forEach(function (_a) {
207
- var _b;
208
- var _c = __read(_a, 2), endpointId = _c[0], endpointValues = _c[1];
209
- var responses = (_b = endpointValues.EventsItemResponse) !== null && _b !== void 0 ? _b : {};
210
- Object.entries(responses).forEach(function (_a) {
211
- var _b, _c;
212
- var _d = __read(_a, 2), eventId = _d[0], eventValues = _d[1];
213
- var eventObject = eventMap[eventId];
118
+ }
119
+ _processPutEventsSuccessResponse(data, eventMap) {
120
+ const { Results = {} } = data.EventsResponse ?? {};
121
+ const retryableEvents = [];
122
+ Object.entries(Results).forEach(([endpointId, endpointValues]) => {
123
+ const responses = endpointValues.EventsItemResponse ?? {};
124
+ Object.entries(responses).forEach(([eventId, eventValues]) => {
125
+ const eventObject = eventMap[eventId];
214
126
  if (!eventObject) {
215
127
  return;
216
128
  }
217
- var _e = eventValues !== null && eventValues !== void 0 ? eventValues : {}, StatusCode = _e.StatusCode, Message = _e.Message;
129
+ const { StatusCode, Message } = eventValues ?? {};
218
130
  // manually crafting handlers response to keep API consistant
219
- var response = {
131
+ const response = {
220
132
  EventsResponse: {
221
- Results: (_b = {},
222
- _b[endpointId] = {
223
- EventsItemResponse: (_c = {},
224
- _c[eventId] = { StatusCode: StatusCode, Message: Message },
225
- _c),
133
+ Results: {
134
+ [endpointId]: {
135
+ EventsItemResponse: {
136
+ [eventId]: { StatusCode, Message },
137
+ },
226
138
  },
227
- _b),
139
+ },
228
140
  },
229
141
  };
230
142
  if (StatusCode && ACCEPTED_CODES.includes(StatusCode)) {
@@ -234,10 +146,10 @@ var PinpointEventBuffer = /** @class */ (function () {
234
146
  retryableEvents.push(eventObject);
235
147
  return;
236
148
  }
237
- var name = eventObject.event.name;
149
+ const { name } = eventObject.event;
238
150
  logger.warn('Pinpoint event failed to send.', {
239
- eventId: eventId,
240
- name: name,
151
+ eventId,
152
+ name,
241
153
  message: Message,
242
154
  });
243
155
  });
@@ -245,39 +157,36 @@ var PinpointEventBuffer = /** @class */ (function () {
245
157
  if (retryableEvents.length) {
246
158
  this._retry(retryableEvents);
247
159
  }
248
- };
249
- PinpointEventBuffer.prototype._retry = function (retryableEvents) {
250
- var _a;
160
+ }
161
+ _retry(retryableEvents) {
251
162
  // retryable events that haven't reached the resendLimit
252
- var eligibleEvents = [];
253
- retryableEvents.forEach(function (bufferedEvent) {
254
- var _a;
255
- var eventId = bufferedEvent.eventId;
256
- var name = bufferedEvent.event.name;
163
+ const eligibleEvents = [];
164
+ retryableEvents.forEach((bufferedEvent) => {
165
+ const { eventId } = bufferedEvent;
166
+ const { name } = bufferedEvent.event;
257
167
  if (bufferedEvent.resendLimit-- > 0) {
258
168
  logger.debug('Resending event.', {
259
- eventId: eventId,
260
- name: name,
169
+ eventId,
170
+ name,
261
171
  remainingAttempts: bufferedEvent.resendLimit,
262
172
  });
263
- eligibleEvents.push((_a = {}, _a[eventId] = bufferedEvent, _a));
173
+ eligibleEvents.push({ [eventId]: bufferedEvent });
264
174
  return;
265
175
  }
266
176
  logger.debug('No retry attempts remaining for event.', {
267
- eventId: eventId,
268
- name: name,
177
+ eventId,
178
+ name,
269
179
  });
270
180
  });
271
181
  // add the events to the front of the buffer
272
- (_a = this._buffer).unshift.apply(_a, __spreadArray([], __read(eligibleEvents), false));
273
- };
274
- PinpointEventBuffer.prototype._bufferToMap = function (buffer) {
275
- return buffer.reduce(function (acc, curVal) {
276
- var _a = __read(Object.entries(curVal), 1), _b = __read(_a[0], 2), key = _b[0], value = _b[1];
182
+ this._buffer.unshift(...eligibleEvents);
183
+ }
184
+ _bufferToMap(buffer) {
185
+ return buffer.reduce((acc, curVal) => {
186
+ const [[key, value]] = Object.entries(curVal);
277
187
  acc[key] = value;
278
188
  return acc;
279
189
  }, {});
280
- };
281
- return PinpointEventBuffer;
282
- }());
190
+ }
191
+ }
283
192
  exports.PinpointEventBuffer = PinpointEventBuffer;