@schibsted/pulse-sdk 8.0.0-rc.0 → 8.0.0-rc.10

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 (101) hide show
  1. package/dist/cjs/Tracker.js +201 -209
  2. package/dist/cjs/Tracker.test-d.js +2 -2
  3. package/dist/cjs/builders/actor.js +3 -3
  4. package/dist/cjs/builders/consents.js +2 -2
  5. package/dist/cjs/builders/events-anonymous-node.js +1 -1
  6. package/dist/cjs/builders/events-node.js +3 -3
  7. package/dist/cjs/builders/experiments.js +1 -0
  8. package/dist/cjs/builders/tracker-node.js +2 -5
  9. package/dist/cjs/identity/actor.js +18 -6
  10. package/dist/cjs/identity/cis.js +4 -6
  11. package/dist/cjs/leaveTrackingTpaas/constants.js +2 -7
  12. package/dist/cjs/leaveTrackingTpaas/index.js +52 -40
  13. package/dist/cjs/tracker-proxy/consts.js +12 -6
  14. package/dist/cjs/tracker-proxy/proxy-provider.js +6 -0
  15. package/dist/cjs/version.js +5 -0
  16. package/dist/cjs/visibility-observer/index.js +9 -7
  17. package/dist/cjs/wrapper/types/event.js +5 -0
  18. package/dist/ejs/Tracker.js +203 -211
  19. package/dist/ejs/Tracker.test-d.js +2 -2
  20. package/dist/ejs/builders/actor.js +2 -2
  21. package/dist/ejs/builders/consents.js +2 -2
  22. package/dist/ejs/builders/events-anonymous-node.js +1 -1
  23. package/dist/ejs/builders/events-node.js +3 -3
  24. package/dist/ejs/builders/experiments.js +1 -1
  25. package/dist/ejs/builders/tracker-node.js +2 -2
  26. package/dist/ejs/identity/actor.js +19 -7
  27. package/dist/ejs/identity/cis.js +4 -3
  28. package/dist/ejs/leaveTrackingTpaas/constants.js +1 -5
  29. package/dist/ejs/leaveTrackingTpaas/index.js +53 -41
  30. package/dist/ejs/tracker-proxy/consts.js +12 -6
  31. package/dist/ejs/tracker-proxy/proxy-provider.js +6 -0
  32. package/dist/ejs/version.js +2 -0
  33. package/dist/ejs/visibility-observer/index.js +9 -7
  34. package/dist/ejs/wrapper/types/event.js +4 -1
  35. package/dist/types/Tracker.d.ts +92 -87
  36. package/dist/types/builders/actor.d.ts +3 -2
  37. package/dist/types/builders/consents.d.ts +2 -2
  38. package/dist/types/builders/experiments.d.ts +1 -0
  39. package/dist/types/builders/index.d.ts +1 -1
  40. package/dist/types/identity/actor.d.ts +2 -2
  41. package/dist/types/identity/cis.d.ts +1 -1
  42. package/dist/types/index.d.ts +1 -2
  43. package/dist/types/leaveTrackingTpaas/constants.d.ts +1 -5
  44. package/dist/types/leaveTrackingTpaas/index.d.ts +6 -6
  45. package/dist/types/leaveTrackingTpaas/types.d.ts +1 -9
  46. package/dist/types/tracker-proxy/consts.d.ts +1 -1
  47. package/dist/types/types.d.ts +19 -13
  48. package/dist/types/version.d.ts +1 -0
  49. package/dist/types/visibility-observer/index.d.ts +6 -1
  50. package/dist/types/wrapper/engagement/ui-element/types.d.ts +1 -0
  51. package/dist/types/wrapper/types/event.d.ts +3 -1
  52. package/dist/types/wrapper/view/ui-element/types.d.ts +1 -0
  53. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis-browser.d.ts +1 -0
  54. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis-browser.js +17 -3
  55. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis-browser.js.map +1 -1
  56. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/pulseStorage.d.ts +4 -0
  57. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/pulseStorage.js +15 -5
  58. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/pulseStorage.js.map +1 -1
  59. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/storage.d.ts +1 -0
  60. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/storage.js +5 -0
  61. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/storage.js.map +1 -1
  62. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis-browser.d.ts +1 -0
  63. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis-browser.js +16 -2
  64. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis-browser.js.map +1 -1
  65. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/pulseStorage.d.ts +4 -0
  66. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/pulseStorage.js +12 -3
  67. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/pulseStorage.js.map +1 -1
  68. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/storage.d.ts +1 -0
  69. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/storage.js +5 -0
  70. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/storage.js.map +1 -1
  71. package/node_modules/@schibsted/pulse-cis-sync/dist/types/cis-browser.d.ts +1 -0
  72. package/node_modules/@schibsted/pulse-cis-sync/dist/types/storage/pulseStorage.d.ts +4 -0
  73. package/node_modules/@schibsted/pulse-cis-sync/dist/types/storage/storage.d.ts +1 -0
  74. package/node_modules/@schibsted/pulse-utils/package.json +1 -1
  75. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/catalogVersion.js +9 -0
  76. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/device.js +8 -2
  77. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/provider.js +3 -1
  78. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/session.js +19 -6
  79. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders.js +75 -76
  80. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/guards.js +7 -0
  81. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/index.js +3 -0
  82. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/catalogVersion.js +6 -0
  83. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/device.js +8 -2
  84. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/provider.js +3 -1
  85. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/session.js +19 -6
  86. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders.js +74 -71
  87. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/guards.js +4 -0
  88. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/index.js +1 -0
  89. package/node_modules/@schibsted/tpaas-event-builder/dist/index.d.ts +1730 -1127
  90. package/node_modules/@schibsted/tpaas-event-builder/package.json +3 -2
  91. package/node_modules/@schibsted/tpaas-schemas/dist/cjs/constants.js +136 -103
  92. package/node_modules/@schibsted/tpaas-schemas/dist/cjs/index.js +1 -0
  93. package/node_modules/@schibsted/tpaas-schemas/dist/cjs/types.js +2 -0
  94. package/node_modules/@schibsted/tpaas-schemas/dist/ejs/constants.js +134 -101
  95. package/node_modules/@schibsted/tpaas-schemas/dist/ejs/index.js +1 -0
  96. package/node_modules/@schibsted/tpaas-schemas/dist/ejs/types.js +1 -0
  97. package/node_modules/@schibsted/tpaas-schemas/dist/index.d.ts +1940 -1266
  98. package/node_modules/@schibsted/tpaas-schemas/package.json +1 -1
  99. package/package.json +7 -6
  100. package/dist/cjs/version.json +0 -1
  101. package/dist/ejs/version.json +0 -1
