@schibsted/sps-sdk 5.1.0 → 5.2.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/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.d.ts +4 -4
- package/dist/cjs/apiClient.js +8 -8
- package/dist/cjs/apiClient.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/sps.d.ts +41 -18
- package/dist/cjs/sps.js +54 -14
- package/dist/cjs/sps.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.d.ts +4 -4
- package/dist/esm/apiClient.js +8 -8
- package/dist/esm/apiClient.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/sps.d.ts +41 -18
- package/dist/esm/sps.js +54 -14
- package/dist/esm/sps.js.map +1 -1
- package/dist/public-scripts/sps-pulse-helpers.min.js +1 -1
- package/package.json +1 -1
package/dist/cjs/sps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sps.js","sourceRoot":"","sources":["../../src/sps.ts"],"names":[],"mappings":";;;AAAA,wBASW;AACX,8EAK2C;AAC3C,uFAG6C;AAE7C,2CAQqB;AAOrB,+CAAgF;AAChF,+CAAyD;
|
|
1
|
+
{"version":3,"file":"sps.js","sourceRoot":"","sources":["../../src/sps.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,44 @@
|
|
|
1
|
+
const resetDocumentSpacing = (doc) => {
|
|
2
|
+
[doc.documentElement, doc.body].forEach((el) => {
|
|
3
|
+
el.style.margin = "0";
|
|
4
|
+
el.style.padding = "0";
|
|
5
|
+
el.style.overflow = "hidden";
|
|
6
|
+
});
|
|
7
|
+
};
|
|
8
|
+
const navigateTopOnLinkClick = (doc) => {
|
|
9
|
+
doc.addEventListener("click", (event) => {
|
|
10
|
+
const anchor = event.target?.closest("a");
|
|
11
|
+
if (!anchor?.href) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
event.preventDefault();
|
|
15
|
+
// Delay navigation so click tracking inside the poster has time to fire
|
|
16
|
+
setTimeout(() => window.top?.location.assign(anchor.href), 100);
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Renders poster content in an iframe that replaces the children of `element`.
|
|
21
|
+
* The iframe grows to the height of its content, and links navigate the top window.
|
|
22
|
+
* Resolves once the iframe has loaded and its first height is applied.
|
|
23
|
+
*/
|
|
24
|
+
export const renderPosterInIframe = (element, iframeId, content) => new Promise((resolve) => {
|
|
25
|
+
const iframe = document.createElement("iframe");
|
|
26
|
+
iframe.id = iframeId;
|
|
27
|
+
iframe.style.border = "0";
|
|
28
|
+
iframe.style.display = "block";
|
|
29
|
+
iframe.style.width = "100%";
|
|
30
|
+
iframe.addEventListener("load", () => {
|
|
31
|
+
const doc = iframe.contentDocument;
|
|
32
|
+
resetDocumentSpacing(doc);
|
|
33
|
+
navigateTopOnLinkClick(doc);
|
|
34
|
+
const updateHeight = () => {
|
|
35
|
+
iframe.style.height = `${doc.body.scrollHeight}px`;
|
|
36
|
+
};
|
|
37
|
+
updateHeight();
|
|
38
|
+
new ResizeObserver(updateHeight).observe(doc.body);
|
|
39
|
+
resolve();
|
|
40
|
+
}, { once: true });
|
|
41
|
+
iframe.srcdoc = content;
|
|
42
|
+
element.replaceChildren(iframe);
|
|
43
|
+
});
|
|
44
|
+
//# 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;AACH,MAAM,CAAC,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"}
|
package/dist/esm/apiClient.d.ts
CHANGED
|
@@ -119,10 +119,10 @@ export type ApiDecision = {
|
|
|
119
119
|
* @param endpoint - The SPS API base endpoint URL.
|
|
120
120
|
* @param params - Optional query params forwarded to the SPS API for the whole request.
|
|
121
121
|
* @param cookies - Optional cookie string forwarded as the `Cookie` request header.
|
|
122
|
-
* @param
|
|
122
|
+
* @param placementTypes - Optional placement types to include in the result.
|
|
123
123
|
* @returns An object with a `placements` array, or `null` on error.
|
|
124
124
|
*/
|
|
125
|
-
export declare const fetchPlacementsByContext: (publication: string, context: "frontpage" | "article", endpoint: string, params?: SpsParams, cookies?: string,
|
|
125
|
+
export declare const fetchPlacementsByContext: (publication: string, context: "frontpage" | "article", endpoint: string, params?: SpsParams, cookies?: string, placementTypes?: PlacementType[], timeoutMs?: number) => Promise<{
|
|
126
126
|
placements: SPSPosterResponseWithPlacementType[];
|
|
127
127
|
} | null>;
|
|
128
128
|
/**
|
|
@@ -133,9 +133,9 @@ export declare const fetchPlacementsByContext: (publication: string, context: "f
|
|
|
133
133
|
* @param endpoint - The SPS API base endpoint URL.
|
|
134
134
|
* @param params - Optional query params forwarded to the SPS API for the whole request.
|
|
135
135
|
* @param cookies - Optional cookie string forwarded as the `Cookie` request header.
|
|
136
|
-
* @param
|
|
136
|
+
* @param placementTypes - Optional placement types to include in the result.
|
|
137
137
|
* @returns An object with a `placements` array, or `{ placements: [] }` on error.
|
|
138
138
|
*/
|
|
139
|
-
export declare const fetchDecisionsByContext: (publication: string, context: "frontpage" | "article", endpoint: string, params?: SpsParams, cookies?: string,
|
|
139
|
+
export declare const fetchDecisionsByContext: (publication: string, context: "frontpage" | "article", endpoint: string, params?: SpsParams, cookies?: string, placementTypes?: PlacementType[]) => Promise<{
|
|
140
140
|
placements: ApiDecision[];
|
|
141
141
|
}>;
|
package/dist/esm/apiClient.js
CHANGED
|
@@ -104,14 +104,14 @@ export const fetchDecision = async (url, params, userJwtToken, cookie) => {
|
|
|
104
104
|
* @param endpoint - The SPS API base endpoint URL.
|
|
105
105
|
* @param params - Optional query params forwarded to the SPS API for the whole request.
|
|
106
106
|
* @param cookies - Optional cookie string forwarded as the `Cookie` request header.
|
|
107
|
-
* @param
|
|
107
|
+
* @param placementTypes - Optional placement types to include in the result.
|
|
108
108
|
* @returns An object with a `placements` array, or `null` on error.
|
|
109
109
|
*/
|
|
110
|
-
export const fetchPlacementsByContext = async (publication, context, endpoint, params, cookies,
|
|
110
|
+
export const fetchPlacementsByContext = async (publication, context, endpoint, params, cookies, placementTypes, timeoutMs) => {
|
|
111
111
|
try {
|
|
112
112
|
const url = new URL(`${endpoint}/${publication}/placements/${context}`);
|
|
113
|
-
|
|
114
|
-
url.searchParams.append("
|
|
113
|
+
placementTypes?.forEach((placementType) => {
|
|
114
|
+
url.searchParams.append("placementTypes[]", placementType);
|
|
115
115
|
});
|
|
116
116
|
if (params) {
|
|
117
117
|
convertParamsToQueryParams(params).forEach((value, key) => {
|
|
@@ -143,14 +143,14 @@ export const fetchPlacementsByContext = async (publication, context, endpoint, p
|
|
|
143
143
|
* @param endpoint - The SPS API base endpoint URL.
|
|
144
144
|
* @param params - Optional query params forwarded to the SPS API for the whole request.
|
|
145
145
|
* @param cookies - Optional cookie string forwarded as the `Cookie` request header.
|
|
146
|
-
* @param
|
|
146
|
+
* @param placementTypes - Optional placement types to include in the result.
|
|
147
147
|
* @returns An object with a `placements` array, or `{ placements: [] }` on error.
|
|
148
148
|
*/
|
|
149
|
-
export const fetchDecisionsByContext = async (publication, context, endpoint, params, cookies,
|
|
149
|
+
export const fetchDecisionsByContext = async (publication, context, endpoint, params, cookies, placementTypes) => {
|
|
150
150
|
try {
|
|
151
151
|
const url = new URL(`${endpoint}/${publication}/placements/${context}/decision`);
|
|
152
|
-
|
|
153
|
-
url.searchParams.append("
|
|
152
|
+
placementTypes?.forEach((placementType) => {
|
|
153
|
+
url.searchParams.append("placementTypes[]", placementType);
|
|
154
154
|
});
|
|
155
155
|
if (params) {
|
|
156
156
|
convertParamsToQueryParams(params).forEach((value, key) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../src/apiClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../src/apiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -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.0.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.1.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";
|
|
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
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Generated from dist/public-scripts — do not edit manually
|
|
2
2
|
export const PUBLIC_SCRIPTS_CONTENT = {
|
|
3
|
-
"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.0.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",
|
|
3
|
+
"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.1.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",
|
|
4
4
|
"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"
|
|
5
5
|
};
|
|
6
6
|
//# sourceMappingURL=public-scripts-content.js.map
|
package/dist/esm/sps.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ 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
6
|
/**
|
|
7
7
|
* The full poster response enriched with segment names, tracking data, and Pulse event objects.
|
|
8
8
|
* Returned by {@link SPS.getPoster} and {@link SPS.getPosterByDecision}.
|
|
@@ -94,15 +94,13 @@ export type SpsRequestOptions<T extends PlacementType> = {
|
|
|
94
94
|
timeoutMs?: number;
|
|
95
95
|
};
|
|
96
96
|
/**
|
|
97
|
-
* Options for {@link SPS.
|
|
97
|
+
* Options for {@link SPS.renderFrontpagePlacements} and {@link SPS.renderArticlePagePlacements}.
|
|
98
98
|
* @typeParam T - The placement type
|
|
99
99
|
* @typeParam P - The params shape sent to SPS for this request
|
|
100
100
|
*/
|
|
101
101
|
export type SpsContextPlacementsOptions<T extends PlacementType, P extends SpsParams = SpsParams> = Omit<SpsRequestOptions<T>, "fallbackPoster" | "showFallbackPosterOnNoContent"> & {
|
|
102
102
|
/** Query params forwarded to the SPS API for the whole request. */
|
|
103
103
|
params?: P;
|
|
104
|
-
/** Placement types to exclude from the priority-ordered result. */
|
|
105
|
-
excludedPlacementTypes?: PlacementType[];
|
|
106
104
|
/**
|
|
107
105
|
* Per-type fallback posters to return when the SPS context API call fails entirely
|
|
108
106
|
* (network error or non-OK response). Each entry is enriched the same way as a real poster.
|
|
@@ -111,8 +109,8 @@ export type SpsContextPlacementsOptions<T extends PlacementType, P extends SpsPa
|
|
|
111
109
|
};
|
|
112
110
|
/**
|
|
113
111
|
* Maps placement types to their fallback poster content.
|
|
114
|
-
* Used by {@link SPS.
|
|
115
|
-
* to
|
|
112
|
+
* Used by {@link SPS.renderFrontpagePlacements} and {@link SPS.renderArticlePagePlacements}
|
|
113
|
+
* to render pre-configured posters when the SPS API call fails entirely.
|
|
116
114
|
*/
|
|
117
115
|
export type FallbackPostersMap = {
|
|
118
116
|
[T in PlacementType]?: SPSPosterResponse<T>;
|
|
@@ -126,8 +124,8 @@ export type SpsContextDecisionsOptions<P extends SpsParams = SpsParams> = {
|
|
|
126
124
|
params?: P;
|
|
127
125
|
/** Pass `req.headers.cookie` when calling server-side. */
|
|
128
126
|
cookies?: string;
|
|
129
|
-
/** Placement types to
|
|
130
|
-
|
|
127
|
+
/** Placement types to include in the priority-ordered result. */
|
|
128
|
+
placementTypes?: PlacementType[];
|
|
131
129
|
};
|
|
132
130
|
/**
|
|
133
131
|
* Variant of {@link SpsRequestOptions} that requires a `fallbackPoster` and forces
|
|
@@ -138,6 +136,14 @@ export type SpsRequestOptionsWithFallback<T extends PlacementType> = SpsRequestO
|
|
|
138
136
|
fallbackPoster: SPSPosterResponse<T>;
|
|
139
137
|
showFallbackPosterOnNoContent: true;
|
|
140
138
|
};
|
|
139
|
+
/**
|
|
140
|
+
* A placement type and the host element its poster is rendered in.
|
|
141
|
+
* Used by {@link SPS.renderFrontpagePlacements} and {@link SPS.renderArticlePagePlacements}.
|
|
142
|
+
*/
|
|
143
|
+
export type PlacementElement = {
|
|
144
|
+
placementType: PlacementTypeWithStringContent;
|
|
145
|
+
element: HTMLElement;
|
|
146
|
+
};
|
|
141
147
|
/**
|
|
142
148
|
* Options for the dismiss functionality, enabling a placement to be hidden when
|
|
143
149
|
* an element with `data-dismiss-on-click` is clicked inside the placement.
|
|
@@ -295,6 +301,25 @@ export declare class SPS {
|
|
|
295
301
|
*/
|
|
296
302
|
getPosterByDecision: GetPosterByDecision;
|
|
297
303
|
private enrichPosterResponse;
|
|
304
|
+
/**
|
|
305
|
+
* Fetches priority-ordered placements for the frontpage context and renders each one
|
|
306
|
+
* in an iframe inside its element. Must be called from a browser environment.
|
|
307
|
+
*
|
|
308
|
+
* @param placements - The placement types to fetch, each with the element to render it in.
|
|
309
|
+
* @param options - Optional request options including tracking context, URL rewrite callbacks, and `params`.
|
|
310
|
+
* @returns The placement types that were rendered.
|
|
311
|
+
*/
|
|
312
|
+
renderFrontpagePlacements<P extends FrontpageParams = FrontpageParams>(placements: PlacementElement[], options?: SpsContextPlacementsOptions<PlacementType, P>): Promise<PlacementTypeWithStringContent[]>;
|
|
313
|
+
/**
|
|
314
|
+
* Fetches priority-ordered placements for the article page context and renders each one
|
|
315
|
+
* in an iframe inside its element. Must be called from a browser environment.
|
|
316
|
+
*
|
|
317
|
+
* @param placements - The placement types to fetch, each with the element to render it in.
|
|
318
|
+
* @param options - Optional request options including tracking context, URL rewrite callbacks, and `params`.
|
|
319
|
+
* @returns The placement types that were rendered.
|
|
320
|
+
*/
|
|
321
|
+
renderArticlePagePlacements<P extends ArticlePageParams = ArticlePageParams>(placements: PlacementElement[], options?: SpsContextPlacementsOptions<PlacementType, P>): Promise<PlacementTypeWithStringContent[]>;
|
|
322
|
+
private renderPlacements;
|
|
298
323
|
/**
|
|
299
324
|
* Fetches priority-ordered placements (full content) for the frontpage context.
|
|
300
325
|
* Must be called from a browser environment.
|
|
@@ -302,12 +327,11 @@ export declare class SPS {
|
|
|
302
327
|
* Applies the same post-processing as {@link SPS.getPoster}: rewrites login/redirect
|
|
303
328
|
* placeholder variables and appends tracking search params to links.
|
|
304
329
|
*
|
|
305
|
-
* @param
|
|
330
|
+
* @param placementTypes - The placement types to request.
|
|
331
|
+
* @param options - Request options including tracking context, URL rewrite callbacks, and `params`.
|
|
306
332
|
* @returns Array of enriched placements for the frontpage context, fallback posters (if configured) on API failure, or `[]` otherwise.
|
|
307
333
|
*/
|
|
308
|
-
getFrontpagePlacements
|
|
309
|
-
type: PlacementType;
|
|
310
|
-
})[]>;
|
|
334
|
+
private getFrontpagePlacements;
|
|
311
335
|
/**
|
|
312
336
|
* Fetches priority-ordered placements (full content) for the article page context.
|
|
313
337
|
* Must be called from a browser environment.
|
|
@@ -315,12 +339,11 @@ export declare class SPS {
|
|
|
315
339
|
* Applies the same post-processing as {@link SPS.getPoster}: rewrites login/redirect
|
|
316
340
|
* placeholder variables and appends tracking search params to links.
|
|
317
341
|
*
|
|
318
|
-
* @param
|
|
342
|
+
* @param placementTypes - The placement types to request.
|
|
343
|
+
* @param options - Request options including tracking context, URL rewrite callbacks, and `params`.
|
|
319
344
|
* @returns Array of enriched placements for the article page context, fallback posters (if configured) on API failure, or `[]` otherwise.
|
|
320
345
|
*/
|
|
321
|
-
getArticlePagePlacements
|
|
322
|
-
type: PlacementType;
|
|
323
|
-
})[]>;
|
|
346
|
+
private getArticlePagePlacements;
|
|
324
347
|
private enrichContextPlacements;
|
|
325
348
|
private enrichFallbackPosters;
|
|
326
349
|
/**
|
|
@@ -329,7 +352,7 @@ export declare class SPS {
|
|
|
329
352
|
*
|
|
330
353
|
* Returns values compatible with {@link SPS.getPosterByDecision}.
|
|
331
354
|
*
|
|
332
|
-
* @param options - Optional. Pass `cookies: req.headers.cookie` when calling server-side, and/or `params`/`
|
|
355
|
+
* @param options - Optional. Pass `cookies: req.headers.cookie` when calling server-side, and/or `params`/`placementTypes`.
|
|
333
356
|
* @returns Array of decisions for the frontpage context, or `[]` on error.
|
|
334
357
|
*/
|
|
335
358
|
getFrontpageDecisions<P extends FrontpageParams = FrontpageParams>(options?: SpsContextDecisionsOptions<P>): Promise<Decision<PlacementType>[]>;
|
|
@@ -339,7 +362,7 @@ export declare class SPS {
|
|
|
339
362
|
*
|
|
340
363
|
* Returns values compatible with {@link SPS.getPosterByDecision}.
|
|
341
364
|
*
|
|
342
|
-
* @param options - Optional. Pass `cookies: req.headers.cookie` when calling server-side, and/or `params`/`
|
|
365
|
+
* @param options - Optional. Pass `cookies: req.headers.cookie` when calling server-side, and/or `params`/`placementTypes`.
|
|
343
366
|
* @returns Array of decisions for the article page context, or `[]` on error.
|
|
344
367
|
*/
|
|
345
368
|
getArticlePageDecisions<P extends ArticlePageParams = ArticlePageParams>(options?: SpsContextDecisionsOptions<P>): Promise<Decision<PlacementType>[]>;
|