@schibsted/pulse-sdk 8.0.0-rc.3 → 8.0.0-rc.5

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 (29) hide show
  1. package/dist/cjs/Tracker.js +14 -79
  2. package/dist/cjs/Tracker.test-d.js +2 -0
  3. package/dist/cjs/builders/actor.js +3 -3
  4. package/dist/cjs/identity/actor.js +18 -6
  5. package/dist/cjs/tracker-proxy/consts.js +0 -7
  6. package/dist/cjs/version.js +1 -1
  7. package/dist/ejs/Tracker.js +16 -81
  8. package/dist/ejs/Tracker.test-d.js +2 -0
  9. package/dist/ejs/builders/actor.js +2 -2
  10. package/dist/ejs/identity/actor.js +19 -7
  11. package/dist/ejs/tracker-proxy/consts.js +0 -7
  12. package/dist/ejs/version.js +1 -1
  13. package/dist/types/Tracker.d.ts +2 -39
  14. package/dist/types/builders/actor.d.ts +3 -2
  15. package/dist/types/identity/actor.d.ts +2 -2
  16. package/dist/types/identity/cis.d.ts +1 -1
  17. package/dist/types/tracker-proxy/consts.d.ts +1 -1
  18. package/dist/types/version.d.ts +1 -1
  19. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/catalogVersion.js +9 -0
  20. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders.js +63 -78
  21. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/catalogVersion.js +6 -0
  22. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders.js +64 -72
  23. package/node_modules/@schibsted/tpaas-event-builder/dist/index.d.ts +736 -1058
  24. package/node_modules/@schibsted/tpaas-event-builder/package.json +1 -1
  25. package/node_modules/@schibsted/tpaas-schemas/dist/cjs/constants.js +80 -107
  26. package/node_modules/@schibsted/tpaas-schemas/dist/ejs/constants.js +78 -105
  27. package/node_modules/@schibsted/tpaas-schemas/dist/index.d.ts +850 -1214
  28. package/node_modules/@schibsted/tpaas-schemas/package.json +1 -1
  29. package/package.json +3 -3
