@schibsted/pulse-sdk 8.0.0-rc.19 → 8.0.0-rc.20
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 +18 -0
- package/dist/cjs/builders/session-browser.js +1 -0
- package/dist/cjs/tpaas-builders/builders/session.js +3 -13
- package/dist/cjs/tpaas-builders/builders.js +10 -0
- package/dist/cjs/tpaas-schemas/constants.js +82 -66
- package/dist/cjs/tracker-proxy/consts.js +2 -0
- package/dist/cjs/utils/index.js +4 -1
- package/dist/cjs/utils/xDomainId.js +15 -0
- package/dist/cjs/version.js +1 -1
- package/dist/ejs/Tracker.js +19 -1
- package/dist/ejs/builders/session-browser.js +2 -1
- package/dist/ejs/tpaas-builders/builders/session.js +3 -13
- package/dist/ejs/tpaas-builders/builders.js +9 -1
- package/dist/ejs/tpaas-schemas/constants.js +80 -64
- package/dist/ejs/tracker-proxy/consts.js +2 -0
- package/dist/ejs/utils/index.js +1 -0
- package/dist/ejs/utils/xDomainId.js +11 -0
- package/dist/ejs/version.js +1 -1
- package/dist/types/Tracker.d.ts +13 -3
- package/dist/types/builders/session-browser.d.ts +1 -0
- package/dist/types/tpaas-builders/builders/provider.d.ts +1 -1
- package/dist/types/tpaas-builders/builders.d.ts +7 -5
- package/dist/types/tpaas-builders/types.d.ts +2 -2
- package/dist/types/tpaas-schemas/constants.d.ts +79 -65
- package/dist/types/tpaas-schemas/types/ITpaasEvent.d.ts +4 -0
- package/dist/types/tpaas-schemas/types/schemas/IEngagementAffiliate.d.ts +2 -0
- package/dist/types/tpaas-schemas/types/schemas/IEngagementAudio.d.ts +3 -11
- package/dist/types/tpaas-schemas/types/schemas/IEngagementTeaser.d.ts +4 -2
- package/dist/types/tpaas-schemas/types/schemas/IEngagementTvSearch.d.ts +142 -0
- package/dist/types/tpaas-schemas/types/schemas/IEngagementVideo.d.ts +5 -11
- package/dist/types/tpaas-schemas/types/schemas/IEngagementVideoAd.d.ts +1 -9
- package/dist/types/tpaas-schemas/types/schemas/IEngagementWidget.d.ts +1 -1
- package/dist/types/tpaas-schemas/types/schemas/IHeartbeatCommercialArticle.d.ts +96 -0
- package/dist/types/tpaas-schemas/types/schemas/IImpressionAdSlot.d.ts +1 -1
- package/dist/types/tpaas-schemas/types/schemas/IImpressionAffiliate.d.ts +2 -0
- package/dist/types/tpaas-schemas/types/schemas/IImpressionTeaser.d.ts +4 -2
- package/dist/types/tpaas-schemas/types/schemas/IImpressionWidget.d.ts +1 -1
- package/dist/types/tpaas-schemas/types/schemas/ILeaveArticle.d.ts +2 -0
- package/dist/types/tpaas-schemas/types/schemas/IViewArticle.d.ts +2 -0
- package/dist/types/tpaas-schemas/types/schemas/index.d.ts +2 -0
- package/dist/types/tpaas-schemas/types/templates/IBranded.d.ts +42 -0
- package/dist/types/tpaas-schemas/types/templates/IDevice.d.ts +1 -1
- package/dist/types/tpaas-schemas/types/templates/IPageRef.d.ts +3 -1
- package/dist/types/tpaas-schemas/types/templates/ISchool.d.ts +2 -1
- package/dist/types/tpaas-schemas/types/templates/ISports.d.ts +6 -6
- package/dist/types/tpaas-schemas/types/templates/index.d.ts +1 -0
- package/dist/types/tpaas-schemas/types.d.ts +2 -2
- package/dist/types/tracker-proxy/consts.d.ts +1 -1
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/xDomainId.d.ts +2 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +1 -1
package/dist/cjs/Tracker.js
CHANGED
|
@@ -1836,6 +1836,15 @@ class Tracker {
|
|
|
1836
1836
|
const event = (0, tpaas_builders_1.buildEngagementTvModuleEvent)(input, dependencies);
|
|
1837
1837
|
return this.sendTpaasEvent(event);
|
|
1838
1838
|
}
|
|
1839
|
+
/**
|
|
1840
|
+
* @param input
|
|
1841
|
+
* @category TPaaS Tracking
|
|
1842
|
+
*/
|
|
1843
|
+
async trackEngagementTvSearch(input) {
|
|
1844
|
+
const dependencies = await this.prepareTpaasEvent();
|
|
1845
|
+
const event = (0, tpaas_builders_1.buildEngagementTvSearchEvent)(input, dependencies);
|
|
1846
|
+
return this.sendTpaasEvent(event);
|
|
1847
|
+
}
|
|
1839
1848
|
/**
|
|
1840
1849
|
* @param input
|
|
1841
1850
|
* @category TPaaS Tracking
|
|
@@ -1872,6 +1881,15 @@ class Tracker {
|
|
|
1872
1881
|
const event = (0, tpaas_builders_1.buildEngagementWidgetEvent)(input, dependencies);
|
|
1873
1882
|
return this.sendTpaasEvent(event);
|
|
1874
1883
|
}
|
|
1884
|
+
/**
|
|
1885
|
+
* @param input
|
|
1886
|
+
* @category TPaaS Tracking
|
|
1887
|
+
*/
|
|
1888
|
+
async trackHeartbeatCommercialArticle(input) {
|
|
1889
|
+
const dependencies = await this.prepareTpaasEvent();
|
|
1890
|
+
const event = (0, tpaas_builders_1.buildHeartbeatCommercialArticleEvent)(input, dependencies);
|
|
1891
|
+
return this.sendTpaasEvent(event);
|
|
1892
|
+
}
|
|
1875
1893
|
/**
|
|
1876
1894
|
* this is the method that actually sends the event to the server
|
|
1877
1895
|
* @private
|
|
@@ -5,8 +5,7 @@ const uuid_1 = require("uuid");
|
|
|
5
5
|
const utils_1 = require("../../utils");
|
|
6
6
|
const { USE_LOCALSTORAGE } = utils_1.cookieConfig;
|
|
7
7
|
const SESSION_STORAGE_KEY = '_pulsesession';
|
|
8
|
-
const
|
|
9
|
-
const generateSessionSDRN = (sessionId) => `${SDRN_PREFIX}${sessionId}`;
|
|
8
|
+
const generateSessionSDRN = (sessionId) => `${utils_1.SESSION_SDRN_PREFIX}${sessionId}`;
|
|
10
9
|
// 1. there are pros and cons to outputting { session: ISession } instead of just ISession
|
|
11
10
|
// this allows us to always have the session builde populate the same property (in this case '.session')
|
|
12
11
|
// 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
|
|
@@ -22,20 +21,11 @@ const builder = (createdAt) => {
|
|
|
22
21
|
isFirstEvent,
|
|
23
22
|
sessionId,
|
|
24
23
|
startTime,
|
|
25
|
-
xDomainId: getXDomainId(),
|
|
24
|
+
xDomainId: (0, utils_1.getXDomainId)(),
|
|
26
25
|
},
|
|
27
26
|
};
|
|
28
27
|
};
|
|
29
28
|
exports.builder = builder;
|
|
30
|
-
// TODO: do we need to save this in the session, as part of the localStorage?
|
|
31
|
-
// or should we just read it from the URL params every time?
|
|
32
|
-
const getXDomainId = () => {
|
|
33
|
-
if (!utils_1.isBrowser) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
const urlParams = new URLSearchParams(window?.location?.search ?? '');
|
|
37
|
-
return urlParams.get('x_domain_id')?.replace(SDRN_PREFIX, '');
|
|
38
|
-
};
|
|
39
29
|
// Return parsed json from cookie (or localStorage if enabled), or undefined.
|
|
40
30
|
// exported for testing purposes.
|
|
41
31
|
const readAndParse = (storageKey) => {
|
|
@@ -70,7 +60,7 @@ const readSession = () => {
|
|
|
70
60
|
return {
|
|
71
61
|
// to ensure backwards compatibility between the new TPaaS sessionId format and old sessions
|
|
72
62
|
// we need to remove the SDRN prefix from old sessionIds before using it
|
|
73
|
-
sessionId: sessionId.replace(
|
|
63
|
+
sessionId: sessionId.replace(utils_1.SESSION_SDRN_PREFIX, ''),
|
|
74
64
|
startTime: startTime.toISOString(),
|
|
75
65
|
lastEventTime,
|
|
76
66
|
isFirstEvent: false,
|
|
@@ -42,10 +42,12 @@ exports.buildEngagementSportsUIElementEvent = buildEngagementSportsUIElementEven
|
|
|
42
42
|
exports.buildEngagementSchoolUIElementEvent = buildEngagementSchoolUIElementEvent;
|
|
43
43
|
exports.buildEngagementTeaserEvent = buildEngagementTeaserEvent;
|
|
44
44
|
exports.buildEngagementTvModuleEvent = buildEngagementTvModuleEvent;
|
|
45
|
+
exports.buildEngagementTvSearchEvent = buildEngagementTvSearchEvent;
|
|
45
46
|
exports.buildEngagementUIElementEvent = buildEngagementUIElementEvent;
|
|
46
47
|
exports.buildEngagementVideoEvent = buildEngagementVideoEvent;
|
|
47
48
|
exports.buildEngagementVideoAdEvent = buildEngagementVideoAdEvent;
|
|
48
49
|
exports.buildEngagementWidgetEvent = buildEngagementWidgetEvent;
|
|
50
|
+
exports.buildHeartbeatCommercialArticleEvent = buildHeartbeatCommercialArticleEvent;
|
|
49
51
|
exports.buildCompletedHealthActionEvent = buildCompletedHealthActionEvent;
|
|
50
52
|
exports.buildEngagementHealthUIElementEvent = buildEngagementHealthUIElementEvent;
|
|
51
53
|
exports.buildViewHealthPageEvent = buildViewHealthPageEvent;
|
|
@@ -257,6 +259,9 @@ function buildEngagementTeaserEvent(input, dependencies) {
|
|
|
257
259
|
function buildEngagementTvModuleEvent(input, dependencies) {
|
|
258
260
|
return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.EngagementTvModule, getElementEventBuildersOutput(new Date(), dependencies, input), normalizePageInput(input));
|
|
259
261
|
}
|
|
262
|
+
function buildEngagementTvSearchEvent(input, dependencies) {
|
|
263
|
+
return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.EngagementTvSearch, getElementEventBuildersOutput(new Date(), dependencies, input), normalizePageInput(input));
|
|
264
|
+
}
|
|
260
265
|
function buildEngagementUIElementEvent(input, dependencies) {
|
|
261
266
|
return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.EngagementUIElement, getElementEventBuildersOutput(new Date(), dependencies, input), normalizePageInput(input));
|
|
262
267
|
}
|
|
@@ -270,6 +275,11 @@ function buildEngagementWidgetEvent(input, dependencies) {
|
|
|
270
275
|
return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.EngagementWidget, getElementEventBuildersOutput(new Date(), dependencies, input), normalizePageInput(input));
|
|
271
276
|
}
|
|
272
277
|
// #endregion
|
|
278
|
+
// #region Heartbeat Event Builders
|
|
279
|
+
function buildHeartbeatCommercialArticleEvent(input, dependencies) {
|
|
280
|
+
return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.HeartbeatCommercialArticle, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input), (0, navigationType_1.builder)(input.page?.navigationType));
|
|
281
|
+
}
|
|
282
|
+
// #endregion
|
|
273
283
|
// #region Health Event Builders
|
|
274
284
|
function buildCompletedHealthActionEvent(input, dependencies) {
|
|
275
285
|
return (0, ts_deepmerge_1.merge)(tpaas_schemas_1.CompletedHealthAction, (0, exports.getCommonBuildersOutput)(new Date(), dependencies, input), normalizePageInput(input));
|