@aws-amplify/analytics 7.0.1-console-preview.d745d43.0 → 7.0.1-mjs-test.20ead30.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 (556) hide show
  1. package/{lib → dist/cjs}/apis/disable.js +4 -2
  2. package/dist/cjs/apis/disable.js.map +1 -0
  3. package/{lib → dist/cjs}/apis/enable.js +4 -2
  4. package/dist/cjs/apis/enable.js.map +1 -0
  5. package/{lib → dist/cjs}/apis/index.js +3 -1
  6. package/dist/cjs/apis/index.js.map +1 -0
  7. package/dist/cjs/errors/AnalyticsError.js +21 -0
  8. package/dist/cjs/errors/AnalyticsError.js.map +1 -0
  9. package/{lib → dist/cjs}/errors/assertValidationError.js +9 -7
  10. package/dist/cjs/errors/assertValidationError.js.map +1 -0
  11. package/{lib → dist/cjs}/errors/index.js +3 -1
  12. package/dist/cjs/errors/index.js.map +1 -0
  13. package/{lib → dist/cjs}/errors/validation.js +13 -12
  14. package/dist/cjs/errors/validation.js.map +1 -0
  15. package/{lib → dist/cjs}/index.js +3 -1
  16. package/dist/cjs/index.js.map +1 -0
  17. package/dist/cjs/providers/kinesis/apis/flushEvents.js +37 -0
  18. package/dist/cjs/providers/kinesis/apis/flushEvents.js.map +1 -0
  19. package/{lib → dist/cjs}/providers/kinesis/apis/index.js +3 -1
  20. package/dist/cjs/providers/kinesis/apis/index.js.map +1 -0
  21. package/dist/cjs/providers/kinesis/apis/record.js +48 -0
  22. package/dist/cjs/providers/kinesis/apis/record.js.map +1 -0
  23. package/{lib/providers/personalize → dist/cjs/providers/kinesis}/index.js +3 -1
  24. package/dist/cjs/providers/kinesis/index.js.map +1 -0
  25. package/{lib → dist/cjs}/providers/kinesis/types/buffer.js +3 -1
  26. package/dist/cjs/providers/kinesis/types/buffer.js.map +1 -0
  27. package/{lib/providers/kinesis-firehose → dist/cjs/providers/kinesis}/types/index.js +3 -1
  28. package/dist/cjs/providers/kinesis/types/index.js.map +1 -0
  29. package/{lib/providers/personalize → dist/cjs/providers/kinesis}/types/inputs.js +3 -1
  30. package/dist/cjs/providers/kinesis/types/inputs.js.map +1 -0
  31. package/{lib → dist/cjs}/providers/kinesis/utils/constants.js +3 -1
  32. package/dist/cjs/providers/kinesis/utils/constants.js.map +1 -0
  33. package/dist/cjs/providers/kinesis/utils/getEventBuffer.js +74 -0
  34. package/dist/cjs/providers/kinesis/utils/getEventBuffer.js.map +1 -0
  35. package/dist/cjs/providers/kinesis/utils/resolveConfig.js +27 -0
  36. package/dist/cjs/providers/kinesis/utils/resolveConfig.js.map +1 -0
  37. package/dist/cjs/providers/kinesis-firehose/apis/flushEvents.js +36 -0
  38. package/dist/cjs/providers/kinesis-firehose/apis/flushEvents.js.map +1 -0
  39. package/{lib/providers/personalize → dist/cjs/providers/kinesis-firehose}/apis/index.js +3 -1
  40. package/dist/cjs/providers/kinesis-firehose/apis/index.js.map +1 -0
  41. package/dist/cjs/providers/kinesis-firehose/apis/record.js +45 -0
  42. package/dist/cjs/providers/kinesis-firehose/apis/record.js.map +1 -0
  43. package/{lib → dist/cjs}/providers/kinesis-firehose/index.js +3 -1
  44. package/dist/cjs/providers/kinesis-firehose/index.js.map +1 -0
  45. package/{lib/providers/personalize → dist/cjs/providers/kinesis-firehose}/types/buffer.js +3 -1
  46. package/dist/cjs/providers/kinesis-firehose/types/buffer.js.map +1 -0
  47. package/{lib/providers/kinesis → dist/cjs/providers/kinesis-firehose}/types/index.js +3 -1
  48. package/dist/cjs/providers/kinesis-firehose/types/index.js.map +1 -0
  49. package/{lib/providers/kinesis → dist/cjs/providers/kinesis-firehose}/types/inputs.js +3 -1
  50. package/dist/cjs/providers/kinesis-firehose/types/inputs.js.map +1 -0
  51. package/{lib → dist/cjs}/providers/kinesis-firehose/utils/constants.js +3 -1
  52. package/dist/cjs/providers/kinesis-firehose/utils/constants.js.map +1 -0
  53. package/dist/cjs/providers/kinesis-firehose/utils/getEventBuffer.js +73 -0
  54. package/dist/cjs/providers/kinesis-firehose/utils/getEventBuffer.js.map +1 -0
  55. package/{lib → dist/cjs}/providers/kinesis-firehose/utils/index.js +3 -1
  56. package/dist/cjs/providers/kinesis-firehose/utils/index.js.map +1 -0
  57. package/dist/cjs/providers/kinesis-firehose/utils/resolveConfig.js +27 -0
  58. package/dist/cjs/providers/kinesis-firehose/utils/resolveConfig.js.map +1 -0
  59. package/dist/cjs/providers/personalize/apis/flushEvents.js +35 -0
  60. package/dist/cjs/providers/personalize/apis/flushEvents.js.map +1 -0
  61. package/{lib/providers/kinesis-firehose → dist/cjs/providers/personalize}/apis/index.js +3 -1
  62. package/dist/cjs/providers/personalize/apis/index.js.map +1 -0
  63. package/dist/cjs/providers/personalize/apis/record.js +73 -0
  64. package/dist/cjs/providers/personalize/apis/record.js.map +1 -0
  65. package/{lib/providers/kinesis → dist/cjs/providers/personalize}/index.js +3 -1
  66. package/dist/cjs/providers/personalize/index.js.map +1 -0
  67. package/{lib/providers/kinesis-firehose → dist/cjs/providers/personalize}/types/buffer.js +3 -1
  68. package/dist/cjs/providers/personalize/types/buffer.js.map +1 -0
  69. package/{lib → dist/cjs}/providers/personalize/types/index.js +3 -1
  70. package/dist/cjs/providers/personalize/types/index.js.map +1 -0
  71. package/{lib/providers/kinesis-firehose → dist/cjs/providers/personalize}/types/inputs.js +3 -1
  72. package/dist/cjs/providers/personalize/types/inputs.js.map +1 -0
  73. package/dist/cjs/providers/personalize/utils/autoTrackMedia.js +183 -0
  74. package/dist/cjs/providers/personalize/utils/autoTrackMedia.js.map +1 -0
  75. package/dist/cjs/providers/personalize/utils/cachedSession.js +51 -0
  76. package/dist/cjs/providers/personalize/utils/cachedSession.js.map +1 -0
  77. package/{lib → dist/cjs}/providers/personalize/utils/constants.js +3 -1
  78. package/dist/cjs/providers/personalize/utils/constants.js.map +1 -0
  79. package/dist/cjs/providers/personalize/utils/getEventBuffer.js +75 -0
  80. package/dist/cjs/providers/personalize/utils/getEventBuffer.js.map +1 -0
  81. package/{lib → dist/cjs}/providers/personalize/utils/index.js +3 -1
  82. package/dist/cjs/providers/personalize/utils/index.js.map +1 -0
  83. package/dist/cjs/providers/personalize/utils/resolveConfig.js +28 -0
  84. package/dist/cjs/providers/personalize/utils/resolveConfig.js.map +1 -0
  85. package/{lib → dist/cjs}/providers/pinpoint/apis/configureAutoTrack.js +9 -7
  86. package/dist/cjs/providers/pinpoint/apis/configureAutoTrack.js.map +1 -0
  87. package/dist/cjs/providers/pinpoint/apis/flushEvents.js +27 -0
  88. package/dist/cjs/providers/pinpoint/apis/flushEvents.js.map +1 -0
  89. package/{lib/providers/pinpoint/apis/identifyUser.d.ts → dist/cjs/providers/pinpoint/apis/identifyUser.js} +28 -2
  90. package/dist/cjs/providers/pinpoint/apis/identifyUser.js.map +1 -0
  91. package/{lib → dist/cjs}/providers/pinpoint/apis/index.js +3 -1
  92. package/dist/cjs/providers/pinpoint/apis/index.js.map +1 -0
  93. package/{lib → dist/cjs}/providers/pinpoint/apis/record.js +18 -17
  94. package/dist/cjs/providers/pinpoint/apis/record.js.map +1 -0
  95. package/{lib → dist/cjs}/providers/pinpoint/index.js +3 -1
  96. package/dist/cjs/providers/pinpoint/index.js.map +1 -0
  97. package/{lib → dist/cjs}/providers/pinpoint/types/index.js +3 -1
  98. package/dist/cjs/providers/pinpoint/types/index.js.map +1 -0
  99. package/{lib → dist/cjs}/providers/pinpoint/types/inputs.js +3 -1
  100. package/dist/cjs/providers/pinpoint/types/inputs.js.map +1 -0
  101. package/{lib → dist/cjs}/providers/pinpoint/types/options.js +3 -1
  102. package/dist/cjs/providers/pinpoint/types/options.js.map +1 -0
  103. package/{lib → dist/cjs}/providers/pinpoint/utils/index.js +3 -1
  104. package/dist/cjs/providers/pinpoint/utils/index.js.map +1 -0
  105. package/{lib → dist/cjs}/providers/pinpoint/utils/resolveConfig.js +8 -7
  106. package/dist/cjs/providers/pinpoint/utils/resolveConfig.js.map +1 -0
  107. package/dist/cjs/providers/pinpoint/utils/resolveCredentials.js +18 -0
  108. package/dist/cjs/providers/pinpoint/utils/resolveCredentials.js.map +1 -0
  109. package/{lib → dist/cjs}/setupTests.js +4 -2
  110. package/dist/cjs/setupTests.js.map +1 -0
  111. package/dist/cjs/trackers/EventTracker.js +100 -0
  112. package/dist/cjs/trackers/EventTracker.js.map +1 -0
  113. package/{lib → dist/cjs}/trackers/PageViewTracker.js +44 -46
  114. package/dist/cjs/trackers/PageViewTracker.js.map +1 -0
  115. package/{lib → dist/cjs}/trackers/SessionTracker.js +28 -32
  116. package/dist/cjs/trackers/SessionTracker.js.map +1 -0
  117. package/{lib → dist/cjs}/trackers/SessionTracker.native.js +28 -32
  118. package/dist/cjs/trackers/SessionTracker.native.js.map +1 -0
  119. package/{lib → dist/cjs}/trackers/index.js +3 -1
  120. package/dist/cjs/trackers/index.js.map +1 -0
  121. package/dist/cjs/types/index.js +6 -0
  122. package/dist/cjs/types/index.js.map +1 -0
  123. package/dist/cjs/types/inputs.js +6 -0
  124. package/dist/cjs/types/inputs.js.map +1 -0
  125. package/{lib → dist/cjs}/types/kinesis.js +3 -1
  126. package/dist/cjs/types/kinesis.js.map +1 -0
  127. package/{lib → dist/cjs}/types/options.js +3 -1
  128. package/dist/cjs/types/options.js.map +1 -0
  129. package/{lib → dist/cjs}/types/trackers.js +3 -1
  130. package/dist/cjs/types/trackers.js.map +1 -0
  131. package/dist/cjs/utils/eventBuffer/EventBuffer.js +65 -0
  132. package/dist/cjs/utils/eventBuffer/EventBuffer.js.map +1 -0
  133. package/{lib → dist/cjs}/utils/eventBuffer/index.js +3 -1
  134. package/dist/cjs/utils/eventBuffer/index.js.map +1 -0
  135. package/{lib → dist/cjs}/utils/eventBuffer/types.js +3 -1
  136. package/dist/cjs/utils/eventBuffer/types.js.map +1 -0
  137. package/dist/cjs/utils/groupBy.js +14 -0
  138. package/dist/cjs/utils/groupBy.js.map +1 -0
  139. package/{lib → dist/cjs}/utils/index.js +3 -1
  140. package/dist/cjs/utils/index.js.map +1 -0
  141. package/dist/cjs/utils/resolveCredentials.js +15 -0
  142. package/dist/cjs/utils/resolveCredentials.js.map +1 -0
  143. package/{lib → dist/cjs}/utils/statusHelpers.js +7 -5
  144. package/dist/cjs/utils/statusHelpers.js.map +1 -0
  145. package/{lib → dist/cjs}/utils/trackerConfigHelpers.js +5 -3
  146. package/dist/cjs/utils/trackerConfigHelpers.js.map +1 -0
  147. package/{lib → dist/cjs}/utils/trackerConfigHelpers.native.js +5 -3
  148. package/dist/cjs/utils/trackerConfigHelpers.native.js.map +1 -0
  149. package/{lib → dist/cjs}/utils/trackerHelpers.js +8 -6
  150. package/dist/cjs/utils/trackerHelpers.js.map +1 -0
  151. package/{lib → dist/cjs}/utils/userAgent.js +6 -4
  152. package/dist/cjs/utils/userAgent.js.map +1 -0
  153. package/dist/esm/apis/disable.mjs +22 -0
  154. package/dist/esm/apis/disable.mjs.map +1 -0
  155. package/dist/esm/apis/enable.mjs +21 -0
  156. package/dist/esm/apis/enable.mjs.map +1 -0
  157. package/dist/esm/apis/index.mjs +3 -0
  158. package/dist/esm/apis/index.mjs.map +1 -0
  159. package/dist/esm/errors/AnalyticsError.mjs +19 -0
  160. package/dist/esm/errors/AnalyticsError.mjs.map +1 -0
  161. package/dist/esm/errors/assertValidationError.mjs +21 -0
  162. package/dist/esm/errors/assertValidationError.mjs.map +1 -0
  163. package/dist/esm/errors/index.mjs +4 -0
  164. package/dist/esm/errors/index.mjs.map +1 -0
  165. package/{lib-esm/errors/validation.js → dist/esm/errors/validation.mjs} +14 -12
  166. package/dist/esm/errors/validation.mjs.map +1 -0
  167. package/dist/esm/index.mjs +9 -0
  168. package/dist/esm/index.mjs.map +1 -0
  169. package/dist/esm/providers/kinesis/apis/flushEvents.mjs +41 -0
  170. package/dist/esm/providers/kinesis/apis/flushEvents.mjs.map +1 -0
  171. package/dist/esm/providers/kinesis/apis/index.mjs +3 -0
  172. package/dist/esm/providers/kinesis/apis/index.mjs.map +1 -0
  173. package/dist/esm/providers/kinesis/apis/record.mjs +53 -0
  174. package/dist/esm/providers/kinesis/apis/record.mjs.map +1 -0
  175. package/dist/esm/providers/kinesis/index.mjs +3 -0
  176. package/dist/esm/providers/kinesis/index.mjs.map +1 -0
  177. package/dist/esm/providers/kinesis/types/buffer.mjs +2 -0
  178. package/dist/esm/providers/kinesis/types/buffer.mjs.map +1 -0
  179. package/dist/esm/providers/kinesis/types/index.mjs +2 -0
  180. package/dist/esm/providers/kinesis/types/index.mjs.map +1 -0
  181. package/dist/esm/providers/kinesis/types/inputs.mjs +2 -0
  182. package/dist/esm/providers/kinesis/types/inputs.mjs.map +1 -0
  183. package/{lib-esm/providers/kinesis-firehose/utils/constants.js → dist/esm/providers/kinesis/utils/constants.mjs} +4 -1
  184. package/dist/esm/providers/kinesis/utils/constants.mjs.map +1 -0
  185. package/dist/esm/providers/kinesis/utils/getEventBuffer.mjs +79 -0
  186. package/dist/esm/providers/kinesis/utils/getEventBuffer.mjs.map +1 -0
  187. package/dist/esm/providers/kinesis/utils/resolveConfig.mjs +27 -0
  188. package/dist/esm/providers/kinesis/utils/resolveConfig.mjs.map +1 -0
  189. package/dist/esm/providers/kinesis-firehose/apis/flushEvents.mjs +41 -0
  190. package/dist/esm/providers/kinesis-firehose/apis/flushEvents.mjs.map +1 -0
  191. package/dist/esm/providers/kinesis-firehose/apis/index.mjs +3 -0
  192. package/dist/esm/providers/kinesis-firehose/apis/index.mjs.map +1 -0
  193. package/dist/esm/providers/kinesis-firehose/apis/record.mjs +51 -0
  194. package/dist/esm/providers/kinesis-firehose/apis/record.mjs.map +1 -0
  195. package/dist/esm/providers/kinesis-firehose/index.mjs +3 -0
  196. package/dist/esm/providers/kinesis-firehose/index.mjs.map +1 -0
  197. package/dist/esm/providers/kinesis-firehose/types/buffer.mjs +2 -0
  198. package/dist/esm/providers/kinesis-firehose/types/buffer.mjs.map +1 -0
  199. package/dist/esm/providers/kinesis-firehose/types/index.mjs +2 -0
  200. package/dist/esm/providers/kinesis-firehose/types/index.mjs.map +1 -0
  201. package/dist/esm/providers/kinesis-firehose/types/inputs.mjs +2 -0
  202. package/dist/esm/providers/kinesis-firehose/types/inputs.mjs.map +1 -0
  203. package/{lib-esm/providers/kinesis/utils/constants.js → dist/esm/providers/kinesis-firehose/utils/constants.mjs} +4 -1
  204. package/dist/esm/providers/kinesis-firehose/utils/constants.mjs.map +1 -0
  205. package/dist/esm/providers/kinesis-firehose/utils/getEventBuffer.mjs +78 -0
  206. package/dist/esm/providers/kinesis-firehose/utils/getEventBuffer.mjs.map +1 -0
  207. package/dist/esm/providers/kinesis-firehose/utils/index.mjs +3 -0
  208. package/dist/esm/providers/kinesis-firehose/utils/index.mjs.map +1 -0
  209. package/dist/esm/providers/kinesis-firehose/utils/resolveConfig.mjs +27 -0
  210. package/dist/esm/providers/kinesis-firehose/utils/resolveConfig.mjs.map +1 -0
  211. package/dist/esm/providers/personalize/apis/flushEvents.mjs +41 -0
  212. package/dist/esm/providers/personalize/apis/flushEvents.mjs.map +1 -0
  213. package/dist/esm/providers/personalize/apis/index.mjs +3 -0
  214. package/dist/esm/providers/personalize/apis/index.mjs.map +1 -0
  215. package/dist/esm/providers/personalize/apis/record.mjs +81 -0
  216. package/dist/esm/providers/personalize/apis/record.mjs.map +1 -0
  217. package/dist/esm/providers/personalize/index.mjs +3 -0
  218. package/dist/esm/providers/personalize/index.mjs.map +1 -0
  219. package/dist/esm/providers/personalize/types/buffer.mjs +2 -0
  220. package/dist/esm/providers/personalize/types/buffer.mjs.map +1 -0
  221. package/dist/esm/providers/personalize/types/index.mjs +2 -0
  222. package/dist/esm/providers/personalize/types/index.mjs.map +1 -0
  223. package/dist/esm/providers/personalize/types/inputs.mjs +2 -0
  224. package/dist/esm/providers/personalize/types/inputs.mjs.map +1 -0
  225. package/dist/esm/providers/personalize/utils/autoTrackMedia.mjs +181 -0
  226. package/dist/esm/providers/personalize/utils/autoTrackMedia.mjs.map +1 -0
  227. package/dist/esm/providers/personalize/utils/cachedSession.mjs +48 -0
  228. package/dist/esm/providers/personalize/utils/cachedSession.mjs.map +1 -0
  229. package/dist/esm/providers/personalize/utils/constants.mjs +12 -0
  230. package/dist/esm/providers/personalize/utils/constants.mjs.map +1 -0
  231. package/dist/esm/providers/personalize/utils/getEventBuffer.mjs +80 -0
  232. package/dist/esm/providers/personalize/utils/getEventBuffer.mjs.map +1 -0
  233. package/dist/esm/providers/personalize/utils/index.mjs +6 -0
  234. package/dist/esm/providers/personalize/utils/index.mjs.map +1 -0
  235. package/dist/esm/providers/personalize/utils/resolveConfig.mjs +34 -0
  236. package/dist/esm/providers/personalize/utils/resolveConfig.mjs.map +1 -0
  237. package/{lib-esm/providers/pinpoint/apis/configureAutoTrack.js → dist/esm/providers/pinpoint/apis/configureAutoTrack.mjs} +15 -6
  238. package/dist/esm/providers/pinpoint/apis/configureAutoTrack.mjs.map +1 -0
  239. package/dist/esm/providers/pinpoint/apis/flushEvents.mjs +31 -0
  240. package/dist/esm/providers/pinpoint/apis/flushEvents.mjs.map +1 -0
  241. package/{lib-esm/providers/pinpoint/apis/identifyUser.js → dist/esm/providers/pinpoint/apis/identifyUser.mjs} +29 -30
  242. package/dist/esm/providers/pinpoint/apis/identifyUser.mjs.map +1 -0
  243. package/dist/esm/providers/pinpoint/apis/index.mjs +5 -0
  244. package/dist/esm/providers/pinpoint/apis/index.mjs.map +1 -0
  245. package/{lib-esm/providers/pinpoint/apis/record.js → dist/esm/providers/pinpoint/apis/record.mjs} +27 -17
  246. package/dist/esm/providers/pinpoint/apis/record.mjs.map +1 -0
  247. package/dist/esm/providers/pinpoint/index.mjs +5 -0
  248. package/dist/esm/providers/pinpoint/index.mjs.map +1 -0
  249. package/dist/esm/providers/pinpoint/types/index.mjs +2 -0
  250. package/dist/esm/providers/pinpoint/types/index.mjs.map +1 -0
  251. package/dist/esm/providers/pinpoint/types/inputs.mjs +2 -0
  252. package/dist/esm/providers/pinpoint/types/inputs.mjs.map +1 -0
  253. package/dist/esm/providers/pinpoint/types/options.mjs +2 -0
  254. package/dist/esm/providers/pinpoint/types/options.mjs.map +1 -0
  255. package/dist/esm/providers/pinpoint/utils/index.mjs +3 -0
  256. package/dist/esm/providers/pinpoint/utils/index.mjs.map +1 -0
  257. package/dist/esm/providers/pinpoint/utils/resolveConfig.mjs +19 -0
  258. package/dist/esm/providers/pinpoint/utils/resolveConfig.mjs.map +1 -0
  259. package/{lib-esm → dist/esm}/providers/pinpoint/utils/resolveCredentials.d.ts +1 -1
  260. package/dist/esm/providers/pinpoint/utils/resolveCredentials.mjs +18 -0
  261. package/dist/esm/providers/pinpoint/utils/resolveCredentials.mjs.map +1 -0
  262. package/{lib-esm/setupTests.js → dist/esm/setupTests.mjs} +2 -2
  263. package/dist/esm/setupTests.mjs.map +1 -0
  264. package/dist/esm/trackers/EventTracker.mjs +98 -0
  265. package/dist/esm/trackers/EventTracker.mjs.map +1 -0
  266. package/{lib-esm/trackers/PageViewTracker.js → dist/esm/trackers/PageViewTracker.mjs} +44 -45
  267. package/dist/esm/trackers/PageViewTracker.mjs.map +1 -0
  268. package/{lib-esm/trackers/SessionTracker.native.js → dist/esm/trackers/SessionTracker.mjs} +27 -30
  269. package/dist/esm/trackers/SessionTracker.mjs.map +1 -0
  270. package/{lib-esm/trackers/SessionTracker.js → dist/esm/trackers/SessionTracker.native.mjs} +27 -30
  271. package/dist/esm/trackers/SessionTracker.native.mjs.map +1 -0
  272. package/dist/esm/trackers/index.mjs +4 -0
  273. package/dist/esm/trackers/index.mjs.map +1 -0
  274. package/dist/esm/types/index.mjs +2 -0
  275. package/dist/esm/types/index.mjs.map +1 -0
  276. package/dist/esm/types/inputs.mjs +2 -0
  277. package/dist/esm/types/inputs.mjs.map +1 -0
  278. package/dist/esm/types/kinesis.mjs +2 -0
  279. package/dist/esm/types/kinesis.mjs.map +1 -0
  280. package/dist/esm/types/options.mjs +2 -0
  281. package/dist/esm/types/options.mjs.map +1 -0
  282. package/dist/esm/types/trackers.mjs +2 -0
  283. package/dist/esm/types/trackers.mjs.map +1 -0
  284. package/dist/esm/utils/eventBuffer/EventBuffer.mjs +63 -0
  285. package/dist/esm/utils/eventBuffer/EventBuffer.mjs.map +1 -0
  286. package/dist/esm/utils/eventBuffer/index.mjs +2 -0
  287. package/dist/esm/utils/eventBuffer/index.mjs.map +1 -0
  288. package/dist/esm/utils/eventBuffer/types.mjs +2 -0
  289. package/dist/esm/utils/eventBuffer/types.mjs.map +1 -0
  290. package/dist/esm/utils/groupBy.mjs +11 -0
  291. package/dist/esm/utils/groupBy.mjs.map +1 -0
  292. package/dist/esm/utils/index.mjs +8 -0
  293. package/dist/esm/utils/index.mjs.map +1 -0
  294. package/{lib-esm → dist/esm}/utils/resolveCredentials.d.ts +1 -1
  295. package/dist/esm/utils/resolveCredentials.mjs +15 -0
  296. package/dist/esm/utils/resolveCredentials.mjs.map +1 -0
  297. package/dist/esm/utils/statusHelpers.mjs +16 -0
  298. package/dist/esm/utils/statusHelpers.mjs.map +1 -0
  299. package/dist/esm/utils/trackerConfigHelpers.mjs +17 -0
  300. package/dist/esm/utils/trackerConfigHelpers.mjs.map +1 -0
  301. package/dist/esm/utils/trackerConfigHelpers.native.mjs +16 -0
  302. package/dist/esm/utils/trackerConfigHelpers.native.mjs.map +1 -0
  303. package/{lib-esm/utils/trackerHelpers.js → dist/esm/utils/trackerHelpers.mjs} +11 -5
  304. package/dist/esm/utils/trackerHelpers.mjs.map +1 -0
  305. package/dist/esm/utils/userAgent.mjs +19 -0
  306. package/dist/esm/utils/userAgent.mjs.map +1 -0
  307. package/kinesis/package.json +5 -4
  308. package/kinesis-firehose/package.json +5 -4
  309. package/package.json +45 -40
  310. package/personalize/package.json +5 -4
  311. package/pinpoint/package.json +5 -4
  312. package/src/providers/kinesis/utils/getEventBuffer.ts +6 -7
  313. package/src/providers/kinesis-firehose/utils/getEventBuffer.ts +6 -7
  314. package/src/providers/personalize/utils/getEventBuffer.ts +6 -7
  315. package/src/trackers/SessionTracker.native.ts +2 -3
  316. package/src/trackers/SessionTracker.ts +2 -3
  317. package/lib/apis/disable.d.ts +0 -8
  318. package/lib/apis/enable.d.ts +0 -7
  319. package/lib/apis/index.d.ts +0 -2
  320. package/lib/errors/AnalyticsError.d.ts +0 -7
  321. package/lib/errors/AnalyticsError.js +0 -23
  322. package/lib/errors/assertValidationError.d.ts +0 -5
  323. package/lib/errors/index.d.ts +0 -3
  324. package/lib/errors/validation.d.ts +0 -12
  325. package/lib/index.d.ts +0 -3
  326. package/lib/providers/kinesis/apis/flushEvents.d.ts +0 -8
  327. package/lib/providers/kinesis/apis/flushEvents.js +0 -38
  328. package/lib/providers/kinesis/apis/index.d.ts +0 -2
  329. package/lib/providers/kinesis/apis/record.d.ts +0 -2
  330. package/lib/providers/kinesis/apis/record.js +0 -48
  331. package/lib/providers/kinesis/index.d.ts +0 -1
  332. package/lib/providers/kinesis/types/buffer.d.ts +0 -15
  333. package/lib/providers/kinesis/types/index.d.ts +0 -2
  334. package/lib/providers/kinesis/types/inputs.d.ts +0 -6
  335. package/lib/providers/kinesis/utils/constants.d.ts +0 -6
  336. package/lib/providers/kinesis/utils/getEventBuffer.d.ts +0 -3
  337. package/lib/providers/kinesis/utils/getEventBuffer.js +0 -103
  338. package/lib/providers/kinesis/utils/resolveConfig.d.ts +0 -7
  339. package/lib/providers/kinesis/utils/resolveConfig.js +0 -24
  340. package/lib/providers/kinesis-firehose/apis/flushEvents.d.ts +0 -8
  341. package/lib/providers/kinesis-firehose/apis/flushEvents.js +0 -37
  342. package/lib/providers/kinesis-firehose/apis/index.d.ts +0 -2
  343. package/lib/providers/kinesis-firehose/apis/record.d.ts +0 -2
  344. package/lib/providers/kinesis-firehose/apis/record.js +0 -45
  345. package/lib/providers/kinesis-firehose/index.d.ts +0 -1
  346. package/lib/providers/kinesis-firehose/types/buffer.d.ts +0 -15
  347. package/lib/providers/kinesis-firehose/types/index.d.ts +0 -2
  348. package/lib/providers/kinesis-firehose/types/inputs.d.ts +0 -5
  349. package/lib/providers/kinesis-firehose/utils/constants.d.ts +0 -6
  350. package/lib/providers/kinesis-firehose/utils/getEventBuffer.d.ts +0 -3
  351. package/lib/providers/kinesis-firehose/utils/getEventBuffer.js +0 -100
  352. package/lib/providers/kinesis-firehose/utils/index.d.ts +0 -2
  353. package/lib/providers/kinesis-firehose/utils/resolveConfig.d.ts +0 -7
  354. package/lib/providers/kinesis-firehose/utils/resolveConfig.js +0 -24
  355. package/lib/providers/personalize/apis/flushEvents.d.ts +0 -8
  356. package/lib/providers/personalize/apis/flushEvents.js +0 -36
  357. package/lib/providers/personalize/apis/index.d.ts +0 -2
  358. package/lib/providers/personalize/apis/record.d.ts +0 -2
  359. package/lib/providers/personalize/apis/record.js +0 -87
  360. package/lib/providers/personalize/index.d.ts +0 -1
  361. package/lib/providers/personalize/types/buffer.d.ts +0 -16
  362. package/lib/providers/personalize/types/index.d.ts +0 -2
  363. package/lib/providers/personalize/types/inputs.d.ts +0 -7
  364. package/lib/providers/personalize/utils/autoTrackMedia.d.ts +0 -10
  365. package/lib/providers/personalize/utils/autoTrackMedia.js +0 -183
  366. package/lib/providers/personalize/utils/cachedSession.d.ts +0 -5
  367. package/lib/providers/personalize/utils/cachedSession.js +0 -61
  368. package/lib/providers/personalize/utils/constants.d.ts +0 -7
  369. package/lib/providers/personalize/utils/getEventBuffer.d.ts +0 -3
  370. package/lib/providers/personalize/utils/getEventBuffer.js +0 -100
  371. package/lib/providers/personalize/utils/index.d.ts +0 -5
  372. package/lib/providers/personalize/utils/resolveConfig.d.ts +0 -7
  373. package/lib/providers/personalize/utils/resolveConfig.js +0 -25
  374. package/lib/providers/pinpoint/apis/configureAutoTrack.d.ts +0 -15
  375. package/lib/providers/pinpoint/apis/flushEvents.d.ts +0 -8
  376. package/lib/providers/pinpoint/apis/flushEvents.js +0 -28
  377. package/lib/providers/pinpoint/apis/identifyUser.js +0 -83
  378. package/lib/providers/pinpoint/apis/index.d.ts +0 -4
  379. package/lib/providers/pinpoint/apis/record.d.ts +0 -30
  380. package/lib/providers/pinpoint/index.d.ts +0 -2
  381. package/lib/providers/pinpoint/types/index.d.ts +0 -2
  382. package/lib/providers/pinpoint/types/inputs.d.ts +0 -15
  383. package/lib/providers/pinpoint/types/options.d.ts +0 -5
  384. package/lib/providers/pinpoint/utils/index.d.ts +0 -2
  385. package/lib/providers/pinpoint/utils/resolveConfig.d.ts +0 -7
  386. package/lib/providers/pinpoint/utils/resolveCredentials.d.ts +0 -7
  387. package/lib/providers/pinpoint/utils/resolveCredentials.js +0 -24
  388. package/lib/setupTests.d.ts +0 -1
  389. package/lib/trackers/EventTracker.d.ts +0 -10
  390. package/lib/trackers/EventTracker.js +0 -104
  391. package/lib/trackers/PageViewTracker.d.ts +0 -18
  392. package/lib/trackers/SessionTracker.d.ts +0 -13
  393. package/lib/trackers/SessionTracker.native.d.ts +0 -13
  394. package/lib/trackers/index.d.ts +0 -3
  395. package/lib/tsconfig.tsbuildinfo +0 -1
  396. package/lib/types/index.d.ts +0 -3
  397. package/lib/types/index.js +0 -4
  398. package/lib/types/inputs.d.ts +0 -35
  399. package/lib/types/inputs.js +0 -4
  400. package/lib/types/kinesis.d.ts +0 -8
  401. package/lib/types/options.d.ts +0 -4
  402. package/lib/types/trackers.d.ts +0 -22
  403. package/lib/utils/eventBuffer/EventBuffer.d.ts +0 -16
  404. package/lib/utils/eventBuffer/EventBuffer.js +0 -91
  405. package/lib/utils/eventBuffer/index.d.ts +0 -2
  406. package/lib/utils/eventBuffer/types.d.ts +0 -8
  407. package/lib/utils/groupBy.d.ts +0 -1
  408. package/lib/utils/groupBy.js +0 -15
  409. package/lib/utils/index.d.ts +0 -7
  410. package/lib/utils/resolveCredentials.d.ts +0 -4
  411. package/lib/utils/resolveCredentials.js +0 -21
  412. package/lib/utils/statusHelpers.d.ts +0 -6
  413. package/lib/utils/trackerConfigHelpers.d.ts +0 -5
  414. package/lib/utils/trackerConfigHelpers.native.d.ts +0 -5
  415. package/lib/utils/trackerHelpers.d.ts +0 -9
  416. package/lib/utils/userAgent.d.ts +0 -4
  417. package/lib-esm/apis/disable.js +0 -11
  418. package/lib-esm/apis/enable.js +0 -10
  419. package/lib-esm/apis/index.js +0 -4
  420. package/lib-esm/errors/AnalyticsError.js +0 -20
  421. package/lib-esm/errors/assertValidationError.js +0 -17
  422. package/lib-esm/errors/index.js +0 -5
  423. package/lib-esm/index.js +0 -5
  424. package/lib-esm/providers/kinesis/apis/flushEvents.js +0 -34
  425. package/lib-esm/providers/kinesis/apis/index.js +0 -4
  426. package/lib-esm/providers/kinesis/apis/record.js +0 -44
  427. package/lib-esm/providers/kinesis/index.js +0 -3
  428. package/lib-esm/providers/kinesis/types/buffer.js +0 -3
  429. package/lib-esm/providers/kinesis/types/index.js +0 -3
  430. package/lib-esm/providers/kinesis/types/inputs.js +0 -3
  431. package/lib-esm/providers/kinesis/utils/getEventBuffer.js +0 -99
  432. package/lib-esm/providers/kinesis/utils/resolveConfig.js +0 -20
  433. package/lib-esm/providers/kinesis-firehose/apis/flushEvents.js +0 -33
  434. package/lib-esm/providers/kinesis-firehose/apis/index.js +0 -4
  435. package/lib-esm/providers/kinesis-firehose/apis/record.js +0 -41
  436. package/lib-esm/providers/kinesis-firehose/index.js +0 -3
  437. package/lib-esm/providers/kinesis-firehose/types/buffer.js +0 -3
  438. package/lib-esm/providers/kinesis-firehose/types/index.js +0 -3
  439. package/lib-esm/providers/kinesis-firehose/types/inputs.js +0 -3
  440. package/lib-esm/providers/kinesis-firehose/utils/getEventBuffer.js +0 -96
  441. package/lib-esm/providers/kinesis-firehose/utils/index.js +0 -4
  442. package/lib-esm/providers/kinesis-firehose/utils/resolveConfig.js +0 -20
  443. package/lib-esm/providers/personalize/apis/flushEvents.js +0 -32
  444. package/lib-esm/providers/personalize/apis/index.js +0 -4
  445. package/lib-esm/providers/personalize/apis/record.js +0 -83
  446. package/lib-esm/providers/personalize/index.js +0 -3
  447. package/lib-esm/providers/personalize/types/buffer.js +0 -3
  448. package/lib-esm/providers/personalize/types/index.js +0 -3
  449. package/lib-esm/providers/personalize/types/inputs.js +0 -3
  450. package/lib-esm/providers/personalize/utils/autoTrackMedia.js +0 -179
  451. package/lib-esm/providers/personalize/utils/cachedSession.js +0 -56
  452. package/lib-esm/providers/personalize/utils/constants.js +0 -9
  453. package/lib-esm/providers/personalize/utils/getEventBuffer.js +0 -96
  454. package/lib-esm/providers/personalize/utils/index.js +0 -7
  455. package/lib-esm/providers/personalize/utils/resolveConfig.js +0 -21
  456. package/lib-esm/providers/pinpoint/apis/flushEvents.js +0 -24
  457. package/lib-esm/providers/pinpoint/apis/index.js +0 -6
  458. package/lib-esm/providers/pinpoint/index.js +0 -3
  459. package/lib-esm/providers/pinpoint/types/index.js +0 -3
  460. package/lib-esm/providers/pinpoint/types/inputs.js +0 -3
  461. package/lib-esm/providers/pinpoint/types/options.js +0 -3
  462. package/lib-esm/providers/pinpoint/utils/index.js +0 -4
  463. package/lib-esm/providers/pinpoint/utils/resolveConfig.js +0 -14
  464. package/lib-esm/providers/pinpoint/utils/resolveCredentials.js +0 -20
  465. package/lib-esm/trackers/EventTracker.js +0 -101
  466. package/lib-esm/trackers/index.js +0 -5
  467. package/lib-esm/tsconfig.tsbuildinfo +0 -1
  468. package/lib-esm/types/index.js +0 -3
  469. package/lib-esm/types/inputs.js +0 -3
  470. package/lib-esm/types/kinesis.js +0 -3
  471. package/lib-esm/types/options.js +0 -3
  472. package/lib-esm/types/trackers.js +0 -3
  473. package/lib-esm/utils/eventBuffer/EventBuffer.js +0 -88
  474. package/lib-esm/utils/eventBuffer/index.js +0 -3
  475. package/lib-esm/utils/eventBuffer/types.js +0 -3
  476. package/lib-esm/utils/groupBy.js +0 -11
  477. package/lib-esm/utils/index.js +0 -9
  478. package/lib-esm/utils/resolveCredentials.js +0 -17
  479. package/lib-esm/utils/statusHelpers.js +0 -13
  480. package/lib-esm/utils/trackerConfigHelpers.js +0 -11
  481. package/lib-esm/utils/trackerConfigHelpers.native.js +0 -10
  482. package/lib-esm/utils/userAgent.js +0 -15
  483. /package/{lib-esm → dist/esm}/apis/disable.d.ts +0 -0
  484. /package/{lib-esm → dist/esm}/apis/enable.d.ts +0 -0
  485. /package/{lib-esm → dist/esm}/apis/index.d.ts +0 -0
  486. /package/{lib-esm → dist/esm}/errors/AnalyticsError.d.ts +0 -0
  487. /package/{lib-esm → dist/esm}/errors/assertValidationError.d.ts +0 -0
  488. /package/{lib-esm → dist/esm}/errors/index.d.ts +0 -0
  489. /package/{lib-esm → dist/esm}/errors/validation.d.ts +0 -0
  490. /package/{lib-esm → dist/esm}/index.d.ts +0 -0
  491. /package/{lib-esm → dist/esm}/providers/kinesis/apis/flushEvents.d.ts +0 -0
  492. /package/{lib-esm → dist/esm}/providers/kinesis/apis/index.d.ts +0 -0
  493. /package/{lib-esm → dist/esm}/providers/kinesis/apis/record.d.ts +0 -0
  494. /package/{lib-esm → dist/esm}/providers/kinesis/index.d.ts +0 -0
  495. /package/{lib-esm → dist/esm}/providers/kinesis/types/buffer.d.ts +0 -0
  496. /package/{lib-esm → dist/esm}/providers/kinesis/types/index.d.ts +0 -0
  497. /package/{lib-esm → dist/esm}/providers/kinesis/types/inputs.d.ts +0 -0
  498. /package/{lib-esm → dist/esm}/providers/kinesis/utils/constants.d.ts +0 -0
  499. /package/{lib-esm → dist/esm}/providers/kinesis/utils/getEventBuffer.d.ts +0 -0
  500. /package/{lib-esm → dist/esm}/providers/kinesis/utils/resolveConfig.d.ts +0 -0
  501. /package/{lib-esm → dist/esm}/providers/kinesis-firehose/apis/flushEvents.d.ts +0 -0
  502. /package/{lib-esm → dist/esm}/providers/kinesis-firehose/apis/index.d.ts +0 -0
  503. /package/{lib-esm → dist/esm}/providers/kinesis-firehose/apis/record.d.ts +0 -0
  504. /package/{lib-esm → dist/esm}/providers/kinesis-firehose/index.d.ts +0 -0
  505. /package/{lib-esm → dist/esm}/providers/kinesis-firehose/types/buffer.d.ts +0 -0
  506. /package/{lib-esm → dist/esm}/providers/kinesis-firehose/types/index.d.ts +0 -0
  507. /package/{lib-esm → dist/esm}/providers/kinesis-firehose/types/inputs.d.ts +0 -0
  508. /package/{lib-esm → dist/esm}/providers/kinesis-firehose/utils/constants.d.ts +0 -0
  509. /package/{lib-esm → dist/esm}/providers/kinesis-firehose/utils/getEventBuffer.d.ts +0 -0
  510. /package/{lib-esm → dist/esm}/providers/kinesis-firehose/utils/index.d.ts +0 -0
  511. /package/{lib-esm → dist/esm}/providers/kinesis-firehose/utils/resolveConfig.d.ts +0 -0
  512. /package/{lib-esm → dist/esm}/providers/personalize/apis/flushEvents.d.ts +0 -0
  513. /package/{lib-esm → dist/esm}/providers/personalize/apis/index.d.ts +0 -0
  514. /package/{lib-esm → dist/esm}/providers/personalize/apis/record.d.ts +0 -0
  515. /package/{lib-esm → dist/esm}/providers/personalize/index.d.ts +0 -0
  516. /package/{lib-esm → dist/esm}/providers/personalize/types/buffer.d.ts +0 -0
  517. /package/{lib-esm → dist/esm}/providers/personalize/types/index.d.ts +0 -0
  518. /package/{lib-esm → dist/esm}/providers/personalize/types/inputs.d.ts +0 -0
  519. /package/{lib-esm → dist/esm}/providers/personalize/utils/autoTrackMedia.d.ts +0 -0
  520. /package/{lib-esm → dist/esm}/providers/personalize/utils/cachedSession.d.ts +0 -0
  521. /package/{lib-esm → dist/esm}/providers/personalize/utils/constants.d.ts +0 -0
  522. /package/{lib-esm → dist/esm}/providers/personalize/utils/getEventBuffer.d.ts +0 -0
  523. /package/{lib-esm → dist/esm}/providers/personalize/utils/index.d.ts +0 -0
  524. /package/{lib-esm → dist/esm}/providers/personalize/utils/resolveConfig.d.ts +0 -0
  525. /package/{lib-esm → dist/esm}/providers/pinpoint/apis/configureAutoTrack.d.ts +0 -0
  526. /package/{lib-esm → dist/esm}/providers/pinpoint/apis/flushEvents.d.ts +0 -0
  527. /package/{lib-esm → dist/esm}/providers/pinpoint/apis/identifyUser.d.ts +0 -0
  528. /package/{lib-esm → dist/esm}/providers/pinpoint/apis/index.d.ts +0 -0
  529. /package/{lib-esm → dist/esm}/providers/pinpoint/apis/record.d.ts +0 -0
  530. /package/{lib-esm → dist/esm}/providers/pinpoint/index.d.ts +0 -0
  531. /package/{lib-esm → dist/esm}/providers/pinpoint/types/index.d.ts +0 -0
  532. /package/{lib-esm → dist/esm}/providers/pinpoint/types/inputs.d.ts +0 -0
  533. /package/{lib-esm → dist/esm}/providers/pinpoint/types/options.d.ts +0 -0
  534. /package/{lib-esm → dist/esm}/providers/pinpoint/utils/index.d.ts +0 -0
  535. /package/{lib-esm → dist/esm}/providers/pinpoint/utils/resolveConfig.d.ts +0 -0
  536. /package/{lib-esm → dist/esm}/setupTests.d.ts +0 -0
  537. /package/{lib-esm → dist/esm}/trackers/EventTracker.d.ts +0 -0
  538. /package/{lib-esm → dist/esm}/trackers/PageViewTracker.d.ts +0 -0
  539. /package/{lib-esm → dist/esm}/trackers/SessionTracker.d.ts +0 -0
  540. /package/{lib-esm → dist/esm}/trackers/SessionTracker.native.d.ts +0 -0
  541. /package/{lib-esm → dist/esm}/trackers/index.d.ts +0 -0
  542. /package/{lib-esm → dist/esm}/types/index.d.ts +0 -0
  543. /package/{lib-esm → dist/esm}/types/inputs.d.ts +0 -0
  544. /package/{lib-esm → dist/esm}/types/kinesis.d.ts +0 -0
  545. /package/{lib-esm → dist/esm}/types/options.d.ts +0 -0
  546. /package/{lib-esm → dist/esm}/types/trackers.d.ts +0 -0
  547. /package/{lib-esm → dist/esm}/utils/eventBuffer/EventBuffer.d.ts +0 -0
  548. /package/{lib-esm → dist/esm}/utils/eventBuffer/index.d.ts +0 -0
  549. /package/{lib-esm → dist/esm}/utils/eventBuffer/types.d.ts +0 -0
  550. /package/{lib-esm → dist/esm}/utils/groupBy.d.ts +0 -0
  551. /package/{lib-esm → dist/esm}/utils/index.d.ts +0 -0
  552. /package/{lib-esm → dist/esm}/utils/statusHelpers.d.ts +0 -0
  553. /package/{lib-esm → dist/esm}/utils/trackerConfigHelpers.d.ts +0 -0
  554. /package/{lib-esm → dist/esm}/utils/trackerConfigHelpers.native.d.ts +0 -0
  555. /package/{lib-esm → dist/esm}/utils/trackerHelpers.d.ts +0 -0
  556. /package/{lib-esm → dist/esm}/utils/userAgent.d.ts +0 -0