@@ -1,7 +1,8 @@
1
- import { AnonymousViewUIElement, CompletedHealthAction, EngagementAudio, EngagementForm, EngagementHealthUIElement, EngagementOffer, EngagementTeaser, EngagementUIElement, EngagementVideo, EngagementVideoAd, EngagementWidget, ImpressionAdSlot, ImpressionForm, ImpressionHealthUIElement, ImpressionOffer, ImpressionPlayer, ImpressionTeaser, ImpressionUIElement, ImpressionWidget, LeaveArticle, LeaveAudioPage, LeaveError, LeaveFrontpage, LeaveLandingpage, LeaveListing, LeaveLockedArticle, LeaveLockedAudio, LeaveLockedAudioPage, LeaveLockedVideo, LeaveLockedVideoPage, LeavePage, LeaveSportsPage, LeaveVideoPage, LeaveWeather, ViewArticle, ViewAudio, ViewAudioPage, ViewError, ViewFrontpage, ViewHealthPage, ViewLandingpage, ViewListing, ViewLockedArticle, ViewLockedAudio, ViewLockedAudioPage, ViewLockedVideo, ViewLockedVideoPage, ViewPage, ViewSportsPage, ViewTitle, ViewVideo, ViewVideoPage, ViewWeather, } from '@schibsted/tpaas-schemas';
1
+ import { AnonymousViewUIElement, CompletedHealthAction, EngagementAudio, EngagementForm, EngagementHealthUIElement, EngagementOffer, EngagementTeaser, EngagementUIElement, EngagementVideo, EngagementVideoAd, EngagementWidget, 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 '@schibsted/tpaas-schemas';
2
2
  import { merge } from 'ts-deepmerge';
3
3
  import { builder as anonymousBuilder } from './builders/anonymous';
4
4
  import { builder as baseEventBuilder } from './builders/baseEvent';
5
+ import { builder as catalogVersionBuilder } from './builders/catalogVersion';
5
6
  import { builder as consentsBuilder } from './builders/consents';
6
7
  import { builder as deviceBuilder } from './builders/device';
7
8
  import { builder as experimentsBuilder } from './builders/experiments';
@@ -22,14 +23,26 @@ import { builder as utmBuilder } from './builders/utm';
22
23
  * @private
23
24
  */
24
25
  export const getCommonBuildersOutput = (createdAt, { autoTrackerVersion, isHybrid, version, environmentId, jwe, user, consents, providerId, pageviewId, currentPage, }) => {
25
- return merge(trackerBuilder(autoTrackerVersion, isHybrid, version), timeBuilder(createdAt), sessionBuilder(createdAt), deviceBuilder(environmentId, jwe), userBuilder(user), baseEventBuilder(), consentsBuilder(consents), providerBuilder(providerId), pageInfoBuilder(currentPage), pageviewIdBuilder(pageviewId), utmBuilder(), referrerBuilder());
26
+ return merge(trackerBuilder(autoTrackerVersion, isHybrid, version), timeBuilder(createdAt), sessionBuilder(createdAt), deviceBuilder(environmentId, jwe), userBuilder(user), baseEventBuilder(), consentsBuilder(consents), providerBuilder(providerId), pageInfoBuilder(currentPage), pageviewIdBuilder(pageviewId), utmBuilder(), referrerBuilder(), catalogVersionBuilder());
26
27
  };
27
28
  // there's a bug in the ts-deepmerge library that doesn't properly resolve merging optionals with required properties
28
- // due to this, we need to manually omit navigationType from the input before merging
29
+ // due to this, we need to do 2 things:
30
+ // (1) manually omit navigationType from the input before merging.
29
31
  // it has no effect on the final value since navigationType will always be set by the navigationTypeBuilder.
30
- // But it makes TS happy in an elegant way, without type assertions
31
- const omitNavigationType = (input) => {
32
+ // (2) ensure page is always defined in the input, even when it's not passed to the SDK
33
+ // again, it has no effect on the final value because several builders are passing a page object
34
+ // But this makes TS happy in an elegant way, without type assertions at the merge level
35
+ const normalizePageInput = (input) => {
32
36
  const { page, ...rest } = input;
37
+ if (!page) {
38
+ return {
39
+ ...rest,
40
+ page: {},
41
+ };
42
+ }
43
+ if (!('navigationType' in page)) {
44
+ return input;
45
+ }
33
46
  const { navigationType: _, ...pageRest } = page;
34
47
  return {
35
48
  ...rest,
@@ -42,174 +55,153 @@ const omitNavigationType = (input) => {
42
55
  export function buildAnonymousViewUIElementEvent(input, dependencies) {
43
56
  const createdAt = new Date();
44
57
  const { autoTrackerVersion, isHybrid, version, pageviewId, providerId } = dependencies;
45
- return merge(input, AnonymousViewUIElement, baseEventBuilder(), trackerBuilder(autoTrackerVersion, isHybrid, version), timeBuilder(createdAt), pageviewIdBuilder(pageviewId), utmBuilder(), anonymousBuilder(), providerBuilder(providerId), referrerBuilder(), experimentsBuilder(dependencies.experiments, input.experiments));
58
+ return merge(normalizePageInput(input), AnonymousViewUIElement, baseEventBuilder(), trackerBuilder(autoTrackerVersion, isHybrid, version), timeBuilder(createdAt), pageviewIdBuilder(pageviewId), utmBuilder(), anonymousBuilder(), providerBuilder(providerId), referrerBuilder(), experimentsBuilder(dependencies.experiments, input.experiments), catalogVersionBuilder());
46
59
  }
47
60
  // #endregion
48
61
  // #region View Event Builders
49
62
  export function buildViewArticleEvent(input, dependencies) {
50
- return merge(omitNavigationType(input), ViewArticle, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
51
- }
52
- export function buildViewAudioEvent(input, dependencies) {
53
- return merge(omitNavigationType(input), ViewAudio, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
63
+ return merge(normalizePageInput(input), ViewArticle, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
54
64
  }
55
65
  export function buildViewAudioPageEvent(input, dependencies) {
56
- return merge(omitNavigationType(input), ViewAudioPage, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page.navigationType));
66
+ return merge(normalizePageInput(input), ViewAudioPage, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page?.navigationType));
57
67
  }
58
68
  export function buildViewErrorEvent(input, dependencies) {
59
- return merge(omitNavigationType(input), ViewError, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
69
+ return merge(normalizePageInput(input), ViewError, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
60
70
  }
61
71
  export function buildViewFrontpageEvent(input, dependencies) {
62
- return merge(omitNavigationType(input), ViewFrontpage, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page.navigationType));
72
+ return merge(normalizePageInput(input), ViewFrontpage, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page?.navigationType));
63
73
  }
64
74
  export function buildViewLandingpageEvent(input, dependencies) {
65
- return merge(omitNavigationType(input), ViewLandingpage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
75
+ return merge(normalizePageInput(input), ViewLandingpage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
66
76
  }
67
77
  export function buildViewListingEvent(input, dependencies) {
68
- return merge(omitNavigationType(input), ViewListing, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
78
+ return merge(normalizePageInput(input), ViewListing, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
69
79
  }
70
80
  export function buildViewLockedArticleEvent(input, dependencies) {
71
- return merge(omitNavigationType(input), ViewLockedArticle, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
72
- }
73
- export function buildViewLockedAudioEvent(input, dependencies) {
74
- return merge(omitNavigationType(input), ViewLockedAudio, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
81
+ return merge(normalizePageInput(input), ViewLockedArticle, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
75
82
  }
76
83
  export function buildViewLockedAudioPageEvent(input, dependencies) {
77
- return merge(omitNavigationType(input), ViewLockedAudioPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
78
- }
79
- export function buildViewLockedVideoEvent(input, dependencies) {
80
- return merge(omitNavigationType(input), ViewLockedVideo, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
84
+ return merge(normalizePageInput(input), ViewLockedAudioPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
81
85
  }
82
86
  export function buildViewLockedVideoPageEvent(input, dependencies) {
83
- return merge(omitNavigationType(input), ViewLockedVideoPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
87
+ return merge(normalizePageInput(input), ViewLockedVideoPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
84
88
  }
85
89
  export function buildLeaveLockedVideoPageEvent(input, dependencies) {
86
- return merge(omitNavigationType(input), LeaveLockedVideoPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType));
90
+ return merge(normalizePageInput(input), LeaveLockedVideoPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType));
87
91
  }
88
92
  export function buildViewPageEvent(input, dependencies) {
89
- return merge(omitNavigationType(input), ViewPage, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page.navigationType));
93
+ return merge(normalizePageInput(input), ViewPage, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page?.navigationType));
90
94
  }
91
95
  export function buildViewSportsPageEvent(input, dependencies) {
92
- return merge(omitNavigationType(input), ViewSportsPage, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page.navigationType));
96
+ return merge(normalizePageInput(input), ViewSportsPage, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page?.navigationType));
93
97
  }
94
98
  export function buildViewTitleEvent(input, dependencies) {
95
- return merge(omitNavigationType(input), ViewTitle, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page.navigationType));
96
- }
97
- export function buildViewVideoEvent(input, dependencies) {
98
- return merge(omitNavigationType(input), ViewVideo, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page.navigationType));
99
+ return merge(normalizePageInput(input), ViewTitle, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page?.navigationType));
99
100
  }
100
101
  export function buildViewVideoPageEvent(input, dependencies) {
101
- return merge(omitNavigationType(input), ViewVideoPage, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page.navigationType));
102
+ return merge(normalizePageInput(input), ViewVideoPage, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page?.navigationType));
102
103
  }
103
104
  export function buildViewWeatherEvent(input, dependencies) {
104
- return merge(omitNavigationType(input), ViewWeather, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page.navigationType));
105
+ return merge(normalizePageInput(input), ViewWeather, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments), navigationTypeBuilder(input.page?.navigationType));
105
106
  }
106
107
  // #endregion
107
108
  // #region Leave Event Builders
108
109
  export function buildLeaveArticleEvent(input, dependencies) {
109
- return merge(omitNavigationType(input), LeaveArticle, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
110
+ return merge(normalizePageInput(input), LeaveArticle, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
110
111
  }
111
112
  export function buildLeaveAudioPageEvent(input, dependencies) {
112
- return merge(omitNavigationType(input), LeaveAudioPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType));
113
+ return merge(normalizePageInput(input), LeaveAudioPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType));
113
114
  }
114
115
  export function buildLeaveErrorEvent(input, dependencies) {
115
- return merge(omitNavigationType(input), LeaveError, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
116
+ return merge(normalizePageInput(input), LeaveError, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
116
117
  }
117
118
  export function buildLeaveFrontpageEvent(input, dependencies) {
118
- return merge(omitNavigationType(input), LeaveFrontpage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
119
+ return merge(normalizePageInput(input), LeaveFrontpage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
119
120
  }
120
121
  export function buildLeaveLandingpageEvent(input, dependencies) {
121
- return merge(omitNavigationType(input), LeaveLandingpage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
122
+ return merge(normalizePageInput(input), LeaveLandingpage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
122
123
  }
123
124
  export function buildLeaveListingEvent(input, dependencies) {
124
- return merge(omitNavigationType(input), LeaveListing, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
125
+ return merge(normalizePageInput(input), LeaveListing, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
125
126
  }
126
127
  export function buildLeaveLockedArticleEvent(input, dependencies) {
127
- return merge(omitNavigationType(input), LeaveLockedArticle, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
128
- }
129
- export function buildLeaveLockedAudioEvent(input, dependencies) {
130
- return merge(omitNavigationType(input), LeaveLockedAudio, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
128
+ return merge(normalizePageInput(input), LeaveLockedArticle, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
131
129
  }
132
130
  export function buildLeaveLockedAudioPageEvent(input, dependencies) {
133
- return merge(omitNavigationType(input), LeaveLockedAudioPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType));
134
- }
135
- export function buildLeaveLockedVideoEvent(input, dependencies) {
136
- return merge(omitNavigationType(input), LeaveLockedVideo, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
131
+ return merge(normalizePageInput(input), LeaveLockedAudioPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType));
137
132
  }
138
133
  export function buildLeavePageEvent(input, dependencies) {
139
- return merge(omitNavigationType(input), LeavePage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
134
+ return merge(normalizePageInput(input), LeavePage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
140
135
  }
141
136
  export function buildLeaveSportsPageEvent(input, dependencies) {
142
- return merge(omitNavigationType(input), LeaveSportsPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
137
+ return merge(normalizePageInput(input), LeaveSportsPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType), experimentsBuilder(dependencies.experiments, input.experiments));
143
138
  }
144
139
  export function buildLeaveVideoPageEvent(input, dependencies) {
145
- return merge(omitNavigationType(input), LeaveVideoPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType));
140
+ return merge(normalizePageInput(input), LeaveVideoPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType));
146
141
  }
147
142
  export function buildLeaveWeatherEvent(input, dependencies) {
148
143
  const createdAt = new Date();
149
144
  const { autoTrackerVersion, isHybrid, version, providerId, user, experiments } = dependencies;
150
- return merge(input, LeaveWeather, timeBuilder(createdAt), trackerBuilder(autoTrackerVersion, isHybrid, version), baseEventBuilder(), providerBuilder(providerId), userBuilder(user), experimentsBuilder(experiments, input.experiments), consentsBuilder(dependencies.consents), deviceBuilder(dependencies.environmentId, dependencies.jwe));
145
+ return merge(input, LeaveWeather, timeBuilder(createdAt), trackerBuilder(autoTrackerVersion, isHybrid, version), baseEventBuilder(), providerBuilder(providerId), userBuilder(user), experimentsBuilder(experiments, input.experiments), consentsBuilder(dependencies.consents), deviceBuilder(dependencies.environmentId, dependencies.jwe), catalogVersionBuilder());
151
146
  }
152
147
  // #endregion
153
148
  // #region Engagement Event Builders
154
149
  export function buildEngagementAudioEvent(input, dependencies) {
155
- return merge(input, EngagementAudio, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
150
+ return merge(normalizePageInput(input), EngagementAudio, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
156
151
  }
157
152
  export function buildEngagementFormEvent(input, dependencies) {
158
- return merge(input, EngagementForm, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
153
+ return merge(normalizePageInput(input), EngagementForm, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
159
154
  }
160
155
  export function buildEngagementOfferEvent(input, dependencies) {
161
- return merge(input, EngagementOffer, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
156
+ return merge(normalizePageInput(input), EngagementOffer, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
162
157
  }
163
158
  export function buildEngagementTeaserEvent(input, dependencies) {
164
- return merge(input, EngagementTeaser, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
159
+ return merge(normalizePageInput(input), EngagementTeaser, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
165
160
  }
166
161
  export function buildEngagementUIElementEvent(input, dependencies) {
167
- return merge(input, EngagementUIElement, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
162
+ return merge(normalizePageInput(input), EngagementUIElement, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
168
163
  }
169
164
  export function buildEngagementVideoEvent(input, dependencies) {
170
- return merge(input, EngagementVideo, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
165
+ return merge(normalizePageInput(input), EngagementVideo, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
171
166
  }
172
167
  export function buildEngagementVideoAdEvent(input, dependencies) {
173
- return merge(input, EngagementVideoAd, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
168
+ return merge(normalizePageInput(input), EngagementVideoAd, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
174
169
  }
175
170
  export function buildEngagementWidgetEvent(input, dependencies) {
176
- return merge(input, EngagementWidget, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
171
+ return merge(normalizePageInput(input), EngagementWidget, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
177
172
  }
178
173
  // #endregion
179
174
  // #region Health Event Builders
180
175
  export function buildCompletedHealthActionEvent(input, dependencies) {
181
- return merge(input, CompletedHealthAction, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
176
+ return merge(normalizePageInput(input), CompletedHealthAction, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
182
177
  }
183
178
  export function buildEngagementHealthUIElementEvent(input, dependencies) {
184
- return merge(input, EngagementHealthUIElement, getCommonBuildersOutput(new Date(), dependencies));
179
+ return merge(normalizePageInput(input), EngagementHealthUIElement, getCommonBuildersOutput(new Date(), dependencies));
185
180
  }
186
181
  export function buildViewHealthPageEvent(input, dependencies) {
187
- return merge(omitNavigationType(input), ViewHealthPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page.navigationType));
182
+ return merge(normalizePageInput(input), ViewHealthPage, getCommonBuildersOutput(new Date(), dependencies), navigationTypeBuilder(input.page?.navigationType));
188
183
  }
189
184
  export function buildImpressionHealthUIElementEvent(input, dependencies) {
190
- return merge(input, ImpressionHealthUIElement, getCommonBuildersOutput(new Date(), dependencies));
185
+ return merge(normalizePageInput(input), ImpressionHealthUIElement, getCommonBuildersOutput(new Date(), dependencies));
191
186
  }
192
187
  // #endregion
193
188
  // #region Impression Event Builders
194
- export function buildImpressionAdSlotEvent(input, dependencies) {
195
- return merge(input, ImpressionAdSlot, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
196
- }
197
189
  export function buildImpressionFormEvent(input, dependencies) {
198
- return merge(input, ImpressionForm, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
190
+ return merge(normalizePageInput(input), ImpressionForm, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
199
191
  }
200
192
  export function buildImpressionOfferEvent(input, dependencies) {
201
- return merge(input, ImpressionOffer, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
193
+ return merge(normalizePageInput(input), ImpressionOffer, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
202
194
  }
203
195
  export function buildImpressionPlayerEvent(input, dependencies) {
204
- return merge(input, ImpressionPlayer, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
196
+ return merge(normalizePageInput(input), ImpressionPlayer, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
205
197
  }
206
198
  export function buildImpressionTeaserEvent(input, dependencies) {
207
- return merge(input, ImpressionTeaser, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
199
+ return merge(normalizePageInput(input), ImpressionTeaser, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
208
200
  }
209
201
  export function buildImpressionUIElementEvent(input, dependencies) {
210
- return merge(input, ImpressionUIElement, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
202
+ return merge(normalizePageInput(input), ImpressionUIElement, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
211
203
  }
212
204
  export function buildImpressionWidgetEvent(input, dependencies) {
213
- return merge(input, ImpressionWidget, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
205
+ return merge(normalizePageInput(input), ImpressionWidget, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
214
206
  }
215
207
  // #endregion