@@ -3,21 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCommonBuildersOutput = void 0;
4
4
  exports.buildAnonymousViewUIElementEvent = buildAnonymousViewUIElementEvent;
5
5
  exports.buildViewArticleEvent = buildViewArticleEvent;
6
- exports.buildViewAudioEvent = buildViewAudioEvent;
7
6
  exports.buildViewAudioPageEvent = buildViewAudioPageEvent;
8
7
  exports.buildViewErrorEvent = buildViewErrorEvent;
9
8
  exports.buildViewFrontpageEvent = buildViewFrontpageEvent;
10
9
  exports.buildViewLandingpageEvent = buildViewLandingpageEvent;
11
10
  exports.buildViewListingEvent = buildViewListingEvent;
12
11
  exports.buildViewLockedArticleEvent = buildViewLockedArticleEvent;
13
- exports.buildViewLockedAudioEvent = buildViewLockedAudioEvent;
14
12
  exports.buildViewLockedAudioPageEvent = buildViewLockedAudioPageEvent;
15
- exports.buildViewLockedVideoEvent = buildViewLockedVideoEvent;
16
13
  exports.buildViewLockedVideoPageEvent = buildViewLockedVideoPageEvent;
17
14
  exports.buildLeaveLockedVideoPageEvent = buildLeaveLockedVideoPageEvent;