@@ -0,0 +1,80 @@
1
+ import '@aws-amplify/core/internals/utils';
2
+ import '../../../errors/validation.mjs';
3
+ import '@aws-amplify/core';
4
+ import { groupBy } from '../../../utils/groupBy.mjs';
5
+ import { EventBuffer } from '../../../utils/eventBuffer/EventBuffer.mjs';
6
+ import '../../../trackers/EventTracker.mjs';
7
+ import '../../../trackers/PageViewTracker.mjs';
8
+ import '../../../trackers/SessionTracker.mjs';
9
+ import { PersonalizeEventsClient, PutEventsCommand } from '@aws-sdk/client-personalize-events';
10
+
11
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
12
+ // SPDX-License-Identifier: Apache-2.0
13
+ /**
14
+ * These Records hold cached event buffers and AWS clients.
15
+ * The hash key is determined by the region and session,
16
+ * consisting of a combined value comprising [region, sessionToken, identityId].
17
+ *
18
+ * Only one active session should exist at any given moment.
19
+ * When a new session is initiated, the previous ones should be released.
20
+ * */
21
+ const eventBufferMap = {};
22
+ const cachedClients = {};
23
+ const DELIMITER = '#';
24
+ const createPutEventsCommand = (ids, events) => {
25
+ const [trackingId, sessionId, userId] = ids.split(DELIMITER);
26
+ return new PutEventsCommand({
27
+ trackingId,
28
+ sessionId,
29
+ userId,
30
+ eventList: events.map(event => ({
31
+ eventId: event.event.eventId,
32
+ eventType: event.event.eventType,
33
+ properties: JSON.stringify(event.event.properties),
34
+ sentAt: new Date(event.timestamp),
35
+ })),
36
+ });
37
+ };
38
+ const submitEvents = async (events, client) => {
39
+ const groupedByIds = Object.entries(groupBy(event => [event.trackingId, event.sessionId, event.userId]
40
+ .filter(id => !!id)
41
+ .join(DELIMITER), events));
42
+ const requests = groupedByIds
43
+ .map(([ids, events]) => createPutEventsCommand(ids, events))
44
+ .map(command => client.send(command));
45
+ await Promise.allSettled(requests);
46
+ return Promise.resolve([]);
47
+ };
48
+ const getEventBuffer = ({ region, flushSize, flushInterval, bufferSize, credentials, identityId, userAgentValue, }) => {
49
+ const sessionIdentityKey = [region, identityId].filter(x => !!x).join('-');
50
+ if (!eventBufferMap[sessionIdentityKey]) {
51
+ const getClient = () => {
52
+ if (!cachedClients[sessionIdentityKey]) {
53
+ cachedClients[sessionIdentityKey] = new PersonalizeEventsClient({
54
+ region,
55
+ credentials,
56
+ customUserAgent: userAgentValue,
57
+ });
58
+ }
59
+ return events => submitEvents(events, cachedClients[sessionIdentityKey]);
60
+ };
61
+ eventBufferMap[sessionIdentityKey] =
62
+ new EventBuffer({
63
+ bufferSize,
64
+ flushSize,
65
+ flushInterval,
66
+ }, getClient);
67
+ const releaseSessionKeys = Object.keys(eventBufferMap).filter(key => key !== sessionIdentityKey);
68
+ for (const releaseSessionKey of releaseSessionKeys) {
69
+ eventBufferMap[releaseSessionKey].flushAll().finally(() => {
70
+ eventBufferMap[releaseSessionKey].release();
71
+ delete eventBufferMap[releaseSessionKey];
72
+ delete cachedClients[releaseSessionKey];
73
+ });
74
+ }
75
+ }
76
+ return eventBufferMap[sessionIdentityKey];
77
+ };
78
+
79
+ export { getEventBuffer };
80
+ //# sourceMappingURL=getEventBuffer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getEventBuffer.mjs","sources":["../../../../../src/providers/personalize/utils/getEventBuffer.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { EventBuffer, groupBy } from '../../../utils';\nimport { PersonalizeEventsClient, PutEventsCommand, } from '@aws-sdk/client-personalize-events';\n/**\n * These Records hold cached event buffers and AWS clients.\n * The hash key is determined by the region and session,\n * consisting of a combined value comprising [region, sessionToken, identityId].\n *\n * Only one active session should exist at any given moment.\n * When a new session is initiated, the previous ones should be released.\n * */\nconst eventBufferMap = {};\nconst cachedClients = {};\nconst DELIMITER = '#';\nconst createPutEventsCommand = (ids, events) => {\n const [trackingId, sessionId, userId] = ids.split(DELIMITER);\n return new PutEventsCommand({\n trackingId,\n sessionId,\n userId,\n eventList: events.map(event => ({\n eventId: event.event.eventId,\n eventType: event.event.eventType,\n properties: JSON.stringify(event.event.properties),\n sentAt: new Date(event.timestamp),\n })),\n });\n};\nconst submitEvents = async (events, client) => {\n const groupedByIds = Object.entries(groupBy(event => [event.trackingId, event.sessionId, event.userId]\n .filter(id => !!id)\n .join(DELIMITER), events));\n const requests = groupedByIds\n .map(([ids, events]) => createPutEventsCommand(ids, events))\n .map(command => client.send(command));\n await Promise.allSettled(requests);\n return Promise.resolve([]);\n};\nexport const getEventBuffer = ({ region, flushSize, flushInterval, bufferSize, credentials, identityId, userAgentValue, }) => {\n const sessionIdentityKey = [region, identityId].filter(x => !!x).join('-');\n if (!eventBufferMap[sessionIdentityKey]) {\n const getClient = () => {\n if (!cachedClients[sessionIdentityKey]) {\n cachedClients[sessionIdentityKey] = new PersonalizeEventsClient({\n region,\n credentials,\n customUserAgent: userAgentValue,\n });\n }\n return events => submitEvents(events, cachedClients[sessionIdentityKey]);\n };\n eventBufferMap[sessionIdentityKey] =\n new EventBuffer({\n bufferSize,\n flushSize,\n flushInterval,\n }, getClient);\n const releaseSessionKeys = Object.keys(eventBufferMap).filter(key => key !== sessionIdentityKey);\n for (const releaseSessionKey of releaseSessionKeys) {\n eventBufferMap[releaseSessionKey].flushAll().finally(() => {\n eventBufferMap[releaseSessionKey].release();\n delete eventBufferMap[releaseSessionKey];\n delete cachedClients[releaseSessionKey];\n });\n }\n }\n return eventBufferMap[sessionIdentityKey];\n};\n"],"names":[],"mappings":";;;;;;;;;;AAAA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK;AAChD,IAAI,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACjE,IAAI,OAAO,IAAI,gBAAgB,CAAC;AAChC,QAAQ,UAAU;AAClB,QAAQ,SAAS;AACjB,QAAQ,MAAM;AACd,QAAQ,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK;AACxC,YAAY,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;AACxC,YAAY,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;AAC5C,YAAY,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;AAC9D,YAAY,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAC7C,SAAS,CAAC,CAAC;AACX,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF,MAAM,YAAY,GAAG,OAAO,MAAM,EAAE,MAAM,KAAK;AAC/C,IAAI,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;AAC1G,SAAS,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;AAC3B,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACnC,IAAI,MAAM,QAAQ,GAAG,YAAY;AACjC,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACpE,SAAS,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9C,IAAI,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACvC,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC/B,CAAC,CAAC;AACU,MAAC,cAAc,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,GAAG,KAAK;AAC9H,IAAI,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/E,IAAI,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE;AAC7C,QAAQ,MAAM,SAAS,GAAG,MAAM;AAChC,YAAY,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE;AACpD,gBAAgB,aAAa,CAAC,kBAAkB,CAAC,GAAG,IAAI,uBAAuB,CAAC;AAChF,oBAAoB,MAAM;AAC1B,oBAAoB,WAAW;AAC/B,oBAAoB,eAAe,EAAE,cAAc;AACnD,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,YAAY,OAAO,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACrF,SAAS,CAAC;AACV,QAAQ,cAAc,CAAC,kBAAkB,CAAC;AAC1C,YAAY,IAAI,WAAW,CAAC;AAC5B,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB,gBAAgB,aAAa;AAC7B,aAAa,EAAE,SAAS,CAAC,CAAC;AAC1B,QAAQ,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,kBAAkB,CAAC,CAAC;AACzG,QAAQ,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE;AAC5D,YAAY,cAAc,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM;AACvE,gBAAgB,cAAc,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC;AAC5D,gBAAgB,OAAO,cAAc,CAAC,iBAAiB,CAAC,CAAC;AACzD,gBAAgB,OAAO,aAAa,CAAC,iBAAiB,CAAC,CAAC;AACxD,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK;AACL,IAAI,OAAO,cAAc,CAAC,kBAAkB,CAAC,CAAC;AAC9C;;;;"}
@@ -0,0 +1,6 @@
1
+ export { getEventBuffer } from './getEventBuffer.mjs';
2
+ export { resolveConfig } from './resolveConfig.mjs';
3
+ export { autoTrackMedia } from './autoTrackMedia.mjs';
4
+ export { resolveCachedSession, updateCachedSession } from './cachedSession.mjs';
5
+ export { DEFAULT_PERSONALIZE_CONFIG, PERSONALIZE_FLUSH_SIZE_MAX } from './constants.mjs';
6
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,34 @@
1
+ import { Amplify } from '@aws-amplify/core';
2
+ import '@aws-amplify/core/internals/utils';
3
+ import { assertValidationError } from '../../../errors/assertValidationError.mjs';
4
+ import { AnalyticsValidationErrorCode } from '../../../errors/validation.mjs';
5
+ import '../../../utils/eventBuffer/EventBuffer.mjs';
6
+ import '../../../trackers/EventTracker.mjs';
7
+ import '../../../trackers/PageViewTracker.mjs';
8
+ import '../../../trackers/SessionTracker.mjs';
9
+ import '@aws-sdk/client-personalize-events';
10
+ import './autoTrackMedia.mjs';
11
+ import { DEFAULT_PERSONALIZE_CONFIG, PERSONALIZE_FLUSH_SIZE_MAX } from './constants.mjs';
12
+
13
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
14
+ // SPDX-License-Identifier: Apache-2.0
15
+ const resolveConfig = () => {
16
+ const config = Amplify.getConfig().Analytics?.Personalize;
17
+ const { region, trackingId, flushSize = DEFAULT_PERSONALIZE_CONFIG.flushSize, flushInterval = DEFAULT_PERSONALIZE_CONFIG.flushInterval, } = {
18
+ ...DEFAULT_PERSONALIZE_CONFIG,
19
+ ...config,
20
+ };
21
+ assertValidationError(!!region, AnalyticsValidationErrorCode.NoRegion);
22
+ assertValidationError(!!trackingId, AnalyticsValidationErrorCode.NoTrackingId);
23
+ assertValidationError(flushSize <= PERSONALIZE_FLUSH_SIZE_MAX, AnalyticsValidationErrorCode.InvalidFlushSize, `FlushSize for Personalize should be less or equal than ${PERSONALIZE_FLUSH_SIZE_MAX}`);
24
+ return {
25
+ region,
26
+ trackingId,
27
+ bufferSize: flushSize + 1,
28
+ flushSize,
29
+ flushInterval,
30
+ };
31
+ };
32
+
33
+ export { resolveConfig };
34
+ //# sourceMappingURL=resolveConfig.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveConfig.mjs","sources":["../../../../../src/providers/personalize/utils/resolveConfig.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { AnalyticsValidationErrorCode, assertValidationError, } from '../../../errors';\nimport { DEFAULT_PERSONALIZE_CONFIG, PERSONALIZE_FLUSH_SIZE_MAX } from './';\nexport const resolveConfig = () => {\n const config = Amplify.getConfig().Analytics?.Personalize;\n const { region, trackingId, flushSize = DEFAULT_PERSONALIZE_CONFIG.flushSize, flushInterval = DEFAULT_PERSONALIZE_CONFIG.flushInterval, } = {\n ...DEFAULT_PERSONALIZE_CONFIG,\n ...config,\n };\n assertValidationError(!!region, AnalyticsValidationErrorCode.NoRegion);\n assertValidationError(!!trackingId, AnalyticsValidationErrorCode.NoTrackingId);\n assertValidationError(flushSize <= PERSONALIZE_FLUSH_SIZE_MAX, AnalyticsValidationErrorCode.InvalidFlushSize, `FlushSize for Personalize should be less or equal than ${PERSONALIZE_FLUSH_SIZE_MAX}`);\n return {\n region,\n trackingId,\n bufferSize: flushSize + 1,\n flushSize,\n flushInterval,\n };\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AACA;AAIY,MAAC,aAAa,GAAG,MAAM;AACnC,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;AAC9D,IAAI,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,0BAA0B,CAAC,SAAS,EAAE,aAAa,GAAG,0BAA0B,CAAC,aAAa,GAAG,GAAG;AAChJ,QAAQ,GAAG,0BAA0B;AACrC,QAAQ,GAAG,MAAM;AACjB,KAAK,CAAC;AACN,IAAI,qBAAqB,CAAC,CAAC,CAAC,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,CAAC;AAC3E,IAAI,qBAAqB,CAAC,CAAC,CAAC,UAAU,EAAE,4BAA4B,CAAC,YAAY,CAAC,CAAC;AACnF,IAAI,qBAAqB,CAAC,SAAS,IAAI,0BAA0B,EAAE,4BAA4B,CAAC,gBAAgB,EAAE,CAAC,uDAAuD,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAC1M,IAAI,OAAO;AACX,QAAQ,MAAM;AACd,QAAQ,UAAU;AAClB,QAAQ,UAAU,EAAE,SAAS,GAAG,CAAC;AACjC,QAAQ,SAAS;AACjB,QAAQ,aAAa;AACrB,KAAK,CAAC;AACN;;;;"}
@@ -1,14 +1,20 @@
1
+ import '@aws-amplify/core/internals/utils';
2
+ import '../../../errors/validation.mjs';
3
+ import '@aws-amplify/core';
4
+ import '../../../utils/eventBuffer/EventBuffer.mjs';
5
+ import { updateProviderTrackers } from '../../../utils/trackerHelpers.mjs';
6
+ import { validateTrackerConfiguration } from '../../../utils/trackerConfigHelpers.mjs';
7
+ import { record } from './record.mjs';
8
+
1
9
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
10
  // SPDX-License-Identifier: Apache-2.0
