@schibsted/pulse-sdk 8.0.0-alpha.16 → 8.0.0-alpha.18

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 (398) hide show
  1. package/dist/cjs/EventBus/EventBus.js +146 -0
  2. package/dist/cjs/Tracker.js +2499 -0
  3. package/dist/cjs/Tracker.test-d.js +76 -0
  4. package/dist/cjs/app-integration.js +40 -0
  5. package/dist/cjs/builders/actor.js +60 -0
  6. package/dist/cjs/builders/consent-manager.js +134 -0
  7. package/dist/cjs/builders/consents.js +149 -0
  8. package/dist/cjs/builders/device-browser.js +89 -0
  9. package/dist/cjs/builders/device-node.js +63 -0
  10. package/dist/cjs/builders/device.js +23 -0
  11. package/dist/cjs/builders/events-anonymous-browser.js +6 -0
  12. package/dist/cjs/builders/events-anonymous-node.js +88 -0
  13. package/dist/cjs/builders/events-anonymous.js +17 -0
  14. package/dist/cjs/builders/events-browser.js +8 -0
  15. package/dist/cjs/builders/events-node.js +127 -0
  16. package/dist/cjs/builders/events.js +17 -0
  17. package/dist/cjs/builders/experimentMetadata.js +25 -0
  18. package/dist/cjs/builders/experiments.js +32 -0
  19. package/dist/cjs/builders/index.js +52 -0
  20. package/dist/cjs/builders/location.js +38 -0
  21. package/dist/cjs/builders/objects/objects-anonymous-browser.js +36 -0
  22. package/dist/cjs/builders/objects/objects-anonymous-node.js +95 -0
  23. package/dist/cjs/builders/objects/objects-anonymous.js +23 -0
  24. package/dist/cjs/builders/objects/objects-browser.js +36 -0
  25. package/dist/cjs/builders/objects/objects-node.js +126 -0
  26. package/dist/cjs/builders/objects/objects.js +23 -0
  27. package/dist/cjs/builders/objects/utils.js +23 -0
  28. package/dist/cjs/builders/origin-browser.js +28 -0
  29. package/dist/cjs/builders/origin-node.js +29 -0
  30. package/dist/cjs/builders/origin.js +23 -0
  31. package/dist/cjs/builders/provider.js +24 -0
  32. package/dist/cjs/builders/session-browser.js +97 -0
  33. package/dist/cjs/builders/session-node.js +9 -0
  34. package/dist/cjs/builders/session.js +23 -0
  35. package/dist/cjs/builders/tracker-browser.js +34 -0
  36. package/dist/cjs/builders/tracker-node.js +22 -0
  37. package/dist/cjs/builders/trackerBuilder.js +23 -0
  38. package/dist/cjs/config-browser.js +26 -0
  39. package/dist/cjs/config.js +9 -0
  40. package/dist/cjs/createPulseTracker.js +50 -0
  41. package/dist/cjs/defer.js +20 -0
  42. package/dist/cjs/getPulseTracker.js +74 -0
  43. package/dist/cjs/identity/actor.js +60 -0
  44. package/dist/cjs/identity/advertising.js +62 -0
  45. package/dist/cjs/identity/cis.js +66 -0
  46. package/dist/cjs/identity/device.js +20 -0
  47. package/dist/cjs/identity/index.js +20 -0
  48. package/dist/cjs/index.js +57 -0
  49. package/dist/cjs/leaveTracking/constants.js +26 -0
  50. package/dist/cjs/leaveTracking/index.js +368 -0
  51. package/dist/cjs/leaveTracking/types.js +19 -0
  52. package/dist/cjs/leaveTrackingTpaas/constants.js +18 -0
  53. package/dist/cjs/leaveTrackingTpaas/index.js +341 -0
  54. package/dist/cjs/leaveTrackingTpaas/types.js +19 -0
  55. package/dist/cjs/network-browser.js +35 -0
  56. package/dist/cjs/network.js +15 -0
  57. package/dist/cjs/remoteConfig/index.js +124 -0
  58. package/dist/cjs/tracker-proxy/consts.js +72 -0
  59. package/dist/cjs/tracker-proxy/proxy-provider.js +68 -0
  60. package/dist/cjs/types.js +2 -0
  61. package/dist/cjs/version.json +1 -0
  62. package/dist/cjs/visibility-observer/index.js +101 -0
  63. package/dist/cjs/warnOnce.js +11 -0
  64. package/dist/cjs/wrapper/engagement/ui-element/event-builder.js +21 -0
  65. package/dist/cjs/wrapper/engagement/ui-element/types.js +2 -0
  66. package/dist/cjs/wrapper/types/base-event.js +2 -0
  67. package/dist/cjs/wrapper/types/engagement-event.js +2 -0
  68. package/dist/cjs/wrapper/types/event.js +2 -0
  69. package/dist/cjs/wrapper/types/index.js +19 -0
  70. package/dist/cjs/wrapper/types/utils.js +2 -0
  71. package/dist/cjs/wrapper/utils/get-navigation-type.js +32 -0
  72. package/dist/cjs/wrapper/utils/page-from-page-view.js +9 -0
  73. package/dist/cjs/wrapper/view/article/event-builder.js +19 -0
  74. package/dist/cjs/wrapper/view/article/types.js +2 -0
  75. package/dist/cjs/wrapper/view/frontpage/event-builder.js +16 -0
  76. package/dist/cjs/wrapper/view/frontpage/types.js +2 -0
  77. package/dist/cjs/wrapper/view/listing/event-builder.js +14 -0
  78. package/dist/cjs/wrapper/view/listing/types.js +2 -0
  79. package/dist/cjs/wrapper/view/loginposter/event-builder.js +11 -0
  80. package/dist/cjs/wrapper/view/loginposter/types.js +2 -0
  81. package/dist/cjs/wrapper/view/page/event-builder.js +18 -0
  82. package/dist/cjs/wrapper/view/page/types.js +2 -0
  83. package/dist/cjs/wrapper/view/salesposter/event-builder.js +18 -0
  84. package/dist/cjs/wrapper/view/salesposter/types.js +2 -0
  85. package/dist/cjs/wrapper/view/ui-element/event-builder.js +15 -0
  86. package/dist/cjs/wrapper/view/ui-element/types.js +2 -0
  87. package/dist/ejs/EventBus/EventBus.js +140 -0
  88. package/dist/ejs/Tracker.js +2455 -0
  89. package/dist/ejs/Tracker.test-d.js +71 -0
  90. package/dist/ejs/app-integration.js +33 -0
  91. package/dist/ejs/builders/actor.js +53 -0
  92. package/dist/ejs/builders/consent-manager.js +125 -0
  93. package/dist/ejs/builders/consents.js +138 -0
  94. package/dist/ejs/builders/device-browser.js +69 -0
  95. package/dist/ejs/builders/device-node.js +57 -0
  96. package/dist/ejs/builders/device.js +2 -0
  97. package/dist/ejs/builders/events-anonymous-browser.js +1 -0
  98. package/dist/ejs/builders/events-anonymous-node.js +48 -0
  99. package/dist/ejs/builders/events-anonymous.js +1 -0
  100. package/dist/ejs/builders/events-browser.js +1 -0
  101. package/dist/ejs/builders/events-node.js +84 -0
  102. package/dist/ejs/builders/events.js +1 -0
  103. package/dist/ejs/builders/experimentMetadata.js +21 -0
  104. package/dist/ejs/builders/experiments.js +27 -0
  105. package/dist/ejs/builders/index.js +12 -0
  106. package/dist/ejs/builders/location.js +34 -0
  107. package/dist/ejs/builders/objects/objects-anonymous-browser.js +14 -0
  108. package/dist/ejs/builders/objects/objects-anonymous-node.js +90 -0
  109. package/dist/ejs/builders/objects/objects-anonymous.js +2 -0
  110. package/dist/ejs/builders/objects/objects-browser.js +14 -0
  111. package/dist/ejs/builders/objects/objects-node.js +121 -0
  112. package/dist/ejs/builders/objects/objects.js +2 -0
  113. package/dist/ejs/builders/objects/utils.js +20 -0
  114. package/dist/ejs/builders/origin-browser.js +6 -0
  115. package/dist/ejs/builders/origin-node.js +24 -0
  116. package/dist/ejs/builders/origin.js +2 -0
  117. package/dist/ejs/builders/provider.js +18 -0
  118. package/dist/ejs/builders/session-browser.js +90 -0
  119. package/dist/ejs/builders/session-node.js +4 -0
  120. package/dist/ejs/builders/session.js +2 -0
  121. package/dist/ejs/builders/tracker-browser.js +13 -0
  122. package/dist/ejs/builders/tracker-node.js +14 -0
  123. package/dist/ejs/builders/trackerBuilder.js +2 -0
  124. package/dist/ejs/config-browser.js +23 -0
  125. package/dist/ejs/config.js +6 -0
  126. package/dist/ejs/createPulseTracker.js +44 -0
  127. package/dist/ejs/defer.js +17 -0
  128. package/dist/ejs/getPulseTracker.js +71 -0
  129. package/dist/ejs/identity/actor.js +51 -0
  130. package/dist/ejs/identity/advertising.js +57 -0
  131. package/dist/ejs/identity/cis.js +58 -0
  132. package/dist/ejs/identity/device.js +17 -0
  133. package/dist/ejs/identity/index.js +4 -0
  134. package/dist/ejs/index.js +9 -0
  135. package/dist/ejs/leaveTracking/constants.js +19 -0
  136. package/dist/ejs/leaveTracking/index.js +319 -0
  137. package/dist/ejs/leaveTracking/types.js +16 -0
  138. package/dist/ejs/leaveTrackingTpaas/constants.js +13 -0
  139. package/dist/ejs/leaveTrackingTpaas/index.js +291 -0
  140. package/dist/ejs/leaveTrackingTpaas/types.js +16 -0
  141. package/dist/ejs/network-browser.js +32 -0
  142. package/dist/ejs/network.js +12 -0
  143. package/dist/ejs/remoteConfig/index.js +111 -0
  144. package/dist/ejs/tracker-proxy/consts.js +68 -0
  145. package/dist/ejs/tracker-proxy/proxy-provider.js +62 -0
  146. package/dist/ejs/types.js +1 -0
  147. package/dist/ejs/version.json +1 -0
  148. package/dist/ejs/visibility-observer/index.js +97 -0
  149. package/dist/ejs/warnOnce.js +9 -0
  150. package/dist/ejs/wrapper/engagement/ui-element/event-builder.js +17 -0
  151. package/dist/ejs/wrapper/engagement/ui-element/types.js +1 -0
  152. package/dist/ejs/wrapper/types/base-event.js +1 -0
  153. package/dist/ejs/wrapper/types/engagement-event.js +1 -0
  154. package/dist/ejs/wrapper/types/event.js +1 -0
  155. package/dist/ejs/wrapper/types/index.js +3 -0
  156. package/dist/ejs/wrapper/types/utils.js +1 -0
  157. package/dist/ejs/wrapper/utils/get-navigation-type.js +29 -0
  158. package/dist/ejs/wrapper/utils/page-from-page-view.js +6 -0
  159. package/dist/ejs/wrapper/view/article/event-builder.js +15 -0
  160. package/dist/ejs/wrapper/view/article/types.js +1 -0
  161. package/dist/ejs/wrapper/view/frontpage/event-builder.js +12 -0
  162. package/dist/ejs/wrapper/view/frontpage/types.js +1 -0
  163. package/dist/ejs/wrapper/view/listing/event-builder.js +10 -0
  164. package/dist/ejs/wrapper/view/listing/types.js +1 -0
  165. package/dist/ejs/wrapper/view/loginposter/event-builder.js +7 -0
  166. package/dist/ejs/wrapper/view/loginposter/types.js +1 -0
  167. package/dist/ejs/wrapper/view/page/event-builder.js +14 -0
  168. package/dist/ejs/wrapper/view/page/types.js +1 -0
  169. package/dist/ejs/wrapper/view/salesposter/event-builder.js +14 -0
  170. package/dist/ejs/wrapper/view/salesposter/types.js +1 -0
  171. package/dist/ejs/wrapper/view/ui-element/event-builder.js +11 -0
  172. package/dist/ejs/wrapper/view/ui-element/types.js +1 -0
  173. package/dist/types/EventBus/EventBus.d.ts +106 -0
  174. package/dist/types/Tracker.d.ts +1418 -0
  175. package/dist/types/Tracker.test-d.d.ts +1 -0
  176. package/dist/types/app-integration.d.ts +10 -0
  177. package/dist/types/builders/actor.d.ts +39 -0
  178. package/dist/types/builders/consent-manager.d.ts +49 -0
  179. package/dist/types/builders/consents.d.ts +107 -0
  180. package/dist/types/builders/device-browser.d.ts +6 -0
  181. package/dist/types/builders/device-node.d.ts +65 -0
  182. package/dist/types/builders/device.d.ts +2 -0
  183. package/dist/types/builders/events-anonymous-browser.d.ts +1 -0
  184. package/dist/types/builders/events-anonymous-node.d.ts +82 -0
  185. package/dist/types/builders/events-anonymous.d.ts +1 -0
  186. package/dist/types/builders/events-browser.d.ts +1 -0
  187. package/dist/types/builders/events-node.d.ts +130 -0
  188. package/dist/types/builders/events.d.ts +1 -0
  189. package/dist/types/builders/experimentMetadata.d.ts +25 -0
  190. package/dist/types/builders/experiments.d.ts +24 -0
  191. package/dist/types/builders/index.d.ts +23 -0
  192. package/dist/types/builders/location.d.ts +34 -0
  193. package/dist/types/builders/objects/objects-anonymous-browser.d.ts +11 -0
  194. package/dist/types/builders/objects/objects-anonymous-node.d.ts +52 -0
  195. package/dist/types/builders/objects/objects-anonymous.d.ts +2 -0
  196. package/dist/types/builders/objects/objects-browser.d.ts +11 -0
  197. package/dist/types/builders/objects/objects-node.d.ts +60 -0
  198. package/dist/types/builders/objects/objects.d.ts +2 -0
  199. package/dist/types/builders/objects/utils.d.ts +1 -0
  200. package/dist/types/builders/origin-browser.d.ts +5 -0
  201. package/dist/types/builders/origin-node.d.ts +18 -0
  202. package/dist/types/builders/origin.d.ts +2 -0
  203. package/dist/types/builders/provider.d.ts +14 -0
  204. package/dist/types/builders/session-browser.d.ts +20 -0
  205. package/dist/types/builders/session-node.d.ts +3 -0
  206. package/dist/types/builders/session.d.ts +2 -0
  207. package/dist/types/builders/tracker-browser.d.ts +2 -0
  208. package/dist/types/builders/tracker-node.d.ts +14 -0
  209. package/dist/types/builders/trackerBuilder.d.ts +2 -0
  210. package/dist/types/config-browser.d.ts +23 -0
  211. package/dist/types/config.d.ts +6 -0
  212. package/dist/types/createPulseTracker.d.ts +21 -0
  213. package/dist/types/defer.d.ts +28 -0
  214. package/dist/types/getPulseTracker.d.ts +59 -0
  215. package/dist/types/identity/actor.d.ts +28 -0
  216. package/dist/types/identity/advertising.d.ts +30 -0
  217. package/dist/types/identity/cis.d.ts +21 -0
  218. package/dist/types/identity/device.d.ts +12 -0
  219. package/dist/types/identity/index.d.ts +4 -0
  220. package/dist/types/index.d.ts +31 -0
  221. package/dist/types/leaveTracking/constants.d.ts +26 -0
  222. package/dist/types/leaveTracking/index.d.ts +23 -0
  223. package/dist/types/leaveTracking/types.d.ts +78 -0
  224. package/dist/types/leaveTrackingTpaas/constants.d.ts +13 -0
  225. package/dist/types/leaveTrackingTpaas/index.d.ts +28 -0
  226. package/dist/types/leaveTrackingTpaas/types.d.ts +45 -0
  227. package/dist/types/network-browser.d.ts +5 -0
  228. package/dist/types/network.d.ts +4 -0
  229. package/dist/types/remoteConfig/index.d.ts +32 -0
  230. package/dist/types/tracker-proxy/consts.d.ts +45 -0
  231. package/dist/types/tracker-proxy/proxy-provider.d.ts +2 -0
  232. package/dist/types/types.d.ts +93 -0
  233. package/dist/types/visibility-observer/index.d.ts +38 -0
  234. package/dist/types/warnOnce.d.ts +2 -0
  235. package/dist/types/wrapper/engagement/ui-element/event-builder.d.ts +3 -0
  236. package/dist/types/wrapper/engagement/ui-element/types.d.ts +29 -0
  237. package/dist/types/wrapper/types/base-event.d.ts +74 -0
  238. package/dist/types/wrapper/types/engagement-event.d.ts +5 -0
  239. package/dist/types/wrapper/types/event.d.ts +41 -0
  240. package/dist/types/wrapper/types/index.d.ts +3 -0
  241. package/dist/types/wrapper/types/utils.d.ts +5 -0
  242. package/dist/types/wrapper/utils/get-navigation-type.d.ts +3 -0
  243. package/dist/types/wrapper/utils/page-from-page-view.d.ts +3 -0
  244. package/dist/types/wrapper/view/article/event-builder.d.ts +2 -0
  245. package/dist/types/wrapper/view/article/types.d.ts +27 -0
  246. package/dist/types/wrapper/view/frontpage/event-builder.d.ts +2 -0
  247. package/dist/types/wrapper/view/frontpage/types.d.ts +18 -0
  248. package/dist/types/wrapper/view/listing/event-builder.d.ts +2 -0
  249. package/dist/types/wrapper/view/listing/types.d.ts +27 -0
  250. package/dist/types/wrapper/view/loginposter/event-builder.d.ts +2 -0
  251. package/dist/types/wrapper/view/loginposter/types.d.ts +14 -0
  252. package/dist/types/wrapper/view/page/event-builder.d.ts +2 -0
  253. package/dist/types/wrapper/view/page/types.d.ts +16 -0
  254. package/dist/types/wrapper/view/salesposter/event-builder.d.ts +2 -0
  255. package/dist/types/wrapper/view/salesposter/types.d.ts +15 -0
  256. package/dist/types/wrapper/view/ui-element/event-builder.d.ts +3 -0
  257. package/dist/types/wrapper/view/ui-element/types.d.ts +28 -0
  258. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis-browser.d.ts +26 -0
  259. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis-browser.js +273 -0
  260. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis-browser.js.map +1 -0
  261. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis.d.ts +10 -0
  262. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis.js +7 -0
  263. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis.js.map +1 -0
  264. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/eventEmitter.d.ts +14 -0
  265. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/eventEmitter.js +39 -0
  266. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/eventEmitter.js.map +1 -0
  267. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/index.d.ts +4 -0
  268. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/index.js +12 -0
  269. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/index.js.map +1 -0
  270. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/pulse-cookie.d.ts +55 -0
  271. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/pulse-cookie.js +276 -0
  272. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/pulse-cookie.js.map +1 -0
  273. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/pulseStorage.d.ts +36 -0
  274. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/pulseStorage.js +87 -0
  275. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/pulseStorage.js.map +1 -0
  276. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/storage.d.ts +6 -0
  277. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/storage.js +21 -0
  278. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/storage.js.map +1 -0
  279. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/types.d.ts +24 -0
  280. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/types.js +3 -0
  281. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/types.js.map +1 -0
  282. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis-browser.d.ts +26 -0
  283. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis-browser.js +203 -0
  284. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis-browser.js.map +1 -0
  285. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis.d.ts +10 -0
  286. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis.js +4 -0
  287. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis.js.map +1 -0
  288. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/eventEmitter.d.ts +14 -0
  289. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/eventEmitter.js +35 -0
  290. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/eventEmitter.js.map +1 -0
  291. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/index.d.ts +4 -0
  292. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/index.js +3 -0
  293. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/index.js.map +1 -0
  294. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/pulse-cookie.d.ts +55 -0
  295. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/pulse-cookie.js +254 -0
  296. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/pulse-cookie.js.map +1 -0
  297. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/pulseStorage.d.ts +36 -0
  298. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/pulseStorage.js +50 -0
  299. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/pulseStorage.js.map +1 -0
  300. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/storage.d.ts +6 -0
  301. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/storage.js +17 -0
  302. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/storage.js.map +1 -0
  303. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/types.d.ts +24 -0
  304. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/types.js +2 -0
  305. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/types.js.map +1 -0
  306. package/node_modules/@schibsted/pulse-cis-sync/dist/types/cis-browser.d.ts +26 -0
  307. package/node_modules/@schibsted/pulse-cis-sync/dist/types/cis.d.ts +10 -0
  308. package/node_modules/@schibsted/pulse-cis-sync/dist/types/eventEmitter.d.ts +14 -0
  309. package/node_modules/@schibsted/pulse-cis-sync/dist/types/index.d.ts +4 -0
  310. package/node_modules/@schibsted/pulse-cis-sync/dist/types/pulse-cookie.d.ts +55 -0
  311. package/node_modules/@schibsted/pulse-cis-sync/dist/types/storage/pulseStorage.d.ts +36 -0
  312. package/node_modules/@schibsted/pulse-cis-sync/dist/types/storage/storage.d.ts +6 -0
  313. package/node_modules/@schibsted/pulse-cis-sync/dist/types/types.d.ts +24 -0
  314. package/node_modules/@schibsted/pulse-cis-sync/package.json +44 -0
  315. package/node_modules/@schibsted/pulse-utils/dist/cjs/cookie-config.js +10 -0
  316. package/node_modules/@schibsted/pulse-utils/dist/cjs/cookie.js +86 -0
  317. package/node_modules/@schibsted/pulse-utils/dist/cjs/events.js +109 -0
  318. package/node_modules/@schibsted/pulse-utils/dist/cjs/get.js +18 -0
  319. package/node_modules/@schibsted/pulse-utils/dist/cjs/getRootDomain.js +54 -0
  320. package/node_modules/@schibsted/pulse-utils/dist/cjs/index.js +38 -0
  321. package/node_modules/@schibsted/pulse-utils/dist/cjs/merge.js +38 -0
  322. package/node_modules/@schibsted/pulse-utils/dist/cjs/objects.js +34 -0
  323. package/node_modules/@schibsted/pulse-utils/dist/cjs/omit.js +9 -0
  324. package/node_modules/@schibsted/pulse-utils/dist/cjs/randomString.js +18 -0
  325. package/node_modules/@schibsted/pulse-utils/dist/cjs/throttle.js +34 -0
  326. package/node_modules/@schibsted/pulse-utils/dist/cjs/webApi.js +21 -0
  327. package/node_modules/@schibsted/pulse-utils/dist/ejs/cookie-config.js +7 -0
  328. package/node_modules/@schibsted/pulse-utils/dist/ejs/cookie.js +81 -0
  329. package/node_modules/@schibsted/pulse-utils/dist/ejs/events.js +103 -0
  330. package/node_modules/@schibsted/pulse-utils/dist/ejs/get.js +15 -0
  331. package/node_modules/@schibsted/pulse-utils/dist/ejs/getRootDomain.js +49 -0
  332. package/node_modules/@schibsted/pulse-utils/dist/ejs/index.js +11 -0
  333. package/node_modules/@schibsted/pulse-utils/dist/ejs/merge.js +35 -0
  334. package/node_modules/@schibsted/pulse-utils/dist/ejs/objects.js +26 -0
  335. package/node_modules/@schibsted/pulse-utils/dist/ejs/omit.js +6 -0
  336. package/node_modules/@schibsted/pulse-utils/dist/ejs/randomString.js +15 -0
  337. package/node_modules/@schibsted/pulse-utils/dist/ejs/throttle.js +31 -0
  338. package/node_modules/@schibsted/pulse-utils/dist/ejs/webApi.js +17 -0
  339. package/node_modules/@schibsted/pulse-utils/dist/types/cookie-config.d.ts +7 -0
  340. package/node_modules/@schibsted/pulse-utils/dist/types/cookie.d.ts +23 -0
  341. package/node_modules/@schibsted/pulse-utils/dist/types/events.d.ts +17 -0
  342. package/node_modules/@schibsted/pulse-utils/dist/types/get.d.ts +1 -0
  343. package/node_modules/@schibsted/pulse-utils/dist/types/getRootDomain.d.ts +13 -0
  344. package/node_modules/@schibsted/pulse-utils/dist/types/index.d.ts +11 -0
  345. package/node_modules/@schibsted/pulse-utils/dist/types/merge.d.ts +4 -0
  346. package/node_modules/@schibsted/pulse-utils/dist/types/objects.d.ts +6 -0
  347. package/node_modules/@schibsted/pulse-utils/dist/types/omit.d.ts +3 -0
  348. package/node_modules/@schibsted/pulse-utils/dist/types/randomString.d.ts +1 -0
  349. package/node_modules/@schibsted/pulse-utils/dist/types/throttle.d.ts +3 -0
  350. package/node_modules/@schibsted/pulse-utils/dist/types/webApi.d.ts +10 -0
  351. package/node_modules/@schibsted/pulse-utils/package.json +36 -0
  352. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/anonymous.js +8 -0
  353. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/baseEvent.js +9 -0
  354. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/consents.js +15 -0
  355. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/device.js +211 -0
  356. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/experiments.js +11 -0
  357. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/navigationType.js +52 -0
  358. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/pageInfo.js +24 -0
  359. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/pageviewId.js +11 -0
  360. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/provider.js +12 -0
  361. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/referrer.js +19 -0
  362. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/session.js +114 -0
  363. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/time.js +15 -0
  364. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/trackerBuilder.js +15 -0
  365. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/user.js +26 -0
  366. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/utm.js +35 -0
  367. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders.js +264 -0
  368. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/index.js +17 -0
  369. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/types.js +2 -0
  370. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/anonymous.js +5 -0
  371. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/baseEvent.js +6 -0
  372. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/consents.js +12 -0
  373. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/device.js +174 -0
  374. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/experiments.js +7 -0
  375. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/navigationType.js +48 -0
  376. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/pageInfo.js +20 -0
  377. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/pageviewId.js +7 -0
  378. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/provider.js +9 -0
  379. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/referrer.js +15 -0
  380. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/session.js +108 -0
  381. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/time.js +11 -0
  382. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/trackerBuilder.js +11 -0
  383. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/user.js +22 -0
  384. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/utm.js +31 -0
  385. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders.js +209 -0
  386. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/index.js +1 -0
  387. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/types.js +1 -0
  388. package/node_modules/@schibsted/tpaas-event-builder/dist/index.d.ts +5171 -0
  389. package/node_modules/@schibsted/tpaas-event-builder/package.json +40 -0
  390. package/node_modules/@schibsted/tpaas-schemas/dist/cjs/constants.js +62 -1
  391. package/node_modules/@schibsted/tpaas-schemas/dist/ejs/constants.js +61 -0
  392. package/node_modules/@schibsted/tpaas-schemas/dist/index.d.ts +128 -0
  393. package/package.json +58 -13
  394. package/CHANGELOG.md +0 -1035
  395. package/dist/index.d.ts +0 -13
  396. package/dist/index.d.ts.map +0 -1
  397. package/dist/index.js +0 -47
  398. package/dist/index.js.map +0 -1
