@aws-amplify/core 6.0.1-api-v6-models.9351bcf.0 → 6.0.1-api-v6-models.891fe0d.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/lib/BackgroundProcessManager/BackgroundManagerNotOpenError.js +4 -21
  2. package/lib/BackgroundProcessManager/BackgroundProcessManager.js +126 -245
  3. package/lib/Cache/StorageCache.js +32 -92
  4. package/lib/Cache/StorageCache.native.js +38 -140
  5. package/lib/Cache/StorageCacheCommon.js +271 -600
  6. package/lib/Cache/index.js +1 -1
  7. package/lib/Cache/utils/CacheList.js +42 -66
  8. package/lib/Cache/utils/cacheHelpers.js +6 -8
  9. package/lib/Cache/utils/errorHelpers.js +6 -7
  10. package/lib/Hub/index.js +34 -74
  11. package/lib/I18n/I18n.js +24 -39
  12. package/lib/I18n/errorHelpers.js +4 -5
  13. package/lib/I18n/index.js +24 -27
  14. package/lib/I18n/types.js +3 -4
  15. package/lib/Logger/ConsoleLogger.js +53 -129
  16. package/lib/Mutex/Mutex.js +15 -19
  17. package/lib/Platform/customUserAgent.js +13 -26
  18. package/lib/Platform/detectFramework.js +12 -13
  19. package/lib/Platform/detection/Angular.js +4 -5
  20. package/lib/Platform/detection/Expo.js +1 -1
  21. package/lib/Platform/detection/Next.js +1 -1
  22. package/lib/Platform/detection/Nuxt.js +1 -1
  23. package/lib/Platform/detection/React.js +5 -5
  24. package/lib/Platform/detection/Svelte.js +2 -2
  25. package/lib/Platform/detection/Vue.js +1 -1
  26. package/lib/Platform/detection/Web.js +1 -1
  27. package/lib/Platform/detection/helpers.js +7 -7
  28. package/lib/Platform/detection/index.js +13 -13
  29. package/lib/Platform/index.js +26 -55
  30. package/lib/Platform/types.d.ts +1 -1
  31. package/lib/Platform/types.js +1 -1
  32. package/lib/Platform/version.d.ts +1 -1
  33. package/lib/Platform/version.js +1 -1
  34. package/lib/Reachability/Reachability.js +20 -48
  35. package/lib/Reachability/Reachability.native.js +12 -16
  36. package/lib/ServiceWorker/ServiceWorker.js +80 -136
  37. package/lib/ServiceWorker/errorHelpers.js +6 -7
  38. package/lib/Signer/DateUtils.d.ts +9 -0
  39. package/lib/Signer/DateUtils.js +19 -28
  40. package/lib/Signer/Signer.d.ts +9 -0
  41. package/lib/Signer/Signer.js +58 -54
  42. package/lib/adapterCore/error/AmplifyServerContextError.js +9 -27
  43. package/lib/adapterCore/serverContext/serverContext.js +8 -8
  44. package/lib/adapterCore/serverContext/serverContextRegistry.js +6 -6
  45. package/lib/awsClients/cognitoIdentity/base.js +25 -73
  46. package/lib/awsClients/cognitoIdentity/getCredentialsForIdentity.js +24 -68
  47. package/lib/awsClients/cognitoIdentity/getId.js +19 -62
  48. package/lib/awsClients/pinpoint/base.js +12 -15
  49. package/lib/awsClients/pinpoint/errorHelpers.js +4 -5
  50. package/lib/awsClients/pinpoint/getInAppMessages.js +24 -68
  51. package/lib/awsClients/pinpoint/putEvents.js +26 -70
  52. package/lib/awsClients/pinpoint/updateEndpoint.js +28 -72
  53. package/lib/clients/endpoints/getDnsSuffix.js +7 -29
  54. package/lib/clients/handlers/authenticated.js +5 -5
  55. package/lib/clients/handlers/fetch.js +41 -98
  56. package/lib/clients/handlers/unauthenticated.js +4 -4
  57. package/lib/clients/internal/composeServiceApi.js +17 -67
  58. package/lib/clients/internal/composeTransferHandler.js +9 -11
  59. package/lib/clients/middleware/retry/defaultRetryDecider.js +18 -75
  60. package/lib/clients/middleware/retry/isClockSkewError.js +2 -4
  61. package/lib/clients/middleware/retry/jitteredBackoff.js +5 -5
  62. package/lib/clients/middleware/retry/middleware.js +61 -125
  63. package/lib/clients/middleware/signing/middleware.js +24 -86
  64. package/lib/clients/middleware/signing/signer/signatureV4/index.js +0 -1
  65. package/lib/clients/middleware/signing/signer/signatureV4/presignUrl.js +21 -56
  66. package/lib/clients/middleware/signing/signer/signatureV4/signRequest.js +14 -25
  67. package/lib/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.js +7 -7
  68. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalHeaders.js +8 -30
  69. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.js +11 -38
  70. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalRequest.js +13 -17
  71. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalUri.js +5 -8
  72. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCredentialScope.js +2 -2
  73. package/lib/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.js +3 -3
  74. package/lib/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.js +7 -11
  75. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSignature.js +9 -10
  76. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSignedHeaders.js +4 -6
  77. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSigningKey.js +8 -8
  78. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSigningValues.js +15 -16
  79. package/lib/clients/middleware/signing/signer/signatureV4/utils/getStringToSign.js +2 -4
  80. package/lib/clients/middleware/signing/utils/extendedEncodeURIComponent.js +3 -5
  81. package/lib/clients/middleware/signing/utils/getSkewCorrectedDate.js +1 -3
  82. package/lib/clients/middleware/signing/utils/getUpdatedSystemClockOffset.js +2 -2
  83. package/lib/clients/middleware/signing/utils/isClockSkewed.js +4 -6
  84. package/lib/clients/middleware/userAgent/middleware.js +14 -63
  85. package/lib/clients/serde/json.js +30 -96
  86. package/lib/clients/serde/responseInfo.js +12 -18
  87. package/lib/clients/utils/memoization.js +3 -3
  88. package/lib/constants.js +1 -1
  89. package/lib/errors/AmplifyError.js +9 -28
  90. package/lib/errors/PlatformNotSupportedError.js +7 -24
  91. package/lib/errors/createAssertionFunction.js +12 -15
  92. package/lib/errors/errorHelpers.js +7 -8
  93. package/lib/index.d.ts +1 -1
  94. package/lib/libraryUtils.d.ts +4 -0
  95. package/lib/libraryUtils.js +13 -3
  96. package/lib/parseAWSExports.js +109 -100
  97. package/lib/providers/kinesis/types/kinesis.d.ts +1 -1
  98. package/lib/providers/kinesis-firehose/types/kinesis-firehose.d.ts +1 -1
  99. package/lib/providers/personalize/types/personalize.d.ts +1 -1
  100. package/lib/providers/pinpoint/apis/flushEvents.js +8 -8
  101. package/lib/providers/pinpoint/apis/record.js +58 -93
  102. package/lib/providers/pinpoint/apis/updateEndpoint.js +65 -112
  103. package/lib/providers/pinpoint/types/pinpoint.d.ts +3 -1
  104. package/lib/providers/pinpoint/utils/PinpointEventBuffer.js +105 -196
  105. package/lib/providers/pinpoint/utils/cacheEndpointId.js +12 -49
  106. package/lib/providers/pinpoint/utils/getCacheKey.js +2 -2
  107. package/lib/providers/pinpoint/utils/getEndpointId.js +7 -51
  108. package/lib/providers/pinpoint/utils/getEventBuffer.js +19 -21
  109. package/lib/providers/pinpoint/utils/isAppInForeground.js +1 -1
  110. package/lib/providers/pinpoint/utils/isAppInForeground.native.js +2 -2
  111. package/lib/providers/pinpoint/utils/resolveEndpointId.js +20 -71
  112. package/lib/singleton/Amplify.d.ts +4 -0
  113. package/lib/singleton/Amplify.js +21 -103
  114. package/lib/singleton/Analytics/types.d.ts +5 -1
  115. package/lib/singleton/Auth/index.js +48 -115
  116. package/lib/singleton/Auth/types.d.ts +2 -2
  117. package/lib/singleton/Auth/utils/errorHelpers.js +7 -8
  118. package/lib/singleton/Auth/utils/index.js +18 -19
  119. package/lib/singleton/Predictions/types.d.ts +49 -0
  120. package/lib/singleton/Predictions/types.js +4 -0
  121. package/lib/singleton/apis/clearCredentials.js +1 -1
  122. package/lib/singleton/apis/fetchAuthSession.js +3 -3
  123. package/lib/singleton/apis/internal/fetchAuthSession.js +1 -1
  124. package/lib/singleton/apis/server/fetchAuthSession.js +3 -3
  125. package/lib/singleton/types.d.ts +3 -1
  126. package/lib/storage/CookieStorage.js +29 -99
  127. package/lib/storage/CookieStorage.native.js +5 -22
  128. package/lib/storage/DefaultStorage.js +6 -23
  129. package/lib/storage/DefaultStorage.native.js +18 -64
  130. package/lib/storage/InMemoryStorage.js +17 -23
  131. package/lib/storage/KeyValueStorage.js +24 -80
  132. package/lib/storage/SessionStorage.js +6 -23
  133. package/lib/storage/index.js +4 -4
  134. package/lib/storage/utils.js +7 -11
  135. package/lib/tsconfig.tsbuildinfo +1 -1
  136. package/lib/utils/WordArray.d.ts +7 -0
  137. package/lib/utils/WordArray.js +49 -0
  138. package/lib/utils/amplifyUrl/index.js +2 -2
  139. package/lib/utils/amplifyUrl/polyfill.native.js +1 -1
  140. package/lib/utils/amplifyUuid/index.d.ts +1 -1
  141. package/lib/utils/amplifyUuid/index.js +2 -2
  142. package/lib/utils/amplifyUuid/polyfill.native.js +1 -1
  143. package/lib/utils/convert/base64/base64Decoder.js +2 -2
  144. package/lib/utils/convert/base64/base64Encoder.js +5 -6
  145. package/lib/utils/convert/base64/bytesToString.js +1 -1
  146. package/lib/utils/cryptoSecureRandomInt.d.ts +1 -0
  147. package/lib/utils/cryptoSecureRandomInt.js +16 -0
  148. package/lib/utils/deepFreeze.js +6 -28
  149. package/lib/utils/generateRandomString.js +4 -4
  150. package/lib/utils/getClientInfo/getClientInfo.android.js +7 -7
  151. package/lib/utils/getClientInfo/getClientInfo.ios.js +12 -12
  152. package/lib/utils/getClientInfo/getClientInfo.js +16 -16
  153. package/lib/utils/globalHelpers/index.js +4 -4
  154. package/lib/utils/globalHelpers/index.native.js +6 -6
  155. package/lib/utils/isBrowser.js +1 -3
  156. package/lib/utils/isWebWorker.js +2 -2
  157. package/lib/utils/retry/NonRetryableError.js +5 -23
  158. package/lib/utils/retry/isNonRetryableError.js +2 -2
  159. package/lib/utils/retry/jitteredBackoff.js +6 -7
  160. package/lib/utils/retry/jitteredExponentialRetry.js +4 -7
  161. package/lib/utils/retry/retry.js +50 -140
  162. package/lib/utils/sessionListener/SessionListener.js +17 -19
  163. package/lib/utils/sessionListener/SessionListener.native.js +18 -22
  164. package/lib/utils/sessionListener/constants.d.ts +2 -0
  165. package/lib/utils/sessionListener/constants.js +8 -0
  166. package/lib/utils/sessionListener/index.d.ts +1 -0
  167. package/lib/utils/sessionListener/index.js +5 -2
  168. package/lib/utils/urlSafeDecode.js +2 -2
  169. package/lib/utils/urlSafeEncode.js +1 -1
  170. package/lib-esm/BackgroundProcessManager/BackgroundManagerNotOpenError.js +4 -22
  171. package/lib-esm/BackgroundProcessManager/BackgroundProcessManager.js +124 -244
  172. package/lib-esm/Cache/StorageCache.js +26 -87
  173. package/lib-esm/Cache/StorageCache.native.js +33 -136
  174. package/lib-esm/Cache/StorageCacheCommon.js +267 -597
  175. package/lib-esm/Cache/constants.js +2 -2
  176. package/lib-esm/Cache/index.js +1 -1
  177. package/lib-esm/Cache/utils/CacheList.js +41 -66
  178. package/lib-esm/Cache/utils/cacheHelpers.js +5 -7
  179. package/lib-esm/Cache/utils/errorHelpers.js +6 -7
  180. package/lib-esm/Hub/index.js +34 -75
  181. package/lib-esm/I18n/I18n.js +23 -39
  182. package/lib-esm/I18n/errorHelpers.js +4 -5
  183. package/lib-esm/I18n/index.js +21 -25
  184. package/lib-esm/I18n/types.js +3 -5
  185. package/lib-esm/Logger/ConsoleLogger.js +52 -128
  186. package/lib-esm/Mutex/Mutex.js +15 -20
  187. package/lib-esm/Platform/customUserAgent.js +13 -26
  188. package/lib-esm/Platform/detectFramework.js +11 -12
  189. package/lib-esm/Platform/detection/Angular.js +3 -4
  190. package/lib-esm/Platform/detection/React.js +4 -4
  191. package/lib-esm/Platform/detection/Svelte.js +1 -1
  192. package/lib-esm/Platform/detection/helpers.js +7 -7
  193. package/lib-esm/Platform/detection/index.js +3 -3
  194. package/lib-esm/Platform/index.js +23 -52
  195. package/lib-esm/Platform/types.d.ts +1 -1
  196. package/lib-esm/Platform/types.js +1 -1
  197. package/lib-esm/Platform/version.d.ts +1 -1
  198. package/lib-esm/Platform/version.js +1 -1
  199. package/lib-esm/Reachability/Reachability.js +18 -46
  200. package/lib-esm/Reachability/Reachability.native.js +10 -15
  201. package/lib-esm/ServiceWorker/ServiceWorker.js +74 -131
  202. package/lib-esm/ServiceWorker/errorHelpers.js +6 -7
  203. package/lib-esm/Signer/DateUtils.d.ts +9 -0
  204. package/lib-esm/Signer/DateUtils.js +20 -29
  205. package/lib-esm/Signer/Signer.d.ts +9 -0
  206. package/lib-esm/Signer/Signer.js +54 -51
  207. package/lib-esm/adapterCore/error/AmplifyServerContextError.js +8 -27
  208. package/lib-esm/adapterCore/serverContext/serverContext.js +6 -6
  209. package/lib-esm/adapterCore/serverContext/serverContextRegistry.js +7 -7
  210. package/lib-esm/awsClients/cognitoIdentity/base.js +21 -69
  211. package/lib-esm/awsClients/cognitoIdentity/getCredentialsForIdentity.js +22 -66
  212. package/lib-esm/awsClients/cognitoIdentity/getId.js +17 -60
  213. package/lib-esm/awsClients/pinpoint/base.js +8 -11
  214. package/lib-esm/awsClients/pinpoint/errorHelpers.js +4 -5
  215. package/lib-esm/awsClients/pinpoint/getInAppMessages.js +19 -63
  216. package/lib-esm/awsClients/pinpoint/putEvents.js +20 -64
  217. package/lib-esm/awsClients/pinpoint/updateEndpoint.js +23 -67
  218. package/lib-esm/clients/endpoints/getDnsSuffix.js +6 -28
  219. package/lib-esm/clients/endpoints/partitions.js +2 -2
  220. package/lib-esm/clients/handlers/authenticated.js +1 -1
  221. package/lib-esm/clients/handlers/fetch.js +40 -97
  222. package/lib-esm/clients/handlers/unauthenticated.js +1 -1
  223. package/lib-esm/clients/internal/composeServiceApi.js +17 -67
  224. package/lib-esm/clients/internal/composeTransferHandler.js +9 -11
  225. package/lib-esm/clients/middleware/retry/defaultRetryDecider.js +17 -74
  226. package/lib-esm/clients/middleware/retry/isClockSkewError.js +2 -4
  227. package/lib-esm/clients/middleware/retry/jitteredBackoff.js +4 -4
  228. package/lib-esm/clients/middleware/retry/middleware.js +61 -125
  229. package/lib-esm/clients/middleware/signing/middleware.js +21 -83
  230. package/lib-esm/clients/middleware/signing/signer/signatureV4/constants.js +17 -17
  231. package/lib-esm/clients/middleware/signing/signer/signatureV4/index.js +0 -1
  232. package/lib-esm/clients/middleware/signing/signer/signatureV4/presignUrl.js +17 -52
  233. package/lib-esm/clients/middleware/signing/signer/signatureV4/signRequest.js +10 -21
  234. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.js +5 -5
  235. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalHeaders.js +8 -30
  236. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.js +11 -38
  237. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalRequest.js +8 -12
  238. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalUri.js +5 -8
  239. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCredentialScope.js +1 -1
  240. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.js +3 -3
  241. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.js +5 -9
  242. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSignature.js +5 -6
  243. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSignedHeaders.js +4 -6
  244. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSigningKey.js +6 -6
  245. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSigningValues.js +13 -14
  246. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getStringToSign.js +1 -3
  247. package/lib-esm/clients/middleware/signing/utils/extendedEncodeURIComponent.js +3 -5
  248. package/lib-esm/clients/middleware/signing/utils/getSkewCorrectedDate.js +1 -3
  249. package/lib-esm/clients/middleware/signing/utils/getUpdatedSystemClockOffset.js +1 -1
  250. package/lib-esm/clients/middleware/signing/utils/isClockSkewed.js +3 -5
  251. package/lib-esm/clients/middleware/userAgent/middleware.js +14 -63
  252. package/lib-esm/clients/serde/json.js +29 -95
  253. package/lib-esm/clients/serde/responseInfo.js +11 -17
  254. package/lib-esm/clients/utils/memoization.js +3 -3
  255. package/lib-esm/constants.js +5 -5
  256. package/lib-esm/errors/AmplifyError.js +9 -29
  257. package/lib-esm/errors/PlatformNotSupportedError.js +5 -23
  258. package/lib-esm/errors/createAssertionFunction.js +11 -14
  259. package/lib-esm/errors/errorHelpers.js +6 -7
  260. package/lib-esm/index.d.ts +1 -1
  261. package/lib-esm/libraryUtils.d.ts +4 -0
  262. package/lib-esm/libraryUtils.js +4 -0
  263. package/lib-esm/parseAWSExports.js +108 -99
  264. package/lib-esm/providers/kinesis/types/kinesis.d.ts +1 -1
  265. package/lib-esm/providers/kinesis-firehose/types/kinesis-firehose.d.ts +1 -1
  266. package/lib-esm/providers/personalize/types/personalize.d.ts +1 -1
  267. package/lib-esm/providers/pinpoint/apis/flushEvents.js +6 -6
  268. package/lib-esm/providers/pinpoint/apis/record.js +54 -89
  269. package/lib-esm/providers/pinpoint/apis/updateEndpoint.js +61 -108
  270. package/lib-esm/providers/pinpoint/types/pinpoint.d.ts +3 -1
  271. package/lib-esm/providers/pinpoint/utils/PinpointEventBuffer.js +102 -194
  272. package/lib-esm/providers/pinpoint/utils/cacheEndpointId.js +10 -47
  273. package/lib-esm/providers/pinpoint/utils/constants.js +4 -4
  274. package/lib-esm/providers/pinpoint/utils/getCacheKey.js +2 -2
  275. package/lib-esm/providers/pinpoint/utils/getEndpointId.js +5 -49
  276. package/lib-esm/providers/pinpoint/utils/getEventBuffer.js +17 -19
  277. package/lib-esm/providers/pinpoint/utils/isAppInForeground.js +1 -1
  278. package/lib-esm/providers/pinpoint/utils/isAppInForeground.native.js +1 -1
  279. package/lib-esm/providers/pinpoint/utils/resolveEndpointId.js +16 -67
  280. package/lib-esm/singleton/Amplify.d.ts +4 -0
  281. package/lib-esm/singleton/Amplify.js +18 -101
  282. package/lib-esm/singleton/Analytics/types.d.ts +5 -1
  283. package/lib-esm/singleton/Auth/index.js +48 -116
  284. package/lib-esm/singleton/Auth/types.d.ts +2 -2
  285. package/lib-esm/singleton/Auth/utils/errorHelpers.js +7 -8
  286. package/lib-esm/singleton/Auth/utils/index.js +16 -17
  287. package/lib-esm/singleton/Predictions/types.d.ts +49 -0
  288. package/lib-esm/singleton/Predictions/types.js +3 -0
  289. package/lib-esm/singleton/apis/fetchAuthSession.js +1 -1
  290. package/lib-esm/singleton/apis/internal/fetchAuthSession.js +1 -1
  291. package/lib-esm/singleton/apis/server/fetchAuthSession.js +1 -1
  292. package/lib-esm/singleton/types.d.ts +3 -1
  293. package/lib-esm/storage/CookieStorage.js +28 -99
  294. package/lib-esm/storage/CookieStorage.native.js +4 -22
  295. package/lib-esm/storage/DefaultStorage.js +4 -22
  296. package/lib-esm/storage/DefaultStorage.native.js +17 -64
  297. package/lib-esm/storage/InMemoryStorage.js +17 -24
  298. package/lib-esm/storage/KeyValueStorage.js +23 -80
  299. package/lib-esm/storage/SessionStorage.js +4 -22
  300. package/lib-esm/storage/index.js +3 -3
  301. package/lib-esm/storage/utils.js +6 -10
  302. package/lib-esm/tsconfig.tsbuildinfo +1 -1
  303. package/lib-esm/utils/WordArray.d.ts +7 -0
  304. package/lib-esm/utils/WordArray.js +46 -0
  305. package/lib-esm/utils/amplifyUrl/index.js +2 -2
  306. package/lib-esm/utils/amplifyUuid/index.d.ts +1 -1
  307. package/lib-esm/utils/amplifyUuid/index.js +1 -1
  308. package/lib-esm/utils/convert/base64/base64Decoder.js +2 -2
  309. package/lib-esm/utils/convert/base64/base64Encoder.js +4 -5
  310. package/lib-esm/utils/convert/base64/bytesToString.js +1 -1
  311. package/lib-esm/utils/cryptoSecureRandomInt.d.ts +1 -0
  312. package/lib-esm/utils/cryptoSecureRandomInt.js +12 -0
  313. package/lib-esm/utils/deepFreeze.js +6 -28
  314. package/lib-esm/utils/generateRandomString.js +4 -4
  315. package/lib-esm/utils/getClientInfo/getClientInfo.android.js +5 -5
  316. package/lib-esm/utils/getClientInfo/getClientInfo.ios.js +10 -10
  317. package/lib-esm/utils/getClientInfo/getClientInfo.js +15 -15
  318. package/lib-esm/utils/globalHelpers/index.js +3 -3
  319. package/lib-esm/utils/globalHelpers/index.native.js +4 -4
  320. package/lib-esm/utils/isBrowser.js +1 -3
  321. package/lib-esm/utils/isWebWorker.js +2 -2
  322. package/lib-esm/utils/retry/NonRetryableError.js +5 -24
  323. package/lib-esm/utils/retry/constants.js +1 -1
  324. package/lib-esm/utils/retry/isNonRetryableError.js +2 -2
  325. package/lib-esm/utils/retry/jitteredBackoff.js +5 -6
  326. package/lib-esm/utils/retry/jitteredExponentialRetry.js +1 -4
  327. package/lib-esm/utils/retry/retry.js +48 -138
  328. package/lib-esm/utils/sessionListener/SessionListener.js +16 -19
  329. package/lib-esm/utils/sessionListener/SessionListener.native.js +17 -22
  330. package/lib-esm/utils/sessionListener/constants.d.ts +2 -0
  331. package/lib-esm/utils/sessionListener/constants.js +5 -0
  332. package/lib-esm/utils/sessionListener/index.d.ts +1 -0
  333. package/lib-esm/utils/sessionListener/index.js +2 -1
  334. package/lib-esm/utils/urlSafeDecode.js +2 -2
  335. package/lib-esm/utils/urlSafeEncode.js +1 -1
  336. package/package.json +11 -24
  337. package/src/Cache/types/index.ts +4 -4
  338. package/src/Platform/types.ts +1 -1
  339. package/src/Platform/version.ts +1 -1
  340. package/src/Signer/DateUtils.ts +10 -2
  341. package/src/Signer/Signer.ts +9 -2
  342. package/src/clients/middleware/signing/signer/signatureV4/index.ts +0 -1
  343. package/src/index.ts +1 -0
  344. package/src/libraryUtils.ts +7 -1
  345. package/src/parseAWSExports.ts +45 -6
  346. package/src/providers/kinesis/types/kinesis.ts +1 -1
  347. package/src/providers/kinesis-firehose/types/kinesis-firehose.ts +1 -1
  348. package/src/providers/personalize/types/personalize.ts +1 -1
  349. package/src/providers/pinpoint/apis/record.ts +22 -5
  350. package/src/providers/pinpoint/types/pinpoint.ts +3 -1
  351. package/src/singleton/Amplify.ts +9 -52
  352. package/src/singleton/Analytics/types.ts +9 -4
  353. package/src/singleton/Auth/types.ts +2 -2
  354. package/src/singleton/Predictions/types.ts +61 -0
  355. package/src/singleton/types.ts +3 -1
  356. package/src/utils/WordArray.ts +57 -0
  357. package/src/utils/amplifyUuid/index.ts +1 -1
  358. package/src/utils/cryptoSecureRandomInt.ts +14 -0
  359. package/src/utils/sessionListener/constants.ts +6 -0
  360. package/src/utils/sessionListener/index.ts +1 -0
