@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
package/src/Analytics.ts DELETED
@@ -1,446 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import {
5
- Amplify,
6
- ConsoleLogger as Logger,
7
- Hub,
8
- parseAWSExports,
9
- } from '@aws-amplify/core';
10
- import { AWSPinpointProvider } from './Providers/AWSPinpointProvider';
11
-
12
- import {
13
- AnalyticsProvider,
14
- EventAttributes,
15
- EventMetrics,
16
- AnalyticsEvent,
17
- AutoTrackSessionOpts,
18
- AutoTrackPageViewOpts,
19
- AutoTrackEventOpts,
20
- PersonalizeAnalyticsEvent,
21
- KinesisAnalyticsEvent,
22
- } from './types';
23
- import { PageViewTracker, EventTracker, SessionTracker } from './trackers';
24
-
25
- const logger = new Logger('AnalyticsClass');
26
-
27
- const AMPLIFY_SYMBOL = (
28
- typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'
29
- ? Symbol.for('amplify_default')
30
- : '@@amplify_default'
31
- ) as Symbol;
32
-
33
- const dispatchAnalyticsEvent = (event: string, data: any, message: string) => {
34
- Hub.dispatch(
35
- 'analytics',
36
- { event, data, message },
37
- 'Analytics',
38
- AMPLIFY_SYMBOL
39
- );
40
- };
41
-
42
- const trackers = {
43
- pageView: PageViewTracker,
44
- event: EventTracker,
45
- session: SessionTracker,
46
- };
47
-
48
- type TrackerTypes = keyof typeof trackers;
49
- type Trackers = (typeof trackers)[TrackerTypes];
50
- let _instance = null;
51
-
52
- /**
53
- * Provide mobile analytics client functions
54
- */
55
- export class AnalyticsClass {
56
- private _config;
57
- private _pluggables: AnalyticsProvider[];
58
- private _disabled: boolean;
59
- private _trackers: Trackers | {};
60
-
61
- /**
62
- * Initialize Analtyics
63
- * @param config - Configuration of the Analytics
64
- */
65
- constructor() {
66
- this._config = {};
67
- this._pluggables = [];
68
- this._disabled = false;
69
- this._trackers = {};
70
- _instance = this;
71
-
72
- this.record = this.record.bind(this);
73
- Hub.listen('auth', listener);
74
- Hub.listen('storage', listener);
75
- Hub.listen('analytics', listener);
76
- Hub.listen('core', listener);
77
- }
78
-
79
- public getModuleName() {
80
- return 'Analytics';
81
- }
82
- /**
83
- * configure Analytics
84
- * @param {Object} config - Configuration of the Analytics
85
- */
86
- public configure(config?) {
87
- if (!config) return this._config;
88
- logger.debug('configure Analytics', config);
89
- const amplifyConfig = parseAWSExports(config);
90
- this._config = Object.assign(
91
- {},
92
- this._config,
93
- amplifyConfig.Analytics,
94
- config
95
- );
96
-
97
- if (this._config['disabled']) {
98
- this._disabled = true;
99
- }
100
-
101
- // turn on the autoSessionRecord if not specified
102
- if (this._config['autoSessionRecord'] === undefined) {
103
- this._config['autoSessionRecord'] = true;
104
- }
105
-
106
- this._pluggables.forEach(pluggable => {
107
- // for backward compatibility
108
- const providerConfig =
109
- pluggable.getProviderName() === 'AWSPinpoint' &&
110
- !this._config['AWSPinpoint']
111
- ? this._config
112
- : this._config[pluggable.getProviderName()];
113
-
114
- pluggable.configure({
115
- disabled: this._config['disabled'],
116
- autoSessionRecord: this._config['autoSessionRecord'],
117
- ...providerConfig,
118
- });
119
- });
120
-
121
- if (this._pluggables.length === 0) {
122
- this.addPluggable(new AWSPinpointProvider());
123
- }
124
-
125
- dispatchAnalyticsEvent(
126
- 'configured',
127
- null,
128
- `The Analytics category has been configured successfully`
129
- );
130
- logger.debug('current configuration', this._config);
131
- return this._config;
132
- }
133
-
134
- /**
135
- * add plugin into Analytics category
136
- * @param pluggable - an instance of the plugin
137
- */
138
- public addPluggable(pluggable: AnalyticsProvider) {
139
- if (pluggable && pluggable.getCategory() === 'Analytics') {
140
- this._pluggables.push(pluggable);
141
- // for backward compatibility
142
- const providerConfig =
143
- pluggable.getProviderName() === 'AWSPinpoint' &&
144
- !this._config['AWSPinpoint']
145
- ? this._config
146
- : this._config[pluggable.getProviderName()];
147
- const config = { disabled: this._config['disabled'], ...providerConfig };
148
- pluggable.configure(config);
149
- return config;
150
- }
151
- }
152
-
153
- /**
154
- * Get the plugin object
155
- * @param providerName - the name of the provider to be removed
156
- */
157
- public getPluggable(providerName: string): AnalyticsProvider {
158
- for (let i = 0; i < this._pluggables.length; i += 1) {
159
- const pluggable = this._pluggables[i];
160
- if (pluggable.getProviderName() === providerName) {
161
- return pluggable;
162
- }
163
- }
164
-
165
- logger.debug('No plugin found with providerName', providerName);
166
- return null;
167
- }
168
-
169
- /**
170
- * Remove the plugin object
171
- * @param providerName - the name of the provider to be removed
172
- */
173
- public removePluggable(providerName: string): void {
174
- let idx = 0;
175
- while (idx < this._pluggables.length) {
176
- if (this._pluggables[idx].getProviderName() === providerName) {
177
- break;
178
- }
179
- idx += 1;
180
- }
181
-
182
- if (idx === this._pluggables.length) {
183
- logger.debug('No plugin found with providerName', providerName);
184
- return;
185
- } else {
186
- this._pluggables.splice(idx, idx + 1);
187
- return;
188
- }
189
- }
190
-
191
- /**
192
- * stop sending events
193
- */
194
- public disable() {
195
- this._disabled = true;
196
- }
197
-
198
- /**
199
- * start sending events
200
- */
201
- public enable() {
202
- this._disabled = false;
203
- }
204
-
205
- /**
206
- * Record Session start
207
- * @param [provider] - name of the provider.
208
- * @return - A promise which resolves if buffer doesn't overflow
209
- */
210
- public async startSession(provider?: string) {
211
- const event = { name: '_session.start' };
212
- const params = { event, provider };
213
-
214
- dispatchAnalyticsEvent(
215
- 'record',
216
- event,
217
- 'Recording Analytics session start event'
218
- );
219
-
220
- return this._sendEvent(params);
221
- }
222
-
223
- /**
224
- * Record Session stop
225
- * @param [provider] - name of the provider.
226
- * @return - A promise which resolves if buffer doesn't overflow
227
- */
228
- public async stopSession(provider?: string) {
229
- const event = { name: '_session.stop' };
230
- const params = { event, provider };
231
-
232
- dispatchAnalyticsEvent(
233
- 'record',
234
- event,
235
- 'Recording Analytics session stop event'
236
- );
237
-
238
- return this._sendEvent(params);
239
- }
240
-
241
- /**
242
- * Record one analytic event and send it to Pinpoint
243
- * @param event - An object with the name of the event, attributes of the event and event metrics.
244
- * @param [provider] - name of the provider.
245
- */
246
- public async record(
247
- event: AnalyticsEvent | PersonalizeAnalyticsEvent | KinesisAnalyticsEvent,
248
- provider?: string
249
- ) {
250
- const params = { event, provider };
251
-
252
- dispatchAnalyticsEvent('record', params.event, 'Recording Analytics event');
253
-
254
- return this._sendEvent(params);
255
- }
256
-
257
- public async updateEndpoint(
258
- attrs: { [key: string]: any },
259
- provider?: string
260
- ) {
261
- const event = { ...attrs, name: '_update_endpoint' };
262
-
263
- return this.record(event, provider);
264
- }
265
-
266
- private _sendEvent(params: {
267
- event: AnalyticsEvent | PersonalizeAnalyticsEvent | KinesisAnalyticsEvent;
268
- provider?: string;
269
- }) {
270
- if (this._disabled) {
271
- logger.debug('Analytics has been disabled');
272
- return Promise.resolve();
273
- }
274
-
275
- const provider = params.provider ? params.provider : 'AWSPinpoint';
276
- return new Promise((resolve, reject) => {
277
- this._pluggables.forEach(pluggable => {
278
- if (pluggable.getProviderName() === provider) {
279
- pluggable.record(params, { resolve, reject });
280
- }
281
- });
282
- });
283
- }
284
-
285
- /**
286
- * Enable or disable auto tracking
287
- * @param trackerType - The type of tracker to activate.
288
- * @param [opts] - Auto tracking options.
289
- */
290
- public autoTrack(trackerType: 'session', opts: AutoTrackSessionOpts);
291
- public autoTrack(trackerType: 'pageView', opts: AutoTrackPageViewOpts);
292
- public autoTrack(trackerType: 'event', opts: AutoTrackEventOpts);
293
- // ensures backwards compatibility for non-pinpoint provider users
294
- public autoTrack(
295
- trackerType: TrackerTypes,
296
- opts: { provider: string; [key: string]: any }
297
- );
298
- public autoTrack(trackerType: TrackerTypes, opts: { [key: string]: any }) {
299
- if (!trackers[trackerType]) {
300
- logger.debug('invalid tracker type');
301
- return;
302
- }
303
-
304
- // to sync up two different configuration ways of auto session tracking
305
- if (trackerType === 'session') {
306
- this._config['autoSessionRecord'] = opts['enable'];
307
- }
308
-
309
- const tracker = this._trackers[trackerType];
310
- if (!tracker) {
311
- this._trackers[trackerType] = new trackers[trackerType](
312
- this.record,
313
- opts
314
- );
315
- } else {
316
- tracker.configure(opts);
317
- }
318
- }
319
- }
320
-
321
- let endpointUpdated = false;
322
- let authConfigured = false;
323
- let analyticsConfigured = false;
324
- let credentialsConfigured = false;
325
-
326
- const listener = capsule => {
327
- const { channel, payload } = capsule;
328
- logger.debug('on hub capsule ' + channel, payload);
329
-
330
- switch (channel) {
331
- case 'auth':
332
- authEvent(payload);
333
- break;
334
- case 'storage':
335
- storageEvent(payload);
336
- break;
337
- case 'analytics':
338
- analyticsEvent(payload);
339
- break;
340
- case 'core':
341
- coreEvent(payload);
342
- break;
343
- default:
344
- break;
345
- }
346
- };
347
-
348
- const storageEvent = payload => {
349
- const {
350
- data: { attrs, metrics },
351
- } = payload;
352
- if (!attrs) return;
353
-
354
- if (analyticsConfigured) {
355
- _instance
356
- .record({
357
- name: 'Storage',
358
- attributes: attrs,
359
- metrics,
360
- })
361
- .catch(e => {
362
- logger.debug('Failed to send the storage event automatically', e);
363
- });
364
- }
365
- };
366
-
367
- const authEvent = payload => {
368
- const { event } = payload;
369
- if (!event) {
370
- return;
371
- }
372
-
373
- const recordAuthEvent = async eventName => {
374
- if (authConfigured && analyticsConfigured) {
375
- try {
376
- return await _instance.record({ name: `_userauth.${eventName}` });
377
- } catch (err) {
378
- logger.debug(
379
- `Failed to send the ${eventName} event automatically`,
380
- err
381
- );
382
- }
383
- }
384
- };
385
-
386
- switch (event) {
387
- case 'signIn':
388
- return recordAuthEvent('sign_in');
389
- case 'signUp':
390
- return recordAuthEvent('sign_up');
391
- case 'signOut':
392
- return recordAuthEvent('sign_out');
393
- case 'signIn_failure':
394
- return recordAuthEvent('auth_fail');
395
- case 'configured':
396
- authConfigured = true;
397
- if (analyticsConfigured) {
398
- sendEvents();
399
- }
400
- break;
401
- }
402
- };
403
-
404
- const analyticsEvent = payload => {
405
- const { event } = payload;
406
- if (!event) return;
407
-
408
- switch (event) {
409
- case 'pinpointProvider_configured':
410
- analyticsConfigured = true;
411
- if (authConfigured || credentialsConfigured) {
412
- sendEvents();
413
- }
414
- break;
415
- }
416
- };
417
-
418
- const coreEvent = payload => {
419
- const { event } = payload;
420
- if (!event) return;
421
-
422
- switch (event) {
423
- case 'credentials_configured':
424
- credentialsConfigured = true;
425
- if (analyticsConfigured) {
426
- sendEvents();
427
- }
428
- break;
429
- }
430
- };
431
-
432
- const sendEvents = () => {
433
- const config = _instance.configure();
434
- if (!endpointUpdated && config['autoSessionRecord']) {
435
- _instance.updateEndpoint({ immediate: true }).catch(e => {
436
- logger.debug('Failed to update the endpoint', e);
437
- });
438
- endpointUpdated = true;
439
- }
440
- _instance.autoTrack('session', {
441
- enable: config['autoSessionRecord'],
442
- });
443
- };
444
-
445
- export const Analytics = new AnalyticsClass();
446
- Amplify.register(Analytics);
@@ -1,105 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import { AnalyticsAction, ConsoleLogger as Logger } from '@aws-amplify/core';
5
- import { AWSKinesisProvider } from './AWSKinesisProvider';
6
- import {
7
- PutRecordBatchCommand,
8
- FirehoseClient,
9
- } from '@aws-sdk/client-firehose';
10
- import { fromUtf8 } from '@aws-sdk/util-utf8-browser';
11
- import { getAnalyticsUserAgent } from '../utils/UserAgent';
12
-
13
- const logger = new Logger('AWSKineisFirehoseProvider');
14
-
15
- export class AWSKinesisFirehoseProvider extends AWSKinesisProvider {
16
- private _kinesisFirehose: FirehoseClient;
17
-
18
- constructor(config?) {
19
- super(config);
20
- }
21
-
22
- /**
23
- * get provider name of the plugin
24
- */
25
- public getProviderName(): string {
26
- return 'AWSKinesisFirehose';
27
- }
28
-
29
- protected _sendEvents(group) {
30
- if (group.length === 0) {
31
- return;
32
- }
33
-
34
- const { config, credentials } = group[0];
35
-
36
- const initClients = this._init(config, credentials);
37
- if (!initClients) return false;
38
-
39
- const records = {};
40
-
41
- group.map(params => {
42
- // split by streamName
43
- const evt = params.event;
44
- const { streamName, data } = evt;
45
- if (records[streamName] === undefined) {
46
- records[streamName] = [];
47
- }
48
-
49
- const bufferData =
50
- data && typeof data !== 'string' ? JSON.stringify(data) : data;
51
- const Data = fromUtf8(bufferData);
52
- const record = { Data };
53
- records[streamName].push(record);
54
- });
55
-
56
- Object.keys(records).map(streamName => {
57
- logger.debug(
58
- 'putting records to kinesis',
59
- streamName,
60
- 'with records',
61
- records[streamName]
62
- );
63
-
64
- this._kinesisFirehose
65
- .send(
66
- new PutRecordBatchCommand({
67
- Records: records[streamName],
68
- DeliveryStreamName: streamName,
69
- })
70
- )
71
- .then(res => logger.debug('Upload records to stream', streamName))
72
- .catch(err => logger.debug('Failed to upload records to Kinesis', err));
73
- });
74
- }
75
-
76
- protected _init(config, credentials) {
77
- logger.debug('init clients');
78
-
79
- if (
80
- this._kinesisFirehose &&
81
- this._config.credentials &&
82
- this._config.credentials.sessionToken === credentials.sessionToken &&
83
- this._config.credentials.identityId === credentials.identityId
84
- ) {
85
- logger.debug('no change for analytics config, directly return from init');
86
- return true;
87
- }
88
-
89
- this._config.credentials = credentials;
90
- const { region } = config;
91
-
92
- return this._initFirehose(region, credentials);
93
- }
94
-
95
- private _initFirehose(region, credentials) {
96
- logger.debug('initialize kinesis firehose with credentials', credentials);
97
- this._kinesisFirehose = new FirehoseClient({
98
- apiVersion: '2015-08-04',
99
- region,
100
- credentials,
101
- customUserAgent: getAnalyticsUserAgent(AnalyticsAction.Record),
102
- });
103
- return true;
104
- }
105
- }