@schibsted/sps-sdk 5.3.0 → 5.4.0-CBT-20903.1
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/actions/dismiss.d.ts +1 -1
- package/dist/cjs/actions/dismiss.js +2 -2
- package/dist/cjs/actions/dismiss.js.map +1 -1
- package/dist/cjs/actions/iframe.d.ts +6 -0
- package/dist/cjs/actions/iframe.js +48 -0
- package/dist/cjs/actions/iframe.js.map +1 -0
- package/dist/cjs/apiClient.js +2 -2
- package/dist/cjs/apiClient.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/public-scripts-content.d.ts +1 -1
- package/dist/cjs/public-scripts-content.js +1 -1
- package/dist/cjs/public-scripts-content.js.map +1 -1
- package/dist/cjs/sps.d.ts +65 -19
- package/dist/cjs/sps.js +91 -11
- package/dist/cjs/sps.js.map +1 -1
- package/dist/cjs/utils/login-url.d.ts +40 -0
- package/dist/cjs/utils/login-url.js +29 -0
- package/dist/cjs/utils/login-url.js.map +1 -0
- package/dist/cjs/utils/placementCookies.d.ts +1 -1
- package/dist/cjs/utils/placementCookies.js +13 -2
- package/dist/cjs/utils/placementCookies.js.map +1 -1
- package/dist/esm/actions/dismiss.d.ts +1 -1
- package/dist/esm/actions/dismiss.js +2 -2
- package/dist/esm/actions/dismiss.js.map +1 -1
- package/dist/esm/actions/iframe.d.ts +6 -0
- package/dist/esm/actions/iframe.js +44 -0
- package/dist/esm/actions/iframe.js.map +1 -0
- package/dist/esm/apiClient.js +2 -2
- package/dist/esm/apiClient.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/public-scripts-content.d.ts +1 -1
- package/dist/esm/public-scripts-content.js +1 -1
- package/dist/esm/public-scripts-content.js.map +1 -1
- package/dist/esm/sps.d.ts +65 -19
- package/dist/esm/sps.js +89 -10
- package/dist/esm/sps.js.map +1 -1
- package/dist/esm/utils/login-url.d.ts +40 -0
- package/dist/esm/utils/login-url.js +25 -0
- package/dist/esm/utils/login-url.js.map +1 -0
- package/dist/esm/utils/placementCookies.d.ts +1 -1
- package/dist/esm/utils/placementCookies.js +13 -2
- package/dist/esm/utils/placementCookies.js.map +1 -1
- package/dist/public-scripts/sps-pulse-helpers.min.js +1 -1
- package/package.json +2 -1
|
@@ -27,5 +27,5 @@ export interface AddDismissOptions {
|
|
|
27
27
|
*/
|
|
28
28
|
elementId?: string;
|
|
29
29
|
}
|
|
30
|
-
export declare const addDismiss: (placementType: PlacementType, iframeId: string, options: AddDismissOptions
|
|
30
|
+
export declare const addDismiss: (placementType: PlacementType, iframeId: string, options: AddDismissOptions) => void;
|
|
31
31
|
export declare const getDismissScript: (placementType: PlacementTypeWithStringContent) => string;
|
|
@@ -33,7 +33,7 @@ const isDismissed = (placementType, options) => {
|
|
|
33
33
|
return cookieName in (0, placementCookies_1.parseCookies)(document.cookie);
|
|
34
34
|
};
|
|
35
35
|
exports.isDismissed = isDismissed;
|
|
36
|
-
const addDismiss = (placementType, iframeId, options
|
|
36
|
+
const addDismiss = (placementType, iframeId, options) => {
|
|
37
37
|
const key = `${placementType}:${iframeId}`;
|
|
38
38
|
const alreadyRegistered = dismissListenerKeys.has(key);
|
|
39
39
|
dismissListenerKeys.set(key, options);
|
|
@@ -47,7 +47,7 @@ const addDismiss = (placementType, iframeId, options, domain) => {
|
|
|
47
47
|
if (event.data.type === `${DISMISS_KEY}:${placementType}`) {
|
|
48
48
|
console.log("[SPS sdk] - Dismiss issued by user", event);
|
|
49
49
|
const currentOptions = dismissListenerKeys.get(key);
|
|
50
|
-
(0, placementCookies_1.setDismissCookie)(placementType, currentOptions.hideDuration, currentOptions.elementId
|
|
50
|
+
(0, placementCookies_1.setDismissCookie)(placementType, currentOptions.hideDuration, currentOptions.elementId);
|
|
51
51
|
document.getElementById(iframeId)?.remove();
|
|
52
52
|
}
|
|
53
53
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dismiss.js","sourceRoot":"","sources":["../../../src/actions/dismiss.ts"],"names":[],"mappings":";;;AACA,gEAAiG;AAEjG,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAExC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAA6B,CAAC;AAEjE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAyB,CAAC;AAE5D,MAAM,YAAY,GAAG,CAAC,MAAc,EAAU,EAAE;IAC9C,MAAM,KAAK,GAAG,4BAA4B,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5D,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrE,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAAC,aAA4B,EAAU,EAAE;IACzE,IAAI,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/C,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,EAAE,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QACtB,kBAAkB,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAPW,QAAA,kBAAkB,sBAO7B;AAcK,MAAM,WAAW,GAAG,CACzB,aAA4B,EAC5B,OAA4B,EACnB,EAAE;IACX,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,uCAAoB,EAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3E,OAAO,UAAU,IAAI,IAAA,+BAAY,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC,CAAC;AAVW,QAAA,WAAW,eAUtB;AAkBK,MAAM,UAAU,GAAG,CACxB,aAA4B,EAC5B,QAAgB,EAChB,OAA0B,
|
|
1
|
+
{"version":3,"file":"dismiss.js","sourceRoot":"","sources":["../../../src/actions/dismiss.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renders poster content in an iframe that replaces the children of `element`.
|
|
3
|
+
* The iframe grows to the height of its content, and links navigate the top window.
|
|
4
|
+
* Resolves once the iframe has loaded and its first height is applied.
|
|
5
|
+
*/
|
|
6
|
+
export declare const renderPosterInIframe: (element: HTMLElement, iframeId: string, content: string) => Promise<void>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderPosterInIframe = void 0;
|
|
4
|
+
const resetDocumentSpacing = (doc) => {
|
|
5
|
+
[doc.documentElement, doc.body].forEach((el) => {
|
|
6
|
+
el.style.margin = "0";
|
|
7
|
+
el.style.padding = "0";
|
|
8
|
+
el.style.overflow = "hidden";
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
const navigateTopOnLinkClick = (doc) => {
|
|
12
|
+
doc.addEventListener("click", (event) => {
|
|
13
|
+
const anchor = event.target?.closest("a");
|
|
14
|
+
if (!anchor?.href) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
event.preventDefault();
|
|
18
|
+
// Delay navigation so click tracking inside the poster has time to fire
|
|
19
|
+
setTimeout(() => window.top?.location.assign(anchor.href), 100);
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Renders poster content in an iframe that replaces the children of `element`.
|
|
24
|
+
* The iframe grows to the height of its content, and links navigate the top window.
|
|
25
|
+
* Resolves once the iframe has loaded and its first height is applied.
|
|
26
|
+
*/
|
|
27
|
+
const renderPosterInIframe = (element, iframeId, content) => new Promise((resolve) => {
|
|
28
|
+
const iframe = document.createElement("iframe");
|
|
29
|
+
iframe.id = iframeId;
|
|
30
|
+
iframe.style.border = "0";
|
|
31
|
+
iframe.style.display = "block";
|
|
32
|
+
iframe.style.width = "100%";
|
|
33
|
+
iframe.addEventListener("load", () => {
|
|
34
|
+
const doc = iframe.contentDocument;
|
|
35
|
+
resetDocumentSpacing(doc);
|
|
36
|
+
navigateTopOnLinkClick(doc);
|
|
37
|
+
const updateHeight = () => {
|
|
38
|
+
iframe.style.height = `${doc.body.scrollHeight}px`;
|
|
39
|
+
};
|
|
40
|
+
updateHeight();
|
|
41
|
+
new ResizeObserver(updateHeight).observe(doc.body);
|
|
42
|
+
resolve();
|
|
43
|
+
}, { once: true });
|
|
44
|
+
iframe.srcdoc = content;
|
|
45
|
+
element.replaceChildren(iframe);
|
|
46
|
+
});
|
|
47
|
+
exports.renderPosterInIframe = renderPosterInIframe;
|
|
48
|
+
//# sourceMappingURL=iframe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iframe.js","sourceRoot":"","sources":["../../../src/actions/iframe.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG,CAAC,GAAa,EAAQ,EAAE;IACnD,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QAC7C,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;QACtB,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;QACvB,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,GAAa,EAAQ,EAAE;IACrD,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACtC,MAAM,MAAM,GAAI,KAAK,CAAC,MAAyB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,wEAAwE;QACxE,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;GAIG;AACI,MAAM,oBAAoB,GAAG,CAClC,OAAoB,EACpB,QAAgB,EAChB,OAAe,EACA,EAAE,CACjB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;IACtB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,GAAG,QAAQ,CAAC;IACrB,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IAC1B,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;IAC5B,MAAM,CAAC,gBAAgB,CACrB,MAAM,EACN,GAAG,EAAE;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,eAAgB,CAAC;QACpC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC1B,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAE5B,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC;QACrD,CAAC,CAAC;QACF,YAAY,EAAE,CAAC;QACf,IAAI,cAAc,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,OAAO,EAAE,CAAC;IACZ,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;IACF,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;IACxB,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AA7BQ,QAAA,oBAAoB,wBA6B5B"}
|
package/dist/cjs/apiClient.js
CHANGED
|
@@ -115,7 +115,7 @@ exports.fetchDecision = fetchDecision;
|
|
|
115
115
|
const fetchPlacementsByContext = async (publication, context, endpoint, placementTypes, params, cookies, timeoutMs) => {
|
|
116
116
|
try {
|
|
117
117
|
const url = new URL(`${endpoint}/${publication}/placements/${context}`);
|
|
118
|
-
placementTypes
|
|
118
|
+
placementTypes.forEach((placementType) => {
|
|
119
119
|
url.searchParams.append("placementTypes[]", placementType);
|
|
120
120
|
});
|
|
121
121
|
if (params) {
|
|
@@ -155,7 +155,7 @@ exports.fetchPlacementsByContext = fetchPlacementsByContext;
|
|
|
155
155
|
const fetchDecisionsByContext = async (publication, context, endpoint, placementTypes, params, cookies) => {
|
|
156
156
|
try {
|
|
157
157
|
const url = new URL(`${endpoint}/${publication}/placements/${context}/decision`);
|
|
158
|
-
placementTypes
|
|
158
|
+
placementTypes.forEach((placementType) => {
|
|
159
159
|
url.searchParams.append("placementTypes[]", placementType);
|
|
160
160
|
});
|
|
161
161
|
if (params) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../src/apiClient.ts"],"names":[],"mappings":";;;AAAA,qDAK4B;AAC5B,qCAA8C;AA4E9C;;;;;;;;;;;;GAYG;AACI,MAAM,WAAW,GAAG,KAAK,EAC9B,GAAW,EACX,MAAS,EACT,cAAqC,EACrC,6BAA6B,GAAG,KAAK,EACrC,SAAkB,EACkC,EAAE;IACtD,IAAI,CAAC;QACH,MAAM,kBAAkB,GAAG,IAAA,oCAAqB,GAAE,CAAC;QACnD,MAAM,WAAW,GAAG,IAAA,yCAA0B,EAAC;YAC7C,GAAG,kBAAkB;YACrB,GAAG,MAAM;SACV,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpF,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,IAAA,qBAAe,EAAC,GAAG,EAAE,WAAW,CAAC,EAAE;YACpE,WAAW,EAAE,SAAS;YACtB,MAAM;SACP,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;YACvB,IAAI,cAAc,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAClC,IAAI,cAAc,EAAE,CAAC;oBACnB,OAAO;wBACL,cAAc,EAAE,cAAc;wBAC9B,UAAU,EAAE,gEAAgE;qBAC7E,CAAC;gBACJ,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,IAAI,KAAK,CACb,mCAAmC,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,UAAU,EAAE,CACxF,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAgD,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QAEhG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,cAAc,IAAI,6BAA6B,EAAE,CAAC;gBACpD,OAAO;oBACL,cAAc,EAAE,cAAc;oBAC9B,UAAU,EAAE,8DAA8D;iBAC3E,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,cAAc,EAAE,cAAsC;SACvD,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAAsB,EAAE,IAAI,KAAK,cAAc,EAAE,CAAC;YACrD,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;YAC5C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO;gBACL,cAAc,EAAE,cAAc;gBAC9B,UAAU,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aACnE,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAlEW,QAAA,WAAW,eAkEtB;AAEF;;;;;;;;;;;GAWG;AACI,MAAM,aAAa,GAAG,KAAK,EAChC,GAAW,EACX,MAAS,EACT,YAAqB,EACrB,MAAe,EACqB,EAAE;IACtC,MAAM,WAAW,GAAG,IAAA,yCAA0B,EAAC;QAC7C,GAAG,MAAM;KACV,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,IAAA,qBAAe,EAAC,GAAG,EAAE,WAAW,CAAC,EAAE;QACtE,OAAO,EAAE;YACP,YAAY,EAAE,YAAY,IAAI,EAAE;YAChC,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;SAClC;QACD,WAAW,EAAE,SAAS;KACvB,CAAC,CAAC;IAEH,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,qCAAqC,gBAAgB,CAAC,MAAM,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAC9F,CAAC;IACJ,CAAC;IAED,OAAO,gBAAgB,CAAC,IAAI,EAAE,CAAC;AACjC,CAAC,CAAC;AAxBW,QAAA,aAAa,iBAwBxB;AAoBF;;;;;;;;;;GAUG;AACI,MAAM,wBAAwB,GAAG,KAAK,EAC3C,WAAmB,EACnB,OAAgC,EAChC,QAAgB,EAChB,cAA+B,EAC/B,MAAkB,EAClB,OAAgB,EAChB,SAAkB,EACoD,EAAE;IACxE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,QAAQ,IAAI,WAAW,eAAe,OAAO,EAAE,CAAC,CAAC;QACxE,cAAc,
|
|
1
|
+
{"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../src/apiClient.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -14,5 +14,6 @@ export * from "./utils/source.js";
|
|
|
14
14
|
export * from "./utils/url.js";
|
|
15
15
|
export * from "./utils/utm.js";
|
|
16
16
|
export * from "./utils/xDomainId.js";
|
|
17
|
+
export type { AccountLike, AccountLoginUrlOptions, GetAccountSdk } from "./utils/login-url.js";
|
|
17
18
|
export * from "./utils/pulseProxy.js";
|
|
18
19
|
export default SPS;
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+BAA4B;AAE5B,wCAAsB;AACtB,8CAA4B;AAE5B,qDAAmC;AACnC,iDAA+B;AAC/B,oDAAkC;AAClC,kDAAgC;AAEhC,oEAAkD;AAClD,sEAAoD;AACpD,yEAAuD;AACvD,uEAAqD;AAErD,gDAA8B;AAC9B,iDAA+B;AAC/B,8CAA4B;AAC5B,8CAA4B;AAC5B,oDAAkC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+BAA4B;AAE5B,wCAAsB;AACtB,8CAA4B;AAE5B,qDAAmC;AACnC,iDAA+B;AAC/B,oDAAkC;AAClC,kDAAgC;AAEhC,oEAAkD;AAClD,sEAAoD;AACpD,yEAAuD;AACvD,uEAAqD;AAErD,gDAA8B;AAC9B,iDAA+B;AAC/B,8CAA4B;AAC5B,8CAA4B;AAC5B,oDAAkC;AAElC,qDAAmC;AAEnC,kBAAe,SAAG,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const PUBLIC_SCRIPTS_CONTENT: {
|
|
2
|
-
readonly "sps-pulse-helpers": "\"use strict\";var SpsPulseHelpersBundle=(()=>{var F=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var oe=Object.getOwnPropertyNames;var ne=Object.prototype.hasOwnProperty;var se=(e,t,r,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of oe(t))!ne.call(e,o)&&o!==r&&F(e,o,{get:()=>t[o],enumerable:!(n=re(t,o))||n.enumerable});return e};var ae=e=>se(F({},\"__esModule\",{value:!0}),e);var de={};var y=\"pulse-tracker-proxy\",ie=`${y}:request`,fe=`${y}:ack`,D=`${y}:invoke`,G=`${y}:return`,L=`${y}:return-error`,q=[\"trackAnonymousViewUIElement\",\"trackEngagementAd\",\"trackEngagementAffiliate\",\"trackEngagementAudio\",\"trackEngagementForm\",\"trackEngagementHealthUIElement\",\"trackEngagementOffer\",\"trackEngagementSchoolUIElement\",\"trackEngagementSportsUIElement\",\"trackEngagementTeaser\",\"trackEngagementTvModule\",\"trackEngagementUIElement\",\"trackEngagementVideo\",\"trackEngagementVideoAd\",\"trackEngagementWidget\",\"trackCompletedHealthAction\",\"trackImpressionAd\",\"trackImpressionAdSlot\",\"trackImpressionAffiliate\",\"trackImpressionForm\",\"trackImpressionHealthUIElement\",\"trackImpressionOffer\",\"trackImpressionPlayer\",\"trackImpressionSchoolUIElement\",\"trackImpressionSportsUIElement\",\"trackImpressionTeaser\",\"trackImpressionUIElement\",\"trackImpressionWidget\",\"trackLoadAd\",\"trackRequestAd\",\"trackLeaveArticle\",\"trackLeaveAudioPage\",\"trackLeaveError\",\"trackLeaveFrontpage\",\"trackLeaveLandingpage\",\"trackLeaveListing\",\"trackLeaveLockedArticle\",\"trackLeaveLockedAudioPage\",\"trackLeaveLockedPage\",\"trackLeaveLockedVideoPage\",\"trackLeavePage\",\"trackLeaveSchoolPage\",\"trackLeaveSportsPage\",\"trackLeaveVideoPage\",\"trackLeaveWeather\",\"trackViewArticle\",\"trackViewAudioPage\",\"trackViewError\",\"trackViewFrontpage\",\"trackViewHealthPage\",\"trackViewLandingpage\",\"trackViewListing\",\"trackViewLockedArticle\",\"trackViewLockedAudioPage\",\"trackViewLockedPage\",\"trackViewLockedVideoPage\",\"trackViewPage\",\"trackViewSchoolPage\",\"trackViewSportsPage\",\"trackViewTitle\",\"trackViewVideoPage\",\"trackViewWeather\",\"trackLegacyViewArticle\",\"trackLegacyViewLoginPoster\",\"trackLegacyViewSalesPoster\",\"trackLegacyViewListing\",\"trackLegacyViewFrontpage\",\"trackLegacyViewPage\",\"trackLegacyViewUIElement\",\"trackLegacyClickUIElement\"];function V(e){return e!==null&&typeof e==\"object\"&&\"type\"in e&&typeof e.type==\"string\"&&e.type.startsWith(y)}function O(e,{target:t,timeout:r,debug:n=()=>{}}){return new Promise((o,c)=>{let a=new MessageChannel,p=r?setTimeout(()=>{a.port1.close(),c(new Error(`Message of type ${e.type} timed out`))},r):void 0,i=s=>{if(n(\"[Pulse Tracker Proxy] Received the response on the MessageChannel\",s),!V(s.data)){n(\"[Pulse Tracker Proxy] Response was not a valid Proxy Message\",s.data);return}s.data.type===L&&(n(\"[Pulse Tracker Proxy] Received an return error response\",s.data.error),clearTimeout(p),a.port1.close(),c(new Error(s.data.error))),n(\"[Pulse Tracker Proxy] Received a valid response\",s.data),clearTimeout(p),a.port1.close(),o(s.data)};a.port1.onmessage=i,n(\"[Pulse Tracker Proxy] Sending message to target window\",e),t.postMessage(e,\"*\",[a.port2])})}var Y=\"2.0.0-rc.19\";function j(e){let t=\"tracker\"in e&&typeof e.tracker==\"object\"?e.tracker:{};return{...e,tracker:{...t,proxyVersion:Y}}}function R(e,t,r){let n=\"provider\"in e&&typeof e.provider==\"object\"?e.provider:{};return{...e,provider:{...n,component:t,componentVersion:r}}}var v=class{constructor(t,r,n,o){this.target=t,this.component=r,this.componentVersion=n,this.debug=o}track(...t){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",t);let[r,n,...o]=t,c=j(n),a=R(c,this.component,this.componentVersion),p=[r,a,...o];return this.invoke({method:\"track\",args:p})}async invoke(t){this.debug(\"[Pulse Tracker Proxy] Invoking remote function\",t);let r=await O({type:D,payload:t},{target:this.target});if(!V(r))throw this.debug(\"[Pulse Tracker Proxy] Invalid response from proxy\",r),new Error(\"Invalid response from proxy\");if(r.type===L)throw this.debug(\"[Pulse Tracker Proxy] Error response from proxy\",r.error),new Error(r.error);if(r.type===G)return this.debug(\"[Pulse Tracker Proxy] Successful response from proxy\",r.payload),r.payload;throw this.debug(\"[Pulse Tracker Proxy] Unhandled response from proxy\",r),new Error(\"Unexpected response from proxy\")}};var ce=Object.fromEntries(q.map(e=>[e,function(...t){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",t);let[r,...n]=t,o=j(r),a=[R(o,this.component,this.componentVersion),...n];return this.invoke({method:e,args:a})}]));function pe(){return class extends v{constructor(e,t,r,n){super(e,t,r,n),n(\"[Pulse TPaaS Proxy] Initialized\"),Object.assign(this,ce)}}}var le=pe();var me=e=>e===\"payment.schibsted.com\"||e.startsWith(\"bestilling.\")||e===\"pay.pre.schibsted.digital\"||e.startsWith(\"test-bestilling.\"),ue=e=>e===\"login.schibsted.com\"||e===\"identity-pre.schibsted.com\",K=e=>{var t;try{let n=new URL((t=e.getAttribute(\"href\"))!=null?t:\"\").hostname;if(ue(n))return\"Login\";if(me(n))return\"Purchase\"}catch{return}};var B=e=>{var t;try{let r=new URL((t=e.getAttribute(\"href\"))!=null?t:\"\"),o=new URLSearchParams(r.search).get(\"code\");return o?o.split(\",\"):[]}catch{return[]}};var A=e=>{var r;let t=(r=e==null?void 0:e.toLowerCase())!=null?r:\"\";if(t.includes(\"meter\"))return\"Meter\";if(t.includes(\"paid\")||t.includes(\"subscription\"))return\"Paid\";if(t.includes(\"login\"))return\"Login\"};function z(e,t,r,n){let{campaign:o,articleType:c,abTestGroup:a,placementType:p,experiment:i,legacy:s,contentName:m,pulseEvents:l}=t,g=400,d=\"\",h=0;function k(P){var b,x,E,U,$;try{let T=P.target,f=(b=T==null?void 0:T.closest)==null?void 0:b.call(T,\"a\");if(!f)return;let S=f.textContent||f.getAttribute(\"href\")||`${p} button`,N=`a|${S}`,W=Date.now();if(N===d&&W-h<g)return;d=N,h=W;let C=K(f),H=C===\"Purchase\"?B(f):[];l.tpaas&&e.trackEngagementOffer({placement:{containerName:\"page\",offerPlacement:p},object:{objectId:n,objectSdrn:r,campaign:o,name:m,offerCodes:H,offerType:A(c)},...i?{experiments:[{experimentSdrn:`${r}:experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a||\"\"}]}:{},engagement:{action:\"Click\",elementName:S},page:{},target:{info:{url:(x=f.getAttribute(\"href\"))!=null?x:\"\"}}}).catch(w),l.legacy&&e.trackLegacyClickUIElement({object:{id:u(S),elementType:\"Button\",name:S,containerName:\"Page\",custom:{...s==null?void 0:s.offerData,offerCodes:H}},...s?{origin:s.pulseOrigin}:{},target:{url:($=(U=(E=f.getAttribute(\"href\"))==null?void 0:E.split(\"?\"))==null?void 0:U[0])!=null?$:\"\"},...C?{intent:C}:{},...i?{experiments:[{id:`experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a}]}:{}}).catch(w)}catch{}}return document.addEventListener(\"click\",k,!0),()=>document.removeEventListener(\"click\",k,!0)}function X(e,t,r,n,o){let{campaign:c,articleType:a,abTestGroup:p,placementType:i,experiment:s,offerCodes:m,legacy:l,contentName:g,pulseEvents:d}=t;d.tpaas&&e.trackImpressionOffer({placement:{foldPosition:o,containerName:\"page\",offerPlacement:i},object:{campaign:c,name:g,objectId:n,objectSdrn:r,offerCodes:m!=null?m:[],offerType:A(a)},...s?{experiments:[{experimentSdrn:`${r}:experiment:${u(s)}`,name:s,platform:\"SPS\",variant:p||\"\"}]}:{},page:{},target:{info:{}}}).catch(w),d.legacy&&e.trackLegacyViewUIElement({object:{id:u(g),elementType:i,name:g,placement:{},custom:{...l==null?void 0:l.offerData,...l==null?void 0:l.custom,offerCodes:m}},...s?{experiments:[{id:`${r}:experiment:${u(s)}`,name:s,platform:\"SPS\",variant:p}]}:{},...l?{origin:l.pulseOrigin}:{}}).catch(w)}async function Q(e,t,r){let{placementType:n,legacy:o,pulseEvents:c}=t,a=window.location.pathname,i=`landingpage-${n===\"campaignpage\"?\"CAMPAIGN\":\"STATIC\"}-${_(a)}`.toLowerCase();c.legacy&&await e.trackLegacyViewPage({object:{pageId:i,name:document.title,\"spt:custom\":{...o==null?void 0:o.offerData,...o==null?void 0:o.custom}},origin:o==null?void 0:o.pulseOrigin}),c.tpaas&&await e.trackViewLandingpage({object:{objectId:i,objectSdrn:r,title:document.title},page:{}},{leaveTracking:{objectElement:\"body\",pageElement:\"body\",objectResizable:!1}})}var M=e=>e===\"campaignpage\"||e===\"staticpage\";var I={name:\"@schibsted/sps-sdk\",version:\"5.2.0\",description:\"SPS SDK for node.js\",packageManager:\"pnpm@10.27.0\",engines:{node:\">=18.0.0\"},repository:{type:\"git\",url:\"https://schibsted.ghe.com/urs-ma/sps-sdk.git\"},publishConfig:{access:\"public\",registry:\"https://registry.npmjs.org/\"},author:\"Schibsted Subscription Product & Tech\",license:\"UNLICENSED\",type:\"module\",main:\"dist/cjs/index.js\",module:\"dist/esm/index.js\",exports:{\".\":{types:\"./dist/esm/index.d.ts\",import:\"./dist/esm/index.js\",require:\"./dist/cjs/index.js\"}},files:[\"dist\"],scripts:{preinstall:\"npx only-allow pnpm\",build:\"npm run build:clean && npm run build:public-scripts && npm run build:esm && npm run build:cjs\",\"build:clean\":\"rm -rf dist/cjs dist/esm\",\"build:esm\":\"tsc -p tsconfig.esm.json && tsc-alias -p tsconfig.esm.json\",\"build:cjs\":`tsc -p tsconfig.cjs.json && tsc-alias -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json`,\"build:sps-pulse-helpers\":\"tsup --config packages/sps-pulse-helpers/tsup.config.ts\",\"build:pulse-tracker-proxy\":\"tsup --config packages/pulse-tracker-proxy/tsup.config.ts\",\"build:public-scripts\":\"npm run build:sps-pulse-helpers && npm run build:pulse-tracker-proxy && node scripts/generate-public-scripts-content.js\",test:\"node --experimental-vm-modules node_modules/jest/bin/jest.js\",lint:\"eslint .\",\"release:alpha\":\"npm publish --tag alpha\",\"release:beta\":\"npm publish --tag beta\"},devDependencies:{\"@jest/globals\":\"^30.0.0\",\"@schibsted/pulse-tracker-proxy\":\"^2.0.0-rc.19\",\"@semantic-release/changelog\":\"^6.0.3\",\"@semantic-release/git\":\"^10.0.1\",\"@snoam/mono-ma-shared-configs\":\"^1.1.0\",\"@types/jest\":\"30.0.0\",\"@types/node\":\"^24.0.3\",\"conventional-changelog-conventionalcommits\":\"^9.1.0\",eslint:\"^9.29.0\",jest:\"^30.0.0\",\"jest-environment-jsdom\":\"^30.0.2\",\"jest-fixed-jsdom\":\"^0.0.11\",msw:\"^2.13.0\",prettier:\"3.9.4\",\"semantic-release\":\"^25.0.8\",\"ts-jest\":\"^29.4.0\",\"ts-node\":\"^10.9.2\",\"tsc-alias\":\"^1.8.16\",tsup:\"^8.5.1\",typescript:\"^5.9.3\"},peerDependencies:{\"@schibsted/pulse-sdk\":\">=8.0.0-rc.19\"},dependencies:{\"@schibsted/consent-url-utils\":\"^2.0.0\"}};var J=!1,Z=!1,ee=\"script[data-sps-pulse-config='true']\",w=e=>console.error(`[SPS-Pulse-Helpers] Failed to send Pulse event. Events are dropped if the host page runs an older @schibsted/pulse-sdk. SPS SDK ${I.version} requires @schibsted/pulse-sdk ${I.peerDependencies[\"@schibsted/pulse-sdk\"]}.`,e),u=e=>e.toLowerCase().replace(/ /g,\"-\").replace(/[^-a-z:0-9]/g,\"\"),_=e=>{var t,r;return(e==null?void 0:e.replace((r=(t=window.__landingpages)==null?void 0:t.rootUrl)!=null?r:\"\",\"\").replace(/^\\/|\\/$/g,\"\"))||\"\"};async function te(){if(console.log(\"[SPS-Pulse-Helpers] boot initiated\"),J)return;J=!0;let e=null;try{let t=document.querySelector(ee);if(!t){console.warn(`[SPS-Pulse-Helpers] Config script tag not found with selector ${ee}`);return}e=JSON.parse(t.textContent)}catch(t){console.warn(\"[SPS-Pulse-Helpers] Failed to parse config from script tag\",t);return}try{let t=window.getPulseTrackerProxy;if(!t||typeof t!=\"function\"){console.warn(\"[SPS-Pulse-Helpers] PulseTrackerProxy not available\");return}let{placementType:r,publication:n,contentName:o}=e,c=M(r)?_(window.location.pathname):u(o),a=`sdrn:${n}:element:offer:${r}:${c}`,p=crypto==null?void 0:crypto.randomUUID(),i=await t({component:\"SPS-SDK\",componentVersion:I.version});z(i,e,a,p);let s=k=>{Z||(Z=!0,X(i,e,a,p,k))};if(M(r)){await Q(i,e,a),s(\"Above\");return}let m=window.frameElement,l=window.parent.IntersectionObserver;if(!m||!l){console.warn(\"[SPS-Pulse-Helpers] No iframe or IntersectionObserver available. Pulse View event will not be fired.\");return}let g=\"Unknown\",d=!0,h=new l(k=>{var E;let P=k[0],b=(E=P==null?void 0:P.intersectionRatio)!=null?E:0,x=(P==null?void 0:P.isIntersecting)&&b>=1/3;d&&(d=!1,g=x?\"Above\":\"Below\"),x&&(h.disconnect(),s(g))},{root:null,threshold:[0,1/3]});h.observe(m)}catch(t){console.warn(\"[SPS-Pulse-Helpers] boot failed\",t)}}te();return ae(de);})();\n";
|
|
2
|
+
readonly "sps-pulse-helpers": "\"use strict\";var SpsPulseHelpersBundle=(()=>{var F=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var oe=Object.getOwnPropertyNames;var ne=Object.prototype.hasOwnProperty;var se=(e,t,r,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of oe(t))!ne.call(e,o)&&o!==r&&F(e,o,{get:()=>t[o],enumerable:!(n=re(t,o))||n.enumerable});return e};var ae=e=>se(F({},\"__esModule\",{value:!0}),e);var de={};var y=\"pulse-tracker-proxy\",ie=`${y}:request`,fe=`${y}:ack`,D=`${y}:invoke`,G=`${y}:return`,L=`${y}:return-error`,q=[\"trackAnonymousViewUIElement\",\"trackEngagementAd\",\"trackEngagementAffiliate\",\"trackEngagementAudio\",\"trackEngagementForm\",\"trackEngagementHealthUIElement\",\"trackEngagementOffer\",\"trackEngagementSchoolUIElement\",\"trackEngagementSportsUIElement\",\"trackEngagementTeaser\",\"trackEngagementTvModule\",\"trackEngagementUIElement\",\"trackEngagementVideo\",\"trackEngagementVideoAd\",\"trackEngagementWidget\",\"trackCompletedHealthAction\",\"trackImpressionAd\",\"trackImpressionAdSlot\",\"trackImpressionAffiliate\",\"trackImpressionForm\",\"trackImpressionHealthUIElement\",\"trackImpressionOffer\",\"trackImpressionPlayer\",\"trackImpressionSchoolUIElement\",\"trackImpressionSportsUIElement\",\"trackImpressionTeaser\",\"trackImpressionUIElement\",\"trackImpressionWidget\",\"trackLoadAd\",\"trackRequestAd\",\"trackLeaveArticle\",\"trackLeaveAudioPage\",\"trackLeaveError\",\"trackLeaveFrontpage\",\"trackLeaveLandingpage\",\"trackLeaveListing\",\"trackLeaveLockedArticle\",\"trackLeaveLockedAudioPage\",\"trackLeaveLockedPage\",\"trackLeaveLockedVideoPage\",\"trackLeavePage\",\"trackLeaveSchoolPage\",\"trackLeaveSportsPage\",\"trackLeaveVideoPage\",\"trackLeaveWeather\",\"trackViewArticle\",\"trackViewAudioPage\",\"trackViewError\",\"trackViewFrontpage\",\"trackViewHealthPage\",\"trackViewLandingpage\",\"trackViewListing\",\"trackViewLockedArticle\",\"trackViewLockedAudioPage\",\"trackViewLockedPage\",\"trackViewLockedVideoPage\",\"trackViewPage\",\"trackViewSchoolPage\",\"trackViewSportsPage\",\"trackViewTitle\",\"trackViewVideoPage\",\"trackViewWeather\",\"trackLegacyViewArticle\",\"trackLegacyViewLoginPoster\",\"trackLegacyViewSalesPoster\",\"trackLegacyViewListing\",\"trackLegacyViewFrontpage\",\"trackLegacyViewPage\",\"trackLegacyViewUIElement\",\"trackLegacyClickUIElement\"];function V(e){return e!==null&&typeof e==\"object\"&&\"type\"in e&&typeof e.type==\"string\"&&e.type.startsWith(y)}function O(e,{target:t,timeout:r,debug:n=()=>{}}){return new Promise((o,c)=>{let a=new MessageChannel,p=r?setTimeout(()=>{a.port1.close(),c(new Error(`Message of type ${e.type} timed out`))},r):void 0,i=s=>{if(n(\"[Pulse Tracker Proxy] Received the response on the MessageChannel\",s),!V(s.data)){n(\"[Pulse Tracker Proxy] Response was not a valid Proxy Message\",s.data);return}s.data.type===L&&(n(\"[Pulse Tracker Proxy] Received an return error response\",s.data.error),clearTimeout(p),a.port1.close(),c(new Error(s.data.error))),n(\"[Pulse Tracker Proxy] Received a valid response\",s.data),clearTimeout(p),a.port1.close(),o(s.data)};a.port1.onmessage=i,n(\"[Pulse Tracker Proxy] Sending message to target window\",e),t.postMessage(e,\"*\",[a.port2])})}var Y=\"2.0.0-rc.19\";function j(e){let t=\"tracker\"in e&&typeof e.tracker==\"object\"?e.tracker:{};return{...e,tracker:{...t,proxyVersion:Y}}}function R(e,t,r){let n=\"provider\"in e&&typeof e.provider==\"object\"?e.provider:{};return{...e,provider:{...n,component:t,componentVersion:r}}}var v=class{constructor(t,r,n,o){this.target=t,this.component=r,this.componentVersion=n,this.debug=o}track(...t){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",t);let[r,n,...o]=t,c=j(n),a=R(c,this.component,this.componentVersion),p=[r,a,...o];return this.invoke({method:\"track\",args:p})}async invoke(t){this.debug(\"[Pulse Tracker Proxy] Invoking remote function\",t);let r=await O({type:D,payload:t},{target:this.target});if(!V(r))throw this.debug(\"[Pulse Tracker Proxy] Invalid response from proxy\",r),new Error(\"Invalid response from proxy\");if(r.type===L)throw this.debug(\"[Pulse Tracker Proxy] Error response from proxy\",r.error),new Error(r.error);if(r.type===G)return this.debug(\"[Pulse Tracker Proxy] Successful response from proxy\",r.payload),r.payload;throw this.debug(\"[Pulse Tracker Proxy] Unhandled response from proxy\",r),new Error(\"Unexpected response from proxy\")}};var ce=Object.fromEntries(q.map(e=>[e,function(...t){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",t);let[r,...n]=t,o=j(r),a=[R(o,this.component,this.componentVersion),...n];return this.invoke({method:e,args:a})}]));function pe(){return class extends v{constructor(e,t,r,n){super(e,t,r,n),n(\"[Pulse TPaaS Proxy] Initialized\"),Object.assign(this,ce)}}}var le=pe();var me=e=>e===\"payment.schibsted.com\"||e.startsWith(\"bestilling.\")||e===\"pay.pre.schibsted.digital\"||e.startsWith(\"test-bestilling.\"),ue=e=>e===\"login.schibsted.com\"||e===\"identity-pre.schibsted.com\",K=e=>{var t;try{let n=new URL((t=e.getAttribute(\"href\"))!=null?t:\"\").hostname;if(ue(n))return\"Login\";if(me(n))return\"Purchase\"}catch{return}};var B=e=>{var t;try{let r=new URL((t=e.getAttribute(\"href\"))!=null?t:\"\"),o=new URLSearchParams(r.search).get(\"code\");return o?o.split(\",\"):[]}catch{return[]}};var A=e=>{var r;let t=(r=e==null?void 0:e.toLowerCase())!=null?r:\"\";if(t.includes(\"meter\"))return\"Meter\";if(t.includes(\"paid\")||t.includes(\"subscription\"))return\"Paid\";if(t.includes(\"login\"))return\"Login\"};function z(e,t,r,n){let{campaign:o,articleType:c,abTestGroup:a,placementType:p,experiment:i,legacy:s,contentName:m,pulseEvents:l}=t,g=400,d=\"\",h=0;function k(P){var b,x,E,U,$;try{let T=P.target,f=(b=T==null?void 0:T.closest)==null?void 0:b.call(T,\"a\");if(!f)return;let S=f.textContent||f.getAttribute(\"href\")||`${p} button`,N=`a|${S}`,W=Date.now();if(N===d&&W-h<g)return;d=N,h=W;let C=K(f),H=C===\"Purchase\"?B(f):[];l.tpaas&&e.trackEngagementOffer({placement:{containerName:\"page\",offerPlacement:p},object:{objectId:n,objectSdrn:r,campaign:o,name:m,offerCodes:H,offerType:A(c)},...i?{experiments:[{experimentSdrn:`${r}:experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a||\"\"}]}:{},engagement:{action:\"Click\",elementName:S},page:{},target:{info:{url:(x=f.getAttribute(\"href\"))!=null?x:\"\"}}}).catch(w),l.legacy&&e.trackLegacyClickUIElement({object:{id:u(S),elementType:\"Button\",name:S,containerName:\"Page\",custom:{...s==null?void 0:s.offerData,offerCodes:H}},...s?{origin:s.pulseOrigin}:{},target:{url:($=(U=(E=f.getAttribute(\"href\"))==null?void 0:E.split(\"?\"))==null?void 0:U[0])!=null?$:\"\"},...C?{intent:C}:{},...i?{experiments:[{id:`experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a}]}:{}}).catch(w)}catch{}}return document.addEventListener(\"click\",k,!0),()=>document.removeEventListener(\"click\",k,!0)}function X(e,t,r,n,o){let{campaign:c,articleType:a,abTestGroup:p,placementType:i,experiment:s,offerCodes:m,legacy:l,contentName:g,pulseEvents:d}=t;d.tpaas&&e.trackImpressionOffer({placement:{foldPosition:o,containerName:\"page\",offerPlacement:i},object:{campaign:c,name:g,objectId:n,objectSdrn:r,offerCodes:m!=null?m:[],offerType:A(a)},...s?{experiments:[{experimentSdrn:`${r}:experiment:${u(s)}`,name:s,platform:\"SPS\",variant:p||\"\"}]}:{},page:{},target:{info:{}}}).catch(w),d.legacy&&e.trackLegacyViewUIElement({object:{id:u(g),elementType:i,name:g,placement:{},custom:{...l==null?void 0:l.offerData,...l==null?void 0:l.custom,offerCodes:m}},...s?{experiments:[{id:`${r}:experiment:${u(s)}`,name:s,platform:\"SPS\",variant:p}]}:{},...l?{origin:l.pulseOrigin}:{}}).catch(w)}async function Q(e,t,r){let{placementType:n,legacy:o,pulseEvents:c}=t,a=window.location.pathname,i=`landingpage-${n===\"campaignpage\"?\"CAMPAIGN\":\"STATIC\"}-${_(a)}`.toLowerCase();c.legacy&&await e.trackLegacyViewPage({object:{pageId:i,name:document.title,\"spt:custom\":{...o==null?void 0:o.offerData,...o==null?void 0:o.custom}},origin:o==null?void 0:o.pulseOrigin}),c.tpaas&&await e.trackViewLandingpage({object:{objectId:i,objectSdrn:r,title:document.title},page:{}},{leaveTracking:{objectElement:\"body\",pageElement:\"body\",objectResizable:!1}})}var M=e=>e===\"campaignpage\"||e===\"staticpage\";var I={name:\"@schibsted/sps-sdk\",version:\"5.3.0\",description:\"SPS SDK for node.js\",packageManager:\"pnpm@10.27.0\",engines:{node:\">=18.0.0\"},repository:{type:\"git\",url:\"https://schibsted.ghe.com/urs-ma/sps-sdk.git\"},publishConfig:{access:\"public\",registry:\"https://registry.npmjs.org/\"},author:\"Schibsted Subscription Product & Tech\",license:\"UNLICENSED\",type:\"module\",main:\"dist/cjs/index.js\",module:\"dist/esm/index.js\",exports:{\".\":{types:\"./dist/esm/index.d.ts\",import:\"./dist/esm/index.js\",require:\"./dist/cjs/index.js\"}},files:[\"dist\"],scripts:{preinstall:\"npx only-allow pnpm\",build:\"npm run build:clean && npm run build:public-scripts && npm run build:esm && npm run build:cjs\",\"build:clean\":\"rm -rf dist/cjs dist/esm\",\"build:esm\":\"tsc -p tsconfig.esm.json && tsc-alias -p tsconfig.esm.json\",\"build:cjs\":`tsc -p tsconfig.cjs.json && tsc-alias -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json`,\"build:sps-pulse-helpers\":\"tsup --config packages/sps-pulse-helpers/tsup.config.ts\",\"build:pulse-tracker-proxy\":\"tsup --config packages/pulse-tracker-proxy/tsup.config.ts\",\"build:public-scripts\":\"npm run build:sps-pulse-helpers && npm run build:pulse-tracker-proxy && node scripts/generate-public-scripts-content.js\",test:\"node --experimental-vm-modules node_modules/jest/bin/jest.js\",lint:\"eslint .\",\"release:alpha\":\"npm publish --tag alpha\",\"release:beta\":\"npm publish --tag beta\"},devDependencies:{\"@jest/globals\":\"^30.0.0\",\"@schibsted/account-sdk-browser\":\"^6.0.0\",\"@schibsted/pulse-tracker-proxy\":\"^2.0.0-rc.19\",\"@semantic-release/changelog\":\"^6.0.3\",\"@semantic-release/git\":\"^10.0.1\",\"@snoam/mono-ma-shared-configs\":\"^1.1.0\",\"@types/jest\":\"30.0.0\",\"@types/node\":\"^24.0.3\",\"conventional-changelog-conventionalcommits\":\"^9.1.0\",eslint:\"^9.29.0\",jest:\"^30.0.0\",\"jest-environment-jsdom\":\"^30.0.2\",\"jest-fixed-jsdom\":\"^0.0.11\",msw:\"^2.13.0\",prettier:\"3.9.4\",\"semantic-release\":\"^25.0.8\",\"ts-jest\":\"^29.4.0\",\"ts-node\":\"^10.9.2\",\"tsc-alias\":\"^1.8.16\",tsup:\"^8.5.1\",typescript:\"^5.9.3\"},peerDependencies:{\"@schibsted/pulse-sdk\":\">=8.0.0-rc.19\"},dependencies:{\"@schibsted/consent-url-utils\":\"^2.0.0\"}};var J=!1,Z=!1,ee=\"script[data-sps-pulse-config='true']\",w=e=>console.error(`[SPS-Pulse-Helpers] Failed to send Pulse event. Events are dropped if the host page runs an older @schibsted/pulse-sdk. SPS SDK ${I.version} requires @schibsted/pulse-sdk ${I.peerDependencies[\"@schibsted/pulse-sdk\"]}.`,e),u=e=>e.toLowerCase().replace(/ /g,\"-\").replace(/[^-a-z:0-9]/g,\"\"),_=e=>{var t,r;return(e==null?void 0:e.replace((r=(t=window.__landingpages)==null?void 0:t.rootUrl)!=null?r:\"\",\"\").replace(/^\\/|\\/$/g,\"\"))||\"\"};async function te(){if(console.log(\"[SPS-Pulse-Helpers] boot initiated\"),J)return;J=!0;let e=null;try{let t=document.querySelector(ee);if(!t){console.warn(`[SPS-Pulse-Helpers] Config script tag not found with selector ${ee}`);return}e=JSON.parse(t.textContent)}catch(t){console.warn(\"[SPS-Pulse-Helpers] Failed to parse config from script tag\",t);return}try{let t=window.getPulseTrackerProxy;if(!t||typeof t!=\"function\"){console.warn(\"[SPS-Pulse-Helpers] PulseTrackerProxy not available\");return}let{placementType:r,publication:n,contentName:o}=e,c=M(r)?_(window.location.pathname):u(o),a=`sdrn:${n}:element:offer:${r}:${c}`,p=crypto==null?void 0:crypto.randomUUID(),i=await t({component:\"SPS-SDK\",componentVersion:I.version});z(i,e,a,p);let s=k=>{Z||(Z=!0,X(i,e,a,p,k))};if(M(r)){await Q(i,e,a),s(\"Above\");return}let m=window.frameElement,l=window.parent.IntersectionObserver;if(!m||!l){console.warn(\"[SPS-Pulse-Helpers] No iframe or IntersectionObserver available. Pulse View event will not be fired.\");return}let g=\"Unknown\",d=!0,h=new l(k=>{var E;let P=k[0],b=(E=P==null?void 0:P.intersectionRatio)!=null?E:0,x=(P==null?void 0:P.isIntersecting)&&b>=1/3;d&&(d=!1,g=x?\"Above\":\"Below\"),x&&(h.disconnect(),s(g))},{root:null,threshold:[0,1/3]});h.observe(m)}catch(t){console.warn(\"[SPS-Pulse-Helpers] boot failed\",t)}}te();return ae(de);})();\n";
|
|
3
3
|
readonly "pulse-tracker-proxy": "\"use strict\";var PulseTrackerProxyBundle=(()=>{var y=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var O=(e,r,t,o)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let a of v(r))!M.call(e,a)&&a!==t&&y(e,a,{get:()=>r[a],enumerable:!(o=R(r,a))||o.enumerable});return e};var U=e=>O(y({},\"__esModule\",{value:!0}),e);var G={};var k=\"pulse-tracker-proxy\",x=`${k}:request`,H=`${k}:ack`,T=`${k}:invoke`,h=`${k}:return`,l=`${k}:return-error`,f=[\"trackAnonymousViewUIElement\",\"trackEngagementAd\",\"trackEngagementAffiliate\",\"trackEngagementAudio\",\"trackEngagementForm\",\"trackEngagementHealthUIElement\",\"trackEngagementOffer\",\"trackEngagementSchoolUIElement\",\"trackEngagementSportsUIElement\",\"trackEngagementTeaser\",\"trackEngagementTvModule\",\"trackEngagementUIElement\",\"trackEngagementVideo\",\"trackEngagementVideoAd\",\"trackEngagementWidget\",\"trackCompletedHealthAction\",\"trackImpressionAd\",\"trackImpressionAdSlot\",\"trackImpressionAffiliate\",\"trackImpressionForm\",\"trackImpressionHealthUIElement\",\"trackImpressionOffer\",\"trackImpressionPlayer\",\"trackImpressionSchoolUIElement\",\"trackImpressionSportsUIElement\",\"trackImpressionTeaser\",\"trackImpressionUIElement\",\"trackImpressionWidget\",\"trackLoadAd\",\"trackRequestAd\",\"trackLeaveArticle\",\"trackLeaveAudioPage\",\"trackLeaveError\",\"trackLeaveFrontpage\",\"trackLeaveLandingpage\",\"trackLeaveListing\",\"trackLeaveLockedArticle\",\"trackLeaveLockedAudioPage\",\"trackLeaveLockedPage\",\"trackLeaveLockedVideoPage\",\"trackLeavePage\",\"trackLeaveSchoolPage\",\"trackLeaveSportsPage\",\"trackLeaveVideoPage\",\"trackLeaveWeather\",\"trackViewArticle\",\"trackViewAudioPage\",\"trackViewError\",\"trackViewFrontpage\",\"trackViewHealthPage\",\"trackViewLandingpage\",\"trackViewListing\",\"trackViewLockedArticle\",\"trackViewLockedAudioPage\",\"trackViewLockedPage\",\"trackViewLockedVideoPage\",\"trackViewPage\",\"trackViewSchoolPage\",\"trackViewSportsPage\",\"trackViewTitle\",\"trackViewVideoPage\",\"trackViewWeather\",\"trackLegacyViewArticle\",\"trackLegacyViewLoginPoster\",\"trackLegacyViewSalesPoster\",\"trackLegacyViewListing\",\"trackLegacyViewFrontpage\",\"trackLegacyViewPage\",\"trackLegacyViewUIElement\",\"trackLegacyClickUIElement\"];function m(e){return e!==null&&typeof e==\"object\"&&\"type\"in e&&typeof e.type==\"string\"&&e.type.startsWith(k)}function g(e,{target:r,timeout:t,debug:o=()=>{}}){return new Promise((a,i)=>{let c=new MessageChannel,n=t?setTimeout(()=>{c.port1.close(),i(new Error(`Message of type ${e.type} timed out`))},t):void 0,p=s=>{if(o(\"[Pulse Tracker Proxy] Received the response on the MessageChannel\",s),!m(s.data)){o(\"[Pulse Tracker Proxy] Response was not a valid Proxy Message\",s.data);return}s.data.type===l&&(o(\"[Pulse Tracker Proxy] Received an return error response\",s.data.error),clearTimeout(n),c.port1.close(),i(new Error(s.data.error))),o(\"[Pulse Tracker Proxy] Received a valid response\",s.data),clearTimeout(n),c.port1.close(),a(s.data)};c.port1.onmessage=p,o(\"[Pulse Tracker Proxy] Sending message to target window\",e),r.postMessage(e,\"*\",[c.port2])})}var V=\"2.0.0-rc.19\";function u(e){let r=\"tracker\"in e&&typeof e.tracker==\"object\"?e.tracker:{};return{...e,tracker:{...r,proxyVersion:V}}}function w(e,r,t){let o=\"provider\"in e&&typeof e.provider==\"object\"?e.provider:{};return{...e,provider:{...o,component:r,componentVersion:t}}}var d=class{constructor(r,t,o,a){this.target=r,this.component=t,this.componentVersion=o,this.debug=a}track(...r){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",r);let[t,o,...a]=r,i=u(o),c=w(i,this.component,this.componentVersion),n=[t,c,...a];return this.invoke({method:\"track\",args:n})}async invoke(r){this.debug(\"[Pulse Tracker Proxy] Invoking remote function\",r);let t=await g({type:T,payload:r},{target:this.target});if(!m(t))throw this.debug(\"[Pulse Tracker Proxy] Invalid response from proxy\",t),new Error(\"Invalid response from proxy\");if(t.type===l)throw this.debug(\"[Pulse Tracker Proxy] Error response from proxy\",t.error),new Error(t.error);if(t.type===h)return this.debug(\"[Pulse Tracker Proxy] Successful response from proxy\",t.payload),t.payload;throw this.debug(\"[Pulse Tracker Proxy] Unhandled response from proxy\",t),new Error(\"Unexpected response from proxy\")}};var C=Object.fromEntries(f.map(e=>[e,function(...r){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",r);let[t,...o]=r,a=u(t),c=[w(a,this.component,this.componentVersion),...o];return this.invoke({method:e,args:c})}]));function W(){return class extends d{constructor(e,r,t,o){super(e,r,t,o),o(\"[Pulse TPaaS Proxy] Initialized\"),Object.assign(this,C)}}}var A=W();function L({component:e,componentVersion:r,window:t=globalThis.window,target:o=t.parent,timeout:a=5e3,retries:i=3,retryTimeout:c=1e3,debug:n=()=>{}}){if(n(\"[Pulse Tracker Proxy] Trying to establish connection...\",{target:o,timeout:a,retries:i}),!o)return Promise.reject(new Error(\"Target window not provided. Possibly window.parent is not available.\"));let p,s=!1,I=new Promise((P,E)=>{p=setTimeout(()=>{s=!0,n(\"[Pulse Tracker Proxy] Ack timeout. Sorry, target seems to not support the proxy.\"),E(new Error(`Pulse tracker proxy not found within ${a} ms`))},a)}),_=(async()=>{for(let P=0;P<i;P++){if(s)throw n(\"[Pulse Tracker Proxy] Configured timeout has passed before the next attempt\"),new Error(\"Configured timeout has passed before the next attempt.\");try{n(`[Pulse Tracker Proxy] Sending request to target window (attempt: ${P+1})...`),await g({type:x},{target:o,timeout:c})}catch(E){n(`[Pulse Tracker Proxy] Ack Request failed: ${E}`);continue}return clearTimeout(p),n(`[Pulse Tracker Proxy] Ack Request successful (attempt: ${P+1})`),!e||!r?(n(\"[Pulse Tracker Proxy] `component` or `componentVersion` is not set - cannot create pulse tracker.\"),Promise.reject(new Error(\"`component` or `componentVersion` is not set - cannot create pulse tracker.\"))):new A(o,e,r,n)}throw clearTimeout(p),n(\"[Pulse Tracker Proxy] Retries exhausted. Target did not respond. Failing.\"),new Error(\"Failed to establish connection with pulse tracker proxy\")})();return Promise.race([I,_])}var S;window.getPulseTrackerProxy=(S=window.getPulseTrackerProxy)!=null?S:L;return U(G);})();\n";
|
|
4
4
|
};
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PUBLIC_SCRIPTS_CONTENT = void 0;
|
|
4
4
|
// Generated from dist/public-scripts — do not edit manually
|
|
5
5
|
exports.PUBLIC_SCRIPTS_CONTENT = {
|
|
6
|
-
"sps-pulse-helpers": "\"use strict\";var SpsPulseHelpersBundle=(()=>{var F=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var oe=Object.getOwnPropertyNames;var ne=Object.prototype.hasOwnProperty;var se=(e,t,r,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of oe(t))!ne.call(e,o)&&o!==r&&F(e,o,{get:()=>t[o],enumerable:!(n=re(t,o))||n.enumerable});return e};var ae=e=>se(F({},\"__esModule\",{value:!0}),e);var de={};var y=\"pulse-tracker-proxy\",ie=`${y}:request`,fe=`${y}:ack`,D=`${y}:invoke`,G=`${y}:return`,L=`${y}:return-error`,q=[\"trackAnonymousViewUIElement\",\"trackEngagementAd\",\"trackEngagementAffiliate\",\"trackEngagementAudio\",\"trackEngagementForm\",\"trackEngagementHealthUIElement\",\"trackEngagementOffer\",\"trackEngagementSchoolUIElement\",\"trackEngagementSportsUIElement\",\"trackEngagementTeaser\",\"trackEngagementTvModule\",\"trackEngagementUIElement\",\"trackEngagementVideo\",\"trackEngagementVideoAd\",\"trackEngagementWidget\",\"trackCompletedHealthAction\",\"trackImpressionAd\",\"trackImpressionAdSlot\",\"trackImpressionAffiliate\",\"trackImpressionForm\",\"trackImpressionHealthUIElement\",\"trackImpressionOffer\",\"trackImpressionPlayer\",\"trackImpressionSchoolUIElement\",\"trackImpressionSportsUIElement\",\"trackImpressionTeaser\",\"trackImpressionUIElement\",\"trackImpressionWidget\",\"trackLoadAd\",\"trackRequestAd\",\"trackLeaveArticle\",\"trackLeaveAudioPage\",\"trackLeaveError\",\"trackLeaveFrontpage\",\"trackLeaveLandingpage\",\"trackLeaveListing\",\"trackLeaveLockedArticle\",\"trackLeaveLockedAudioPage\",\"trackLeaveLockedPage\",\"trackLeaveLockedVideoPage\",\"trackLeavePage\",\"trackLeaveSchoolPage\",\"trackLeaveSportsPage\",\"trackLeaveVideoPage\",\"trackLeaveWeather\",\"trackViewArticle\",\"trackViewAudioPage\",\"trackViewError\",\"trackViewFrontpage\",\"trackViewHealthPage\",\"trackViewLandingpage\",\"trackViewListing\",\"trackViewLockedArticle\",\"trackViewLockedAudioPage\",\"trackViewLockedPage\",\"trackViewLockedVideoPage\",\"trackViewPage\",\"trackViewSchoolPage\",\"trackViewSportsPage\",\"trackViewTitle\",\"trackViewVideoPage\",\"trackViewWeather\",\"trackLegacyViewArticle\",\"trackLegacyViewLoginPoster\",\"trackLegacyViewSalesPoster\",\"trackLegacyViewListing\",\"trackLegacyViewFrontpage\",\"trackLegacyViewPage\",\"trackLegacyViewUIElement\",\"trackLegacyClickUIElement\"];function V(e){return e!==null&&typeof e==\"object\"&&\"type\"in e&&typeof e.type==\"string\"&&e.type.startsWith(y)}function O(e,{target:t,timeout:r,debug:n=()=>{}}){return new Promise((o,c)=>{let a=new MessageChannel,p=r?setTimeout(()=>{a.port1.close(),c(new Error(`Message of type ${e.type} timed out`))},r):void 0,i=s=>{if(n(\"[Pulse Tracker Proxy] Received the response on the MessageChannel\",s),!V(s.data)){n(\"[Pulse Tracker Proxy] Response was not a valid Proxy Message\",s.data);return}s.data.type===L&&(n(\"[Pulse Tracker Proxy] Received an return error response\",s.data.error),clearTimeout(p),a.port1.close(),c(new Error(s.data.error))),n(\"[Pulse Tracker Proxy] Received a valid response\",s.data),clearTimeout(p),a.port1.close(),o(s.data)};a.port1.onmessage=i,n(\"[Pulse Tracker Proxy] Sending message to target window\",e),t.postMessage(e,\"*\",[a.port2])})}var Y=\"2.0.0-rc.19\";function j(e){let t=\"tracker\"in e&&typeof e.tracker==\"object\"?e.tracker:{};return{...e,tracker:{...t,proxyVersion:Y}}}function R(e,t,r){let n=\"provider\"in e&&typeof e.provider==\"object\"?e.provider:{};return{...e,provider:{...n,component:t,componentVersion:r}}}var v=class{constructor(t,r,n,o){this.target=t,this.component=r,this.componentVersion=n,this.debug=o}track(...t){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",t);let[r,n,...o]=t,c=j(n),a=R(c,this.component,this.componentVersion),p=[r,a,...o];return this.invoke({method:\"track\",args:p})}async invoke(t){this.debug(\"[Pulse Tracker Proxy] Invoking remote function\",t);let r=await O({type:D,payload:t},{target:this.target});if(!V(r))throw this.debug(\"[Pulse Tracker Proxy] Invalid response from proxy\",r),new Error(\"Invalid response from proxy\");if(r.type===L)throw this.debug(\"[Pulse Tracker Proxy] Error response from proxy\",r.error),new Error(r.error);if(r.type===G)return this.debug(\"[Pulse Tracker Proxy] Successful response from proxy\",r.payload),r.payload;throw this.debug(\"[Pulse Tracker Proxy] Unhandled response from proxy\",r),new Error(\"Unexpected response from proxy\")}};var ce=Object.fromEntries(q.map(e=>[e,function(...t){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",t);let[r,...n]=t,o=j(r),a=[R(o,this.component,this.componentVersion),...n];return this.invoke({method:e,args:a})}]));function pe(){return class extends v{constructor(e,t,r,n){super(e,t,r,n),n(\"[Pulse TPaaS Proxy] Initialized\"),Object.assign(this,ce)}}}var le=pe();var me=e=>e===\"payment.schibsted.com\"||e.startsWith(\"bestilling.\")||e===\"pay.pre.schibsted.digital\"||e.startsWith(\"test-bestilling.\"),ue=e=>e===\"login.schibsted.com\"||e===\"identity-pre.schibsted.com\",K=e=>{var t;try{let n=new URL((t=e.getAttribute(\"href\"))!=null?t:\"\").hostname;if(ue(n))return\"Login\";if(me(n))return\"Purchase\"}catch{return}};var B=e=>{var t;try{let r=new URL((t=e.getAttribute(\"href\"))!=null?t:\"\"),o=new URLSearchParams(r.search).get(\"code\");return o?o.split(\",\"):[]}catch{return[]}};var A=e=>{var r;let t=(r=e==null?void 0:e.toLowerCase())!=null?r:\"\";if(t.includes(\"meter\"))return\"Meter\";if(t.includes(\"paid\")||t.includes(\"subscription\"))return\"Paid\";if(t.includes(\"login\"))return\"Login\"};function z(e,t,r,n){let{campaign:o,articleType:c,abTestGroup:a,placementType:p,experiment:i,legacy:s,contentName:m,pulseEvents:l}=t,g=400,d=\"\",h=0;function k(P){var b,x,E,U,$;try{let T=P.target,f=(b=T==null?void 0:T.closest)==null?void 0:b.call(T,\"a\");if(!f)return;let S=f.textContent||f.getAttribute(\"href\")||`${p} button`,N=`a|${S}`,W=Date.now();if(N===d&&W-h<g)return;d=N,h=W;let C=K(f),H=C===\"Purchase\"?B(f):[];l.tpaas&&e.trackEngagementOffer({placement:{containerName:\"page\",offerPlacement:p},object:{objectId:n,objectSdrn:r,campaign:o,name:m,offerCodes:H,offerType:A(c)},...i?{experiments:[{experimentSdrn:`${r}:experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a||\"\"}]}:{},engagement:{action:\"Click\",elementName:S},page:{},target:{info:{url:(x=f.getAttribute(\"href\"))!=null?x:\"\"}}}).catch(w),l.legacy&&e.trackLegacyClickUIElement({object:{id:u(S),elementType:\"Button\",name:S,containerName:\"Page\",custom:{...s==null?void 0:s.offerData,offerCodes:H}},...s?{origin:s.pulseOrigin}:{},target:{url:($=(U=(E=f.getAttribute(\"href\"))==null?void 0:E.split(\"?\"))==null?void 0:U[0])!=null?$:\"\"},...C?{intent:C}:{},...i?{experiments:[{id:`experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a}]}:{}}).catch(w)}catch{}}return document.addEventListener(\"click\",k,!0),()=>document.removeEventListener(\"click\",k,!0)}function X(e,t,r,n,o){let{campaign:c,articleType:a,abTestGroup:p,placementType:i,experiment:s,offerCodes:m,legacy:l,contentName:g,pulseEvents:d}=t;d.tpaas&&e.trackImpressionOffer({placement:{foldPosition:o,containerName:\"page\",offerPlacement:i},object:{campaign:c,name:g,objectId:n,objectSdrn:r,offerCodes:m!=null?m:[],offerType:A(a)},...s?{experiments:[{experimentSdrn:`${r}:experiment:${u(s)}`,name:s,platform:\"SPS\",variant:p||\"\"}]}:{},page:{},target:{info:{}}}).catch(w),d.legacy&&e.trackLegacyViewUIElement({object:{id:u(g),elementType:i,name:g,placement:{},custom:{...l==null?void 0:l.offerData,...l==null?void 0:l.custom,offerCodes:m}},...s?{experiments:[{id:`${r}:experiment:${u(s)}`,name:s,platform:\"SPS\",variant:p}]}:{},...l?{origin:l.pulseOrigin}:{}}).catch(w)}async function Q(e,t,r){let{placementType:n,legacy:o,pulseEvents:c}=t,a=window.location.pathname,i=`landingpage-${n===\"campaignpage\"?\"CAMPAIGN\":\"STATIC\"}-${_(a)}`.toLowerCase();c.legacy&&await e.trackLegacyViewPage({object:{pageId:i,name:document.title,\"spt:custom\":{...o==null?void 0:o.offerData,...o==null?void 0:o.custom}},origin:o==null?void 0:o.pulseOrigin}),c.tpaas&&await e.trackViewLandingpage({object:{objectId:i,objectSdrn:r,title:document.title},page:{}},{leaveTracking:{objectElement:\"body\",pageElement:\"body\",objectResizable:!1}})}var M=e=>e===\"campaignpage\"||e===\"staticpage\";var I={name:\"@schibsted/sps-sdk\",version:\"5.2.0\",description:\"SPS SDK for node.js\",packageManager:\"pnpm@10.27.0\",engines:{node:\">=18.0.0\"},repository:{type:\"git\",url:\"https://schibsted.ghe.com/urs-ma/sps-sdk.git\"},publishConfig:{access:\"public\",registry:\"https://registry.npmjs.org/\"},author:\"Schibsted Subscription Product & Tech\",license:\"UNLICENSED\",type:\"module\",main:\"dist/cjs/index.js\",module:\"dist/esm/index.js\",exports:{\".\":{types:\"./dist/esm/index.d.ts\",import:\"./dist/esm/index.js\",require:\"./dist/cjs/index.js\"}},files:[\"dist\"],scripts:{preinstall:\"npx only-allow pnpm\",build:\"npm run build:clean && npm run build:public-scripts && npm run build:esm && npm run build:cjs\",\"build:clean\":\"rm -rf dist/cjs dist/esm\",\"build:esm\":\"tsc -p tsconfig.esm.json && tsc-alias -p tsconfig.esm.json\",\"build:cjs\":`tsc -p tsconfig.cjs.json && tsc-alias -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json`,\"build:sps-pulse-helpers\":\"tsup --config packages/sps-pulse-helpers/tsup.config.ts\",\"build:pulse-tracker-proxy\":\"tsup --config packages/pulse-tracker-proxy/tsup.config.ts\",\"build:public-scripts\":\"npm run build:sps-pulse-helpers && npm run build:pulse-tracker-proxy && node scripts/generate-public-scripts-content.js\",test:\"node --experimental-vm-modules node_modules/jest/bin/jest.js\",lint:\"eslint .\",\"release:alpha\":\"npm publish --tag alpha\",\"release:beta\":\"npm publish --tag beta\"},devDependencies:{\"@jest/globals\":\"^30.0.0\",\"@schibsted/pulse-tracker-proxy\":\"^2.0.0-rc.19\",\"@semantic-release/changelog\":\"^6.0.3\",\"@semantic-release/git\":\"^10.0.1\",\"@snoam/mono-ma-shared-configs\":\"^1.1.0\",\"@types/jest\":\"30.0.0\",\"@types/node\":\"^24.0.3\",\"conventional-changelog-conventionalcommits\":\"^9.1.0\",eslint:\"^9.29.0\",jest:\"^30.0.0\",\"jest-environment-jsdom\":\"^30.0.2\",\"jest-fixed-jsdom\":\"^0.0.11\",msw:\"^2.13.0\",prettier:\"3.9.4\",\"semantic-release\":\"^25.0.8\",\"ts-jest\":\"^29.4.0\",\"ts-node\":\"^10.9.2\",\"tsc-alias\":\"^1.8.16\",tsup:\"^8.5.1\",typescript:\"^5.9.3\"},peerDependencies:{\"@schibsted/pulse-sdk\":\">=8.0.0-rc.19\"},dependencies:{\"@schibsted/consent-url-utils\":\"^2.0.0\"}};var J=!1,Z=!1,ee=\"script[data-sps-pulse-config='true']\",w=e=>console.error(`[SPS-Pulse-Helpers] Failed to send Pulse event. Events are dropped if the host page runs an older @schibsted/pulse-sdk. SPS SDK ${I.version} requires @schibsted/pulse-sdk ${I.peerDependencies[\"@schibsted/pulse-sdk\"]}.`,e),u=e=>e.toLowerCase().replace(/ /g,\"-\").replace(/[^-a-z:0-9]/g,\"\"),_=e=>{var t,r;return(e==null?void 0:e.replace((r=(t=window.__landingpages)==null?void 0:t.rootUrl)!=null?r:\"\",\"\").replace(/^\\/|\\/$/g,\"\"))||\"\"};async function te(){if(console.log(\"[SPS-Pulse-Helpers] boot initiated\"),J)return;J=!0;let e=null;try{let t=document.querySelector(ee);if(!t){console.warn(`[SPS-Pulse-Helpers] Config script tag not found with selector ${ee}`);return}e=JSON.parse(t.textContent)}catch(t){console.warn(\"[SPS-Pulse-Helpers] Failed to parse config from script tag\",t);return}try{let t=window.getPulseTrackerProxy;if(!t||typeof t!=\"function\"){console.warn(\"[SPS-Pulse-Helpers] PulseTrackerProxy not available\");return}let{placementType:r,publication:n,contentName:o}=e,c=M(r)?_(window.location.pathname):u(o),a=`sdrn:${n}:element:offer:${r}:${c}`,p=crypto==null?void 0:crypto.randomUUID(),i=await t({component:\"SPS-SDK\",componentVersion:I.version});z(i,e,a,p);let s=k=>{Z||(Z=!0,X(i,e,a,p,k))};if(M(r)){await Q(i,e,a),s(\"Above\");return}let m=window.frameElement,l=window.parent.IntersectionObserver;if(!m||!l){console.warn(\"[SPS-Pulse-Helpers] No iframe or IntersectionObserver available. Pulse View event will not be fired.\");return}let g=\"Unknown\",d=!0,h=new l(k=>{var E;let P=k[0],b=(E=P==null?void 0:P.intersectionRatio)!=null?E:0,x=(P==null?void 0:P.isIntersecting)&&b>=1/3;d&&(d=!1,g=x?\"Above\":\"Below\"),x&&(h.disconnect(),s(g))},{root:null,threshold:[0,1/3]});h.observe(m)}catch(t){console.warn(\"[SPS-Pulse-Helpers] boot failed\",t)}}te();return ae(de);})();\n",
|
|
6
|
+
"sps-pulse-helpers": "\"use strict\";var SpsPulseHelpersBundle=(()=>{var F=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var oe=Object.getOwnPropertyNames;var ne=Object.prototype.hasOwnProperty;var se=(e,t,r,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of oe(t))!ne.call(e,o)&&o!==r&&F(e,o,{get:()=>t[o],enumerable:!(n=re(t,o))||n.enumerable});return e};var ae=e=>se(F({},\"__esModule\",{value:!0}),e);var de={};var y=\"pulse-tracker-proxy\",ie=`${y}:request`,fe=`${y}:ack`,D=`${y}:invoke`,G=`${y}:return`,L=`${y}:return-error`,q=[\"trackAnonymousViewUIElement\",\"trackEngagementAd\",\"trackEngagementAffiliate\",\"trackEngagementAudio\",\"trackEngagementForm\",\"trackEngagementHealthUIElement\",\"trackEngagementOffer\",\"trackEngagementSchoolUIElement\",\"trackEngagementSportsUIElement\",\"trackEngagementTeaser\",\"trackEngagementTvModule\",\"trackEngagementUIElement\",\"trackEngagementVideo\",\"trackEngagementVideoAd\",\"trackEngagementWidget\",\"trackCompletedHealthAction\",\"trackImpressionAd\",\"trackImpressionAdSlot\",\"trackImpressionAffiliate\",\"trackImpressionForm\",\"trackImpressionHealthUIElement\",\"trackImpressionOffer\",\"trackImpressionPlayer\",\"trackImpressionSchoolUIElement\",\"trackImpressionSportsUIElement\",\"trackImpressionTeaser\",\"trackImpressionUIElement\",\"trackImpressionWidget\",\"trackLoadAd\",\"trackRequestAd\",\"trackLeaveArticle\",\"trackLeaveAudioPage\",\"trackLeaveError\",\"trackLeaveFrontpage\",\"trackLeaveLandingpage\",\"trackLeaveListing\",\"trackLeaveLockedArticle\",\"trackLeaveLockedAudioPage\",\"trackLeaveLockedPage\",\"trackLeaveLockedVideoPage\",\"trackLeavePage\",\"trackLeaveSchoolPage\",\"trackLeaveSportsPage\",\"trackLeaveVideoPage\",\"trackLeaveWeather\",\"trackViewArticle\",\"trackViewAudioPage\",\"trackViewError\",\"trackViewFrontpage\",\"trackViewHealthPage\",\"trackViewLandingpage\",\"trackViewListing\",\"trackViewLockedArticle\",\"trackViewLockedAudioPage\",\"trackViewLockedPage\",\"trackViewLockedVideoPage\",\"trackViewPage\",\"trackViewSchoolPage\",\"trackViewSportsPage\",\"trackViewTitle\",\"trackViewVideoPage\",\"trackViewWeather\",\"trackLegacyViewArticle\",\"trackLegacyViewLoginPoster\",\"trackLegacyViewSalesPoster\",\"trackLegacyViewListing\",\"trackLegacyViewFrontpage\",\"trackLegacyViewPage\",\"trackLegacyViewUIElement\",\"trackLegacyClickUIElement\"];function V(e){return e!==null&&typeof e==\"object\"&&\"type\"in e&&typeof e.type==\"string\"&&e.type.startsWith(y)}function O(e,{target:t,timeout:r,debug:n=()=>{}}){return new Promise((o,c)=>{let a=new MessageChannel,p=r?setTimeout(()=>{a.port1.close(),c(new Error(`Message of type ${e.type} timed out`))},r):void 0,i=s=>{if(n(\"[Pulse Tracker Proxy] Received the response on the MessageChannel\",s),!V(s.data)){n(\"[Pulse Tracker Proxy] Response was not a valid Proxy Message\",s.data);return}s.data.type===L&&(n(\"[Pulse Tracker Proxy] Received an return error response\",s.data.error),clearTimeout(p),a.port1.close(),c(new Error(s.data.error))),n(\"[Pulse Tracker Proxy] Received a valid response\",s.data),clearTimeout(p),a.port1.close(),o(s.data)};a.port1.onmessage=i,n(\"[Pulse Tracker Proxy] Sending message to target window\",e),t.postMessage(e,\"*\",[a.port2])})}var Y=\"2.0.0-rc.19\";function j(e){let t=\"tracker\"in e&&typeof e.tracker==\"object\"?e.tracker:{};return{...e,tracker:{...t,proxyVersion:Y}}}function R(e,t,r){let n=\"provider\"in e&&typeof e.provider==\"object\"?e.provider:{};return{...e,provider:{...n,component:t,componentVersion:r}}}var v=class{constructor(t,r,n,o){this.target=t,this.component=r,this.componentVersion=n,this.debug=o}track(...t){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",t);let[r,n,...o]=t,c=j(n),a=R(c,this.component,this.componentVersion),p=[r,a,...o];return this.invoke({method:\"track\",args:p})}async invoke(t){this.debug(\"[Pulse Tracker Proxy] Invoking remote function\",t);let r=await O({type:D,payload:t},{target:this.target});if(!V(r))throw this.debug(\"[Pulse Tracker Proxy] Invalid response from proxy\",r),new Error(\"Invalid response from proxy\");if(r.type===L)throw this.debug(\"[Pulse Tracker Proxy] Error response from proxy\",r.error),new Error(r.error);if(r.type===G)return this.debug(\"[Pulse Tracker Proxy] Successful response from proxy\",r.payload),r.payload;throw this.debug(\"[Pulse Tracker Proxy] Unhandled response from proxy\",r),new Error(\"Unexpected response from proxy\")}};var ce=Object.fromEntries(q.map(e=>[e,function(...t){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",t);let[r,...n]=t,o=j(r),a=[R(o,this.component,this.componentVersion),...n];return this.invoke({method:e,args:a})}]));function pe(){return class extends v{constructor(e,t,r,n){super(e,t,r,n),n(\"[Pulse TPaaS Proxy] Initialized\"),Object.assign(this,ce)}}}var le=pe();var me=e=>e===\"payment.schibsted.com\"||e.startsWith(\"bestilling.\")||e===\"pay.pre.schibsted.digital\"||e.startsWith(\"test-bestilling.\"),ue=e=>e===\"login.schibsted.com\"||e===\"identity-pre.schibsted.com\",K=e=>{var t;try{let n=new URL((t=e.getAttribute(\"href\"))!=null?t:\"\").hostname;if(ue(n))return\"Login\";if(me(n))return\"Purchase\"}catch{return}};var B=e=>{var t;try{let r=new URL((t=e.getAttribute(\"href\"))!=null?t:\"\"),o=new URLSearchParams(r.search).get(\"code\");return o?o.split(\",\"):[]}catch{return[]}};var A=e=>{var r;let t=(r=e==null?void 0:e.toLowerCase())!=null?r:\"\";if(t.includes(\"meter\"))return\"Meter\";if(t.includes(\"paid\")||t.includes(\"subscription\"))return\"Paid\";if(t.includes(\"login\"))return\"Login\"};function z(e,t,r,n){let{campaign:o,articleType:c,abTestGroup:a,placementType:p,experiment:i,legacy:s,contentName:m,pulseEvents:l}=t,g=400,d=\"\",h=0;function k(P){var b,x,E,U,$;try{let T=P.target,f=(b=T==null?void 0:T.closest)==null?void 0:b.call(T,\"a\");if(!f)return;let S=f.textContent||f.getAttribute(\"href\")||`${p} button`,N=`a|${S}`,W=Date.now();if(N===d&&W-h<g)return;d=N,h=W;let C=K(f),H=C===\"Purchase\"?B(f):[];l.tpaas&&e.trackEngagementOffer({placement:{containerName:\"page\",offerPlacement:p},object:{objectId:n,objectSdrn:r,campaign:o,name:m,offerCodes:H,offerType:A(c)},...i?{experiments:[{experimentSdrn:`${r}:experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a||\"\"}]}:{},engagement:{action:\"Click\",elementName:S},page:{},target:{info:{url:(x=f.getAttribute(\"href\"))!=null?x:\"\"}}}).catch(w),l.legacy&&e.trackLegacyClickUIElement({object:{id:u(S),elementType:\"Button\",name:S,containerName:\"Page\",custom:{...s==null?void 0:s.offerData,offerCodes:H}},...s?{origin:s.pulseOrigin}:{},target:{url:($=(U=(E=f.getAttribute(\"href\"))==null?void 0:E.split(\"?\"))==null?void 0:U[0])!=null?$:\"\"},...C?{intent:C}:{},...i?{experiments:[{id:`experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a}]}:{}}).catch(w)}catch{}}return document.addEventListener(\"click\",k,!0),()=>document.removeEventListener(\"click\",k,!0)}function X(e,t,r,n,o){let{campaign:c,articleType:a,abTestGroup:p,placementType:i,experiment:s,offerCodes:m,legacy:l,contentName:g,pulseEvents:d}=t;d.tpaas&&e.trackImpressionOffer({placement:{foldPosition:o,containerName:\"page\",offerPlacement:i},object:{campaign:c,name:g,objectId:n,objectSdrn:r,offerCodes:m!=null?m:[],offerType:A(a)},...s?{experiments:[{experimentSdrn:`${r}:experiment:${u(s)}`,name:s,platform:\"SPS\",variant:p||\"\"}]}:{},page:{},target:{info:{}}}).catch(w),d.legacy&&e.trackLegacyViewUIElement({object:{id:u(g),elementType:i,name:g,placement:{},custom:{...l==null?void 0:l.offerData,...l==null?void 0:l.custom,offerCodes:m}},...s?{experiments:[{id:`${r}:experiment:${u(s)}`,name:s,platform:\"SPS\",variant:p}]}:{},...l?{origin:l.pulseOrigin}:{}}).catch(w)}async function Q(e,t,r){let{placementType:n,legacy:o,pulseEvents:c}=t,a=window.location.pathname,i=`landingpage-${n===\"campaignpage\"?\"CAMPAIGN\":\"STATIC\"}-${_(a)}`.toLowerCase();c.legacy&&await e.trackLegacyViewPage({object:{pageId:i,name:document.title,\"spt:custom\":{...o==null?void 0:o.offerData,...o==null?void 0:o.custom}},origin:o==null?void 0:o.pulseOrigin}),c.tpaas&&await e.trackViewLandingpage({object:{objectId:i,objectSdrn:r,title:document.title},page:{}},{leaveTracking:{objectElement:\"body\",pageElement:\"body\",objectResizable:!1}})}var M=e=>e===\"campaignpage\"||e===\"staticpage\";var I={name:\"@schibsted/sps-sdk\",version:\"5.3.0\",description:\"SPS SDK for node.js\",packageManager:\"pnpm@10.27.0\",engines:{node:\">=18.0.0\"},repository:{type:\"git\",url:\"https://schibsted.ghe.com/urs-ma/sps-sdk.git\"},publishConfig:{access:\"public\",registry:\"https://registry.npmjs.org/\"},author:\"Schibsted Subscription Product & Tech\",license:\"UNLICENSED\",type:\"module\",main:\"dist/cjs/index.js\",module:\"dist/esm/index.js\",exports:{\".\":{types:\"./dist/esm/index.d.ts\",import:\"./dist/esm/index.js\",require:\"./dist/cjs/index.js\"}},files:[\"dist\"],scripts:{preinstall:\"npx only-allow pnpm\",build:\"npm run build:clean && npm run build:public-scripts && npm run build:esm && npm run build:cjs\",\"build:clean\":\"rm -rf dist/cjs dist/esm\",\"build:esm\":\"tsc -p tsconfig.esm.json && tsc-alias -p tsconfig.esm.json\",\"build:cjs\":`tsc -p tsconfig.cjs.json && tsc-alias -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json`,\"build:sps-pulse-helpers\":\"tsup --config packages/sps-pulse-helpers/tsup.config.ts\",\"build:pulse-tracker-proxy\":\"tsup --config packages/pulse-tracker-proxy/tsup.config.ts\",\"build:public-scripts\":\"npm run build:sps-pulse-helpers && npm run build:pulse-tracker-proxy && node scripts/generate-public-scripts-content.js\",test:\"node --experimental-vm-modules node_modules/jest/bin/jest.js\",lint:\"eslint .\",\"release:alpha\":\"npm publish --tag alpha\",\"release:beta\":\"npm publish --tag beta\"},devDependencies:{\"@jest/globals\":\"^30.0.0\",\"@schibsted/account-sdk-browser\":\"^6.0.0\",\"@schibsted/pulse-tracker-proxy\":\"^2.0.0-rc.19\",\"@semantic-release/changelog\":\"^6.0.3\",\"@semantic-release/git\":\"^10.0.1\",\"@snoam/mono-ma-shared-configs\":\"^1.1.0\",\"@types/jest\":\"30.0.0\",\"@types/node\":\"^24.0.3\",\"conventional-changelog-conventionalcommits\":\"^9.1.0\",eslint:\"^9.29.0\",jest:\"^30.0.0\",\"jest-environment-jsdom\":\"^30.0.2\",\"jest-fixed-jsdom\":\"^0.0.11\",msw:\"^2.13.0\",prettier:\"3.9.4\",\"semantic-release\":\"^25.0.8\",\"ts-jest\":\"^29.4.0\",\"ts-node\":\"^10.9.2\",\"tsc-alias\":\"^1.8.16\",tsup:\"^8.5.1\",typescript:\"^5.9.3\"},peerDependencies:{\"@schibsted/pulse-sdk\":\">=8.0.0-rc.19\"},dependencies:{\"@schibsted/consent-url-utils\":\"^2.0.0\"}};var J=!1,Z=!1,ee=\"script[data-sps-pulse-config='true']\",w=e=>console.error(`[SPS-Pulse-Helpers] Failed to send Pulse event. Events are dropped if the host page runs an older @schibsted/pulse-sdk. SPS SDK ${I.version} requires @schibsted/pulse-sdk ${I.peerDependencies[\"@schibsted/pulse-sdk\"]}.`,e),u=e=>e.toLowerCase().replace(/ /g,\"-\").replace(/[^-a-z:0-9]/g,\"\"),_=e=>{var t,r;return(e==null?void 0:e.replace((r=(t=window.__landingpages)==null?void 0:t.rootUrl)!=null?r:\"\",\"\").replace(/^\\/|\\/$/g,\"\"))||\"\"};async function te(){if(console.log(\"[SPS-Pulse-Helpers] boot initiated\"),J)return;J=!0;let e=null;try{let t=document.querySelector(ee);if(!t){console.warn(`[SPS-Pulse-Helpers] Config script tag not found with selector ${ee}`);return}e=JSON.parse(t.textContent)}catch(t){console.warn(\"[SPS-Pulse-Helpers] Failed to parse config from script tag\",t);return}try{let t=window.getPulseTrackerProxy;if(!t||typeof t!=\"function\"){console.warn(\"[SPS-Pulse-Helpers] PulseTrackerProxy not available\");return}let{placementType:r,publication:n,contentName:o}=e,c=M(r)?_(window.location.pathname):u(o),a=`sdrn:${n}:element:offer:${r}:${c}`,p=crypto==null?void 0:crypto.randomUUID(),i=await t({component:\"SPS-SDK\",componentVersion:I.version});z(i,e,a,p);let s=k=>{Z||(Z=!0,X(i,e,a,p,k))};if(M(r)){await Q(i,e,a),s(\"Above\");return}let m=window.frameElement,l=window.parent.IntersectionObserver;if(!m||!l){console.warn(\"[SPS-Pulse-Helpers] No iframe or IntersectionObserver available. Pulse View event will not be fired.\");return}let g=\"Unknown\",d=!0,h=new l(k=>{var E;let P=k[0],b=(E=P==null?void 0:P.intersectionRatio)!=null?E:0,x=(P==null?void 0:P.isIntersecting)&&b>=1/3;d&&(d=!1,g=x?\"Above\":\"Below\"),x&&(h.disconnect(),s(g))},{root:null,threshold:[0,1/3]});h.observe(m)}catch(t){console.warn(\"[SPS-Pulse-Helpers] boot failed\",t)}}te();return ae(de);})();\n",
|
|
7
7
|
"pulse-tracker-proxy": "\"use strict\";var PulseTrackerProxyBundle=(()=>{var y=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var O=(e,r,t,o)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let a of v(r))!M.call(e,a)&&a!==t&&y(e,a,{get:()=>r[a],enumerable:!(o=R(r,a))||o.enumerable});return e};var U=e=>O(y({},\"__esModule\",{value:!0}),e);var G={};var k=\"pulse-tracker-proxy\",x=`${k}:request`,H=`${k}:ack`,T=`${k}:invoke`,h=`${k}:return`,l=`${k}:return-error`,f=[\"trackAnonymousViewUIElement\",\"trackEngagementAd\",\"trackEngagementAffiliate\",\"trackEngagementAudio\",\"trackEngagementForm\",\"trackEngagementHealthUIElement\",\"trackEngagementOffer\",\"trackEngagementSchoolUIElement\",\"trackEngagementSportsUIElement\",\"trackEngagementTeaser\",\"trackEngagementTvModule\",\"trackEngagementUIElement\",\"trackEngagementVideo\",\"trackEngagementVideoAd\",\"trackEngagementWidget\",\"trackCompletedHealthAction\",\"trackImpressionAd\",\"trackImpressionAdSlot\",\"trackImpressionAffiliate\",\"trackImpressionForm\",\"trackImpressionHealthUIElement\",\"trackImpressionOffer\",\"trackImpressionPlayer\",\"trackImpressionSchoolUIElement\",\"trackImpressionSportsUIElement\",\"trackImpressionTeaser\",\"trackImpressionUIElement\",\"trackImpressionWidget\",\"trackLoadAd\",\"trackRequestAd\",\"trackLeaveArticle\",\"trackLeaveAudioPage\",\"trackLeaveError\",\"trackLeaveFrontpage\",\"trackLeaveLandingpage\",\"trackLeaveListing\",\"trackLeaveLockedArticle\",\"trackLeaveLockedAudioPage\",\"trackLeaveLockedPage\",\"trackLeaveLockedVideoPage\",\"trackLeavePage\",\"trackLeaveSchoolPage\",\"trackLeaveSportsPage\",\"trackLeaveVideoPage\",\"trackLeaveWeather\",\"trackViewArticle\",\"trackViewAudioPage\",\"trackViewError\",\"trackViewFrontpage\",\"trackViewHealthPage\",\"trackViewLandingpage\",\"trackViewListing\",\"trackViewLockedArticle\",\"trackViewLockedAudioPage\",\"trackViewLockedPage\",\"trackViewLockedVideoPage\",\"trackViewPage\",\"trackViewSchoolPage\",\"trackViewSportsPage\",\"trackViewTitle\",\"trackViewVideoPage\",\"trackViewWeather\",\"trackLegacyViewArticle\",\"trackLegacyViewLoginPoster\",\"trackLegacyViewSalesPoster\",\"trackLegacyViewListing\",\"trackLegacyViewFrontpage\",\"trackLegacyViewPage\",\"trackLegacyViewUIElement\",\"trackLegacyClickUIElement\"];function m(e){return e!==null&&typeof e==\"object\"&&\"type\"in e&&typeof e.type==\"string\"&&e.type.startsWith(k)}function g(e,{target:r,timeout:t,debug:o=()=>{}}){return new Promise((a,i)=>{let c=new MessageChannel,n=t?setTimeout(()=>{c.port1.close(),i(new Error(`Message of type ${e.type} timed out`))},t):void 0,p=s=>{if(o(\"[Pulse Tracker Proxy] Received the response on the MessageChannel\",s),!m(s.data)){o(\"[Pulse Tracker Proxy] Response was not a valid Proxy Message\",s.data);return}s.data.type===l&&(o(\"[Pulse Tracker Proxy] Received an return error response\",s.data.error),clearTimeout(n),c.port1.close(),i(new Error(s.data.error))),o(\"[Pulse Tracker Proxy] Received a valid response\",s.data),clearTimeout(n),c.port1.close(),a(s.data)};c.port1.onmessage=p,o(\"[Pulse Tracker Proxy] Sending message to target window\",e),r.postMessage(e,\"*\",[c.port2])})}var V=\"2.0.0-rc.19\";function u(e){let r=\"tracker\"in e&&typeof e.tracker==\"object\"?e.tracker:{};return{...e,tracker:{...r,proxyVersion:V}}}function w(e,r,t){let o=\"provider\"in e&&typeof e.provider==\"object\"?e.provider:{};return{...e,provider:{...o,component:r,componentVersion:t}}}var d=class{constructor(r,t,o,a){this.target=r,this.component=t,this.componentVersion=o,this.debug=a}track(...r){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",r);let[t,o,...a]=r,i=u(o),c=w(i,this.component,this.componentVersion),n=[t,c,...a];return this.invoke({method:\"track\",args:n})}async invoke(r){this.debug(\"[Pulse Tracker Proxy] Invoking remote function\",r);let t=await g({type:T,payload:r},{target:this.target});if(!m(t))throw this.debug(\"[Pulse Tracker Proxy] Invalid response from proxy\",t),new Error(\"Invalid response from proxy\");if(t.type===l)throw this.debug(\"[Pulse Tracker Proxy] Error response from proxy\",t.error),new Error(t.error);if(t.type===h)return this.debug(\"[Pulse Tracker Proxy] Successful response from proxy\",t.payload),t.payload;throw this.debug(\"[Pulse Tracker Proxy] Unhandled response from proxy\",t),new Error(\"Unexpected response from proxy\")}};var C=Object.fromEntries(f.map(e=>[e,function(...r){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",r);let[t,...o]=r,a=u(t),c=[w(a,this.component,this.componentVersion),...o];return this.invoke({method:e,args:c})}]));function W(){return class extends d{constructor(e,r,t,o){super(e,r,t,o),o(\"[Pulse TPaaS Proxy] Initialized\"),Object.assign(this,C)}}}var A=W();function L({component:e,componentVersion:r,window:t=globalThis.window,target:o=t.parent,timeout:a=5e3,retries:i=3,retryTimeout:c=1e3,debug:n=()=>{}}){if(n(\"[Pulse Tracker Proxy] Trying to establish connection...\",{target:o,timeout:a,retries:i}),!o)return Promise.reject(new Error(\"Target window not provided. Possibly window.parent is not available.\"));let p,s=!1,I=new Promise((P,E)=>{p=setTimeout(()=>{s=!0,n(\"[Pulse Tracker Proxy] Ack timeout. Sorry, target seems to not support the proxy.\"),E(new Error(`Pulse tracker proxy not found within ${a} ms`))},a)}),_=(async()=>{for(let P=0;P<i;P++){if(s)throw n(\"[Pulse Tracker Proxy] Configured timeout has passed before the next attempt\"),new Error(\"Configured timeout has passed before the next attempt.\");try{n(`[Pulse Tracker Proxy] Sending request to target window (attempt: ${P+1})...`),await g({type:x},{target:o,timeout:c})}catch(E){n(`[Pulse Tracker Proxy] Ack Request failed: ${E}`);continue}return clearTimeout(p),n(`[Pulse Tracker Proxy] Ack Request successful (attempt: ${P+1})`),!e||!r?(n(\"[Pulse Tracker Proxy] `component` or `componentVersion` is not set - cannot create pulse tracker.\"),Promise.reject(new Error(\"`component` or `componentVersion` is not set - cannot create pulse tracker.\"))):new A(o,e,r,n)}throw clearTimeout(p),n(\"[Pulse Tracker Proxy] Retries exhausted. Target did not respond. Failing.\"),new Error(\"Failed to establish connection with pulse tracker proxy\")})();return Promise.race([I,_])}var S;window.getPulseTrackerProxy=(S=window.getPulseTrackerProxy)!=null?S:L;return U(G);})();\n"
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=public-scripts-content.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-scripts-content.js","sourceRoot":"","sources":["../../src/public-scripts-content.ts"],"names":[],"mappings":";;;AAAA,4DAA4D;AAC/C,QAAA,sBAAsB,GAAG;IACpC,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"public-scripts-content.js","sourceRoot":"","sources":["../../src/public-scripts-content.ts"],"names":[],"mappings":";;;AAAA,4DAA4D;AAC/C,QAAA,sBAAsB,GAAG;IACpC,mBAAmB,EAAE,gqYAAgqY;IACrrY,qBAAqB,EAAE,muMAAmuM;CAClvM,CAAC"}
|
package/dist/cjs/sps.d.ts
CHANGED
|
@@ -2,7 +2,8 @@ import { type Environment, type SpsParams, type GetPosterByDecisionParams, type
|
|
|
2
2
|
import { type ContentType, type TrackingData, type TrackingParamsProps } from "./tracking/create-tracking-params.js";
|
|
3
3
|
import { SpsPublication } from "./sps/publication.js";
|
|
4
4
|
import { type SPSPosterResponse } from "./apiClient.js";
|
|
5
|
-
import type { PlacementType, PlacementTypeWithOptionalFallback, PlacementTypeWithRequiredFallback } from "./sps/placement.js";
|
|
5
|
+
import type { PlacementType, PlacementTypeWithOptionalFallback, PlacementTypeWithRequiredFallback, PlacementTypeWithStringContent } from "./sps/placement.js";
|
|
6
|
+
import type { GetAccountSdk } from "./utils/login-url.js";
|
|
6
7
|
/**
|
|
7
8
|
* The full poster response enriched with segment names, tracking data, and Pulse event objects.
|
|
8
9
|
* Returned by {@link SPS.getPoster} and {@link SPS.getPosterByDecision}.
|
|
@@ -41,10 +42,11 @@ export type SpsOptions = {
|
|
|
41
42
|
*/
|
|
42
43
|
environment?: Environment;
|
|
43
44
|
/**
|
|
44
|
-
*
|
|
45
|
-
* to the
|
|
45
|
+
* Resolves the Schibsted Account SDK v6 instance, for example `getAccountSdk` from
|
|
46
|
+
* `@schibsted/account-sdk-browser`. Used to generate the `{{loginUrl}}` value. When passed, the
|
|
47
|
+
* deprecated `generateLoginUrl` request option is ignored.
|
|
46
48
|
*/
|
|
47
|
-
|
|
49
|
+
getAccountSdk?: GetAccountSdk;
|
|
48
50
|
};
|
|
49
51
|
/**
|
|
50
52
|
* Options for {@link SPS.getPoster} and {@link SPS.getPosterByDecision}.
|
|
@@ -58,6 +60,8 @@ export type SpsRequestOptions<T extends PlacementType> = {
|
|
|
58
60
|
/**
|
|
59
61
|
* Callback that returns the value substituted for the `{{loginUrl}}` placeholder in the poster HTML.
|
|
60
62
|
* Receives the raw SPS poster response as its argument.
|
|
63
|
+
* Ignored when `getAccountSdk` is passed to the constructor, which generates the login URL instead.
|
|
64
|
+
* @deprecated For Account SDK v6. Pass `getAccountSdk` to the constructor instead.
|
|
61
65
|
*/
|
|
62
66
|
generateLoginUrl?: (poster: SPSPosterResponse<T>) => Promise<string> | string;
|
|
63
67
|
/**
|
|
@@ -94,7 +98,7 @@ export type SpsRequestOptions<T extends PlacementType> = {
|
|
|
94
98
|
timeoutMs?: number;
|
|
95
99
|
};
|
|
96
100
|
/**
|
|
97
|
-
* Options for {@link SPS.
|
|
101
|
+
* Options for {@link SPS.renderFrontpagePlacements} and {@link SPS.renderArticlePagePlacements}.
|
|
98
102
|
* @typeParam T - The placement type
|
|
99
103
|
* @typeParam P - The params shape sent to SPS for this request
|
|
100
104
|
*/
|
|
@@ -107,10 +111,24 @@ export type SpsContextPlacementsOptions<T extends PlacementType, P extends SpsPa
|
|
|
107
111
|
*/
|
|
108
112
|
fallbackPosters?: FallbackPostersMap;
|
|
109
113
|
};
|
|
114
|
+
/**
|
|
115
|
+
* Options for {@link renderFrontpagePlacements} and {@link renderArticlePagePlacements}.
|
|
116
|
+
* The SDK sets `context` in `params` and fires TPaaS Pulse events.
|
|
117
|
+
* @typeParam P - The params shape sent to SPS for this request
|
|
118
|
+
*/
|
|
119
|
+
export type RenderPlacementsOptions<P extends SpsParams = SpsParams> = Pick<SpsOptions, "publication" | "environment"> & Omit<SpsContextPlacementsOptions<PlacementType, P>, "params" | "pulseEvents" | "tracking" | "generateLoginUrl"> & {
|
|
120
|
+
/**
|
|
121
|
+
* Resolves the Schibsted Account SDK v6 instance, for example `getAccountSdk` from
|
|
122
|
+
* `@schibsted/account-sdk-browser`. Used to generate the `{{loginUrl}}` value of the posters.
|
|
123
|
+
*/
|
|
124
|
+
getAccountSdk: GetAccountSdk;
|
|
125
|
+
/** Query params forwarded to the SPS API for the whole request. `context` is set by the SDK. */
|
|
126
|
+
params?: Omit<P, "context">;
|
|
127
|
+
};
|
|
110
128
|
/**
|
|
111
129
|
* Maps placement types to their fallback poster content.
|
|
112
|
-
* Used by {@link SPS.
|
|
113
|
-
* to
|
|
130
|
+
* Used by {@link SPS.renderFrontpagePlacements} and {@link SPS.renderArticlePagePlacements}
|
|
131
|
+
* to render pre-configured posters when the SPS API call fails entirely.
|
|
114
132
|
*/
|
|
115
133
|
export type FallbackPostersMap = {
|
|
116
134
|
[T in PlacementType]?: SPSPosterResponse<T>;
|
|
@@ -134,6 +152,14 @@ export type SpsRequestOptionsWithFallback<T extends PlacementType> = SpsRequestO
|
|
|
134
152
|
fallbackPoster: SPSPosterResponse<T>;
|
|
135
153
|
showFallbackPosterOnNoContent: true;
|
|
136
154
|
};
|
|
155
|
+
/**
|
|
156
|
+
* A placement type and the host element its poster is rendered in.
|
|
157
|
+
* Used by {@link SPS.renderFrontpagePlacements} and {@link SPS.renderArticlePagePlacements}.
|
|
158
|
+
*/
|
|
159
|
+
export type PlacementElement = {
|
|
160
|
+
placementType: PlacementTypeWithStringContent;
|
|
161
|
+
element: HTMLElement;
|
|
162
|
+
};
|
|
137
163
|
/**
|
|
138
164
|
* Options for the dismiss functionality, enabling a placement to be hidden when
|
|
139
165
|
* an element with `data-dismiss-on-click` is clicked inside the placement.
|
|
@@ -168,11 +194,11 @@ export type DefaultBottomBarParams = {
|
|
|
168
194
|
} & SpsParams;
|
|
169
195
|
/**
|
|
170
196
|
* Required parameters for the frontpage context: the combined required parameters of every
|
|
171
|
-
* placement type SPS may include on the frontpage (`takeover`, `pushdown`, `bottombar`, `stripe
|
|
172
|
-
* so a single `params` object satisfies whichever placement types SPS decides to return.
|
|
197
|
+
* placement type SPS may include on the frontpage (`takeover`, `pushdown`, `bottombar`, `stripe`,
|
|
198
|
+
* `infeed`), so a single `params` object satisfies whichever placement types SPS decides to return.
|
|
173
199
|
* Keep in sync with {@link PlacementTypeToParamsMap} and the frontpage placement mix.
|
|
174
200
|
*/
|
|
175
|
-
export type FrontpageParams = ParamsFor<"takeover"> & ParamsFor<"pushdown"> & ParamsFor<"bottombar"> & ParamsFor<"stripe">;
|
|
201
|
+
export type FrontpageParams = ParamsFor<"takeover"> & ParamsFor<"pushdown"> & ParamsFor<"bottombar"> & ParamsFor<"stripe"> & ParamsFor<"infeed">;
|
|
176
202
|
/**
|
|
177
203
|
* Required parameters for the article page context: the combined required parameters of every
|
|
178
204
|
* placement type SPS may include on the article page (`bottombar`, `stripe`), so a single
|
|
@@ -232,13 +258,13 @@ export declare class SPS {
|
|
|
232
258
|
endpoint: string;
|
|
233
259
|
/** The active environment this instance targets. */
|
|
234
260
|
environment: Environment;
|
|
235
|
-
/**
|
|
236
|
-
|
|
261
|
+
/** Account SDK v6 instance resolver, for example `getAccountSdk` from `@schibsted/account-sdk-browser`. */
|
|
262
|
+
private getAccountSdk?;
|
|
237
263
|
/**
|
|
238
264
|
* Creates a new SPS SDK instance.
|
|
239
265
|
* @param options - Configuration options including publication, domain and environment.
|
|
240
266
|
*/
|
|
241
|
-
constructor({ publication, domain, environment,
|
|
267
|
+
constructor({ publication, domain, environment, getAccountSdk, }: SpsOptions);
|
|
242
268
|
private validateClientEnvironment;
|
|
243
269
|
private validateServerEnvironment;
|
|
244
270
|
/**
|
|
@@ -291,6 +317,28 @@ export declare class SPS {
|
|
|
291
317
|
*/
|
|
292
318
|
getPosterByDecision: GetPosterByDecision;
|
|
293
319
|
private enrichPosterResponse;
|
|
320
|
+
/**
|
|
321
|
+
* Fetches priority-ordered placements for the frontpage context and renders each one
|
|
322
|
+
* in an iframe inside its element. Must be called from a browser environment.
|
|
323
|
+
* Also exported as {@link renderFrontpagePlacements}, which needs no SDK instance.
|
|
324
|
+
*
|
|
325
|
+
* @param placements - The placement types to fetch, each with the element to render it in.
|
|
326
|
+
* @param options - The publication and environment to request from, and request options including `params`.
|
|
327
|
+
* @returns The placement types that were rendered.
|
|
328
|
+
*/
|
|
329
|
+
static renderFrontpagePlacements<P extends FrontpageParams = FrontpageParams>(placements: PlacementElement[], options: RenderPlacementsOptions<P>): Promise<PlacementTypeWithStringContent[]>;
|
|
330
|
+
/**
|
|
331
|
+
* Fetches priority-ordered placements for the article page context and renders each one
|
|
332
|
+
* in an iframe inside its element. Must be called from a browser environment.
|
|
333
|
+
* Also exported as {@link renderArticlePagePlacements}, which needs no SDK instance.
|
|
334
|
+
*
|
|
335
|
+
* @param placements - The placement types to fetch, each with the element to render it in.
|
|
336
|
+
* @param options - The publication and environment to request from, and request options including `params`.
|
|
337
|
+
* @returns The placement types that were rendered.
|
|
338
|
+
*/
|
|
339
|
+
static renderArticlePagePlacements<P extends ArticlePageParams = ArticlePageParams>(placements: PlacementElement[], options: RenderPlacementsOptions<P>): Promise<PlacementTypeWithStringContent[]>;
|
|
340
|
+
private static renderContextPlacements;
|
|
341
|
+
private renderPlacements;
|
|
294
342
|
/**
|
|
295
343
|
* Fetches priority-ordered placements (full content) for the frontpage context.
|
|
296
344
|
* Must be called from a browser environment.
|
|
@@ -302,9 +350,7 @@ export declare class SPS {
|
|
|
302
350
|
* @param options - Request options including tracking context, URL rewrite callbacks, and `params`.
|
|
303
351
|
* @returns Array of enriched placements for the frontpage context, fallback posters (if configured) on API failure, or `[]` otherwise.
|
|
304
352
|
*/
|
|
305
|
-
getFrontpagePlacements
|
|
306
|
-
type: PlacementType;
|
|
307
|
-
})[]>;
|
|
353
|
+
private getFrontpagePlacements;
|
|
308
354
|
/**
|
|
309
355
|
* Fetches priority-ordered placements (full content) for the article page context.
|
|
310
356
|
* Must be called from a browser environment.
|
|
@@ -316,9 +362,7 @@ export declare class SPS {
|
|
|
316
362
|
* @param options - Request options including tracking context, URL rewrite callbacks, and `params`.
|
|
317
363
|
* @returns Array of enriched placements for the article page context, fallback posters (if configured) on API failure, or `[]` otherwise.
|
|
318
364
|
*/
|
|
319
|
-
getArticlePagePlacements
|
|
320
|
-
type: PlacementType;
|
|
321
|
-
})[]>;
|
|
365
|
+
private getArticlePagePlacements;
|
|
322
366
|
private enrichContextPlacements;
|
|
323
367
|
private enrichFallbackPosters;
|
|
324
368
|
/**
|
|
@@ -344,4 +388,6 @@ export declare class SPS {
|
|
|
344
388
|
*/
|
|
345
389
|
getArticlePageDecisions<P extends ArticlePageParams = ArticlePageParams>(placementTypes: PlacementType[], options?: SpsContextDecisionsOptions<P>): Promise<Decision<PlacementType>[]>;
|
|
346
390
|
}
|
|
391
|
+
export declare const renderFrontpagePlacements: typeof SPS.renderFrontpagePlacements;
|
|
392
|
+
export declare const renderArticlePagePlacements: typeof SPS.renderArticlePagePlacements;
|
|
347
393
|
export {};
|