@aws-amplify/analytics 6.5.6-api-v6-models.b3abc9b.0 → 7.0.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 (607) hide show
  1. package/README.md +3 -0
  2. package/kinesis/package.json +7 -0
  3. package/kinesis-firehose/package.json +7 -0
  4. package/lib/apis/disable.d.ts +8 -0
  5. package/lib/apis/disable.js +14 -0
  6. package/lib/apis/enable.d.ts +7 -0
  7. package/lib/apis/enable.js +13 -0
  8. package/lib/apis/index.d.ts +2 -0
  9. package/lib/apis/index.js +9 -0
  10. package/lib/errors/AnalyticsError.d.ts +7 -0
  11. package/lib/errors/AnalyticsError.js +19 -0
  12. package/lib/errors/assertValidationError.d.ts +5 -0
  13. package/lib/errors/assertValidationError.js +21 -0
  14. package/lib/errors/index.d.ts +3 -0
  15. package/lib/errors/index.js +12 -0
  16. package/lib/errors/validation.d.ts +12 -0
  17. package/lib/errors/validation.js +42 -0
  18. package/lib/index.d.ts +3 -3
  19. package/lib/index.js +11 -8
  20. package/lib/providers/kinesis/apis/flushEvents.d.ts +8 -0
  21. package/lib/providers/kinesis/apis/flushEvents.js +35 -0
  22. package/lib/providers/kinesis/apis/index.d.ts +2 -0
  23. package/lib/providers/kinesis/apis/index.js +9 -0
  24. package/lib/providers/kinesis/apis/record.d.ts +2 -0
  25. package/lib/providers/kinesis/apis/record.js +46 -0
  26. package/lib/providers/kinesis/index.d.ts +1 -0
  27. package/lib/providers/kinesis/index.js +8 -0
  28. package/lib/providers/kinesis/types/buffer.d.ts +15 -0
  29. package/lib/providers/kinesis/types/buffer.js +4 -0
  30. package/lib/providers/kinesis/types/index.d.ts +2 -0
  31. package/lib/providers/kinesis/types/index.js +4 -0
  32. package/lib/providers/kinesis/types/inputs.d.ts +6 -0
  33. package/lib/providers/kinesis/types/inputs.js +4 -0
  34. package/lib/providers/kinesis/utils/constants.d.ts +6 -0
  35. package/lib/{utils/AppUtils.js → providers/kinesis/utils/constants.js} +7 -5
  36. package/lib/providers/kinesis/utils/getEventBuffer.d.ts +3 -0
  37. package/lib/providers/kinesis/utils/getEventBuffer.js +72 -0
  38. package/lib/providers/kinesis/utils/resolveConfig.d.ts +7 -0
  39. package/lib/providers/kinesis/utils/resolveConfig.js +25 -0
  40. package/lib/providers/kinesis-firehose/apis/flushEvents.d.ts +8 -0
  41. package/lib/providers/kinesis-firehose/apis/flushEvents.js +34 -0
  42. package/lib/providers/kinesis-firehose/apis/index.d.ts +2 -0
  43. package/lib/providers/kinesis-firehose/apis/index.js +9 -0
  44. package/lib/providers/kinesis-firehose/apis/record.d.ts +2 -0
  45. package/lib/providers/kinesis-firehose/apis/record.js +43 -0
  46. package/lib/providers/kinesis-firehose/index.d.ts +1 -0
  47. package/lib/providers/kinesis-firehose/index.js +8 -0
  48. package/lib/providers/kinesis-firehose/types/buffer.d.ts +15 -0
  49. package/lib/{types/Provider.js → providers/kinesis-firehose/types/buffer.js} +0 -1
  50. package/lib/providers/kinesis-firehose/types/index.d.ts +2 -0
  51. package/lib/providers/kinesis-firehose/types/index.js +4 -0
  52. package/lib/providers/kinesis-firehose/types/inputs.d.ts +5 -0
  53. package/lib/providers/kinesis-firehose/types/inputs.js +4 -0
  54. package/lib/providers/kinesis-firehose/utils/constants.d.ts +6 -0
  55. package/lib/providers/kinesis-firehose/utils/constants.js +11 -0
  56. package/lib/providers/kinesis-firehose/utils/getEventBuffer.d.ts +3 -0
  57. package/lib/providers/kinesis-firehose/utils/getEventBuffer.js +71 -0
  58. package/lib/providers/kinesis-firehose/utils/index.d.ts +2 -0
  59. package/lib/providers/kinesis-firehose/utils/index.js +9 -0
  60. package/lib/providers/kinesis-firehose/utils/resolveConfig.d.ts +7 -0
  61. package/lib/providers/kinesis-firehose/utils/resolveConfig.js +25 -0
  62. package/lib/providers/personalize/apis/flushEvents.d.ts +8 -0
  63. package/lib/providers/personalize/apis/flushEvents.js +33 -0
  64. package/lib/providers/personalize/apis/index.d.ts +2 -0
  65. package/lib/providers/personalize/apis/index.js +9 -0
  66. package/lib/providers/personalize/apis/record.d.ts +2 -0
  67. package/lib/providers/personalize/apis/record.js +71 -0
  68. package/lib/providers/personalize/index.d.ts +1 -0
  69. package/lib/providers/personalize/index.js +8 -0
  70. package/lib/providers/personalize/types/buffer.d.ts +16 -0
  71. package/lib/providers/personalize/types/buffer.js +4 -0
  72. package/lib/providers/personalize/types/index.d.ts +2 -0
  73. package/lib/providers/personalize/types/index.js +4 -0
  74. package/lib/providers/personalize/types/inputs.d.ts +7 -0
  75. package/lib/providers/personalize/types/inputs.js +4 -0
  76. package/lib/providers/personalize/utils/autoTrackMedia.d.ts +10 -0
  77. package/lib/providers/personalize/utils/autoTrackMedia.js +181 -0
  78. package/lib/providers/personalize/utils/cachedSession.d.ts +5 -0
  79. package/lib/providers/personalize/utils/cachedSession.js +49 -0
  80. package/lib/providers/personalize/utils/constants.d.ts +7 -0
  81. package/lib/providers/personalize/utils/constants.js +12 -0
  82. package/lib/providers/personalize/utils/getEventBuffer.d.ts +3 -0
  83. package/lib/providers/personalize/utils/getEventBuffer.js +73 -0
  84. package/lib/providers/personalize/utils/index.d.ts +5 -0
  85. package/lib/providers/personalize/utils/index.js +17 -0
  86. package/lib/providers/personalize/utils/resolveConfig.d.ts +7 -0
  87. package/lib/providers/personalize/utils/resolveConfig.js +26 -0
  88. package/lib/providers/pinpoint/apis/configureAutoTrack.d.ts +15 -0
  89. package/lib/providers/pinpoint/apis/configureAutoTrack.js +35 -0
  90. package/lib/providers/pinpoint/apis/flushEvents.d.ts +8 -0
  91. package/lib/providers/pinpoint/apis/flushEvents.js +25 -0
  92. package/lib/providers/pinpoint/apis/identifyUser.d.ts +47 -0
  93. package/lib/providers/pinpoint/apis/identifyUser.js +71 -0
  94. package/lib/providers/pinpoint/apis/index.d.ts +4 -0
  95. package/lib/providers/pinpoint/apis/index.js +13 -0
  96. package/lib/providers/pinpoint/apis/record.d.ts +30 -0
  97. package/lib/providers/pinpoint/apis/record.js +66 -0
  98. package/lib/providers/pinpoint/index.d.ts +2 -0
  99. package/lib/providers/pinpoint/index.js +10 -0
  100. package/lib/providers/pinpoint/types/index.d.ts +2 -0
  101. package/lib/providers/pinpoint/types/index.js +4 -0
  102. package/lib/providers/pinpoint/types/inputs.d.ts +15 -0
  103. package/lib/providers/pinpoint/types/inputs.js +4 -0
  104. package/lib/providers/pinpoint/types/options.d.ts +5 -0
  105. package/lib/providers/pinpoint/types/options.js +4 -0
  106. package/lib/providers/pinpoint/utils/index.d.ts +2 -0
  107. package/lib/providers/pinpoint/utils/index.js +9 -0
  108. package/lib/providers/pinpoint/utils/resolveConfig.d.ts +7 -0
  109. package/lib/providers/pinpoint/utils/resolveConfig.js +17 -0
  110. package/lib/providers/pinpoint/utils/resolveCredentials.d.ts +7 -0
  111. package/lib/providers/pinpoint/utils/resolveCredentials.js +16 -0
  112. package/lib/setupTests.js +2 -2
  113. package/lib/trackers/EventTracker.d.ts +9 -8
  114. package/lib/trackers/EventTracker.js +87 -88
  115. package/lib/trackers/PageViewTracker.d.ts +17 -11
  116. package/lib/trackers/PageViewTracker.js +98 -144
  117. package/lib/trackers/SessionTracker.d.ts +12 -13
  118. package/lib/trackers/SessionTracker.js +54 -150
  119. package/lib/trackers/SessionTracker.native.d.ts +13 -0
  120. package/lib/trackers/SessionTracker.native.js +67 -0
  121. package/lib/trackers/index.d.ts +1 -1
  122. package/lib/trackers/index.js +6 -6
  123. package/lib/tsconfig.tsbuildinfo +1 -0
  124. package/lib/types/index.d.ts +3 -3
  125. package/lib/types/index.js +0 -1
  126. package/lib/types/inputs.d.ts +35 -0
  127. package/lib/types/inputs.js +4 -0
  128. package/lib/types/kinesis.d.ts +8 -0
  129. package/lib/types/kinesis.js +4 -0
  130. package/lib/types/options.d.ts +4 -0
  131. package/lib/types/options.js +4 -0
  132. package/lib/types/trackers.d.ts +22 -0
  133. package/lib/types/trackers.js +4 -0
  134. package/lib/utils/eventBuffer/EventBuffer.d.ts +16 -0
  135. package/lib/utils/eventBuffer/EventBuffer.js +63 -0
  136. package/lib/utils/eventBuffer/index.d.ts +2 -0
  137. package/lib/utils/eventBuffer/index.js +7 -0
  138. package/lib/utils/eventBuffer/types.d.ts +8 -0
  139. package/lib/utils/eventBuffer/types.js +4 -0
  140. package/lib/utils/groupBy.d.ts +1 -0
  141. package/lib/utils/groupBy.js +12 -0
  142. package/lib/utils/index.d.ts +7 -0
  143. package/lib/utils/index.js +22 -0
  144. package/lib/utils/resolveCredentials.d.ts +4 -0
  145. package/lib/utils/resolveCredentials.js +13 -0
  146. package/lib/utils/statusHelpers.d.ts +6 -0
  147. package/lib/utils/statusHelpers.js +19 -0
  148. package/lib/utils/trackerConfigHelpers.d.ts +5 -0
  149. package/lib/utils/trackerConfigHelpers.js +15 -0
  150. package/lib/utils/trackerConfigHelpers.native.d.ts +5 -0
  151. package/lib/utils/trackerConfigHelpers.native.js +14 -0
  152. package/lib/utils/trackerHelpers.d.ts +9 -0
  153. package/lib/utils/trackerHelpers.js +44 -0
  154. package/lib/utils/{UserAgent.d.ts → userAgent.d.ts} +1 -1
  155. package/lib/utils/{UserAgent.js → userAgent.js} +8 -8
  156. package/lib-esm/apis/disable.d.ts +8 -0
  157. package/lib-esm/apis/disable.js +11 -0
  158. package/lib-esm/apis/enable.d.ts +7 -0
  159. package/lib-esm/apis/enable.js +10 -0
  160. package/lib-esm/apis/index.d.ts +2 -0
  161. package/lib-esm/apis/index.js +4 -0
  162. package/lib-esm/errors/AnalyticsError.d.ts +7 -0
  163. package/lib-esm/errors/AnalyticsError.js +15 -0
  164. package/lib-esm/errors/assertValidationError.d.ts +5 -0
  165. package/lib-esm/errors/assertValidationError.js +17 -0
  166. package/lib-esm/errors/index.d.ts +3 -0
  167. package/lib-esm/errors/index.js +5 -0
  168. package/lib-esm/errors/validation.d.ts +12 -0
  169. package/lib-esm/errors/validation.js +39 -0
  170. package/lib-esm/index.d.ts +3 -3
  171. package/lib-esm/index.js +3 -3
  172. package/lib-esm/providers/kinesis/apis/flushEvents.d.ts +8 -0
  173. package/lib-esm/providers/kinesis/apis/flushEvents.js +31 -0
  174. package/lib-esm/providers/kinesis/apis/index.d.ts +2 -0
  175. package/lib-esm/providers/kinesis/apis/index.js +4 -0
  176. package/lib-esm/providers/kinesis/apis/record.d.ts +2 -0
  177. package/lib-esm/providers/kinesis/apis/record.js +42 -0
  178. package/lib-esm/providers/kinesis/index.d.ts +1 -0
  179. package/lib-esm/providers/kinesis/index.js +3 -0
  180. package/lib-esm/providers/kinesis/types/buffer.d.ts +15 -0
  181. package/lib-esm/providers/kinesis/types/buffer.js +3 -0
  182. package/lib-esm/providers/kinesis/types/index.d.ts +2 -0
  183. package/lib-esm/providers/kinesis/types/index.js +3 -0
  184. package/lib-esm/providers/kinesis/types/inputs.d.ts +6 -0
  185. package/lib-esm/providers/kinesis/types/inputs.js +3 -0
  186. package/lib-esm/providers/kinesis/utils/constants.d.ts +6 -0
  187. package/lib-esm/providers/kinesis/utils/constants.js +8 -0
  188. package/lib-esm/providers/kinesis/utils/getEventBuffer.d.ts +3 -0
  189. package/lib-esm/providers/kinesis/utils/getEventBuffer.js +68 -0
  190. package/lib-esm/providers/kinesis/utils/resolveConfig.d.ts +7 -0
  191. package/lib-esm/providers/kinesis/utils/resolveConfig.js +21 -0
  192. package/lib-esm/providers/kinesis-firehose/apis/flushEvents.d.ts +8 -0
  193. package/lib-esm/providers/kinesis-firehose/apis/flushEvents.js +30 -0
  194. package/lib-esm/providers/kinesis-firehose/apis/index.d.ts +2 -0
  195. package/lib-esm/providers/kinesis-firehose/apis/index.js +4 -0
  196. package/lib-esm/providers/kinesis-firehose/apis/record.d.ts +2 -0
  197. package/lib-esm/providers/kinesis-firehose/apis/record.js +39 -0
  198. package/lib-esm/providers/kinesis-firehose/index.d.ts +1 -0
  199. package/lib-esm/providers/kinesis-firehose/index.js +3 -0
  200. package/lib-esm/providers/kinesis-firehose/types/buffer.d.ts +15 -0
  201. package/lib-esm/{types/Provider.js → providers/kinesis-firehose/types/buffer.js} +1 -1
  202. package/lib-esm/providers/kinesis-firehose/types/index.d.ts +2 -0
  203. package/{src/types/Providers/index.ts → lib-esm/providers/kinesis-firehose/types/index.js} +1 -1
  204. package/lib-esm/providers/kinesis-firehose/types/inputs.d.ts +5 -0
  205. package/lib-esm/providers/kinesis-firehose/types/inputs.js +3 -0
  206. package/lib-esm/providers/kinesis-firehose/utils/constants.d.ts +6 -0
  207. package/lib-esm/providers/kinesis-firehose/utils/constants.js +8 -0
  208. package/lib-esm/providers/kinesis-firehose/utils/getEventBuffer.d.ts +3 -0
  209. package/lib-esm/providers/kinesis-firehose/utils/getEventBuffer.js +67 -0
  210. package/lib-esm/providers/kinesis-firehose/utils/index.d.ts +2 -0
  211. package/lib-esm/providers/kinesis-firehose/utils/index.js +4 -0
  212. package/lib-esm/providers/kinesis-firehose/utils/resolveConfig.d.ts +7 -0
  213. package/lib-esm/providers/kinesis-firehose/utils/resolveConfig.js +21 -0
  214. package/lib-esm/providers/personalize/apis/flushEvents.d.ts +8 -0
  215. package/lib-esm/providers/personalize/apis/flushEvents.js +29 -0
  216. package/lib-esm/providers/personalize/apis/index.d.ts +2 -0
  217. package/lib-esm/providers/personalize/apis/index.js +4 -0
  218. package/lib-esm/providers/personalize/apis/record.d.ts +2 -0
  219. package/lib-esm/providers/personalize/apis/record.js +67 -0
  220. package/lib-esm/providers/personalize/index.d.ts +1 -0
  221. package/lib-esm/providers/personalize/index.js +3 -0
  222. package/lib-esm/providers/personalize/types/buffer.d.ts +16 -0
  223. package/lib-esm/providers/personalize/types/buffer.js +3 -0
  224. package/lib-esm/providers/personalize/types/index.d.ts +2 -0
  225. package/lib-esm/providers/personalize/types/index.js +3 -0
  226. package/lib-esm/providers/personalize/types/inputs.d.ts +7 -0
  227. package/lib-esm/providers/personalize/types/inputs.js +3 -0
  228. package/lib-esm/providers/personalize/utils/autoTrackMedia.d.ts +10 -0
  229. package/lib-esm/providers/personalize/utils/autoTrackMedia.js +177 -0
  230. package/lib-esm/providers/personalize/utils/cachedSession.d.ts +5 -0
  231. package/lib-esm/providers/personalize/utils/cachedSession.js +44 -0
  232. package/lib-esm/providers/personalize/utils/constants.d.ts +7 -0
  233. package/lib-esm/providers/personalize/utils/constants.js +9 -0
  234. package/lib-esm/providers/personalize/utils/getEventBuffer.d.ts +3 -0
  235. package/lib-esm/providers/personalize/utils/getEventBuffer.js +69 -0
  236. package/lib-esm/providers/personalize/utils/index.d.ts +5 -0
  237. package/lib-esm/providers/personalize/utils/index.js +7 -0
  238. package/lib-esm/providers/personalize/utils/resolveConfig.d.ts +7 -0
  239. package/lib-esm/providers/personalize/utils/resolveConfig.js +22 -0
  240. package/lib-esm/providers/pinpoint/apis/configureAutoTrack.d.ts +15 -0
  241. package/lib-esm/providers/pinpoint/apis/configureAutoTrack.js +31 -0
  242. package/lib-esm/providers/pinpoint/apis/flushEvents.d.ts +8 -0
  243. package/lib-esm/providers/pinpoint/apis/flushEvents.js +21 -0
  244. package/lib-esm/providers/pinpoint/apis/identifyUser.d.ts +47 -0
  245. package/lib-esm/providers/pinpoint/apis/identifyUser.js +67 -0
  246. package/lib-esm/providers/pinpoint/apis/index.d.ts +4 -0
  247. package/lib-esm/providers/pinpoint/apis/index.js +6 -0
  248. package/lib-esm/providers/pinpoint/apis/record.d.ts +30 -0
  249. package/lib-esm/providers/pinpoint/apis/record.js +62 -0
  250. package/lib-esm/providers/pinpoint/index.d.ts +2 -0
  251. package/lib-esm/providers/pinpoint/index.js +3 -0
  252. package/lib-esm/providers/pinpoint/types/index.d.ts +2 -0
  253. package/lib-esm/providers/pinpoint/types/index.js +3 -0
  254. package/lib-esm/providers/pinpoint/types/inputs.d.ts +15 -0
  255. package/lib-esm/providers/pinpoint/types/inputs.js +3 -0
  256. package/lib-esm/providers/pinpoint/types/options.d.ts +5 -0
  257. package/lib-esm/providers/pinpoint/types/options.js +3 -0
  258. package/lib-esm/providers/pinpoint/utils/index.d.ts +2 -0
  259. package/lib-esm/providers/pinpoint/utils/index.js +4 -0
  260. package/lib-esm/providers/pinpoint/utils/resolveConfig.d.ts +7 -0
  261. package/lib-esm/providers/pinpoint/utils/resolveConfig.js +13 -0
  262. package/lib-esm/providers/pinpoint/utils/resolveCredentials.d.ts +7 -0
  263. package/lib-esm/providers/pinpoint/utils/resolveCredentials.js +12 -0
  264. package/lib-esm/setupTests.js +2 -2
  265. package/lib-esm/trackers/EventTracker.d.ts +9 -8
  266. package/lib-esm/trackers/EventTracker.js +86 -89
  267. package/lib-esm/trackers/PageViewTracker.d.ts +17 -11
  268. package/lib-esm/trackers/PageViewTracker.js +97 -145
  269. package/lib-esm/trackers/SessionTracker.d.ts +12 -13
  270. package/lib-esm/trackers/SessionTracker.js +53 -151
  271. package/lib-esm/trackers/SessionTracker.native.d.ts +13 -0
  272. package/lib-esm/trackers/SessionTracker.native.js +63 -0
  273. package/lib-esm/trackers/index.d.ts +1 -1
  274. package/lib-esm/trackers/index.js +1 -2
  275. package/lib-esm/tsconfig.tsbuildinfo +1 -0
  276. package/lib-esm/types/index.d.ts +3 -3
  277. package/lib-esm/types/index.js +1 -1
  278. package/lib-esm/types/inputs.d.ts +35 -0
  279. package/lib-esm/types/inputs.js +3 -0
  280. package/lib-esm/types/kinesis.d.ts +8 -0
  281. package/lib-esm/types/kinesis.js +3 -0
  282. package/lib-esm/types/options.d.ts +4 -0
  283. package/lib-esm/types/options.js +3 -0
  284. package/lib-esm/types/trackers.d.ts +22 -0
  285. package/lib-esm/types/trackers.js +3 -0
  286. package/lib-esm/utils/eventBuffer/EventBuffer.d.ts +16 -0
  287. package/lib-esm/utils/eventBuffer/EventBuffer.js +59 -0
  288. package/lib-esm/utils/eventBuffer/index.d.ts +2 -0
  289. package/lib-esm/utils/eventBuffer/index.js +3 -0
  290. package/lib-esm/utils/eventBuffer/types.d.ts +8 -0
  291. package/lib-esm/utils/eventBuffer/types.js +3 -0
  292. package/lib-esm/utils/groupBy.d.ts +1 -0
  293. package/lib-esm/utils/groupBy.js +8 -0
  294. package/lib-esm/utils/index.d.ts +7 -0
  295. package/lib-esm/utils/index.js +9 -0
  296. package/lib-esm/utils/resolveCredentials.d.ts +4 -0
  297. package/lib-esm/utils/resolveCredentials.js +9 -0
  298. package/lib-esm/utils/statusHelpers.d.ts +6 -0
  299. package/lib-esm/utils/statusHelpers.js +13 -0
  300. package/lib-esm/utils/trackerConfigHelpers.d.ts +5 -0
  301. package/lib-esm/utils/trackerConfigHelpers.js +11 -0
  302. package/lib-esm/utils/trackerConfigHelpers.native.d.ts +5 -0
  303. package/lib-esm/utils/trackerConfigHelpers.native.js +10 -0
  304. package/lib-esm/utils/trackerHelpers.d.ts +9 -0
  305. package/lib-esm/utils/trackerHelpers.js +40 -0
  306. package/lib-esm/utils/{UserAgent.d.ts → userAgent.d.ts} +1 -1
  307. package/lib-esm/utils/{UserAgent.js → userAgent.js} +3 -4
  308. package/package.json +74 -49
  309. package/personalize/package.json +7 -0
  310. package/pinpoint/package.json +7 -0
  311. package/src/apis/disable.ts +13 -0
  312. package/src/apis/enable.ts +12 -0
  313. package/src/{utils/AppUtils.ts → apis/index.ts} +2 -4
  314. package/src/errors/AnalyticsError.ts +21 -0
  315. package/src/errors/assertValidationError.ts +25 -0
  316. package/src/errors/index.ts +6 -0
  317. package/src/errors/validation.ts +43 -0
  318. package/src/index.ts +10 -7
  319. package/src/providers/kinesis/apis/flushEvents.ts +40 -0
  320. package/src/providers/kinesis/apis/index.ts +5 -0
  321. package/src/providers/kinesis/apis/record.ts +58 -0
  322. package/src/providers/kinesis/index.ts +4 -0
  323. package/src/providers/kinesis/types/buffer.ts +20 -0
  324. package/src/providers/kinesis/types/index.ts +5 -0
  325. package/src/{types/Providers/AWSKinesisProvider.ts → providers/kinesis/types/inputs.ts} +7 -5
  326. package/src/providers/kinesis/utils/constants.ts +9 -0
  327. package/src/providers/kinesis/utils/getEventBuffer.ts +109 -0
  328. package/src/providers/kinesis/utils/resolveConfig.ts +36 -0
  329. package/src/providers/kinesis-firehose/apis/flushEvents.ts +39 -0
  330. package/src/providers/kinesis-firehose/apis/index.ts +5 -0
  331. package/src/providers/kinesis-firehose/apis/record.ts +51 -0
  332. package/src/providers/kinesis-firehose/index.ts +4 -0
  333. package/src/providers/kinesis-firehose/types/buffer.ts +20 -0
  334. package/src/providers/kinesis-firehose/types/index.ts +9 -0
  335. package/src/providers/kinesis-firehose/types/inputs.ts +9 -0
  336. package/src/providers/kinesis-firehose/utils/constants.ts +9 -0
  337. package/src/providers/kinesis-firehose/utils/getEventBuffer.ts +117 -0
  338. package/src/providers/kinesis-firehose/utils/index.ts +5 -0
  339. package/src/providers/kinesis-firehose/utils/resolveConfig.ts +36 -0
  340. package/src/providers/personalize/apis/flushEvents.ts +37 -0
  341. package/src/providers/personalize/apis/index.ts +5 -0
  342. package/src/providers/personalize/apis/record.ts +102 -0
  343. package/src/providers/personalize/index.ts +4 -0
  344. package/src/providers/personalize/types/buffer.ts +21 -0
  345. package/src/providers/personalize/types/index.ts +5 -0
  346. package/src/providers/personalize/types/inputs.ts +11 -0
  347. package/src/providers/personalize/utils/autoTrackMedia.ts +232 -0
  348. package/src/providers/personalize/utils/cachedSession.ts +68 -0
  349. package/src/providers/personalize/utils/constants.ts +12 -0
  350. package/src/providers/personalize/utils/getEventBuffer.ts +110 -0
  351. package/src/providers/personalize/utils/index.ts +11 -0
  352. package/src/providers/personalize/utils/resolveConfig.ts +41 -0
  353. package/src/providers/pinpoint/apis/configureAutoTrack.ts +49 -0
  354. package/src/providers/pinpoint/apis/flushEvents.ts +32 -0
  355. package/src/providers/pinpoint/apis/identifyUser.ts +78 -0
  356. package/src/providers/pinpoint/apis/index.ts +7 -0
  357. package/src/providers/pinpoint/apis/record.ts +83 -0
  358. package/src/providers/pinpoint/index.ts +9 -0
  359. package/src/providers/pinpoint/types/index.ts +9 -0
  360. package/src/providers/pinpoint/types/inputs.ts +24 -0
  361. package/src/providers/pinpoint/types/options.ts +12 -0
  362. package/src/providers/pinpoint/utils/index.ts +5 -0
  363. package/src/providers/pinpoint/utils/resolveConfig.ts +18 -0
  364. package/src/providers/pinpoint/utils/resolveCredentials.ts +20 -0
  365. package/src/trackers/EventTracker.ts +119 -99
  366. package/src/trackers/PageViewTracker.ts +131 -128
  367. package/src/trackers/SessionTracker.native.ts +105 -0
  368. package/src/trackers/SessionTracker.ts +80 -154
  369. package/src/trackers/index.ts +2 -1
  370. package/src/types/index.ts +8 -3
  371. package/src/types/inputs.ts +52 -0
  372. package/src/types/kinesis.ts +13 -0
  373. package/src/types/options.ts +7 -0
  374. package/src/types/trackers.ts +35 -0
  375. package/src/utils/eventBuffer/EventBuffer.ts +84 -0
  376. package/src/utils/eventBuffer/index.ts +5 -0
  377. package/src/utils/eventBuffer/types.ts +12 -0
  378. package/src/utils/groupBy.ts +12 -0
  379. package/src/utils/index.ts +21 -0
  380. package/src/utils/resolveCredentials.ts +14 -0
  381. package/src/utils/statusHelpers.ts +17 -0
  382. package/src/utils/trackerConfigHelpers.native.ts +18 -0
  383. package/src/utils/trackerConfigHelpers.ts +19 -0
  384. package/src/utils/trackerHelpers.ts +57 -0
  385. package/src/utils/{UserAgent.ts → userAgent.ts} +1 -1
  386. package/lib/.tsbuildinfo +0 -3
  387. package/lib/Analytics.d.ts +0 -87
  388. package/lib/Analytics.js +0 -354
  389. package/lib/Analytics.js.map +0 -1
  390. package/lib/Providers/AWSKinesisFirehoseProvider.d.ts +0 -12
  391. package/lib/Providers/AWSKinesisFirehoseProvider.js +0 -82
  392. package/lib/Providers/AWSKinesisFirehoseProvider.js.map +0 -1
  393. package/lib/Providers/AWSKinesisProvider.d.ts +0 -43
  394. package/lib/Providers/AWSKinesisProvider.js +0 -240
  395. package/lib/Providers/AWSKinesisProvider.js.map +0 -1
  396. package/lib/Providers/AWSPinpointProvider.d.ts +0 -67
  397. package/lib/Providers/AWSPinpointProvider.js +0 -576
  398. package/lib/Providers/AWSPinpointProvider.js.map +0 -1
  399. package/lib/Providers/AmazonPersonalizeHelper/DataType.d.ts +0 -40
  400. package/lib/Providers/AmazonPersonalizeHelper/DataType.js +0 -3
  401. package/lib/Providers/AmazonPersonalizeHelper/DataType.js.map +0 -1
  402. package/lib/Providers/AmazonPersonalizeHelper/MediaAutoTrack.d.ts +0 -20
  403. package/lib/Providers/AmazonPersonalizeHelper/MediaAutoTrack.js +0 -156
  404. package/lib/Providers/AmazonPersonalizeHelper/MediaAutoTrack.js.map +0 -1
  405. package/lib/Providers/AmazonPersonalizeHelper/SessionInfoManager.d.ts +0 -17
  406. package/lib/Providers/AmazonPersonalizeHelper/SessionInfoManager.js +0 -97
  407. package/lib/Providers/AmazonPersonalizeHelper/SessionInfoManager.js.map +0 -1
  408. package/lib/Providers/AmazonPersonalizeHelper/index.d.ts +0 -3
  409. package/lib/Providers/AmazonPersonalizeHelper/index.js +0 -7
  410. package/lib/Providers/AmazonPersonalizeHelper/index.js.map +0 -1
  411. package/lib/Providers/AmazonPersonalizeProvider.d.ts +0 -76
  412. package/lib/Providers/AmazonPersonalizeProvider.js +0 -331
  413. package/lib/Providers/AmazonPersonalizeProvider.js.map +0 -1
  414. package/lib/Providers/EventBuffer.d.ts +0 -28
  415. package/lib/Providers/EventBuffer.js +0 -210
  416. package/lib/Providers/EventBuffer.js.map +0 -1
  417. package/lib/Providers/index.d.ts +0 -4
  418. package/lib/Providers/index.js +0 -13
  419. package/lib/Providers/index.js.map +0 -1
  420. package/lib/index.js.map +0 -1
  421. package/lib/setupTests.js.map +0 -1
  422. package/lib/trackers/EventTracker.js.map +0 -1
  423. package/lib/trackers/PageViewTracker.js.map +0 -1
  424. package/lib/trackers/SessionTracker-rn.d.ts +0 -12
  425. package/lib/trackers/SessionTracker-rn.js +0 -134
  426. package/lib/trackers/SessionTracker-rn.js.map +0 -1
  427. package/lib/trackers/SessionTracker.js.map +0 -1
  428. package/lib/trackers/index.js.map +0 -1
  429. package/lib/trackers/reactnative.d.ts +0 -8
  430. package/lib/trackers/reactnative.js +0 -19
  431. package/lib/trackers/reactnative.js.map +0 -1
  432. package/lib/types/Analytics.d.ts +0 -66
  433. package/lib/types/Analytics.js +0 -3
  434. package/lib/types/Analytics.js.map +0 -1
  435. package/lib/types/Provider.d.ts +0 -10
  436. package/lib/types/Provider.js.map +0 -1
  437. package/lib/types/Providers/AWSKinesisProvider.d.ts +0 -6
  438. package/lib/types/Providers/AWSKinesisProvider.js +0 -3
  439. package/lib/types/Providers/AWSKinesisProvider.js.map +0 -1
  440. package/lib/types/Providers/AWSPinpointProvider.d.ts +0 -50
  441. package/lib/types/Providers/AWSPinpointProvider.js +0 -3
  442. package/lib/types/Providers/AWSPinpointProvider.js.map +0 -1
  443. package/lib/types/Providers/AmazonPersonalizeProvider.d.ts +0 -7
  444. package/lib/types/Providers/AmazonPersonalizeProvider.js +0 -3
  445. package/lib/types/Providers/AmazonPersonalizeProvider.js.map +0 -1
  446. package/lib/types/Providers/index.d.ts +0 -1
  447. package/lib/types/Providers/index.js +0 -3
  448. package/lib/types/Providers/index.js.map +0 -1
  449. package/lib/types/index.js.map +0 -1
  450. package/lib/utils/AppUtils.d.ts +0 -2
  451. package/lib/utils/AppUtils.js.map +0 -1
  452. package/lib/utils/AppUtils.native.d.ts +0 -2
  453. package/lib/utils/AppUtils.native.js +0 -10
  454. package/lib/utils/AppUtils.native.js.map +0 -1
  455. package/lib/utils/MethodEmbed.d.ts +0 -11
  456. package/lib/utils/MethodEmbed.js +0 -43
  457. package/lib/utils/MethodEmbed.js.map +0 -1
  458. package/lib/utils/UserAgent.js.map +0 -1
  459. package/lib/vendor/dom-utils/closest.d.ts +0 -12
  460. package/lib/vendor/dom-utils/closest.js +0 -27
  461. package/lib/vendor/dom-utils/closest.js.map +0 -1
  462. package/lib/vendor/dom-utils/delegate.d.ts +0 -18
  463. package/lib/vendor/dom-utils/delegate.js +0 -51
  464. package/lib/vendor/dom-utils/delegate.js.map +0 -1
  465. package/lib/vendor/dom-utils/dispatch.d.ts +0 -17
  466. package/lib/vendor/dom-utils/dispatch.js +0 -51
  467. package/lib/vendor/dom-utils/dispatch.js.map +0 -1
  468. package/lib/vendor/dom-utils/get-attributes.d.ts +0 -11
  469. package/lib/vendor/dom-utils/get-attributes.js +0 -28
  470. package/lib/vendor/dom-utils/get-attributes.js.map +0 -1
  471. package/lib/vendor/dom-utils/index.d.ts +0 -7
  472. package/lib/vendor/dom-utils/index.js +0 -17
  473. package/lib/vendor/dom-utils/index.js.map +0 -1
  474. package/lib/vendor/dom-utils/matches.d.ts +0 -11
  475. package/lib/vendor/dom-utils/matches.js +0 -69
  476. package/lib/vendor/dom-utils/matches.js.map +0 -1
  477. package/lib/vendor/dom-utils/parents.d.ts +0 -10
  478. package/lib/vendor/dom-utils/parents.js +0 -22
  479. package/lib/vendor/dom-utils/parents.js.map +0 -1
  480. package/lib/vendor/dom-utils/parse-url.d.ts +0 -9
  481. package/lib/vendor/dom-utils/parse-url.js +0 -59
  482. package/lib/vendor/dom-utils/parse-url.js.map +0 -1
  483. package/lib-esm/.tsbuildinfo +0 -3
  484. package/lib-esm/Analytics.d.ts +0 -87
  485. package/lib-esm/Analytics.js +0 -352
  486. package/lib-esm/Analytics.js.map +0 -1
  487. package/lib-esm/Providers/AWSKinesisFirehoseProvider.d.ts +0 -12
  488. package/lib-esm/Providers/AWSKinesisFirehoseProvider.js +0 -80
  489. package/lib-esm/Providers/AWSKinesisFirehoseProvider.js.map +0 -1
  490. package/lib-esm/Providers/AWSKinesisProvider.d.ts +0 -43
  491. package/lib-esm/Providers/AWSKinesisProvider.js +0 -238
  492. package/lib-esm/Providers/AWSKinesisProvider.js.map +0 -1
  493. package/lib-esm/Providers/AWSPinpointProvider.d.ts +0 -67
  494. package/lib-esm/Providers/AWSPinpointProvider.js +0 -574
  495. package/lib-esm/Providers/AWSPinpointProvider.js.map +0 -1
  496. package/lib-esm/Providers/AmazonPersonalizeHelper/DataType.d.ts +0 -40
  497. package/lib-esm/Providers/AmazonPersonalizeHelper/DataType.js +0 -1
  498. package/lib-esm/Providers/AmazonPersonalizeHelper/DataType.js.map +0 -1
  499. package/lib-esm/Providers/AmazonPersonalizeHelper/MediaAutoTrack.d.ts +0 -20
  500. package/lib-esm/Providers/AmazonPersonalizeHelper/MediaAutoTrack.js +0 -154
  501. package/lib-esm/Providers/AmazonPersonalizeHelper/MediaAutoTrack.js.map +0 -1
  502. package/lib-esm/Providers/AmazonPersonalizeHelper/SessionInfoManager.d.ts +0 -17
  503. package/lib-esm/Providers/AmazonPersonalizeHelper/SessionInfoManager.js +0 -94
  504. package/lib-esm/Providers/AmazonPersonalizeHelper/SessionInfoManager.js.map +0 -1
  505. package/lib-esm/Providers/AmazonPersonalizeHelper/index.d.ts +0 -3
  506. package/lib-esm/Providers/AmazonPersonalizeHelper/index.js +0 -3
  507. package/lib-esm/Providers/AmazonPersonalizeHelper/index.js.map +0 -1
  508. package/lib-esm/Providers/AmazonPersonalizeProvider.d.ts +0 -76
  509. package/lib-esm/Providers/AmazonPersonalizeProvider.js +0 -329
  510. package/lib-esm/Providers/AmazonPersonalizeProvider.js.map +0 -1
  511. package/lib-esm/Providers/EventBuffer.d.ts +0 -28
  512. package/lib-esm/Providers/EventBuffer.js +0 -208
  513. package/lib-esm/Providers/EventBuffer.js.map +0 -1
  514. package/lib-esm/Providers/index.d.ts +0 -4
  515. package/lib-esm/Providers/index.js +0 -7
  516. package/lib-esm/Providers/index.js.map +0 -1
  517. package/lib-esm/index.js.map +0 -1
  518. package/lib-esm/setupTests.js.map +0 -1
  519. package/lib-esm/trackers/EventTracker.js.map +0 -1
  520. package/lib-esm/trackers/PageViewTracker.js.map +0 -1
  521. package/lib-esm/trackers/SessionTracker-rn.d.ts +0 -12
  522. package/lib-esm/trackers/SessionTracker-rn.js +0 -132
  523. package/lib-esm/trackers/SessionTracker-rn.js.map +0 -1
  524. package/lib-esm/trackers/SessionTracker.js.map +0 -1
  525. package/lib-esm/trackers/index.js.map +0 -1
  526. package/lib-esm/trackers/reactnative.d.ts +0 -8
  527. package/lib-esm/trackers/reactnative.js +0 -15
  528. package/lib-esm/trackers/reactnative.js.map +0 -1
  529. package/lib-esm/types/Analytics.d.ts +0 -66
  530. package/lib-esm/types/Analytics.js +0 -1
  531. package/lib-esm/types/Analytics.js.map +0 -1
  532. package/lib-esm/types/Provider.d.ts +0 -10
  533. package/lib-esm/types/Provider.js.map +0 -1
  534. package/lib-esm/types/Providers/AWSKinesisProvider.d.ts +0 -6
  535. package/lib-esm/types/Providers/AWSKinesisProvider.js +0 -1
  536. package/lib-esm/types/Providers/AWSKinesisProvider.js.map +0 -1
  537. package/lib-esm/types/Providers/AWSPinpointProvider.d.ts +0 -50
  538. package/lib-esm/types/Providers/AWSPinpointProvider.js +0 -1
  539. package/lib-esm/types/Providers/AWSPinpointProvider.js.map +0 -1
  540. package/lib-esm/types/Providers/AmazonPersonalizeProvider.d.ts +0 -7
  541. package/lib-esm/types/Providers/AmazonPersonalizeProvider.js +0 -1
  542. package/lib-esm/types/Providers/AmazonPersonalizeProvider.js.map +0 -1
  543. package/lib-esm/types/Providers/index.d.ts +0 -1
  544. package/lib-esm/types/Providers/index.js +0 -1
  545. package/lib-esm/types/Providers/index.js.map +0 -1
  546. package/lib-esm/types/index.js.map +0 -1
  547. package/lib-esm/utils/AppUtils.d.ts +0 -2
  548. package/lib-esm/utils/AppUtils.js +0 -7
  549. package/lib-esm/utils/AppUtils.js.map +0 -1
  550. package/lib-esm/utils/AppUtils.native.d.ts +0 -2
  551. package/lib-esm/utils/AppUtils.native.js +0 -8
  552. package/lib-esm/utils/AppUtils.native.js.map +0 -1
  553. package/lib-esm/utils/MethodEmbed.d.ts +0 -11
  554. package/lib-esm/utils/MethodEmbed.js +0 -41
  555. package/lib-esm/utils/MethodEmbed.js.map +0 -1
  556. package/lib-esm/utils/UserAgent.js.map +0 -1
  557. package/lib-esm/vendor/dom-utils/closest.d.ts +0 -12
  558. package/lib-esm/vendor/dom-utils/closest.js +0 -24
  559. package/lib-esm/vendor/dom-utils/closest.js.map +0 -1
  560. package/lib-esm/vendor/dom-utils/delegate.d.ts +0 -18
  561. package/lib-esm/vendor/dom-utils/delegate.js +0 -48
  562. package/lib-esm/vendor/dom-utils/delegate.js.map +0 -1
  563. package/lib-esm/vendor/dom-utils/dispatch.d.ts +0 -17
  564. package/lib-esm/vendor/dom-utils/dispatch.js +0 -48
  565. package/lib-esm/vendor/dom-utils/dispatch.js.map +0 -1
  566. package/lib-esm/vendor/dom-utils/get-attributes.d.ts +0 -11
  567. package/lib-esm/vendor/dom-utils/get-attributes.js +0 -25
  568. package/lib-esm/vendor/dom-utils/get-attributes.js.map +0 -1
  569. package/lib-esm/vendor/dom-utils/index.d.ts +0 -7
  570. package/lib-esm/vendor/dom-utils/index.js +0 -8
  571. package/lib-esm/vendor/dom-utils/index.js.map +0 -1
  572. package/lib-esm/vendor/dom-utils/matches.d.ts +0 -11
  573. package/lib-esm/vendor/dom-utils/matches.js +0 -66
  574. package/lib-esm/vendor/dom-utils/matches.js.map +0 -1
  575. package/lib-esm/vendor/dom-utils/parents.d.ts +0 -10
  576. package/lib-esm/vendor/dom-utils/parents.js +0 -19
  577. package/lib-esm/vendor/dom-utils/parents.js.map +0 -1
  578. package/lib-esm/vendor/dom-utils/parse-url.d.ts +0 -9
  579. package/lib-esm/vendor/dom-utils/parse-url.js +0 -56
  580. package/lib-esm/vendor/dom-utils/parse-url.js.map +0 -1
  581. package/src/Analytics.ts +0 -446
  582. package/src/Providers/AWSKinesisFirehoseProvider.ts +0 -105
  583. package/src/Providers/AWSKinesisProvider.ts +0 -250
  584. package/src/Providers/AWSPinpointProvider.ts +0 -685
  585. package/src/Providers/AmazonPersonalizeHelper/DataType.ts +0 -49
  586. package/src/Providers/AmazonPersonalizeHelper/MediaAutoTrack.ts +0 -196
  587. package/src/Providers/AmazonPersonalizeHelper/SessionInfoManager.ts +0 -122
  588. package/src/Providers/AmazonPersonalizeHelper/index.ts +0 -11
  589. package/src/Providers/AmazonPersonalizeProvider.ts +0 -398
  590. package/src/Providers/EventBuffer.ts +0 -257
  591. package/src/Providers/index.ts +0 -6
  592. package/src/trackers/SessionTracker-rn.ts +0 -134
  593. package/src/trackers/reactnative.ts +0 -13
  594. package/src/types/Analytics.ts +0 -87
  595. package/src/types/Provider.ts +0 -26
  596. package/src/types/Providers/AWSPinpointProvider.ts +0 -60
  597. package/src/types/Providers/AmazonPersonalizeProvider.ts +0 -9
  598. package/src/utils/AppUtils.native.ts +0 -9
  599. package/src/utils/MethodEmbed.ts +0 -49
  600. package/src/vendor/dom-utils/closest.ts +0 -25
  601. package/src/vendor/dom-utils/delegate.ts +0 -51
  602. package/src/vendor/dom-utils/dispatch.ts +0 -59
  603. package/src/vendor/dom-utils/get-attributes.ts +0 -26
  604. package/src/vendor/dom-utils/index.ts +0 -7
  605. package/src/vendor/dom-utils/matches.ts +0 -68
  606. package/src/vendor/dom-utils/parents.ts +0 -19
  607. package/src/vendor/dom-utils/parse-url.ts +0 -66