18
15
  exports.buildViewPageEvent = buildViewPageEvent;
16
+ exports.buildViewSportsPageEvent = buildViewSportsPageEvent;
19
17
  exports.buildViewTitleEvent = buildViewTitleEvent;
20
- exports.buildViewVideoEvent = buildViewVideoEvent;
21
18
  exports.buildViewVideoPageEvent = buildViewVideoPageEvent;
22
19
  exports.buildViewWeatherEvent = buildViewWeatherEvent;
23
20
  exports.buildLeaveArticleEvent = buildLeaveArticleEvent;
@@ -27,10 +24,9 @@ exports.buildLeaveFrontpageEvent = buildLeaveFrontpageEvent;
27
24
  exports.buildLeaveLandingpageEvent = buildLeaveLandingpageEvent;
28
25
  exports.buildLeaveListingEvent = buildLeaveListingEvent;
29
26
  exports.buildLeaveLockedArticleEvent = buildLeaveLockedArticleEvent;
30
- exports.buildLeaveLockedAudioEvent = buildLeaveLockedAudioEvent;
31
27
  exports.buildLeaveLockedAudioPageEvent = buildLeaveLockedAudioPageEvent;
32
- exports.buildLeaveLockedVideoEvent = buildLeaveLockedVideoEvent;
33
28
  exports.buildLeavePageEvent = buildLeavePageEvent;
29
+ exports.buildLeaveSportsPageEvent = buildLeaveSportsPageEvent;
34
30
  exports.buildLeaveVideoPageEvent = buildLeaveVideoPageEvent;
35
31
  exports.buildLeaveWeatherEvent = buildLeaveWeatherEvent;
36
32
  exports.buildEngagementAudioEvent = buildEngagementAudioEvent;
@@ -56,6 +52,7 @@ const tpaas_schemas_1 = require("@schibsted/tpaas-schemas");
56
52
  const ts_deepmerge_1 = require("ts-deepmerge");
57
53
  const anonymous_1 = require("./builders/anonymous");
58
54
  const baseEvent_1 = require("./builders/baseEvent");
55
+ const catalogVersion_1 = require("./builders/catalogVersion");
59
56
  const consents_1 = require("./builders/consents");
60
57
  const device_1 = require("./builders/device");
61
58
  const experiments_1 = require("./builders/experiments");
@@ -75,16 +72,30 @@ const utm_1 = require("./builders/utm");
75
72
  * @param dependencies {TpaasEventBuilderDependencies}
76
73
  * @private
77
74
  */
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)());
75
+ const getCommonBuildersOutput = (createdAt, dependencies, input) => {
76
+ const { autoTrackerVersion, isHybrid, version, environmentId, jwe, user, consents, providerId, component, componentVersion, pageviewId, currentPage, } = dependencies;
77
+ const { experiments } = input;
78
+ 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, component, componentVersion), (0, pageInfo_1.builder)(currentPage), (0, pageviewId_1.builder)(pageviewId), (0, utm_1.builder)(), (0, referrer_1.builder)(), (0, catalogVersion_1.builder)(), (0, experiments_1.builder)(dependencies.experiments, experiments));
80
79
  };
81
80
  exports.getCommonBuildersOutput = getCommonBuildersOutput;
82
81
  // 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