3
- import { updateProviderTrackers, validateTrackerConfiguration, } from '../../../utils';
4
- import { record } from './record';
5
11
  // Configured Tracker instances for Pinpoint
6
- var configuredTrackers = {};
12
+ const configuredTrackers = {};
7
13
  // Callback that will emit an appropriate event to Pinpoint when required by the Tracker
8
- var emitTrackingEvent = function (eventName, attributes) {
14
+ const emitTrackingEvent = (eventName, attributes) => {
9
15
  record({
10
16
  name: eventName,
11
- attributes: attributes,
17
+ attributes,
12
18
  });
13
19
  };
14
20
  /**
@@ -24,8 +30,11 @@ var emitTrackingEvent = function (eventName, attributes) {
24
30
  * @throws validation: {@link AnalyticsValidationErrorCode} - Thrown when the provided parameters or library
25
31
  * configuration is incorrect.
26
32
  */
27
- export var configureAutoTrack = function (input) {
33
+ const configureAutoTrack = (input) => {
28
34
  validateTrackerConfiguration(input);
29
35
  // Initialize or update this provider's trackers
30
36
  updateProviderTrackers(input, emitTrackingEvent, configuredTrackers);
31
37
  };
38
+
39
+ export { configureAutoTrack };
40
+ //# sourceMappingURL=configureAutoTrack.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureAutoTrack.mjs","sources":["../../../../../src/providers/pinpoint/apis/configureAutoTrack.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { updateProviderTrackers, validateTrackerConfiguration, } from '../../../utils';\nimport { record } from './record';\n// Configured Tracker instances for Pinpoint\nconst configuredTrackers = {};\n// Callback that will emit an appropriate event to Pinpoint when required by the Tracker\nconst emitTrackingEvent = (eventName, attributes) => {\n record({\n name: eventName,\n attributes,\n });\n};\n/**\n * Configures automatic event tracking for Pinpoint. This API will automatically transmit an analytic event when\n * configured events are detected within your application. This can include: DOM element events (via the `event`\n * tracker), session events (via the `session` tracker), and page view events (via the `pageView` tracker).\n *\n * @remark Only session tracking is currently supported on React Native.\n *\n * @param {ConfigureAutoTrackInput} params The input object to configure auto track behavior.\n *\n * @throws service: {@link UpdateEndpointException} - Thrown when the underlying Pinpoint service returns an error.\n * @throws validation: {@link AnalyticsValidationErrorCode} - Thrown when the provided parameters or library\n * configuration is incorrect.\n */\nexport const configureAutoTrack = (input) => {\n validateTrackerConfiguration(input);\n // Initialize or update this provider's trackers\n updateProviderTrackers(input, emitTrackingEvent, configuredTrackers);\n};\n"],"names":[],"mappings":";;;;;;;;AAAA;AACA;AAGA;AACA,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B;AACA,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,UAAU,KAAK;AACrD,IAAI,MAAM,CAAC;AACX,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,UAAU;AAClB,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,kBAAkB,GAAG,CAAC,KAAK,KAAK;AAC7C,IAAI,4BAA4B,CAAC,KAAK,CAAC,CAAC;AACxC;AACA,IAAI,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;AACzE;;;;"}
@@ -0,0 +1,31 @@
1
+ import { resolveConfig } from '../utils/resolveConfig.mjs';
2
+ import { resolveCredentials } from '../utils/resolveCredentials.mjs';
3
+ import { flushEvents as flushEvents$1 } from '@aws-amplify/core/internals/providers/pinpoint';
4
+ import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
5
+ import { ConsoleLogger } from '@aws-amplify/core';
6
+ import '../../../errors/validation.mjs';
7
+ import '../../../utils/eventBuffer/EventBuffer.mjs';
8
+ import { getAnalyticsUserAgentString } from '../../../utils/userAgent.mjs';
9
+ import '../../../trackers/EventTracker.mjs';
10
+ import '../../../trackers/PageViewTracker.mjs';
11
+ import '../../../trackers/SessionTracker.mjs';
12
+
13
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
14
+ // SPDX-License-Identifier: Apache-2.0
15
+ const logger = new ConsoleLogger('Analytics');
16
+ /**
17
+ * Flushes all buffered Pinpoint events to the service.
18
+ *
19
+ * @note
20
+ * This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking
21
+ * this API may not be included in the flush.
22
+ */
23
+ const flushEvents = () => {
24
+ const { appId, region } = resolveConfig();
25
+ resolveCredentials()
26
+ .then(({ credentials, identityId }) => flushEvents$1(appId, region, credentials, identityId, getAnalyticsUserAgentString(AnalyticsAction.Record)))
27
+ .catch(e => logger.warn('Failed to flush events', e));
28
+ };
29
+
30
+ export { flushEvents };
31
+ //# sourceMappingURL=flushEvents.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flushEvents.mjs","sources":["../../../../../src/providers/pinpoint/apis/flushEvents.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { resolveConfig, resolveCredentials } from '../utils';\nimport { flushEvents as flushEventsCore } from '@aws-amplify/core/internals/providers/pinpoint';\nimport { AnalyticsAction } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger } from '@aws-amplify/core';\nimport { getAnalyticsUserAgentString } from '../../../utils';\nconst logger = new ConsoleLogger('Analytics');\n/**\n * Flushes all buffered Pinpoint events to the service.\n *\n * @note\n * This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking\n * this API may not be included in the flush.\n */\nexport const flushEvents = () => {\n const { appId, region } = resolveConfig();\n resolveCredentials()\n .then(({ credentials, identityId }) => flushEventsCore(appId, region, credentials, identityId, getAnalyticsUserAgentString(AnalyticsAction.Record)))\n .catch(e => logger.warn('Failed to flush events', e));\n};\n"],"names":["flushEventsCore"],"mappings":";;;;;;;;;;;;AAAA;AACA;AAMA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,MAAM;AACjC,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;AAC9C,IAAI,kBAAkB,EAAE;AACxB,SAAS,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,KAAKA,aAAe,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,2BAA2B,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5J,SAAS,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D;;;;"}
@@ -1,10 +1,17 @@
1
+ import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
2
+ import { updateEndpoint } from '@aws-amplify/core/internals/providers/pinpoint';
3
+ import '../../../errors/validation.mjs';
4
+ import '@aws-amplify/core';
5
+ import '../../../utils/eventBuffer/EventBuffer.mjs';
6
+ import { getAnalyticsUserAgentString } from '../../../utils/userAgent.mjs';
7
+ import '../../../trackers/EventTracker.mjs';
8
+ import '../../../trackers/PageViewTracker.mjs';
9
+ import '../../../trackers/SessionTracker.mjs';
10
+ import { resolveConfig } from '../utils/resolveConfig.mjs';
11
+ import { resolveCredentials } from '../utils/resolveCredentials.mjs';
12
+
1
13
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
14
  // SPDX-License-Identifier: Apache-2.0
3
- import { __awaiter, __generator } from "tslib";
4
- import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
5
- import { updateEndpoint, } from '@aws-amplify/core/internals/providers/pinpoint';
6
- import { getAnalyticsUserAgentString } from '../../../utils';
7
- import { resolveConfig, resolveCredentials } from '../utils';
8
15
  /**
9
16
  * Sends information about a user to Pinpoint. Sending user information allows you to associate a user to their user
10
17
  * profile and activities or actions in your application. Activity can be tracked across devices & platforms by using
@@ -50,30 +57,22 @@ import { resolveConfig, resolveCredentials } from '../utils';
50
57
  * }
51
58
  * });
52
59
  */
53
- export var identifyUser = function (_a) {
54
- var userId = _a.userId, userProfile = _a.userProfile, options = _a.options;
55
- return __awaiter(void 0, void 0, void 0, function () {
56
- var _b, credentials, identityId, _c, appId, region, userAttributes;
57
- return __generator(this, function (_d) {
58
- switch (_d.label) {
59
- case 0: return [4 /*yield*/, resolveCredentials()];
60
- case 1:
61
- _b = _d.sent(), credentials = _b.credentials, identityId = _b.identityId;
62
- _c = resolveConfig(), appId = _c.appId, region = _c.region;
63
- userAttributes = (options !== null && options !== void 0 ? options : {}).userAttributes;
64
- updateEndpoint({
65
- appId: appId,
66
- category: 'Analytics',
67
- credentials: credentials,
68
- identityId: identityId,
69
- region: region,
70
- userAttributes: userAttributes,
71
- userId: userId,
72
- userProfile: userProfile,
73
- userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.IdentifyUser),
74
- });
75
- return [2 /*return*/];
76
- }
77
- });
60
+ const identifyUser = async ({ userId, userProfile, options, }) => {
61
+ const { credentials, identityId } = await resolveCredentials();
62
+ const { appId, region } = resolveConfig();
63
+ const { userAttributes } = options ?? {};
64
+ updateEndpoint({
65
+ appId,
66
+ category: 'Analytics',
67
+ credentials,
68
+ identityId,
69
+ region,
70
+ userAttributes,
71
+ userId,
72
+ userProfile,
73
+ userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.IdentifyUser),
78
74
  });
79
75
  };
76
+
77
+ export { identifyUser };
78
+ //# sourceMappingURL=identifyUser.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identifyUser.mjs","sources":["../../../../../src/providers/pinpoint/apis/identifyUser.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AnalyticsAction } from '@aws-amplify/core/internals/utils';\nimport { updateEndpoint, } from '@aws-amplify/core/internals/providers/pinpoint';\nimport { getAnalyticsUserAgentString } from '../../../utils';\nimport { resolveConfig, resolveCredentials } from '../utils';\n/**\n * Sends information about a user to Pinpoint. Sending user information allows you to associate a user to their user\n * profile and activities or actions in your application. Activity can be tracked across devices & platforms by using\n * the same `userId`.\n *\n * @param {IdentifyUserParameters} params The input object used to construct requests sent to Pinpoint's UpdateEndpoint\n * API.\n *\n * @throws service: {@link UpdateEndpointException} - Thrown when the underlying Pinpoint service returns an error.\n * @throws validation: {@link AnalyticsValidationErrorCode} - Thrown when the provided parameters or library\n * configuration is incorrect.\n *\n * @returns A promise that will resolve when the operation is complete.\n *\n * @example\n * ```ts\n * // Identify a user with Pinpoint\n * await identifyUser({\n * userId,\n * userProfile: {\n * email: 'userEmail@example.com'\n * customProperties: {\n * phoneNumber: ['555-555-5555'],\n * },\n * }\n * });\n * ```\n *\n * @example\n * ```ts\n * // Identify a user with Pinpoint with some additional demographics\n * await identifyUser({\n * userId,\n * userProfile: {\n * email: 'userEmail@example.com'\n * customProperties: {\n * phoneNumber: ['555-555-5555'],\n * },\n * demographic: {\n * platform: 'ios',\n * timezone: 'America/Los_Angeles'\n * }\n * }\n * });\n */\nexport const identifyUser = async ({ userId, userProfile, options, }) => {\n const { credentials, identityId } = await resolveCredentials();\n const { appId, region } = resolveConfig();\n const { userAttributes } = options ?? {};\n updateEndpoint({\n appId,\n category: 'Analytics',\n credentials,\n identityId,\n region,\n userAttributes,\n userId,\n userProfile,\n userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.IdentifyUser),\n });\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,YAAY,GAAG,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,KAAK;AACzE,IAAI,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,kBAAkB,EAAE,CAAC;AACnE,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;AAC9C,IAAI,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;AAC7C,IAAI,cAAc,CAAC;AACnB,QAAQ,KAAK;AACb,QAAQ,QAAQ,EAAE,WAAW;AAC7B,QAAQ,WAAW;AACnB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,cAAc;AACtB,QAAQ,MAAM;AACd,QAAQ,WAAW;AACnB,QAAQ,cAAc,EAAE,2BAA2B,CAAC,eAAe,CAAC,YAAY,CAAC;AACjF,KAAK,CAAC,CAAC;AACP;;;;"}
@@ -0,0 +1,5 @@
1
+ export { record } from './record.mjs';
2
+ export { identifyUser } from './identifyUser.mjs';
3
+ export { configureAutoTrack } from './configureAutoTrack.mjs';
4
+ export { flushEvents } from './flushEvents.mjs';
5
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -1,12 +1,20 @@
1
+ import { ConsoleLogger, Hub } from '@aws-amplify/core';
2
+ import { AMPLIFY_SYMBOL, AnalyticsAction } from '@aws-amplify/core/internals/utils';
3
+ import { record as record$1 } from '@aws-amplify/core/internals/providers/pinpoint';
4
+ import { assertValidationError } from '../../../errors/assertValidationError.mjs';
5
+ import { AnalyticsValidationErrorCode } from '../../../errors/validation.mjs';
6
+ import '../../../utils/eventBuffer/EventBuffer.mjs';
7
+ import { isAnalyticsEnabled } from '../../../utils/statusHelpers.mjs';
8
+ import { getAnalyticsUserAgentString } from '../../../utils/userAgent.mjs';
9
+ import '../../../trackers/EventTracker.mjs';
10
+ import '../../../trackers/PageViewTracker.mjs';
11
+ import '../../../trackers/SessionTracker.mjs';
12
+ import { resolveConfig } from '../utils/resolveConfig.mjs';
13
+ import { resolveCredentials } from '../utils/resolveCredentials.mjs';
14
+
1
15
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
16
  // SPDX-License-Identifier: Apache-2.0
3
- import { Hub, ConsoleLogger } from '@aws-amplify/core';
4
- import { AMPLIFY_SYMBOL, AnalyticsAction, } from '@aws-amplify/core/internals/utils';
5
- import { record as recordCore } from '@aws-amplify/core/internals/providers/pinpoint';
6
- import { AnalyticsValidationErrorCode, assertValidationError, } from '../../../errors';
7
- import { getAnalyticsUserAgentString, isAnalyticsEnabled, } from '../../../utils';
8
- import { resolveConfig, resolveCredentials } from '../utils';
9
- var logger = new ConsoleLogger('Analytics');
17
+ const logger = new ConsoleLogger('Analytics');
10
18
  /**
11
19
  * Records an Analytic event to Pinpoint. Events will be buffered and periodically sent to Pinpoint.
12
20
  *
@@ -35,29 +43,31 @@ var logger = new ConsoleLogger('Analytics');
35
43
  * })
36
44
  * ```
37
45
  */
38
- export var record = function (input) {
39
- var _a = resolveConfig(), appId = _a.appId, region = _a.region;
46
+ const record = (input) => {
47
+ const { appId, region } = resolveConfig();
40
48
  if (!isAnalyticsEnabled()) {
41
49
  logger.debug('Analytics is disabled, event will not be recorded.');
42
50
  return;
43
51
  }
44
52
  assertValidationError(!!input.name, AnalyticsValidationErrorCode.NoEventName);
45
53
  resolveCredentials()
46
- .then(function (_a) {
47
- var credentials = _a.credentials, identityId = _a.identityId;
54
+ .then(({ credentials, identityId }) => {
48
55
  Hub.dispatch('analytics', { event: 'record', data: input, message: 'Recording Analytics event' }, 'Analytics', AMPLIFY_SYMBOL);
49
- recordCore({
50
- appId: appId,
56
+ record$1({
57
+ appId,
51
58
  category: 'Analytics',
52
- credentials: credentials,
59
+ credentials,
53
60
  event: input,
54
- identityId: identityId,
55
- region: region,
61
+ identityId,
62
+ region,
56
63
  userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
57
64
  });
58
65
  })
59
- .catch(function (e) {
66
+ .catch(e => {
60
67
  // An error occured while fetching credentials or persisting the event to the buffer
61
68
  logger.warn('Failed to record event.', e);
62
69
  });
63
70
  };
71
+
72
+ export { record };
73
+ //# sourceMappingURL=record.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record.mjs","sources":["../../../../../src/providers/pinpoint/apis/record.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Hub, ConsoleLogger } from '@aws-amplify/core';\nimport { AMPLIFY_SYMBOL, AnalyticsAction, } from '@aws-amplify/core/internals/utils';\nimport { record as recordCore } from '@aws-amplify/core/internals/providers/pinpoint';\nimport { AnalyticsValidationErrorCode, assertValidationError, } from '../../../errors';\nimport { getAnalyticsUserAgentString, isAnalyticsEnabled, } from '../../../utils';\nimport { resolveConfig, resolveCredentials } from '../utils';\nconst logger = new ConsoleLogger('Analytics');\n/**\n * Records an Analytic event to Pinpoint. Events will be buffered and periodically sent to Pinpoint.\n *\n * @param {RecordInput} params The input object used to construct the request.\n *\n * @throws validation: {@link AnalyticsValidationErrorCode} - Thrown when the provided parameters or library\n * configuration is incorrect.\n *\n * @example\n * ```ts\n * // Send an event to Pinpoint\n * record({ name: eventName })\n * ```\n *\n * @example\n * ```ts\n * // Send an event to Pinpoint with metrics & custom attributes\n * record({\n * name: eventName,\n * attributes: {\n * 'my-attribute': attributeValue\n * },\n * metrics: {\n * 'my-metric': metricValue\n * }\n * })\n * ```\n */\nexport const record = (input) => {\n const { appId, region } = resolveConfig();\n if (!isAnalyticsEnabled()) {\n logger.debug('Analytics is disabled, event will not be recorded.');\n return;\n }\n assertValidationError(!!input.name, AnalyticsValidationErrorCode.NoEventName);\n resolveCredentials()\n .then(({ credentials, identityId }) => {\n Hub.dispatch('analytics', { event: 'record', data: input, message: 'Recording Analytics event' }, 'Analytics', AMPLIFY_SYMBOL);\n recordCore({\n appId,\n category: 'Analytics',\n credentials,\n event: input,\n identityId,\n region,\n userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),\n });\n })\n .catch(e => {\n // An error occured while fetching credentials or persisting the event to the buffer\n logger.warn('Failed to record event.', e);\n });\n};\n"],"names":["recordCore"],"mappings":";;;;;;;;;;;;;;AAAA;AACA;AAOA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG,CAAC,KAAK,KAAK;AACjC,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;AAC9C,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;AAC/B,QAAQ,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;AAC3E,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,4BAA4B,CAAC,WAAW,CAAC,CAAC;AAClF,IAAI,kBAAkB,EAAE;AACxB,SAAS,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK;AAC/C,QAAQ,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,2BAA2B,EAAE,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;AACvI,QAAQA,QAAU,CAAC;AACnB,YAAY,KAAK;AACjB,YAAY,QAAQ,EAAE,WAAW;AACjC,YAAY,WAAW;AACvB,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,UAAU;AACtB,YAAY,MAAM;AAClB,YAAY,cAAc,EAAE,2BAA2B,CAAC,eAAe,CAAC,MAAM,CAAC;AAC/E,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,SAAS,KAAK,CAAC,CAAC,IAAI;AACpB;AACA,QAAQ,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;AAClD,KAAK,CAAC,CAAC;AACP;;;;"}
@@ -0,0 +1,5 @@
1
+ export { record } from './apis/record.mjs';
2
+ export { identifyUser } from './apis/identifyUser.mjs';
3
+ export { configureAutoTrack } from './apis/configureAutoTrack.mjs';
4
+ export { flushEvents } from './apis/flushEvents.mjs';
5
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=inputs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputs.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=options.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { resolveConfig } from './resolveConfig.mjs';
2
+ export { resolveCredentials } from './resolveCredentials.mjs';
3
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,19 @@
1
+ import { Amplify } from '@aws-amplify/core';
2
+ import '@aws-amplify/core/internals/utils';
3
+ import { assertValidationError } from '../../../errors/assertValidationError.mjs';
4
+ import { AnalyticsValidationErrorCode } from '../../../errors/validation.mjs';
5
+
6
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
7
+ // SPDX-License-Identifier: Apache-2.0
8
+ /**
9
+ * @internal
10
+ */
11
+ const resolveConfig = () => {
12
+ const { appId, region } = Amplify.getConfig().Analytics?.Pinpoint ?? {};
13
+ assertValidationError(!!appId, AnalyticsValidationErrorCode.NoAppId);
14
+ assertValidationError(!!region, AnalyticsValidationErrorCode.NoRegion);
15
+ return { appId, region };
16
+ };
17
+
18
+ export { resolveConfig };
19
+ //# sourceMappingURL=resolveConfig.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveConfig.mjs","sources":["../../../../../src/providers/pinpoint/utils/resolveConfig.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { AnalyticsValidationErrorCode, assertValidationError, } from '../../../errors';\n/**\n * @internal\n */\nexport const resolveConfig = () => {\n const { appId, region } = Amplify.getConfig().Analytics?.Pinpoint ?? {};\n assertValidationError(!!appId, AnalyticsValidationErrorCode.NoAppId);\n assertValidationError(!!region, AnalyticsValidationErrorCode.NoRegion);\n return { appId, region };\n};\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAGA;AACA;AACA;AACY,MAAC,aAAa,GAAG,MAAM;AACnC,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,QAAQ,IAAI,EAAE,CAAC;AAC5E,IAAI,qBAAqB,CAAC,CAAC,CAAC,KAAK,EAAE,4BAA4B,CAAC,OAAO,CAAC,CAAC;AACzE,IAAI,qBAAqB,CAAC,CAAC,CAAC,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,CAAC;AAC3E,IAAI,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC7B;;;;"}
@@ -2,6 +2,6 @@
2
2
  * @internal
3
3
  */
4
4
  export declare const resolveCredentials: () => Promise<{
5
- credentials: import("@aws-amplify/core/lib-esm/libraryUtils").AWSCredentials;
5
+ credentials: import("@aws-amplify/core/internals/utils").AWSCredentials;
6
6
  identityId: string | undefined;
7
7
  }>;
@@ -0,0 +1,18 @@
1
+ import { fetchAuthSession } from '@aws-amplify/core';
2
+ import '@aws-amplify/core/internals/utils';
3
+ import { assertValidationError } from '../../../errors/assertValidationError.mjs';
4
+ import { AnalyticsValidationErrorCode } from '../../../errors/validation.mjs';
5
+
6
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
7
+ // SPDX-License-Identifier: Apache-2.0
8
+ /**
9
+ * @internal
10
+ */
11
+ const resolveCredentials = async () => {
12
+ const { credentials, identityId } = await fetchAuthSession();
13
+ assertValidationError(!!credentials, AnalyticsValidationErrorCode.NoCredentials);
14
+ return { credentials, identityId };
15
+ };
16
+
17
+ export { resolveCredentials };
18
+ //# sourceMappingURL=resolveCredentials.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveCredentials.mjs","sources":["../../../../../src/providers/pinpoint/utils/resolveCredentials.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { fetchAuthSession } from '@aws-amplify/core';\nimport { AnalyticsValidationErrorCode, assertValidationError, } from '../../../errors';\n/**\n * @internal\n */\nexport const resolveCredentials = async () => {\n const { credentials, identityId } = await fetchAuthSession();\n assertValidationError(!!credentials, AnalyticsValidationErrorCode.NoCredentials);\n return { credentials, identityId };\n};\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAGA;AACA;AACA;AACY,MAAC,kBAAkB,GAAG,YAAY;AAC9C,IAAI,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;AACjE,IAAI,qBAAqB,CAAC,CAAC,CAAC,WAAW,EAAE,4BAA4B,CAAC,aAAa,CAAC,CAAC;AACrF,IAAI,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACvC;;;;"}
@@ -1,7 +1,7 @@
1
- "use strict";
2
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
2
  // SPDX-License-Identifier: Apache-2.0
4
- var anyGlobal = global;
3
+ const anyGlobal = global;
5
4
  anyGlobal.navigator = anyGlobal.navigator || {};
6
5
  // @ts-ignore
7
6
  anyGlobal.navigator.sendBeacon = anyGlobal.navigator.sendBeacon || jest.fn();
7
+ //# sourceMappingURL=setupTests.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupTests.mjs","sources":["../../src/setupTests.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst anyGlobal = global;\nanyGlobal.navigator = anyGlobal.navigator || {};\n// @ts-ignore\nanyGlobal.navigator.sendBeacon = anyGlobal.navigator.sendBeacon || jest.fn();\n"],"names":[],"mappings":"AACA;AACA;AACA,MAAM,SAAS,GAAG,MAAM,CAAC;AACzB,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC;AAChD;AACA,SAAS,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,EAAE"}
@@ -0,0 +1,98 @@
1
+ import { ConsoleLogger } from '@aws-amplify/core';
2
+ import { isBrowser } from '@aws-amplify/core/internals/utils';
3
+
4
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
5
+ // SPDX-License-Identifier: Apache-2.0
6
+ const DEFAULT_EVENTS = ['click'];
7
+ const DEFAULT_SELECTOR_PREFIX = 'data-amplify-analytics-';
8
+ const DEFAULT_EVENT_NAME = 'event'; // Default event name as sent to the analytics provider
9
+ const logger = new ConsoleLogger('EventTracker');
10
+ class EventTracker {
11
+ constructor(eventRecorder, options) {
12
+ this.options = {};
13
+ this.trackerActive = false;
14
+ this.eventRecorder = eventRecorder;
15
+ this.handleDocEvent = this.handleDocEvent.bind(this);
16
+ this.configure(eventRecorder, options);
17
+ }
18
+ configure(eventRecorder, options) {
19
+ this.eventRecorder = eventRecorder;
20
+ // Clean up any existing listeners
21
+ this.cleanup();
22
+ // Apply defaults
23
+ this.options = {
24
+ attributes: options?.attributes ?? undefined,
25
+ events: options?.events ?? DEFAULT_EVENTS,
26
+ selectorPrefix: options?.selectorPrefix ?? DEFAULT_SELECTOR_PREFIX,
27
+ };
28
+ // Register event listeners
29
+ if (isBrowser()) {
30
+ this.options.events?.forEach(targetEvent => {
31
+ document.addEventListener(targetEvent, this.handleDocEvent, {
32
+ capture: true,
33
+ });
34
+ });
35
+ this.trackerActive = true;
36
+ }
37
+ }
38
+ cleanup() {
39
+ // No-op if document listener is not active
40
+ if (!this.trackerActive) {
41
+ return;
42
+ }
43
+ // Clean up event listeners
44
+ this.options.events?.forEach(targetEvent => {
45
+ document.removeEventListener(targetEvent, this.handleDocEvent, {
46
+ capture: true,
47
+ });
48
+ });
49
+ }
50
+ handleDocEvent(event) {
51
+ /**
52
+ * Example DOM element:
53
+ *
54
+ * ```
55
+ * <button
56
+ * data-amplify-analytics-on="click"
57
+ * data-amplify-analytics-name="click"
58
+ * data-amplify-analytics-attrs="attr1:attr1_value,attr2:attr2_value"
59
+ * />
60
+ * ```
61
+ */
62
+ const triggerSelector = `[${this.options.selectorPrefix}on]`;
63
+ const attrSelector = `${this.options.selectorPrefix}attrs`;
64
+ const eventNameSelector = `${this.options.selectorPrefix}name`;
65
+ const eventSource = event.target;
66
+ // Validate that the triggering event type is being tracked
67
+ if (!this.options.events?.includes(event.type)) {
68
+ return;
69
+ }
70
+ if (eventSource instanceof HTMLElement) {
71
+ const target = eventSource.closest(triggerSelector);
72
+ if (target) {
73
+ // Parse event name from the element
74
+ const eventName = target.getAttribute(eventNameSelector) || DEFAULT_EVENT_NAME;
75
+ // Parse attributes from the element
76
+ const elementAttributes = {};
77
+ const rawElementAttributes = target.getAttribute(attrSelector);
78
+ rawElementAttributes?.split(/\s*,\s*/).forEach(attr => {
79
+ const tmp = attr.trim().split(/\s*:\s*/);
80
+ elementAttributes[tmp[0]] = tmp[1];
81
+ });
82
+ // Assemble final list of attributes
83
+ const attributes = Object.assign({
84
+ type: event.type,
85
+ target: `${target.localName} with id ${target.id}`,
86
+ }, this.options.attributes, elementAttributes);
87
+ logger.debug('Recording automatically tracked DOM event', {
88
+ eventName,
89
+ attributes,
90
+ });
91
+ this.eventRecorder(eventName, attributes);
92
+ }
93
+ }
94
+ }
95
+ }
96
+
97
+ export { EventTracker };
98
+ //# sourceMappingURL=EventTracker.mjs.map