@schibsted/pulse-sdk 8.0.0-rc.2 → 8.0.0-rc.21

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 (409) hide show
  1. package/dist/cjs/Tracker.js +582 -471
  2. package/dist/cjs/app-integration.js +3 -3
  3. package/dist/cjs/builders/actor.js +6 -6
  4. package/dist/cjs/builders/consents.js +8 -8
  5. package/dist/cjs/builders/device-browser.js +8 -8
  6. package/dist/cjs/builders/device-node.js +3 -3
  7. package/dist/cjs/builders/events-anonymous-node.js +3 -3
  8. package/dist/cjs/builders/events-node.js +7 -7
  9. package/dist/cjs/builders/experimentMetadata.js +2 -2
  10. package/dist/cjs/builders/experiments.js +1 -0
  11. package/dist/cjs/builders/objects/objects-anonymous-browser.js +2 -2
  12. package/dist/cjs/builders/objects/objects-anonymous-node.js +9 -9
  13. package/dist/cjs/builders/objects/objects-browser.js +2 -2
  14. package/dist/cjs/builders/objects/objects-node.js +10 -10
  15. package/dist/cjs/builders/objects/utils.js +3 -3
  16. package/dist/cjs/builders/origin-browser.js +2 -2
  17. package/dist/cjs/builders/origin-node.js +4 -4
  18. package/dist/cjs/builders/session-browser.js +6 -80
  19. package/dist/cjs/cis-sync/cis-browser.js +219 -0
  20. package/{node_modules/@schibsted/pulse-cis-sync/dist/cjs → dist/cjs/cis-sync}/cis.js +0 -1
  21. package/dist/cjs/cis-sync/eventEmitter.js +37 -0
  22. package/{node_modules/@schibsted/pulse-cis-sync/dist/cjs → dist/cjs/cis-sync}/index.js +0 -1
  23. package/{node_modules/@schibsted/pulse-cis-sync/dist/cjs → dist/cjs/cis-sync}/pulse-cookie.js +53 -63
  24. package/{node_modules/@schibsted/pulse-cis-sync/dist/cjs → dist/cjs/cis-sync}/storage/pulseStorage.js +28 -21
  25. package/dist/cjs/cis-sync/storage/storage.js +24 -0
  26. package/dist/cjs/createPulseTracker.js +4 -4
  27. package/dist/cjs/identity/actor.js +20 -8
  28. package/dist/cjs/identity/advertising.js +1 -1
  29. package/dist/cjs/identity/cis.js +7 -6
  30. package/dist/cjs/index.js +3 -3
  31. package/dist/cjs/leaveTracking/index.js +10 -10
  32. package/dist/cjs/leaveTrackingTpaas/constants.js +2 -7
  33. package/dist/cjs/leaveTrackingTpaas/index.js +70 -46
  34. package/dist/cjs/network-browser.js +3 -3
  35. package/dist/cjs/remoteConfig/index.js +5 -5
  36. package/dist/cjs/session/store.js +96 -0
  37. package/dist/cjs/tpaas-builders/builders/catalogVersion.js +9 -0
  38. package/{node_modules/@schibsted/tpaas-event-builder/dist/cjs → dist/cjs/tpaas-builders}/builders/device.js +50 -72
  39. package/{node_modules/@schibsted/tpaas-event-builder/dist/cjs → dist/cjs/tpaas-builders}/builders/navigationType.js +2 -3
  40. package/dist/cjs/tpaas-builders/builders/pageContent.js +7 -0
  41. package/{node_modules/@schibsted/tpaas-event-builder/dist/cjs → dist/cjs/tpaas-builders}/builders/pageInfo.js +2 -3
  42. package/dist/cjs/tpaas-builders/builders/pageSports.js +7 -0
  43. package/dist/cjs/tpaas-builders/builders/provider.js +19 -0
  44. package/dist/cjs/tpaas-builders/builders/referrer.js +17 -0
  45. package/dist/cjs/tpaas-builders/builders/session.js +5 -0
  46. package/{node_modules/@schibsted/tpaas-event-builder/dist/cjs → dist/cjs/tpaas-builders}/builders/trackerBuilder.js +2 -3
  47. package/{node_modules/@schibsted/tpaas-event-builder/dist/cjs → dist/cjs/tpaas-builders}/builders/user.js +1 -1
  48. package/{node_modules/@schibsted/tpaas-event-builder/dist/cjs → dist/cjs/tpaas-builders}/builders/utm.js +3 -9
  49. package/dist/cjs/tpaas-builders/builders.js +326 -0
  50. package/dist/cjs/tpaas-builders/guards.js +7 -0
  51. package/{node_modules/@schibsted/tpaas-event-builder/dist/cjs → dist/cjs/tpaas-builders}/index.js +3 -0
  52. package/dist/cjs/tpaas-context/adapters.js +85 -0
  53. package/dist/cjs/tpaas-context/browser.js +51 -0
  54. package/dist/cjs/tpaas-context/index.js +6 -0
  55. package/dist/cjs/tpaas-context/prepare.js +177 -0
  56. package/dist/cjs/tpaas-context/session.js +23 -0
  57. package/{node_modules/@schibsted/pulse-cis-sync/dist/cjs → dist/cjs/tpaas-context}/types.js +0 -1
  58. package/{node_modules/@schibsted/tpaas-schemas/dist/cjs → dist/cjs/tpaas-schemas}/constants.js +189 -158
  59. package/{node_modules/@schibsted/tpaas-schemas/dist/cjs → dist/cjs/tpaas-schemas}/index.js +1 -0
  60. package/dist/cjs/tpaas-schemas/types.js +2 -0
  61. package/dist/cjs/tracker-proxy/consts.js +29 -7
  62. package/dist/cjs/tracker-proxy/proxy-provider.js +2 -2
  63. package/{node_modules/@schibsted/pulse-utils/dist/cjs → dist/cjs/utils}/index.js +4 -1
  64. package/dist/cjs/utils/xDomainId.js +15 -0
  65. package/dist/cjs/version.js +1 -1
  66. package/dist/cjs/visibility-observer/index.js +9 -7
  67. package/dist/cjs/wrapper/types/event.js +5 -0
  68. package/dist/cjs/wrapper/utils/map-page-to-page-ref.js +13 -0
  69. package/dist/ejs/Tracker.js +558 -447
  70. package/dist/ejs/app-integration.js +1 -1
  71. package/dist/ejs/builders/actor.js +3 -3
  72. package/dist/ejs/builders/consents.js +4 -4
  73. package/dist/ejs/builders/device-browser.js +2 -2
  74. package/dist/ejs/builders/device-node.js +1 -1
  75. package/dist/ejs/builders/events-anonymous-node.js +1 -1
  76. package/dist/ejs/builders/events-node.js +4 -4
  77. package/dist/ejs/builders/experimentMetadata.js +1 -1
  78. package/dist/ejs/builders/experiments.js +1 -1
  79. package/dist/ejs/builders/objects/objects-anonymous-browser.js +1 -1
  80. package/dist/ejs/builders/objects/objects-anonymous-node.js +1 -1
  81. package/dist/ejs/builders/objects/objects-browser.js +1 -1
  82. package/dist/ejs/builders/objects/objects-node.js +1 -1
  83. package/dist/ejs/builders/objects/utils.js +1 -1
  84. package/dist/ejs/builders/origin-browser.js +1 -1
  85. package/dist/ejs/builders/origin-node.js +1 -1
  86. package/dist/ejs/builders/session-browser.js +5 -77
  87. package/{node_modules/@schibsted/pulse-cis-sync/dist/ejs → dist/ejs/cis-sync}/cis-browser.js +17 -4
  88. package/{node_modules/@schibsted/pulse-cis-sync/dist/ejs → dist/ejs/cis-sync}/cis.js +0 -1
  89. package/{node_modules/@schibsted/pulse-cis-sync/dist/ejs → dist/ejs/cis-sync}/eventEmitter.js +0 -1
  90. package/{node_modules/@schibsted/pulse-cis-sync/dist/ejs → dist/ejs/cis-sync}/index.js +0 -1
  91. package/{node_modules/@schibsted/pulse-cis-sync/dist/ejs → dist/ejs/cis-sync}/pulse-cookie.js +1 -2
  92. package/{node_modules/@schibsted/pulse-cis-sync/dist/ejs → dist/ejs/cis-sync}/storage/pulseStorage.js +12 -4
  93. package/{node_modules/@schibsted/pulse-cis-sync/dist/ejs → dist/ejs/cis-sync}/storage/storage.js +6 -2
  94. package/dist/ejs/createPulseTracker.js +1 -1
  95. package/dist/ejs/identity/actor.js +21 -9
  96. package/dist/ejs/identity/advertising.js +1 -1
  97. package/dist/ejs/identity/cis.js +4 -3
  98. package/dist/ejs/index.js +4 -3
  99. package/dist/ejs/leaveTracking/index.js +1 -1
  100. package/dist/ejs/leaveTrackingTpaas/constants.js +1 -5
  101. package/dist/ejs/leaveTrackingTpaas/index.js +65 -41
  102. package/dist/ejs/network-browser.js +1 -1
  103. package/dist/ejs/remoteConfig/index.js +1 -1
  104. package/dist/ejs/session/store.js +90 -0
  105. package/dist/ejs/tpaas-builders/builders/catalogVersion.js +6 -0
  106. package/{node_modules/@schibsted/tpaas-event-builder/dist/ejs → dist/ejs/tpaas-builders}/builders/device.js +50 -72
  107. package/{node_modules/@schibsted/tpaas-event-builder/dist/ejs → dist/ejs/tpaas-builders}/builders/navigationType.js +2 -3
  108. package/dist/ejs/tpaas-builders/builders/pageContent.js +3 -0
  109. package/{node_modules/@schibsted/tpaas-event-builder/dist/ejs → dist/ejs/tpaas-builders}/builders/pageInfo.js +2 -3
  110. package/dist/ejs/tpaas-builders/builders/pageSports.js +3 -0
  111. package/dist/ejs/tpaas-builders/builders/provider.js +16 -0
  112. package/dist/ejs/tpaas-builders/builders/referrer.js +13 -0
  113. package/dist/ejs/tpaas-builders/builders/session.js +1 -0
  114. package/dist/ejs/tpaas-builders/builders/trackerBuilder.js +10 -0
  115. package/{node_modules/@schibsted/tpaas-event-builder/dist/ejs → dist/ejs/tpaas-builders}/builders/user.js +1 -1
  116. package/{node_modules/@schibsted/tpaas-event-builder/dist/ejs → dist/ejs/tpaas-builders}/builders/utm.js +3 -9
  117. package/dist/ejs/tpaas-builders/builders.js +259 -0
  118. package/dist/ejs/tpaas-builders/guards.js +4 -0
  119. package/dist/ejs/tpaas-builders/index.js +2 -0
  120. package/dist/ejs/tpaas-context/adapters.js +80 -0
  121. package/dist/ejs/tpaas-context/browser.js +47 -0
  122. package/dist/ejs/tpaas-context/index.js +1 -0
  123. package/dist/ejs/tpaas-context/prepare.js +137 -0
  124. package/dist/ejs/tpaas-context/session.js +19 -0
  125. package/{node_modules/@schibsted/tpaas-schemas/dist/ejs → dist/ejs/tpaas-schemas}/constants.js +187 -156
  126. package/{node_modules/@schibsted/tpaas-schemas/dist/ejs → dist/ejs/tpaas-schemas}/index.js +1 -0
  127. package/dist/ejs/tpaas-schemas/types.js +1 -0
  128. package/dist/ejs/tracker-proxy/consts.js +29 -7
  129. package/dist/ejs/tracker-proxy/proxy-provider.js +1 -1
  130. package/{node_modules/@schibsted/pulse-utils/dist/ejs → dist/ejs/utils}/index.js +1 -0
  131. package/dist/ejs/utils/xDomainId.js +11 -0
  132. package/dist/ejs/version.js +1 -1
  133. package/dist/ejs/visibility-observer/index.js +9 -7
  134. package/dist/ejs/wrapper/types/event.js +4 -1
  135. package/dist/ejs/wrapper/utils/map-page-to-page-ref.js +10 -0
  136. package/dist/types/Tracker.d.ts +198 -93
  137. package/dist/types/builders/actor.d.ts +3 -2
  138. package/dist/types/builders/consents.d.ts +3 -3
  139. package/dist/types/builders/device-node.d.ts +2 -2
  140. package/dist/types/builders/events-anonymous-node.d.ts +4 -4
  141. package/dist/types/builders/events-node.d.ts +5 -5
  142. package/dist/types/builders/experiments.d.ts +1 -0
  143. package/dist/types/builders/index.d.ts +1 -1
  144. package/dist/types/builders/objects/objects-anonymous-node.d.ts +1 -1
  145. package/dist/types/builders/objects/objects-node.d.ts +1 -1
  146. package/dist/types/builders/origin-node.d.ts +1 -1
  147. package/dist/types/builders/session-browser.d.ts +1 -13
  148. package/{node_modules/@schibsted/pulse-cis-sync/dist/types → dist/types/cis-sync}/cis-browser.d.ts +1 -0
  149. package/{node_modules/@schibsted/pulse-cis-sync/dist/types → dist/types/cis-sync}/storage/pulseStorage.d.ts +12 -4
  150. package/{node_modules/@schibsted/pulse-cis-sync/dist/cjs → dist/types/cis-sync}/storage/storage.d.ts +2 -1
  151. package/dist/types/config.d.ts +1 -1
  152. package/dist/types/createPulseTracker.d.ts +1 -1
  153. package/dist/types/identity/actor.d.ts +3 -3
  154. package/dist/types/identity/advertising.d.ts +2 -2
  155. package/dist/types/identity/cis.d.ts +4 -4
  156. package/dist/types/index.d.ts +7 -8
  157. package/dist/types/leaveTrackingTpaas/constants.d.ts +1 -5
  158. package/dist/types/leaveTrackingTpaas/index.d.ts +6 -6
  159. package/dist/types/leaveTrackingTpaas/types.d.ts +2 -10
  160. package/dist/types/session/store.d.ts +34 -0
  161. package/dist/types/tpaas-builders/builders/anonymous.d.ts +3 -0
  162. package/dist/types/tpaas-builders/builders/baseEvent.d.ts +3 -0
  163. package/dist/types/tpaas-builders/builders/catalogVersion.d.ts +3 -0
  164. package/dist/types/tpaas-builders/builders/consents.d.ts +5 -0
  165. package/dist/types/tpaas-builders/builders/device.d.ts +5 -0
  166. package/dist/types/tpaas-builders/builders/experiments.d.ts +9 -0
  167. package/dist/types/tpaas-builders/builders/navigationType.d.ts +6 -0
  168. package/dist/types/tpaas-builders/builders/pageContent.d.ts +6 -0
  169. package/dist/types/tpaas-builders/builders/pageInfo.d.ts +7 -0
  170. package/dist/types/tpaas-builders/builders/pageSports.d.ts +6 -0
  171. package/dist/types/tpaas-builders/builders/pageviewId.d.ts +6 -0
  172. package/dist/types/tpaas-builders/builders/provider.d.ts +5 -0
  173. package/dist/types/tpaas-builders/builders/referrer.d.ts +6 -0
  174. package/dist/types/tpaas-builders/builders/session.d.ts +4 -0
  175. package/dist/types/tpaas-builders/builders/time.d.ts +4 -0
  176. package/dist/types/tpaas-builders/builders/trackerBuilder.d.ts +5 -0
  177. package/dist/types/tpaas-builders/builders/user.d.ts +5 -0
  178. package/dist/types/tpaas-builders/builders/utm.d.ts +7 -0
  179. package/dist/types/tpaas-builders/builders.d.ts +141 -0
  180. package/dist/types/tpaas-builders/guards.d.ts +2 -0
  181. package/dist/types/tpaas-builders/index.d.ts +2 -0
  182. package/dist/types/tpaas-context/adapters.d.ts +26 -0
  183. package/dist/types/tpaas-context/browser.d.ts +8 -0
  184. package/dist/types/tpaas-context/index.d.ts +2 -0
  185. package/dist/types/tpaas-context/prepare.d.ts +38 -0
  186. package/dist/types/tpaas-context/session.d.ts +10 -0
  187. package/dist/types/tpaas-context/types.d.ts +66 -0
  188. package/dist/types/tpaas-schemas/constants.d.ts +471 -0
  189. package/dist/types/tpaas-schemas/index.d.ts +5 -0
  190. package/dist/types/tpaas-schemas/types/ITpaasEvent.d.ts +130 -0
  191. package/dist/types/tpaas-schemas/types/schemas/IAnonymousImpressionUIElement.d.ts +58 -0
  192. package/dist/types/tpaas-schemas/types/schemas/ICompletedHealthAction.d.ts +139 -0
  193. package/dist/types/tpaas-schemas/types/schemas/IEngagementAd.d.ts +117 -0
  194. package/dist/types/tpaas-schemas/types/schemas/IEngagementAffiliate.d.ts +144 -0
  195. package/dist/types/tpaas-schemas/types/schemas/IEngagementAudio.d.ts +213 -0
  196. package/dist/types/tpaas-schemas/types/schemas/IEngagementForm.d.ts +111 -0
  197. package/dist/types/tpaas-schemas/types/schemas/IEngagementHealthUIElement.d.ts +133 -0
  198. package/dist/types/tpaas-schemas/types/schemas/IEngagementOffer.d.ts +107 -0
  199. package/dist/types/tpaas-schemas/types/schemas/IEngagementSchoolUIElement.d.ts +107 -0
  200. package/dist/types/tpaas-schemas/types/schemas/IEngagementSportsUIElement.d.ts +157 -0
  201. package/dist/types/tpaas-schemas/types/schemas/IEngagementTeaser.d.ts +114 -0
  202. package/dist/types/tpaas-schemas/types/schemas/IEngagementTvModule.d.ts +133 -0
  203. package/dist/types/tpaas-schemas/types/schemas/IEngagementTvSearch.d.ts +142 -0
  204. package/dist/types/tpaas-schemas/types/schemas/IEngagementUIElement.d.ts +105 -0
  205. package/dist/types/tpaas-schemas/types/schemas/IEngagementVideo.d.ts +238 -0
  206. package/dist/types/tpaas-schemas/types/schemas/IEngagementVideoAd.d.ts +147 -0
  207. package/dist/types/tpaas-schemas/types/schemas/IEngagementWidget.d.ts +91 -0
  208. package/dist/types/tpaas-schemas/types/schemas/IHeartbeatCommercialArticle.d.ts +96 -0
  209. package/dist/types/tpaas-schemas/types/schemas/IImpressionAd.d.ts +115 -0
  210. package/dist/types/tpaas-schemas/types/schemas/IImpressionAdSlot.d.ts +89 -0
  211. package/dist/types/tpaas-schemas/types/schemas/IImpressionAffiliate.d.ts +142 -0
  212. package/dist/types/tpaas-schemas/types/schemas/IImpressionForm.d.ts +113 -0
  213. package/dist/types/tpaas-schemas/types/schemas/IImpressionHealthUIElement.d.ts +138 -0
  214. package/dist/types/tpaas-schemas/types/schemas/IImpressionOffer.d.ts +109 -0
  215. package/dist/types/tpaas-schemas/types/schemas/IImpressionPlayer.d.ts +108 -0
  216. package/dist/types/tpaas-schemas/types/schemas/IImpressionSchoolUIElement.d.ts +109 -0
  217. package/dist/types/tpaas-schemas/types/schemas/IImpressionSportsUIElement.d.ts +159 -0
  218. package/dist/types/tpaas-schemas/types/schemas/IImpressionTeaser.d.ts +112 -0
  219. package/dist/types/tpaas-schemas/types/schemas/IImpressionUIElement.d.ts +107 -0
  220. package/dist/types/tpaas-schemas/types/schemas/IImpressionWidget.d.ts +89 -0
  221. package/dist/types/tpaas-schemas/types/schemas/ILeaveArticle.d.ts +133 -0
  222. package/dist/types/tpaas-schemas/types/schemas/ILeaveAudioPage.d.ts +88 -0
  223. package/dist/types/tpaas-schemas/types/schemas/ILeaveError.d.ts +95 -0
  224. package/dist/types/tpaas-schemas/types/schemas/ILeaveFrontpage.d.ts +83 -0
  225. package/dist/types/tpaas-schemas/types/schemas/ILeaveLandingpage.d.ts +90 -0
  226. package/dist/types/tpaas-schemas/types/schemas/ILeaveListing.d.ts +123 -0
  227. package/dist/types/tpaas-schemas/types/schemas/ILeaveLockedArticle.d.ts +139 -0
  228. package/dist/types/tpaas-schemas/types/schemas/ILeaveLockedAudioPage.d.ts +97 -0
  229. package/dist/types/tpaas-schemas/types/schemas/ILeaveLockedPage.d.ts +90 -0
  230. package/dist/types/tpaas-schemas/types/schemas/ILeaveLockedVideoPage.d.ts +97 -0
  231. package/dist/types/tpaas-schemas/types/schemas/ILeavePage.d.ts +82 -0
  232. package/dist/types/tpaas-schemas/types/schemas/ILeaveSchoolPage.d.ts +84 -0
  233. package/dist/types/tpaas-schemas/types/schemas/ILeaveSportsPage.d.ts +137 -0
  234. package/dist/types/tpaas-schemas/types/schemas/ILeaveVideoPage.d.ts +91 -0
  235. package/dist/types/tpaas-schemas/types/schemas/ILeaveWeather.d.ts +96 -0
  236. package/dist/types/tpaas-schemas/types/schemas/ILoadAd.d.ts +119 -0
  237. package/dist/types/tpaas-schemas/types/schemas/IViewArticle.d.ts +133 -0
  238. package/dist/types/tpaas-schemas/types/schemas/IViewAudioPage.d.ts +87 -0
  239. package/dist/types/tpaas-schemas/types/schemas/IViewError.d.ts +90 -0
  240. package/dist/types/tpaas-schemas/types/schemas/IViewFrontpage.d.ts +80 -0
  241. package/dist/types/tpaas-schemas/types/schemas/IViewHealthPage.d.ts +119 -0
  242. package/dist/types/tpaas-schemas/types/schemas/IViewLandingpage.d.ts +76 -0
  243. package/dist/types/tpaas-schemas/types/schemas/IViewListing.d.ts +118 -0
  244. package/dist/types/tpaas-schemas/types/schemas/IViewLockedArticle.d.ts +139 -0
  245. package/dist/types/tpaas-schemas/types/schemas/IViewLockedAudioPage.d.ts +95 -0
  246. package/dist/types/tpaas-schemas/types/schemas/IViewLockedPage.d.ts +94 -0
  247. package/dist/types/tpaas-schemas/types/schemas/IViewLockedVideoPage.d.ts +95 -0
  248. package/dist/types/tpaas-schemas/types/schemas/IViewPage.d.ts +86 -0
  249. package/dist/types/tpaas-schemas/types/schemas/IViewSchoolPage.d.ts +88 -0
  250. package/dist/types/tpaas-schemas/types/schemas/IViewSportsPage.d.ts +135 -0
  251. package/dist/types/tpaas-schemas/types/schemas/IViewTitle.d.ts +92 -0
  252. package/dist/types/tpaas-schemas/types/schemas/IViewVideoPage.d.ts +87 -0
  253. package/dist/types/tpaas-schemas/types/schemas/IViewWeather.d.ts +94 -0
  254. package/dist/types/tpaas-schemas/types/schemas/index.d.ts +63 -0
  255. package/dist/types/tpaas-schemas/types/templates/IBranded.d.ts +42 -0
  256. package/dist/types/tpaas-schemas/types/templates/IConsents.d.ts +34 -0
  257. package/dist/types/tpaas-schemas/types/templates/IContent.d.ts +56 -0
  258. package/dist/types/tpaas-schemas/types/templates/IDevice.d.ts +62 -0
  259. package/dist/types/tpaas-schemas/types/templates/IEngagement.d.ts +21 -0
  260. package/dist/types/tpaas-schemas/types/templates/IExperiments.d.ts +35 -0
  261. package/dist/types/tpaas-schemas/types/templates/IHealthFood.d.ts +55 -0
  262. package/dist/types/tpaas-schemas/types/templates/IHealthOrigin.d.ts +27 -0
  263. package/dist/types/tpaas-schemas/types/templates/IHealthPhysicalActivity.d.ts +36 -0
  264. package/dist/types/tpaas-schemas/types/templates/IHealthTraining.d.ts +74 -0
  265. package/dist/types/tpaas-schemas/types/templates/IHealthUserData.d.ts +25 -0
  266. package/dist/types/tpaas-schemas/types/templates/ILeave.d.ts +54 -0
  267. package/dist/types/tpaas-schemas/types/templates/ILeaveAudio.d.ts +37 -0
  268. package/dist/types/tpaas-schemas/types/templates/ILeaveStories.d.ts +34 -0
  269. package/dist/types/tpaas-schemas/types/templates/ILocation.d.ts +21 -0
  270. package/dist/types/tpaas-schemas/types/templates/IMetrics.d.ts +32 -0
  271. package/dist/types/tpaas-schemas/types/templates/IPageRef.d.ts +46 -0
  272. package/dist/types/tpaas-schemas/types/templates/IPlacement.d.ts +45 -0
  273. package/dist/types/tpaas-schemas/types/templates/IProvider.d.ts +73 -0
  274. package/dist/types/tpaas-schemas/types/templates/ISchool.d.ts +74 -0
  275. package/dist/types/tpaas-schemas/types/templates/ISession.d.ts +33 -0
  276. package/dist/types/tpaas-schemas/types/templates/ISports.d.ts +98 -0
  277. package/dist/types/tpaas-schemas/types/templates/ISportsUserFeatures.d.ts +28 -0
  278. package/dist/types/tpaas-schemas/types/templates/ITime.d.ts +32 -0
  279. package/dist/types/tpaas-schemas/types/templates/ITracker.d.ts +37 -0
  280. package/dist/types/tpaas-schemas/types/templates/IUser.d.ts +34 -0
  281. package/dist/types/tpaas-schemas/types/templates/IUtmTags.d.ts +38 -0
  282. package/dist/types/tpaas-schemas/types/templates/index.d.ts +27 -0
  283. package/dist/types/tpaas-schemas/types.d.ts +42 -0
  284. package/dist/types/tracker-proxy/consts.d.ts +2 -2
  285. package/dist/types/types.d.ts +21 -17
  286. package/{node_modules/@schibsted/pulse-utils/dist/types → dist/types/utils}/index.d.ts +1 -0
  287. package/dist/types/utils/xDomainId.d.ts +2 -0
  288. package/dist/types/version.d.ts +1 -1
  289. package/dist/types/visibility-observer/index.d.ts +6 -1
  290. package/dist/types/wrapper/engagement/ui-element/types.d.ts +1 -1
  291. package/dist/types/wrapper/types/base-event.d.ts +1 -1
  292. package/dist/types/wrapper/types/event.d.ts +4 -2
  293. package/dist/types/wrapper/types/utils.d.ts +1 -1
  294. package/dist/types/wrapper/utils/map-page-to-page-ref.d.ts +3 -0
  295. package/dist/types/wrapper/view/article/types.d.ts +1 -1
  296. package/dist/types/wrapper/view/frontpage/types.d.ts +1 -1
  297. package/dist/types/wrapper/view/listing/types.d.ts +1 -1
  298. package/dist/types/wrapper/view/loginposter/types.d.ts +1 -1
  299. package/dist/types/wrapper/view/page/types.d.ts +1 -1
  300. package/dist/types/wrapper/view/salesposter/types.d.ts +1 -1
  301. package/dist/types/wrapper/view/ui-element/types.d.ts +1 -1
  302. package/package.json +21 -20
  303. package/dist/cjs/Tracker.test-d.js +0 -76
  304. package/dist/ejs/Tracker.test-d.js +0 -71
  305. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis-browser.d.ts +0 -26
  306. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis-browser.js +0 -273
  307. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis-browser.js.map +0 -1
  308. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis.js.map +0 -1
  309. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/eventEmitter.js +0 -39
  310. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/eventEmitter.js.map +0 -1
  311. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/index.js.map +0 -1
  312. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/pulse-cookie.js.map +0 -1
  313. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/pulseStorage.d.ts +0 -36
  314. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/pulseStorage.js.map +0 -1
  315. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/storage.js +0 -21
  316. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/storage.js.map +0 -1
  317. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/types.js.map +0 -1
  318. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis-browser.d.ts +0 -26
  319. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis-browser.js.map +0 -1
  320. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis.d.ts +0 -10
  321. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis.js.map +0 -1
  322. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/eventEmitter.d.ts +0 -14
  323. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/eventEmitter.js.map +0 -1
  324. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/index.d.ts +0 -4
  325. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/index.js.map +0 -1
  326. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/pulse-cookie.d.ts +0 -55
  327. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/pulse-cookie.js.map +0 -1
  328. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/pulseStorage.d.ts +0 -36
  329. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/pulseStorage.js.map +0 -1
  330. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/storage.d.ts +0 -6
  331. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/storage.js.map +0 -1
  332. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/types.d.ts +0 -24
  333. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/types.js +0 -2
  334. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/types.js.map +0 -1
  335. package/node_modules/@schibsted/pulse-cis-sync/dist/types/cis.d.ts +0 -10
  336. package/node_modules/@schibsted/pulse-cis-sync/dist/types/eventEmitter.d.ts +0 -14
  337. package/node_modules/@schibsted/pulse-cis-sync/dist/types/index.d.ts +0 -4
  338. package/node_modules/@schibsted/pulse-cis-sync/dist/types/pulse-cookie.d.ts +0 -55
  339. package/node_modules/@schibsted/pulse-cis-sync/dist/types/storage/storage.d.ts +0 -6
  340. package/node_modules/@schibsted/pulse-cis-sync/dist/types/types.d.ts +0 -24
  341. package/node_modules/@schibsted/pulse-cis-sync/package.json +0 -44
  342. package/node_modules/@schibsted/pulse-utils/package.json +0 -36
  343. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/provider.js +0 -12
  344. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/referrer.js +0 -19
  345. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/session.js +0 -114
  346. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders.js +0 -272
  347. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/provider.js +0 -9
  348. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/referrer.js +0 -15
  349. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/session.js +0 -108
  350. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/trackerBuilder.js +0 -11
  351. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders.js +0 -215
  352. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/index.js +0 -1
  353. package/node_modules/@schibsted/tpaas-event-builder/dist/index.d.ts +0 -5403
  354. package/node_modules/@schibsted/tpaas-event-builder/package.json +0 -40
  355. package/node_modules/@schibsted/tpaas-schemas/dist/index.d.ts +0 -6176
  356. package/node_modules/@schibsted/tpaas-schemas/package.json +0 -35
  357. /package/{node_modules/@schibsted/tpaas-event-builder/dist/cjs → dist/cjs/cis-sync}/types.js +0 -0
  358. /package/{node_modules/@schibsted/tpaas-event-builder/dist/cjs → dist/cjs/tpaas-builders}/builders/anonymous.js +0 -0
  359. /package/{node_modules/@schibsted/tpaas-event-builder/dist/cjs → dist/cjs/tpaas-builders}/builders/baseEvent.js +0 -0
  360. /package/{node_modules/@schibsted/tpaas-event-builder/dist/cjs → dist/cjs/tpaas-builders}/builders/consents.js +0 -0
  361. /package/{node_modules/@schibsted/tpaas-event-builder/dist/cjs → dist/cjs/tpaas-builders}/builders/experiments.js +0 -0
  362. /package/{node_modules/@schibsted/tpaas-event-builder/dist/cjs → dist/cjs/tpaas-builders}/builders/pageviewId.js +0 -0
  363. /package/{node_modules/@schibsted/tpaas-event-builder/dist/cjs → dist/cjs/tpaas-builders}/builders/time.js +0 -0
  364. /package/{node_modules/@schibsted/pulse-utils/dist/cjs → dist/cjs/utils}/cookie-config.js +0 -0
  365. /package/{node_modules/@schibsted/pulse-utils/dist/cjs → dist/cjs/utils}/cookie.js +0 -0
  366. /package/{node_modules/@schibsted/pulse-utils/dist/cjs → dist/cjs/utils}/events.js +0 -0
  367. /package/{node_modules/@schibsted/pulse-utils/dist/cjs → dist/cjs/utils}/get.js +0 -0
  368. /package/{node_modules/@schibsted/pulse-utils/dist/cjs → dist/cjs/utils}/getRootDomain.js +0 -0
  369. /package/{node_modules/@schibsted/pulse-utils/dist/cjs → dist/cjs/utils}/merge.js +0 -0
  370. /package/{node_modules/@schibsted/pulse-utils/dist/cjs → dist/cjs/utils}/objects.js +0 -0
  371. /package/{node_modules/@schibsted/pulse-utils/dist/cjs → dist/cjs/utils}/omit.js +0 -0
  372. /package/{node_modules/@schibsted/pulse-utils/dist/cjs → dist/cjs/utils}/randomString.js +0 -0
  373. /package/{node_modules/@schibsted/pulse-utils/dist/cjs → dist/cjs/utils}/throttle.js +0 -0
  374. /package/{node_modules/@schibsted/pulse-utils/dist/cjs → dist/cjs/utils}/webApi.js +0 -0
  375. /package/{node_modules/@schibsted/tpaas-event-builder/dist/ejs → dist/ejs/cis-sync}/types.js +0 -0
  376. /package/{node_modules/@schibsted/tpaas-event-builder/dist/ejs → dist/ejs/tpaas-builders}/builders/anonymous.js +0 -0
  377. /package/{node_modules/@schibsted/tpaas-event-builder/dist/ejs → dist/ejs/tpaas-builders}/builders/baseEvent.js +0 -0
  378. /package/{node_modules/@schibsted/tpaas-event-builder/dist/ejs → dist/ejs/tpaas-builders}/builders/consents.js +0 -0
  379. /package/{node_modules/@schibsted/tpaas-event-builder/dist/ejs → dist/ejs/tpaas-builders}/builders/experiments.js +0 -0
  380. /package/{node_modules/@schibsted/tpaas-event-builder/dist/ejs → dist/ejs/tpaas-builders}/builders/pageviewId.js +0 -0
  381. /package/{node_modules/@schibsted/tpaas-event-builder/dist/ejs → dist/ejs/tpaas-builders}/builders/time.js +0 -0
  382. /package/dist/{types/Tracker.test-d.d.ts → ejs/tpaas-context/types.js} +0 -0
  383. /package/{node_modules/@schibsted/pulse-utils/dist/ejs → dist/ejs/utils}/cookie-config.js +0 -0
  384. /package/{node_modules/@schibsted/pulse-utils/dist/ejs → dist/ejs/utils}/cookie.js +0 -0
  385. /package/{node_modules/@schibsted/pulse-utils/dist/ejs → dist/ejs/utils}/events.js +0 -0
  386. /package/{node_modules/@schibsted/pulse-utils/dist/ejs → dist/ejs/utils}/get.js +0 -0
  387. /package/{node_modules/@schibsted/pulse-utils/dist/ejs → dist/ejs/utils}/getRootDomain.js +0 -0
  388. /package/{node_modules/@schibsted/pulse-utils/dist/ejs → dist/ejs/utils}/merge.js +0 -0
  389. /package/{node_modules/@schibsted/pulse-utils/dist/ejs → dist/ejs/utils}/objects.js +0 -0
  390. /package/{node_modules/@schibsted/pulse-utils/dist/ejs → dist/ejs/utils}/omit.js +0 -0
  391. /package/{node_modules/@schibsted/pulse-utils/dist/ejs → dist/ejs/utils}/randomString.js +0 -0
  392. /package/{node_modules/@schibsted/pulse-utils/dist/ejs → dist/ejs/utils}/throttle.js +0 -0
  393. /package/{node_modules/@schibsted/pulse-utils/dist/ejs → dist/ejs/utils}/webApi.js +0 -0
  394. /package/{node_modules/@schibsted/pulse-cis-sync/dist/cjs → dist/types/cis-sync}/cis.d.ts +0 -0
  395. /package/{node_modules/@schibsted/pulse-cis-sync/dist/cjs → dist/types/cis-sync}/eventEmitter.d.ts +0 -0
  396. /package/{node_modules/@schibsted/pulse-cis-sync/dist/cjs → dist/types/cis-sync}/index.d.ts +0 -0
  397. /package/{node_modules/@schibsted/pulse-cis-sync/dist/cjs → dist/types/cis-sync}/pulse-cookie.d.ts +0 -0
  398. /package/{node_modules/@schibsted/pulse-cis-sync/dist/cjs → dist/types/cis-sync}/types.d.ts +0 -0
  399. /package/{node_modules/@schibsted/pulse-utils/dist/types → dist/types/utils}/cookie-config.d.ts +0 -0
  400. /package/{node_modules/@schibsted/pulse-utils/dist/types → dist/types/utils}/cookie.d.ts +0 -0
  401. /package/{node_modules/@schibsted/pulse-utils/dist/types → dist/types/utils}/events.d.ts +0 -0
  402. /package/{node_modules/@schibsted/pulse-utils/dist/types → dist/types/utils}/get.d.ts +0 -0
  403. /package/{node_modules/@schibsted/pulse-utils/dist/types → dist/types/utils}/getRootDomain.d.ts +0 -0
  404. /package/{node_modules/@schibsted/pulse-utils/dist/types → dist/types/utils}/merge.d.ts +0 -0
  405. /package/{node_modules/@schibsted/pulse-utils/dist/types → dist/types/utils}/objects.d.ts +0 -0
  406. /package/{node_modules/@schibsted/pulse-utils/dist/types → dist/types/utils}/omit.d.ts +0 -0
  407. /package/{node_modules/@schibsted/pulse-utils/dist/types → dist/types/utils}/randomString.d.ts +0 -0
  408. /package/{node_modules/@schibsted/pulse-utils/dist/types → dist/types/utils}/throttle.d.ts +0 -0
  409. /package/{node_modules/@schibsted/pulse-utils/dist/types → dist/types/utils}/webApi.d.ts +0 -0
