@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,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.builder = void 0;
4
+ const pulse_utils_1 = require("@schibsted/pulse-utils");
5
+ const tpaas_schemas_1 = require("@schibsted/tpaas-schemas");
6
+ const builder = () => {
7
+ if (!pulse_utils_1.isBrowser) {
8
+ return {
9
+ page: {},
10
+ };
11
+ }
12
+ const urlParams = new URLSearchParams(window?.location?.search ?? '');
13
+ const utmCampaign = urlParams.get('utm_campaign');
14
+ const utmContent = urlParams.get('utm_content');
15
+ const utmMediumRaw = urlParams.get('utm_medium');
16
+ const utmMedium = tpaas_schemas_1.UTM_MEDIUM_VALUES.find((v) => v.toLowerCase() === utmMediumRaw?.toLowerCase());
17
+ const utmSource = urlParams.get('utm_source');
18
+ const utmTerms = urlParams.get('utm_terms');
19
+ // if there are no UTM parameters, return an empty object
20
+ if (!utmCampaign && !utmContent && !utmMedium && !utmSource && !utmTerms) {
21
+ return { page: {} };
22
+ }
23
+ return {
24
+ page: {
25
+ utm: {
26
+ ...(utmCampaign && { utmCampaign }),
27
+ ...(utmContent && { utmContent }),
28
+ ...(utmMedium && { utmMedium }),
29
+ ...(utmSource && { utmSource }),
30
+ ...(utmTerms && { utmTerms }),
31
+ },
32
+ },
33
+ };
34
+ };
35
+ exports.builder = builder;
@@ -0,0 +1,264 @@
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.buildViewTitleEvent = buildViewTitleEvent;
20
+ exports.buildViewVideoEvent = buildViewVideoEvent;
21
+ exports.buildViewVideoPageEvent = buildViewVideoPageEvent;
22
+ exports.buildViewWeatherEvent = buildViewWeatherEvent;
23
+ exports.buildLeaveArticleEvent = buildLeaveArticleEvent;
24
+ exports.buildLeaveAudioPageEvent = buildLeaveAudioPageEvent;
25
+ exports.buildLeaveErrorEvent = buildLeaveErrorEvent;
26
+ exports.buildLeaveFrontpageEvent = buildLeaveFrontpageEvent;
27
+ exports.buildLeaveLandingpageEvent = buildLeaveLandingpageEvent;
28
+ exports.buildLeaveListingEvent = buildLeaveListingEvent;
29
+ exports.buildLeaveLockedArticleEvent = buildLeaveLockedArticleEvent;
30
+ exports.buildLeaveLockedAudioEvent = buildLeaveLockedAudioEvent;
31
+ exports.buildLeaveLockedAudioPageEvent = buildLeaveLockedAudioPageEvent;
32
+ exports.buildLeaveLockedVideoEvent = buildLeaveLockedVideoEvent;
33
+ exports.buildLeavePageEvent = buildLeavePageEvent;
34
+ exports.buildLeaveVideoPageEvent = buildLeaveVideoPageEvent;
35
+ exports.buildLeaveWeatherEvent = buildLeaveWeatherEvent;
36
+ exports.buildEngagementAudioEvent = buildEngagementAudioEvent;
37
+ exports.buildEngagementFormEvent = buildEngagementFormEvent;
38
+ exports.buildEngagementOfferEvent = buildEngagementOfferEvent;
39
+ exports.buildEngagementTeaserEvent = buildEngagementTeaserEvent;
40
+ exports.buildEngagementUIElementEvent = buildEngagementUIElementEvent;
41
+ exports.buildEngagementVideoEvent = buildEngagementVideoEvent;
42
+ exports.buildEngagementVideoAdEvent = buildEngagementVideoAdEvent;
43
+ exports.buildEngagementWidgetEvent = buildEngagementWidgetEvent;
44
+ exports.buildCompletedHealthActionEvent = buildCompletedHealthActionEvent;
45
+ exports.buildEngagementHealthUIElementEvent = buildEngagementHealthUIElementEvent;
46
+ exports.buildViewHealthPageEvent = buildViewHealthPageEvent;
47
+ exports.buildImpressionHealthUIElementEvent = buildImpressionHealthUIElementEvent;
48
+ exports.buildImpressionAdSlotEvent = buildImpressionAdSlotEvent;
49
+ exports.buildImpressionFormEvent = buildImpressionFormEvent;
50
+ exports.buildImpressionOfferEvent = buildImpressionOfferEvent;
51
+ exports.buildImpressionPlayerEvent = buildImpressionPlayerEvent;
52
+ exports.buildImpressionTeaserEvent = buildImpressionTeaserEvent;
53
+ exports.buildImpressionUIElementEvent = buildImpressionUIElementEvent;
54
+ exports.buildImpressionWidgetEvent = buildImpressionWidgetEvent;
55
+ const tpaas_schemas_1 = require("@schibsted/tpaas-schemas");
56
+ const ts_deepmerge_1 = require("ts-deepmerge");
57
+ const anonymous_1 = require("./builders/anonymous");
58
+ const baseEvent_1 = require("./builders/baseEvent");
59
+ const consents_1 = require("./builders/consents");
60
+ const device_1 = require("./builders/device");
61
+ const experiments_1 = require("./builders/experiments");
62
+ const navigationType_1 = require("./builders/navigationType");
63
+ const pageInfo_1 = require("./builders/pageInfo");
64
+ const pageviewId_1 = require("./builders/pageviewId");
65
+ const provider_1 = require("./builders/provider");
66
+ const referrer_1 = require("./builders/referrer");
67
+ const session_1 = require("./builders/session");
68
+ const time_1 = require("./builders/time");
69
+ const trackerBuilder_1 = require("./builders/trackerBuilder");
70
+ const user_1 = require("./builders/user");
71
+ const utm_1 = require("./builders/utm");
72
+ /**
73
+ * Common builders output to be merged into all events
74
+ * @param createdAt
75
+ * @param dependencies {TpaasEventBuilderDependencies}
76
+ * @private
77
+ */
78
+ const getCommonBuildersOutput = (createdAt, { autoTrackerVersion, isHybrid, version, environmentId, jwe, user, consents, providerId, pageviewId, currentPage, }) => {
79
+ 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)());
80
+ };
81
+ exports.getCommonBuildersOutput = getCommonBuildersOutput;
82
+ // there's a bug in the ts-deepmerge library that doesn't properly resolve merging optionals with required properties
83
+ // due to this, we need to manually omit navigationType from the input before merging
84
+ // it has no effect on the final value since navigationType will always be set by the navigationTypeBuilder.
85
+ // But it makes TS happy in an elegant way, without type assertions
86
+ const omitNavigationType = (input) => {
87
+ const { page, ...rest } = input;
88
+ const { navigationType: _, ...pageRest } = page;
89
+ return {
90
+ ...rest,
91
+ page: {
92
+ ...pageRest,
93
+ },
94
+ };
95
+ };
96
+ // #region AnonymousView Event Builders
97
+ function buildAnonymousViewUIElementEvent(input, dependencies) {
98
+ const createdAt = new Date();
99
+ const { autoTrackerVersion, isHybrid, version, pageviewId, providerId } = dependencies;
100
+ 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));
101
+ }
102
+ // #endregion
103
+ // #region View Event Builders
104
+ function buildViewArticleEvent(input, dependencies) {
105
+ 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));
106
+ }
107
+ function buildViewAudioEvent(input, dependencies) {
108
+ 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));
109
+ }
110
+ function buildViewAudioPageEvent(input, dependencies) {
111
+ 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));
112
+ }
113
+ function buildViewErrorEvent(input, dependencies) {
114
+ 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));
115
+ }
116
+ function buildViewFrontpageEvent(input, dependencies) {
117
+ 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));
118
+ }
119
+ function buildViewLandingpageEvent(input, dependencies) {
120
+ 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));
121
+ }
122
+ function buildViewListingEvent(input, dependencies) {
123
+ 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));
124
+ }
125
+ function buildViewLockedArticleEvent(input, dependencies) {
126
+ 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));
127
+ }
128
+ function buildViewLockedAudioEvent(input, dependencies) {
129
+ 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));
130
+ }
131
+ function buildViewLockedAudioPageEvent(input, dependencies) {
132
+ 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));
133
+ }
134
+ function buildViewLockedVideoEvent(input, dependencies) {
135
+ 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));
136
+ }
137
+ function buildViewLockedVideoPageEvent(input, dependencies) {
138
+ 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));
139
+ }
140
+ function buildLeaveLockedVideoPageEvent(input, dependencies) {
141
+ 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));
142
+ }
143
+ function buildViewPageEvent(input, dependencies) {
144
+ 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));
145
+ }
146
+ function buildViewTitleEvent(input, dependencies) {
147
+ 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));
148
+ }
149
+ function buildViewVideoEvent(input, dependencies) {
150
+ 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));
151
+ }
152
+ function buildViewVideoPageEvent(input, dependencies) {
153
+ 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));
154
+ }
155
+ function buildViewWeatherEvent(input, dependencies) {
156
+ 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));
157
+ }
158
+ // #endregion
159
+ // #region Leave Event Builders
160
+ function buildLeaveArticleEvent(input, dependencies) {
161
+ 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));
162
+ }
163
+ function buildLeaveAudioPageEvent(input, dependencies) {
164
+ 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));
165
+ }
166
+ function buildLeaveErrorEvent(input, dependencies) {
167
+ 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));
168
+ }
169
+ function buildLeaveFrontpageEvent(input, dependencies) {
170
+ 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));
171
+ }
172
+ function buildLeaveLandingpageEvent(input, dependencies) {
173
+ 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));
174
+ }
175
+ function buildLeaveListingEvent(input, dependencies) {
176
+ 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));
177
+ }
178
+ function buildLeaveLockedArticleEvent(input, dependencies) {
179
+ 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));
180
+ }
181
+ function buildLeaveLockedAudioEvent(input, dependencies) {
182
+ 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));
183
+ }
184
+ function buildLeaveLockedAudioPageEvent(input, dependencies) {
185
+ 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));
186
+ }
187
+ function buildLeaveLockedVideoEvent(input, dependencies) {
188
+ 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));
189
+ }
190
+ function buildLeavePageEvent(input, dependencies) {
191
+ 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));
192
+ }
193
+ function buildLeaveVideoPageEvent(input, dependencies) {
194
+ 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));
195
+ }
196
+ function buildLeaveWeatherEvent(input, dependencies) {
197
+ const createdAt = new Date();
198
+ const { autoTrackerVersion, isHybrid, version, providerId, user, experiments } = dependencies;
199
+ 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));
200
+ }
201
+ // #endregion
202
+ // #region Engagement Event Builders
203
+ function buildEngagementAudioEvent(input, dependencies) {
204
+ 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));
205
+ }
206
+ function buildEngagementFormEvent(input, dependencies) {
207
+ 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));
208
+ }
209
+ function buildEngagementOfferEvent(input, dependencies) {
210
+ 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));
211
+ }
212
+ function buildEngagementTeaserEvent(input, dependencies) {
213
+ 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));
214
+ }
215
+ function buildEngagementUIElementEvent(input, dependencies) {
216
+ 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));
217
+ }
218
+ function buildEngagementVideoEvent(input, dependencies) {
219
+ 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));
220
+ }
221
+ function buildEngagementVideoAdEvent(input, dependencies) {
222
+ 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));
223
+ }
224
+ function buildEngagementWidgetEvent(input, dependencies) {
225
+ 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));
226
+ }
227
+ // #endregion
228
+ // #region Health Event Builders
229
+ function buildCompletedHealthActionEvent(input, dependencies) {
230
+ 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));
231
+ }
232
+ function buildEngagementHealthUIElementEvent(input, dependencies) {
233
+ return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.EngagementHealthUIElement, (0, exports.getCommonBuildersOutput)(new Date(), dependencies));
234
+ }
235
+ function buildViewHealthPageEvent(input, dependencies) {
236
+ 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));
237
+ }
238
+ function buildImpressionHealthUIElementEvent(input, dependencies) {
239
+ return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.ImpressionHealthUIElement, (0, exports.getCommonBuildersOutput)(new Date(), dependencies));
240
+ }
241
+ // #endregion
242
+ // #region Impression Event Builders
243
+ function buildImpressionAdSlotEvent(input, dependencies) {
244
+ 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));
245
+ }
246
+ function buildImpressionFormEvent(input, dependencies) {
247
+ 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));
248
+ }
249
+ function buildImpressionOfferEvent(input, dependencies) {
250
+ 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));
251
+ }
252
+ function buildImpressionPlayerEvent(input, dependencies) {
253
+ 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));
254
+ }
255
+ function buildImpressionTeaserEvent(input, dependencies) {
256
+ 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));
257
+ }
258
+ function buildImpressionUIElementEvent(input, dependencies) {
259
+ 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));
260
+ }
261
+ function buildImpressionWidgetEvent(input, dependencies) {
262
+ 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));
263
+ }
264
+ // #endregion
@@ -0,0 +1,17 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./builders"), exports);
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,5 @@
1
+ export function builder() {
2
+ return {
3
+ isAnonymous: true,
4
+ };
5
+ }
@@ -0,0 +1,6 @@
1
+ import { v4 } from 'uuid';
2
+ export function builder() {
3
+ return {
4
+ eventId: v4(),
5
+ };
6
+ }
@@ -0,0 +1,12 @@
1
+ export function builder(consents) {
2
+ return { consents: consents || getDefaultConsents() };
3
+ }
4
+ function getDefaultConsents() {
5
+ return {
6
+ advertising: 'Unknown',
7
+ analytics: 'Unknown',
8
+ marketing: 'Unknown',
9
+ personalization: 'Unknown',
10
+ source: 'default',
11
+ };
12
+ }
@@ -0,0 +1,174 @@
1
+ import { isBrowser } from '@schibsted/pulse-utils';
2
+ import * as logger from 'loglevel';
3
+ import { UAParser } from 'ua-parser-js';
4
+ // Cache the UAParser result to avoid re-parsing on subsequent calls
5
+ let cachedUAParser;
6
+ function getUAParser() {
7
+ if (!cachedUAParser) {
8
+ cachedUAParser = UAParser();
9
+ }
10
+ return cachedUAParser;
11
+ }
12
+ export const builder = (environmentId, jwe) => {
13
+ if (!isBrowser) {
14
+ return {
15
+ device: {
16
+ // TODO: server side rendering (or nodejs). do we need to set all the following fields?
17
+ // should the SDK get request headers in that case?
18
+ clientType: 'Other',
19
+ browserVersion: '',
20
+ deviceType: 'Other',
21
+ environmentId: '',
22
+ operatingSystem: 'Other',
23
+ screenOrientation: 'Portrait',
24
+ viewportSize: 'XS',
25
+ },
26
+ };
27
+ }
28
+ const uaParser = getUAParser();
29
+ return {
30
+ device: {
31
+ clientType: getClientType(uaParser),
32
+ browserVersion: uaParser.browser.version || '',
33
+ deviceType: getDeviceType(uaParser),
34
+ environmentId,
35
+ jweIds: jwe,
36
+ mobileBrand: uaParser.device.vendor,
37
+ mobileModel: uaParser.device.model,
38
+ operatingSystem: getOperatingSystem(uaParser),
39
+ screenOrientation: getScreenOrientation(),
40
+ userAgent: window.navigator.userAgent,
41
+ viewportSize: getViewportSize(),
42
+ },
43
+ };
44
+ };
45
+ function getClientType(uaParser) {
46
+ const { browser } = uaParser;
47
+ const browserName = browser.name?.toLocaleLowerCase() || '';
48
+ if (browserName.includes('webview')) {
49
+ // works for Chrome and Edge webview
50
+ // unfortunately, Safari webview does not include "webview" in the user agent
51
+ // so we can't detect it reliably
52
+ return 'Webview';
53
+ }
54
+ if (browserName.includes('chrome')) {
55
+ return 'Chrome';
56
+ }
57
+ if (browserName.includes('safari')) {
58
+ return 'Safari';
59
+ }
60
+ if (browserName.includes('firefox')) {
61
+ return 'Firefox';
62
+ }
63
+ if (browserName.includes('edge')) {
64
+ return 'Edge';
65
+ }
66
+ if (browserName.includes('samsung')) {
67
+ return 'Samsung';
68
+ }
69
+ // there's one more value in IDevice.clientType, "NativeScreen", but that's for the native apps
70
+ logger.log(`Unknown client type: ${browserName}. Defaulting to 'other'.`);
71
+ return 'Other';
72
+ }
73
+ function getDeviceType(uaParser) {
74
+ const { device } = uaParser;
75
+ switch (device.type) {
76
+ case 'mobile':
77
+ return 'Mobile';
78
+ case 'tablet':
79
+ return 'Tablet';
80
+ case 'smarttv':
81
+ return 'SmartTv';
82
+ // this might look weird, but device.type is undefined for desktop/laptops
83
+ // ua-parser-js only returns what it can detect from UA, and desktop/laptop is not a specific type
84
+ // the absence of a device usually means that it's desktop/laptop
85
+ // see https://github.com/faisalman/ua-parser-js/issues/182
86
+ case undefined:
87
+ return 'Desktop';
88
+ // other device types available in ua-parser-js, but unused in TPaaS:
89
+ // case 'console':
90
+ // case 'wearable':
91
+ // case 'embedded':
92
+ default:
93
+ logger.log(`Unknown device type: ${device.type}. Defaulting to 'other'.`);
94
+ return 'Other';
95
+ }
96
+ }
97
+ // maybe grab information from navigation.userAgentData in the future
98
+ // at the moment, userAgentData is considered experimental and is not supported in firefox and safari
99
+ function getOperatingSystem(uaParser) {
100
+ const { os } = uaParser;
101
+ const osName = os.name?.toLocaleLowerCase() || '';
102
+ if (osName.includes('windows')) {
103
+ return 'Windows';
104
+ }
105
+ if (osName.includes('macos')) {
106
+ return 'Mac';
107
+ }
108
+ // some flavors of Linux might not be captured by this
109
+ // do we need a better detection, based on a list?
110
+ // for example (Gentoo - https://docs.uaparser.dev/info/os/name.html)
111
+ if (osName.includes('linux')) {
112
+ return 'Linux';
113
+ }
114
+ // the TPaaS `device` template is missing Android, iOS, iPadOS and maybe others?
115
+ logger.log(`Unknown operating system: ${osName}. Defaulting to 'other'.`);
116
+ // default value
117
+ return 'Other';
118
+ }
119
+ function getScreenOrientation() {
120
+ const orientationType = window.screen.orientation?.type;
121
+ const portraitOrientations = ['portrait-primary', 'portrait-secondary'];
122
+ const landscapeOrientations = ['landscape-primary', 'landscape-secondary'];
123
+ // the ifs might be a bit overkill, but it helps with separating the default value from the logic
124
+ if (portraitOrientations.includes(orientationType)) {
125
+ return 'Portrait';
126
+ }
127
+ if (landscapeOrientations.includes(orientationType)) {
128
+ return 'Landscape';
129
+ }
130
+ // default value
131
+ return 'Portrait';
132
+ }
133
+ function getSizeFromPixels(pixels) {
134
+ if (pixels < 360) {
135
+ return 'XS';
136
+ }
137
+ if (pixels < 480) {
138
+ return 'S';
139
+ }
140
+ if (pixels < 768) {
141
+ return 'M';
142
+ }
143
+ if (pixels < 1024) {
144
+ return 'L';
145
+ }
146
+ if (pixels >= 1024) {
147
+ return 'XL';
148
+ }
149
+ // default value
150
+ logger.error('Could not determine viewport size, defaulting to M');
151
+ return 'M';
152
+ }
153
+ function getViewportSize() {
154
+ let viewportWidth;
155
+ let viewportHeight;
156
+ const { document } = window;
157
+ if (typeof window.innerWidth !== 'undefined') {
158
+ viewportWidth = window.innerWidth;
159
+ viewportHeight = window.innerHeight;
160
+ }
161
+ else if (typeof document.documentElement.clientWidth !== 'undefined' &&
162
+ document.documentElement.clientWidth !== 0) {
163
+ viewportWidth = document.documentElement.clientWidth;
164
+ viewportHeight = document.documentElement.clientHeight;
165
+ }
166
+ else {
167
+ viewportWidth = document.getElementsByTagName('body')[0].clientWidth;
168
+ viewportHeight = document.getElementsByTagName('body')[0].clientHeight;
169
+ }
170
+ const shortestDimension = Math.min(viewportWidth, viewportHeight);
171
+ const size = getSizeFromPixels(shortestDimension);
172
+ logger.debug(`Viewport size: ${viewportWidth}x${viewportHeight}, mapped to ${size}`);
173
+ return size;
174
+ }
@@ -0,0 +1,7 @@
1
+ export const builder = (baseExperiments = [], eventExperiments = []) => {
2
+ const experiments = [...baseExperiments, ...eventExperiments];
3
+ if (experiments.length === 0) {
4
+ return {};
5
+ }
6
+ return { experiments };
7
+ };
@@ -0,0 +1,48 @@
1
+ export const builder = (eventNavigationType) => {
2
+ if (eventNavigationType) {
3
+ return {
4
+ page: {
5
+ navigationType: eventNavigationType,
6
+ },
7
+ };
8
+ }
9
+ return {
10
+ page: {
11
+ navigationType: getNavigationType(),
12
+ },
13
+ };
14
+ };
15
+ // In practice they use the same values, but for future proofing we keep them separate and mapped
16
+ const modernNavigationMap = {
17
+ navigate: 'Navigate',
18
+ reload: 'Reload',
19
+ back_forward: 'BackForward',
20
+ prerender: 'Prerender',
21
+ };
22
+ const legacyNavigationMap = {
23
+ 0: 'Navigate',
24
+ 1: 'Reload',
25
+ 2: 'BackForward',
26
+ };
27
+ const getModernNavigationType = (entryType) => {
28
+ return modernNavigationMap[entryType];
29
+ };
30
+ const getLegacyNavigationType = (entryType) => {
31
+ return legacyNavigationMap[entryType] || 'Navigate';
32
+ };
33
+ // implementation is very similar to the one in sdk/src/navigation-type that was copied from the Media Wrapper
34
+ const getNavigationType = () => {
35
+ if (typeof window === 'undefined' || typeof window.performance === 'undefined') {
36
+ // ideally we shouldn't be in this case, but if we are, we assume a navigation happened
37
+ // we could also assume it's a 'prerender', but let's keep it simple for now
38
+ return 'Navigate';
39
+ }
40
+ const [navigationEntry] = window.performance.getEntriesByType('navigation');
41
+ if (navigationEntry) {
42
+ return getModernNavigationType(navigationEntry.type);
43
+ }
44
+ if (performance.navigation?.type !== undefined) {
45
+ return getLegacyNavigationType(performance.navigation.type);
46
+ }
47
+ return 'Navigate';
48
+ };
@@ -0,0 +1,20 @@
1
+ import { isBrowser } from '@schibsted/pulse-utils';
2
+ export const builder = (currentPage) => {
3
+ // if something happens and there was no View Page type of event sent before, we need a fallback
4
+ if (!currentPage) {
5
+ return {
6
+ page: {
7
+ info: {
8
+ pageId: 'unknown',
9
+ pageType: 'Page',
10
+ url: isBrowser ? window.location.href : undefined,
11
+ },
12
+ },
13
+ };
14
+ }
15
+ return {
16
+ page: {
17
+ info: currentPage,
18
+ },
19
+ };
20
+ };
@@ -0,0 +1,7 @@
1
+ export const builder = (pageviewId) => {
2
+ return {
3
+ page: {
4
+ pageviewId,
5
+ },
6
+ };
7
+ };
@@ -0,0 +1,9 @@
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
+ }
@@ -0,0 +1,15 @@
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
+ };