@@ -1,52 +1,5 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- var __assign = (this && this.__assign) || function () {
4
- __assign = Object.assign || function(t) {
5
- for (var s, i = 1, n = arguments.length; i < n; i++) {
6
- s = arguments[i];
7
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8
- t[p] = s[p];
9
- }
10
- return t;
11
- };
12
- return __assign.apply(this, arguments);
13
- };
14
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
- return new (P || (P = Promise))(function (resolve, reject) {
17
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
- step((generator = generator.apply(thisArg, _arguments || [])).next());
21
- });
22
- };
23
- var __generator = (this && this.__generator) || function (thisArg, body) {
24
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
25
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
26
- function verb(n) { return function (v) { return step([n, v]); }; }
27
- function step(op) {
28
- if (f) throw new TypeError("Generator is already executing.");
29
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
- 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;
31
- if (y = 0, t) op = [op[0] & 2, t.value];
32
- switch (op[0]) {
33
- case 0: case 1: t = op; break;
34
- case 4: _.label++; return { value: op[1], done: false };
35
- case 5: _.label++; y = op[1]; op = [0]; continue;
36
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
37
- default:
38
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
39
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
40
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
41
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
42
- if (t[2]) _.ops.pop();
43
- _.trys.pop(); continue;
44
- }
45
- op = body.call(thisArg, _);
46
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
47
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
48
- }
49
- };
50
3
  import { amplifyUuid } from '../../../utils/amplifyUuid';
