@aws-amplify/analytics 7.0.1-preview-testing.034e780.0 → 7.0.1-server-generate-client.1e317a1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) hide show
  1. package/kinesis/package.json +7 -0
  2. package/kinesis-firehose/package.json +7 -0
  3. package/lib/apis/disable.d.ts +8 -0
  4. package/lib/apis/disable.js +14 -0
  5. package/lib/apis/enable.d.ts +7 -0
  6. package/lib/apis/enable.js +13 -0
  7. package/lib/apis/index.d.ts +2 -0
  8. package/lib/apis/index.js +9 -0
  9. package/lib/errors/AnalyticsError.d.ts +2 -2
  10. package/lib/errors/assertValidationError.d.ts +1 -1
  11. package/lib/errors/assertValidationError.js +7 -3
  12. package/lib/errors/validation.d.ts +5 -2
  13. package/lib/errors/validation.js +16 -4
  14. package/lib/index.d.ts +2 -1
  15. package/lib/index.js +6 -1
  16. package/lib/providers/kinesis/apis/flushEvents.d.ts +8 -0
  17. package/lib/providers/kinesis/apis/flushEvents.js +38 -0
  18. package/lib/providers/kinesis/apis/index.d.ts +2 -0
  19. package/lib/providers/kinesis/apis/index.js +9 -0
  20. package/lib/providers/kinesis/apis/record.d.ts +2 -0
  21. package/lib/providers/kinesis/apis/record.js +48 -0
  22. package/lib/providers/kinesis/index.d.ts +1 -0
  23. package/lib/providers/kinesis/index.js +8 -0
  24. package/lib/providers/kinesis/types/buffer.d.ts +15 -0
  25. package/lib/providers/kinesis/types/buffer.js +4 -0
  26. package/lib/providers/kinesis/types/index.d.ts +2 -0
  27. package/lib/providers/kinesis/types/index.js +4 -0
  28. package/lib/providers/kinesis/types/inputs.d.ts +6 -0
  29. package/lib/providers/kinesis/types/inputs.js +4 -0
  30. package/lib/providers/kinesis/utils/constants.d.ts +6 -0
  31. package/lib/providers/kinesis/utils/constants.js +11 -0
  32. package/lib/providers/kinesis/utils/getEventBuffer.d.ts +3 -0
  33. package/lib/providers/kinesis/utils/getEventBuffer.js +103 -0
  34. package/lib/providers/kinesis/utils/resolveConfig.d.ts +7 -0
  35. package/lib/providers/kinesis/utils/resolveConfig.js +24 -0
  36. package/lib/providers/kinesis-firehose/apis/flushEvents.d.ts +8 -0
  37. package/lib/providers/kinesis-firehose/apis/flushEvents.js +37 -0
  38. package/lib/providers/kinesis-firehose/apis/index.d.ts +2 -0
  39. package/lib/providers/kinesis-firehose/apis/index.js +9 -0
  40. package/lib/providers/kinesis-firehose/apis/record.d.ts +2 -0
  41. package/lib/providers/kinesis-firehose/apis/record.js +45 -0
  42. package/lib/providers/kinesis-firehose/index.d.ts +1 -0
  43. package/lib/providers/kinesis-firehose/index.js +8 -0
  44. package/lib/providers/kinesis-firehose/types/buffer.d.ts +15 -0
  45. package/lib/providers/kinesis-firehose/types/index.d.ts +2 -0
  46. package/lib/providers/kinesis-firehose/types/index.js +4 -0
  47. package/lib/providers/kinesis-firehose/types/inputs.d.ts +5 -0
  48. package/lib/providers/kinesis-firehose/types/inputs.js +4 -0
  49. package/lib/providers/kinesis-firehose/utils/constants.d.ts +6 -0
  50. package/lib/providers/kinesis-firehose/utils/constants.js +11 -0
  51. package/lib/providers/kinesis-firehose/utils/getEventBuffer.d.ts +3 -0
  52. package/lib/providers/kinesis-firehose/utils/getEventBuffer.js +100 -0
  53. package/lib/providers/kinesis-firehose/utils/index.d.ts +2 -0
  54. package/lib/providers/kinesis-firehose/utils/index.js +9 -0
  55. package/lib/providers/kinesis-firehose/utils/resolveConfig.d.ts +7 -0
  56. package/lib/providers/kinesis-firehose/utils/resolveConfig.js +24 -0
  57. package/lib/providers/personalize/apis/flushEvents.d.ts +8 -0
  58. package/lib/providers/personalize/apis/flushEvents.js +36 -0
  59. package/lib/providers/personalize/apis/index.d.ts +2 -0
  60. package/lib/providers/personalize/apis/index.js +9 -0
  61. package/lib/providers/personalize/apis/record.d.ts +2 -0
  62. package/lib/providers/personalize/apis/record.js +87 -0
  63. package/lib/providers/personalize/index.d.ts +1 -0
  64. package/lib/providers/personalize/index.js +8 -0
  65. package/lib/providers/personalize/types/buffer.d.ts +16 -0
  66. package/lib/providers/personalize/types/buffer.js +4 -0
  67. package/lib/providers/personalize/types/index.d.ts +2 -0
  68. package/lib/providers/personalize/types/index.js +4 -0
  69. package/lib/providers/personalize/types/inputs.d.ts +7 -0
  70. package/lib/providers/personalize/types/inputs.js +4 -0
  71. package/lib/providers/personalize/utils/autoTrackMedia.d.ts +10 -0
  72. package/lib/providers/personalize/utils/autoTrackMedia.js +183 -0
  73. package/lib/providers/personalize/utils/cachedSession.d.ts +5 -0
  74. package/lib/providers/personalize/utils/cachedSession.js +61 -0
  75. package/lib/providers/personalize/utils/constants.d.ts +7 -0
  76. package/lib/providers/personalize/utils/constants.js +12 -0
  77. package/lib/providers/personalize/utils/getEventBuffer.d.ts +3 -0
  78. package/lib/providers/personalize/utils/getEventBuffer.js +100 -0
  79. package/lib/providers/personalize/utils/index.d.ts +5 -0
  80. package/lib/providers/personalize/utils/index.js +17 -0
  81. package/lib/providers/personalize/utils/resolveConfig.d.ts +7 -0
  82. package/lib/providers/personalize/utils/resolveConfig.js +25 -0
  83. package/lib/providers/pinpoint/apis/configureAutoTrack.d.ts +15 -0
  84. package/lib/providers/pinpoint/apis/configureAutoTrack.js +35 -0
  85. package/lib/providers/pinpoint/apis/flushEvents.d.ts +8 -0
  86. package/lib/providers/pinpoint/apis/flushEvents.js +28 -0
  87. package/lib/providers/pinpoint/apis/identifyUser.d.ts +7 -5
  88. package/lib/providers/pinpoint/apis/identifyUser.js +15 -11
  89. package/lib/providers/pinpoint/apis/index.d.ts +2 -0
  90. package/lib/providers/pinpoint/apis/index.js +5 -1
  91. package/lib/providers/pinpoint/apis/record.d.ts +8 -14
  92. package/lib/providers/pinpoint/apis/record.js +22 -24
  93. package/lib/providers/pinpoint/index.d.ts +2 -2
  94. package/lib/providers/pinpoint/index.js +3 -1
  95. package/lib/providers/pinpoint/types/index.d.ts +2 -2
  96. package/lib/providers/pinpoint/types/index.js +0 -3
  97. package/lib/providers/pinpoint/types/inputs.d.ts +8 -17
  98. package/lib/providers/pinpoint/types/options.d.ts +5 -0
  99. package/lib/providers/pinpoint/types/options.js +4 -0
  100. package/lib/providers/pinpoint/utils/resolveCredentials.d.ts +1 -6
  101. package/lib/trackers/EventTracker.d.ts +10 -0
  102. package/lib/trackers/EventTracker.js +104 -0
  103. package/lib/trackers/PageViewTracker.d.ts +18 -0
  104. package/lib/trackers/PageViewTracker.js +116 -0
  105. package/lib/trackers/SessionTracker.d.ts +13 -0
  106. package/lib/trackers/SessionTracker.js +73 -0
  107. package/lib/trackers/SessionTracker.native.d.ts +13 -0
  108. package/lib/trackers/SessionTracker.native.js +73 -0
  109. package/lib/trackers/index.d.ts +3 -0
  110. package/lib/trackers/index.js +11 -0
  111. package/lib/tsconfig.tsbuildinfo +1 -1
  112. package/lib/types/index.d.ts +3 -1
  113. package/lib/types/index.js +0 -2
  114. package/lib/types/inputs.d.ts +35 -0
  115. package/lib/types/inputs.js +4 -0
  116. package/lib/types/kinesis.d.ts +8 -0
  117. package/lib/types/kinesis.js +4 -0
  118. package/lib/types/options.d.ts +4 -0
  119. package/lib/types/options.js +4 -0
  120. package/lib/types/trackers.d.ts +22 -0
  121. package/lib/types/trackers.js +4 -0
  122. package/lib/utils/eventBuffer/EventBuffer.d.ts +16 -0
  123. package/lib/utils/eventBuffer/EventBuffer.js +91 -0
  124. package/lib/utils/eventBuffer/index.d.ts +2 -0
  125. package/lib/utils/eventBuffer/index.js +7 -0
  126. package/lib/utils/eventBuffer/types.d.ts +8 -0
  127. package/lib/utils/eventBuffer/types.js +4 -0
  128. package/lib/utils/groupBy.d.ts +1 -0
  129. package/lib/utils/groupBy.js +15 -0
  130. package/lib/utils/index.d.ts +7 -0
  131. package/lib/utils/index.js +22 -0
  132. package/lib/utils/resolveCredentials.d.ts +4 -0
  133. package/lib/utils/resolveCredentials.js +21 -0
  134. package/lib/utils/statusHelpers.d.ts +6 -0
  135. package/lib/utils/statusHelpers.js +19 -0
  136. package/lib/utils/trackerConfigHelpers.d.ts +5 -0
  137. package/lib/utils/trackerConfigHelpers.js +15 -0
  138. package/lib/utils/trackerConfigHelpers.native.d.ts +5 -0
  139. package/lib/utils/trackerConfigHelpers.native.js +14 -0
  140. package/lib/utils/trackerHelpers.d.ts +9 -0
  141. package/lib/utils/trackerHelpers.js +44 -0
  142. package/lib-esm/apis/disable.d.ts +8 -0
  143. package/lib-esm/apis/disable.js +11 -0
  144. package/lib-esm/apis/enable.d.ts +7 -0
  145. package/lib-esm/apis/enable.js +10 -0
  146. package/lib-esm/apis/index.d.ts +2 -0
  147. package/lib-esm/apis/index.js +4 -0
  148. package/lib-esm/errors/AnalyticsError.d.ts +2 -2
  149. package/lib-esm/errors/AnalyticsError.js +1 -1
  150. package/lib-esm/errors/assertValidationError.d.ts +1 -1
  151. package/lib-esm/errors/assertValidationError.js +7 -3
  152. package/lib-esm/errors/validation.d.ts +5 -2
  153. package/lib-esm/errors/validation.js +16 -4
  154. package/lib-esm/index.d.ts +2 -1
  155. package/lib-esm/index.js +2 -1
  156. package/lib-esm/providers/kinesis/apis/flushEvents.d.ts +8 -0
  157. package/lib-esm/providers/kinesis/apis/flushEvents.js +34 -0
  158. package/lib-esm/providers/kinesis/apis/index.d.ts +2 -0
  159. package/lib-esm/providers/kinesis/apis/index.js +4 -0
  160. package/lib-esm/providers/kinesis/apis/record.d.ts +2 -0
  161. package/lib-esm/providers/kinesis/apis/record.js +44 -0
  162. package/lib-esm/providers/kinesis/index.d.ts +1 -0
  163. package/lib-esm/providers/kinesis/index.js +3 -0
  164. package/lib-esm/providers/kinesis/types/buffer.d.ts +15 -0
  165. package/lib-esm/providers/kinesis/types/buffer.js +3 -0
  166. package/lib-esm/providers/kinesis/types/index.d.ts +2 -0
  167. package/lib-esm/providers/kinesis/types/index.js +3 -0
  168. package/lib-esm/providers/kinesis/types/inputs.d.ts +6 -0
  169. package/lib-esm/providers/kinesis/types/inputs.js +3 -0
  170. package/lib-esm/providers/kinesis/utils/constants.d.ts +6 -0
  171. package/lib-esm/providers/kinesis/utils/constants.js +8 -0
  172. package/lib-esm/providers/kinesis/utils/getEventBuffer.d.ts +3 -0
  173. package/lib-esm/providers/kinesis/utils/getEventBuffer.js +99 -0
  174. package/lib-esm/providers/kinesis/utils/resolveConfig.d.ts +7 -0
  175. package/lib-esm/providers/kinesis/utils/resolveConfig.js +20 -0
  176. package/lib-esm/providers/kinesis-firehose/apis/flushEvents.d.ts +8 -0
  177. package/lib-esm/providers/kinesis-firehose/apis/flushEvents.js +33 -0
  178. package/lib-esm/providers/kinesis-firehose/apis/index.d.ts +2 -0
  179. package/lib-esm/providers/kinesis-firehose/apis/index.js +4 -0
  180. package/lib-esm/providers/kinesis-firehose/apis/record.d.ts +2 -0
  181. package/lib-esm/providers/kinesis-firehose/apis/record.js +41 -0
  182. package/lib-esm/providers/kinesis-firehose/index.d.ts +1 -0
  183. package/lib-esm/providers/kinesis-firehose/index.js +3 -0
  184. package/lib-esm/providers/kinesis-firehose/types/buffer.d.ts +15 -0
  185. package/lib-esm/providers/kinesis-firehose/types/index.d.ts +2 -0
  186. package/lib-esm/providers/kinesis-firehose/types/index.js +3 -0
  187. package/lib-esm/providers/kinesis-firehose/types/inputs.d.ts +5 -0
  188. package/lib-esm/providers/kinesis-firehose/types/inputs.js +3 -0
  189. package/lib-esm/providers/kinesis-firehose/utils/constants.d.ts +6 -0
  190. package/lib-esm/providers/kinesis-firehose/utils/constants.js +8 -0
  191. package/lib-esm/providers/kinesis-firehose/utils/getEventBuffer.d.ts +3 -0
  192. package/lib-esm/providers/kinesis-firehose/utils/getEventBuffer.js +96 -0
  193. package/lib-esm/providers/kinesis-firehose/utils/index.d.ts +2 -0
  194. package/lib-esm/providers/kinesis-firehose/utils/index.js +4 -0
  195. package/lib-esm/providers/kinesis-firehose/utils/resolveConfig.d.ts +7 -0
  196. package/lib-esm/providers/kinesis-firehose/utils/resolveConfig.js +20 -0
  197. package/lib-esm/providers/personalize/apis/flushEvents.d.ts +8 -0
  198. package/lib-esm/providers/personalize/apis/flushEvents.js +32 -0
  199. package/lib-esm/providers/personalize/apis/index.d.ts +2 -0
  200. package/lib-esm/providers/personalize/apis/index.js +4 -0
  201. package/lib-esm/providers/personalize/apis/record.d.ts +2 -0
  202. package/lib-esm/providers/personalize/apis/record.js +83 -0
  203. package/lib-esm/providers/personalize/index.d.ts +1 -0
  204. package/lib-esm/providers/personalize/index.js +3 -0
  205. package/lib-esm/providers/personalize/types/buffer.d.ts +16 -0
  206. package/lib-esm/providers/personalize/types/buffer.js +3 -0
  207. package/lib-esm/providers/personalize/types/index.d.ts +2 -0
  208. package/lib-esm/providers/personalize/types/index.js +3 -0
  209. package/lib-esm/providers/personalize/types/inputs.d.ts +7 -0
  210. package/lib-esm/providers/personalize/types/inputs.js +3 -0
  211. package/lib-esm/providers/personalize/utils/autoTrackMedia.d.ts +10 -0
  212. package/lib-esm/providers/personalize/utils/autoTrackMedia.js +179 -0
  213. package/lib-esm/providers/personalize/utils/cachedSession.d.ts +5 -0
  214. package/lib-esm/providers/personalize/utils/cachedSession.js +56 -0
  215. package/lib-esm/providers/personalize/utils/constants.d.ts +7 -0
  216. package/lib-esm/providers/personalize/utils/constants.js +9 -0
  217. package/lib-esm/providers/personalize/utils/getEventBuffer.d.ts +3 -0
  218. package/lib-esm/providers/personalize/utils/getEventBuffer.js +96 -0
  219. package/lib-esm/providers/personalize/utils/index.d.ts +5 -0
  220. package/lib-esm/providers/personalize/utils/index.js +7 -0
  221. package/lib-esm/providers/personalize/utils/resolveConfig.d.ts +7 -0
  222. package/lib-esm/providers/personalize/utils/resolveConfig.js +21 -0
  223. package/lib-esm/providers/pinpoint/apis/configureAutoTrack.d.ts +15 -0
  224. package/lib-esm/providers/pinpoint/apis/configureAutoTrack.js +31 -0
  225. package/lib-esm/providers/pinpoint/apis/flushEvents.d.ts +8 -0
  226. package/lib-esm/providers/pinpoint/apis/flushEvents.js +24 -0
  227. package/lib-esm/providers/pinpoint/apis/identifyUser.d.ts +7 -5
  228. package/lib-esm/providers/pinpoint/apis/identifyUser.js +13 -9
  229. package/lib-esm/providers/pinpoint/apis/index.d.ts +2 -0
  230. package/lib-esm/providers/pinpoint/apis/index.js +2 -0
  231. package/lib-esm/providers/pinpoint/apis/record.d.ts +8 -14
  232. package/lib-esm/providers/pinpoint/apis/record.js +20 -22
  233. package/lib-esm/providers/pinpoint/index.d.ts +2 -2
  234. package/lib-esm/providers/pinpoint/index.js +1 -1
  235. package/lib-esm/providers/pinpoint/types/index.d.ts +2 -2
  236. package/lib-esm/providers/pinpoint/types/index.js +1 -1
  237. package/lib-esm/providers/pinpoint/types/inputs.d.ts +8 -17
  238. package/lib-esm/providers/pinpoint/types/options.d.ts +5 -0
  239. package/lib-esm/providers/pinpoint/types/options.js +3 -0
  240. package/lib-esm/providers/pinpoint/utils/resolveCredentials.d.ts +1 -6
  241. package/lib-esm/trackers/EventTracker.d.ts +10 -0
  242. package/lib-esm/trackers/EventTracker.js +101 -0
  243. package/lib-esm/trackers/PageViewTracker.d.ts +18 -0
  244. package/lib-esm/trackers/PageViewTracker.js +113 -0
  245. package/lib-esm/trackers/SessionTracker.d.ts +13 -0
  246. package/lib-esm/trackers/SessionTracker.js +70 -0
  247. package/lib-esm/trackers/SessionTracker.native.d.ts +13 -0
  248. package/lib-esm/trackers/SessionTracker.native.js +70 -0
  249. package/lib-esm/trackers/index.d.ts +3 -0
  250. package/lib-esm/trackers/index.js +5 -0
  251. package/lib-esm/tsconfig.tsbuildinfo +1 -1
  252. package/lib-esm/types/index.d.ts +3 -1
  253. package/lib-esm/types/index.js +1 -1
  254. package/lib-esm/types/inputs.d.ts +35 -0
  255. package/lib-esm/types/inputs.js +3 -0
  256. package/lib-esm/types/kinesis.d.ts +8 -0
  257. package/lib-esm/types/kinesis.js +3 -0
  258. package/lib-esm/types/options.d.ts +4 -0
  259. package/lib-esm/types/options.js +3 -0
  260. package/lib-esm/types/trackers.d.ts +22 -0
  261. package/lib-esm/types/trackers.js +3 -0
  262. package/lib-esm/utils/eventBuffer/EventBuffer.d.ts +16 -0
  263. package/lib-esm/utils/eventBuffer/EventBuffer.js +88 -0
  264. package/lib-esm/utils/eventBuffer/index.d.ts +2 -0
  265. package/lib-esm/utils/eventBuffer/index.js +3 -0
  266. package/lib-esm/utils/eventBuffer/types.d.ts +8 -0
  267. package/lib-esm/utils/eventBuffer/types.js +3 -0
  268. package/lib-esm/utils/groupBy.d.ts +1 -0
  269. package/lib-esm/utils/groupBy.js +11 -0
  270. package/lib-esm/utils/index.d.ts +7 -0
  271. package/lib-esm/utils/index.js +9 -0
  272. package/lib-esm/utils/resolveCredentials.d.ts +4 -0
  273. package/lib-esm/utils/resolveCredentials.js +17 -0
  274. package/lib-esm/utils/statusHelpers.d.ts +6 -0
  275. package/lib-esm/utils/statusHelpers.js +13 -0
  276. package/lib-esm/utils/trackerConfigHelpers.d.ts +5 -0
  277. package/lib-esm/utils/trackerConfigHelpers.js +11 -0
  278. package/lib-esm/utils/trackerConfigHelpers.native.d.ts +5 -0
  279. package/lib-esm/utils/trackerConfigHelpers.native.js +10 -0
  280. package/lib-esm/utils/trackerHelpers.d.ts +9 -0
  281. package/lib-esm/utils/trackerHelpers.js +40 -0
  282. package/package.json +39 -9
  283. package/personalize/package.json +7 -0
  284. package/src/apis/disable.ts +13 -0
  285. package/src/apis/enable.ts +12 -0
  286. package/src/apis/index.ts +5 -0
  287. package/src/errors/AnalyticsError.ts +5 -2
  288. package/src/errors/assertValidationError.ts +9 -3
  289. package/src/errors/validation.ts +16 -4
  290. package/src/index.ts +4 -0
  291. package/src/providers/kinesis/apis/flushEvents.ts +40 -0
  292. package/src/providers/kinesis/apis/index.ts +5 -0
  293. package/src/providers/kinesis/apis/record.ts +58 -0
  294. package/src/providers/kinesis/index.ts +4 -0
  295. package/src/providers/kinesis/types/buffer.ts +20 -0
  296. package/src/providers/kinesis/types/index.ts +5 -0
  297. package/src/providers/kinesis/types/inputs.ts +10 -0
  298. package/src/providers/kinesis/utils/constants.ts +9 -0
  299. package/src/providers/kinesis/utils/getEventBuffer.ts +110 -0
  300. package/src/providers/kinesis/utils/resolveConfig.ts +36 -0
  301. package/src/providers/kinesis-firehose/apis/flushEvents.ts +39 -0
  302. package/src/providers/kinesis-firehose/apis/index.ts +5 -0
  303. package/src/providers/kinesis-firehose/apis/record.ts +51 -0
  304. package/src/providers/kinesis-firehose/index.ts +4 -0
  305. package/src/providers/kinesis-firehose/types/buffer.ts +20 -0
  306. package/src/providers/kinesis-firehose/types/index.ts +9 -0
  307. package/src/providers/kinesis-firehose/types/inputs.ts +9 -0
  308. package/src/providers/kinesis-firehose/utils/constants.ts +9 -0
  309. package/src/providers/kinesis-firehose/utils/getEventBuffer.ts +118 -0
  310. package/src/providers/kinesis-firehose/utils/index.ts +5 -0
  311. package/src/providers/kinesis-firehose/utils/resolveConfig.ts +36 -0
  312. package/src/providers/personalize/apis/flushEvents.ts +37 -0
  313. package/src/providers/personalize/apis/index.ts +5 -0
  314. package/src/providers/personalize/apis/record.ts +102 -0
  315. package/src/providers/personalize/index.ts +4 -0
  316. package/src/providers/personalize/types/buffer.ts +21 -0
  317. package/src/providers/personalize/types/index.ts +5 -0
  318. package/src/providers/personalize/types/inputs.ts +11 -0
  319. package/src/providers/personalize/utils/autoTrackMedia.ts +232 -0
  320. package/src/providers/personalize/utils/cachedSession.ts +68 -0
  321. package/src/providers/personalize/utils/constants.ts +12 -0
  322. package/src/providers/personalize/utils/getEventBuffer.ts +111 -0
  323. package/src/providers/personalize/utils/index.ts +11 -0
  324. package/src/providers/personalize/utils/resolveConfig.ts +41 -0
  325. package/src/providers/pinpoint/apis/configureAutoTrack.ts +49 -0
  326. package/src/providers/pinpoint/apis/flushEvents.ts +32 -0
  327. package/src/providers/pinpoint/apis/identifyUser.ts +20 -12
  328. package/src/providers/pinpoint/apis/index.ts +2 -0
  329. package/src/providers/pinpoint/apis/record.ts +31 -23
  330. package/src/providers/pinpoint/index.ts +6 -2
  331. package/src/providers/pinpoint/types/index.ts +6 -2
  332. package/src/providers/pinpoint/types/inputs.ts +11 -17
  333. package/src/providers/pinpoint/types/options.ts +12 -0
  334. package/src/trackers/EventTracker.ts +135 -0
  335. package/src/trackers/PageViewTracker.ts +160 -0
  336. package/src/trackers/SessionTracker.native.ts +106 -0
  337. package/src/trackers/SessionTracker.ts +106 -0
  338. package/src/trackers/index.ts +6 -0
  339. package/src/types/index.ts +8 -1
  340. package/src/types/inputs.ts +52 -0
  341. package/src/types/kinesis.ts +13 -0
  342. package/src/types/options.ts +7 -0
  343. package/src/types/trackers.ts +35 -0
  344. package/src/utils/eventBuffer/EventBuffer.ts +84 -0
  345. package/src/utils/eventBuffer/index.ts +5 -0
  346. package/src/utils/eventBuffer/types.ts +12 -0
  347. package/src/utils/groupBy.ts +12 -0
  348. package/src/utils/index.ts +21 -0
  349. package/src/utils/resolveCredentials.ts +14 -0
  350. package/src/utils/statusHelpers.ts +17 -0
  351. package/src/utils/trackerConfigHelpers.native.ts +18 -0
  352. package/src/utils/trackerConfigHelpers.ts +19 -0
  353. package/src/utils/trackerHelpers.ts +57 -0
  354. package/lib/providers/pinpoint/types/errors.d.ts +0 -9
  355. package/lib/providers/pinpoint/types/errors.js +0 -15
  356. package/lib/types/analytics.d.ts +0 -50
  357. package/lib-esm/providers/pinpoint/types/errors.d.ts +0 -9
  358. package/lib-esm/providers/pinpoint/types/errors.js +0 -12
  359. package/lib-esm/types/analytics.d.ts +0 -50
  360. package/src/providers/pinpoint/types/errors.ts +0 -12
  361. package/src/types/analytics.ts +0 -70
  362. /package/lib/{types/analytics.js → providers/kinesis-firehose/types/buffer.js} +0 -0
  363. /package/lib-esm/{types/analytics.js → providers/kinesis-firehose/types/buffer.js} +0 -0
