@aws-amplify/analytics 7.0.1-console-preview.d745d43.0 → 7.0.1-mjs-test.6f5dab7.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,78 @@
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 { FirehoseClient, PutRecordBatchCommand } from '@aws-sdk/client-firehose';
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 createPutRecordsBatchCommand = (streamName, events) => new PutRecordBatchCommand({
24
+ DeliveryStreamName: streamName,
25
+ Records: events.map(event => ({
26
+ Data: event.event,
27
+ })),
28
+ });
29
+ const submitEvents = async (events, client, resendLimit) => {
30
+ const groupedByStreamName = Object.entries(groupBy(event => event.streamName, events));
31
+ const requests = groupedByStreamName
32
+ .map(([streamName, events]) => createPutRecordsBatchCommand(streamName, events))
33
+ .map(command => client.send(command));
34
+ const responses = await Promise.allSettled(requests);
35
+ const failedEvents = responses
36
+ .map((response, i) => response.status === 'rejected' ? groupedByStreamName[i][1] : [])
37
+ .flat();
38
+ return resendLimit
39
+ ? failedEvents
40
+ .filter(event => event.retryCount < resendLimit)
41
+ .map(event => ({ ...event, retryCount: event.retryCount + 1 }))
42
+ .sort((a, b) => a.timestamp - b.timestamp)
43
+ : [];
44
+ };
45
+ const getEventBuffer = ({ region, credentials, identityId, bufferSize, flushSize, flushInterval, resendLimit, userAgentValue, }) => {
46
+ const sessionIdentityKey = [region, identityId].filter(id => !!id).join('-');
47
+ if (!eventBufferMap[sessionIdentityKey]) {
48
+ const getClient = () => {
49
+ if (!cachedClients[sessionIdentityKey]) {
50
+ cachedClients[sessionIdentityKey] = new FirehoseClient({
51
+ region,
52
+ credentials,
53
+ customUserAgent: userAgentValue,
54
+ });
55
+ }
56
+ const firehoseClient = cachedClients[sessionIdentityKey];
57
+ return events => submitEvents(events, firehoseClient, resendLimit);
58
+ };
59
+ eventBufferMap[sessionIdentityKey] =
60
+ new EventBuffer({
61
+ bufferSize,
62
+ flushSize,
63
+ flushInterval,
64
+ }, getClient);
65
+ const releaseSessionKeys = Object.keys(eventBufferMap).filter(key => key !== sessionIdentityKey);
66
+ for (const releaseSessionKey of releaseSessionKeys) {
67
+ eventBufferMap[releaseSessionKey].flushAll().finally(() => {
68
+ eventBufferMap[releaseSessionKey].release();
69
+ delete eventBufferMap[releaseSessionKey];
70
+ delete cachedClients[releaseSessionKey];
71
+ });
72
+ }
73
+ }
74
+ return eventBufferMap[sessionIdentityKey];
75
+ };
76
+
77
+ export { getEventBuffer };
78
+ //# sourceMappingURL=getEventBuffer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getEventBuffer.mjs","sources":["../../../../../src/providers/kinesis-firehose/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 { FirehoseClient, PutRecordBatchCommand, } from '@aws-sdk/client-firehose';\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 createPutRecordsBatchCommand = (streamName, events) => new PutRecordBatchCommand({\n DeliveryStreamName: streamName,\n Records: events.map(event => ({\n Data: event.event,\n })),\n});\nconst submitEvents = async (events, client, resendLimit) => {\n const groupedByStreamName = Object.entries(groupBy(event => event.streamName, events));\n const requests = groupedByStreamName\n .map(([streamName, events]) => createPutRecordsBatchCommand(streamName, events))\n .map(command => client.send(command));\n const responses = await Promise.allSettled(requests);\n const failedEvents = responses\n .map((response, i) => response.status === 'rejected' ? groupedByStreamName[i][1] : [])\n .flat();\n return resendLimit\n ? failedEvents\n .filter(event => event.retryCount < resendLimit)\n .map(event => ({ ...event, retryCount: event.retryCount + 1 }))\n .sort((a, b) => a.timestamp - b.timestamp)\n : [];\n};\nexport const getEventBuffer = ({ region, credentials, identityId, bufferSize, flushSize, flushInterval, resendLimit, userAgentValue, }) => {\n const sessionIdentityKey = [region, identityId].filter(id => !!id).join('-');\n if (!eventBufferMap[sessionIdentityKey]) {\n const getClient = () => {\n if (!cachedClients[sessionIdentityKey]) {\n cachedClients[sessionIdentityKey] = new FirehoseClient({\n region,\n credentials,\n customUserAgent: userAgentValue,\n });\n }\n const firehoseClient = cachedClients[sessionIdentityKey];\n return events => submitEvents(events, firehoseClient, resendLimit);\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":"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"}
@@ -0,0 +1,3 @@
1
+ export { getEventBuffer } from './getEventBuffer.mjs';
2
+ export { resolveConfig } from './resolveConfig.mjs';
3
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,27 @@
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 { DEFAULT_KINESIS_FIREHOSE_CONFIG } from './constants.mjs';
6
+
7
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
8
+ // SPDX-License-Identifier: Apache-2.0
9
+ const resolveConfig = () => {
10
+ const config = Amplify.getConfig().Analytics?.KinesisFirehose;
11
+ const { region, bufferSize = DEFAULT_KINESIS_FIREHOSE_CONFIG.bufferSize, flushSize = DEFAULT_KINESIS_FIREHOSE_CONFIG.flushSize, flushInterval = DEFAULT_KINESIS_FIREHOSE_CONFIG.flushInterval, resendLimit, } = {
12
+ ...DEFAULT_KINESIS_FIREHOSE_CONFIG,
13
+ ...config,
14
+ };
15
+ assertValidationError(!!region, AnalyticsValidationErrorCode.NoRegion);
16
+ assertValidationError(flushSize < bufferSize, AnalyticsValidationErrorCode.InvalidFlushSize);
17
+ return {
18
+ region,
19
+ bufferSize,
20
+ flushSize,
21
+ flushInterval,
22
+ resendLimit,
23
+ };
24
+ };
25
+
26
+ export { resolveConfig };
27
+ //# sourceMappingURL=resolveConfig.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveConfig.mjs","sources":["../../../../../src/providers/kinesis-firehose/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_KINESIS_FIREHOSE_CONFIG } from './constants';\nexport const resolveConfig = () => {\n const config = Amplify.getConfig().Analytics?.KinesisFirehose;\n const { region, bufferSize = DEFAULT_KINESIS_FIREHOSE_CONFIG.bufferSize, flushSize = DEFAULT_KINESIS_FIREHOSE_CONFIG.flushSize, flushInterval = DEFAULT_KINESIS_FIREHOSE_CONFIG.flushInterval, resendLimit, } = {\n ...DEFAULT_KINESIS_FIREHOSE_CONFIG,\n ...config,\n };\n assertValidationError(!!region, AnalyticsValidationErrorCode.NoRegion);\n assertValidationError(flushSize < bufferSize, AnalyticsValidationErrorCode.InvalidFlushSize);\n return {\n region,\n bufferSize,\n flushSize,\n flushInterval,\n resendLimit,\n };\n};\n"],"names":[],"mappings":";;;;;;AAAA;AACA;AAIY,MAAC,aAAa,GAAG,MAAM;AACnC,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;AAClE,IAAI,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,+BAA+B,CAAC,UAAU,EAAE,SAAS,GAAG,+BAA+B,CAAC,SAAS,EAAE,aAAa,GAAG,+BAA+B,CAAC,aAAa,EAAE,WAAW,GAAG,GAAG;AACpN,QAAQ,GAAG,+BAA+B;AAC1C,QAAQ,GAAG,MAAM;AACjB,KAAK,CAAC;AACN,IAAI,qBAAqB,CAAC,CAAC,CAAC,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,CAAC;AAC3E,IAAI,qBAAqB,CAAC,SAAS,GAAG,UAAU,EAAE,4BAA4B,CAAC,gBAAgB,CAAC,CAAC;AACjG,IAAI,OAAO;AACX,QAAQ,MAAM;AACd,QAAQ,UAAU;AAClB,QAAQ,SAAS;AACjB,QAAQ,aAAa;AACrB,QAAQ,WAAW;AACnB,KAAK,CAAC;AACN;;;;"}
@@ -0,0 +1,41 @@
1
+ import { getEventBuffer } from '../utils/getEventBuffer.mjs';
2
+ import { resolveConfig } from '../utils/resolveConfig.mjs';
3
+ import '../utils/autoTrackMedia.mjs';
4
+ import { ConsoleLogger } from '@aws-amplify/core';
5
+ import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
6
+ import { resolveCredentials } from '../../../utils/resolveCredentials.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
+ import '../../../errors/validation.mjs';
13
+
14
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
15
+ // SPDX-License-Identifier: Apache-2.0
16
+ const logger = new ConsoleLogger('Personalize');
17
+ /**
18
+ * Flushes all buffered Personalize events to the service.
19
+ *
20
+ * @note
21
+ * This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking
22
+ * this API may not be included in the flush.
23
+ */
24
+ const flushEvents = () => {
25
+ const { region, flushSize, bufferSize, flushInterval } = resolveConfig();
26
+ resolveCredentials()
27
+ .then(({ credentials, identityId }) => getEventBuffer({
28
+ region,
29
+ flushSize,
30
+ flushInterval,
31
+ bufferSize,
32
+ credentials,
33
+ identityId,
34
+ userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
35
+ }))
36
+ .then(eventBuffer => eventBuffer.flushAll())
37
+ .catch(e => logger.warn('Failed to flush events', e));
38
+ };
39
+
40
+ export { flushEvents };
41
+ //# sourceMappingURL=flushEvents.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flushEvents.mjs","sources":["../../../../../src/providers/personalize/apis/flushEvents.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getEventBuffer, resolveConfig } from '../utils';\nimport { getAnalyticsUserAgentString, resolveCredentials, } from '../../../utils';\nimport { AnalyticsAction } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger } from '@aws-amplify/core';\nconst logger = new ConsoleLogger('Personalize');\n/**\n * Flushes all buffered Personalize 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 { region, flushSize, bufferSize, flushInterval } = resolveConfig();\n resolveCredentials()\n .then(({ credentials, identityId }) => getEventBuffer({\n region,\n flushSize,\n flushInterval,\n bufferSize,\n credentials,\n identityId,\n userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),\n }))\n .then(eventBuffer => eventBuffer.flushAll())\n .catch(e => logger.warn('Failed to flush events', e));\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAAA;AACA;AAKA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,aAAa,CAAC,CAAC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,MAAM;AACjC,IAAI,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAAC;AAC7E,IAAI,kBAAkB,EAAE;AACxB,SAAS,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,cAAc,CAAC;AAC9D,QAAQ,MAAM;AACd,QAAQ,SAAS;AACjB,QAAQ,aAAa;AACrB,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,QAAQ,UAAU;AAClB,QAAQ,cAAc,EAAE,2BAA2B,CAAC,eAAe,CAAC,MAAM,CAAC;AAC3E,KAAK,CAAC,CAAC;AACP,SAAS,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;AACpD,SAAS,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D;;;;"}
@@ -0,0 +1,3 @@
1
+ export { record } from './record.mjs';
2
+ export { flushEvents } from './flushEvents.mjs';
3
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,81 @@
1
+ import { getEventBuffer } from '../utils/getEventBuffer.mjs';
2
+ import { resolveConfig } from '../utils/resolveConfig.mjs';
3
+ import { autoTrackMedia } from '../utils/autoTrackMedia.mjs';
4
+ import { resolveCachedSession, updateCachedSession } from '../utils/cachedSession.mjs';
5
+ import { IDENTIFY_EVENT_TYPE, MEDIA_AUTO_TRACK_EVENT_TYPE } from '../utils/constants.mjs';
6
+ import { resolveCredentials } from '../../../utils/resolveCredentials.mjs';
7
+ import '../../../utils/eventBuffer/EventBuffer.mjs';
8
+ import { isAnalyticsEnabled } from '../../../utils/statusHelpers.mjs';
9
+ import { getAnalyticsUserAgentString } from '../../../utils/userAgent.mjs';
10
+ import '../../../trackers/EventTracker.mjs';
11
+ import '../../../trackers/PageViewTracker.mjs';
12
+ import '../../../trackers/SessionTracker.mjs';
13
+ import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
14
+ import '../../../errors/validation.mjs';
15
+ import { ConsoleLogger } from '@aws-amplify/core';
16
+
17
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
18
+ // SPDX-License-Identifier: Apache-2.0
19
+ const logger = new ConsoleLogger('Personalize');
20
+ const record = ({ userId, eventId, eventType, properties, }) => {
21
+ if (!isAnalyticsEnabled()) {
22
+ logger.debug('Analytics is disabled, event will not be recorded.');
23
+ return;
24
+ }
25
+ const { region, trackingId, bufferSize, flushSize, flushInterval } = resolveConfig();
26
+ resolveCredentials()
27
+ .then(async ({ credentials, identityId }) => {
28
+ const timestamp = Date.now();
29
+ const { sessionId: cachedSessionId, userId: cachedUserId } = await resolveCachedSession();
30
+ if (eventType === IDENTIFY_EVENT_TYPE) {
31
+ updateCachedSession(typeof properties.userId === 'string' ? properties.userId : '', cachedSessionId, cachedUserId);
32
+ }
33
+ else if (!!userId) {
34
+ updateCachedSession(userId, cachedSessionId, cachedUserId);
35
+ }
36
+ const { sessionId: updatedSessionId, userId: updatedUserId } = await resolveCachedSession();
37
+ const eventBuffer = getEventBuffer({
38
+ region,
39
+ flushSize,
40
+ flushInterval,
41
+ bufferSize,
42
+ credentials,
43
+ identityId,
44
+ userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
45
+ });
46
+ if (eventType === MEDIA_AUTO_TRACK_EVENT_TYPE) {
47
+ autoTrackMedia({
48
+ trackingId,
49
+ sessionId: updatedSessionId,
50
+ userId: updatedUserId,
51
+ event: {
52
+ eventId,
53
+ eventType,
54
+ properties,
55
+ },
56
+ }, eventBuffer);
57
+ }
58
+ else {
59
+ eventBuffer.append({
60
+ trackingId,
61
+ sessionId: updatedSessionId,
62
+ userId: updatedUserId,
63
+ event: {
64
+ eventId,
65
+ eventType,
66
+ properties,
67
+ },
68
+ timestamp,
69
+ });
70
+ }
71
+ if (eventBuffer.length >= bufferSize) {
72
+ eventBuffer.flushAll();
73
+ }
74
+ })
75
+ .catch(e => {
76
+ logger.warn('Failed to record event.', e);
77
+ });
78
+ };
79
+
80
+ export { record };
81
+ //# sourceMappingURL=record.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record.mjs","sources":["../../../../../src/providers/personalize/apis/record.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { autoTrackMedia, getEventBuffer, resolveCachedSession, resolveConfig, updateCachedSession, } from '../utils';\nimport { getAnalyticsUserAgentString, isAnalyticsEnabled, resolveCredentials, } from '../../../utils';\nimport { AnalyticsAction } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger } from '@aws-amplify/core';\nimport { IDENTIFY_EVENT_TYPE, MEDIA_AUTO_TRACK_EVENT_TYPE, } from '../utils/constants';\nconst logger = new ConsoleLogger('Personalize');\nexport const record = ({ userId, eventId, eventType, properties, }) => {\n if (!isAnalyticsEnabled()) {\n logger.debug('Analytics is disabled, event will not be recorded.');\n return;\n }\n const { region, trackingId, bufferSize, flushSize, flushInterval } = resolveConfig();\n resolveCredentials()\n .then(async ({ credentials, identityId }) => {\n const timestamp = Date.now();\n const { sessionId: cachedSessionId, userId: cachedUserId } = await resolveCachedSession();\n if (eventType === IDENTIFY_EVENT_TYPE) {\n updateCachedSession(typeof properties.userId === 'string' ? properties.userId : '', cachedSessionId, cachedUserId);\n }\n else if (!!userId) {\n updateCachedSession(userId, cachedSessionId, cachedUserId);\n }\n const { sessionId: updatedSessionId, userId: updatedUserId } = await resolveCachedSession();\n const eventBuffer = getEventBuffer({\n region,\n flushSize,\n flushInterval,\n bufferSize,\n credentials,\n identityId,\n userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),\n });\n if (eventType === MEDIA_AUTO_TRACK_EVENT_TYPE) {\n autoTrackMedia({\n trackingId,\n sessionId: updatedSessionId,\n userId: updatedUserId,\n event: {\n eventId,\n eventType,\n properties,\n },\n }, eventBuffer);\n }\n else {\n eventBuffer.append({\n trackingId,\n sessionId: updatedSessionId,\n userId: updatedUserId,\n event: {\n eventId,\n eventType,\n properties,\n },\n timestamp,\n });\n }\n if (eventBuffer.length >= bufferSize) {\n eventBuffer.flushAll();\n }\n })\n .catch(e => {\n logger.warn('Failed to record event.', e);\n });\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AAMA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,aAAa,CAAC,CAAC;AACpC,MAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,GAAG,KAAK;AACvE,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;AAC/B,QAAQ,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;AAC3E,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAAC;AACzF,IAAI,kBAAkB,EAAE;AACxB,SAAS,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK;AACrD,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACrC,QAAQ,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,oBAAoB,EAAE,CAAC;AAClG,QAAQ,IAAI,SAAS,KAAK,mBAAmB,EAAE;AAC/C,YAAY,mBAAmB,CAAC,OAAO,UAAU,CAAC,MAAM,KAAK,QAAQ,GAAG,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;AAC/H,SAAS;AACT,aAAa,IAAI,CAAC,CAAC,MAAM,EAAE;AAC3B,YAAY,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;AACvE,SAAS;AACT,QAAQ,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,oBAAoB,EAAE,CAAC;AACpG,QAAQ,MAAM,WAAW,GAAG,cAAc,CAAC;AAC3C,YAAY,MAAM;AAClB,YAAY,SAAS;AACrB,YAAY,aAAa;AACzB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,cAAc,EAAE,2BAA2B,CAAC,eAAe,CAAC,MAAM,CAAC;AAC/E,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,SAAS,KAAK,2BAA2B,EAAE;AACvD,YAAY,cAAc,CAAC;AAC3B,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS,EAAE,gBAAgB;AAC3C,gBAAgB,MAAM,EAAE,aAAa;AACrC,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,OAAO;AAC3B,oBAAoB,SAAS;AAC7B,oBAAoB,UAAU;AAC9B,iBAAiB;AACjB,aAAa,EAAE,WAAW,CAAC,CAAC;AAC5B,SAAS;AACT,aAAa;AACb,YAAY,WAAW,CAAC,MAAM,CAAC;AAC/B,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS,EAAE,gBAAgB;AAC3C,gBAAgB,MAAM,EAAE,aAAa;AACrC,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,OAAO;AAC3B,oBAAoB,SAAS;AAC7B,oBAAoB,UAAU;AAC9B,iBAAiB;AACjB,gBAAgB,SAAS;AACzB,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,IAAI,WAAW,CAAC,MAAM,IAAI,UAAU,EAAE;AAC9C,YAAY,WAAW,CAAC,QAAQ,EAAE,CAAC;AACnC,SAAS;AACT,KAAK,CAAC;AACN,SAAS,KAAK,CAAC,CAAC,IAAI;AACpB,QAAQ,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;AAClD,KAAK,CAAC,CAAC;AACP;;;;"}
@@ -0,0 +1,3 @@
1
+ export { record } from './apis/record.mjs';
2
+ export { flushEvents } from './apis/flushEvents.mjs';
3
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=buffer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffer.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,181 @@
1
+ import { isBrowser } from '@aws-amplify/core/internals/utils';
2
+ import { ConsoleLogger } from '@aws-amplify/core';
3
+
4
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
5
+ // SPDX-License-Identifier: Apache-2.0
6
+ var HTML5_MEDIA_EVENT;
7
+ (function (HTML5_MEDIA_EVENT) {
8
+ HTML5_MEDIA_EVENT["PLAY"] = "play";
9
+ HTML5_MEDIA_EVENT["PAUSE"] = "pause";
10
+ HTML5_MEDIA_EVENT["ENDED"] = "Ended";
11
+ })(HTML5_MEDIA_EVENT || (HTML5_MEDIA_EVENT = {}));
12
+ var MEDIA_TYPE;
13
+ (function (MEDIA_TYPE) {
14
+ MEDIA_TYPE["IFRAME"] = "IFRAME";
15
+ MEDIA_TYPE["VIDEO"] = "VIDEO";
16
+ MEDIA_TYPE["AUDIO"] = "AUDIO";
17
+ })(MEDIA_TYPE || (MEDIA_TYPE = {}));
18
+ var EVENT_TYPE;
19
+ (function (EVENT_TYPE) {
20
+ EVENT_TYPE["PLAY"] = "Play";
21
+ EVENT_TYPE["ENDED"] = "Ended";
22
+ EVENT_TYPE["PAUSE"] = "Pause";
23
+ EVENT_TYPE["TIME_WATCHED"] = "TimeWatched";
24
+ })(EVENT_TYPE || (EVENT_TYPE = {}));
25
+ const logger = new ConsoleLogger('MediaAutoTrack');
26
+ const startIframeAutoTracking = (element, recordEvent) => {
27
+ let isPlaying = false;
28
+ let player;
29
+ const mediaProperties = () => {
30
+ const duration = Number(parseFloat(player.getDuration()).toFixed(4));
31
+ const currentTime = Number(parseFloat(player.getCurrentTime()).toFixed(4));
32
+ return {
33
+ duration,
34
+ eventValue: Number((currentTime / duration).toFixed(4)),
35
+ };
36
+ };
37
+ const scriptElement = document.createElement('script');
38
+ scriptElement.type = 'text/javascript';
39
+ scriptElement.src = 'https://www.youtube.com/iframe_api';
40
+ document.body.append(scriptElement);
41
+ const timer = setInterval(() => {
42
+ if (isPlaying && player) {
43
+ recordEvent(EVENT_TYPE.TIME_WATCHED, mediaProperties());
44
+ }
45
+ }, 3000);
46
+ element.addEventListener('unload', () => clearInterval(timer));
47
+ // @ts-ignore
48
+ window.onYouTubeIframeAPIReady = () => {
49
+ // @ts-ignore
50
+ delete window.onYouTubeIframeAPIReady;
51
+ // @ts-ignore
52
+ player = new window.YT.Player(element.id, {
53
+ events: {
54
+ onStateChange: (event) => {
55
+ const iframeEventMapping = {
56
+ 0: EVENT_TYPE.ENDED,
57
+ 1: EVENT_TYPE.PLAY,
58
+ 2: EVENT_TYPE.PAUSE,
59
+ };
60
+ // @ts-ignore
61
+ const eventType = iframeEventMapping[event.data];
62
+ switch (eventType) {
63
+ case EVENT_TYPE.ENDED:
64
+ case EVENT_TYPE.PAUSE:
65
+ isPlaying = false;
66
+ break;
67
+ case EVENT_TYPE.PLAY:
68
+ isPlaying = true;
69
+ break;
70
+ }
71
+ if (eventType) {
72
+ recordEvent(eventType, mediaProperties());
73
+ }
74
+ },
75
+ },
76
+ });
77
+ };
78
+ };
79
+ const startHTMLMediaAutoTracking = (element, recordEvent) => {
80
+ let isPlaying = false;
81
+ const mediaProperties = () => ({
82
+ duration: element.duration,
83
+ eventValue: Number((element.currentTime / element.duration).toFixed(4)),
84
+ });
85
+ const timer = setInterval(() => {
86
+ if (isPlaying) {
87
+ recordEvent(EVENT_TYPE.TIME_WATCHED, mediaProperties());
88
+ }
89
+ }, 3000);
90
+ element.addEventListener('unload', () => clearInterval(timer));
91
+ element.addEventListener(HTML5_MEDIA_EVENT.PLAY, () => {
92
+ isPlaying = true;
93
+ recordEvent(EVENT_TYPE.PLAY, mediaProperties());
94
+ });
95
+ element.addEventListener(HTML5_MEDIA_EVENT.PAUSE, () => {
96
+ isPlaying = false;
97
+ recordEvent(EVENT_TYPE.PAUSE, mediaProperties());
98
+ });
99
+ element.addEventListener(HTML5_MEDIA_EVENT.ENDED, () => {
100
+ isPlaying = false;
101
+ recordEvent(EVENT_TYPE.ENDED, mediaProperties());
102
+ });
103
+ };
104
+ const checkElementLoaded = (interval, maxTries) => {
105
+ let retryCount = 0;
106
+ const wait = () => new Promise(r => setTimeout(r, interval));
107
+ const check = async (elementId) => {
108
+ if (retryCount >= maxTries) {
109
+ return false;
110
+ }
111
+ const domElement = document.getElementById(elementId);
112
+ if (domElement && domElement.clientHeight) {
113
+ return true;
114
+ }
115
+ else {
116
+ retryCount += 1;
117
+ await wait();
118
+ return await check(elementId);
119
+ }
120
+ };
121
+ return check;
122
+ };
123
+ const recordEvent = (config, eventBuffer) => (eventType, properties) => {
124
+ // override eventType and merge properties
125
+ eventBuffer.append({
126
+ ...config,
127
+ event: {
128
+ ...config.event,
129
+ eventType,
130
+ properties: {
131
+ ...config.event.properties,
132
+ ...properties,
133
+ },
134
+ },
135
+ timestamp: Date.now(),
136
+ });
137
+ };
138
+ const autoTrackMedia = async (config, eventBuffer) => {
139
+ const { eventType, properties } = config.event;
140
+ const { domElementId, ...otherProperties } = properties;
141
+ if (!isBrowser()) {
142
+ logger.debug(`${eventType} only for browser`);
143
+ return;
144
+ }
145
+ if (typeof domElementId === 'string' && !domElementId) {
146
+ logger.debug("Missing domElementId field in 'properties' for MediaAutoTrack event type.");
147
+ return;
148
+ }
149
+ const elementId = domElementId;
150
+ const isElementLoaded = await checkElementLoaded(500, 5)(elementId);
151
+ if (isElementLoaded) {
152
+ const autoTrackConfigWithoutDomElementId = {
153
+ ...config,
154
+ event: {
155
+ ...config.event,
156
+ properties: otherProperties,
157
+ },
158
+ };
159
+ const element = document.getElementById(elementId);
160
+ switch (element?.tagName) {
161
+ case MEDIA_TYPE.IFRAME:
162
+ startIframeAutoTracking(element, recordEvent(autoTrackConfigWithoutDomElementId, eventBuffer));
163
+ break;
164
+ case MEDIA_TYPE.VIDEO:
165
+ case MEDIA_TYPE.AUDIO:
166
+ if (element instanceof HTMLMediaElement) {
167
+ startHTMLMediaAutoTracking(element, recordEvent(autoTrackConfigWithoutDomElementId, eventBuffer));
168
+ }
169
+ break;
170
+ default:
171
+ logger.debug(`Unsupported DOM element tag: ${element?.tagName}`);
172
+ break;
173
+ }
174
+ }
175
+ else {
176
+ logger.debug('Cannot find the media element.');
177
+ }
178
+ };
179
+
180
+ export { autoTrackMedia };
181
+ //# sourceMappingURL=autoTrackMedia.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoTrackMedia.mjs","sources":["../../../../../src/providers/personalize/utils/autoTrackMedia.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { isBrowser } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger } from '@aws-amplify/core';\nvar HTML5_MEDIA_EVENT;\n(function (HTML5_MEDIA_EVENT) {\n HTML5_MEDIA_EVENT[\"PLAY\"] = \"play\";\n HTML5_MEDIA_EVENT[\"PAUSE\"] = \"pause\";\n HTML5_MEDIA_EVENT[\"ENDED\"] = \"Ended\";\n})(HTML5_MEDIA_EVENT || (HTML5_MEDIA_EVENT = {}));\nvar MEDIA_TYPE;\n(function (MEDIA_TYPE) {\n MEDIA_TYPE[\"IFRAME\"] = \"IFRAME\";\n MEDIA_TYPE[\"VIDEO\"] = \"VIDEO\";\n MEDIA_TYPE[\"AUDIO\"] = \"AUDIO\";\n})(MEDIA_TYPE || (MEDIA_TYPE = {}));\nvar EVENT_TYPE;\n(function (EVENT_TYPE) {\n EVENT_TYPE[\"PLAY\"] = \"Play\";\n EVENT_TYPE[\"ENDED\"] = \"Ended\";\n EVENT_TYPE[\"PAUSE\"] = \"Pause\";\n EVENT_TYPE[\"TIME_WATCHED\"] = \"TimeWatched\";\n})(EVENT_TYPE || (EVENT_TYPE = {}));\nconst logger = new ConsoleLogger('MediaAutoTrack');\nconst startIframeAutoTracking = (element, recordEvent) => {\n let isPlaying = false;\n let player;\n const mediaProperties = () => {\n const duration = Number(parseFloat(player.getDuration()).toFixed(4));\n const currentTime = Number(parseFloat(player.getCurrentTime()).toFixed(4));\n return {\n duration,\n eventValue: Number((currentTime / duration).toFixed(4)),\n };\n };\n const scriptElement = document.createElement('script');\n scriptElement.type = 'text/javascript';\n scriptElement.src = 'https://www.youtube.com/iframe_api';\n document.body.append(scriptElement);\n const timer = setInterval(() => {\n if (isPlaying && player) {\n recordEvent(EVENT_TYPE.TIME_WATCHED, mediaProperties());\n }\n }, 3000);\n element.addEventListener('unload', () => clearInterval(timer));\n // @ts-ignore\n window.onYouTubeIframeAPIReady = () => {\n // @ts-ignore\n delete window.onYouTubeIframeAPIReady;\n // @ts-ignore\n player = new window.YT.Player(element.id, {\n events: {\n onStateChange: (event) => {\n const iframeEventMapping = {\n 0: EVENT_TYPE.ENDED,\n 1: EVENT_TYPE.PLAY,\n 2: EVENT_TYPE.PAUSE,\n };\n // @ts-ignore\n const eventType = iframeEventMapping[event.data];\n switch (eventType) {\n case EVENT_TYPE.ENDED:\n case EVENT_TYPE.PAUSE:\n isPlaying = false;\n break;\n case EVENT_TYPE.PLAY:\n isPlaying = true;\n break;\n }\n if (eventType) {\n recordEvent(eventType, mediaProperties());\n }\n },\n },\n });\n };\n};\nconst startHTMLMediaAutoTracking = (element, recordEvent) => {\n let isPlaying = false;\n const mediaProperties = () => ({\n duration: element.duration,\n eventValue: Number((element.currentTime / element.duration).toFixed(4)),\n });\n const timer = setInterval(() => {\n if (isPlaying) {\n recordEvent(EVENT_TYPE.TIME_WATCHED, mediaProperties());\n }\n }, 3000);\n element.addEventListener('unload', () => clearInterval(timer));\n element.addEventListener(HTML5_MEDIA_EVENT.PLAY, () => {\n isPlaying = true;\n recordEvent(EVENT_TYPE.PLAY, mediaProperties());\n });\n element.addEventListener(HTML5_MEDIA_EVENT.PAUSE, () => {\n isPlaying = false;\n recordEvent(EVENT_TYPE.PAUSE, mediaProperties());\n });\n element.addEventListener(HTML5_MEDIA_EVENT.ENDED, () => {\n isPlaying = false;\n recordEvent(EVENT_TYPE.ENDED, mediaProperties());\n });\n};\nconst checkElementLoaded = (interval, maxTries) => {\n let retryCount = 0;\n const wait = () => new Promise(r => setTimeout(r, interval));\n const check = async (elementId) => {\n if (retryCount >= maxTries) {\n return false;\n }\n const domElement = document.getElementById(elementId);\n if (domElement && domElement.clientHeight) {\n return true;\n }\n else {\n retryCount += 1;\n await wait();\n return await check(elementId);\n }\n };\n return check;\n};\nconst recordEvent = (config, eventBuffer) => (eventType, properties) => {\n // override eventType and merge properties\n eventBuffer.append({\n ...config,\n event: {\n ...config.event,\n eventType,\n properties: {\n ...config.event.properties,\n ...properties,\n },\n },\n timestamp: Date.now(),\n });\n};\nexport const autoTrackMedia = async (config, eventBuffer) => {\n const { eventType, properties } = config.event;\n const { domElementId, ...otherProperties } = properties;\n if (!isBrowser()) {\n logger.debug(`${eventType} only for browser`);\n return;\n }\n if (typeof domElementId === 'string' && !domElementId) {\n logger.debug(\"Missing domElementId field in 'properties' for MediaAutoTrack event type.\");\n return;\n }\n const elementId = domElementId;\n const isElementLoaded = await checkElementLoaded(500, 5)(elementId);\n if (isElementLoaded) {\n const autoTrackConfigWithoutDomElementId = {\n ...config,\n event: {\n ...config.event,\n properties: otherProperties,\n },\n };\n const element = document.getElementById(elementId);\n switch (element?.tagName) {\n case MEDIA_TYPE.IFRAME:\n startIframeAutoTracking(element, recordEvent(autoTrackConfigWithoutDomElementId, eventBuffer));\n break;\n case MEDIA_TYPE.VIDEO:\n case MEDIA_TYPE.AUDIO:\n if (element instanceof HTMLMediaElement) {\n startHTMLMediaAutoTracking(element, recordEvent(autoTrackConfigWithoutDomElementId, eventBuffer));\n }\n break;\n default:\n logger.debug(`Unsupported DOM element tag: ${element?.tagName}`);\n break;\n }\n }\n else {\n logger.debug('Cannot find the media element.');\n }\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { Cache } from '@aws-amplify/core';
2
+ import { amplifyUuid, 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 PERSONALIZE_CACHE_USERID = '_awsct_uid';
7
+ const PERSONALIZE_CACHE_SESSIONID = '_awsct_sid';
8
+ const DEFAULT_CACHE_PREFIX = 'personalize';
9
+ const DELIMITER = '.';
10
+ const CACHE_EXPIRY_IN_DAYS = 7;
11
+ const normalize = (key) => [key, isBrowser() ? window.location.host : DEFAULT_CACHE_PREFIX].join(DELIMITER);
12
+ const getCache = (key) => Cache.getItem(normalize(key));
13
+ const setCache = (key, value) => {
14
+ const expiredAt = new Date(Date.now() + 3600000 * 24 * CACHE_EXPIRY_IN_DAYS);
15
+ Cache.setItem(normalize(key), value, {
16
+ expires: expiredAt.getTime(),
17
+ });
18
+ };
19
+ const resolveCachedSession = async () => {
20
+ let sessionId = await getCache(PERSONALIZE_CACHE_SESSIONID);
21
+ if (!sessionId) {
22
+ sessionId = amplifyUuid();
23
+ setCache(PERSONALIZE_CACHE_SESSIONID, sessionId);
24
+ }
25
+ const userId = await getCache(PERSONALIZE_CACHE_USERID);
26
+ return {
27
+ sessionId,
28
+ userId,
29
+ };
30
+ };
31
+ const updateCachedSession = (newUserId, currentSessionId, currentUserId) => {
32
+ const isNoCachedSession = !currentSessionId;
33
+ const isSignOutCase = !newUserId && !currentUserId;
34
+ const isSwitchUserCase = !!newUserId && !!currentUserId && newUserId !== currentUserId;
35
+ const isRequireNewSession = isNoCachedSession || isSignOutCase || isSwitchUserCase;
36
+ const isRequireUpdateSession = !!currentSessionId && !currentUserId && !!newUserId;
37
+ if (isRequireNewSession) {
38
+ const newSessionId = amplifyUuid();
39
+ setCache(PERSONALIZE_CACHE_SESSIONID, newSessionId);
40
+ setCache(PERSONALIZE_CACHE_USERID, newUserId);
41
+ }
42
+ else if (isRequireUpdateSession) {
43
+ setCache(PERSONALIZE_CACHE_USERID, newUserId);
44
+ }
45
+ };
46
+
47
+ export { resolveCachedSession, updateCachedSession };
48
+ //# sourceMappingURL=cachedSession.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cachedSession.mjs","sources":["../../../../../src/providers/personalize/utils/cachedSession.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Cache } from '@aws-amplify/core';\nimport { isBrowser, amplifyUuid } from '@aws-amplify/core/internals/utils';\nconst PERSONALIZE_CACHE_USERID = '_awsct_uid';\nconst PERSONALIZE_CACHE_SESSIONID = '_awsct_sid';\nconst DEFAULT_CACHE_PREFIX = 'personalize';\nconst DELIMITER = '.';\nconst CACHE_EXPIRY_IN_DAYS = 7;\nconst normalize = (key) => [key, isBrowser() ? window.location.host : DEFAULT_CACHE_PREFIX].join(DELIMITER);\nconst getCache = (key) => Cache.getItem(normalize(key));\nconst setCache = (key, value) => {\n const expiredAt = new Date(Date.now() + 3600000 * 24 * CACHE_EXPIRY_IN_DAYS);\n Cache.setItem(normalize(key), value, {\n expires: expiredAt.getTime(),\n });\n};\nexport const resolveCachedSession = async () => {\n let sessionId = await getCache(PERSONALIZE_CACHE_SESSIONID);\n if (!sessionId) {\n sessionId = amplifyUuid();\n setCache(PERSONALIZE_CACHE_SESSIONID, sessionId);\n }\n const userId = await getCache(PERSONALIZE_CACHE_USERID);\n return {\n sessionId,\n userId,\n };\n};\nexport const updateCachedSession = (newUserId, currentSessionId, currentUserId) => {\n const isNoCachedSession = !currentSessionId;\n const isSignOutCase = !newUserId && !currentUserId;\n const isSwitchUserCase = !!newUserId && !!currentUserId && newUserId !== currentUserId;\n const isRequireNewSession = isNoCachedSession || isSignOutCase || isSwitchUserCase;\n const isRequireUpdateSession = !!currentSessionId && !currentUserId && !!newUserId;\n if (isRequireNewSession) {\n const newSessionId = amplifyUuid();\n setCache(PERSONALIZE_CACHE_SESSIONID, newSessionId);\n setCache(PERSONALIZE_CACHE_USERID, newUserId);\n }\n else if (isRequireUpdateSession) {\n setCache(PERSONALIZE_CACHE_USERID, newUserId);\n }\n};\n"],"names":[],"mappings":";;;AAAA;AACA;AAGA,MAAM,wBAAwB,GAAG,YAAY,CAAC;AAC9C,MAAM,2BAA2B,GAAG,YAAY,CAAC;AACjD,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAC3C,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5G,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACxD,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;AACjC,IAAI,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,oBAAoB,CAAC,CAAC;AACjF,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE;AACzC,QAAQ,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE;AACpC,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACU,MAAC,oBAAoB,GAAG,YAAY;AAChD,IAAI,IAAI,SAAS,GAAG,MAAM,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AAChE,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,QAAQ,SAAS,GAAG,WAAW,EAAE,CAAC;AAClC,QAAQ,QAAQ,CAAC,2BAA2B,EAAE,SAAS,CAAC,CAAC;AACzD,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AAC5D,IAAI,OAAO;AACX,QAAQ,SAAS;AACjB,QAAQ,MAAM;AACd,KAAK,CAAC;AACN,EAAE;AACU,MAAC,mBAAmB,GAAG,CAAC,SAAS,EAAE,gBAAgB,EAAE,aAAa,KAAK;AACnF,IAAI,MAAM,iBAAiB,GAAG,CAAC,gBAAgB,CAAC;AAChD,IAAI,MAAM,aAAa,GAAG,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC;AACvD,IAAI,MAAM,gBAAgB,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,aAAa,IAAI,SAAS,KAAK,aAAa,CAAC;AAC3F,IAAI,MAAM,mBAAmB,GAAG,iBAAiB,IAAI,aAAa,IAAI,gBAAgB,CAAC;AACvF,IAAI,MAAM,sBAAsB,GAAG,CAAC,CAAC,gBAAgB,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,SAAS,CAAC;AACvF,IAAI,IAAI,mBAAmB,EAAE;AAC7B,QAAQ,MAAM,YAAY,GAAG,WAAW,EAAE,CAAC;AAC3C,QAAQ,QAAQ,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAAC;AAC5D,QAAQ,QAAQ,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;AACtD,KAAK;AACL,SAAS,IAAI,sBAAsB,EAAE;AACrC,QAAQ,QAAQ,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;AACtD,KAAK;AACL;;;;"}
@@ -0,0 +1,12 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ const DEFAULT_PERSONALIZE_CONFIG = {
4
+ flushSize: 5,
5
+ flushInterval: 5000,
6
+ };
7
+ const PERSONALIZE_FLUSH_SIZE_MAX = 10;
8
+ const IDENTIFY_EVENT_TYPE = 'Identify';
9
+ const MEDIA_AUTO_TRACK_EVENT_TYPE = 'MediaAutoTrack';
10
+
11
+ export { DEFAULT_PERSONALIZE_CONFIG, IDENTIFY_EVENT_TYPE, MEDIA_AUTO_TRACK_EVENT_TYPE, PERSONALIZE_FLUSH_SIZE_MAX };
12
+ //# sourceMappingURL=constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.mjs","sources":["../../../../../src/providers/personalize/utils/constants.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const DEFAULT_PERSONALIZE_CONFIG = {\n flushSize: 5,\n flushInterval: 5000,\n};\nexport const PERSONALIZE_FLUSH_SIZE_MAX = 10;\nexport const IDENTIFY_EVENT_TYPE = 'Identify';\nexport const MEDIA_AUTO_TRACK_EVENT_TYPE = 'MediaAutoTrack';\n"],"names":[],"mappings":"AAAA;AACA;AACY,MAAC,0BAA0B,GAAG;AAC1C,IAAI,SAAS,EAAE,CAAC;AAChB,IAAI,aAAa,EAAE,IAAI;AACvB,EAAE;AACU,MAAC,0BAA0B,GAAG,GAAG;AACjC,MAAC,mBAAmB,GAAG,WAAW;AAClC,MAAC,2BAA2B,GAAG;;;;"}