82
+ // due to this, we need to do 2 things:
83
+ // (1) manually omit navigationType from the input before merging.
84
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) => {
85
+ // (2) ensure page is always defined in the input, even when it's not passed to the SDK
86
+ // again, it has no effect on the final value because several builders are passing a page object
87
+ // But this makes TS happy in an elegant way, without type assertions at the merge level
88
+ const normalizePageInput = (input) => {
87
89
  const { page, ...rest } = input;
90
+ if (!page) {
91
+ return {
92
+ ...rest,
93
+ page: {},
94
+ };
95
+ }
96
+ if (!('navigationType' in page)) {
97
+ return input;
98
+ }
88
99
  const { navigationType: _, ...pageRest } = page;
89
100
  return {
90
101
  ...rest,
@@ -96,169 +107,157 @@ const omitNavigationType = (input) => {
96
107
  // #region AnonymousView Event Builders
97
108
  function buildAnonymousViewUIElementEvent(input, dependencies) {
98
109
  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));
110
+ const { autoTrackerVersion, isHybrid, version, pageviewId, providerId, component, componentVersion } = dependencies;
111
+ return (0, ts_deepmerge_1.merge)(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, component, componentVersion), (0, referrer_1.builder)(), (0, experiments_1.builder)(dependencies.experiments, input.experiments), (0, catalogVersion_1.builder)(), normalizePageInput(input));
101
112
  }
102
113
  // #endregion
103
114
  // #region View Event Builders
104
115
  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));
116
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ViewArticle, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
109
117
  }
110
118
  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));
119
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ViewAudioPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
112
120
  }
113
121
  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));
122
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ViewError, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
115
123
  }
116
124
  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));
125
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ViewFrontpage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
118
126
  }
119
127
  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));
128
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ViewLandingpage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
121
129
  }
122
130
  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));
131
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ViewListing, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
124
132
  }
125
133
  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));
134
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ViewLockedArticle, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
130
135
  }
131
136
  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));
137
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ViewLockedAudioPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
136
138
  }
137
139
  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));
140
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ViewLockedVideoPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
139
141
  }
140
142
  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));
143
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.LeaveLockedVideoPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
142
144
  }
143
145
  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));
146
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ViewPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
145
147
  }
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
+ function buildViewSportsPageEvent(input, dependencies) {
149
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ViewSportsPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
148
150
  }
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
+ function buildViewTitleEvent(input, dependencies) {
152
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ViewTitle, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
151
153
  }
152
154
  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));
155
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ViewVideoPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
154
156
  }
155
157
  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));
158
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ViewWeather, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
157
159
  }
158
160
  // #endregion
159
161
  // #region Leave Event Builders
160
162
  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));
163
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.LeaveArticle, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
162
164
  }
163
165
  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));
166
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.LeaveAudioPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
165
167
  }
166
168
  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));
169
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.LeaveError, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
168
170
  }
169
171
  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));
172
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.LeaveFrontpage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
171
173
  }
172
174
  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));
175
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.LeaveLandingpage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
174
176
  }
175
177
  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));
178
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.LeaveListing, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
177
179
  }
178
180
  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));
181
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.LeaveLockedArticle, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
183
182
  }
184
183
  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));
184
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.LeaveLockedAudioPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
189
185
  }
190
186
  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));
187
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.LeavePage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
188
+ }
189
+ function buildLeaveSportsPageEvent(input, dependencies) {
190
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.LeaveSportsPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
192
191
  }
193
192
  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));
193
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.LeaveVideoPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
195
194
  }
196
195
  function buildLeaveWeatherEvent(input, dependencies) {
197
196
  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));
197
+ const { autoTrackerVersion, isHybrid, version, providerId, component, componentVersion, user, experiments } = dependencies;
198
+ return (0, ts_deepmerge_1.merge)(normalizePageInput(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, component, componentVersion), (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), (0, catalogVersion_1.builder)(), (0, navigationType_1.builder)(input.page?.navigationType), (0, pageviewId_1.builder)(dependencies.pageviewId), (0, pageInfo_1.builder)(dependencies.currentPage));
200
199
  }
201
200
  // #endregion
202
201
  // #region Engagement Event Builders
203
202
  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));
203
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.EngagementAudio, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
205
204
  }
206
205
  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));
206
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.EngagementForm, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
208
207
  }
209
208
  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));