@@ -0,0 +1,32 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { resolveConfig, resolveCredentials } from '../utils';
5
+ import { flushEvents as flushEventsCore } from '@aws-amplify/core/internals/providers/pinpoint';
6
+ import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
7
+ import { ConsoleLogger } from '@aws-amplify/core';
8
+ import { getAnalyticsUserAgentString } from '../../../utils';
9
+
10
+ const logger = new ConsoleLogger('Analytics');
11
+
12
+ /**
13
+ * Flushes all buffered Pinpoint events to the service.
14
+ *
15
+ * @note
16
+ * This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking
17
+ * this API may not be included in the flush.
18
+ */
19
+ export const flushEvents = () => {
20
+ const { appId, region } = resolveConfig();
21
+ resolveCredentials()
22
+ .then(({ credentials, identityId }) =>
23
+ flushEventsCore(
24
+ appId,
25
+ region,
26
+ credentials,
27
+ identityId,
28
+ getAnalyticsUserAgentString(AnalyticsAction.Record)
29
+ )
30
+ )
31
+ .catch(e => logger.warn('Failed to flush events', e));
32
+ };
@@ -2,10 +2,13 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
5
- import { updateEndpoint } from '@aws-amplify/core/internals/providers/pinpoint';
5
+ import {
6
+ updateEndpoint,
7
+ UpdateEndpointException,
8
+ } from '@aws-amplify/core/internals/providers/pinpoint';
6
9
  import { AnalyticsValidationErrorCode } from '../../../errors';
