@aws-amplify/analytics 7.0.1-preview-testing.034e780.0 → 7.0.1-server-generate-client.1e317a1.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 (363) hide show
  1. package/kinesis/package.json +7 -0
  2. package/kinesis-firehose/package.json +7 -0
  3. package/lib/apis/disable.d.ts +8 -0
  4. package/lib/apis/disable.js +14 -0
  5. package/lib/apis/enable.d.ts +7 -0
  6. package/lib/apis/enable.js +13 -0
  7. package/lib/apis/index.d.ts +2 -0
  8. package/lib/apis/index.js +9 -0
  9. package/lib/errors/AnalyticsError.d.ts +2 -2
  10. package/lib/errors/assertValidationError.d.ts +1 -1
  11. package/lib/errors/assertValidationError.js +7 -3
  12. package/lib/errors/validation.d.ts +5 -2
  13. package/lib/errors/validation.js +16 -4
  14. package/lib/index.d.ts +2 -1
  15. package/lib/index.js +6 -1
  16. package/lib/providers/kinesis/apis/flushEvents.d.ts +8 -0
  17. package/lib/providers/kinesis/apis/flushEvents.js +38 -0
  18. package/lib/providers/kinesis/apis/index.d.ts +2 -0
  19. package/lib/providers/kinesis/apis/index.js +9 -0
  20. package/lib/providers/kinesis/apis/record.d.ts +2 -0
  21. package/lib/providers/kinesis/apis/record.js +48 -0
  22. package/lib/providers/kinesis/index.d.ts +1 -0
  23. package/lib/providers/kinesis/index.js +8 -0
  24. package/lib/providers/kinesis/types/buffer.d.ts +15 -0
  25. package/lib/providers/kinesis/types/buffer.js +4 -0
  26. package/lib/providers/kinesis/types/index.d.ts +2 -0
  27. package/lib/providers/kinesis/types/index.js +4 -0
  28. package/lib/providers/kinesis/types/inputs.d.ts +6 -0
  29. package/lib/providers/kinesis/types/inputs.js +4 -0
  30. package/lib/providers/kinesis/utils/constants.d.ts +6 -0
  31. package/lib/providers/kinesis/utils/constants.js +11 -0
  32. package/lib/providers/kinesis/utils/getEventBuffer.d.ts +3 -0
  33. package/lib/providers/kinesis/utils/getEventBuffer.js +103 -0
  34. package/lib/providers/kinesis/utils/resolveConfig.d.ts +7 -0
  35. package/lib/providers/kinesis/utils/resolveConfig.js +24 -0
  36. package/lib/providers/kinesis-firehose/apis/flushEvents.d.ts +8 -0
  37. package/lib/providers/kinesis-firehose/apis/flushEvents.js +37 -0
  38. package/lib/providers/kinesis-firehose/apis/index.d.ts +2 -0
  39. package/lib/providers/kinesis-firehose/apis/index.js +9 -0
  40. package/lib/providers/kinesis-firehose/apis/record.d.ts +2 -0
  41. package/lib/providers/kinesis-firehose/apis/record.js +45 -0
  42. package/lib/providers/kinesis-firehose/index.d.ts +1 -0
  43. package/lib/providers/kinesis-firehose/index.js +8 -0
  44. package/lib/providers/kinesis-firehose/types/buffer.d.ts +15 -0
  45. package/lib/providers/kinesis-firehose/types/index.d.ts +2 -0
  46. package/lib/providers/kinesis-firehose/types/index.js +4 -0
  47. package/lib/providers/kinesis-firehose/types/inputs.d.ts +5 -0
  48. package/lib/providers/kinesis-firehose/types/inputs.js +4 -0
  49. package/lib/providers/kinesis-firehose/utils/constants.d.ts +6 -0
  50. package/lib/providers/kinesis-firehose/utils/constants.js +11 -0
  51. package/lib/providers/kinesis-firehose/utils/getEventBuffer.d.ts +3 -0
  52. package/lib/providers/kinesis-firehose/utils/getEventBuffer.js +100 -0
  53. package/lib/providers/kinesis-firehose/utils/index.d.ts +2 -0
  54. package/lib/providers/kinesis-firehose/utils/index.js +9 -0
  55. package/lib/providers/kinesis-firehose/utils/resolveConfig.d.ts +7 -0
  56. package/lib/providers/kinesis-firehose/utils/resolveConfig.js +24 -0
  57. package/lib/providers/personalize/apis/flushEvents.d.ts +8 -0
  58. package/lib/providers/personalize/apis/flushEvents.js +36 -0
  59. package/lib/providers/personalize/apis/index.d.ts +2 -0
  60. package/lib/providers/personalize/apis/index.js +9 -0
  61. package/lib/providers/personalize/apis/record.d.ts +2 -0
  62. package/lib/providers/personalize/apis/record.js +87 -0
  63. package/lib/providers/personalize/index.d.ts +1 -0
  64. package/lib/providers/personalize/index.js +8 -0
  65. package/lib/providers/personalize/types/buffer.d.ts +16 -0
  66. package/lib/providers/personalize/types/buffer.js +4 -0
  67. package/lib/providers/personalize/types/index.d.ts +2 -0
  68. package/lib/providers/personalize/types/index.js +4 -0
  69. package/lib/providers/personalize/types/inputs.d.ts +7 -0
  70. package/lib/providers/personalize/types/inputs.js +4 -0
  71. package/lib/providers/personalize/utils/autoTrackMedia.d.ts +10 -0
  72. package/lib/providers/personalize/utils/autoTrackMedia.js +183 -0
  73. package/lib/providers/personalize/utils/cachedSession.d.ts +5 -0
  74. package/lib/providers/personalize/utils/cachedSession.js +61 -0
  75. package/lib/providers/personalize/utils/constants.d.ts +7 -0
  76. package/lib/providers/personalize/utils/constants.js +12 -0
  77. package/lib/providers/personalize/utils/getEventBuffer.d.ts +3 -0
  78. package/lib/providers/personalize/utils/getEventBuffer.js +100 -0
  79. package/lib/providers/personalize/utils/index.d.ts +5 -0
  80. package/lib/providers/personalize/utils/index.js +17 -0
  81. package/lib/providers/personalize/utils/resolveConfig.d.ts +7 -0
  82. package/lib/providers/personalize/utils/resolveConfig.js +25 -0
  83. package/lib/providers/pinpoint/apis/configureAutoTrack.d.ts +15 -0
  84. package/lib/providers/pinpoint/apis/configureAutoTrack.js +35 -0
  85. package/lib/providers/pinpoint/apis/flushEvents.d.ts +8 -0
  86. package/lib/providers/pinpoint/apis/flushEvents.js +28 -0
  87. package/lib/providers/pinpoint/apis/identifyUser.d.ts +7 -5
  88. package/lib/providers/pinpoint/apis/identifyUser.js +15 -11
  89. package/lib/providers/pinpoint/apis/index.d.ts +2 -0
  90. package/lib/providers/pinpoint/apis/index.js +5 -1
  91. package/lib/providers/pinpoint/apis/record.d.ts +8 -14
  92. package/lib/providers/pinpoint/apis/record.js +22 -24
  93. package/lib/providers/pinpoint/index.d.ts +2 -2
  94. package/lib/providers/pinpoint/index.js +3 -1
  95. package/lib/providers/pinpoint/types/index.d.ts +2 -2
  96. package/lib/providers/pinpoint/types/index.js +0 -3
  97. package/lib/providers/pinpoint/types/inputs.d.ts +8 -17
  98. package/lib/providers/pinpoint/types/options.d.ts +5 -0
  99. package/lib/providers/pinpoint/types/options.js +4 -0
  100. package/lib/providers/pinpoint/utils/resolveCredentials.d.ts +1 -6
  101. package/lib/trackers/EventTracker.d.ts +10 -0
  102. package/lib/trackers/EventTracker.js +104 -0
  103. package/lib/trackers/PageViewTracker.d.ts +18 -0
  104. package/lib/trackers/PageViewTracker.js +116 -0
  105. package/lib/trackers/SessionTracker.d.ts +13 -0
  106. package/lib/trackers/SessionTracker.js +73 -0
  107. package/lib/trackers/SessionTracker.native.d.ts +13 -0
  108. package/lib/trackers/SessionTracker.native.js +73 -0
  109. package/lib/trackers/index.d.ts +3 -0
  110. package/lib/trackers/index.js +11 -0
  111. package/lib/tsconfig.tsbuildinfo +1 -1
  112. package/lib/types/index.d.ts +3 -1
  113. package/lib/types/index.js +0 -2
  114. package/lib/types/inputs.d.ts +35 -0
  115. package/lib/types/inputs.js +4 -0
  116. package/lib/types/kinesis.d.ts +8 -0
  117. package/lib/types/kinesis.js +4 -0
  118. package/lib/types/options.d.ts +4 -0
  119. package/lib/types/options.js +4 -0
  120. package/lib/types/trackers.d.ts +22 -0
  121. package/lib/types/trackers.js +4 -0
  122. package/lib/utils/eventBuffer/EventBuffer.d.ts +16 -0
  123. package/lib/utils/eventBuffer/EventBuffer.js +91 -0
  124. package/lib/utils/eventBuffer/index.d.ts +2 -0
  125. package/lib/utils/eventBuffer/index.js +7 -0
  126. package/lib/utils/eventBuffer/types.d.ts +8 -0
  127. package/lib/utils/eventBuffer/types.js +4 -0
  128. package/lib/utils/groupBy.d.ts +1 -0
  129. package/lib/utils/groupBy.js +15 -0
  130. package/lib/utils/index.d.ts +7 -0
  131. package/lib/utils/index.js +22 -0
  132. package/lib/utils/resolveCredentials.d.ts +4 -0
  133. package/lib/utils/resolveCredentials.js +21 -0
  134. package/lib/utils/statusHelpers.d.ts +6 -0
  135. package/lib/utils/statusHelpers.js +19 -0
  136. package/lib/utils/trackerConfigHelpers.d.ts +5 -0
  137. package/lib/utils/trackerConfigHelpers.js +15 -0
  138. package/lib/utils/trackerConfigHelpers.native.d.ts +5 -0
  139. package/lib/utils/trackerConfigHelpers.native.js +14 -0
  140. package/lib/utils/trackerHelpers.d.ts +9 -0
  141. package/lib/utils/trackerHelpers.js +44 -0
  142. package/lib-esm/apis/disable.d.ts +8 -0
  143. package/lib-esm/apis/disable.js +11 -0
  144. package/lib-esm/apis/enable.d.ts +7 -0
  145. package/lib-esm/apis/enable.js +10 -0
  146. package/lib-esm/apis/index.d.ts +2 -0
  147. package/lib-esm/apis/index.js +4 -0
  148. package/lib-esm/errors/AnalyticsError.d.ts +2 -2
  149. package/lib-esm/errors/AnalyticsError.js +1 -1
  150. package/lib-esm/errors/assertValidationError.d.ts +1 -1
  151. package/lib-esm/errors/assertValidationError.js +7 -3
  152. package/lib-esm/errors/validation.d.ts +5 -2
  153. package/lib-esm/errors/validation.js +16 -4
  154. package/lib-esm/index.d.ts +2 -1
  155. package/lib-esm/index.js +2 -1
  156. package/lib-esm/providers/kinesis/apis/flushEvents.d.ts +8 -0
  157. package/lib-esm/providers/kinesis/apis/flushEvents.js +34 -0
  158. package/lib-esm/providers/kinesis/apis/index.d.ts +2 -0
  159. package/lib-esm/providers/kinesis/apis/index.js +4 -0
  160. package/lib-esm/providers/kinesis/apis/record.d.ts +2 -0
  161. package/lib-esm/providers/kinesis/apis/record.js +44 -0
  162. package/lib-esm/providers/kinesis/index.d.ts +1 -0
  163. package/lib-esm/providers/kinesis/index.js +3 -0
  164. package/lib-esm/providers/kinesis/types/buffer.d.ts +15 -0
  165. package/lib-esm/providers/kinesis/types/buffer.js +3 -0
  166. package/lib-esm/providers/kinesis/types/index.d.ts +2 -0
  167. package/lib-esm/providers/kinesis/types/index.js +3 -0
  168. package/lib-esm/providers/kinesis/types/inputs.d.ts +6 -0
  169. package/lib-esm/providers/kinesis/types/inputs.js +3 -0
  170. package/lib-esm/providers/kinesis/utils/constants.d.ts +6 -0
  171. package/lib-esm/providers/kinesis/utils/constants.js +8 -0
  172. package/lib-esm/providers/kinesis/utils/getEventBuffer.d.ts +3 -0
  173. package/lib-esm/providers/kinesis/utils/getEventBuffer.js +99 -0
  174. package/lib-esm/providers/kinesis/utils/resolveConfig.d.ts +7 -0
  175. package/lib-esm/providers/kinesis/utils/resolveConfig.js +20 -0
  176. package/lib-esm/providers/kinesis-firehose/apis/flushEvents.d.ts +8 -0
  177. package/lib-esm/providers/kinesis-firehose/apis/flushEvents.js +33 -0
  178. package/lib-esm/providers/kinesis-firehose/apis/index.d.ts +2 -0
  179. package/lib-esm/providers/kinesis-firehose/apis/index.js +4 -0
  180. package/lib-esm/providers/kinesis-firehose/apis/record.d.ts +2 -0
  181. package/lib-esm/providers/kinesis-firehose/apis/record.js +41 -0
  182. package/lib-esm/providers/kinesis-firehose/index.d.ts +1 -0
  183. package/lib-esm/providers/kinesis-firehose/index.js +3 -0
  184. package/lib-esm/providers/kinesis-firehose/types/buffer.d.ts +15 -0
  185. package/lib-esm/providers/kinesis-firehose/types/index.d.ts +2 -0
  186. package/lib-esm/providers/kinesis-firehose/types/index.js +3 -0
  187. package/lib-esm/providers/kinesis-firehose/types/inputs.d.ts +5 -0
  188. package/lib-esm/providers/kinesis-firehose/types/inputs.js +3 -0
  189. package/lib-esm/providers/kinesis-firehose/utils/constants.d.ts +6 -0
  190. package/lib-esm/providers/kinesis-firehose/utils/constants.js +8 -0
  191. package/lib-esm/providers/kinesis-firehose/utils/getEventBuffer.d.ts +3 -0
  192. package/lib-esm/providers/kinesis-firehose/utils/getEventBuffer.js +96 -0
  193. package/lib-esm/providers/kinesis-firehose/utils/index.d.ts +2 -0
  194. package/lib-esm/providers/kinesis-firehose/utils/index.js +4 -0
  195. package/lib-esm/providers/kinesis-firehose/utils/resolveConfig.d.ts +7 -0
  196. package/lib-esm/providers/kinesis-firehose/utils/resolveConfig.js +20 -0
  197. package/lib-esm/providers/personalize/apis/flushEvents.d.ts +8 -0
  198. package/lib-esm/providers/personalize/apis/flushEvents.js +32 -0
  199. package/lib-esm/providers/personalize/apis/index.d.ts +2 -0
  200. package/lib-esm/providers/personalize/apis/index.js +4 -0
  201. package/lib-esm/providers/personalize/apis/record.d.ts +2 -0
  202. package/lib-esm/providers/personalize/apis/record.js +83 -0
  203. package/lib-esm/providers/personalize/index.d.ts +1 -0
  204. package/lib-esm/providers/personalize/index.js +3 -0
  205. package/lib-esm/providers/personalize/types/buffer.d.ts +16 -0
  206. package/lib-esm/providers/personalize/types/buffer.js +3 -0
  207. package/lib-esm/providers/personalize/types/index.d.ts +2 -0
  208. package/lib-esm/providers/personalize/types/index.js +3 -0
  209. package/lib-esm/providers/personalize/types/inputs.d.ts +7 -0
  210. package/lib-esm/providers/personalize/types/inputs.js +3 -0
  211. package/lib-esm/providers/personalize/utils/autoTrackMedia.d.ts +10 -0
  212. package/lib-esm/providers/personalize/utils/autoTrackMedia.js +179 -0
  213. package/lib-esm/providers/personalize/utils/cachedSession.d.ts +5 -0
  214. package/lib-esm/providers/personalize/utils/cachedSession.js +56 -0
  215. package/lib-esm/providers/personalize/utils/constants.d.ts +7 -0
  216. package/lib-esm/providers/personalize/utils/constants.js +9 -0
  217. package/lib-esm/providers/personalize/utils/getEventBuffer.d.ts +3 -0
  218. package/lib-esm/providers/personalize/utils/getEventBuffer.js +96 -0
  219. package/lib-esm/providers/personalize/utils/index.d.ts +5 -0
  220. package/lib-esm/providers/personalize/utils/index.js +7 -0
  221. package/lib-esm/providers/personalize/utils/resolveConfig.d.ts +7 -0
  222. package/lib-esm/providers/personalize/utils/resolveConfig.js +21 -0
  223. package/lib-esm/providers/pinpoint/apis/configureAutoTrack.d.ts +15 -0
  224. package/lib-esm/providers/pinpoint/apis/configureAutoTrack.js +31 -0
  225. package/lib-esm/providers/pinpoint/apis/flushEvents.d.ts +8 -0
  226. package/lib-esm/providers/pinpoint/apis/flushEvents.js +24 -0
  227. package/lib-esm/providers/pinpoint/apis/identifyUser.d.ts +7 -5
  228. package/lib-esm/providers/pinpoint/apis/identifyUser.js +13 -9
  229. package/lib-esm/providers/pinpoint/apis/index.d.ts +2 -0
  230. package/lib-esm/providers/pinpoint/apis/index.js +2 -0
  231. package/lib-esm/providers/pinpoint/apis/record.d.ts +8 -14
  232. package/lib-esm/providers/pinpoint/apis/record.js +20 -22
  233. package/lib-esm/providers/pinpoint/index.d.ts +2 -2
  234. package/lib-esm/providers/pinpoint/index.js +1 -1
  235. package/lib-esm/providers/pinpoint/types/index.d.ts +2 -2
  236. package/lib-esm/providers/pinpoint/types/index.js +1 -1
  237. package/lib-esm/providers/pinpoint/types/inputs.d.ts +8 -17
  238. package/lib-esm/providers/pinpoint/types/options.d.ts +5 -0
  239. package/lib-esm/providers/pinpoint/types/options.js +3 -0
  240. package/lib-esm/providers/pinpoint/utils/resolveCredentials.d.ts +1 -6
  241. package/lib-esm/trackers/EventTracker.d.ts +10 -0
  242. package/lib-esm/trackers/EventTracker.js +101 -0
  243. package/lib-esm/trackers/PageViewTracker.d.ts +18 -0
  244. package/lib-esm/trackers/PageViewTracker.js +113 -0
  245. package/lib-esm/trackers/SessionTracker.d.ts +13 -0
  246. package/lib-esm/trackers/SessionTracker.js +70 -0
  247. package/lib-esm/trackers/SessionTracker.native.d.ts +13 -0
  248. package/lib-esm/trackers/SessionTracker.native.js +70 -0
  249. package/lib-esm/trackers/index.d.ts +3 -0
  250. package/lib-esm/trackers/index.js +5 -0
  251. package/lib-esm/tsconfig.tsbuildinfo +1 -1
  252. package/lib-esm/types/index.d.ts +3 -1
  253. package/lib-esm/types/index.js +1 -1
  254. package/lib-esm/types/inputs.d.ts +35 -0
  255. package/lib-esm/types/inputs.js +3 -0
  256. package/lib-esm/types/kinesis.d.ts +8 -0
  257. package/lib-esm/types/kinesis.js +3 -0
  258. package/lib-esm/types/options.d.ts +4 -0
  259. package/lib-esm/types/options.js +3 -0
  260. package/lib-esm/types/trackers.d.ts +22 -0
  261. package/lib-esm/types/trackers.js +3 -0
  262. package/lib-esm/utils/eventBuffer/EventBuffer.d.ts +16 -0
  263. package/lib-esm/utils/eventBuffer/EventBuffer.js +88 -0
  264. package/lib-esm/utils/eventBuffer/index.d.ts +2 -0
  265. package/lib-esm/utils/eventBuffer/index.js +3 -0
  266. package/lib-esm/utils/eventBuffer/types.d.ts +8 -0
  267. package/lib-esm/utils/eventBuffer/types.js +3 -0
  268. package/lib-esm/utils/groupBy.d.ts +1 -0
  269. package/lib-esm/utils/groupBy.js +11 -0
  270. package/lib-esm/utils/index.d.ts +7 -0
  271. package/lib-esm/utils/index.js +9 -0
  272. package/lib-esm/utils/resolveCredentials.d.ts +4 -0
  273. package/lib-esm/utils/resolveCredentials.js +17 -0
  274. package/lib-esm/utils/statusHelpers.d.ts +6 -0
  275. package/lib-esm/utils/statusHelpers.js +13 -0
  276. package/lib-esm/utils/trackerConfigHelpers.d.ts +5 -0
  277. package/lib-esm/utils/trackerConfigHelpers.js +11 -0
  278. package/lib-esm/utils/trackerConfigHelpers.native.d.ts +5 -0
  279. package/lib-esm/utils/trackerConfigHelpers.native.js +10 -0
  280. package/lib-esm/utils/trackerHelpers.d.ts +9 -0
  281. package/lib-esm/utils/trackerHelpers.js +40 -0
  282. package/package.json +39 -9
  283. package/personalize/package.json +7 -0
  284. package/src/apis/disable.ts +13 -0
  285. package/src/apis/enable.ts +12 -0
  286. package/src/apis/index.ts +5 -0
  287. package/src/errors/AnalyticsError.ts +5 -2
  288. package/src/errors/assertValidationError.ts +9 -3
  289. package/src/errors/validation.ts +16 -4
  290. package/src/index.ts +4 -0
  291. package/src/providers/kinesis/apis/flushEvents.ts +40 -0
  292. package/src/providers/kinesis/apis/index.ts +5 -0
  293. package/src/providers/kinesis/apis/record.ts +58 -0
  294. package/src/providers/kinesis/index.ts +4 -0
  295. package/src/providers/kinesis/types/buffer.ts +20 -0
  296. package/src/providers/kinesis/types/index.ts +5 -0
  297. package/src/providers/kinesis/types/inputs.ts +10 -0
  298. package/src/providers/kinesis/utils/constants.ts +9 -0
  299. package/src/providers/kinesis/utils/getEventBuffer.ts +110 -0
  300. package/src/providers/kinesis/utils/resolveConfig.ts +36 -0
  301. package/src/providers/kinesis-firehose/apis/flushEvents.ts +39 -0
  302. package/src/providers/kinesis-firehose/apis/index.ts +5 -0
  303. package/src/providers/kinesis-firehose/apis/record.ts +51 -0
  304. package/src/providers/kinesis-firehose/index.ts +4 -0
  305. package/src/providers/kinesis-firehose/types/buffer.ts +20 -0
  306. package/src/providers/kinesis-firehose/types/index.ts +9 -0
  307. package/src/providers/kinesis-firehose/types/inputs.ts +9 -0
  308. package/src/providers/kinesis-firehose/utils/constants.ts +9 -0
  309. package/src/providers/kinesis-firehose/utils/getEventBuffer.ts +118 -0
  310. package/src/providers/kinesis-firehose/utils/index.ts +5 -0
  311. package/src/providers/kinesis-firehose/utils/resolveConfig.ts +36 -0
  312. package/src/providers/personalize/apis/flushEvents.ts +37 -0
  313. package/src/providers/personalize/apis/index.ts +5 -0
  314. package/src/providers/personalize/apis/record.ts +102 -0
  315. package/src/providers/personalize/index.ts +4 -0
  316. package/src/providers/personalize/types/buffer.ts +21 -0
  317. package/src/providers/personalize/types/index.ts +5 -0
  318. package/src/providers/personalize/types/inputs.ts +11 -0
  319. package/src/providers/personalize/utils/autoTrackMedia.ts +232 -0
  320. package/src/providers/personalize/utils/cachedSession.ts +68 -0
  321. package/src/providers/personalize/utils/constants.ts +12 -0
  322. package/src/providers/personalize/utils/getEventBuffer.ts +111 -0
  323. package/src/providers/personalize/utils/index.ts +11 -0
  324. package/src/providers/personalize/utils/resolveConfig.ts +41 -0
  325. package/src/providers/pinpoint/apis/configureAutoTrack.ts +49 -0
  326. package/src/providers/pinpoint/apis/flushEvents.ts +32 -0
  327. package/src/providers/pinpoint/apis/identifyUser.ts +20 -12
  328. package/src/providers/pinpoint/apis/index.ts +2 -0
  329. package/src/providers/pinpoint/apis/record.ts +31 -23
  330. package/src/providers/pinpoint/index.ts +6 -2
  331. package/src/providers/pinpoint/types/index.ts +6 -2
  332. package/src/providers/pinpoint/types/inputs.ts +11 -17
  333. package/src/providers/pinpoint/types/options.ts +12 -0
  334. package/src/trackers/EventTracker.ts +135 -0
  335. package/src/trackers/PageViewTracker.ts +160 -0
  336. package/src/trackers/SessionTracker.native.ts +106 -0
  337. package/src/trackers/SessionTracker.ts +106 -0
  338. package/src/trackers/index.ts +6 -0
  339. package/src/types/index.ts +8 -1
  340. package/src/types/inputs.ts +52 -0
  341. package/src/types/kinesis.ts +13 -0
  342. package/src/types/options.ts +7 -0
  343. package/src/types/trackers.ts +35 -0
  344. package/src/utils/eventBuffer/EventBuffer.ts +84 -0
  345. package/src/utils/eventBuffer/index.ts +5 -0
  346. package/src/utils/eventBuffer/types.ts +12 -0
  347. package/src/utils/groupBy.ts +12 -0
  348. package/src/utils/index.ts +21 -0
  349. package/src/utils/resolveCredentials.ts +14 -0
  350. package/src/utils/statusHelpers.ts +17 -0
  351. package/src/utils/trackerConfigHelpers.native.ts +18 -0
  352. package/src/utils/trackerConfigHelpers.ts +19 -0
  353. package/src/utils/trackerHelpers.ts +57 -0
  354. package/lib/providers/pinpoint/types/errors.d.ts +0 -9
  355. package/lib/providers/pinpoint/types/errors.js +0 -15
  356. package/lib/types/analytics.d.ts +0 -50
  357. package/lib-esm/providers/pinpoint/types/errors.d.ts +0 -9
  358. package/lib-esm/providers/pinpoint/types/errors.js +0 -12
  359. package/lib-esm/types/analytics.d.ts +0 -50
  360. package/src/providers/pinpoint/types/errors.ts +0 -12
  361. package/src/types/analytics.ts +0 -70
  362. /package/lib/{types/analytics.js → providers/kinesis-firehose/types/buffer.js} +0 -0
  363. /package/lib-esm/{types/analytics.js → providers/kinesis-firehose/types/buffer.js} +0 -0