@@ -1,272 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCommonBuildersOutput = void 0;
4
- exports.buildAnonymousViewUIElementEvent = buildAnonymousViewUIElementEvent;
5
- exports.buildViewArticleEvent = buildViewArticleEvent;
6
- exports.buildViewAudioEvent = buildViewAudioEvent;
7
- exports.buildViewAudioPageEvent = buildViewAudioPageEvent;
8
- exports.buildViewErrorEvent = buildViewErrorEvent;
9
- exports.buildViewFrontpageEvent = buildViewFrontpageEvent;
10
- exports.buildViewLandingpageEvent = buildViewLandingpageEvent;
11
- exports.buildViewListingEvent = buildViewListingEvent;
12
- exports.buildViewLockedArticleEvent = buildViewLockedArticleEvent;
13
- exports.buildViewLockedAudioEvent = buildViewLockedAudioEvent;
14
- exports.buildViewLockedAudioPageEvent = buildViewLockedAudioPageEvent;
15
- exports.buildViewLockedVideoEvent = buildViewLockedVideoEvent;
16
- exports.buildViewLockedVideoPageEvent = buildViewLockedVideoPageEvent;
17
- exports.buildLeaveLockedVideoPageEvent = buildLeaveLockedVideoPageEvent;
18
- exports.buildViewPageEvent = buildViewPageEvent;
19
- exports.buildViewSportsPageEvent = buildViewSportsPageEvent;
20
- exports.buildViewTitleEvent = buildViewTitleEvent;
21
- exports.buildViewVideoEvent = buildViewVideoEvent;
22
- exports.buildViewVideoPageEvent = buildViewVideoPageEvent;
23
- exports.buildViewWeatherEvent = buildViewWeatherEvent;
24
- exports.buildLeaveArticleEvent = buildLeaveArticleEvent;
25
- exports.buildLeaveAudioPageEvent = buildLeaveAudioPageEvent;
26
- exports.buildLeaveErrorEvent = buildLeaveErrorEvent;
27
- exports.buildLeaveFrontpageEvent = buildLeaveFrontpageEvent;
28
- exports.buildLeaveLandingpageEvent = buildLeaveLandingpageEvent;
29
- exports.buildLeaveListingEvent = buildLeaveListingEvent;
30
- exports.buildLeaveLockedArticleEvent = buildLeaveLockedArticleEvent;
31
- exports.buildLeaveLockedAudioEvent = buildLeaveLockedAudioEvent;
32
- exports.buildLeaveLockedAudioPageEvent = buildLeaveLockedAudioPageEvent;
33
- exports.buildLeaveLockedVideoEvent = buildLeaveLockedVideoEvent;
34
- exports.buildLeavePageEvent = buildLeavePageEvent;
35
- exports.buildLeaveSportsPageEvent = buildLeaveSportsPageEvent;
36
- exports.buildLeaveVideoPageEvent = buildLeaveVideoPageEvent;
37
- exports.buildLeaveWeatherEvent = buildLeaveWeatherEvent;
38
- exports.buildEngagementAudioEvent = buildEngagementAudioEvent;
39
- exports.buildEngagementFormEvent = buildEngagementFormEvent;
40
- exports.buildEngagementOfferEvent = buildEngagementOfferEvent;
41
- exports.buildEngagementTeaserEvent = buildEngagementTeaserEvent;
42
- exports.buildEngagementUIElementEvent = buildEngagementUIElementEvent;
43
- exports.buildEngagementVideoEvent = buildEngagementVideoEvent;
44
- exports.buildEngagementVideoAdEvent = buildEngagementVideoAdEvent;
45
- exports.buildEngagementWidgetEvent = buildEngagementWidgetEvent;
46
- exports.buildCompletedHealthActionEvent = buildCompletedHealthActionEvent;
47
- exports.buildEngagementHealthUIElementEvent = buildEngagementHealthUIElementEvent;
48
- exports.buildViewHealthPageEvent = buildViewHealthPageEvent;
49
- exports.buildImpressionHealthUIElementEvent = buildImpressionHealthUIElementEvent;
50
- exports.buildImpressionAdSlotEvent = buildImpressionAdSlotEvent;
51
- exports.buildImpressionFormEvent = buildImpressionFormEvent;
52
- exports.buildImpressionOfferEvent = buildImpressionOfferEvent;
53
- exports.buildImpressionPlayerEvent = buildImpressionPlayerEvent;
54
- exports.buildImpressionTeaserEvent = buildImpressionTeaserEvent;
55
- exports.buildImpressionUIElementEvent = buildImpressionUIElementEvent;
56
- exports.buildImpressionWidgetEvent = buildImpressionWidgetEvent;
57
- const tpaas_schemas_1 = require("@schibsted/tpaas-schemas");
58
- const ts_deepmerge_1 = require("ts-deepmerge");
59
- const anonymous_1 = require("./builders/anonymous");
60
- const baseEvent_1 = require("./builders/baseEvent");
61
- const consents_1 = require("./builders/consents");
62
- const device_1 = require("./builders/device");
63
- const experiments_1 = require("./builders/experiments");
64
- const navigationType_1 = require("./builders/navigationType");
65
- const pageInfo_1 = require("./builders/pageInfo");
66
- const pageviewId_1 = require("./builders/pageviewId");
67
- const provider_1 = require("./builders/provider");
68
- const referrer_1 = require("./builders/referrer");
69
- const session_1 = require("./builders/session");
70
- const time_1 = require("./builders/time");
71
- const trackerBuilder_1 = require("./builders/trackerBuilder");
72
- const user_1 = require("./builders/user");
73
- const utm_1 = require("./builders/utm");
74
- /**
75
- * Common builders output to be merged into all events
76
- * @param createdAt
77
- * @param dependencies {TpaasEventBuilderDependencies}
78
- * @private
79
- */
80
- const getCommonBuildersOutput = (createdAt, { autoTrackerVersion, isHybrid, version, environmentId, jwe, user, consents, providerId, pageviewId, currentPage, }) => {
81
- return (0, ts_deepmerge_1.merge)((0, trackerBuilder_1.builder)(autoTrackerVersion, isHybrid, version), (0, time_1.builder)(createdAt), (0, session_1.builder)(createdAt), (0, device_1.builder)(environmentId, jwe), (0, user_1.builder)(user), (0, baseEvent_1.builder)(), (0, consents_1.builder)(consents), (0, provider_1.builder)(providerId), (0, pageInfo_1.builder)(currentPage), (0, pageviewId_1.builder)(pageviewId), (0, utm_1.builder)(), (0, referrer_1.builder)());
82
- };
83
- exports.getCommonBuildersOutput = getCommonBuildersOutput;
84
- // there's a bug in the ts-deepmerge library that doesn't properly resolve merging optionals with required properties
85
- // due to this, we need to manually omit navigationType from the input before merging
86
- // it has no effect on the final value since navigationType will always be set by the navigationTypeBuilder.
87
- // But it makes TS happy in an elegant way, without type assertions
88
- const omitNavigationType = (input) => {
89
- const { page, ...rest } = input;
90
- const { navigationType: _, ...pageRest } = page;
91
- return {
92
- ...rest,
93
- page: {
94
- ...pageRest,
95
- },
96
- };
97
- };
98
- // #region AnonymousView Event Builders
99
- function buildAnonymousViewUIElementEvent(input, dependencies) {
100
- const createdAt = new Date();
101
- const { autoTrackerVersion, isHybrid, version, pageviewId, providerId } = dependencies;
102
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.AnonymousViewUIElement, (0, baseEvent_1.builder)(), (0, trackerBuilder_1.builder)(autoTrackerVersion, isHybrid, version), (0, time_1.builder)(createdAt), (0, pageviewId_1.builder)(pageviewId), (0, utm_1.builder)(), (0, anonymous_1.builder)(), (0, provider_1.builder)(providerId), (0, referrer_1.builder)(), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
103
- }
104
- // #endregion
105
- // #region View Event Builders
106
- function buildViewArticleEvent(input, dependencies) {
107
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewArticle, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
108
- }
109
- function buildViewAudioEvent(input, dependencies) {
110
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewAudio, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
111
- }
112
- function buildViewAudioPageEvent(input, dependencies) {
113
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewAudioPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments), (0, navigationType_1.builder)(input.page.navigationType));
114
- }
115
- function buildViewErrorEvent(input, dependencies) {
116
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewError, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
117
- }
118
- function buildViewFrontpageEvent(input, dependencies) {
119
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewFrontpage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments), (0, navigationType_1.builder)(input.page.navigationType));
120
- }
121
- function buildViewLandingpageEvent(input, dependencies) {
122
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewLandingpage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
123
- }
124
- function buildViewListingEvent(input, dependencies) {
125
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewListing, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
126
- }
127
- function buildViewLockedArticleEvent(input, dependencies) {
128
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewLockedArticle, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
129
- }
130
- function buildViewLockedAudioEvent(input, dependencies) {
131
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewLockedAudio, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
132
- }
133
- function buildViewLockedAudioPageEvent(input, dependencies) {
134
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewLockedAudioPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
135
- }
136
- function buildViewLockedVideoEvent(input, dependencies) {
137
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewLockedVideo, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
138
- }
139
- function buildViewLockedVideoPageEvent(input, dependencies) {
140
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewLockedVideoPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
141
- }
142
- function buildLeaveLockedVideoPageEvent(input, dependencies) {
143
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.LeaveLockedVideoPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType));
144
- }
145
- function buildViewPageEvent(input, dependencies) {
146
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments), (0, navigationType_1.builder)(input.page.navigationType));
147
- }
148
- function buildViewSportsPageEvent(input, dependencies) {
149
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewSportsPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments), (0, navigationType_1.builder)(input.page.navigationType));
150
- }
151
- function buildViewTitleEvent(input, dependencies) {
152
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewTitle, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments), (0, navigationType_1.builder)(input.page.navigationType));
153
- }
154
- function buildViewVideoEvent(input, dependencies) {
155
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewVideo, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments), (0, navigationType_1.builder)(input.page.navigationType));
156
- }
157
- function buildViewVideoPageEvent(input, dependencies) {
158
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewVideoPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments), (0, navigationType_1.builder)(input.page.navigationType));
159
- }
160
- function buildViewWeatherEvent(input, dependencies) {
161
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewWeather, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments), (0, navigationType_1.builder)(input.page.navigationType));
162
- }
163
- // #endregion
164
- // #region Leave Event Builders
165
- function buildLeaveArticleEvent(input, dependencies) {
166
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.LeaveArticle, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
167
- }
168
- function buildLeaveAudioPageEvent(input, dependencies) {
169
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.LeaveAudioPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType));
170
- }
171
- function buildLeaveErrorEvent(input, dependencies) {
172
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.LeaveError, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
173
- }
174
- function buildLeaveFrontpageEvent(input, dependencies) {
175
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.LeaveFrontpage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
176
- }
177
- function buildLeaveLandingpageEvent(input, dependencies) {
178
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.LeaveLandingpage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
179
- }
180
- function buildLeaveListingEvent(input, dependencies) {
181
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.LeaveListing, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
182
- }
183
- function buildLeaveLockedArticleEvent(input, dependencies) {
184
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.LeaveLockedArticle, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
185
- }
186
- function buildLeaveLockedAudioEvent(input, dependencies) {
187
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.LeaveLockedAudio, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
188
- }
189
- function buildLeaveLockedAudioPageEvent(input, dependencies) {
190
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.LeaveLockedAudioPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType));
191
- }
192
- function buildLeaveLockedVideoEvent(input, dependencies) {
193
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.LeaveLockedVideo, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
194
- }
195
- function buildLeavePageEvent(input, dependencies) {
196
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.LeavePage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
197
- }
198
- function buildLeaveSportsPageEvent(input, dependencies) {
199
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.LeaveSportsPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
200
- }
201
- function buildLeaveVideoPageEvent(input, dependencies) {
202
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.LeaveVideoPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType));
203
- }
204
- function buildLeaveWeatherEvent(input, dependencies) {
205
- const createdAt = new Date();
206
- const { autoTrackerVersion, isHybrid, version, providerId, user, experiments } = dependencies;
207
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.LeaveWeather, (0, time_1.builder)(createdAt), (0, trackerBuilder_1.builder)(autoTrackerVersion, isHybrid, version), (0, baseEvent_1.builder)(), (0, provider_1.builder)(providerId), (0, user_1.builder)(user), (0, experiments_1.builder)(experiments, input.experiments), (0, consents_1.builder)(dependencies.consents), (0, device_1.builder)(dependencies.environmentId, dependencies.jwe));
208
- }
209
- // #endregion
210
- // #region Engagement Event Builders
211
- function buildEngagementAudioEvent(input, dependencies) {
212
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.EngagementAudio, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
213
- }
214
- function buildEngagementFormEvent(input, dependencies) {
215
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.EngagementForm, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
216
- }
217
- function buildEngagementOfferEvent(input, dependencies) {
218
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.EngagementOffer, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
219
- }
220
- function buildEngagementTeaserEvent(input, dependencies) {
221
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.EngagementTeaser, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
222
- }
223
- function buildEngagementUIElementEvent(input, dependencies) {
224
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.EngagementUIElement, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
225
- }
226
- function buildEngagementVideoEvent(input, dependencies) {
227
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.EngagementVideo, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
228
- }
229
- function buildEngagementVideoAdEvent(input, dependencies) {
230
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.EngagementVideoAd, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
231
- }
232
- function buildEngagementWidgetEvent(input, dependencies) {
233
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.EngagementWidget, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
234
- }
235
- // #endregion
236
- // #region Health Event Builders
237
- function buildCompletedHealthActionEvent(input, dependencies) {
238
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.CompletedHealthAction, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
239
- }
240
- function buildEngagementHealthUIElementEvent(input, dependencies) {
241
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.EngagementHealthUIElement, (0, exports.getCommonBuildersOutput)(new Date(), dependencies));
242
- }
243
- function buildViewHealthPageEvent(input, dependencies) {
244
- return (0, ts_deepmerge_1.merge)(omitNavigationType(input), tpaas_schemas_1.ViewHealthPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, navigationType_1.builder)(input.page.navigationType));
245
- }
246
- function buildImpressionHealthUIElementEvent(input, dependencies) {
247
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.ImpressionHealthUIElement, (0, exports.getCommonBuildersOutput)(new Date(), dependencies));
248
- }
249
- // #endregion
250
- // #region Impression Event Builders
251
- function buildImpressionAdSlotEvent(input, dependencies) {
252
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.ImpressionAdSlot, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
253
- }
254
- function buildImpressionFormEvent(input, dependencies) {
255
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.ImpressionForm, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
256
- }
257
- function buildImpressionOfferEvent(input, dependencies) {
258
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.ImpressionOffer, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
259
- }
260
- function buildImpressionPlayerEvent(input, dependencies) {
261
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.ImpressionPlayer, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
262
- }
263
- function buildImpressionTeaserEvent(input, dependencies) {
264
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.ImpressionTeaser, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
265
- }
266
- function buildImpressionUIElementEvent(input, dependencies) {
267
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.ImpressionUIElement, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
268
- }
269
- function buildImpressionWidgetEvent(input, dependencies) {
270
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.ImpressionWidget, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
271
- }
272
- // #endregion
@@ -1,9 +0,0 @@
1
- const generateProviderSDRN = (providerId) => `sdrn:schibsted:client:${providerId}`;
2
- export function builder(providerId) {
3
- return {
4
- provider: {
5
- providerId,
6
- providerSdrn: generateProviderSDRN(providerId),
7
- },
8
- };
9
- }
@@ -1,15 +0,0 @@
1
- import { isBrowser } from '@schibsted/pulse-utils';
2
- export const builder = () => {
3
- if (isBrowser && document.referrer) {
4
- return {
5
- page: {
6
- referrer: {
7
- url: document.referrer,
8
- },
9
- },
10
- };
11
- }
12
- return {
13
- page: {},
14
- };
15
- };
@@ -1,108 +0,0 @@
1
- import { cookieConfig, getRootDomain, isBrowser, readCookie, webApi, writeCookie } from '@schibsted/pulse-utils';
2
- import { v4 as uuid } from 'uuid';
3
- const { USE_LOCALSTORAGE } = cookieConfig;
4
- const SESSION_STORAGE_KEY = '_pulsesession';
5
- // 1. there are pros and cons to outputting { session: ISession } instead of just ISession
6
- // this allows us to always have the session builde populate the same property (in this case '.session')
7
- // if in the future we want the session builder to populate other properties, we should just output ISession and move the mapping logic in index.ts, as part of buildersByEventType
8
- // 2. we don't need builder-level "isBrowser" checks. If an event is not supposed to be fired from the browser, then the builder shouldn't be assigned to it in buildersByEventType in index.ts
9
- // however, we should keep minimal "isBrowser" checks before webApi calls because the code might run in SSR environments
10
- export const builder = (createdAt) => {
11
- const oldSession = readSession();
12
- const newSession = updateSession(createdAt, oldSession);
13
- writeSession(newSession);
14
- const { sessionId, startTime, isFirstEvent } = newSession;
15
- return {
16
- session: {
17
- isFirstEvent,
18
- sessionId,
19
- startTime,
20
- xDomainId: getXDomainId(),
21
- },
22
- };
23
- };
24
- // TODO: do we need to save this in the session, as part of the localStorage?
25
- // or should we just read it from the URL params every time?
26
- const getXDomainId = () => {
27
- if (!isBrowser) {
28
- return;
29
- }
30
- const urlParams = new URLSearchParams(window?.location?.search ?? '');
31
- return urlParams.get('x_domain_id') || undefined;
32
- };
33
- // Return parsed json from cookie (or localStorage if enabled), or undefined.
34
- // exported for testing purposes.
35
- export const readAndParse = (storageKey) => {
36
- try {
37
- const storedSession = readCookie(storageKey);
38
- if (storedSession) {
39
- return JSON.parse(storedSession);
40
- }
41
- }
42
- catch (_e) {
43
- // If localStorage/cookie is not available, we treat it as if
44
- // the value is undefined.
45
- // If data is unparseable, we also ignore it.
46
- return undefined;
47
- }
48
- return undefined;
49
- };
50
- // Read and parse session data from localStorage.
51
- // Any invalid or unreadable data is ignored.
52
- export const readSession = () => {
53
- const storedSession = readAndParse(SESSION_STORAGE_KEY);
54
- if (storedSession) {
55
- const [sessionId, startTimeMs, lastEventTimeMs] = storedSession;
56
- const startTime = new Date(startTimeMs);
57
- const lastEventTime = new Date(lastEventTimeMs);
58
- if (sessionId &&
59
- startTime &&
60
- lastEventTime &&
61
- !Number.isNaN(startTime.getTime()) &&
62
- !Number.isNaN(lastEventTime.getTime())) {
63
- return { sessionId, startTime: startTime.toISOString(), lastEventTime, isFirstEvent: false };
64
- }
65
- }
66
- return undefined;
67
- };
68
- // Write session data to localStorage
69
- const writeSession = (session) => {
70
- const { sessionId, startTime, lastEventTime } = session;
71
- try {
72
- const sessionToStore = [sessionId, new Date(startTime).getTime(), lastEventTime.getTime()];
73
- const halfHourInDays = 1.0 / (24 * 2);
74
- writeCookie(SESSION_STORAGE_KEY, JSON.stringify(sessionToStore), getRootDomain(), halfHourInDays);
75
- // Delete old localStorage-based session if needed
76
- if (!USE_LOCALSTORAGE) {
77
- // removeItem will do nothing to a non-existing item.
78
- // use webApi.localStorage instead of window.localStorage
79
- webApi.localStorage?.removeItem(SESSION_STORAGE_KEY);
80
- }
81
- }
82
- catch (_e) {
83
- // If we can't write the session, we just move on in life
84
- }
85
- };
86
- const createSession = (eventCreationDate) => {
87
- const now = eventCreationDate ?? new Date();
88
- return {
89
- sessionId: uuid(),
90
- startTime: now.toISOString(),
91
- lastEventTime: now,
92
- isFirstEvent: true,
93
- };
94
- };
95
- const updateSession = (eventCreationDate, session) => {
96
- const sessionMaxInterval = 30 * 60 * 1000; // 30 minutes in milliseconds
97
- if (!session || session.lastEventTime.getTime() < eventCreationDate.getTime() - sessionMaxInterval) {
98
- return createSession(eventCreationDate);
99
- }
100
- return {
101
- ...session,
102
- // to ensure backwards compatibility between the new sessionId format and old sessions
103
- // we need to remove the SDRN prefix from old sessionIds
104
- sessionId: session.sessionId.replace('sdrn:schibsted:session:', ''),
105
- isFirstEvent: false,
106
- lastEventTime: eventCreationDate,
107
- };
108
- };
@@ -1,11 +0,0 @@
1
- export const builder = (autoTrackerVersion, isHybrid, version) => {
2
- return {
3
- tracker: {
4
- autoTrackerVersion,
5
- isAutoTracker: !!autoTrackerVersion,
6
- isHybrid,
7
- trackerType: 'JS',
8
- version,
9
- },
10
- };
11
- };
@@ -1,215 +0,0 @@
1
- import { AnonymousViewUIElement, CompletedHealthAction, EngagementAudio, EngagementForm, EngagementHealthUIElement, EngagementOffer, EngagementTeaser, EngagementUIElement, EngagementVideo, EngagementVideoAd, EngagementWidget, ImpressionAdSlot, ImpressionForm, ImpressionHealthUIElement, ImpressionOffer, ImpressionPlayer, ImpressionTeaser, ImpressionUIElement, ImpressionWidget, LeaveArticle, LeaveAudioPage, LeaveError, LeaveFrontpage, LeaveLandingpage, LeaveListing, LeaveLockedArticle, LeaveLockedAudio, LeaveLockedAudioPage, LeaveLockedVideo, LeaveLockedVideoPage, LeavePage, LeaveSportsPage, LeaveVideoPage, LeaveWeather, ViewArticle, ViewAudio, ViewAudioPage, ViewError, ViewFrontpage, ViewHealthPage, ViewLandingpage, ViewListing, ViewLockedArticle, ViewLockedAudio, ViewLockedAudioPage, ViewLockedVideo, ViewLockedVideoPage, ViewPage, ViewSportsPage, ViewTitle, ViewVideo, ViewVideoPage, ViewWeather, } from '@schibsted/tpaas-schemas';
2
- import { merge } from 'ts-deepmerge';
3
- import { builder as anonymousBuilder } from './builders/anonymous';
4
- import { builder as baseEventBuilder } from './builders/baseEvent';
5
- import { builder as consentsBuilder } from './builders/consents';
6
- import { builder as deviceBuilder } from './builders/device';
7
- import { builder as experimentsBuilder } from './builders/experiments';
8
- import { builder as navigationTypeBuilder } from './builders/navigationType';
9
- import { builder as pageInfoBuilder } from './builders/pageInfo';
10
- import { builder as pageviewIdBuilder } from './builders/pageviewId';
11
- import { builder as providerBuilder } from './builders/provider';
12
- import { builder as referrerBuilder } from './builders/referrer';
13
- import { builder as sessionBuilder } from './builders/session';
14
- import { builder as timeBuilder } from './builders/time';
15
- import { builder as trackerBuilder } from './builders/trackerBuilder';
16
- import { builder as userBuilder } from './builders/user';
17
- import { builder as utmBuilder } from './builders/utm';
18
- /**
19
- * Common builders output to be merged into all events
20
- * @param createdAt
21
- * @param dependencies {TpaasEventBuilderDependencies}
22
- * @private
23
- */
24
- export const getCommonBuildersOutput = (createdAt, { autoTrackerVersion, isHybrid, version, environmentId, jwe, user, consents, providerId, pageviewId, currentPage, }) => {
25
- return merge(trackerBuilder(autoTrackerVersion, isHybrid, version), timeBuilder(createdAt), sessionBuilder(createdAt), deviceBuilder(environmentId, jwe), userBuilder(user), baseEventBuilder(), consentsBuilder(consents), providerBuilder(providerId), pageInfoBuilder(currentPage), pageviewIdBuilder(pageviewId), utmBuilder(), referrerBuilder());
26
- };
27
- // there's a bug in the ts-deepmerge library that doesn't properly resolve merging optionals with required properties
28
- // due to this, we need to manually omit navigationType from the input before merging
29
- // it has no effect on the final value since navigationType will always be set by the navigationTypeBuilder.
30
- // But it makes TS happy in an elegant way, without type assertions
31
- const omitNavigationType = (input) => {
32
- const { page, ...rest } = input;
33
- const { navigationType: _, ...pageRest } = page;
34
- return {
35
- ...rest,
36
- page: {
37
- ...pageRest,
38
- },
39
- };
40
- };
41
- // #region AnonymousView Event Builders
42
- export function buildAnonymousViewUIElementEvent(input, dependencies) {
43
- const createdAt = new Date();
44
- const { autoTrackerVersion, isHybrid, version, pageviewId, providerId } = dependencies;
45
- return merge(input, AnonymousViewUIElement, baseEventBuilder(), trackerBuilder(autoTrackerVersion, isHybrid, version), timeBuilder(createdAt), pageviewIdBuilder(pageviewId), utmBuilder(), anonymousBuilder(), providerBuilder(providerId), referrerBuilder(), experimentsBuilder(dependencies.experiments, input.experiments));
46
- }
47
- // #endregion
48
- // #region View Event Builders
49
- export function buildViewArticleEvent(input, dependencies) {
50
- return merge(omitNavigationType(input), ViewArticle, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
51
- }
52
- export function buildViewAudioEvent(input, dependencies) {
53
- return merge(omitNavigationType(input), ViewAudio, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
54
- }
55
- export function buildViewAudioPageEvent(input, dependencies) {
56
- return merge(omitNavigationType(input), ViewAudioPage, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page.navigationType));
57
- }
58
- export function buildViewErrorEvent(input, dependencies) {
59
- return merge(omitNavigationType(input), ViewError, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
60
- }
61
- export function buildViewFrontpageEvent(input, dependencies) {
62
- return merge(omitNavigationType(input), ViewFrontpage, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page.navigationType));
63
- }
64
- export function buildViewLandingpageEvent(input, dependencies) {
65
- return merge(omitNavigationType(input), ViewLandingpage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
66
- }
67
- export function buildViewListingEvent(input, dependencies) {
68
- return merge(omitNavigationType(input), ViewListing, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
69
- }
70
- export function buildViewLockedArticleEvent(input, dependencies) {
71
- return merge(omitNavigationType(input), ViewLockedArticle, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
72
- }
73
- export function buildViewLockedAudioEvent(input, dependencies) {
74
- return merge(omitNavigationType(input), ViewLockedAudio, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
75
- }
76
- export function buildViewLockedAudioPageEvent(input, dependencies) {
77
- return merge(omitNavigationType(input), ViewLockedAudioPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
78
- }
79
- export function buildViewLockedVideoEvent(input, dependencies) {
80
- return merge(omitNavigationType(input), ViewLockedVideo, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
81
- }
82
- export function buildViewLockedVideoPageEvent(input, dependencies) {
83
- return merge(omitNavigationType(input), ViewLockedVideoPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
84
- }
85
- export function buildLeaveLockedVideoPageEvent(input, dependencies) {
86
- return merge(omitNavigationType(input), LeaveLockedVideoPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType));
87
- }
88
- export function buildViewPageEvent(input, dependencies) {
89
- return merge(omitNavigationType(input), ViewPage, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page.navigationType));
90
- }
91
- export function buildViewSportsPageEvent(input, dependencies) {
92
- return merge(omitNavigationType(input), ViewSportsPage, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page.navigationType));
93
- }
94
- export function buildViewTitleEvent(input, dependencies) {
95
- return merge(omitNavigationType(input), ViewTitle, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page.navigationType));
96
- }
97
- export function buildViewVideoEvent(input, dependencies) {
98
- return merge(omitNavigationType(input), ViewVideo, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page.navigationType));
99
- }
100
- export function buildViewVideoPageEvent(input, dependencies) {
101
- return merge(omitNavigationType(input), ViewVideoPage, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page.navigationType));
102
- }
103
- export function buildViewWeatherEvent(input, dependencies) {
104
- return merge(omitNavigationType(input), ViewWeather, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page.navigationType));
105
- }
106
- // #endregion
107
- // #region Leave Event Builders
108
- export function buildLeaveArticleEvent(input, dependencies) {
109
- return merge(omitNavigationType(input), LeaveArticle, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
110
- }
111
- export function buildLeaveAudioPageEvent(input, dependencies) {
112
- return merge(omitNavigationType(input), LeaveAudioPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType));
113
- }
114
- export function buildLeaveErrorEvent(input, dependencies) {
115
- return merge(omitNavigationType(input), LeaveError, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
116
- }
117
- export function buildLeaveFrontpageEvent(input, dependencies) {
118
- return merge(omitNavigationType(input), LeaveFrontpage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
119
- }
120
- export function buildLeaveLandingpageEvent(input, dependencies) {
121
- return merge(omitNavigationType(input), LeaveLandingpage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
122
- }
123
- export function buildLeaveListingEvent(input, dependencies) {
124
- return merge(omitNavigationType(input), LeaveListing, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
125
- }
126
- export function buildLeaveLockedArticleEvent(input, dependencies) {
127
- return merge(omitNavigationType(input), LeaveLockedArticle, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
128
- }
129
- export function buildLeaveLockedAudioEvent(input, dependencies) {
130
- return merge(omitNavigationType(input), LeaveLockedAudio, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
131
- }
132
- export function buildLeaveLockedAudioPageEvent(input, dependencies) {
133
- return merge(omitNavigationType(input), LeaveLockedAudioPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType));
134
- }
135
- export function buildLeaveLockedVideoEvent(input, dependencies) {
136
- return merge(omitNavigationType(input), LeaveLockedVideo, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
137
- }
138
- export function buildLeavePageEvent(input, dependencies) {
139
- return merge(omitNavigationType(input), LeavePage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
140
- }
141
- export function buildLeaveSportsPageEvent(input, dependencies) {
142
- return merge(omitNavigationType(input), LeaveSportsPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
143
- }
144
- export function buildLeaveVideoPageEvent(input, dependencies) {
145
- return merge(omitNavigationType(input), LeaveVideoPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType));
146
- }
147
- export function buildLeaveWeatherEvent(input, dependencies) {
148
- const createdAt = new Date();
149
- const { autoTrackerVersion, isHybrid, version, providerId, user, experiments } = dependencies;
150
- return merge(input, LeaveWeather, timeBuilder(createdAt), trackerBuilder(autoTrackerVersion, isHybrid, version), baseEventBuilder(), providerBuilder(providerId), userBuilder(user), experimentsBuilder(experiments, input.experiments), consentsBuilder(dependencies.consents), deviceBuilder(dependencies.environmentId, dependencies.jwe));
151
- }
152
- // #endregion
153
- // #region Engagement Event Builders
154
- export function buildEngagementAudioEvent(input, dependencies) {
155
- return merge(input, EngagementAudio, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
156
- }
157
- export function buildEngagementFormEvent(input, dependencies) {
158
- return merge(input, EngagementForm, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
159
- }
160
- export function buildEngagementOfferEvent(input, dependencies) {
161
- return merge(input, EngagementOffer, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
162
- }
163
- export function buildEngagementTeaserEvent(input, dependencies) {
164
- return merge(input, EngagementTeaser, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
165
- }
166
- export function buildEngagementUIElementEvent(input, dependencies) {
167
- return merge(input, EngagementUIElement, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
168
- }
169
- export function buildEngagementVideoEvent(input, dependencies) {
170
- return merge(input, EngagementVideo, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
171
- }
172
- export function buildEngagementVideoAdEvent(input, dependencies) {
173
- return merge(input, EngagementVideoAd, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
174
- }
175
- export function buildEngagementWidgetEvent(input, dependencies) {
176
- return merge(input, EngagementWidget, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
177
- }
178
- // #endregion
179
- // #region Health Event Builders
180
- export function buildCompletedHealthActionEvent(input, dependencies) {
181
- return merge(input, CompletedHealthAction, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
182
- }
183
- export function buildEngagementHealthUIElementEvent(input, dependencies) {
184
- return merge(input, EngagementHealthUIElement, getCommonBuildersOutput(new Date(), dependencies));
185
- }
186
- export function buildViewHealthPageEvent(input, dependencies) {
187
- return merge(omitNavigationType(input), ViewHealthPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType));
188
- }
189
- export function buildImpressionHealthUIElementEvent(input, dependencies) {
190
- return merge(input, ImpressionHealthUIElement, getCommonBuildersOutput(new Date(), dependencies));
191
- }
192
- // #endregion
193
- // #region Impression Event Builders
194
- export function buildImpressionAdSlotEvent(input, dependencies) {
195
- return merge(input, ImpressionAdSlot, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
196
- }
197
- export function buildImpressionFormEvent(input, dependencies) {
198
- return merge(input, ImpressionForm, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
199
- }
200
- export function buildImpressionOfferEvent(input, dependencies) {
201
- return merge(input, ImpressionOffer, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
202
- }
203
- export function buildImpressionPlayerEvent(input, dependencies) {
204
- return merge(input, ImpressionPlayer, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
205
- }
206
- export function buildImpressionTeaserEvent(input, dependencies) {
207
- return merge(input, ImpressionTeaser, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
208
- }
209
- export function buildImpressionUIElementEvent(input, dependencies) {
210
- return merge(input, ImpressionUIElement, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
211
- }
212
- export function buildImpressionWidgetEvent(input, dependencies) {
213
- return merge(input, ImpressionWidget, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
214
- }
215
- // #endregion