51
4
  import { getClientInfo } from '../../../utils/getClientInfo';
52
5
  import { updateEndpoint as clientUpdateEndpoint, } from '../../../awsClients/pinpoint';
@@ -54,65 +7,65 @@ import { cacheEndpointId, getEndpointId } from '../utils';
54
7
  /**
55
8
  * @internal
56
9
  */
57
- export var updateEndpoint = function (_a) {
58
- 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;
59
- return __awaiter(void 0, void 0, void 0, function () {
60
- var endpointId, createdEndpointId, _b, customProperties, demographic, email, location, metrics, name, plan, clientInfo, mergedDemographic, shouldAddAttributes, attributes, input;
61
- return __generator(this, function (_c) {
62
- switch (_c.label) {
63
- case 0: return [4 /*yield*/, getEndpointId(appId, category)];
64
- case 1:
65
- endpointId = _c.sent();
66
- createdEndpointId = !endpointId ? amplifyUuid() : undefined;
67
- _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;
68
- clientInfo = getClientInfo();
69
- mergedDemographic = __assign({ appVersion: clientInfo.appVersion, make: clientInfo.make, model: clientInfo.model, modelVersion: clientInfo.version, platform: clientInfo.platform }, demographic);
70
- shouldAddAttributes = email || customProperties || name || plan;
71
- attributes = __assign(__assign(__assign(__assign({}, (email && { email: [email] })), (name && { name: [name] })), (plan && { plan: [plan] })), customProperties);
72
- input = {
73
- ApplicationId: appId,
74
- EndpointId: endpointId !== null && endpointId !== void 0 ? endpointId : createdEndpointId,
75
- EndpointRequest: {
76
- RequestId: amplifyUuid(),
77
- EffectiveDate: new Date().toISOString(),
78
- ChannelType: channelType,
79
- Address: address,
80
- Attributes: shouldAddAttributes ? attributes : undefined,
81
- Demographic: {
82
- AppVersion: mergedDemographic.appVersion,
83
- Locale: mergedDemographic.locale,
84
- Make: mergedDemographic.make,
85
- Model: mergedDemographic.model,
86
- ModelVersion: mergedDemographic.modelVersion,
87
- Platform: mergedDemographic.platform,
88
- PlatformVersion: mergedDemographic.platformVersion,
89
- Timezone: mergedDemographic.timezone,
90
- },
91
- Location: {
92
- City: location === null || location === void 0 ? void 0 : location.city,
93
- Country: location === null || location === void 0 ? void 0 : location.country,
94
- Latitude: location === null || location === void 0 ? void 0 : location.latitude,
95
- Longitude: location === null || location === void 0 ? void 0 : location.longitude,
96
- PostalCode: location === null || location === void 0 ? void 0 : location.postalCode,
97
- Region: location === null || location === void 0 ? void 0 : location.region,
98
- },
99
- Metrics: metrics,
100
- OptOut: optOut,
101
- User: {
102
- UserId: userId !== null && userId !== void 0 ? userId : identityId,
103
- UserAttributes: userAttributes,
104
- },
105
- },
106
- };
107
- return [4 /*yield*/, clientUpdateEndpoint({ credentials: credentials, region: region, userAgentValue: userAgentValue }, input)];
108
- case 2:
109
- _c.sent();
110
- // if we had to create an endpoint id, we need to now cache it
111
- if (!!createdEndpointId) {
112
- return [2 /*return*/, cacheEndpointId(appId, category, createdEndpointId)];
113
- }
114
- return [2 /*return*/];
115
- }
116
- });
117
- });
10
+ export const updateEndpoint = async ({ address, appId, category, channelType, credentials, identityId, optOut, region, userAttributes, userId, userProfile, userAgentValue, }) => {
11
+ const endpointId = await getEndpointId(appId, category);
12
+ // only generate a new endpoint id if one was not found in cache
13
+ const createdEndpointId = !endpointId ? amplifyUuid() : undefined;
14
+ const { customProperties, demographic, email, location, metrics, name, plan, } = userProfile ?? {};
15
+ const clientInfo = getClientInfo();
16
+ const mergedDemographic = {
17
+ appVersion: clientInfo.appVersion,
18
+ make: clientInfo.make,
19
+ model: clientInfo.model,
20
+ modelVersion: clientInfo.version,
21
+ platform: clientInfo.platform,
22
+ ...demographic,
23
+ };
24
+ const shouldAddAttributes = email || customProperties || name || plan;
25
+ const attributes = {
26
+ ...(email && { email: [email] }),
27
+ ...(name && { name: [name] }),
28
+ ...(plan && { plan: [plan] }),
29
+ ...customProperties,
30
+ };
31
+ const input = {
32
+ ApplicationId: appId,
33
+ EndpointId: endpointId ?? createdEndpointId,
34
+ EndpointRequest: {
35
+ RequestId: amplifyUuid(),
36
+ EffectiveDate: new Date().toISOString(),
37
+ ChannelType: channelType,
38
+ Address: address,
39
+ Attributes: shouldAddAttributes ? attributes : undefined,
40
+ Demographic: {
41
+ AppVersion: mergedDemographic.appVersion,
42
+ Locale: mergedDemographic.locale,
43
+ Make: mergedDemographic.make,
44
+ Model: mergedDemographic.model,
45
+ ModelVersion: mergedDemographic.modelVersion,
46
+ Platform: mergedDemographic.platform,
47
+ PlatformVersion: mergedDemographic.platformVersion,
48
+ Timezone: mergedDemographic.timezone,
49
+ },
50
+ Location: {
51
+ City: location?.city,
52
+ Country: location?.country,
53
+ Latitude: location?.latitude,
54
+ Longitude: location?.longitude,
55
+ PostalCode: location?.postalCode,
56
+ Region: location?.region,
57
+ },
58
+ Metrics: metrics,
59
+ OptOut: optOut,
60
+ User: {
61
+ UserId: userId ?? identityId,
62
+ UserAttributes: userAttributes,
63
+ },
64
+ },
65
+ };
66
+ await clientUpdateEndpoint({ credentials, region, userAgentValue }, input);
67
+ // if we had to create an endpoint id, we need to now cache it
68
+ if (!!createdEndpointId) {
69
+ return cacheEndpointId(appId, category, createdEndpointId);
70
+ }
118
71
  };
@@ -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,85 +1,13 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- var __assign = (this && this.__assign) || function () {
4
- __assign = Object.assign || function(t) {
5
- for (var s, i = 1, n = arguments.length; i < n; i++) {
6
- s = arguments[i];
7
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8
- t[p] = s[p];
9
- }
10
- return t;
11
- };
12
- return __assign.apply(this, arguments);
13
- };
14
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
- return new (P || (P = Promise))(function (resolve, reject) {
17
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
- step((generator = generator.apply(thisArg, _arguments || [])).next());
21
- });
22
- };
23
- var __generator = (this && this.__generator) || function (thisArg, body) {
24
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
25
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
26
- function verb(n) { return function (v) { return step([n, v]); }; }
27
- function step(op) {
28
- if (f) throw new TypeError("Generator is already executing.");
29
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
- 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;
31
- if (y = 0, t) op = [op[0] & 2, t.value];
32
- switch (op[0]) {
33
- case 0: case 1: t = op; break;
34
- case 4: _.label++; return { value: op[1], done: false };
35
- case 5: _.label++; y = op[1]; op = [0]; continue;
36
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
37
- default:
38
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
39
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
40
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
41
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
42
- if (t[2]) _.ops.pop();
43
- _.trys.pop(); continue;
44
- }
45
- op = body.call(thisArg, _);
46
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
47
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
48
- }
49
- };
50
- var __read = (this && this.__read) || function (o, n) {
51
- var m = typeof Symbol === "function" && o[Symbol.iterator];
52
- if (!m) return o;
53
- var i = m.call(o), r, ar = [], e;
54
- try {
55
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
56
- }
57
- catch (error) { e = { error: error }; }
58
- finally {
59
- try {
60
- if (r && !r.done && (m = i["return"])) m.call(i);
61
- }
62
- finally { if (e) throw e.error; }
63
- }
64
- return ar;
65
- };
66
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
67
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
68
- if (ar || !(i in from)) {
69
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
70
- ar[i] = from[i];
71
- }
72
- }
73
- return to.concat(ar || Array.prototype.slice.call(from));
74
- };
75
3
  import { ConsoleLogger as Logger } from '../../../Logger';