@@ -1,398 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import {
5
- ConsoleLogger as Logger,
6
- Credentials,
7
- browserOrNode,
8
- AnalyticsAction,
9
- } from '@aws-amplify/core';
10
- import {
11
- PersonalizeEventsClient,
12
- PutEventsCommand,
13
- PutEventsCommandInput,
14
- } from '@aws-sdk/client-personalize-events';
15
- import {
16
- SessionInfo,
17
- RequestParams,
18
- RecordEventPayload,
19
- SessionInfoManager,
20
- MediaAutoTrack,
21
- } from './AmazonPersonalizeHelper';
22
- import get from 'lodash/get';
23
- import isEmpty from 'lodash/isEmpty';
24
- import isEqual from 'lodash/isEqual';
25
- import { AnalyticsProvider } from '../types';
26
- import { getAnalyticsUserAgent } from '../utils/UserAgent';
27
-
28
- const logger = new Logger('AmazonPersonalizeProvider');
29
-
30
- // events buffer
31
- const FLUSH_SIZE = 5;
32
- const FLUSH_SIZE_THRESHHOLD = 10;
33
- const FLUSH_INTERVAL = 5 * 1000; // 5s
34
-
35
- const IDENTIFY_EVENT = 'Identify';
36
-
37
- export class AmazonPersonalizeProvider implements AnalyticsProvider {
38
- private _config;
39
- private _personalize;
40
- private _buffer;
41
- private _timer;
42
- private _sessionInfo: SessionInfo;
43
- private _sessionManager;
44
- private _isBrowser;
45
-
46
- constructor(config?) {
47
- this._buffer = [];
48
- this._config = config ? config : {};
49
- this._config.flushSize =
50
- this._config.flushSize > 0 &&
51
- this._config.flushSize <= FLUSH_SIZE_THRESHHOLD
52
- ? this._config.flushSize
53
- : FLUSH_SIZE;
54
- this._config.flushInterval = this._config.flushInterval || FLUSH_INTERVAL;
55
- this._sessionManager = new SessionInfoManager();
56
- if (!isEmpty(this._config.trackingId)) {
57
- this._sessionInfo = this._sessionManager.retrieveSessionInfo(
58
- this._config.trackingId
59
- );
60
- }
61
- this._isBrowser = browserOrNode().isBrowser;
62
-
63
- // flush event buffer
64
- this._setupTimer();
65
- }
66
-
67
- private _setupTimer() {
68
- if (this._timer) {
69
- clearInterval(this._timer);
70
- }
71
- const { flushInterval } = this._config;
72
- const that = this;
73
- this._timer = setInterval(() => {
74
- that._sendFromBuffer();
75
- }, flushInterval);
76
- }
77
-
78
- /**
79
- * Record event
80
- * @param eventType - type of the event action. e.g. "Click"
81
- * @param properties - properties of the event
82
- * @return Promise
83
- */
84
- public async record(params): Promise<boolean> {
85
- const credentials = await this._getCredentials();
86
- if (!credentials) return Promise.resolve(false);
87
-
88
- Object.assign(params, {
89
- config: this._config,
90
- credentials,
91
- sentAt: new Date(),
92
- });
93
- const { eventType, properties } = params.event;
94
-
95
- if (eventType === IDENTIFY_EVENT) {
96
- this._sessionManager.updateSessionInfo(
97
- properties && properties.userId ? properties.userId : '',
98
- this._sessionInfo
99
- );
100
- return;
101
- } else if (!isEmpty(params.event.userId)) {
102
- this._sessionManager.updateSessionInfo(
103
- params.event.userId,
104
- this._sessionInfo
105
- );
106
- }
107
- const requestParams: RequestParams = this.generateRequestParams(
108
- params,
109
- this._sessionInfo
110
- );
111
- if (eventType === 'MediaAutoTrack') {
112
- if (this._isBrowser) {
113
- if (
114
- !isEmpty(
115
- get(requestParams, 'eventData.properties.domElementId', null)
116
- )
117
- ) {
118
- const isLoaded = await this.isElementFullyLoaded(
119
- this.loadElement,
120
- requestParams.eventData.properties['domElementId'],
121
- 500,
122
- 5
123
- );
124
- if (isLoaded) {
125
- new MediaAutoTrack(requestParams, this);
126
- } else {
127
- logger.debug('Cannot find the media element.');
128
- }
129
- } else {
130
- logger.debug(
131
- "Missing domElementId field in 'properties' for MediaAutoTrack event type."
132
- );
133
- }
134
- } else {
135
- logger.debug('MediaAutoTrack only for browser');
136
- }
137
- return;
138
- }
139
-
140
- return this.putToBuffer(requestParams);
141
- }
142
-
143
- private loadElement(domId): Promise<boolean> {
144
- return new Promise((resolve, reject) => {
145
- if (
146
- document.getElementById(domId) &&
147
- document.getElementById(domId).clientHeight
148
- ) {
149
- return resolve(true);
150
- } else {
151
- return reject(true);
152
- }
153
- });
154
- }
155
-
156
- private isElementFullyLoaded(
157
- operation,
158
- params,
159
- delay,
160
- times
161
- ): Promise<boolean> {
162
- const wait = ms => new Promise(r => setTimeout(r, ms));
163
- return new Promise((resolve, reject) => {
164
- return operation(params)
165
- .then(resolve)
166
- .catch(reason => {
167
- if (times - 1 > 0) {
168
- return wait(delay)
169
- .then(
170
- this.isElementFullyLoaded.bind(
171
- null,
172
- operation,
173
- params,
174
- delay,
175
- times - 1
176
- )
177
- )
178
- .then(resolve)
179
- .catch(reject);
180
- }
181
- return reject(reason);
182
- });
183
- });
184
- }
185
-
186
- /**
187
- * get the category of the plugin
188
- */
189
- public getCategory(): string {
190
- return 'Analytics';
191
- }
192
-
193
- /**
194
- * get provider name of the plugin
195
- */
196
- public getProviderName(): string {
197
- return 'AmazonPersonalize';
198
- }
199
-
200
- /**
201
- * configure the plugin
202
- * @param {Object} config - configuration
203
- */
204
- public configure(config): object {
205
- logger.debug('configure Analytics', config);
206
- const conf = config ? config : {};
207
- this._config = Object.assign({}, this._config, conf);
208
- if (!isEmpty(this._config.trackingId)) {
209
- this._sessionInfo = this._sessionManager.retrieveSessionInfo(
210
- this._config.trackingId
211
- );
212
- }
213
- this._setupTimer();
214
- return this._config;
215
- }
216
-
217
- /**
218
- * Generate the requestParams from customer input params and sessionInfo
219
- * @private
220
- * @param eventData - customer input for event data
221
- * @param api - api name
222
- * @return RequestParams - wrapper object with all information required for make request
223
- */
224
- private generateRequestParams(params, sessionInfo): RequestParams {
225
- const requestParams = <RequestParams>{};
226
- const { eventType, properties } = params.event;
227
- requestParams.eventData = { eventType, properties };
228
- requestParams.sessionInfo = sessionInfo;
229
- requestParams.sentAt = params.sentAt;
230
- requestParams.credentials = params.credentials;
231
- requestParams.config = params.config;
232
- return requestParams;
233
- }
234
-
235
- /**
236
- * record an event
237
- * @param {Object} params - the params of an event
238
- */
239
- private _sendEvents(group) {
240
- const groupLen = group.length;
241
- if (groupLen === 0) {
242
- logger.debug('events array is empty, directly return');
243
- return;
244
- }
245
-
246
- const { config, credentials, sessionInfo } = group[0];
247
-
248
- const initClients = this._init(config, credentials);
249
- if (!initClients) return false;
250
- if (groupLen > 0) {
251
- const events: RecordEventPayload[] = [];
252
- for (let i = 0; i < groupLen; i += 1) {
253
- const params: RequestParams = group.shift();
254
- const eventPayload: RecordEventPayload =
255
- this._generateSingleRecordPayload(params, sessionInfo);
256
- events.push(eventPayload);
257
- }
258
- const payload = <PutEventsCommandInput>{};
259
- payload.trackingId = sessionInfo.trackingId;
260
- payload.sessionId = sessionInfo.sessionId;
261
- payload.userId = sessionInfo.userId;
262
- payload.eventList = [];
263
- events.forEach(event => {
264
- // @ts-ignore
265
- payload.eventList.push(event);
266
- });
267
- const command: PutEventsCommand = new PutEventsCommand(payload);
268
- this._personalize.send(command, err => {
269
- if (err) logger.debug('Failed to call putEvents in Personalize', err);
270
- else logger.debug('Put events');
271
- });
272
- }
273
- }
274
-
275
- /**
276
- * Put event into buffer
277
- * @private
278
- * @param params - params for the event recording
279
- */
280
- private putToBuffer(params: RequestParams) {
281
- if (this._buffer.length < this._config.flushSize) {
282
- this._buffer.push(params);
283
- } else {
284
- this._buffer.push(params);
285
- this._sendFromBuffer();
286
- }
287
- return Promise.resolve(true);
288
- }
289
-
290
- /**
291
- * flush the buffer and batch sending the request
292
- * @private
293
- * @param eventsParams - the buffer for cache the payload
294
- */
295
- private _sendFromBuffer() {
296
- const size = this._buffer.length;
297
- if (size <= 0) return;
298
- const eventsGroups = [];
299
- let preCred = null;
300
- let group = [];
301
- for (let i = 0; i < size; i += 1) {
302
- const currRequestParams: RequestParams = this._buffer.shift();
303
- const cred = currRequestParams.credentials;
304
- const sessionInfo = currRequestParams.sessionInfo;
305
- if (i === 0) {
306
- group.push(currRequestParams);
307
- preCred = cred;
308
- } else {
309
- if (
310
- isEqual(sessionInfo, this._sessionInfo) &&
311
- cred.sessionToken === preCred.sessionToken &&
312
- cred.identityId === preCred.identityId
313
- ) {
314
- logger.debug('no change for cred, put event in the same group');
315
- group.push(currRequestParams);
316
- } else {
317
- eventsGroups.push(group);
318
- group = [];
319
- group.push(currRequestParams);
320
- preCred = cred;
321
- this._sessionInfo = sessionInfo;
322
- }
323
- }
324
- }
325
- eventsGroups.push(group);
326
-
327
- eventsGroups.map(group => {
328
- this._sendEvents(group);
329
- });
330
- }
331
-
332
- /**
333
- * Generate the record payload for single event
334
- * @private
335
- * @param params - RequestParams
336
- */
337
- private _generateSingleRecordPayload(
338
- params: RequestParams,
339
- sessionInfo
340
- ): RecordEventPayload {
341
- const { eventData, sentAt } = params;
342
- const trackPayload = <RecordEventPayload>{};
343
- trackPayload.sentAt = sentAt;
344
- trackPayload.properties =
345
- eventData.properties && JSON.stringify(eventData.properties);
346
- trackPayload.eventId =
347
- this._sessionManager.getTimerKey() + sessionInfo.sessionId;
348
- trackPayload.eventType = eventData.eventType;
349
- return trackPayload;
350
- }
351
-
352
- /**
353
- * Initialize the personalize client
354
- * @private
355
- * @param params - RequestParams
356
- */
357
- private _init(config, credentials) {
358
- logger.debug('init clients');
359
-
360
- if (
361
- this._personalize &&
362
- this._config.credentials &&
363
- this._config.credentials.sessionToken === credentials.sessionToken &&
364
- this._config.credentials.identityId === credentials.identityId
365
- ) {
366
- logger.debug('no change for analytics config, directly return from init');
367
- return true;
368
- }
369
-
370
- this._config.credentials = credentials;
371
- const { region } = config;
372
- logger.debug('initialize personalize with credentials', credentials);
373
- this._personalize = new PersonalizeEventsClient({
374
- region,
375
- credentials,
376
- customUserAgent: getAnalyticsUserAgent(AnalyticsAction.Record),
377
- });
378
- return true;
379
- }
380
-
381
- /**
382
- * check if current credentials exists
383
- * @private
384
- */
385
- private _getCredentials() {
386
- const that = this;
387
- return Credentials.get()
388
- .then(credentials => {
389
- if (!credentials) return null;
390
- logger.debug('set credentials for analytics', that._config.credentials);
391
- return Credentials.shear(credentials);
392
- })
393
- .catch(err => {
394
- logger.debug('ensure credentials error', err);
395
- return null;
396
- });
397
- }
398
- }
@@ -1,257 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
- import { AnalyticsAction, ConsoleLogger as Logger } from '@aws-amplify/core';
4
- import {
5
- putEvents,
6
- PutEventsInput,
7
- PutEventsOutput,
8
- } from '@aws-amplify/core/internals/aws-clients/pinpoint';
9
- import { EventBuffer, EventObject, EventMap } from '../types';
10
- import { isAppInForeground } from '../utils/AppUtils';
11
- import { getAnalyticsUserAgentString } from '../utils/UserAgent';
12
-
13
- const logger = new Logger('EventsBuffer');
14
- const RETRYABLE_CODES = [429, 500];
15
- const ACCEPTED_CODES = [202];
16
-
17
- type EventsBufferConfig = {
18
- bufferSize: number;
19
- flushSize: number;
20
- flushInterval: number;
21
- resendLimit: number;
22
- };
23
-
24
- export default class EventsBuffer {
25
- private _config;
26
- private _interval;
27
- private _buffer: EventBuffer;
28
- private _pause = false;
29
- private _flush = false;
30
-
31
- constructor(config: EventsBufferConfig) {
32
- logger.debug('Instantiating buffer with config:', config);
33
- this._buffer = [];
34
- this._config = config;
35
-
36
- this._sendBatch = this._sendBatch.bind(this);
37
-
38
- this._startLoop();
39
- }
40
-
41
- public push(event: EventObject) {
42
- // if the buffer is currently at the configured limit, pushing would exceed it
43
- if (this._buffer.length >= this._config.bufferSize) {
44
- logger.debug('Exceeded analytics events buffer size');
45
- return event.handlers.reject(
46
- new Error('Exceeded the size of analytics events buffer')
47
- );
48
- }
49
-
50
- const { eventId } = event.params.event;
51
- const bufferElement = { [eventId]: event };
52
- this._buffer.push(bufferElement);
53
- }
54
-
55
- public pause() {
56
- this._pause = true;
57
- }
58
-
59
- public resume() {
60
- this._pause = false;
61
- }
62
-
63
- public flush() {
64
- this._flush = true;
65
- }
66
-
67
- private _startLoop() {
68
- if (this._interval) {
69
- clearInterval(this._interval);
70
- }
71
-
72
- const { flushInterval } = this._config;
73
-
74
- this._interval = setInterval(this._sendBatch, flushInterval);
75
- }
76
-
77
- private _sendBatch() {
78
- const bufferLength = this._buffer.length;
79
-
80
- if (this._flush && !bufferLength) {
81
- clearInterval(this._interval);
82
- }
83
-
84
- // Do not send the batch of events if
85
- // the Buffer is paused or is empty or the App is not in the foreground
86
- // Apps should be in the foreground since
87
- // the OS may restrict access to the network in the background
88
- if (this._pause || !bufferLength || !isAppInForeground()) {
89
- return;
90
- }
91
-
92
- const { flushSize } = this._config;
93
-
94
- const batchSize = Math.min(flushSize, bufferLength);
95
- const bufferSubset = this._buffer.splice(0, batchSize);
96
-
97
- this._putEvents(bufferSubset);
98
- }
99
-
100
- private async _putEvents(buffer: EventBuffer) {
101
- const eventMap: EventMap = this._bufferToMap(buffer);
102
- const batchEventParams = this._generateBatchEventParams(eventMap);
103
-
104
- try {
105
- const { credentials, region } = this._config;
106
- const data: PutEventsOutput = await putEvents(
107
- {
108
- credentials,
109
- region,
110
- userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
111
- },
112
- batchEventParams
113
- );
114
- this._processPutEventsSuccessResponse(data, eventMap);
115
- } catch (err) {
116
- return this._handlePutEventsFailure(err, eventMap);
117
- }
118
- }
119
-
120
- private _generateBatchEventParams(eventMap: EventMap): PutEventsInput {
121
- const batchEventParams = {
122
- ApplicationId: '',
123
- EventsRequest: {
124
- BatchItem: {},
125
- },
126
- };
127
-
128
- Object.values(eventMap).forEach(item => {
129
- const { params } = item;
130
- const { event, timestamp, config } = params;
131
- const { name, attributes, metrics, eventId, session } = event;
132
- const { appId, endpointId } = config;
133
-
134
- const batchItem = batchEventParams.EventsRequest.BatchItem;
135
-
136
- batchEventParams.ApplicationId = batchEventParams.ApplicationId || appId;
137
-
138
- if (!batchItem[endpointId]) {
139
- batchItem[endpointId] = {
140
- Endpoint: {},
141
- Events: {},
142
- };
143
- }
144
-
145
- batchItem[endpointId].Events[eventId] = {
146
- EventType: name,
147
- Timestamp: new Date(timestamp).toISOString(),
148
- Attributes: attributes,
149
- Metrics: metrics,
150
- Session: session,
151
- };
152
- });
153
-
154
- return batchEventParams;
155
- }
156
-
157
- private _handlePutEventsFailure(err, eventMap: EventMap) {
158
- logger.debug('_putEvents Failed: ', err);
159
- const statusCode = err.$metadata && err.$metadata.httpStatusCode;
160
-
161
- if (RETRYABLE_CODES.includes(statusCode)) {
162
- const retryableEvents = Object.values(eventMap);
163
- this._retry(retryableEvents);
164
- return;
165
- }
166
- }
167
-
168
- private _processPutEventsSuccessResponse(
169
- data: PutEventsOutput,
170
- eventMap: EventMap
171
- ) {
172
- const { Results = {} } = data.EventsResponse ?? {};
173
- const retryableEvents: EventObject[] = [];
174
-
175
- Object.entries(Results).forEach(([endpointId, endpointValues]) => {
176
- const responses = endpointValues.EventsItemResponse ?? {};
177
-
178
- Object.entries(responses).forEach(([eventId, eventValues]) => {
179
- const eventObject = eventMap[eventId];
180
- if (!eventObject) {
181
- return;
182
- }
183
-
184
- const { StatusCode, Message } = eventValues ?? {};
185
-
186
- // manually crafting handlers response to keep API consistant
187
- const response = {
188
- EventsResponse: {
189
- Results: {
190
- [endpointId]: {
191
- EventsItemResponse: {
192
- [eventId]: { StatusCode, Message },
193
- },
194
- },
195
- },
196
- },
197
- };
198
-
199
- if (StatusCode && ACCEPTED_CODES.includes(StatusCode)) {
200
- eventObject.handlers.resolve(response);
201
- return;
202
- }
203
-
204
- if (StatusCode && RETRYABLE_CODES.includes(StatusCode)) {
205
- retryableEvents.push(eventObject);
206
- return;
207
- }
208
-
209
- const { name } = eventObject.params.event;
210
-
211
- logger.error(
212
- `event ${eventId} : ${name} failed with error: ${Message}`
213
- );
214
- return eventObject.handlers.reject(response);
215
- });
216
- });
217
-
218
- if (retryableEvents.length) {
219
- this._retry(retryableEvents);
220
- }
221
- }
222
-
223
- private _retry(retryableEvents: EventObject[]) {
224
- // retryable events that haven't reached the resendLimit
225
- const eligibleEvents: EventBuffer = [];
226
-
227
- retryableEvents.forEach((event: EventObject) => {
228
- const { params } = event;
229
- const { eventId, name } = params.event;
230
-
231
- if (params.resendLimit-- > 0) {
232
- logger.debug(
233
- `resending event ${eventId} : ${name} with ${params.resendLimit} retry attempts remaining`
234
- );
235
- eligibleEvents.push({ [eventId]: event });
236
- return;
237
- }
238
-
239
- logger.debug(
240
- `no retry attempts remaining for event ${eventId} : ${name}`
241
- );
242
- });
243
-
244
- // add the events to the front of the buffer
245
- this._buffer.unshift(...eligibleEvents);
246
- }
247
-
248
- // convert buffer to map, i.e. { eventId1: { params, handler }, eventId2: { params, handlers } }
249
- // this allows us to easily access the handlers after receiving a batch response
250
- private _bufferToMap(buffer: EventBuffer) {
251
- return buffer.reduce((acc, curVal) => {
252
- const [[key, value]] = Object.entries(curVal);
253
- acc[key] = value;
254
- return acc;
255
- }, {});
256
- }
257
- }
@@ -1,6 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
- export { AWSPinpointProvider } from './AWSPinpointProvider';
4
- export { AWSKinesisProvider } from './AWSKinesisProvider';
5
- export { AWSKinesisFirehoseProvider } from './AWSKinesisFirehoseProvider';
6
- export { AmazonPersonalizeProvider } from './AmazonPersonalizeProvider';