@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.
- package/dist/cjs/EventBus/EventBus.js +146 -0
- package/dist/cjs/Tracker.js +2499 -0
- package/dist/cjs/Tracker.test-d.js +76 -0
- package/dist/cjs/app-integration.js +40 -0
- package/dist/cjs/builders/actor.js +60 -0
- package/dist/cjs/builders/consent-manager.js +134 -0
- package/dist/cjs/builders/consents.js +149 -0
- package/dist/cjs/builders/device-browser.js +89 -0
- package/dist/cjs/builders/device-node.js +63 -0
- package/dist/cjs/builders/device.js +23 -0
- package/dist/cjs/builders/events-anonymous-browser.js +6 -0
- package/dist/cjs/builders/events-anonymous-node.js +88 -0
- package/dist/cjs/builders/events-anonymous.js +17 -0
- package/dist/cjs/builders/events-browser.js +8 -0
- package/dist/cjs/builders/events-node.js +127 -0
- package/dist/cjs/builders/events.js +17 -0
- package/dist/cjs/builders/experimentMetadata.js +25 -0
- package/dist/cjs/builders/experiments.js +32 -0
- package/dist/cjs/builders/index.js +52 -0
- package/dist/cjs/builders/location.js +38 -0
- package/dist/cjs/builders/objects/objects-anonymous-browser.js +36 -0
- package/dist/cjs/builders/objects/objects-anonymous-node.js +95 -0
- package/dist/cjs/builders/objects/objects-anonymous.js +23 -0
- package/dist/cjs/builders/objects/objects-browser.js +36 -0
- package/dist/cjs/builders/objects/objects-node.js +126 -0
- package/dist/cjs/builders/objects/objects.js +23 -0
- package/dist/cjs/builders/objects/utils.js +23 -0
- package/dist/cjs/builders/origin-browser.js +28 -0
- package/dist/cjs/builders/origin-node.js +29 -0
- package/dist/cjs/builders/origin.js +23 -0
- package/dist/cjs/builders/provider.js +24 -0
- package/dist/cjs/builders/session-browser.js +97 -0
- package/dist/cjs/builders/session-node.js +9 -0
- package/dist/cjs/builders/session.js +23 -0
- package/dist/cjs/builders/tracker-browser.js +34 -0
- package/dist/cjs/builders/tracker-node.js +22 -0
- package/dist/cjs/builders/trackerBuilder.js +23 -0
- package/dist/cjs/config-browser.js +26 -0
- package/dist/cjs/config.js +9 -0
- package/dist/cjs/createPulseTracker.js +50 -0
- package/dist/cjs/defer.js +20 -0
- package/dist/cjs/getPulseTracker.js +74 -0
- package/dist/cjs/identity/actor.js +60 -0
- package/dist/cjs/identity/advertising.js +62 -0
- package/dist/cjs/identity/cis.js +66 -0
- package/dist/cjs/identity/device.js +20 -0
- package/dist/cjs/identity/index.js +20 -0
- package/dist/cjs/index.js +57 -0
- package/dist/cjs/leaveTracking/constants.js +26 -0
- package/dist/cjs/leaveTracking/index.js +368 -0
- package/dist/cjs/leaveTracking/types.js +19 -0
- package/dist/cjs/leaveTrackingTpaas/constants.js +18 -0
- package/dist/cjs/leaveTrackingTpaas/index.js +341 -0
- package/dist/cjs/leaveTrackingTpaas/types.js +19 -0
- package/dist/cjs/network-browser.js +35 -0
- package/dist/cjs/network.js +15 -0
- package/dist/cjs/remoteConfig/index.js +124 -0
- package/dist/cjs/tracker-proxy/consts.js +72 -0
- package/dist/cjs/tracker-proxy/proxy-provider.js +68 -0
- package/dist/cjs/types.js +2 -0
- package/dist/cjs/version.json +1 -0
- package/dist/cjs/visibility-observer/index.js +101 -0
- package/dist/cjs/warnOnce.js +11 -0
- package/dist/cjs/wrapper/engagement/ui-element/event-builder.js +21 -0
- package/dist/cjs/wrapper/engagement/ui-element/types.js +2 -0
- package/dist/cjs/wrapper/types/base-event.js +2 -0
- package/dist/cjs/wrapper/types/engagement-event.js +2 -0
- package/dist/cjs/wrapper/types/event.js +2 -0
- package/dist/cjs/wrapper/types/index.js +19 -0
- package/dist/cjs/wrapper/types/utils.js +2 -0
- package/dist/cjs/wrapper/utils/get-navigation-type.js +32 -0
- package/dist/cjs/wrapper/utils/page-from-page-view.js +9 -0
- package/dist/cjs/wrapper/view/article/event-builder.js +19 -0
- package/dist/cjs/wrapper/view/article/types.js +2 -0
- package/dist/cjs/wrapper/view/frontpage/event-builder.js +16 -0
- package/dist/cjs/wrapper/view/frontpage/types.js +2 -0
- package/dist/cjs/wrapper/view/listing/event-builder.js +14 -0
- package/dist/cjs/wrapper/view/listing/types.js +2 -0
- package/dist/cjs/wrapper/view/loginposter/event-builder.js +11 -0
- package/dist/cjs/wrapper/view/loginposter/types.js +2 -0
- package/dist/cjs/wrapper/view/page/event-builder.js +18 -0
- package/dist/cjs/wrapper/view/page/types.js +2 -0
- package/dist/cjs/wrapper/view/salesposter/event-builder.js +18 -0
- package/dist/cjs/wrapper/view/salesposter/types.js +2 -0
- package/dist/cjs/wrapper/view/ui-element/event-builder.js +15 -0
- package/dist/cjs/wrapper/view/ui-element/types.js +2 -0
- package/dist/ejs/EventBus/EventBus.js +140 -0
- package/dist/ejs/Tracker.js +2455 -0
- package/dist/ejs/Tracker.test-d.js +71 -0
- package/dist/ejs/app-integration.js +33 -0
- package/dist/ejs/builders/actor.js +53 -0
- package/dist/ejs/builders/consent-manager.js +125 -0
- package/dist/ejs/builders/consents.js +138 -0
- package/dist/ejs/builders/device-browser.js +69 -0
- package/dist/ejs/builders/device-node.js +57 -0
- package/dist/ejs/builders/device.js +2 -0
- package/dist/ejs/builders/events-anonymous-browser.js +1 -0
- package/dist/ejs/builders/events-anonymous-node.js +48 -0
- package/dist/ejs/builders/events-anonymous.js +1 -0
- package/dist/ejs/builders/events-browser.js +1 -0
- package/dist/ejs/builders/events-node.js +84 -0
- package/dist/ejs/builders/events.js +1 -0
- package/dist/ejs/builders/experimentMetadata.js +21 -0
- package/dist/ejs/builders/experiments.js +27 -0
- package/dist/ejs/builders/index.js +12 -0
- package/dist/ejs/builders/location.js +34 -0
- package/dist/ejs/builders/objects/objects-anonymous-browser.js +14 -0
- package/dist/ejs/builders/objects/objects-anonymous-node.js +90 -0
- package/dist/ejs/builders/objects/objects-anonymous.js +2 -0
- package/dist/ejs/builders/objects/objects-browser.js +14 -0
- package/dist/ejs/builders/objects/objects-node.js +121 -0
- package/dist/ejs/builders/objects/objects.js +2 -0
- package/dist/ejs/builders/objects/utils.js +20 -0
- package/dist/ejs/builders/origin-browser.js +6 -0
- package/dist/ejs/builders/origin-node.js +24 -0
- package/dist/ejs/builders/origin.js +2 -0
- package/dist/ejs/builders/provider.js +18 -0
- package/dist/ejs/builders/session-browser.js +90 -0
- package/dist/ejs/builders/session-node.js +4 -0
- package/dist/ejs/builders/session.js +2 -0
- package/dist/ejs/builders/tracker-browser.js +13 -0
- package/dist/ejs/builders/tracker-node.js +14 -0
- package/dist/ejs/builders/trackerBuilder.js +2 -0
- package/dist/ejs/config-browser.js +23 -0
- package/dist/ejs/config.js +6 -0
- package/dist/ejs/createPulseTracker.js +44 -0
- package/dist/ejs/defer.js +17 -0
- package/dist/ejs/getPulseTracker.js +71 -0
- package/dist/ejs/identity/actor.js +51 -0
- package/dist/ejs/identity/advertising.js +57 -0
- package/dist/ejs/identity/cis.js +58 -0
- package/dist/ejs/identity/device.js +17 -0
- package/dist/ejs/identity/index.js +4 -0
- package/dist/ejs/index.js +9 -0
- package/dist/ejs/leaveTracking/constants.js +19 -0
- package/dist/ejs/leaveTracking/index.js +319 -0
- package/dist/ejs/leaveTracking/types.js +16 -0
- package/dist/ejs/leaveTrackingTpaas/constants.js +13 -0
- package/dist/ejs/leaveTrackingTpaas/index.js +291 -0
- package/dist/ejs/leaveTrackingTpaas/types.js +16 -0
- package/dist/ejs/network-browser.js +32 -0
- package/dist/ejs/network.js +12 -0
- package/dist/ejs/remoteConfig/index.js +111 -0
- package/dist/ejs/tracker-proxy/consts.js +68 -0
- package/dist/ejs/tracker-proxy/proxy-provider.js +62 -0
- package/dist/ejs/types.js +1 -0
- package/dist/ejs/version.json +1 -0
- package/dist/ejs/visibility-observer/index.js +97 -0
- package/dist/ejs/warnOnce.js +9 -0
- package/dist/ejs/wrapper/engagement/ui-element/event-builder.js +17 -0
- package/dist/ejs/wrapper/engagement/ui-element/types.js +1 -0
- package/dist/ejs/wrapper/types/base-event.js +1 -0
- package/dist/ejs/wrapper/types/engagement-event.js +1 -0
- package/dist/ejs/wrapper/types/event.js +1 -0
- package/dist/ejs/wrapper/types/index.js +3 -0
- package/dist/ejs/wrapper/types/utils.js +1 -0
- package/dist/ejs/wrapper/utils/get-navigation-type.js +29 -0
- package/dist/ejs/wrapper/utils/page-from-page-view.js +6 -0
- package/dist/ejs/wrapper/view/article/event-builder.js +15 -0
- package/dist/ejs/wrapper/view/article/types.js +1 -0
- package/dist/ejs/wrapper/view/frontpage/event-builder.js +12 -0
- package/dist/ejs/wrapper/view/frontpage/types.js +1 -0
- package/dist/ejs/wrapper/view/listing/event-builder.js +10 -0
- package/dist/ejs/wrapper/view/listing/types.js +1 -0
- package/dist/ejs/wrapper/view/loginposter/event-builder.js +7 -0
- package/dist/ejs/wrapper/view/loginposter/types.js +1 -0
- package/dist/ejs/wrapper/view/page/event-builder.js +14 -0
- package/dist/ejs/wrapper/view/page/types.js +1 -0
- package/dist/ejs/wrapper/view/salesposter/event-builder.js +14 -0
- package/dist/ejs/wrapper/view/salesposter/types.js +1 -0
- package/dist/ejs/wrapper/view/ui-element/event-builder.js +11 -0
- package/dist/ejs/wrapper/view/ui-element/types.js +1 -0
- package/dist/types/EventBus/EventBus.d.ts +106 -0
- package/dist/types/Tracker.d.ts +1418 -0
- package/dist/types/Tracker.test-d.d.ts +1 -0
- package/dist/types/app-integration.d.ts +10 -0
- package/dist/types/builders/actor.d.ts +39 -0
- package/dist/types/builders/consent-manager.d.ts +49 -0
- package/dist/types/builders/consents.d.ts +107 -0
- package/dist/types/builders/device-browser.d.ts +6 -0
- package/dist/types/builders/device-node.d.ts +65 -0
- package/dist/types/builders/device.d.ts +2 -0
- package/dist/types/builders/events-anonymous-browser.d.ts +1 -0
- package/dist/types/builders/events-anonymous-node.d.ts +82 -0
- package/dist/types/builders/events-anonymous.d.ts +1 -0
- package/dist/types/builders/events-browser.d.ts +1 -0
- package/dist/types/builders/events-node.d.ts +130 -0
- package/dist/types/builders/events.d.ts +1 -0
- package/dist/types/builders/experimentMetadata.d.ts +25 -0
- package/dist/types/builders/experiments.d.ts +24 -0
- package/dist/types/builders/index.d.ts +23 -0
- package/dist/types/builders/location.d.ts +34 -0
- package/dist/types/builders/objects/objects-anonymous-browser.d.ts +11 -0
- package/dist/types/builders/objects/objects-anonymous-node.d.ts +52 -0
- package/dist/types/builders/objects/objects-anonymous.d.ts +2 -0
- package/dist/types/builders/objects/objects-browser.d.ts +11 -0
- package/dist/types/builders/objects/objects-node.d.ts +60 -0
- package/dist/types/builders/objects/objects.d.ts +2 -0
- package/dist/types/builders/objects/utils.d.ts +1 -0
- package/dist/types/builders/origin-browser.d.ts +5 -0
- package/dist/types/builders/origin-node.d.ts +18 -0
- package/dist/types/builders/origin.d.ts +2 -0
- package/dist/types/builders/provider.d.ts +14 -0
- package/dist/types/builders/session-browser.d.ts +20 -0
- package/dist/types/builders/session-node.d.ts +3 -0
- package/dist/types/builders/session.d.ts +2 -0
- package/dist/types/builders/tracker-browser.d.ts +2 -0
- package/dist/types/builders/tracker-node.d.ts +14 -0
- package/dist/types/builders/trackerBuilder.d.ts +2 -0
- package/dist/types/config-browser.d.ts +23 -0
- package/dist/types/config.d.ts +6 -0
- package/dist/types/createPulseTracker.d.ts +21 -0
- package/dist/types/defer.d.ts +28 -0
- package/dist/types/getPulseTracker.d.ts +59 -0
- package/dist/types/identity/actor.d.ts +28 -0
- package/dist/types/identity/advertising.d.ts +30 -0
- package/dist/types/identity/cis.d.ts +21 -0
- package/dist/types/identity/device.d.ts +12 -0
- package/dist/types/identity/index.d.ts +4 -0
- package/dist/types/index.d.ts +31 -0
- package/dist/types/leaveTracking/constants.d.ts +26 -0
- package/dist/types/leaveTracking/index.d.ts +23 -0
- package/dist/types/leaveTracking/types.d.ts +78 -0
- package/dist/types/leaveTrackingTpaas/constants.d.ts +13 -0
- package/dist/types/leaveTrackingTpaas/index.d.ts +28 -0
- package/dist/types/leaveTrackingTpaas/types.d.ts +45 -0
- package/dist/types/network-browser.d.ts +5 -0
- package/dist/types/network.d.ts +4 -0
- package/dist/types/remoteConfig/index.d.ts +32 -0
- package/dist/types/tracker-proxy/consts.d.ts +45 -0
- package/dist/types/tracker-proxy/proxy-provider.d.ts +2 -0
- package/dist/types/types.d.ts +93 -0
- package/dist/types/visibility-observer/index.d.ts +38 -0
- package/dist/types/warnOnce.d.ts +2 -0
- package/dist/types/wrapper/engagement/ui-element/event-builder.d.ts +3 -0
- package/dist/types/wrapper/engagement/ui-element/types.d.ts +29 -0
- package/dist/types/wrapper/types/base-event.d.ts +74 -0
- package/dist/types/wrapper/types/engagement-event.d.ts +5 -0
- package/dist/types/wrapper/types/event.d.ts +41 -0
- package/dist/types/wrapper/types/index.d.ts +3 -0
- package/dist/types/wrapper/types/utils.d.ts +5 -0
- package/dist/types/wrapper/utils/get-navigation-type.d.ts +3 -0
- package/dist/types/wrapper/utils/page-from-page-view.d.ts +3 -0
- package/dist/types/wrapper/view/article/event-builder.d.ts +2 -0
- package/dist/types/wrapper/view/article/types.d.ts +27 -0
- package/dist/types/wrapper/view/frontpage/event-builder.d.ts +2 -0
- package/dist/types/wrapper/view/frontpage/types.d.ts +18 -0
- package/dist/types/wrapper/view/listing/event-builder.d.ts +2 -0
- package/dist/types/wrapper/view/listing/types.d.ts +27 -0
- package/dist/types/wrapper/view/loginposter/event-builder.d.ts +2 -0
- package/dist/types/wrapper/view/loginposter/types.d.ts +14 -0
- package/dist/types/wrapper/view/page/event-builder.d.ts +2 -0
- package/dist/types/wrapper/view/page/types.d.ts +16 -0
- package/dist/types/wrapper/view/salesposter/event-builder.d.ts +2 -0
- package/dist/types/wrapper/view/salesposter/types.d.ts +15 -0
- package/dist/types/wrapper/view/ui-element/event-builder.d.ts +3 -0
- package/dist/types/wrapper/view/ui-element/types.d.ts +28 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis-browser.d.ts +26 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis-browser.js +273 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis-browser.js.map +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis.d.ts +10 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis.js +7 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis.js.map +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/eventEmitter.d.ts +14 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/eventEmitter.js +39 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/eventEmitter.js.map +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/index.d.ts +4 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/index.js +12 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/index.js.map +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/pulse-cookie.d.ts +55 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/pulse-cookie.js +276 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/pulse-cookie.js.map +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/pulseStorage.d.ts +36 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/pulseStorage.js +87 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/pulseStorage.js.map +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/storage.d.ts +6 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/storage.js +21 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/storage.js.map +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/types.d.ts +24 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/types.js +3 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/types.js.map +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis-browser.d.ts +26 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis-browser.js +203 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis-browser.js.map +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis.d.ts +10 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis.js +4 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis.js.map +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/eventEmitter.d.ts +14 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/eventEmitter.js +35 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/eventEmitter.js.map +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/index.d.ts +4 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/index.js +3 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/index.js.map +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/pulse-cookie.d.ts +55 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/pulse-cookie.js +254 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/pulse-cookie.js.map +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/pulseStorage.d.ts +36 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/pulseStorage.js +50 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/pulseStorage.js.map +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/storage.d.ts +6 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/storage.js +17 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/storage.js.map +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/types.d.ts +24 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/types.js +2 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/types.js.map +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/types/cis-browser.d.ts +26 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/types/cis.d.ts +10 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/types/eventEmitter.d.ts +14 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/types/index.d.ts +4 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/types/pulse-cookie.d.ts +55 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/types/storage/pulseStorage.d.ts +36 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/types/storage/storage.d.ts +6 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/types/types.d.ts +24 -0
- package/node_modules/@schibsted/pulse-cis-sync/package.json +44 -0
- package/node_modules/@schibsted/pulse-utils/dist/cjs/cookie-config.js +10 -0
- package/node_modules/@schibsted/pulse-utils/dist/cjs/cookie.js +86 -0
- package/node_modules/@schibsted/pulse-utils/dist/cjs/events.js +109 -0
- package/node_modules/@schibsted/pulse-utils/dist/cjs/get.js +18 -0
- package/node_modules/@schibsted/pulse-utils/dist/cjs/getRootDomain.js +54 -0
- package/node_modules/@schibsted/pulse-utils/dist/cjs/index.js +38 -0
- package/node_modules/@schibsted/pulse-utils/dist/cjs/merge.js +38 -0
- package/node_modules/@schibsted/pulse-utils/dist/cjs/objects.js +34 -0
- package/node_modules/@schibsted/pulse-utils/dist/cjs/omit.js +9 -0
- package/node_modules/@schibsted/pulse-utils/dist/cjs/randomString.js +18 -0
- package/node_modules/@schibsted/pulse-utils/dist/cjs/throttle.js +34 -0
- package/node_modules/@schibsted/pulse-utils/dist/cjs/webApi.js +21 -0
- package/node_modules/@schibsted/pulse-utils/dist/ejs/cookie-config.js +7 -0
- package/node_modules/@schibsted/pulse-utils/dist/ejs/cookie.js +81 -0
- package/node_modules/@schibsted/pulse-utils/dist/ejs/events.js +103 -0
- package/node_modules/@schibsted/pulse-utils/dist/ejs/get.js +15 -0
- package/node_modules/@schibsted/pulse-utils/dist/ejs/getRootDomain.js +49 -0
- package/node_modules/@schibsted/pulse-utils/dist/ejs/index.js +11 -0
- package/node_modules/@schibsted/pulse-utils/dist/ejs/merge.js +35 -0
- package/node_modules/@schibsted/pulse-utils/dist/ejs/objects.js +26 -0
- package/node_modules/@schibsted/pulse-utils/dist/ejs/omit.js +6 -0
- package/node_modules/@schibsted/pulse-utils/dist/ejs/randomString.js +15 -0
- package/node_modules/@schibsted/pulse-utils/dist/ejs/throttle.js +31 -0
- package/node_modules/@schibsted/pulse-utils/dist/ejs/webApi.js +17 -0
- package/node_modules/@schibsted/pulse-utils/dist/types/cookie-config.d.ts +7 -0
- package/node_modules/@schibsted/pulse-utils/dist/types/cookie.d.ts +23 -0
- package/node_modules/@schibsted/pulse-utils/dist/types/events.d.ts +17 -0
- package/node_modules/@schibsted/pulse-utils/dist/types/get.d.ts +1 -0
- package/node_modules/@schibsted/pulse-utils/dist/types/getRootDomain.d.ts +13 -0
- package/node_modules/@schibsted/pulse-utils/dist/types/index.d.ts +11 -0
- package/node_modules/@schibsted/pulse-utils/dist/types/merge.d.ts +4 -0
- package/node_modules/@schibsted/pulse-utils/dist/types/objects.d.ts +6 -0
- package/node_modules/@schibsted/pulse-utils/dist/types/omit.d.ts +3 -0
- package/node_modules/@schibsted/pulse-utils/dist/types/randomString.d.ts +1 -0
- package/node_modules/@schibsted/pulse-utils/dist/types/throttle.d.ts +3 -0
- package/node_modules/@schibsted/pulse-utils/dist/types/webApi.d.ts +10 -0
- package/node_modules/@schibsted/pulse-utils/package.json +36 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/anonymous.js +8 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/baseEvent.js +9 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/consents.js +15 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/device.js +211 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/experiments.js +11 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/navigationType.js +52 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/pageInfo.js +24 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/pageviewId.js +11 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/provider.js +12 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/referrer.js +19 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/session.js +114 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/time.js +15 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/trackerBuilder.js +15 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/user.js +26 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/utm.js +35 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders.js +264 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/index.js +17 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/types.js +2 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/anonymous.js +5 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/baseEvent.js +6 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/consents.js +12 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/device.js +174 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/experiments.js +7 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/navigationType.js +48 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/pageInfo.js +20 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/pageviewId.js +7 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/provider.js +9 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/referrer.js +15 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/session.js +108 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/time.js +11 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/trackerBuilder.js +11 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/user.js +22 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/utm.js +31 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders.js +209 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/index.js +1 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/types.js +1 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/index.d.ts +5171 -0
- package/node_modules/@schibsted/tpaas-event-builder/package.json +40 -0
- package/node_modules/@schibsted/tpaas-schemas/dist/cjs/constants.js +62 -1
- package/node_modules/@schibsted/tpaas-schemas/dist/ejs/constants.js +61 -0
- package/node_modules/@schibsted/tpaas-schemas/dist/index.d.ts +128 -0
- package/package.json +58 -13
- package/CHANGELOG.md +0 -1035
- package/dist/index.d.ts +0 -13
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -47
- 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,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,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
|
+
};
|