76
4
  import { putEvents, } from '../../../awsClients/pinpoint';
77
5
  import { isAppInForeground } from './isAppInForeground';
78
- var logger = new Logger('PinpointEventBuffer');
79
- var RETRYABLE_CODES = [429, 500];
80
- var ACCEPTED_CODES = [202];
81
- var PinpointEventBuffer = /** @class */ (function () {
82
- function PinpointEventBuffer(config) {
6
+ const logger = new Logger('PinpointEventBuffer');
7
+ const RETRYABLE_CODES = [429, 500];
8
+ const ACCEPTED_CODES = [202];
9
+ export class PinpointEventBuffer {
10
+ constructor(config) {
83
11
  this._interval = undefined;
84
12
  this._pause = false;
85
13
  this._flush = false;
@@ -88,96 +16,85 @@ var PinpointEventBuffer = /** @class */ (function () {
88
16
  this._sendBatch = this._sendBatch.bind(this);
89
17
  this._startLoop();
90
18
  }
91
- PinpointEventBuffer.prototype.push = function (event) {
92
- var _a;
19
+ push(event) {
93
20
  if (this._buffer.length >= this._config.bufferSize) {
94
21
  logger.debug('Exceeded Pinpoint event buffer limits, event dropped.', {
95
22
  eventId: event.eventId,
96
23
  });
97
24
  return;
98
25
  }
99
- this._buffer.push((_a = {}, _a[event.eventId] = event, _a));
100
- };
101
- PinpointEventBuffer.prototype.pause = function () {
26
+ this._buffer.push({ [event.eventId]: event });
27
+ }
28
+ pause() {
102
29
  this._pause = true;
103
- };
104
- PinpointEventBuffer.prototype.resume = function () {
30
+ }
31
+ resume() {
105
32
  this._pause = false;
106
- };
107
- PinpointEventBuffer.prototype.flush = function () {
33
+ }
34
+ flush() {
108
35
  this._flush = true;
109
- };
110
- PinpointEventBuffer.prototype.identityHasChanged = function (identityId) {
36
+ }
37
+ identityHasChanged(identityId) {
111
38
  return this._config.identityId !== identityId;
112
- };
113
- PinpointEventBuffer.prototype.flushAll = function () {
39
+ }
40
+ flushAll() {
114
41
  this._putEvents(this._buffer.splice(0, this._buffer.length));
115
- };
116
- PinpointEventBuffer.prototype._startLoop = function () {
42
+ }
43
+ _startLoop() {
117
44
  if (this._interval) {
118
45
  clearInterval(this._interval);
119
46
  }
120
- var flushInterval = this._config.flushInterval;
47
+ const { flushInterval } = this._config;
121
48
  this._interval = setInterval(this._sendBatch, flushInterval);
122
- };
123
- PinpointEventBuffer.prototype._sendBatch = function () {
124
- var bufferLength = this._buffer.length;
49
+ }
50
+ _sendBatch() {
51
+ const bufferLength = this._buffer.length;
125
52
  if (this._flush && !bufferLength && this._interval) {
126
53
  clearInterval(this._interval);
127
54
  }
128
55
  if (this._pause || !bufferLength || !isAppInForeground()) {
129
56
  return;
130
57
  }
131
- var flushSize = this._config.flushSize;
132
- var batchSize = Math.min(flushSize, bufferLength);
133
- var bufferSubset = this._buffer.splice(0, batchSize);
58
+ const { flushSize } = this._config;
59
+ const batchSize = Math.min(flushSize, bufferLength);
60
+ const bufferSubset = this._buffer.splice(0, batchSize);
134
61
  this._putEvents(bufferSubset);
135
- };
136
- PinpointEventBuffer.prototype._putEvents = function (buffer) {
137
- return __awaiter(this, void 0, void 0, function () {
138
- var eventMap, batchEventParams, _a, credentials, region, userAgentValue, data, err_1;
139
- return __generator(this, function (_b) {
140
- switch (_b.label) {
141
- case 0:
142
- eventMap = this._bufferToMap(buffer);
143
- batchEventParams = this._generateBatchEventParams(eventMap);
144
- _b.label = 1;
145
- case 1:
146
- _b.trys.push([1, 3, , 4]);
147
- _a = this._config, credentials = _a.credentials, region = _a.region, userAgentValue = _a.userAgentValue;
148
- return [4 /*yield*/, putEvents({
149
- credentials: credentials,
150
- region: region,
151
- userAgentValue: userAgentValue,
152
- }, batchEventParams)];
153
- case 2:
154
- data = _b.sent();
155
- this._processPutEventsSuccessResponse(data, eventMap);
156
- return [3 /*break*/, 4];
157
- case 3:
158
- err_1 = _b.sent();
159
- return [2 /*return*/, this._handlePutEventsFailure(err_1, eventMap)];
160
- case 4: return [2 /*return*/];
161
- }
162
- });
163
- });
164
- };
165
- PinpointEventBuffer.prototype._generateBatchEventParams = function (eventMap) {
166
- var batchItem = {};
167
- Object.values(eventMap).forEach(function (item) {
168
- var _a;
169
- var _b, _c;
170
- var event = item.event, timestamp = item.timestamp, endpointId = item.endpointId, eventId = item.eventId, session = item.session;
171
- var name = event.name, attributes = event.attributes, metrics = event.metrics;
62
+ }
63
+ async _putEvents(buffer) {
64
+ const eventMap = this._bufferToMap(buffer);
65
+ const batchEventParams = this._generateBatchEventParams(eventMap);
66
+ try {
67
+ const { credentials, region, userAgentValue } = this._config;
68
+ const data = await putEvents({
69
+ credentials,
70
+ region,
71
+ userAgentValue,
72
+ }, batchEventParams);
73
+ this._processPutEventsSuccessResponse(data, eventMap);
74
+ }
75
+ catch (err) {
76
+ return this._handlePutEventsFailure(err, eventMap);
77
+ }
78
+ }
79
+ _generateBatchEventParams(eventMap) {
80
+ const batchItem = {};
81
+ Object.values(eventMap).forEach(item => {
82
+ const { event, timestamp, endpointId, eventId, session } = item;
83
+ const { name, attributes, metrics } = event;
172
84
  batchItem[endpointId] = {
173
- Endpoint: __assign({}, (_b = batchItem[endpointId]) === null || _b === void 0 ? void 0 : _b.Endpoint),
174
- Events: __assign(__assign({}, (_c = batchItem[endpointId]) === null || _c === void 0 ? void 0 : _c.Events), (_a = {}, _a[eventId] = {
175
- EventType: name,
176
- Timestamp: new Date(timestamp).toISOString(),
177
- Attributes: attributes,
178
- Metrics: metrics,
179
- Session: session,
180
- }, _a)),
85
+ Endpoint: {
86
+ ...batchItem[endpointId]?.Endpoint,
87
+ },
88
+ Events: {
89
+ ...batchItem[endpointId]?.Events,
90
+ [eventId]: {
91
+ EventType: name,
92
+ Timestamp: new Date(timestamp).toISOString(),
93
+ Attributes: attributes,
94
+ Metrics: metrics,
95
+ Session: session,
96
+ },
97
+ },
181
98
  };
182
99
  });
183
100
  return {
@@ -186,42 +103,37 @@ var PinpointEventBuffer = /** @class */ (function () {
186
103
  BatchItem: batchItem,
187
104
  },
188
105
  };
189
- };
190
- PinpointEventBuffer.prototype._handlePutEventsFailure = function (err, eventMap) {
106
+ }
107
+ _handlePutEventsFailure(err, eventMap) {
191
108
  logger.debug('putEvents call to Pinpoint failed.', err);
192
- var statusCode = err.$metadata && err.$metadata.httpStatusCode;
109
+ const statusCode = err.$metadata && err.$metadata.httpStatusCode;
193
110
  if (RETRYABLE_CODES.includes(statusCode)) {
194
- var retryableEvents = Object.values(eventMap);
111
+ const retryableEvents = Object.values(eventMap);
195
112
  this._retry(retryableEvents);
196
113
  return;
197
114
  }
198
- };
199
- PinpointEventBuffer.prototype._processPutEventsSuccessResponse = function (data, eventMap) {
200
- var _a;
201
- var _b = ((_a = data.EventsResponse) !== null && _a !== void 0 ? _a : {}).Results, Results = _b === void 0 ? {} : _b;
202
- var retryableEvents = [];
203
- Object.entries(Results).forEach(function (_a) {
204
- var _b;
205
- var _c = __read(_a, 2), endpointId = _c[0], endpointValues = _c[1];
206
- var responses = (_b = endpointValues.EventsItemResponse) !== null && _b !== void 0 ? _b : {};
207
- Object.entries(responses).forEach(function (_a) {
208
- var _b, _c;
209
- var _d = __read(_a, 2), eventId = _d[0], eventValues = _d[1];
210
- var eventObject = eventMap[eventId];
115
+ }
116
+ _processPutEventsSuccessResponse(data, eventMap) {
117
+ const { Results = {} } = data.EventsResponse ?? {};
118
+ const retryableEvents = [];
119
+ Object.entries(Results).forEach(([endpointId, endpointValues]) => {
120
+ const responses = endpointValues.EventsItemResponse ?? {};
121
+ Object.entries(responses).forEach(([eventId, eventValues]) => {
122
+ const eventObject = eventMap[eventId];
211
123
  if (!eventObject) {
212
124
  return;
213
125
  }
214
- var _e = eventValues !== null && eventValues !== void 0 ? eventValues : {}, StatusCode = _e.StatusCode, Message = _e.Message;
126
+ const { StatusCode, Message } = eventValues ?? {};
215
127
  // manually crafting handlers response to keep API consistant
216
- var response = {
128
+ const response = {
217
129
  EventsResponse: {
218
- Results: (_b = {},
219
- _b[endpointId] = {
220
- EventsItemResponse: (_c = {},
221
- _c[eventId] = { StatusCode: StatusCode, Message: Message },
222
- _c),
130
+ Results: {
131
+ [endpointId]: {
132
+ EventsItemResponse: {
133
+ [eventId]: { StatusCode, Message },
134
+ },
223
135
  },
224
- _b),
136
+ },
225
137
  },
226
138
  };
227
139
  if (StatusCode && ACCEPTED_CODES.includes(StatusCode)) {
@@ -231,10 +143,10 @@ var PinpointEventBuffer = /** @class */ (function () {
231
143
  retryableEvents.push(eventObject);
232
144
  return;
233
145
  }
234
- var name = eventObject.event.name;
146
+ const { name } = eventObject.event;
235
147
  logger.warn('Pinpoint event failed to send.', {
236
- eventId: eventId,
237
- name: name,
148
+ eventId,
149
+ name,
238
150
  message: Message,
239
151
  });
240
152
  });
@@ -242,39 +154,35 @@ var PinpointEventBuffer = /** @class */ (function () {
242
154
  if (retryableEvents.length) {
243
155
  this._retry(retryableEvents);
244
156
  }
245
- };
246
- PinpointEventBuffer.prototype._retry = function (retryableEvents) {
247
- var _a;
157
+ }
158
+ _retry(retryableEvents) {
248
159
  // retryable events that haven't reached the resendLimit
249
- var eligibleEvents = [];
250
- retryableEvents.forEach(function (bufferedEvent) {
251
- var _a;
252
- var eventId = bufferedEvent.eventId;
253
- var name = bufferedEvent.event.name;
160
+ const eligibleEvents = [];
161
+ retryableEvents.forEach((bufferedEvent) => {
162
+ const { eventId } = bufferedEvent;
163
+ const { name } = bufferedEvent.event;
254
164
  if (bufferedEvent.resendLimit-- > 0) {
255
165
  logger.debug('Resending event.', {
256
- eventId: eventId,
257
- name: name,
166
+ eventId,
167
+ name,
258
168
  remainingAttempts: bufferedEvent.resendLimit,
259
169
  });
260
- eligibleEvents.push((_a = {}, _a[eventId] = bufferedEvent, _a));
170
+ eligibleEvents.push({ [eventId]: bufferedEvent });
261
171
  return;
262
172
  }
263
173
  logger.debug('No retry attempts remaining for event.', {
264
- eventId: eventId,
265
- name: name,
174
+ eventId,
175
+ name,
266
176
  });
267
177
  });
268
178
  // add the events to the front of the buffer
269
- (_a = this._buffer).unshift.apply(_a, __spreadArray([], __read(eligibleEvents), false));
270
- };
271
- PinpointEventBuffer.prototype._bufferToMap = function (buffer) {
272
- return buffer.reduce(function (acc, curVal) {
273
- var _a = __read(Object.entries(curVal), 1), _b = __read(_a[0], 2), key = _b[0], value = _b[1];
179
+ this._buffer.unshift(...eligibleEvents);
180
+ }
181
+ _bufferToMap(buffer) {
182
+ return buffer.reduce((acc, curVal) => {
183
+ const [[key, value]] = Object.entries(curVal);
274
184
  acc[key] = value;
275
185
  return acc;
276
186
  }, {});
277
- };
278
- return PinpointEventBuffer;
279
- }());
280
- export { PinpointEventBuffer };
187
+ }
188
+ }
@@ -1,41 +1,5 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
- return new (P || (P = Promise))(function (resolve, reject) {
6
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
- step((generator = generator.apply(thisArg, _arguments || [])).next());
10
- });
11
- };
12
- var __generator = (this && this.__generator) || function (thisArg, body) {
13
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
14
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
15
- function verb(n) { return function (v) { return step([n, v]); }; }
16
- function step(op) {
17
- if (f) throw new TypeError("Generator is already executing.");
18
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
19
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
20
- if (y = 0, t) op = [op[0] & 2, t.value];
21
- switch (op[0]) {
22
- case 0: case 1: t = op; break;
23
- case 4: _.label++; return { value: op[1], done: false };
24
- case 5: _.label++; y = op[1]; op = [0]; continue;
25
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
26
- default:
27
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
28
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
29
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
30
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
31
- if (t[2]) _.ops.pop();
32
- _.trys.pop(); continue;
33
- }
34
- op = body.call(thisArg, _);
35
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
36
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
37
- }
38
- };
39
3
  import { Cache } from '../../..';
40
4
  import { getCacheKey } from './getCacheKey';
41
5
  /**
@@ -43,15 +7,14 @@ import { getCacheKey } from './getCacheKey';
43
7
  *
44
8
  * @internal
45
9
  */
46
- export var cacheEndpointId = function (appId, category, endpointId) { return __awaiter(void 0, void 0, void 0, function () {
47
- var cacheKey, ttl, expiration;
48
- return __generator(this, function (_a) {
49
- cacheKey = getCacheKey(appId, category);
50
- ttl = 1000 * 60 * 60 * 24 * 365 * 100;
51
- expiration = new Date().getTime() + ttl;
52
- return [2 /*return*/, Cache.setItem(cacheKey, endpointId, {
53
- expires: expiration,
54
- priority: 1,
55
- })];
10
+ export const cacheEndpointId = async (appId, category, endpointId) => {
11
+ const cacheKey = getCacheKey(appId, category);
12
+ // Set a longer TTL to avoid endpoint id being deleted after the default TTL (3 days)
13
+ // Also set its priority to the highest to reduce its chance of being deleted when cache is full
14
+ const ttl = 1000 * 60 * 60 * 24 * 365 * 100; // 100 years
15
+ const expiration = new Date().getTime() + ttl;
16
+ return Cache.setItem(cacheKey, endpointId, {
17
+ expires: expiration,
18
+ priority: 1,
56
19
  });
57
- }); };
20
+ };