@@ -0,0 +1,368 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.calculateScrollPosition = exports.calculateScrolledPixels = exports.resetViewedContent = void 0;
37
+ exports.addPageLeaveTracking = addPageLeaveTracking;
38
+ exports.leaveTrackingIsActive = leaveTrackingIsActive;
39
+ exports.removePageLeaveTracking = removePageLeaveTracking;
40
+ exports.updatePageLeaveTracking = updatePageLeaveTracking;
41
+ exports.updatePageLeaveEvent = updatePageLeaveEvent;
42
+ exports.trackActivePageLeave = trackActivePageLeave;
43
+ exports.trackPageLeave = trackPageLeave;
44
+ exports.updateViewedContent = updateViewedContent;
45
+ exports.addEventListeners = addEventListeners;
46
+ exports.removeEventListeners = removeEventListeners;
47
+ const pulse_utils_1 = require("@schibsted/pulse-utils");
48
+ const logger = __importStar(require("loglevel"));
49
+ const Tracker_1 = require("../Tracker");
50
+ const constants_1 = require("./constants");
51
+ const types_1 = require("./types");
52
+ let pageLeaveListeners = [];
53
+ let updateViewedContentListeners = [];
54
+ let activityListeners = [];
55
+ let resizeObserver = null;
56
+ let throttledUpdateFn = (0, pulse_utils_1.throttle)(() => undefined, 0);
57
+ let startTime = 0;
58
+ let activityDuration = (0, constants_1.DEFAULT_ACTIVITY_DURATION)();
59
+ let currentPageLeaveEvent = (0, constants_1.DEFAULT_PAGE_LEAVE_EVENT)();
60
+ let originalUseBeacon;
61
+ let currentLeaveEventBuilder = (0, constants_1.DEFAULT_LEAVE_EVENT_BUILDER)();
62
+ let additionalHeightBuilder;
63
+ /*
64
+ Add page leave tracking
65
+ */
66
+ function addPageLeaveTracking(tracker, objectElement, pageElement, eventBuilder, options = {}) {
67
+ additionalHeightBuilder = options.additionalHeightBuilder;
68
+ if (!leaveTrackingIsActive()) {
69
+ originalUseBeacon = tracker.state.useBeacon;
70
+ tracker.state.useBeacon = true;
71
+ currentLeaveEventBuilder = eventBuilder || (0, constants_1.DEFAULT_LEAVE_EVENT_BUILDER)();
72
+ addPageLeaveListeners(tracker);
73
+ addUpdateEventListeners(objectElement, pageElement, options.objectResizable);
74
+ startTime = resetTime();
75
+ logger.debug('addPageLeaveTracking:after:state', currentPageLeaveEvent);
76
+ }
77
+ else {
78
+ logger.warn('addPageLeaveTracking was called while leave-tracking was already active. Consider using updatePageLeaveTracking with resetProperties=false if you want to update the page/object element!');
79
+ }
80
+ }
81
+ function leaveTrackingIsActive() {
82
+ return !(pageLeaveListeners.length === 0 &&
83
+ updateViewedContentListeners.length === 0 &&
84
+ activityListeners.length === 0);
85
+ }
86
+ /*
87
+ Remove page leave tracking
88
+ */
89
+ function removePageLeaveTracking(tracker) {
90
+ tracker.state.useBeacon = originalUseBeacon;
91
+ removePageLeaveListeners();
92
+ removeUpdateEventListeners();
93
+ resetEventDefaults();
94
+ currentLeaveEventBuilder = (0, constants_1.DEFAULT_LEAVE_EVENT_BUILDER)();
95
+ logger.debug('removePageLeaveTracking:after:state', currentLeaveEventBuilder());
96
+ }
97
+ /**
98
+ * Update page leave tracking
99
+ * @param objectElement new object element to track
100
+ * @param pageElement new page element to track
101
+ * @param resetProperties if ALL engagement properties should be reset (duration, scroll etc.)
102
+ */
103
+ function updatePageLeaveTracking(objectElement, pageElement, resetProperties) {
104
+ if (updateViewedContentListeners.length > 0) {
105
+ removeUpdateEventListeners();
106
+ if (resetProperties) {
107
+ resetEventDefaults();
108
+ }
109
+ addUpdateEventListeners(objectElement, pageElement);
110
+ }
111
+ }
112
+ /*
113
+ Add event listeners to the relevant browser events
114
+ When the browser event triggers, we want to send the Leave event
115
+ with the event supplied by the user and the name of the triggered browser event
116
+ */
117
+ function addPageLeaveListeners(tracker) {
118
+ const beforeUnloadListener = addEventListeners([types_1.BrowserEvents.BEFORE_UNLOAD], () => trackPageLeave(tracker, currentLeaveEventBuilder(), types_1.BrowserEvents.BEFORE_UNLOAD), { capture: true });
119
+ const pageHideListener = addEventListeners([types_1.BrowserEvents.PAGE_HIDE], () => trackPageLeave(tracker, currentLeaveEventBuilder(), types_1.BrowserEvents.PAGE_HIDE), { capture: true });
120
+ const popStateListener = addEventListeners([types_1.BrowserEvents.POP_STATE], () => trackPageLeave(tracker, currentLeaveEventBuilder(), types_1.BrowserEvents.POP_STATE), { capture: true });
121
+ const visibilityChangeListener = addEventListeners([types_1.BrowserEvents.VISIBILITY_CHANGE], () => {
122
+ if (document.visibilityState === 'hidden') {
123
+ trackPageLeave(tracker, currentLeaveEventBuilder(), types_1.BrowserEvents.VISIBILITY_CHANGE);
124
+ }
125
+ }, { capture: true });
126
+ pageLeaveListeners.push(...beforeUnloadListener);
127
+ pageLeaveListeners.push(...pageHideListener);
128
+ pageLeaveListeners.push(...popStateListener);
129
+ pageLeaveListeners.push(...visibilityChangeListener);
130
+ }
131
+ /*
132
+ Remove all Leave event listeners
133
+ */
134
+ function removePageLeaveListeners() {
135
+ pageLeaveListeners = removeEventListeners(pageLeaveListeners, { capture: true });
136
+ }
137
+ function removeResizeObserver() {
138
+ if (resizeObserver) {
139
+ resizeObserver.disconnect();
140
+ resizeObserver = null;
141
+ }
142
+ }
143
+ /*
144
+ Add handlers to update the default event.
145
+ The fields that are included can be found here: https://pages.github.schibsted.io/mpt-data/pulse-standard/#leave-article
146
+ */
147
+ function addUpdateEventListeners(objectElement, pageElement, objectResizable = false) {
148
+ addUpdateViewedContentListeners(objectElement, pageElement, objectResizable);
149
+ addUpdateActivityDurationListeners();
150
+ }
151
+ /*
152
+ Remove all handlers for tracking viewed content and durations
153
+ */
154
+ function removeUpdateEventListeners() {
155
+ updateViewedContentListeners = removeEventListeners(updateViewedContentListeners);
156
+ activityListeners = removeEventListeners(activityListeners);
157
+ removeResizeObserver();
158
+ }
159
+ /*
160
+ Reset the default leave tracking state.
161
+ */
162
+ const resetEventDefaults = () => {
163
+ currentPageLeaveEvent = (0, constants_1.DEFAULT_PAGE_LEAVE_EVENT)();
164
+ startTime = resetTime();
165
+ activityDuration = resetActivityDuration();
166
+ };
167
+ const resetActivityDuration = () => {
168
+ clearInterval(activityDuration.interval);
169
+ return (0, constants_1.DEFAULT_ACTIVITY_DURATION)();
170
+ };
171
+ const resetViewedContent = () => {
172
+ currentPageLeaveEvent.engagement = Object.assign({}, currentPageLeaveEvent.engagement, (0, constants_1.DEFAULT_VIEWED_CONTENT)());
173
+ };
174
+ exports.resetViewedContent = resetViewedContent;
175
+ const resetTime = () => Date.now();
176
+ /*
177
+ Update the default Leave event with an event supplied by the brand
178
+ */
179
+ function updatePageLeaveEvent(leaveEvent) {
180
+ (0, pulse_utils_1.pulseMerge)(currentPageLeaveEvent, leaveEvent);
181
+ }
182
+ /*
183
+ Send a Leave event only if Page Leave tracking is active in the SDK
184
+ The event that is ultimately sent is a merge between the default event
185
+ saved in this file and the event supplied by the brand, with preference going
186
+ to the brand event. After the event has been sent, leave page tracking is removed
187
+ and must be explicitly re-added if needed.
188
+ */
189
+ function trackActivePageLeave(tracker, providedEvent, eventName) {
190
+ if (leaveTrackingIsActive()) {
191
+ trackPageLeave(tracker, providedEvent, eventName);
192
+ }
193
+ }
194
+ /*
195
+ Send a Leave event regardless of whether Page Leave tracking is active in the SDK
196
+ The event that is ultimately sent is a merge between the default event
197
+ saved in this file and the event supplied by the brand, with preference going
198
+ to the brand event. After the event has been sent, leave page tracking is removed
199
+ and must be explicitly re-added if needed.
200
+ */
201
+ async function trackPageLeave(tracker, providedEvent, eventName) {
202
+ const endTime = Date.now();
203
+ const duration = endTime - startTime;
204
+ const leaveEvent = providedEvent || currentLeaveEventBuilder();
205
+ const mergedEvent = (0, pulse_utils_1.pulseMerge)({
206
+ ...currentPageLeaveEvent,
207
+ engagement: {
208
+ duration,
209
+ activityDuration: activityDuration.value,
210
+ ...currentPageLeaveEvent.engagement,
211
+ },
212
+ object: {
213
+ ...(eventName && {
214
+ 'spt:custom': {
215
+ 'spt:eventName': eventName,
216
+ },
217
+ }),
218
+ },
219
+ }, leaveEvent);
220
+ logger.debug('trackPageLeave: event', mergedEvent);
221
+ tracker.track('trackerEvent', mergedEvent, { applyBookmarkKey: Tracker_1.BookmarkKeys.PAGE_VIEW });
222
+ removePageLeaveTracking(tracker);
223
+ }
224
+ /*
225
+ Add listeners to update the viewed content fields in the default event
226
+ We listen to 'scroll' and 'resize' browser events
227
+ */
228
+ function addUpdateViewedContentListeners(objectElement, pageElement, objectResizable) {
229
+ updateViewedContent(objectElement, pageElement);
230
+ throttledUpdateFn = (0, pulse_utils_1.throttle)(() => updateViewedContent(objectElement, pageElement), 500);
231
+ updateViewedContentListeners = addEventListeners([types_1.BrowserEvents.SCROLL, types_1.BrowserEvents.RESIZE], throttledUpdateFn);
232
+ if (objectResizable) {
233
+ if (!resizeObserver) {
234
+ resizeObserver = new ResizeObserver(() => {
235
+ (0, exports.resetViewedContent)();
236
+ throttledUpdateFn();
237
+ });
238
+ }
239
+ resizeObserver.observe(objectElement);
240
+ }
241
+ }
242
+ /*
243
+ Update the viewed content fields that are used in the default event.
244
+ The includes fields are:
245
+ {pageScrollPosition} The absolute scroll position on the page in pixels.
246
+ {maxPageScrollPosition} The maximum scroll position the user has been on in pixels.
247
+ {objectViewPercentage} The relative scroll position of the supplied DOM element in pixels.
248
+ {maxObjectViewPercentage} The maximum relative scroll position of the supplied DOM element in pixels.
249
+ {pageViewPercentage} The relative scroll position of the user in %.
250
+ {maxPageViewPercentage} The maximum relative scroll position the user has seen in %.
251
+ */
252
+ function updateViewedContent(objectElement, pageElement) {
253
+ const { totalHeight: additionalTotalHeight, viewedHeight: additionalViewedHeight } = (0, pulse_utils_1.isFunction)(additionalHeightBuilder)
254
+ ? additionalHeightBuilder()
255
+ : { totalHeight: 0, viewedHeight: 0 };
256
+ const objectScrolledPixels = (0, exports.calculateScrolledPixels)(objectElement) + additionalViewedHeight;
257
+ const pageScrolledPixels = (0, exports.calculateScrolledPixels)(pageElement) + additionalViewedHeight;
258
+ const pageScrollPosition = (0, exports.calculateScrollPosition)(pageElement) + additionalViewedHeight;
259
+ const maxPageScrollPosition = Math.max(pageScrollPosition, Number(currentPageLeaveEvent.engagement.maxPageScrollPosition));
260
+ const objectViewPercentage = calculateViewPercentage(objectScrolledPixels, objectElement.scrollHeight + additionalTotalHeight);
261
+ const maxObjectViewPercentage = Math.max(objectViewPercentage, Number(currentPageLeaveEvent.engagement.maxObjectViewPercentage));
262
+ const pageViewPercentage = calculateViewPercentage(pageScrolledPixels, pageElement.scrollHeight + additionalTotalHeight);
263
+ const maxPageViewPercentage = Math.max(pageViewPercentage, Number(currentPageLeaveEvent.engagement.maxPageViewPercentage));
264
+ logger.debug('updateViewedContent:before:engagement', { ...currentPageLeaveEvent.engagement });
265
+ (0, pulse_utils_1.pulseMerge)(currentPageLeaveEvent.engagement, {
266
+ pageScrollPosition,
267
+ maxPageScrollPosition,
268
+ objectViewPercentage,
269
+ maxObjectViewPercentage,
270
+ pageViewPercentage,
271
+ maxPageViewPercentage,
272
+ });
273
+ logger.debug('updateViewedContent:after:engagement', { ...currentPageLeaveEvent.engagement });
274
+ }
275
+ const calculateScrolledPixels = (element) => {
276
+ const rect = element.getBoundingClientRect();
277
+ const scrolledPixels = pulse_utils_1.isBrowser ? element.scrollHeight - rect.bottom + window.innerHeight : 0;
278
+ if (scrolledPixels <= 0) {
279
+ return 0;
280
+ }
281
+ return Math.min(scrolledPixels, element.scrollHeight);
282
+ };
283
+ exports.calculateScrolledPixels = calculateScrolledPixels;
284
+ const calculateScrollPosition = (element) => Math.abs(Math.min(element.getBoundingClientRect().top, 0));
285
+ exports.calculateScrollPosition = calculateScrollPosition;
286
+ /*
287
+ Track the user's activity duration on the page.
288
+ The activity duration is the active time the user spends on the page.
289
+ Active means less than 30 seconds since the user triggered one of the
290
+ 'mousedown', 'mousemove', 'keydown', 'scroll' and/or 'touchstart' browser events.
291
+ */
292
+ function addUpdateActivityDurationListeners() {
293
+ if (activityDuration.interval !== undefined) {
294
+ // If the interval is already set, do not set it again
295
+ return;
296
+ }
297
+ const interval = 1000;
298
+ const activityTimeout = 30 * 1000;
299
+ activityDuration.interval = window.setInterval(() => {
300
+ activityDuration.timeSinceLastActivity += interval;
301
+ if (activityDuration.timeSinceLastActivity < activityTimeout) {
302
+ activityDuration.value += interval;
303
+ }
304
+ }, interval);
305
+ const activityEvents = [
306
+ types_1.BrowserEvents.SCROLL,
307
+ types_1.BrowserEvents.MOUSEDOWN,
308
+ types_1.BrowserEvents.MOUSEMOVE,
309
+ types_1.BrowserEvents.KEYDOWN,
310
+ types_1.BrowserEvents.TOUCHSTART,
311
+ ];
312
+ const passiveSupported = isPassiveSupported();
313
+ activityListeners = addEventListeners(activityEvents, () => {
314
+ activityDuration = resetLastActivity(activityDuration);
315
+ }, passiveSupported ? { passive: true } : false);
316
+ }
317
+ function resetLastActivity(activityDuration) {
318
+ return {
319
+ ...activityDuration,
320
+ timeSinceLastActivity: 0,
321
+ };
322
+ }
323
+ /*
324
+ Add listeners to a set of browser events.
325
+ */
326
+ function addEventListeners(events, handler, options) {
327
+ return events.map((eventName) => {
328
+ if (pulse_utils_1.isBrowser) {
329
+ window.addEventListener(eventName, handler, options);
330
+ }
331
+ return [eventName, handler];
332
+ });
333
+ }
334
+ /*
335
+ Remove a set of listeners for browser events.
336
+ */
337
+ function removeEventListeners(eventListeners, options = {}) {
338
+ for (const [eventName, listener] of eventListeners) {
339
+ if (pulse_utils_1.isBrowser) {
340
+ window.removeEventListener(eventName, listener, options);
341
+ }
342
+ }
343
+ throttledUpdateFn.cancel();
344
+ return [];
345
+ }
346
+ const calculateViewPercentage = (scrolledPixels, scrollHeight) => Math.round((100 * scrolledPixels) / scrollHeight);
347
+ // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#safely_detecting_option_support
348
+ const isPassiveSupported = () => {
349
+ let passiveSupported;
350
+ if (passiveSupported !== undefined) {
351
+ return passiveSupported;
352
+ }
353
+ try {
354
+ const options = {
355
+ get passive() {
356
+ passiveSupported = true;
357
+ return false;
358
+ },
359
+ };
360
+ const noop = () => { };
361
+ window.addEventListener('test', noop, options);
362
+ window.removeEventListener('test', noop);
363
+ }
364
+ catch (_err) {
365
+ passiveSupported = false;
366
+ }
367
+ return passiveSupported;
368
+ };
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BrowserEvents = void 0;
4
+ /**
5
+ * Currently supported browser events
6
+ */
7
+ var BrowserEvents;
8
+ (function (BrowserEvents) {
9
+ BrowserEvents["BEFORE_UNLOAD"] = "beforeunload";
10
+ BrowserEvents["PAGE_HIDE"] = "pagehide";
11
+ BrowserEvents["POP_STATE"] = "popstate";
12
+ BrowserEvents["VISIBILITY_CHANGE"] = "visibilitychange";
13
+ BrowserEvents["SCROLL"] = "scroll";
14
+ BrowserEvents["RESIZE"] = "resize";
15
+ BrowserEvents["MOUSEDOWN"] = "mousedown";
16
+ BrowserEvents["MOUSEMOVE"] = "mousemove";
17
+ BrowserEvents["KEYDOWN"] = "keydown";
18
+ BrowserEvents["TOUCHSTART"] = "touchstart";
19
+ })(BrowserEvents || (exports.BrowserEvents = BrowserEvents = {}));
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_PAGE_LEAVE_EVENT = exports.DEFAULT_ACTIVITY_DURATION = void 0;
4
+ const DEFAULT_ACTIVITY_DURATION = () => ({
5
+ value: 0,
6
+ interval: undefined,
7
+ timeSinceLastActivity: 0,
8
+ });
9
+ exports.DEFAULT_ACTIVITY_DURATION = DEFAULT_ACTIVITY_DURATION;
10
+ const DEFAULT_PAGE_LEAVE_EVENT = () => ({
11
+ objectViewPercentage: 0,
12
+ maxObjectViewPercentage: 0,
13
+ pageViewPercentage: 0,
14
+ maxPageViewPercentage: 0,
15
+ pageScrollPosition: 0,
16
+ maxPageScrollPosition: 0,
17
+ });
18
+ exports.DEFAULT_PAGE_LEAVE_EVENT = DEFAULT_PAGE_LEAVE_EVENT;