@schibsted/pulse-sdk 8.0.0-rc.13 → 8.0.0-rc.14

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 (61) hide show
  1. package/dist/cjs/Tracker.js +22 -0
  2. package/dist/cjs/leaveTrackingTpaas/index.js +18 -6
  3. package/dist/cjs/tpaas-builders/builders/device.js +1 -1
  4. package/dist/cjs/tpaas-builders/builders/trackerBuilder.js +2 -1
  5. package/dist/cjs/tpaas-builders/builders.js +10 -6
  6. package/dist/cjs/tpaas-schemas/constants.js +59 -51
  7. package/dist/cjs/version.js +1 -1
  8. package/dist/ejs/Tracker.js +23 -1
  9. package/dist/ejs/leaveTrackingTpaas/index.js +18 -6
  10. package/dist/ejs/tpaas-builders/builders/device.js +1 -1
  11. package/dist/ejs/tpaas-builders/builders/trackerBuilder.js +2 -1
  12. package/dist/ejs/tpaas-builders/builders.js +10 -7
  13. package/dist/ejs/tpaas-schemas/constants.js +57 -49
  14. package/dist/ejs/version.js +1 -1
  15. package/dist/types/Tracker.d.ts +6 -1
  16. package/dist/types/builders/consents.d.ts +2 -2
  17. package/dist/types/builders/device-node.d.ts +2 -2
  18. package/dist/types/builders/events-anonymous-node.d.ts +4 -4
  19. package/dist/types/builders/events-node.d.ts +5 -5
  20. package/dist/types/builders/objects/objects-anonymous-node.d.ts +1 -1
  21. package/dist/types/builders/objects/objects-node.d.ts +1 -1
  22. package/dist/types/builders/origin-node.d.ts +1 -1
  23. package/dist/types/cis-sync/storage/pulseStorage.d.ts +8 -4
  24. package/dist/types/config.d.ts +1 -1
  25. package/dist/types/tpaas-builders/builders/device.d.ts +1 -1
  26. package/dist/types/tpaas-builders/builders/experiments.d.ts +1 -1
  27. package/dist/types/tpaas-builders/builders/navigationType.d.ts +2 -2
  28. package/dist/types/tpaas-builders/builders/pageviewId.d.ts +1 -1
  29. package/dist/types/tpaas-builders/builders/trackerBuilder.d.ts +1 -1
  30. package/dist/types/tpaas-builders/builders/user.d.ts +1 -1
  31. package/dist/types/tpaas-builders/builders.d.ts +41 -39
  32. package/dist/types/tpaas-builders/index.d.ts +1 -1
  33. package/dist/types/tpaas-builders/types.d.ts +2 -0
  34. package/dist/types/tpaas-schemas/constants.d.ts +182 -174
  35. package/dist/types/tpaas-schemas/types/ITpaasEvent.d.ts +2 -0
  36. package/dist/types/tpaas-schemas/types/schemas/IEngagementAudio.d.ts +0 -6
  37. package/dist/types/tpaas-schemas/types/schemas/IEngagementTeaser.d.ts +9 -0
  38. package/dist/types/tpaas-schemas/types/schemas/IEngagementTvModule.d.ts +130 -0
  39. package/dist/types/tpaas-schemas/types/schemas/IEngagementUIElement.d.ts +4 -0
  40. package/dist/types/tpaas-schemas/types/schemas/IEngagementVideo.d.ts +1 -7
  41. package/dist/types/tpaas-schemas/types/schemas/IImpressionForm.d.ts +2 -2
  42. package/dist/types/tpaas-schemas/types/schemas/IImpressionTeaser.d.ts +9 -0
  43. package/dist/types/tpaas-schemas/types/schemas/ILeaveArticle.d.ts +1 -1
  44. package/dist/types/tpaas-schemas/types/schemas/ILeaveAudioPage.d.ts +1 -1
  45. package/dist/types/tpaas-schemas/types/schemas/ILeaveFrontpage.d.ts +1 -1
  46. package/dist/types/tpaas-schemas/types/schemas/ILeaveLockedArticle.d.ts +1 -1
  47. package/dist/types/tpaas-schemas/types/schemas/ILeaveVideoPage.d.ts +1 -1
  48. package/dist/types/tpaas-schemas/types/schemas/IViewArticle.d.ts +1 -1
  49. package/dist/types/tpaas-schemas/types/schemas/IViewAudioPage.d.ts +1 -1
  50. package/dist/types/tpaas-schemas/types/schemas/IViewFrontpage.d.ts +1 -1
  51. package/dist/types/tpaas-schemas/types/schemas/IViewLockedArticle.d.ts +1 -1
  52. package/dist/types/tpaas-schemas/types/schemas/IViewVideoPage.d.ts +1 -1
  53. package/dist/types/tpaas-schemas/types/schemas/index.d.ts +1 -0
  54. package/dist/types/tpaas-schemas/types/templates/IDevice.d.ts +1 -1
  55. package/dist/types/tpaas-schemas/types/templates/IProvider.d.ts +1 -1
  56. package/dist/types/tpaas-schemas/types/templates/ITracker.d.ts +4 -0
  57. package/dist/types/tpaas-schemas/types.d.ts +3 -3
  58. package/dist/types/tracker-proxy/consts.d.ts +2 -2
  59. package/dist/types/version.d.ts +1 -1
  60. package/dist/types/wrapper/types/event.d.ts +1 -1
  61. package/package.json +8 -7