7
- import { getAnalyticsUserAgentString } from '../../../utils/userAgent';
8
- import { IdentifyUserInput, UpdateEndpointException } from '../types';
10
+ import { getAnalyticsUserAgentString } from '../../../utils';
11
+ import { IdentifyUserInput } from '../types';
9
12
  import { resolveConfig, resolveCredentials } from '../utils';
10
13
 
11
14
  /**
@@ -17,32 +20,34 @@ import { resolveConfig, resolveCredentials } from '../utils';
17
20
  * API.
18
21
  *
19
22
  * @throws service: {@link UpdateEndpointException} - Thrown when the underlying Pinpoint service returns an error.
20
- * @throws validation: {@link AnalyticsValidationErrorCode} - Thrown when the provided parameters or library
23
+ * @throws validation: {@link AnalyticsValidationErrorCode} - Thrown when the provided parameters or library
21
24
  * configuration is incorrect.
22
- *
25
+ *
23
26
  * @returns A promise that will resolve when the operation is complete.
24
- *
27
+ *
25
28
  * @example
26
29
  * ```ts
27
30
  * // Identify a user with Pinpoint
28
31
  * await identifyUser({
29
32
  * userId,
30
33
  * userProfile: {
31
- * attributes: {
32
- * email: [userEmail],
34
+ * email: 'userEmail@example.com'
35
+ * customProperties: {
36
+ * phoneNumber: ['555-555-5555'],
33
37
  * },
34
38
  * }
35
39
  * });
36
40
  * ```
37
- *
41
+ *
38
42
  * @example
39
43
  * ```ts
40
44
  * // Identify a user with Pinpoint with some additional demographics
41
45
  * await identifyUser({
42
46
  * userId,
43
47
  * userProfile: {
44
- * attributes: {
45
- * email: [userEmail],
48
+ * email: 'userEmail@example.com'
49
+ * customProperties: {
50
+ * phoneNumber: ['555-555-5555'],
46
51
  * },
47
52
  * demographic: {
48
53
  * platform: 'ios',
@@ -54,17 +59,20 @@ import { resolveConfig, resolveCredentials } from '../utils';
54
59
  export const identifyUser = async ({
55
60
  userId,
56
61
  userProfile,
62
+ options,
57
63
  }: IdentifyUserInput): Promise<void> => {
58
64
  const { credentials, identityId } = await resolveCredentials();
59
65
  const { appId, region } = resolveConfig();
66
+ const { userAttributes } = options ?? {};
60
67
  updateEndpoint({
61
68
  appId,
62
69
  category: 'Analytics',
63
70
  credentials,
64
71
  identityId,
65
72
  region,
73
+ userAttributes,
66
74
  userId,
67
75
  userProfile,
68
- userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.UpdateEndpoint),
76
+ userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.IdentifyUser),
69
77
  });
70
78
  };
@@ -3,3 +3,5 @@
3
3
 
4
4
  export { record } from './record';
5
5
  export { identifyUser } from './identifyUser';
6
+ export { configureAutoTrack } from './configureAutoTrack';
7
+ export { flushEvents } from './flushEvents';
@@ -1,68 +1,76 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
+ import { Hub, ConsoleLogger } from '@aws-amplify/core';
4
5
  import {
6
+ AMPLIFY_SYMBOL,
5
7
  AnalyticsAction,
6
- ConsoleLogger as Logger,
7
8
  } from '@aws-amplify/core/internals/utils';
8
9
  import { record as recordCore } from '@aws-amplify/core/internals/providers/pinpoint';
9
10
  import {
10
11
  AnalyticsValidationErrorCode,
11
12
  assertValidationError,
12
13
  } from '../../../errors';
13
- import { getAnalyticsUserAgentString } from '../../../utils/userAgent';
14
+ import {
15
+ getAnalyticsUserAgentString,
16
+ isAnalyticsEnabled,
17
+ } from '../../../utils';
14
18
  import { RecordInput } from '../types';
15
19
  import { resolveConfig, resolveCredentials } from '../utils';
16
20
 
17
- const logger = new Logger('Analytics');
21
+ const logger = new ConsoleLogger('Analytics');
18
22
 
19
23
  /**
20
24
  * Records an Analytic event to Pinpoint. Events will be buffered and periodically sent to Pinpoint.
21
25
  *
22
26
  * @param {RecordInput} params The input object used to construct the request.
23
27
  *
24
- * @throws validation: {@link AnalyticsValidationErrorCode} - Thrown when the provided parameters or library
28
+ * @throws validation: {@link AnalyticsValidationErrorCode} - Thrown when the provided parameters or library
25
29
  * configuration is incorrect.
26
- *
30
+ *
27
31
  * @example
28
32
  * ```ts
29
33
  * // Send an event to Pinpoint
30
- * record({
31
- * event: {
32
- * name: eventName,
33
- * }
34
- * })
34
+ * record({ name: eventName })
35
35
  * ```
36
- *
36
+ *
37
37
  * @example
38
38
  * ```ts
39
39
  * // Send an event to Pinpoint with metrics & custom attributes
40
40
  * record({
41
- * event: {
42
- * name: eventName,
43
- * attributes: {
44
- * 'my-attribute': attributeValue
45
- * },
46
- * metrics: {
47
- * 'my-metric': metricValue
48
- * }
41
+ * name: eventName,
42
+ * attributes: {
43
+ * 'my-attribute': attributeValue
44
+ * },
45
+ * metrics: {
46
+ * 'my-metric': metricValue
49
47
  * }
50
48
  * })
51
49
  * ```
52
50
  */
