@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.
- package/dist/cjs/Tracker.js +201 -209
- package/dist/cjs/Tracker.test-d.js +2 -2
- package/dist/cjs/builders/actor.js +3 -3
- package/dist/cjs/builders/consents.js +2 -2
- package/dist/cjs/builders/events-anonymous-node.js +1 -1
- package/dist/cjs/builders/events-node.js +3 -3
- package/dist/cjs/builders/experiments.js +1 -0
- package/dist/cjs/builders/tracker-node.js +2 -5
- package/dist/cjs/identity/actor.js +18 -6
- package/dist/cjs/identity/cis.js +4 -6
- package/dist/cjs/leaveTrackingTpaas/constants.js +2 -7
- package/dist/cjs/leaveTrackingTpaas/index.js +52 -40
- package/dist/cjs/tracker-proxy/consts.js +12 -6
- package/dist/cjs/tracker-proxy/proxy-provider.js +6 -0
- package/dist/cjs/version.js +5 -0
- package/dist/cjs/visibility-observer/index.js +9 -7
- package/dist/cjs/wrapper/types/event.js +5 -0
- package/dist/ejs/Tracker.js +203 -211
- package/dist/ejs/Tracker.test-d.js +2 -2
- package/dist/ejs/builders/actor.js +2 -2
- package/dist/ejs/builders/consents.js +2 -2
- package/dist/ejs/builders/events-anonymous-node.js +1 -1
- package/dist/ejs/builders/events-node.js +3 -3
- package/dist/ejs/builders/experiments.js +1 -1
- package/dist/ejs/builders/tracker-node.js +2 -2
- package/dist/ejs/identity/actor.js +19 -7
- package/dist/ejs/identity/cis.js +4 -3
- package/dist/ejs/leaveTrackingTpaas/constants.js +1 -5
- package/dist/ejs/leaveTrackingTpaas/index.js +53 -41
- package/dist/ejs/tracker-proxy/consts.js +12 -6
- package/dist/ejs/tracker-proxy/proxy-provider.js +6 -0
- package/dist/ejs/version.js +2 -0
- package/dist/ejs/visibility-observer/index.js +9 -7
- package/dist/ejs/wrapper/types/event.js +4 -1
- package/dist/types/Tracker.d.ts +92 -87
- package/dist/types/builders/actor.d.ts +3 -2
- package/dist/types/builders/consents.d.ts +2 -2
- package/dist/types/builders/experiments.d.ts +1 -0
- package/dist/types/builders/index.d.ts +1 -1
- package/dist/types/identity/actor.d.ts +2 -2
- package/dist/types/identity/cis.d.ts +1 -1
- package/dist/types/index.d.ts +1 -2
- package/dist/types/leaveTrackingTpaas/constants.d.ts +1 -5
- package/dist/types/leaveTrackingTpaas/index.d.ts +6 -6
- package/dist/types/leaveTrackingTpaas/types.d.ts +1 -9
- package/dist/types/tracker-proxy/consts.d.ts +1 -1
- package/dist/types/types.d.ts +19 -13
- package/dist/types/version.d.ts +1 -0
- package/dist/types/visibility-observer/index.d.ts +6 -1
- package/dist/types/wrapper/engagement/ui-element/types.d.ts +1 -0
- package/dist/types/wrapper/types/event.d.ts +3 -1
- package/dist/types/wrapper/view/ui-element/types.d.ts +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis-browser.d.ts +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis-browser.js +17 -3
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis-browser.js.map +1 -1
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/pulseStorage.d.ts +4 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/pulseStorage.js +15 -5
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/pulseStorage.js.map +1 -1
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/storage.d.ts +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/storage.js +5 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/storage.js.map +1 -1
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis-browser.d.ts +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis-browser.js +16 -2
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis-browser.js.map +1 -1
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/pulseStorage.d.ts +4 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/pulseStorage.js +12 -3
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/pulseStorage.js.map +1 -1
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/storage.d.ts +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/storage.js +5 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/storage.js.map +1 -1
- package/node_modules/@schibsted/pulse-cis-sync/dist/types/cis-browser.d.ts +1 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/types/storage/pulseStorage.d.ts +4 -0
- package/node_modules/@schibsted/pulse-cis-sync/dist/types/storage/storage.d.ts +1 -0
- package/node_modules/@schibsted/pulse-utils/package.json +1 -1
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/catalogVersion.js +9 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/device.js +8 -2
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/provider.js +3 -1
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/session.js +19 -6
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders.js +75 -76
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/guards.js +7 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/index.js +3 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/catalogVersion.js +6 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/device.js +8 -2
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/provider.js +3 -1
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/session.js +19 -6
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders.js +74 -71
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/guards.js +4 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/index.js +1 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/index.d.ts +1730 -1127
- package/node_modules/@schibsted/tpaas-event-builder/package.json +3 -2
- package/node_modules/@schibsted/tpaas-schemas/dist/cjs/constants.js +136 -103
- package/node_modules/@schibsted/tpaas-schemas/dist/cjs/index.js +1 -0
- package/node_modules/@schibsted/tpaas-schemas/dist/cjs/types.js +2 -0
- package/node_modules/@schibsted/tpaas-schemas/dist/ejs/constants.js +134 -101
- package/node_modules/@schibsted/tpaas-schemas/dist/ejs/index.js +1 -0
- package/node_modules/@schibsted/tpaas-schemas/dist/ejs/types.js +1 -0
- package/node_modules/@schibsted/tpaas-schemas/dist/index.d.ts +1940 -1266
- package/node_modules/@schibsted/tpaas-schemas/package.json +1 -1
- package/package.json +7 -6
- package/dist/cjs/version.json +0 -1
- 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,
|
|
79
|
-
|
|
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
|
|
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
|
-
//
|
|
86
|
-
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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
|
|
147
|
-
return (0, ts_deepmerge_1.merge)(
|
|
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
|
|
150
|
-
return (0, ts_deepmerge_1.merge)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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; } });
|
|
@@ -105,13 +105,19 @@ function getOperatingSystem(uaParser) {
|
|
|
105
105
|
if (osName.includes('macos')) {
|
|
106
106
|
return 'Mac';
|
|
107
107
|
}
|
|
108
|
-
|
|
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
|
|
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')
|
|
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 {
|
|
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 = [
|
|
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
|
};
|