@@ -18,7 +18,7 @@ import { addPageLeaveTracking, leaveTrackingIsActive, removePageLeaveTracking, r
18
18
  import { addTpaasLeaveTracking, getTpaasLeaveObject, leaveTpaasTrackingIsActive, resetTpaasViewedContent, shouldEnableLeaveTracking, trackTpaasActiveLeave, updateTpaasLeaveTracking, updateTpaasViewedContent, } from './leaveTrackingTpaas';
19
19
  import send from './network';
20
20
  import * as config from './remoteConfig';
21
- import { buildAnonymousViewUIElementEvent, buildCompletedHealthActionEvent, buildEngagementAudioEvent, buildEngagementFormEvent, buildEngagementHealthUIElementEvent, buildEngagementOfferEvent, buildEngagementTeaserEvent, buildEngagementUIElementEvent, buildEngagementVideoAdEvent, buildEngagementVideoEvent, buildEngagementWidgetEvent, buildImpressionAdSlotEvent, buildImpressionFormEvent, buildImpressionHealthUIElementEvent, buildImpressionOfferEvent, buildImpressionPlayerEvent, buildImpressionTeaserEvent, buildImpressionUIElementEvent, buildImpressionWidgetEvent, buildLeaveArticleEvent, buildLeaveAudioPageEvent, buildLeaveErrorEvent, buildLeaveFrontpageEvent, buildLeaveLandingpageEvent, buildLeaveListingEvent, buildLeaveLockedArticleEvent, buildLeaveLockedAudioPageEvent, buildLeaveLockedVideoPageEvent, buildLeavePageEvent, buildLeaveSportsPageEvent, buildLeaveVideoPageEvent, buildLeaveWeatherEvent, buildViewArticleEvent, buildViewAudioPageEvent, buildViewErrorEvent, buildViewFrontpageEvent, buildViewHealthPageEvent, buildViewLandingpageEvent, buildViewListingEvent, buildViewLockedArticleEvent, buildViewLockedAudioPageEvent, buildViewLockedVideoPageEvent, buildViewPageEvent, buildViewSportsPageEvent, buildViewTitleEvent, buildViewVideoPageEvent, buildViewWeatherEvent, } from './tpaas-builders';
21
+ import { buildAnonymousViewUIElementEvent, buildCompletedHealthActionEvent, buildEngagementAudioEvent, buildEngagementFormEvent, buildEngagementHealthUIElementEvent, buildEngagementOfferEvent, buildEngagementTeaserEvent, buildEngagementTvModuleEvent, buildEngagementUIElementEvent, buildEngagementVideoAdEvent, buildEngagementVideoEvent, buildEngagementWidgetEvent, buildImpressionAdSlotEvent, buildImpressionFormEvent, buildImpressionHealthUIElementEvent, buildImpressionOfferEvent, buildImpressionPlayerEvent, buildImpressionTeaserEvent, buildImpressionUIElementEvent, buildImpressionWidgetEvent, buildLeaveArticleEvent, buildLeaveAudioPageEvent, buildLeaveErrorEvent, buildLeaveFrontpageEvent, buildLeaveLandingpageEvent, buildLeaveListingEvent, buildLeaveLockedArticleEvent, buildLeaveLockedAudioPageEvent, buildLeaveLockedVideoPageEvent, buildLeavePageEvent, buildLeaveSportsPageEvent, buildLeaveVideoPageEvent, buildLeaveWeatherEvent, buildViewArticleEvent, buildViewAudioPageEvent, buildViewErrorEvent, buildViewFrontpageEvent, buildViewHealthPageEvent, buildViewLandingpageEvent, buildViewListingEvent, buildViewLockedArticleEvent, buildViewLockedAudioPageEvent, buildViewLockedVideoPageEvent, buildViewPageEvent, buildViewSportsPageEvent, buildViewTitleEvent, buildViewVideoPageEvent, buildViewWeatherEvent, } from './tpaas-builders';
22
22
  import { LeaveArticle, LeaveAudioPage, LeaveError, LeaveFrontpage, LeaveLandingpage, LeaveListing, LeaveLockedArticle, LeaveLockedAudioPage, LeaveLockedVideoPage, LeavePage, LeaveSportsPage, LeaveVideoPage, LeaveWeather, ViewArticle, ViewAudioPage, ViewError, ViewFrontpage, ViewHealthPage, ViewLandingpage, ViewListing, ViewLockedArticle, ViewLockedAudioPage, ViewLockedVideoPage, ViewPage, ViewSportsPage, ViewTitle, ViewVideoPage, ViewWeather, } from './tpaas-schemas';
23
23
  import { startProxyProviderListener } from './tracker-proxy/proxy-provider';
24
24
  import { evaluateAndFlatten, isBrowser, isFunction, isPromise, isString, pulseMerge, throttle } from './utils';
@@ -71,6 +71,17 @@ const anonymousEvents = {
71
71
  function getAnonymousEventBuilder(name) {
72
72
  return name in anonymousEvents ? anonymousEvents[name] : anonymousEvents.trackerEvent;
73
73
  }
74
+ // This looks overkill, but a mapping feels safer than doing string operations (capitalize) with javascript
75
+ const mapDeployStageToTpaasStage = (deployStage) => {
76
+ switch (deployStage) {
77
+ case 'dev':
78
+ return 'Dev';
79
+ case 'pre':
80
+ return 'Pre';
81
+ case 'pro':
82
+ return 'Pro';
83
+ }
84
+ };
74
85
  /**
75
86
  * Determines if the SDK is running in a Hybrid (WebView) environment.
76
87
  *
@@ -481,6 +492,7 @@ export default class Tracker {
481
492
  providerGroup: this.state.provider?.group,
482
493
  component: this.state.component,
483
494
  componentVersion: this.state.componentVersion,
495
+ routingStage: mapDeployStageToTpaasStage(this.state.deployStageTpaas),
484
496
  experiments,
485
497
  currentPageReferrer,
486
498
  };
@@ -565,6 +577,7 @@ export default class Tracker {
565
577
  component: this.state.component,
566
578
  componentVersion: this.state.componentVersion,
567
579
  pageviewId: this.state.pageViewId,
580
+ routingStage: mapDeployStageToTpaasStage(this.state.deployStageTpaas),
568
581
  currentPage,
569
582
  currentPageReferrer,
570
583
  experiments,
@@ -1515,6 +1528,15 @@ export default class Tracker {
1515
1528
  const event = buildEngagementTeaserEvent(input, dependencies);
1516
1529
  return this.sendTpaasEvent(event);
1517
1530
  }
1531
+ /**
1532
+ * @param input
1533
+ * @category TPaaS Tracking
1534
+ */
1535
+ async trackEngagementTvModule(input) {
1536
+ const dependencies = await this.prepareTpaasEvent();
1537
+ const event = buildEngagementTvModuleEvent(input, dependencies);
1538
+ return this.sendTpaasEvent(event);
1539
+ }
1518
1540
  /**
1519
1541
  * @param input
1520
1542
  * @category TPaaS Tracking
@@ -10,7 +10,8 @@ let activityListeners = [];
10
10
  let resizeObserver = null;
11
11
  let throttledUpdateFn = throttle(() => undefined, 0);
12
12
  let durationStartTime = 0;
13
- let activityStartTime = 0;
13
+ let previousActivityTime = 0;
14
+ let activityDurationMs = 0;
14
15
  let currentLeaveEvent = DEFAULT_PAGE_LEAVE_EVENT();
15
16
  let additionalHeightBuilder;
16
17
  /**
@@ -43,8 +44,9 @@ export function addTpaasLeaveTracking({ objectElement, pageElement, schema, obje
43
44
  additionalHeightBuilder = heightBuilder;
44
45
  addTpaasLeaveListeners();
45
46
  addUpdateEventListeners(objectDomElement, pageDomElement, objectResizable);
46
- activityStartTime = resetTime();
47
+ previousActivityTime = resetTime();
47
48
  durationStartTime = resetTime();
49
+ activityDurationMs = 0;
48
50
  currentLeaveSchema = schema;
49
51
  currentTrackMethod = trackMethod;
50
52
  logger.debug('addLeaveTracking:after:state', currentLeaveEvent);
@@ -137,7 +139,8 @@ function removeUpdateEventListeners() {
137
139
  const resetEventDefaults = () => {
138
140
  currentLeaveEvent = DEFAULT_PAGE_LEAVE_EVENT();
139
141
  durationStartTime = resetTime();
140
- activityStartTime = resetTime();
142
+ previousActivityTime = resetTime();
143
+ activityDurationMs = 0;
141
144
  };
142
145
  export const resetTpaasViewedContent = () => {
143
146
  currentLeaveEvent = DEFAULT_PAGE_LEAVE_EVENT();
@@ -175,11 +178,13 @@ export function getTpaasLeaveObject() {
175
178
  const endTime = Date.now();
176
179
  // TPaaS leave event requires duration/activity to be at least 1ms, otherwise the event is rejected
177
180
  // also, in practice, it's almost impossible to have an activity or duration of 0ms
181
+ // We don't call increaseActivityDuration here because it's possible to call getTpaasLeaveObject multiple times
182
+ // without any activity events in between, which would incorrectly increase the activity duration.
178
183
  const durationMs = Math.max(endTime - durationStartTime, 1);
179
- const activityDurationMs = Math.max(Math.min(endTime - activityStartTime, ACTIVITY_DURATION_LIMIT_MS), 1);
184
+ const lastActivityDuration = calculateActivityGap(endTime);
180
185
  const leave = {
181
186
  durationMs,
182
- activityDurationMs,
187
+ activityDurationMs: Math.max(activityDurationMs + lastActivityDuration, 1),
183
188
  ...currentLeaveEvent,
184
189
  };
185
190
  logger.debug('trackTpaasLeave: event', leave);
@@ -264,9 +269,16 @@ function addUpdateActivityDurationListeners() {
264
269
  BrowserEvents.TOUCHSTART,
265
270
  ];
266
271
  activityListeners = addEventListeners(activityEvents, () => {
267
- activityStartTime = resetTime();
272
+ increaseActivityDuration(Date.now());
268
273
  }, { passive: true });
269
274
  }
275
+ function calculateActivityGap(activityEndTime) {
276
+ return Math.min(activityEndTime - previousActivityTime, ACTIVITY_DURATION_LIMIT_MS);
277
+ }
278
+ function increaseActivityDuration(activityEndTime) {
279
+ activityDurationMs += calculateActivityGap(activityEndTime);
280
+ previousActivityTime = resetTime();
281
+ }
270
282
  /*
271
283
  Add listeners to a set of browser events.
272
284
  */
@@ -102,7 +102,7 @@ function getOperatingSystem(uaParser) {
102
102
  if (osName.includes('windows')) {
103
103
  return 'Windows';
104
104
  }
105
- if (osName.includes('macos')) {
105
+ if (osName.includes('macos') || osName.includes('mac os')) {
106
106
  return 'Mac';
107
107
  }
108
108
  if (osName.includes('android')) {
@@ -1,9 +1,10 @@
1
- export const builder = (autoTrackerVersion, isHybrid, version) => {
1
+ export const builder = ({ autoTrackerVersion, isHybrid, routingStage, version, }) => {
2
2
  return {
3
3
  tracker: {
4
4
  autoTrackerVersion,
5
5
  isAutoTracker: !!autoTrackerVersion,
6
6
  isHybrid,
7
+ routingStage,
7
8
  trackerType: 'JS',
8
9
  version,
9
10
  },
@@ -1,5 +1,5 @@
1
1
  import { merge } from 'ts-deepmerge';
2
- import { AnonymousViewUIElement, CompletedHealthAction, EngagementAudio, EngagementForm, EngagementHealthUIElement, EngagementOffer, EngagementTeaser, EngagementUIElement, EngagementVideo, EngagementVideoAd, EngagementWidget, ImpressionAdSlot, ImpressionForm, ImpressionHealthUIElement, ImpressionOffer, ImpressionPlayer, ImpressionTeaser, ImpressionUIElement, ImpressionWidget, LeaveArticle, LeaveAudioPage, LeaveError, LeaveFrontpage, LeaveLandingpage, LeaveListing, LeaveLockedArticle, LeaveLockedAudioPage, LeaveLockedVideoPage, LeavePage, LeaveSportsPage, LeaveVideoPage, LeaveWeather, ViewArticle, ViewAudioPage, ViewError, ViewFrontpage, ViewHealthPage, ViewLandingpage, ViewListing, ViewLockedArticle, ViewLockedAudioPage, ViewLockedVideoPage, ViewPage, ViewSportsPage, ViewTitle, ViewVideoPage, ViewWeather, } from '../tpaas-schemas';
2
+ import { AnonymousViewUIElement, CompletedHealthAction, EngagementAudio, EngagementForm, EngagementHealthUIElement, EngagementOffer, EngagementTeaser, EngagementTvModule, EngagementUIElement, EngagementVideo, EngagementVideoAd, EngagementWidget, ImpressionAdSlot, ImpressionForm, ImpressionHealthUIElement, ImpressionOffer, ImpressionPlayer, ImpressionTeaser, ImpressionUIElement, ImpressionWidget, LeaveArticle, LeaveAudioPage, LeaveError, LeaveFrontpage, LeaveLandingpage, LeaveListing, LeaveLockedArticle, LeaveLockedAudioPage, LeaveLockedVideoPage, LeavePage, LeaveSportsPage, LeaveVideoPage, LeaveWeather, ViewArticle, ViewAudioPage, ViewError, ViewFrontpage, ViewHealthPage, ViewLandingpage, ViewListing, ViewLockedArticle, ViewLockedAudioPage, ViewLockedVideoPage, ViewPage, ViewSportsPage, ViewTitle, ViewVideoPage, ViewWeather, } from '../tpaas-schemas';
3
3
  import { builder as anonymousBuilder } from './builders/anonymous';
4
4
  import { builder as baseEventBuilder } from './builders/baseEvent';
5
5
  import { builder as catalogVersionBuilder } from './builders/catalogVersion';
@@ -23,9 +23,9 @@ import { builder as utmBuilder } from './builders/utm';
23
23
  * @private
24
24
  */
25
25
  export const getCommonBuildersOutput = (createdAt, dependencies, input) => {
26
- const { autoTrackerVersion, isHybrid, version, environmentId, jwe, user, consents, providerId, providerName, providerGroup, component, componentVersion, pageviewId, currentPage, currentPageReferrer, } = dependencies;
26
+ const { autoTrackerVersion, isHybrid, version, environmentId, jwe, user, consents, providerId, providerName, providerGroup, component, componentVersion, pageviewId, currentPage, currentPageReferrer, routingStage, } = dependencies;
27
27
  const { experiments } = input;
28
- return merge(trackerBuilder(autoTrackerVersion, isHybrid, version), timeBuilder(createdAt), sessionBuilder(createdAt), deviceBuilder(environmentId, jwe), userBuilder(user), baseEventBuilder(), consentsBuilder(consents), providerBuilder(providerId, component, componentVersion, providerName, providerGroup), pageInfoBuilder(currentPage), pageviewIdBuilder(pageviewId), utmBuilder(), referrerBuilder(currentPageReferrer), catalogVersionBuilder(), experimentsBuilder(dependencies.experiments, experiments));
28
+ return merge(trackerBuilder({ autoTrackerVersion, isHybrid, version, routingStage }), timeBuilder(createdAt), sessionBuilder(createdAt), deviceBuilder(environmentId, jwe), userBuilder(user), baseEventBuilder(), consentsBuilder(consents), providerBuilder(providerId, component, componentVersion, providerName, providerGroup), pageInfoBuilder(currentPage), pageviewIdBuilder(pageviewId), utmBuilder(), referrerBuilder(currentPageReferrer), catalogVersionBuilder(), experimentsBuilder(dependencies.experiments, experiments));
29
29
  };
30
30
  // there's a bug in the ts-deepmerge library that doesn't properly resolve merging optionals with required properties
31
31
  // due to this, we need to do 2 things:
@@ -56,8 +56,8 @@ const normalizePageInput = (input) => {
56
56
  // #region AnonymousView Event Builders
57
57
  export function buildAnonymousViewUIElementEvent(input, dependencies) {
58
58
  const createdAt = new Date();
59
- const { autoTrackerVersion, isHybrid, version, pageviewId, providerId, providerName, providerGroup, component, componentVersion, currentPageReferrer, } = dependencies;
60
- return merge(AnonymousViewUIElement, baseEventBuilder(), trackerBuilder(autoTrackerVersion, isHybrid, version), timeBuilder(createdAt), pageviewIdBuilder(pageviewId), utmBuilder(), anonymousBuilder(), providerBuilder(providerId, component, componentVersion, providerName, providerGroup), referrerBuilder(currentPageReferrer), experimentsBuilder(dependencies.experiments, input.experiments), catalogVersionBuilder(), normalizePageInput(input));
59
+ const { autoTrackerVersion, isHybrid, version, pageviewId, providerId, providerName, providerGroup, component, componentVersion, currentPageReferrer, routingStage, } = dependencies;
60
+ return merge(AnonymousViewUIElement, baseEventBuilder(), trackerBuilder({ autoTrackerVersion, isHybrid, version, routingStage }), timeBuilder(createdAt), pageviewIdBuilder(pageviewId), utmBuilder(), anonymousBuilder(), providerBuilder(providerId, component, componentVersion, providerName, providerGroup), referrerBuilder(currentPageReferrer), experimentsBuilder(dependencies.experiments, input.experiments), catalogVersionBuilder(), normalizePageInput(input));
61
61
  }
62
62
  // #endregion
63
63
  // #region View Event Builders
@@ -143,8 +143,8 @@ export function buildLeaveVideoPageEvent(input, dependencies) {
143
143
  }
144
144
  export function buildLeaveWeatherEvent(input, dependencies) {
145
145
  const createdAt = new Date();
146
- const { autoTrackerVersion, isHybrid, version, providerId, providerName, providerGroup, component, componentVersion, user, experiments, } = dependencies;
147
- return merge(normalizePageInput(input), LeaveWeather, timeBuilder(createdAt), trackerBuilder(autoTrackerVersion, isHybrid, version), baseEventBuilder(), providerBuilder(providerId, component, componentVersion, providerName, providerGroup), userBuilder(user), experimentsBuilder(experiments, input.experiments), consentsBuilder(dependencies.consents), deviceBuilder(dependencies.environmentId, dependencies.jwe), catalogVersionBuilder(), navigationTypeBuilder(input.page?.navigationType), pageviewIdBuilder(dependencies.pageviewId), pageInfoBuilder(dependencies.currentPage), referrerBuilder(dependencies.currentPageReferrer));
146
+ const { autoTrackerVersion, isHybrid, version, providerId, providerName, providerGroup, component, componentVersion, user, experiments, routingStage, } = dependencies;
147
+ return merge(normalizePageInput(input), LeaveWeather, timeBuilder(createdAt), trackerBuilder({ autoTrackerVersion, isHybrid, version, routingStage }), baseEventBuilder(), providerBuilder(providerId, component, componentVersion, providerName, providerGroup), userBuilder(user), experimentsBuilder(experiments, input.experiments), consentsBuilder(dependencies.consents), deviceBuilder(dependencies.environmentId, dependencies.jwe), catalogVersionBuilder(), navigationTypeBuilder(input.page?.navigationType), pageviewIdBuilder(dependencies.pageviewId), pageInfoBuilder(dependencies.currentPage), referrerBuilder(dependencies.currentPageReferrer));
148
148
  }
149
149
  // #endregion
150
150
  // #region Engagement Event Builders
@@ -160,6 +160,9 @@ export function buildEngagementOfferEvent(input, dependencies) {
160
160
  export function buildEngagementTeaserEvent(input, dependencies) {
161
161
  return merge(EngagementTeaser, getCommonBuildersOutput(new Date(), dependencies, input), normalizePageInput(input));
162
162
  }
163
+ export function buildEngagementTvModuleEvent(input, dependencies) {
164
+ return merge(EngagementTvModule, getCommonBuildersOutput(new Date(), dependencies, input), normalizePageInput(input));
165
+ }
163
166
  export function buildEngagementUIElementEvent(input, dependencies) {
164
167
  return merge(EngagementUIElement, getCommonBuildersOutput(new Date(), dependencies, input), normalizePageInput(input));
165
168
  }
@@ -4,329 +4,336 @@ export const AnonymousViewUIElement = {
4
4
  object: {
5
5
  objectType: 'UIElement',
6
6
  },
7
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/AnonymousViewUIElement.json',
7
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/AnonymousViewUIElement.json',
8
8
  };
9
9
  export const CompletedHealthAction = {
10
10
  eventType: 'Completed',
11
11
  object: {
12
12
  objectType: 'HealthAction',
13
13
  },
14
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/CompletedHealthAction.json',
14
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/CompletedHealthAction.json',
15
15
  };
16
16
  export const EngagementAudio = {
17
17
  eventType: 'Engagement',
18
18
  object: {
19
19
  objectType: 'Audio',
20
20
  },
21
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/EngagementAudio.json',
21
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/EngagementAudio.json',
22
22
  };
23
23
  export const EngagementForm = {
24
24
  eventType: 'Engagement',
25
25
  object: {
26
26
  objectType: 'Form',
27
27
  },
28
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/EngagementForm.json',
28
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/EngagementForm.json',
29
29
  };
30
30
  export const EngagementHealthUIElement = {
31
31
  eventType: 'Engagement',
32
32
  object: {
33
33
  objectType: 'HealthUIElement',
34
34
  },
35
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/EngagementHealthUIElement.json',
35
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/EngagementHealthUIElement.json',
36
36
  };
37
37
  export const EngagementOffer = {
38
38
  eventType: 'Engagement',
39
39
  object: {
40
40
  objectType: 'Offer',
41
41
  },
42
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/EngagementOffer.json',
42
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/EngagementOffer.json',
43
43
  };
44
44
  export const EngagementTeaser = {
45
45
  eventType: 'Engagement',
46
46
  object: {
47
47
  objectType: 'Teaser',
48
48
  },
49
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/EngagementTeaser.json',
49
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/EngagementTeaser.json',
50
+ };
51
+ export const EngagementTvModule = {
52
+ eventType: 'Engagement',
53
+ object: {
54
+ objectType: 'TvModule',
55
+ },
56
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/EngagementTvModule.json',
50
57
  };
51
58
  export const EngagementUIElement = {
52
59
  eventType: 'Engagement',
53
60
  object: {
54
61
  objectType: 'UIElement',
55
62
  },
56
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/EngagementUIElement.json',
63
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/EngagementUIElement.json',
57
64
  };
58
65
  export const EngagementVideo = {
59
66
  eventType: 'Engagement',
60
67
  object: {
61
68
  objectType: 'Video',
62
69
  },
63
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/EngagementVideo.json',
70
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/EngagementVideo.json',
64
71
  };
65
72
  export const EngagementVideoAd = {
66
73
  eventType: 'Engagement',
67
74
  object: {
68
75
  objectType: 'VideoAd',
69
76
  },
70
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/EngagementVideoAd.json',
77
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/EngagementVideoAd.json',
71
78
  };
72
79
  export const EngagementWidget = {
73
80
  eventType: 'Engagement',
74
81
  object: {
75
82
  objectType: 'Widget',
76
83
  },
77
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/EngagementWidget.json',
84
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/EngagementWidget.json',
78
85
  };
79
86
  export const ImpressionAdSlot = {
80
87
  eventType: 'Impression',
81
88
  object: {
82
89
  objectType: 'AdSlot',
83
90
  },
84
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ImpressionAdSlot.json',
91
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ImpressionAdSlot.json',
85
92
  };
86
93
  export const ImpressionForm = {
87
94
  eventType: 'Impression',
88
95
  object: {
89
96
  objectType: 'Form',
90
97
  },
91
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ImpressionForm.json',
98
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ImpressionForm.json',
92
99
  };
93
100
  export const ImpressionHealthUIElement = {
94
101
  eventType: 'Impression',
95
102
  object: {
96
103
  objectType: 'HealthUIElement',
97
104
  },
98
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ImpressionHealthUIElement.json',
105
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ImpressionHealthUIElement.json',
99
106
  };
100
107
  export const ImpressionOffer = {
101
108
  eventType: 'Impression',
102
109
  object: {
103
110
  objectType: 'Offer',
104
111
  },
105
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ImpressionOffer.json',
112
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ImpressionOffer.json',
106
113
  };
107
114
  export const ImpressionPlayer = {
108
115
  eventType: 'Impression',
109
116
  object: {
110
117
  objectType: 'Player',
111
118
  },
112
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ImpressionPlayer.json',
119
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ImpressionPlayer.json',
113
120
  };
114
121
  export const ImpressionTeaser = {
115
122
  eventType: 'Impression',
116
123
  object: {
117
124
  objectType: 'Teaser',
118
125
  },
119
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ImpressionTeaser.json',
126
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ImpressionTeaser.json',
120
127
  };
121
128
  export const ImpressionUIElement = {
122
129
  eventType: 'Impression',
123
130
  object: {
124
131
  objectType: 'UIElement',
125
132
  },
126
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ImpressionUIElement.json',
133
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ImpressionUIElement.json',
127
134
  };
128
135
  export const ImpressionWidget = {
129
136
  eventType: 'Impression',
130
137
  object: {
131
138
  objectType: 'Widget',
132
139
  },
133
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ImpressionWidget.json',
140
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ImpressionWidget.json',
134
141
  };
135
142
  export const LeaveArticle = {
136
143
  eventType: 'Leave',
137
144
  object: {
138
145
  objectType: 'Article',
139
146
  },
140
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/LeaveArticle.json',
147
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/LeaveArticle.json',
141
148
  };
142
149
  export const LeaveAudioPage = {
143
150
  eventType: 'Leave',
144
151
  object: {
145
152
  objectType: 'AudioPage',
146
153
  },
147
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/LeaveAudioPage.json',
154
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/LeaveAudioPage.json',
148
155
  };
149
156
  export const LeaveError = {
150
157
  eventType: 'Leave',
151
158
  object: {
152
159
  objectType: 'Error',
153
160
  },
154
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/LeaveError.json',
161
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/LeaveError.json',
155
162
  };
156
163
  export const LeaveFrontpage = {
157
164
  eventType: 'Leave',
158
165
  object: {
159
166
  objectType: 'Frontpage',
160
167
  },
161
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/LeaveFrontpage.json',
168
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/LeaveFrontpage.json',
162
169
  };
163
170
  export const LeaveLandingpage = {
164
171
  eventType: 'Leave',
165
172
  object: {
166
173
  objectType: 'Landingpage',
167
174
  },
168
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/LeaveLandingpage.json',
175
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/LeaveLandingpage.json',
169
176
  };
170
177
  export const LeaveListing = {
171
178
  eventType: 'Leave',
172
179
  object: {
173
180
  objectType: 'Listing',
174
181
  },
175
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/LeaveListing.json',
182
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/LeaveListing.json',
176
183
  };
177
184
  export const LeaveLockedArticle = {
178
185
  eventType: 'Leave',
179
186
  object: {
180
187
  objectType: 'LockedArticle',
181
188
  },
182
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/LeaveLockedArticle.json',
189
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/LeaveLockedArticle.json',
183
190
  };
184
191
  export const LeaveLockedAudioPage = {
185
192
  eventType: 'Leave',
186
193
  object: {
187
194
  objectType: 'LockedAudioPage',
188
195
  },
189
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/LeaveLockedAudioPage.json',
196
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/LeaveLockedAudioPage.json',
190
197
  };
191
198
  export const LeaveLockedVideoPage = {
192
199
  eventType: 'Leave',
193
200
  object: {
194
201
  objectType: 'LockedVideoPage',
195
202
  },
196
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/LeaveLockedVideoPage.json',
203
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/LeaveLockedVideoPage.json',
197
204
  };
198
205
  export const LeavePage = {
199
206
  eventType: 'Leave',
200
207
  object: {
201
208
  objectType: 'Page',
202
209
  },
203
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/LeavePage.json',
210
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/LeavePage.json',
204
211
  };
205
212
  export const LeaveSportsPage = {
206
213
  eventType: 'Leave',
207
214
  object: {
208
215
  objectType: 'SportsPage',
209
216
  },
210
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/LeaveSportsPage.json',
217
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/LeaveSportsPage.json',
211
218
  };
212
219
  export const LeaveVideoPage = {
213
220
  eventType: 'Leave',
214
221
  object: {
215
222
  objectType: 'VideoPage',
216
223
  },
217
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/LeaveVideoPage.json',
224
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/LeaveVideoPage.json',
218
225
  };
219
226
  export const LeaveWeather = {
220
227
  eventType: 'Leave',
221
228
  object: {
222
229
  objectType: 'Weather',
223
230
  },
224
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/LeaveWeather.json',
231
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/LeaveWeather.json',
225
232
  };
226
233
  export const ViewArticle = {
227
234
  eventType: 'View',
228
235
  object: {
229
236
  objectType: 'Article',
230
237
  },
231
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ViewArticle.json',
238
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ViewArticle.json',
232
239
  };
233
240
  export const ViewAudioPage = {
234
241
  eventType: 'View',
235
242
  object: {
236
243
  objectType: 'AudioPage',
237
244
  },
238
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ViewAudioPage.json',
245
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ViewAudioPage.json',
239
246
  };
240
247
  export const ViewError = {
241
248
  eventType: 'View',
242
249
  object: {
243
250
  objectType: 'Error',
244
251
  },
245
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ViewError.json',
252
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ViewError.json',
246
253
  };
247
254
  export const ViewFrontpage = {
248
255
  eventType: 'View',
249
256
  object: {
250
257
  objectType: 'Frontpage',
251
258
  },
252
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ViewFrontpage.json',
259
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ViewFrontpage.json',
253
260
  };
254
261
  export const ViewHealthPage = {
255
262
  eventType: 'View',
256
263
  object: {
257
264
  objectType: 'HealthPage',
258
265
  },
259
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ViewHealthPage.json',
266
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ViewHealthPage.json',
260
267
  };
261
268
  export const ViewLandingpage = {
262
269
  eventType: 'View',
263
270
  object: {
264
271
  objectType: 'Landingpage',
265
272
  },
266
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ViewLandingpage.json',
273
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ViewLandingpage.json',
267
274
  };
268
275
  export const ViewListing = {
269
276
  eventType: 'View',
270
277
  object: {
271
278
  objectType: 'Listing',
272
279
  },
273
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ViewListing.json',
280
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ViewListing.json',
274
281
  };
275
282
  export const ViewLockedArticle = {
276
283
  eventType: 'View',
277
284
  object: {
278
285
  objectType: 'LockedArticle',
279
286
  },
280
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ViewLockedArticle.json',
287
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ViewLockedArticle.json',
281
288
  };
282
289
  export const ViewLockedAudioPage = {
283
290
  eventType: 'View',
284
291
  object: {
285
292
  objectType: 'LockedAudioPage',
286
293
  },
287
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ViewLockedAudioPage.json',
294
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ViewLockedAudioPage.json',
288
295
  };
289
296
  export const ViewLockedVideoPage = {
290
297
  eventType: 'View',
291
298
  object: {
292
299
  objectType: 'LockedVideoPage',
293
300
  },
294
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ViewLockedVideoPage.json',
301
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ViewLockedVideoPage.json',
295
302
  };
296
303
  export const ViewPage = {
297
304
  eventType: 'View',
298
305
  object: {
299
306
  objectType: 'Page',
300
307
  },
301
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ViewPage.json',
308
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ViewPage.json',
302
309
  };
303
310
  export const ViewSportsPage = {
304
311
  eventType: 'View',
305
312
  object: {
306
313
  objectType: 'SportsPage',
307
314
  },
308
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ViewSportsPage.json',
315
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ViewSportsPage.json',
309
316
  };
310
317
  export const ViewTitle = {
311
318
  eventType: 'View',
312
319
  object: {
313
320
  objectType: 'Title',
314
321
  },
315
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ViewTitle.json',
322
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ViewTitle.json',
316
323
  };
317
324
  export const ViewVideoPage = {
318
325
  eventType: 'View',
319
326
  object: {
320
327
  objectType: 'VideoPage',
321
328
  },
322
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ViewVideoPage.json',
329
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ViewVideoPage.json',
323
330
  };
324
331
  export const ViewWeather = {
325
332
  eventType: 'View',
326
333
  object: {
327
334
  objectType: 'Weather',
328
335
  },
329
- schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.9.3/schemas/ViewWeather.json',
336
+ schema: 'https://tpaas-schemas.schibsted.media/catalogs/versions/2.10.0/schemas/ViewWeather.json',
330
337
  };
331
338
  export const ADVERTISING_VALUES = ['Accepted', 'Rejected', 'Unknown'];
332
339
  export const ANALYTICS_VALUES = ['Accepted', 'Rejected', 'Unknown'];
@@ -387,7 +394,7 @@ export const PAGE_TYPE_VALUES = [
387
394
  export const COLUMN_NAME_VALUES = ['main', 'aside'];
388
395
  export const FOLD_POSITION_VALUES = ['Above', 'Below', 'Unknown'];
389
396
  export const PRIMARY_AXIS_VALUES = ['Horizontal', 'Vertical'];
390
- export const STAGE_VALUES = ['Dev', 'Test', 'Pro'];
397
+ export const STAGE_VALUES = ['Dev', 'Pre', 'Pro'];
391
398
  export const SPORT_EVENT_COVERAGE_VALUES = ['Manual', 'SemiAutomatic', 'Automatic'];
392
399
  export const SPORT_EVENT_STATUS_VALUES = [
393
400
  'NotStarted',
@@ -437,6 +444,7 @@ export const SPORT_VIEW_VALUES = [
437
444
  'Studio',
438
445
  ];
439
446
  export const USER_THEME_VALUES = ['Light', 'Dark', 'System', 'Other'];
447
+ export const ROUTING_STAGE_VALUES = ['Dev', 'Pre', 'Pro'];
440
448
  export const TRACKER_TYPE_VALUES = ['JS', 'IOS', 'Android', 'Backend'];
441
449
  export const REGION_VALUES = ['Norway', 'Sweden', 'Finland'];
442
450
  export const UTM_MEDIUM_VALUES = [
@@ -450,4 +458,4 @@ export const UTM_MEDIUM_VALUES = [
450
458
  'Video',
451
459
  'Internal',
452
460
  ];
453
- export const CATALOG_VERSION = '2.9.3';
461
+ export const CATALOG_VERSION = '2.10.0';
@@ -1,2 +1,2 @@
1
1
  // This file is auto-generated by bin/generate-version.js. Do not edit manually.
2
- export const SDK_VERSION = '8.0.0-rc.13';
2
+ export const SDK_VERSION = '8.0.0-rc.14';