53
- export const record = ({ event }: RecordInput): void => {
51
+ export const record = (input: RecordInput): void => {
54
52
  const { appId, region } = resolveConfig();
55
53
 
56
- assertValidationError(!!event, AnalyticsValidationErrorCode.NoEvent);
57
- assertValidationError(!!event.name, AnalyticsValidationErrorCode.NoEventName);
54
+ if (!isAnalyticsEnabled()) {
55
+ logger.debug('Analytics is disabled, event will not be recorded.');
56
+ return;
57
+ }
58
+
59
+ assertValidationError(!!input.name, AnalyticsValidationErrorCode.NoEventName);
58
60
 
59
61
  resolveCredentials()
60
62
  .then(({ credentials, identityId }) => {
63
+ Hub.dispatch(
64
+ 'analytics',
65
+ { event: 'record', data: input, message: 'Recording Analytics event' },
66
+ 'Analytics',
67
+ AMPLIFY_SYMBOL
68
+ );
61
69
  recordCore({
62
70
  appId,
63
71
  category: 'Analytics',
64
72
  credentials,
65
- event,
73
+ event: input,
66
74
  identityId,
67
75
  region,
68
76
  userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
@@ -1,5 +1,9 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- export { record, identifyUser } from './apis';
5
- export { RecordInput, IdentifyUserInput } from './types/inputs';
4
+ export { record, identifyUser, flushEvents, configureAutoTrack } from './apis';
5
+ export {
6
+ RecordInput,
7
+ IdentifyUserInput,
8
+ ConfigureAutoTrackInput,
9
+ } from './types/inputs';
@@ -1,5 +1,9 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- export { UpdateEndpointException } from './errors';
5
- export { RecordInput, IdentifyUserInput } from './inputs';
4
+ export {
5
+ RecordInput,
6
+ IdentifyUserInput,
7
+ ConfigureAutoTrackInput,
8
+ } from './inputs';
9
+ export { IdentifyUserOptions } from './options';
@@ -1,30 +1,24 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- import { UserProfile } from '@aws-amplify/core';
5
4
  import { PinpointAnalyticsEvent } from '@aws-amplify/core/internals/providers/pinpoint';
5
+ import { IdentifyUserOptions } from '.';
6
+ import {
7
+ AnalyticsConfigureAutoTrackInput,
8
+ AnalyticsIdentifyUserInput,
9
+ } from '../../../types';
6
10
 
7
11
  /**
8
12
  * Input type for Pinpoint record API.
9
13
  */
10
- export type RecordInput = {
11
- /**
12
- * An event to send to the default Analytics provider.
13
- */
14
- event: PinpointAnalyticsEvent;
15
- };
14
+ export type RecordInput = PinpointAnalyticsEvent;
16
15
 
17
16
  /**
18
17
  * Input type for Pinpoint identifyUser API.
19
18
  */
20
- export type IdentifyUserInput = {
21
- /**
22
- * A User ID associated to the current device.
23
- */
24
- userId: string;
19
+ export type IdentifyUserInput = AnalyticsIdentifyUserInput<IdentifyUserOptions>;
25
20
 
26
- /**
27
- * Additional information about the user and their device.
28
- */
29
- userProfile: UserProfile;
30
- };
21
+ /**
22
+ * Input type for Pinpoint configureAutoTrack API.
23
+ */
24
+ export type ConfigureAutoTrackInput = AnalyticsConfigureAutoTrackInput;
@@ -0,0 +1,12 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { PinpointServiceOptions } from '@aws-amplify/core/internals/providers/pinpoint';
5
+
6
+ /**
7
+ * Options specific to Pinpoint identityUser.
8
+ */
9
+ export type IdentifyUserOptions = Pick<
10
+ PinpointServiceOptions,
11
+ 'userAttributes'
12
+ >;
@@ -0,0 +1,135 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import {
5
+ EventTrackingOptions,
6
+ DOMEvent,
7
+ TrackerEventRecorder,
8
+ TrackerInterface,
9
+ } from '../types/trackers';
10
+ import { ConsoleLogger } from '@aws-amplify/core';
11
+ import { isBrowser } from '@aws-amplify/core/internals/utils';
12
+
13
+ const DEFAULT_EVENTS = ['click'] as DOMEvent[];
14
+ const DEFAULT_SELECTOR_PREFIX = 'data-amplify-analytics-';
15
+ const DEFAULT_EVENT_NAME = 'event'; // Default event name as sent to the analytics provider
16
+
17
+ const logger = new ConsoleLogger('EventTracker');
18
+
19
+ export class EventTracker implements TrackerInterface {
20
+ private trackerActive: boolean;
21
+ private options: EventTrackingOptions;
22
+ private eventRecorder: TrackerEventRecorder;
23
+
24
+ constructor(
25
+ eventRecorder: TrackerEventRecorder,
26
+ options?: EventTrackingOptions
27
+ ) {
28
+ this.options = {};
29
+ this.trackerActive = false;
30
+ this.eventRecorder = eventRecorder;
31
+ this.handleDocEvent = this.handleDocEvent.bind(this);
32
+
33
+ this.configure(eventRecorder, options);
34
+ }
35
+
36
+ public configure(
37
+ eventRecorder: TrackerEventRecorder,
38
+ options?: EventTrackingOptions
39
+ ) {
40
+ this.eventRecorder = eventRecorder;
41
+
42
+ // Clean up any existing listeners
43
+ this.cleanup();
44
+
45
+ // Apply defaults
46
+ this.options = {
47
+ attributes: options?.attributes ?? undefined,
48
+ events: options?.events ?? DEFAULT_EVENTS,
49
+ selectorPrefix: options?.selectorPrefix ?? DEFAULT_SELECTOR_PREFIX,
50
+ };
51
+
52
+ // Register event listeners
53
+ if (isBrowser()) {
54
+ this.options.events?.forEach(targetEvent => {
55
+ document.addEventListener(targetEvent, this.handleDocEvent, {
56
+ capture: true,
57
+ });
58
+ });
59
+
60
+ this.trackerActive = true;
61
+ }
62
+ }
63
+
64
+ public cleanup() {
65
+ // No-op if document listener is not active
66
+ if (!this.trackerActive) {
67
+ return;
68
+ }
69
+
70
+ // Clean up event listeners
71
+ this.options.events?.forEach(targetEvent => {
72
+ document.removeEventListener(targetEvent, this.handleDocEvent, {
73
+ capture: true,
74
+ });
75
+ });
76
+ }
77
+
78
+ private handleDocEvent(event: Event) {
79
+ /**
80
+ * Example DOM element:
81
+ *
82
+ * ```
83
+ * <button
84
+ * data-amplify-analytics-on="click"
85
+ * data-amplify-analytics-name="click"
86
+ * data-amplify-analytics-attrs="attr1:attr1_value,attr2:attr2_value"
87
+ * />
88
+ * ```
89
+ */
90
+ const triggerSelector = `[${this.options.selectorPrefix}on]`;
91
+ const attrSelector = `${this.options.selectorPrefix}attrs`;
92
+ const eventNameSelector = `${this.options.selectorPrefix}name`;
93
+ const eventSource = event.target;
94
+
95
+ // Validate that the triggering event type is being tracked
96
+ if (!this.options.events?.includes(event.type as DOMEvent)) {
97
+ return;
98
+ }
99
+
100
+ if (eventSource instanceof HTMLElement) {
101
+ const target = eventSource.closest(triggerSelector);
102
+
103
+ if (target) {
104
+ // Parse event name from the element
105
+ const eventName =
106
+ target.getAttribute(eventNameSelector) || DEFAULT_EVENT_NAME;
107
+
108
+ // Parse attributes from the element
109
+ const elementAttributes: Record<string, string> = {};
110
+ const rawElementAttributes = target.getAttribute(attrSelector);
111
+ rawElementAttributes?.split(/\s*,\s*/).forEach(attr => {
112
+ const tmp = attr.trim().split(/\s*:\s*/);
113
+ elementAttributes[tmp[0]] = tmp[1];
114
+ });
115
+
116
+ // Assemble final list of attributes
117
+ const attributes = Object.assign(
118
+ {
119
+ type: event.type,
120
+ target: `${target.localName} with id ${target.id}`,
121
+ },
122
+ this.options.attributes,
123
+ elementAttributes
124
+ );
125
+
126
+ logger.debug('Recording automatically tracked DOM event', {
127
+ eventName,
128
+ attributes,
129
+ });
130
+
131
+ this.eventRecorder(eventName, attributes);
132
+ }
133
+ }
134
+ }
135
+ }
@@ -0,0 +1,160 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import {
5
+ PageViewTrackingOptions,
6
+ TrackerEventRecorder,
7
+ TrackerInterface,
8
+ } from '../types/trackers';
9
+ import { ConsoleLogger } from '@aws-amplify/core';
10
+ import { isBrowser } from '@aws-amplify/core/internals/utils';
11
+
12
+ const logger = new ConsoleLogger('PageViewTracker');
13
+
14
+ const DEFAULT_EVENT_NAME = 'pageView';
15
+ const DEFAULT_APP_TYPE = 'singlePage';
16
+ const DEFAULT_URL_PROVIDER = () => {
17
+ return window.location.origin + window.location.pathname;
18
+ };
19
+ const PREV_URL_STORAGE_KEY = 'aws-amplify-analytics-prevUrl';
20
+
21
+ export class PageViewTracker implements TrackerInterface {
22
+ private trackerActive: boolean;
23
+ private options: PageViewTrackingOptions;
24
+ private eventRecorder: TrackerEventRecorder;
25
+
26
+ // SPA tracking helpers
27
+ private spaTrackingActive: boolean;
28
+ private pushStateProxy?: any;
29
+ private replaceStateProxy?: any;
30
+ private originalPushState: any;
31
+ private originalReplaceState: any;
32
+
33
+ constructor(
34
+ eventRecorder: TrackerEventRecorder,
35
+ options?: PageViewTrackingOptions
36
+ ) {
37
+ this.options = {};
38
+ this.trackerActive = true;
39
+ this.eventRecorder = eventRecorder;
40
+ this.spaTrackingActive = false;
41
+ this.handleLocationChange = this.handleLocationChange.bind(this);
42
+
43
+ this.configure(eventRecorder, options);
44
+ }
45
+
46
+ public configure(
47
+ eventRecorder: TrackerEventRecorder,
48
+ options?: PageViewTrackingOptions
49
+ ) {
50
+ this.eventRecorder = eventRecorder;
51
+
52
+ // Clean up any existing listeners
53
+ this.cleanup();
54
+
55
+ // Apply defaults
56
+ this.options = {
57
+ appType: options?.appType ?? DEFAULT_APP_TYPE,
58
+ attributes: options?.attributes ?? undefined,
59
+ eventName: this.options?.eventName ?? DEFAULT_EVENT_NAME,
60
+ urlProvider: this.options?.urlProvider ?? DEFAULT_URL_PROVIDER,
61
+ };
62
+
63
+ // Configure SPA or MPA page view tracking
64
+ if (isBrowser()) {
65
+ if (this.options.appType === 'singlePage') {
66
+ this.setupSPATracking();
67
+ } else {
68
+ this.setupMPATracking();
69
+ }
70
+
71
+ this.trackerActive = true;
72
+ }
73
+ }
74
+
75
+ public cleanup() {
76
+ // No-op if document listener is not active
77
+ if (!this.trackerActive) {
78
+ return;
79
+ }
80
+
81
+ // Clean up SPA page view listeners
82
+ if (this.spaTrackingActive) {
83
+ window.history.pushState = this.originalPushState;
84
+ window.history.replaceState = this.originalReplaceState;
85
+ this.pushStateProxy?.revoke();
86
+ this.replaceStateProxy?.revoke();
87
+ window.removeEventListener('popstate', this.handleLocationChange);
88
+
89
+ this.spaTrackingActive = false;
90
+ }
91
+ }
92
+
93
+ private setupSPATracking() {
94
+ if (!this.spaTrackingActive) {
95
+ // Configure proxies on History APIs
96
+ this.pushStateProxy = Proxy.revocable(window.history.pushState, {
97
+ apply: (target, thisArg, args) => {
98
+ const proxiedResult = target.apply(thisArg, args as any);
99
+
100
+ this.handleLocationChange();
101
+
102
+ return proxiedResult;
103
+ },
104
+ });
105
+ this.replaceStateProxy = Proxy.revocable(window.history.replaceState, {
106
+ apply: (target, thisArg, args) => {
107
+ const proxiedResult = target.apply(thisArg, args as any);
108
+
109
+ this.handleLocationChange();
110
+
111
+ return proxiedResult;
112
+ },
113
+ });
114
+
115
+ this.originalPushState = window.history.pushState;
116
+ this.originalReplaceState = window.history.replaceState;
117
+ window.history.pushState = this.pushStateProxy.proxy;
118
+ window.history.replaceState = this.replaceStateProxy.proxy;
119
+ window.addEventListener('popstate', this.handleLocationChange);
120
+ sessionStorage.removeItem(PREV_URL_STORAGE_KEY);
121
+
122
+ this.spaTrackingActive = true;
123
+ }
124
+ }
125
+
126
+ private setupMPATracking() {
127
+ this.handleLocationChange();
128
+ }
129
+
130
+ private handleLocationChange() {
131
+ const currentUrl = this.options.urlProvider!();
132
+ const eventName = this.options.eventName || DEFAULT_EVENT_NAME;
133
+
134
+ if (this.urlHasChanged()) {
135
+ sessionStorage.setItem(PREV_URL_STORAGE_KEY, currentUrl);
136
+
137
+ // Assemble attribute list
138
+ const attributes = Object.assign(
139
+ {
140
+ url: currentUrl,
141
+ },
142
+ this.options.attributes
143
+ );
144
+
145
+ logger.debug('Recording automatically tracked page view event', {
146
+ eventName,
147
+ attributes,
148
+ });
149
+
150
+ this.eventRecorder(eventName, attributes);
151
+ }
152
+ }
153
+
154
+ private urlHasChanged() {
155
+ const prevUrl = sessionStorage.getItem(PREV_URL_STORAGE_KEY);
156
+ const currUrl = this.options.urlProvider!();
157
+
158
+ return currUrl !== prevUrl;
159
+ }
160
+ }