@@ -0,0 +1,58 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { RecordInput } from '../types';
5
+ import { getEventBuffer } from '../utils/getEventBuffer';
6
+ import { resolveConfig } from '../utils/resolveConfig';
7
+ import {
8
+ getAnalyticsUserAgentString,
9
+ isAnalyticsEnabled,
10
+ resolveCredentials,
11
+ } from '../../../utils';
12
+ import { fromUtf8 } from '@smithy/util-utf8';
13
+ import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
14
+ import { ConsoleLogger } from '@aws-amplify/core';
15
+
16
+ const logger = new ConsoleLogger('Kinesis');
17
+
18
+ export const record = ({
19
+ streamName,
20
+ partitionKey,
21
+ data,
22
+ }: RecordInput): void => {
23
+ if (!isAnalyticsEnabled()) {
24
+ logger.debug('Analytics is disabled, event will not be recorded.');
25
+ return;
26
+ }
27
+
28
+ const timestamp = Date.now();
29
+ const { region, bufferSize, flushSize, flushInterval, resendLimit } =
30
+ resolveConfig();
31
+
32
+ resolveCredentials()
33
+ .then(({ credentials, identityId }) => {
34
+ const buffer = getEventBuffer({
35
+ region,
36
+ bufferSize,
37
+ flushSize,
38
+ flushInterval,
39
+ credentials,
40
+ identityId,
41
+ resendLimit,
42
+ userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
43
+ });
44
+
45
+ buffer.append({
46
+ region,
47
+ streamName,
48
+ partitionKey,
49
+ event: ArrayBuffer.isView(data) ? data : fromUtf8(JSON.stringify(data)),
50
+ timestamp,
51
+ retryCount: 0,
52
+ });
53
+ })
54
+ .catch(e => {
55
+ // An error occured while fetching credentials or persisting the event to the buffer
56
+ logger.warn('Failed to record event.', e);
57
+ });
58
+ };
@@ -0,0 +1,4 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export { record, flushEvents } from './apis';
@@ -0,0 +1,20 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { AWSCredentials } from '@aws-amplify/core/internals/utils';
5
+ import { EventBufferConfig } from '../../../utils';
6
+ import { KinesisShard } from '../../../types';
7
+
8
+ export type KinesisBufferEvent = KinesisShard & {
9
+ event: Uint8Array;
10
+ timestamp: number;
11
+ retryCount: number;
12
+ };
13
+
14
+ export type KinesisEventBufferConfig = EventBufferConfig & {
15
+ region: string;
16
+ credentials: AWSCredentials;
17
+ identityId?: string;
18
+ resendLimit?: number;
19
+ userAgentValue?: string;
20
+ };
@@ -0,0 +1,5 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export { RecordInput } from './inputs';
5
+ export { KinesisBufferEvent, KinesisEventBufferConfig } from './buffer';
@@ -0,0 +1,10 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { KinesisEventData } from '../../../types';
5
+
6
+ export type RecordInput = {
7
+ streamName: string;
8
+ partitionKey: string;
9
+ data: KinesisEventData;
10
+ };
@@ -0,0 +1,9 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export const DEFAULT_KINESIS_CONFIG = {
5
+ bufferSize: 1_000,
6
+ flushSize: 100,
7
+ flushInterval: 5_000,
8
+ resendLimit: 5,
9
+ };
@@ -0,0 +1,110 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { KinesisBufferEvent, KinesisEventBufferConfig } from '../types';
5
+ import { EventBuffer, groupBy, IAnalyticsClient } from '../../../utils';
6
+ import { KinesisClient, PutRecordsCommand } from '@aws-sdk/client-kinesis';
7
+
8
+ /**
9
+ * These Records hold cached event buffers and AWS clients.
10
+ * The hash key is determined by the region and session,
11
+ * consisting of a combined value comprising [region, sessionToken, identityId].
12
+ *
13
+ * Only one active session should exist at any given moment.
14
+ * When a new session is initiated, the previous ones should be released.
15
+ * */
16
+ const eventBufferMap: Record<string, EventBuffer<KinesisBufferEvent>> = {};
17
+ const cachedClients: Record<string, KinesisClient> = {};
18
+
19
+ const createKinesisPutRecordsCommand = (
20
+ streamName: string,
21
+ events: KinesisBufferEvent[]
22
+ ): PutRecordsCommand =>
23
+ new PutRecordsCommand({
24
+ StreamName: streamName,
25
+ Records: events.map(event => ({
26
+ PartitionKey: event.partitionKey,
27
+ Data: event.event,
28
+ })),
29
+ });
30
+
31
+ const submitEvents = async (
32
+ events: KinesisBufferEvent[],
33
+ client: KinesisClient,
34
+ resendLimit?: number
35
+ ): Promise<KinesisBufferEvent[]> => {
36
+ const groupedByStreamName = Object.entries(
37
+ groupBy(event => event.streamName, events)
38
+ );
39
+ const requests = groupedByStreamName
40
+ .map(([streamName, events]) =>
41
+ createKinesisPutRecordsCommand(streamName, events)
42
+ )
43
+ .map(command => client.send(command));
44
+
45
+ const responses = await Promise.allSettled(requests);
46
+ const failedEvents = responses
47
+ .map((response, i) =>
48
+ response.status === 'rejected' ? groupedByStreamName[i][1] : []
49
+ )
50
+ .flat();
51
+ return resendLimit
52
+ ? failedEvents
53
+ .filter(event => event.retryCount < resendLimit)
54
+ .map(event => ({ ...event, retryCount: event.retryCount + 1 }))
55
+ .sort((a, b) => a.timestamp - b.timestamp)
56
+ : [];
57
+ };
58
+
59
+ export const getEventBuffer = ({
60
+ region,
61
+ flushInterval,
62
+ flushSize,
63
+ bufferSize,
64
+ credentials,
65
+ identityId,
66
+ resendLimit,
67
+ userAgentValue,
68
+ }: KinesisEventBufferConfig): EventBuffer<KinesisBufferEvent> => {
69
+ const { sessionToken } = credentials;
70
+ const sessionIdentityKey = [region, sessionToken, identityId]
71
+ .filter(x => !!x)
72
+ .join('-');
73
+
74
+ if (!eventBufferMap[sessionIdentityKey]) {
75
+ const getKinesisClient = (): IAnalyticsClient<KinesisBufferEvent> => {
76
+ if (!cachedClients[sessionIdentityKey]) {
77
+ cachedClients[sessionIdentityKey] = new KinesisClient({
78
+ credentials,
79
+ region,
80
+ customUserAgent: userAgentValue,
81
+ });
82
+ }
83
+
84
+ return events =>
85
+ submitEvents(events, cachedClients[sessionIdentityKey], resendLimit);
86
+ };
87
+
88
+ // create new session
89
+ eventBufferMap[sessionIdentityKey] = new EventBuffer<KinesisBufferEvent>(
90
+ {
91
+ flushInterval,
92
+ flushSize,
93
+ bufferSize,
94
+ },
95
+ getKinesisClient
96
+ );
97
+
98
+ // release other sessions
99
+ const releaseSessionKeys = Object.keys(eventBufferMap).filter(
100
+ x => x !== sessionIdentityKey
101
+ );
102
+ for (const releaseSessionKey of releaseSessionKeys) {
103
+ eventBufferMap[releaseSessionKey].release();
104
+ delete eventBufferMap[releaseSessionKey];
105
+ delete cachedClients[releaseSessionKey];
106
+ }
107
+ }
108
+
109
+ return eventBufferMap[sessionIdentityKey];
110
+ };
@@ -0,0 +1,36 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { Amplify } from '@aws-amplify/core';
5
+ import {
6
+ AnalyticsValidationErrorCode,
7
+ assertValidationError,
8
+ } from '../../../errors';
9
+ import { DEFAULT_KINESIS_CONFIG } from './constants';
10
+
11
+ export const resolveConfig = () => {
12
+ const config = Amplify.getConfig().Analytics?.Kinesis;
13
+ const {
14
+ region,
15
+ bufferSize = DEFAULT_KINESIS_CONFIG.bufferSize,
16
+ flushSize = DEFAULT_KINESIS_CONFIG.flushSize,
17
+ flushInterval = DEFAULT_KINESIS_CONFIG.flushInterval,
18
+ resendLimit,
19
+ } = {
20
+ ...DEFAULT_KINESIS_CONFIG,
21
+ ...config,
22
+ };
23
+
24
+ assertValidationError(!!region, AnalyticsValidationErrorCode.NoRegion);
25
+ assertValidationError(
26
+ flushSize < bufferSize,
27
+ AnalyticsValidationErrorCode.InvalidFlushSize
28
+ );
29
+ return {
30
+ region,
31
+ bufferSize,
32
+ flushSize,
33
+ flushInterval,
34
+ resendLimit,
35
+ };
36
+ };
@@ -0,0 +1,39 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { getEventBuffer, resolveConfig } from '../utils';
5
+ import {
6
+ getAnalyticsUserAgentString,
7
+ resolveCredentials,
8
+ } from '../../../utils';
9
+ import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
10
+ import { ConsoleLogger } from '@aws-amplify/core';
11
+
12
+ const logger = new ConsoleLogger('KinesisFirehose');
13
+
14
+ /**
15
+ * Flushes all buffered Kinesis events to the service.
16
+ *
17
+ * @note
18
+ * This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking
19
+ * this API may not be included in the flush.
20
+ */
21
+ export const flushEvents = () => {
22
+ const { region, flushSize, flushInterval, bufferSize, resendLimit } =
23
+ resolveConfig();
24
+ resolveCredentials()
25
+ .then(({ credentials, identityId }) =>
26
+ getEventBuffer({
27
+ region,
28
+ flushSize,
29
+ flushInterval,
30
+ bufferSize,
31
+ credentials,
32
+ identityId,
33
+ resendLimit,
34
+ userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
35
+ })
36
+ )
37
+ .then(eventBuffer => eventBuffer.flushAll())
38
+ .catch(e => logger.warn('Failed to flush events.', e));
39
+ };
@@ -0,0 +1,5 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export { record } from './record';
5
+ export { flushEvents } from './flushEvents';
@@ -0,0 +1,51 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { RecordInput } from '../types';
5
+ import { getEventBuffer, resolveConfig } from '../utils';
6
+ import {
7
+ getAnalyticsUserAgentString,
8
+ isAnalyticsEnabled,
9
+ resolveCredentials,
10
+ } from '../../../utils';
11
+ import { fromUtf8 } from '@smithy/util-utf8';
12
+ import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
13
+ import { ConsoleLogger } from '@aws-amplify/core';
14
+
15
+ const logger = new ConsoleLogger('KinesisFirehose');
16
+
17
+ export const record = ({ streamName, data }: RecordInput): void => {
18
+ if (!isAnalyticsEnabled()) {
19
+ logger.debug('Analytics is disabled, event will not be recorded.');
20
+ return;
21
+ }
22
+
23
+ const timestamp = Date.now();
24
+ const { region, bufferSize, flushSize, flushInterval, resendLimit } =
25
+ resolveConfig();
26
+
27
+ resolveCredentials()
28
+ .then(({ credentials, identityId }) => {
29
+ const buffer = getEventBuffer({
30
+ region,
31
+ credentials,
32
+ identityId,
33
+ bufferSize,
34
+ flushSize,
35
+ flushInterval,
36
+ resendLimit,
37
+ userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
38
+ });
39
+
40
+ buffer.append({
41
+ region,
42
+ streamName,
43
+ event: ArrayBuffer.isView(data) ? data : fromUtf8(JSON.stringify(data)),
44
+ timestamp,
45
+ retryCount: 0,
46
+ });
47
+ })
48
+ .catch(e => {
49
+ logger.warn('Failed to record event.', e);
50
+ });
51
+ };
@@ -0,0 +1,4 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export { record, flushEvents } from './apis';
@@ -0,0 +1,20 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { EventBufferConfig } from '../../../utils';
5
+ import { KinesisStream } from '../../../types';
6
+ import { AWSCredentials } from '@aws-amplify/core/internals/utils';
7
+
8
+ export type KinesisFirehoseBufferEvent = KinesisStream & {
9
+ event: Uint8Array;
10
+ retryCount: number;
11
+ timestamp: number;
12
+ };
13
+
14
+ export type KinesisFirehoseEventBufferConfig = EventBufferConfig & {
15
+ region: string;
16
+ credentials: AWSCredentials;
17
+ identityId?: string;
18
+ resendLimit?: number;
19
+ userAgentValue?: string;
20
+ };
@@ -0,0 +1,9 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export { RecordInput } from './inputs';
5
+
6
+ export {
7
+ KinesisFirehoseBufferEvent,
8
+ KinesisFirehoseEventBufferConfig,
9
+ } from './buffer';
@@ -0,0 +1,9 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { KinesisEventData } from '../../../types';
5
+
6
+ export type RecordInput = {
7
+ streamName: string;
8
+ data: KinesisEventData;
9
+ };
@@ -0,0 +1,9 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export const DEFAULT_KINESIS_FIREHOSE_CONFIG = {
5
+ bufferSize: 1_000,
6
+ flushSize: 100,
7
+ flushInterval: 5_000,
8
+ resendLimit: 5,
9
+ };
@@ -0,0 +1,118 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { EventBuffer, groupBy, IAnalyticsClient } from '../../../utils';
5
+ import {
6
+ FirehoseClient,
7
+ PutRecordBatchCommand,
8
+ } from '@aws-sdk/client-firehose';
9
+ import {
10
+ KinesisFirehoseBufferEvent,
11
+ KinesisFirehoseEventBufferConfig,
12
+ } from '../types';
13
+
14
+ /**
15
+ * These Records hold cached event buffers and AWS clients.
16
+ * The hash key is determined by the region and session,
17
+ * consisting of a combined value comprising [region, sessionToken, identityId].
18
+ *
19
+ * Only one active session should exist at any given moment.
20
+ * When a new session is initiated, the previous ones should be released.
21
+ * */
22
+ const eventBufferMap: Record<
23
+ string,
24
+ EventBuffer<KinesisFirehoseBufferEvent>
25
+ > = {};
26
+ const cachedClients: Record<string, FirehoseClient> = {};
27
+
28
+ const createPutRecordsBatchCommand = (
29
+ streamName: string,
30
+ events: KinesisFirehoseBufferEvent[]
31
+ ): PutRecordBatchCommand =>
32
+ new PutRecordBatchCommand({
33
+ DeliveryStreamName: streamName,
34
+ Records: events.map(event => ({
35
+ Data: event.event,
36
+ })),
37
+ });
38
+
39
+ const submitEvents = async (
40
+ events: KinesisFirehoseBufferEvent[],
41
+ client: FirehoseClient,
42
+ resendLimit?: number
43
+ ): Promise<KinesisFirehoseBufferEvent[]> => {
44
+ const groupedByStreamName = Object.entries(
45
+ groupBy(event => event.streamName, events)
46
+ );
47
+
48
+ const requests = groupedByStreamName
49
+ .map(([streamName, events]) =>
50
+ createPutRecordsBatchCommand(streamName, events)
51
+ )
52
+ .map(command => client.send(command));
53
+
54
+ const responses = await Promise.allSettled(requests);
55
+ const failedEvents = responses
56
+ .map((response, i) =>
57
+ response.status === 'rejected' ? groupedByStreamName[i][1] : []
58
+ )
59
+ .flat();
60
+ return resendLimit
61
+ ? failedEvents
62
+ .filter(event => event.retryCount < resendLimit)
63
+ .map(event => ({ ...event, retryCount: event.retryCount + 1 }))
64
+ .sort((a, b) => a.timestamp - b.timestamp)
65
+ : [];
66
+ };
67
+
68
+ export const getEventBuffer = ({
69
+ region,
70
+ credentials,
71
+ identityId,
72
+ bufferSize,
73
+ flushSize,
74
+ flushInterval,
75
+ resendLimit,
76
+ userAgentValue,
77
+ }: KinesisFirehoseEventBufferConfig): EventBuffer<KinesisFirehoseBufferEvent> => {
78
+ const { sessionToken } = credentials;
79
+ const sessionIdentityKey = [region, sessionToken, identityId]
80
+ .filter(id => !!id)
81
+ .join('-');
82
+
83
+ if (!eventBufferMap[sessionIdentityKey]) {
84
+ const getClient = (): IAnalyticsClient<KinesisFirehoseBufferEvent> => {
85
+ if (!cachedClients[sessionIdentityKey]) {
86
+ cachedClients[sessionIdentityKey] = new FirehoseClient({
87
+ region,
88
+ credentials,
89
+ customUserAgent: userAgentValue,
90
+ });
91
+ }
92
+
93
+ const firehoseClient = cachedClients[sessionIdentityKey];
94
+ return events => submitEvents(events, firehoseClient, resendLimit);
95
+ };
96
+
97
+ eventBufferMap[sessionIdentityKey] =
98
+ new EventBuffer<KinesisFirehoseBufferEvent>(
99
+ {
100
+ bufferSize,
101
+ flushSize,
102
+ flushInterval,
103
+ },
104
+ getClient
105
+ );
106
+
107
+ const releaseSessionKeys = Object.keys(eventBufferMap).filter(
108
+ key => key !== sessionIdentityKey
109
+ );
110
+ for (const releaseSessionKey of releaseSessionKeys) {
111
+ eventBufferMap[releaseSessionKey].release();
112
+ delete eventBufferMap[releaseSessionKey];
113
+ delete cachedClients[releaseSessionKey];
114
+ }
115
+ }
116
+
117
+ return eventBufferMap[sessionIdentityKey];
118
+ };
@@ -0,0 +1,5 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export { getEventBuffer } from './getEventBuffer';
5
+ export { resolveConfig } from './resolveConfig';
@@ -0,0 +1,36 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { Amplify } from '@aws-amplify/core';
5
+ import {
6
+ AnalyticsValidationErrorCode,
7
+ assertValidationError,
8
+ } from '../../../errors';
9
+ import { DEFAULT_KINESIS_FIREHOSE_CONFIG } from './constants';
10
+
11
+ export const resolveConfig = () => {
12
+ const config = Amplify.getConfig().Analytics?.KinesisFirehose;
13
+ const {
14
+ region,
15
+ bufferSize = DEFAULT_KINESIS_FIREHOSE_CONFIG.bufferSize,
16
+ flushSize = DEFAULT_KINESIS_FIREHOSE_CONFIG.flushSize,
17
+ flushInterval = DEFAULT_KINESIS_FIREHOSE_CONFIG.flushInterval,
18
+ resendLimit,
19
+ } = {
20
+ ...DEFAULT_KINESIS_FIREHOSE_CONFIG,
21
+ ...config,
22
+ };
23
+
24
+ assertValidationError(!!region, AnalyticsValidationErrorCode.NoRegion);
25
+ assertValidationError(
26
+ flushSize < bufferSize,
27
+ AnalyticsValidationErrorCode.InvalidFlushSize
28
+ );
29
+ return {
30
+ region,
31
+ bufferSize,
32
+ flushSize,
33
+ flushInterval,
34
+ resendLimit,
35
+ };
36
+ };
@@ -0,0 +1,37 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { getEventBuffer, resolveConfig } from '../utils';
5
+ import {
6
+ getAnalyticsUserAgentString,
7
+ resolveCredentials,
8
+ } from '../../../utils';
9
+ import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
10
+ import { ConsoleLogger } from '@aws-amplify/core';
11
+
12
+ const logger = new ConsoleLogger('Personalize');
13
+
14
+ /**
15
+ * Flushes all buffered Personalize events to the service.
16
+ *
17
+ * @note
18
+ * This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking
19
+ * this API may not be included in the flush.
20
+ */
21
+ export const flushEvents = () => {
22
+ const { region, flushSize, bufferSize, flushInterval } = resolveConfig();
23
+ resolveCredentials()
24
+ .then(({ credentials, identityId }) =>
25
+ getEventBuffer({
26
+ region,
27
+ flushSize,
28
+ flushInterval,
29
+ bufferSize,
30
+ credentials,
31
+ identityId,
32
+ userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
33
+ })
34
+ )
35
+ .then(eventBuffer => eventBuffer.flushAll())
36
+ .catch(e => logger.warn('Failed to flush events', e));
37
+ };
@@ -0,0 +1,5 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export { record } from './record';
5
+ export { flushEvents } from './flushEvents';