209
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.EngagementOffer, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
211
210
  }
212
211
  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));
212
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.EngagementTeaser, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
214
213
  }
215
214
  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));
215
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.EngagementUIElement, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
217
216
  }
218
217
  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));
218
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.EngagementVideo, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
220
219
  }
221
220
  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));
221
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.EngagementVideoAd, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
223
222
  }
224
223
  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));
224
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.EngagementWidget, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
226
225
  }
227
226
  // #endregion
228
227
  // #region Health Event Builders
229
228
  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));
229
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.CompletedHealthAction, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
231
230
  }
232
231
  function buildEngagementHealthUIElementEvent(input, dependencies) {
233
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.EngagementHealthUIElement, (0, exports.getCommonBuildersOutput)(new Date(), dependencies));
232
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.EngagementHealthUIElement, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
234
233
  }
235
234
  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));
235
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ViewHealthPage, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
237
236
  }
238
237
  function buildImpressionHealthUIElementEvent(input, dependencies) {
239
- return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.ImpressionHealthUIElement, (0, exports.getCommonBuildersOutput)(new Date(), dependencies));
238
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ImpressionHealthUIElement, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
240
239
  }
241
240
  // #endregion
242
241
  // #region Impression Event Builders
243
242
  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));
243
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ImpressionAdSlot, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
245
244
  }
246
245
  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));
246
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ImpressionForm, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
248
247
  }
249
248
  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));
249
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ImpressionOffer, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
251
250
  }
252
251
  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));
252
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ImpressionPlayer, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
254
253
  }
255
254
  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));
255
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ImpressionTeaser, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
257
256
  }
258
257
  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));
258
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ImpressionUIElement, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
260
259
  }
261
260
  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));
261
+ return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.ImpressionWidget, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
263
262
  }
264
263
  // #endregion
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPageType = isPageType;
4
+ const tpaas_schemas_1 = require("@schibsted/tpaas-schemas");
5
+ function isPageType(pageType) {
6
+ return tpaas_schemas_1.PAGE_TYPE_VALUES.some((val) => val === pageType);
7
+ }
@@ -14,4 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.isPageType = void 0;
17
18
  __exportStar(require("./builders"), exports);
19
+ var guards_1 = require("./guards");
20
+ Object.defineProperty(exports, "isPageType", { enumerable: true, get: function () { return guards_1.isPageType; } });
@@ -0,0 +1,6 @@
1
+ import { CATALOG_VERSION } from '@schibsted/tpaas-schemas';
2
+ export function builder() {
3
+ return {
4
+ catalogVersion: CATALOG_VERSION,
5
+ };
6
+ }
@@ -105,13 +105,19 @@ function getOperatingSystem(uaParser) {
105
105
  if (osName.includes('macos')) {
106
106
  return 'Mac';
107
107
  }
108
- // some flavors of Linux might not be captured by this
108
+ if (osName.includes('android')) {
109
+ return 'Android';
110
+ }
111
+ if (osName.includes('ios')) {
112
+ return 'iOS';
113
+ }
114
+ // some flavours of Linux might not be captured by this
109
115
  // do we need a better detection, based on a list?
110
116
  // for example (Gentoo - https://docs.uaparser.dev/info/os/name.html)
111
117
  if (osName.includes('linux')) {
112
118
  return 'Linux';
113
119
  }
114
- // the TPaaS `device` template is missing Android, iOS, iPadOS and maybe others?
120
+ // the TPaaS `device` template is missing iPadOS and maybe others?
115
121
  logger.log(`Unknown operating system: ${osName}. Defaulting to 'other'.`);
116
122
  // default value
117
123
  return 'Other';
@@ -1,9 +1,11 @@
1
1
  const generateProviderSDRN = (providerId) => `sdrn:schibsted:client:${providerId}`;
2
- export function builder(providerId) {
2
+ export function builder(providerId, component, componentVersion) {
3
3
  return {
4
4
  provider: {
5
5
  providerId,
6
6
  providerSdrn: generateProviderSDRN(providerId),
7
+ ...(component !== undefined && { component }),
8
+ ...(componentVersion !== undefined && { componentVersion }),
7
9
  },
8
10
  };
9
11
  }
@@ -2,6 +2,8 @@ import { cookieConfig, getRootDomain, isBrowser, readCookie, webApi, writeCookie
2
2
  import { v4 as uuid } from 'uuid';
3
3
  const { USE_LOCALSTORAGE } = cookieConfig;
4
4
  const SESSION_STORAGE_KEY = '_pulsesession';
5
+ const SDRN_PREFIX = 'sdrn:schibsted:session:';
6
+ const generateSessionSDRN = (sessionId) => `${SDRN_PREFIX}${sessionId}`;
5
7
  // 1. there are pros and cons to outputting { session: ISession } instead of just ISession
6
8
  // this allows us to always have the session builde populate the same property (in this case '.session')
7
9
  // if in the future we want the session builder to populate other properties, we should just output ISession and move the mapping logic in index.ts, as part of buildersByEventType
@@ -28,7 +30,7 @@ const getXDomainId = () => {
28
30
  return;
29
31
  }
30
32
  const urlParams = new URLSearchParams(window?.location?.search ?? '');
31
- return urlParams.get('x_domain_id') || undefined;
33
+ return urlParams.get('x_domain_id')?.replace(SDRN_PREFIX, '');
32
34
  };
33
35
  // Return parsed json from cookie (or localStorage if enabled), or undefined.
34
36
  // exported for testing purposes.
@@ -60,7 +62,14 @@ export const readSession = () => {
60
62
  lastEventTime &&
61
63
  !Number.isNaN(startTime.getTime()) &&
62
64
  !Number.isNaN(lastEventTime.getTime())) {
63
- return { sessionId, startTime: startTime.toISOString(), lastEventTime, isFirstEvent: false };
65
+ return {
66
+ // to ensure backwards compatibility between the new TPaaS sessionId format and old sessions
67
+ // we need to remove the SDRN prefix from old sessionIds before using it
68
+ sessionId: sessionId.replace(SDRN_PREFIX, ''),
69
+ startTime: startTime.toISOString(),
70
+ lastEventTime,
71
+ isFirstEvent: false,
72
+ };
64
73
  }
65
74
  }
66
75
  return undefined;
@@ -68,8 +77,15 @@ export const readSession = () => {
68
77
  // Write session data to localStorage
69
78
  const writeSession = (session) => {
70
79
  const { sessionId, startTime, lastEventTime } = session;
80
+ // SDK v8 (supporting TPaaS events) needs to be compatible with legacy events AND older SDK versions
81
+ // as a result, we can't store just the sessionId, we need the full SDRN in there
82
+ const sessionSdrn = generateSessionSDRN(sessionId);
71
83
  try {
72
- const sessionToStore = [sessionId, new Date(startTime).getTime(), lastEventTime.getTime()];
84
+ const sessionToStore = [
85
+ sessionSdrn,
86
+ new Date(startTime).getTime(),
87
+ lastEventTime.getTime(),
88
+ ];
73
89
  const halfHourInDays = 1.0 / (24 * 2);
74
90
  writeCookie(SESSION_STORAGE_KEY, JSON.stringify(sessionToStore), getRootDomain(), halfHourInDays);
75
91
  // Delete old localStorage-based session if needed
@@ -99,9 +115,6 @@ const updateSession = (eventCreationDate, session) => {
99
115
  }
100
116
  return {
101
117
  ...session,
102
- // to ensure backwards compatibility between the new sessionId format and old sessions
103
- // we need to remove the SDRN prefix from old sessionIds
104
- sessionId: session.sessionId.replace('sdrn:schibsted:session:', ''),
105
118
  isFirstEvent: false,
106
119
  lastEventTime: eventCreationDate,
107
120
  };