@schibsted/sps-sdk 4.13.0 → 4.14.0-CBT-20262.2
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/public-scripts-content.d.ts +1 -1
- package/dist/cjs/public-scripts-content.js +1 -1
- package/dist/cjs/sps.d.ts +8 -1
- package/dist/cjs/sps.js +5 -2
- package/dist/cjs/sps.js.map +1 -1
- package/dist/cjs/utils/placementCookies.d.ts +1 -1
- package/dist/cjs/utils/placementCookies.js +3 -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/public-scripts-content.d.ts +1 -1
- package/dist/esm/public-scripts-content.js +1 -1
- package/dist/esm/sps.d.ts +8 -1
- package/dist/esm/sps.js +5 -2
- package/dist/esm/sps.js.map +1 -1
- package/dist/esm/utils/placementCookies.d.ts +1 -1
- package/dist/esm/utils/placementCookies.js +3 -2
- package/dist/esm/utils/placementCookies.js.map +1 -1
- package/dist/public-scripts/sps-pulse-helpers.min.js +1 -1
- package/package.json +1 -1
|
@@ -10,5 +10,5 @@ export interface AddDismissOptions {
|
|
|
10
10
|
*/
|
|
11
11
|
hideDuration: number;
|
|
12
12
|
}
|
|
13
|
-
export declare const addDismiss: (placementType: PlacementType, iframeId: string, options: AddDismissOptions) => void;
|
|
13
|
+
export declare const addDismiss: (placementType: PlacementType, iframeId: string, options: AddDismissOptions, domain?: string) => void;
|
|
14
14
|
export declare const getDismissScript: (placementType: PlacementTypeWithStringContent) => string;
|
|
@@ -14,7 +14,7 @@ const isDismissed = (placementType, iframeId) => {
|
|
|
14
14
|
return cookieName in (0, placementCookies_1.parseCookies)(document.cookie);
|
|
15
15
|
};
|
|
16
16
|
exports.isDismissed = isDismissed;
|
|
17
|
-
const addDismiss = (placementType, iframeId, options) => {
|
|
17
|
+
const addDismiss = (placementType, iframeId, options, domain) => {
|
|
18
18
|
const key = `${placementType}:${iframeId}`;
|
|
19
19
|
const alreadyRegistered = dismissListenerKeys.has(key);
|
|
20
20
|
dismissListenerKeys.set(key, options);
|
|
@@ -28,7 +28,7 @@ const addDismiss = (placementType, iframeId, options) => {
|
|
|
28
28
|
if (event.data.type === `${DISMISS_KEY}:${placementType}`) {
|
|
29
29
|
console.log("[SPS sdk] - Dismiss issued by user", event);
|
|
30
30
|
const currentOptions = dismissListenerKeys.get(key);
|
|
31
|
-
(0, placementCookies_1.setDismissCookie)(placementType, currentOptions.hideDuration, iframeId);
|
|
31
|
+
(0, placementCookies_1.setDismissCookie)(placementType, currentOptions.hideDuration, iframeId, domain);
|
|
32
32
|
document.getElementById(iframeId)?.remove();
|
|
33
33
|
}
|
|
34
34
|
});
|
|
@@ -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;AAE1D,MAAM,kBAAkB,GAAG,CAAC,aAA4B,EAAU,EAAE,CACzE,OAAO,aAAa,SAAS,CAAC;AADnB,QAAA,kBAAkB,sBACC;AAEzB,MAAM,WAAW,GAAG,CAAC,aAA4B,EAAE,QAAiB,EAAW,EAAE;IACtF,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,uCAAoB,EACrC,aAAa,EACb,QAAQ,IAAI,IAAA,0BAAkB,EAAC,aAAa,CAAC,CAC9C,CAAC;IACF,OAAO,UAAU,IAAI,IAAA,+BAAY,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC,CAAC;AAVW,QAAA,WAAW,eAUtB;AAYK,MAAM,UAAU,GAAG,CACxB,aAA4B,EAC5B,QAAgB,EAChB,OAA0B,
|
|
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;AAE1D,MAAM,kBAAkB,GAAG,CAAC,aAA4B,EAAU,EAAE,CACzE,OAAO,aAAa,SAAS,CAAC;AADnB,QAAA,kBAAkB,sBACC;AAEzB,MAAM,WAAW,GAAG,CAAC,aAA4B,EAAE,QAAiB,EAAW,EAAE;IACtF,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,uCAAoB,EACrC,aAAa,EACb,QAAQ,IAAI,IAAA,0BAAkB,EAAC,aAAa,CAAC,CAC9C,CAAC;IACF,OAAO,UAAU,IAAI,IAAA,+BAAY,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC,CAAC;AAVW,QAAA,WAAW,eAUtB;AAYK,MAAM,UAAU,GAAG,CACxB,aAA4B,EAC5B,QAAgB,EAChB,OAA0B,EAC1B,MAAe,EACT,EAAE;IACR,MAAM,GAAG,GAAG,GAAG,aAAa,IAAI,QAAQ,EAAE,CAAC;IAC3C,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvD,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAEtC,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,KAAK;QAChD,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,WAAW,IAAI,aAAa,EAAE,EAAE,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,cAAc,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;YACrD,IAAA,mCAAgB,EAAC,aAAa,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC/E,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA1BW,QAAA,UAAU,cA0BrB;AAEK,MAAM,gBAAgB,GAAG,CAAC,aAA6C,EAAU,EAAE,CACxF;;;;;;;;;qBASmB,WAAW,IAAI,aAAa;;;;;;GAM9C,CAAC;AAhBS,QAAA,gBAAgB,oBAgBzB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const PUBLIC_SCRIPTS_CONTENT: {
|
|
2
|
-
readonly "sps-pulse-helpers": "\"use strict\";var SpsPulseHelpersBundle=(()=>{var W=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var oe=Object.prototype.hasOwnProperty;var ne=(e,t,r,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of re(t))!oe.call(e,o)&&o!==r&&W(e,o,{get:()=>t[o],enumerable:!(n=te(t,o))||n.enumerable});return e};var se=e=>ne(W({},\"__esModule\",{value:!0}),e);var ge={};var y=\"pulse-tracker-proxy\",ae=`${y}:request`,Pe=`${y}:ack`,H=`${y}:invoke`,G=`${y}:return`,S=`${y}:return-error`,F=[\"trackAnonymousViewUIElement\",\"trackEngagementAd\",\"trackEngagementAffiliate\",\"trackEngagementAudio\",\"trackEngagementForm\",\"trackEngagementHealthUIElement\",\"trackEngagementOffer\",\"trackEngagementSportsUIElement\",\"trackEngagementTeaser\",\"trackEngagementTvModule\",\"trackEngagementUIElement\",\"trackEngagementVideo\",\"trackEngagementVideoAd\",\"trackEngagementWidget\",\"trackCompletedHealthAction\",\"trackImpressionAd\",\"trackImpressionAdSlot\",\"trackImpressionAffiliate\",\"trackImpressionForm\",\"trackImpressionHealthUIElement\",\"trackImpressionOffer\",\"trackImpressionPlayer\",\"trackImpressionSportsUIElement\",\"trackImpressionTeaser\",\"trackImpressionUIElement\",\"trackImpressionWidget\",\"trackLoadAd\",\"trackRequestAd\",\"trackLeaveArticle\",\"trackLeaveAudioPage\",\"trackLeaveError\",\"trackLeaveFrontpage\",\"trackLeaveLandingpage\",\"trackLeaveListing\",\"trackLeaveLockedArticle\",\"trackLeaveLockedAudioPage\",\"trackLeaveLockedPage\",\"trackLeaveLockedVideoPage\",\"trackLeavePage\",\"trackLeaveSportsPage\",\"trackLeaveVideoPage\",\"trackLeaveWeather\",\"trackViewArticle\",\"trackViewAudioPage\",\"trackViewError\",\"trackViewFrontpage\",\"trackViewHealthPage\",\"trackViewLandingpage\",\"trackViewListing\",\"trackViewLockedArticle\",\"trackViewLockedAudioPage\",\"trackViewLockedPage\",\"trackViewLockedVideoPage\",\"trackViewPage\",\"trackViewSportsPage\",\"trackViewTitle\",\"trackViewVideoPage\",\"trackViewWeather\",\"trackLegacyViewArticle\",\"trackLegacyViewLoginPoster\",\"trackLegacyViewSalesPoster\",\"trackLegacyViewListing\",\"trackLegacyViewFrontpage\",\"trackLegacyViewPage\",\"trackLegacyViewUIElement\",\"trackLegacyClickUIElement\"];function L(e){return e!==null&&typeof e==\"object\"&&\"type\"in e&&typeof e.type==\"string\"&&e.type.startsWith(y)}function I(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),!L(s.data)){n(\"[Pulse Tracker Proxy] Response was not a valid Proxy Message\",s.data);return}s.data.type===S&&(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 D=\"2.0.0-rc.18\";function C(e){let t=\"tracker\"in e&&typeof e.tracker==\"object\"?e.tracker:{};return{...e,tracker:{...t,proxyVersion:D}}}function O(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=C(n),a=O(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 I({type:H,payload:t},{target:this.target});if(!L(r))throw this.debug(\"[Pulse Tracker Proxy] Invalid response from proxy\",r),new Error(\"Invalid response from proxy\");if(r.type===S)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 ie=Object.fromEntries(F.map(e=>[e,function(...t){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",t);let[r,...n]=t,o=C(r),a=[O(o,this.component,this.componentVersion),...n];return this.invoke({method:e,args:a})}]));function ce(){return class extends v{constructor(e,t,r,n){super(e,t,r,n),n(\"[Pulse TPaaS Proxy] Initialized\"),Object.assign(this,ie)}}}var pe=ce();var le=e=>e===\"payment.schibsted.com\"||e.startsWith(\"bestilling.\")||e===\"pay.pre.schibsted.digital\"||e.startsWith(\"test-bestilling.\"),me=e=>e===\"login.schibsted.com\"||e===\"identity-pre.schibsted.com\",q=e=>{var t;try{let n=new URL((t=e.getAttribute(\"href\"))!=null?t:\"\").hostname;if(me(n))return\"Login\";if(le(n))return\"Purchase\"}catch{return}};var Y=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 V=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 K(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=\"\",w=0;function k(P){var T,x,E,_,M;try{let h=P.target,f=(T=h==null?void 0:h.closest)==null?void 0:T.call(h,\"a\");if(!f)return;let b=f.textContent||f.getAttribute(\"href\")||`${p} button`,U=`a|${b}`,$=Date.now();if(U===d&&$-w<g)return;d=U,w=$;let A=q(f),N=A===\"Purchase\"?Y(f):[];l.tpaas&&e.trackEngagementOffer({placement:{containerName:\"page\",offerPlacement:p},object:{objectId:n,objectSdrn:r,campaign:o,name:m,offerCodes:N,offerType:V(c)},...i?{experiments:[{experimentSdrn:`${r}:experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a||\"\"}]}:{},engagement:{action:\"Click\",elementName:b},page:{},provider:{stage:\"Pre\"},target:{info:{url:(x=f.getAttribute(\"href\"))!=null?x:\"\"}}}),l.legacy&&e.trackLegacyClickUIElement({object:{id:u(b),elementType:\"Button\",name:b,containerName:\"Page\",custom:{...s==null?void 0:s.offerData,offerCodes:N}},...s?{origin:s.pulseOrigin}:{},target:{url:(M=(_=(E=f.getAttribute(\"href\"))==null?void 0:E.split(\"?\"))==null?void 0:_[0])!=null?M:\"\"},...A?{intent:A}:{},...i?{experiments:[{id:`experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a}]}:{}})}catch{}}return document.addEventListener(\"click\",k,!0),()=>document.removeEventListener(\"click\",k,!0)}function B(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:V(a)},...s?{experiments:[{experimentSdrn:`${r}:experiment:${u(s)}`,name:s,platform:\"SPS\",variant:p||\"\"}]}:{},page:{},provider:{stage:\"Pre\"},target:{info:{}}}),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}:{}})}async function z(e,t,r){let{placementType:n,legacy:o,pulseEvents:c}=t,a=window.location.pathname,i=`landingpage-${n===\"campaignpage\"?\"CAMPAIGN\":\"STATIC\"}-${j(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:{},provider:{stage:\"Pre\"}},{leaveTracking:{objectElement:\"body\",pageElement:\"body\",objectResizable:!1}})}var R=e=>e===\"campaignpage\"||e===\"staticpage\";var X={name:\"@schibsted/sps-sdk\",version:\"4.12.1\",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.18\",\"@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\"},dependencies:{\"@schibsted/consent-url-utils\":\"^2.0.0\"}};var Q=!1,J=!1,Z=\"script[data-sps-pulse-config='true']\",u=e=>e.toLowerCase().replace(/ /g,\"-\").replace(/[^-a-z:0-9]/g,\"\"),j=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 ee(){if(console.log(\"[SPS-Pulse-Helpers] boot initiated\"),Q)return;Q=!0;let e=null;try{let t=document.querySelector(Z);if(!t){console.warn(`[SPS-Pulse-Helpers] Config script tag not found with selector ${Z}`);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=R(r)?j(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:X.version});K(i,e,a,p);let s=k=>{J||(J=!0,B(i,e,a,p,k))};if(R(r)){await z(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,w=new l(k=>{var E;let P=k[0],T=(E=P==null?void 0:P.intersectionRatio)!=null?E:0,x=(P==null?void 0:P.isIntersecting)&&T>=1/3;d&&(d=!1,g=x?\"Above\":\"Below\"),x&&(w.disconnect(),s(g))},{root:null,threshold:[0,1/3]});w.observe(m)}catch(t){console.warn(\"[SPS-Pulse-Helpers] boot failed\",t)}}ee();return se(ge);})();\n";
|
|
2
|
+
readonly "sps-pulse-helpers": "\"use strict\";var SpsPulseHelpersBundle=(()=>{var W=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var oe=Object.prototype.hasOwnProperty;var ne=(e,t,r,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of re(t))!oe.call(e,o)&&o!==r&&W(e,o,{get:()=>t[o],enumerable:!(n=te(t,o))||n.enumerable});return e};var se=e=>ne(W({},\"__esModule\",{value:!0}),e);var ge={};var y=\"pulse-tracker-proxy\",ae=`${y}:request`,Pe=`${y}:ack`,H=`${y}:invoke`,G=`${y}:return`,S=`${y}:return-error`,F=[\"trackAnonymousViewUIElement\",\"trackEngagementAd\",\"trackEngagementAffiliate\",\"trackEngagementAudio\",\"trackEngagementForm\",\"trackEngagementHealthUIElement\",\"trackEngagementOffer\",\"trackEngagementSportsUIElement\",\"trackEngagementTeaser\",\"trackEngagementTvModule\",\"trackEngagementUIElement\",\"trackEngagementVideo\",\"trackEngagementVideoAd\",\"trackEngagementWidget\",\"trackCompletedHealthAction\",\"trackImpressionAd\",\"trackImpressionAdSlot\",\"trackImpressionAffiliate\",\"trackImpressionForm\",\"trackImpressionHealthUIElement\",\"trackImpressionOffer\",\"trackImpressionPlayer\",\"trackImpressionSportsUIElement\",\"trackImpressionTeaser\",\"trackImpressionUIElement\",\"trackImpressionWidget\",\"trackLoadAd\",\"trackRequestAd\",\"trackLeaveArticle\",\"trackLeaveAudioPage\",\"trackLeaveError\",\"trackLeaveFrontpage\",\"trackLeaveLandingpage\",\"trackLeaveListing\",\"trackLeaveLockedArticle\",\"trackLeaveLockedAudioPage\",\"trackLeaveLockedPage\",\"trackLeaveLockedVideoPage\",\"trackLeavePage\",\"trackLeaveSportsPage\",\"trackLeaveVideoPage\",\"trackLeaveWeather\",\"trackViewArticle\",\"trackViewAudioPage\",\"trackViewError\",\"trackViewFrontpage\",\"trackViewHealthPage\",\"trackViewLandingpage\",\"trackViewListing\",\"trackViewLockedArticle\",\"trackViewLockedAudioPage\",\"trackViewLockedPage\",\"trackViewLockedVideoPage\",\"trackViewPage\",\"trackViewSportsPage\",\"trackViewTitle\",\"trackViewVideoPage\",\"trackViewWeather\",\"trackLegacyViewArticle\",\"trackLegacyViewLoginPoster\",\"trackLegacyViewSalesPoster\",\"trackLegacyViewListing\",\"trackLegacyViewFrontpage\",\"trackLegacyViewPage\",\"trackLegacyViewUIElement\",\"trackLegacyClickUIElement\"];function L(e){return e!==null&&typeof e==\"object\"&&\"type\"in e&&typeof e.type==\"string\"&&e.type.startsWith(y)}function I(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),!L(s.data)){n(\"[Pulse Tracker Proxy] Response was not a valid Proxy Message\",s.data);return}s.data.type===S&&(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 D=\"2.0.0-rc.18\";function C(e){let t=\"tracker\"in e&&typeof e.tracker==\"object\"?e.tracker:{};return{...e,tracker:{...t,proxyVersion:D}}}function O(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=C(n),a=O(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 I({type:H,payload:t},{target:this.target});if(!L(r))throw this.debug(\"[Pulse Tracker Proxy] Invalid response from proxy\",r),new Error(\"Invalid response from proxy\");if(r.type===S)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 ie=Object.fromEntries(F.map(e=>[e,function(...t){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",t);let[r,...n]=t,o=C(r),a=[O(o,this.component,this.componentVersion),...n];return this.invoke({method:e,args:a})}]));function ce(){return class extends v{constructor(e,t,r,n){super(e,t,r,n),n(\"[Pulse TPaaS Proxy] Initialized\"),Object.assign(this,ie)}}}var pe=ce();var le=e=>e===\"payment.schibsted.com\"||e.startsWith(\"bestilling.\")||e===\"pay.pre.schibsted.digital\"||e.startsWith(\"test-bestilling.\"),me=e=>e===\"login.schibsted.com\"||e===\"identity-pre.schibsted.com\",q=e=>{var t;try{let n=new URL((t=e.getAttribute(\"href\"))!=null?t:\"\").hostname;if(me(n))return\"Login\";if(le(n))return\"Purchase\"}catch{return}};var Y=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 V=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 K(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=\"\",w=0;function k(P){var T,x,E,_,M;try{let h=P.target,f=(T=h==null?void 0:h.closest)==null?void 0:T.call(h,\"a\");if(!f)return;let b=f.textContent||f.getAttribute(\"href\")||`${p} button`,U=`a|${b}`,$=Date.now();if(U===d&&$-w<g)return;d=U,w=$;let A=q(f),N=A===\"Purchase\"?Y(f):[];l.tpaas&&e.trackEngagementOffer({placement:{containerName:\"page\",offerPlacement:p},object:{objectId:n,objectSdrn:r,campaign:o,name:m,offerCodes:N,offerType:V(c)},...i?{experiments:[{experimentSdrn:`${r}:experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a||\"\"}]}:{},engagement:{action:\"Click\",elementName:b},page:{},provider:{stage:\"Pre\"},target:{info:{url:(x=f.getAttribute(\"href\"))!=null?x:\"\"}}}),l.legacy&&e.trackLegacyClickUIElement({object:{id:u(b),elementType:\"Button\",name:b,containerName:\"Page\",custom:{...s==null?void 0:s.offerData,offerCodes:N}},...s?{origin:s.pulseOrigin}:{},target:{url:(M=(_=(E=f.getAttribute(\"href\"))==null?void 0:E.split(\"?\"))==null?void 0:_[0])!=null?M:\"\"},...A?{intent:A}:{},...i?{experiments:[{id:`experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a}]}:{}})}catch{}}return document.addEventListener(\"click\",k,!0),()=>document.removeEventListener(\"click\",k,!0)}function B(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:V(a)},...s?{experiments:[{experimentSdrn:`${r}:experiment:${u(s)}`,name:s,platform:\"SPS\",variant:p||\"\"}]}:{},page:{},provider:{stage:\"Pre\"},target:{info:{}}}),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}:{}})}async function z(e,t,r){let{placementType:n,legacy:o,pulseEvents:c}=t,a=window.location.pathname,i=`landingpage-${n===\"campaignpage\"?\"CAMPAIGN\":\"STATIC\"}-${j(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:{},provider:{stage:\"Pre\"}},{leaveTracking:{objectElement:\"body\",pageElement:\"body\",objectResizable:!1}})}var R=e=>e===\"campaignpage\"||e===\"staticpage\";var X={name:\"@schibsted/sps-sdk\",version:\"4.13.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.18\",\"@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\"},dependencies:{\"@schibsted/consent-url-utils\":\"^2.0.0\"}};var Q=!1,J=!1,Z=\"script[data-sps-pulse-config='true']\",u=e=>e.toLowerCase().replace(/ /g,\"-\").replace(/[^-a-z:0-9]/g,\"\"),j=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 ee(){if(console.log(\"[SPS-Pulse-Helpers] boot initiated\"),Q)return;Q=!0;let e=null;try{let t=document.querySelector(Z);if(!t){console.warn(`[SPS-Pulse-Helpers] Config script tag not found with selector ${Z}`);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=R(r)?j(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:X.version});K(i,e,a,p);let s=k=>{J||(J=!0,B(i,e,a,p,k))};if(R(r)){await z(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,w=new l(k=>{var E;let P=k[0],T=(E=P==null?void 0:P.intersectionRatio)!=null?E:0,x=(P==null?void 0:P.isIntersecting)&&T>=1/3;d&&(d=!1,g=x?\"Above\":\"Below\"),x&&(w.disconnect(),s(g))},{root:null,threshold:[0,1/3]});w.observe(m)}catch(t){console.warn(\"[SPS-Pulse-Helpers] boot failed\",t)}}ee();return se(ge);})();\n";
|
|
3
3
|
readonly "pulse-tracker-proxy": "\"use strict\";var PulseTrackerProxyBundle=(()=>{var w=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var O=(e,r,t,o)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let a of M(r))!v.call(e,a)&&a!==t&&w(e,a,{get:()=>r[a],enumerable:!(o=R(r,a))||o.enumerable});return e};var U=e=>O(w({},\"__esModule\",{value:!0}),e);var G={};var k=\"pulse-tracker-proxy\",x=`${k}:request`,H=`${k}:ack`,T=`${k}:invoke`,f=`${k}:return`,l=`${k}:return-error`,h=[\"trackAnonymousViewUIElement\",\"trackEngagementAd\",\"trackEngagementAffiliate\",\"trackEngagementAudio\",\"trackEngagementForm\",\"trackEngagementHealthUIElement\",\"trackEngagementOffer\",\"trackEngagementSportsUIElement\",\"trackEngagementTeaser\",\"trackEngagementTvModule\",\"trackEngagementUIElement\",\"trackEngagementVideo\",\"trackEngagementVideoAd\",\"trackEngagementWidget\",\"trackCompletedHealthAction\",\"trackImpressionAd\",\"trackImpressionAdSlot\",\"trackImpressionAffiliate\",\"trackImpressionForm\",\"trackImpressionHealthUIElement\",\"trackImpressionOffer\",\"trackImpressionPlayer\",\"trackImpressionSportsUIElement\",\"trackImpressionTeaser\",\"trackImpressionUIElement\",\"trackImpressionWidget\",\"trackLoadAd\",\"trackRequestAd\",\"trackLeaveArticle\",\"trackLeaveAudioPage\",\"trackLeaveError\",\"trackLeaveFrontpage\",\"trackLeaveLandingpage\",\"trackLeaveListing\",\"trackLeaveLockedArticle\",\"trackLeaveLockedAudioPage\",\"trackLeaveLockedPage\",\"trackLeaveLockedVideoPage\",\"trackLeavePage\",\"trackLeaveSportsPage\",\"trackLeaveVideoPage\",\"trackLeaveWeather\",\"trackViewArticle\",\"trackViewAudioPage\",\"trackViewError\",\"trackViewFrontpage\",\"trackViewHealthPage\",\"trackViewLandingpage\",\"trackViewListing\",\"trackViewLockedArticle\",\"trackViewLockedAudioPage\",\"trackViewLockedPage\",\"trackViewLockedVideoPage\",\"trackViewPage\",\"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 d(e,{target:r,timeout:t,debug:o=()=>{}}){return new Promise((a,i)=>{let s=new MessageChannel,n=t?setTimeout(()=>{s.port1.close(),i(new Error(`Message of type ${e.type} timed out`))},t):void 0,p=c=>{if(o(\"[Pulse Tracker Proxy] Received the response on the MessageChannel\",c),!m(c.data)){o(\"[Pulse Tracker Proxy] Response was not a valid Proxy Message\",c.data);return}c.data.type===l&&(o(\"[Pulse Tracker Proxy] Received an return error response\",c.data.error),clearTimeout(n),s.port1.close(),i(new Error(c.data.error))),o(\"[Pulse Tracker Proxy] Received a valid response\",c.data),clearTimeout(n),s.port1.close(),a(c.data)};s.port1.onmessage=p,o(\"[Pulse Tracker Proxy] Sending message to target window\",e),r.postMessage(e,\"*\",[s.port2])})}var V=\"2.0.0-rc.18\";function E(e){let r=\"tracker\"in e&&typeof e.tracker==\"object\"?e.tracker:{};return{...e,tracker:{...r,proxyVersion:V}}}function y(e,r,t){let o=\"provider\"in e&&typeof e.provider==\"object\"?e.provider:{};return{...e,provider:{...o,component:r,componentVersion:t}}}var g=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=E(o),s=y(i,this.component,this.componentVersion),n=[t,s,...a];return this.invoke({method:\"track\",args:n})}async invoke(r){this.debug(\"[Pulse Tracker Proxy] Invoking remote function\",r);let t=await d({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===f)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(h.map(e=>[e,function(...r){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",r);let[t,...o]=r,a=E(t),s=[y(a,this.component,this.componentVersion),...o];return this.invoke({method:e,args:s})}]));function W(){return class extends g{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:s=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,c=!1,I=new Promise((P,u)=>{p=setTimeout(()=>{c=!0,n(\"[Pulse Tracker Proxy] Ack timeout. Sorry, target seems to not support the proxy.\"),u(new Error(`Pulse tracker proxy not found within ${a} ms`))},a)}),_=(async()=>{for(let P=0;P<i;P++){if(c)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 d({type:x},{target:o,timeout:s})}catch(u){n(`[Pulse Tracker Proxy] Ack Request failed: ${u}`);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 W=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var oe=Object.prototype.hasOwnProperty;var ne=(e,t,r,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of re(t))!oe.call(e,o)&&o!==r&&W(e,o,{get:()=>t[o],enumerable:!(n=te(t,o))||n.enumerable});return e};var se=e=>ne(W({},\"__esModule\",{value:!0}),e);var ge={};var y=\"pulse-tracker-proxy\",ae=`${y}:request`,Pe=`${y}:ack`,H=`${y}:invoke`,G=`${y}:return`,S=`${y}:return-error`,F=[\"trackAnonymousViewUIElement\",\"trackEngagementAd\",\"trackEngagementAffiliate\",\"trackEngagementAudio\",\"trackEngagementForm\",\"trackEngagementHealthUIElement\",\"trackEngagementOffer\",\"trackEngagementSportsUIElement\",\"trackEngagementTeaser\",\"trackEngagementTvModule\",\"trackEngagementUIElement\",\"trackEngagementVideo\",\"trackEngagementVideoAd\",\"trackEngagementWidget\",\"trackCompletedHealthAction\",\"trackImpressionAd\",\"trackImpressionAdSlot\",\"trackImpressionAffiliate\",\"trackImpressionForm\",\"trackImpressionHealthUIElement\",\"trackImpressionOffer\",\"trackImpressionPlayer\",\"trackImpressionSportsUIElement\",\"trackImpressionTeaser\",\"trackImpressionUIElement\",\"trackImpressionWidget\",\"trackLoadAd\",\"trackRequestAd\",\"trackLeaveArticle\",\"trackLeaveAudioPage\",\"trackLeaveError\",\"trackLeaveFrontpage\",\"trackLeaveLandingpage\",\"trackLeaveListing\",\"trackLeaveLockedArticle\",\"trackLeaveLockedAudioPage\",\"trackLeaveLockedPage\",\"trackLeaveLockedVideoPage\",\"trackLeavePage\",\"trackLeaveSportsPage\",\"trackLeaveVideoPage\",\"trackLeaveWeather\",\"trackViewArticle\",\"trackViewAudioPage\",\"trackViewError\",\"trackViewFrontpage\",\"trackViewHealthPage\",\"trackViewLandingpage\",\"trackViewListing\",\"trackViewLockedArticle\",\"trackViewLockedAudioPage\",\"trackViewLockedPage\",\"trackViewLockedVideoPage\",\"trackViewPage\",\"trackViewSportsPage\",\"trackViewTitle\",\"trackViewVideoPage\",\"trackViewWeather\",\"trackLegacyViewArticle\",\"trackLegacyViewLoginPoster\",\"trackLegacyViewSalesPoster\",\"trackLegacyViewListing\",\"trackLegacyViewFrontpage\",\"trackLegacyViewPage\",\"trackLegacyViewUIElement\",\"trackLegacyClickUIElement\"];function L(e){return e!==null&&typeof e==\"object\"&&\"type\"in e&&typeof e.type==\"string\"&&e.type.startsWith(y)}function I(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),!L(s.data)){n(\"[Pulse Tracker Proxy] Response was not a valid Proxy Message\",s.data);return}s.data.type===S&&(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 D=\"2.0.0-rc.18\";function C(e){let t=\"tracker\"in e&&typeof e.tracker==\"object\"?e.tracker:{};return{...e,tracker:{...t,proxyVersion:D}}}function O(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=C(n),a=O(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 I({type:H,payload:t},{target:this.target});if(!L(r))throw this.debug(\"[Pulse Tracker Proxy] Invalid response from proxy\",r),new Error(\"Invalid response from proxy\");if(r.type===S)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 ie=Object.fromEntries(F.map(e=>[e,function(...t){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",t);let[r,...n]=t,o=C(r),a=[O(o,this.component,this.componentVersion),...n];return this.invoke({method:e,args:a})}]));function ce(){return class extends v{constructor(e,t,r,n){super(e,t,r,n),n(\"[Pulse TPaaS Proxy] Initialized\"),Object.assign(this,ie)}}}var pe=ce();var le=e=>e===\"payment.schibsted.com\"||e.startsWith(\"bestilling.\")||e===\"pay.pre.schibsted.digital\"||e.startsWith(\"test-bestilling.\"),me=e=>e===\"login.schibsted.com\"||e===\"identity-pre.schibsted.com\",q=e=>{var t;try{let n=new URL((t=e.getAttribute(\"href\"))!=null?t:\"\").hostname;if(me(n))return\"Login\";if(le(n))return\"Purchase\"}catch{return}};var Y=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 V=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 K(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=\"\",w=0;function k(P){var T,x,E,_,M;try{let h=P.target,f=(T=h==null?void 0:h.closest)==null?void 0:T.call(h,\"a\");if(!f)return;let b=f.textContent||f.getAttribute(\"href\")||`${p} button`,U=`a|${b}`,$=Date.now();if(U===d&&$-w<g)return;d=U,w=$;let A=q(f),N=A===\"Purchase\"?Y(f):[];l.tpaas&&e.trackEngagementOffer({placement:{containerName:\"page\",offerPlacement:p},object:{objectId:n,objectSdrn:r,campaign:o,name:m,offerCodes:N,offerType:V(c)},...i?{experiments:[{experimentSdrn:`${r}:experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a||\"\"}]}:{},engagement:{action:\"Click\",elementName:b},page:{},provider:{stage:\"Pre\"},target:{info:{url:(x=f.getAttribute(\"href\"))!=null?x:\"\"}}}),l.legacy&&e.trackLegacyClickUIElement({object:{id:u(b),elementType:\"Button\",name:b,containerName:\"Page\",custom:{...s==null?void 0:s.offerData,offerCodes:N}},...s?{origin:s.pulseOrigin}:{},target:{url:(M=(_=(E=f.getAttribute(\"href\"))==null?void 0:E.split(\"?\"))==null?void 0:_[0])!=null?M:\"\"},...A?{intent:A}:{},...i?{experiments:[{id:`experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a}]}:{}})}catch{}}return document.addEventListener(\"click\",k,!0),()=>document.removeEventListener(\"click\",k,!0)}function B(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:V(a)},...s?{experiments:[{experimentSdrn:`${r}:experiment:${u(s)}`,name:s,platform:\"SPS\",variant:p||\"\"}]}:{},page:{},provider:{stage:\"Pre\"},target:{info:{}}}),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}:{}})}async function z(e,t,r){let{placementType:n,legacy:o,pulseEvents:c}=t,a=window.location.pathname,i=`landingpage-${n===\"campaignpage\"?\"CAMPAIGN\":\"STATIC\"}-${j(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:{},provider:{stage:\"Pre\"}},{leaveTracking:{objectElement:\"body\",pageElement:\"body\",objectResizable:!1}})}var R=e=>e===\"campaignpage\"||e===\"staticpage\";var X={name:\"@schibsted/sps-sdk\",version:\"4.12.1\",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.18\",\"@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\"},dependencies:{\"@schibsted/consent-url-utils\":\"^2.0.0\"}};var Q=!1,J=!1,Z=\"script[data-sps-pulse-config='true']\",u=e=>e.toLowerCase().replace(/ /g,\"-\").replace(/[^-a-z:0-9]/g,\"\"),j=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 ee(){if(console.log(\"[SPS-Pulse-Helpers] boot initiated\"),Q)return;Q=!0;let e=null;try{let t=document.querySelector(Z);if(!t){console.warn(`[SPS-Pulse-Helpers] Config script tag not found with selector ${Z}`);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=R(r)?j(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:X.version});K(i,e,a,p);let s=k=>{J||(J=!0,B(i,e,a,p,k))};if(R(r)){await z(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,w=new l(k=>{var E;let P=k[0],T=(E=P==null?void 0:P.intersectionRatio)!=null?E:0,x=(P==null?void 0:P.isIntersecting)&&T>=1/3;d&&(d=!1,g=x?\"Above\":\"Below\"),x&&(w.disconnect(),s(g))},{root:null,threshold:[0,1/3]});w.observe(m)}catch(t){console.warn(\"[SPS-Pulse-Helpers] boot failed\",t)}}ee();return se(ge);})();\n",
|
|
6
|
+
"sps-pulse-helpers": "\"use strict\";var SpsPulseHelpersBundle=(()=>{var W=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var oe=Object.prototype.hasOwnProperty;var ne=(e,t,r,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of re(t))!oe.call(e,o)&&o!==r&&W(e,o,{get:()=>t[o],enumerable:!(n=te(t,o))||n.enumerable});return e};var se=e=>ne(W({},\"__esModule\",{value:!0}),e);var ge={};var y=\"pulse-tracker-proxy\",ae=`${y}:request`,Pe=`${y}:ack`,H=`${y}:invoke`,G=`${y}:return`,S=`${y}:return-error`,F=[\"trackAnonymousViewUIElement\",\"trackEngagementAd\",\"trackEngagementAffiliate\",\"trackEngagementAudio\",\"trackEngagementForm\",\"trackEngagementHealthUIElement\",\"trackEngagementOffer\",\"trackEngagementSportsUIElement\",\"trackEngagementTeaser\",\"trackEngagementTvModule\",\"trackEngagementUIElement\",\"trackEngagementVideo\",\"trackEngagementVideoAd\",\"trackEngagementWidget\",\"trackCompletedHealthAction\",\"trackImpressionAd\",\"trackImpressionAdSlot\",\"trackImpressionAffiliate\",\"trackImpressionForm\",\"trackImpressionHealthUIElement\",\"trackImpressionOffer\",\"trackImpressionPlayer\",\"trackImpressionSportsUIElement\",\"trackImpressionTeaser\",\"trackImpressionUIElement\",\"trackImpressionWidget\",\"trackLoadAd\",\"trackRequestAd\",\"trackLeaveArticle\",\"trackLeaveAudioPage\",\"trackLeaveError\",\"trackLeaveFrontpage\",\"trackLeaveLandingpage\",\"trackLeaveListing\",\"trackLeaveLockedArticle\",\"trackLeaveLockedAudioPage\",\"trackLeaveLockedPage\",\"trackLeaveLockedVideoPage\",\"trackLeavePage\",\"trackLeaveSportsPage\",\"trackLeaveVideoPage\",\"trackLeaveWeather\",\"trackViewArticle\",\"trackViewAudioPage\",\"trackViewError\",\"trackViewFrontpage\",\"trackViewHealthPage\",\"trackViewLandingpage\",\"trackViewListing\",\"trackViewLockedArticle\",\"trackViewLockedAudioPage\",\"trackViewLockedPage\",\"trackViewLockedVideoPage\",\"trackViewPage\",\"trackViewSportsPage\",\"trackViewTitle\",\"trackViewVideoPage\",\"trackViewWeather\",\"trackLegacyViewArticle\",\"trackLegacyViewLoginPoster\",\"trackLegacyViewSalesPoster\",\"trackLegacyViewListing\",\"trackLegacyViewFrontpage\",\"trackLegacyViewPage\",\"trackLegacyViewUIElement\",\"trackLegacyClickUIElement\"];function L(e){return e!==null&&typeof e==\"object\"&&\"type\"in e&&typeof e.type==\"string\"&&e.type.startsWith(y)}function I(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),!L(s.data)){n(\"[Pulse Tracker Proxy] Response was not a valid Proxy Message\",s.data);return}s.data.type===S&&(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 D=\"2.0.0-rc.18\";function C(e){let t=\"tracker\"in e&&typeof e.tracker==\"object\"?e.tracker:{};return{...e,tracker:{...t,proxyVersion:D}}}function O(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=C(n),a=O(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 I({type:H,payload:t},{target:this.target});if(!L(r))throw this.debug(\"[Pulse Tracker Proxy] Invalid response from proxy\",r),new Error(\"Invalid response from proxy\");if(r.type===S)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 ie=Object.fromEntries(F.map(e=>[e,function(...t){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",t);let[r,...n]=t,o=C(r),a=[O(o,this.component,this.componentVersion),...n];return this.invoke({method:e,args:a})}]));function ce(){return class extends v{constructor(e,t,r,n){super(e,t,r,n),n(\"[Pulse TPaaS Proxy] Initialized\"),Object.assign(this,ie)}}}var pe=ce();var le=e=>e===\"payment.schibsted.com\"||e.startsWith(\"bestilling.\")||e===\"pay.pre.schibsted.digital\"||e.startsWith(\"test-bestilling.\"),me=e=>e===\"login.schibsted.com\"||e===\"identity-pre.schibsted.com\",q=e=>{var t;try{let n=new URL((t=e.getAttribute(\"href\"))!=null?t:\"\").hostname;if(me(n))return\"Login\";if(le(n))return\"Purchase\"}catch{return}};var Y=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 V=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 K(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=\"\",w=0;function k(P){var T,x,E,_,M;try{let h=P.target,f=(T=h==null?void 0:h.closest)==null?void 0:T.call(h,\"a\");if(!f)return;let b=f.textContent||f.getAttribute(\"href\")||`${p} button`,U=`a|${b}`,$=Date.now();if(U===d&&$-w<g)return;d=U,w=$;let A=q(f),N=A===\"Purchase\"?Y(f):[];l.tpaas&&e.trackEngagementOffer({placement:{containerName:\"page\",offerPlacement:p},object:{objectId:n,objectSdrn:r,campaign:o,name:m,offerCodes:N,offerType:V(c)},...i?{experiments:[{experimentSdrn:`${r}:experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a||\"\"}]}:{},engagement:{action:\"Click\",elementName:b},page:{},provider:{stage:\"Pre\"},target:{info:{url:(x=f.getAttribute(\"href\"))!=null?x:\"\"}}}),l.legacy&&e.trackLegacyClickUIElement({object:{id:u(b),elementType:\"Button\",name:b,containerName:\"Page\",custom:{...s==null?void 0:s.offerData,offerCodes:N}},...s?{origin:s.pulseOrigin}:{},target:{url:(M=(_=(E=f.getAttribute(\"href\"))==null?void 0:E.split(\"?\"))==null?void 0:_[0])!=null?M:\"\"},...A?{intent:A}:{},...i?{experiments:[{id:`experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a}]}:{}})}catch{}}return document.addEventListener(\"click\",k,!0),()=>document.removeEventListener(\"click\",k,!0)}function B(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:V(a)},...s?{experiments:[{experimentSdrn:`${r}:experiment:${u(s)}`,name:s,platform:\"SPS\",variant:p||\"\"}]}:{},page:{},provider:{stage:\"Pre\"},target:{info:{}}}),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}:{}})}async function z(e,t,r){let{placementType:n,legacy:o,pulseEvents:c}=t,a=window.location.pathname,i=`landingpage-${n===\"campaignpage\"?\"CAMPAIGN\":\"STATIC\"}-${j(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:{},provider:{stage:\"Pre\"}},{leaveTracking:{objectElement:\"body\",pageElement:\"body\",objectResizable:!1}})}var R=e=>e===\"campaignpage\"||e===\"staticpage\";var X={name:\"@schibsted/sps-sdk\",version:\"4.13.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.18\",\"@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\"},dependencies:{\"@schibsted/consent-url-utils\":\"^2.0.0\"}};var Q=!1,J=!1,Z=\"script[data-sps-pulse-config='true']\",u=e=>e.toLowerCase().replace(/ /g,\"-\").replace(/[^-a-z:0-9]/g,\"\"),j=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 ee(){if(console.log(\"[SPS-Pulse-Helpers] boot initiated\"),Q)return;Q=!0;let e=null;try{let t=document.querySelector(Z);if(!t){console.warn(`[SPS-Pulse-Helpers] Config script tag not found with selector ${Z}`);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=R(r)?j(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:X.version});K(i,e,a,p);let s=k=>{J||(J=!0,B(i,e,a,p,k))};if(R(r)){await z(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,w=new l(k=>{var E;let P=k[0],T=(E=P==null?void 0:P.intersectionRatio)!=null?E:0,x=(P==null?void 0:P.isIntersecting)&&T>=1/3;d&&(d=!1,g=x?\"Above\":\"Below\"),x&&(w.disconnect(),s(g))},{root:null,threshold:[0,1/3]});w.observe(m)}catch(t){console.warn(\"[SPS-Pulse-Helpers] boot failed\",t)}}ee();return se(ge);})();\n",
|
|
7
7
|
"pulse-tracker-proxy": "\"use strict\";var PulseTrackerProxyBundle=(()=>{var w=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var O=(e,r,t,o)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let a of M(r))!v.call(e,a)&&a!==t&&w(e,a,{get:()=>r[a],enumerable:!(o=R(r,a))||o.enumerable});return e};var U=e=>O(w({},\"__esModule\",{value:!0}),e);var G={};var k=\"pulse-tracker-proxy\",x=`${k}:request`,H=`${k}:ack`,T=`${k}:invoke`,f=`${k}:return`,l=`${k}:return-error`,h=[\"trackAnonymousViewUIElement\",\"trackEngagementAd\",\"trackEngagementAffiliate\",\"trackEngagementAudio\",\"trackEngagementForm\",\"trackEngagementHealthUIElement\",\"trackEngagementOffer\",\"trackEngagementSportsUIElement\",\"trackEngagementTeaser\",\"trackEngagementTvModule\",\"trackEngagementUIElement\",\"trackEngagementVideo\",\"trackEngagementVideoAd\",\"trackEngagementWidget\",\"trackCompletedHealthAction\",\"trackImpressionAd\",\"trackImpressionAdSlot\",\"trackImpressionAffiliate\",\"trackImpressionForm\",\"trackImpressionHealthUIElement\",\"trackImpressionOffer\",\"trackImpressionPlayer\",\"trackImpressionSportsUIElement\",\"trackImpressionTeaser\",\"trackImpressionUIElement\",\"trackImpressionWidget\",\"trackLoadAd\",\"trackRequestAd\",\"trackLeaveArticle\",\"trackLeaveAudioPage\",\"trackLeaveError\",\"trackLeaveFrontpage\",\"trackLeaveLandingpage\",\"trackLeaveListing\",\"trackLeaveLockedArticle\",\"trackLeaveLockedAudioPage\",\"trackLeaveLockedPage\",\"trackLeaveLockedVideoPage\",\"trackLeavePage\",\"trackLeaveSportsPage\",\"trackLeaveVideoPage\",\"trackLeaveWeather\",\"trackViewArticle\",\"trackViewAudioPage\",\"trackViewError\",\"trackViewFrontpage\",\"trackViewHealthPage\",\"trackViewLandingpage\",\"trackViewListing\",\"trackViewLockedArticle\",\"trackViewLockedAudioPage\",\"trackViewLockedPage\",\"trackViewLockedVideoPage\",\"trackViewPage\",\"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 d(e,{target:r,timeout:t,debug:o=()=>{}}){return new Promise((a,i)=>{let s=new MessageChannel,n=t?setTimeout(()=>{s.port1.close(),i(new Error(`Message of type ${e.type} timed out`))},t):void 0,p=c=>{if(o(\"[Pulse Tracker Proxy] Received the response on the MessageChannel\",c),!m(c.data)){o(\"[Pulse Tracker Proxy] Response was not a valid Proxy Message\",c.data);return}c.data.type===l&&(o(\"[Pulse Tracker Proxy] Received an return error response\",c.data.error),clearTimeout(n),s.port1.close(),i(new Error(c.data.error))),o(\"[Pulse Tracker Proxy] Received a valid response\",c.data),clearTimeout(n),s.port1.close(),a(c.data)};s.port1.onmessage=p,o(\"[Pulse Tracker Proxy] Sending message to target window\",e),r.postMessage(e,\"*\",[s.port2])})}var V=\"2.0.0-rc.18\";function E(e){let r=\"tracker\"in e&&typeof e.tracker==\"object\"?e.tracker:{};return{...e,tracker:{...r,proxyVersion:V}}}function y(e,r,t){let o=\"provider\"in e&&typeof e.provider==\"object\"?e.provider:{};return{...e,provider:{...o,component:r,componentVersion:t}}}var g=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=E(o),s=y(i,this.component,this.componentVersion),n=[t,s,...a];return this.invoke({method:\"track\",args:n})}async invoke(r){this.debug(\"[Pulse Tracker Proxy] Invoking remote function\",r);let t=await d({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===f)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(h.map(e=>[e,function(...r){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",r);let[t,...o]=r,a=E(t),s=[y(a,this.component,this.componentVersion),...o];return this.invoke({method:e,args:s})}]));function W(){return class extends g{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:s=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,c=!1,I=new Promise((P,u)=>{p=setTimeout(()=>{c=!0,n(\"[Pulse Tracker Proxy] Ack timeout. Sorry, target seems to not support the proxy.\"),u(new Error(`Pulse tracker proxy not found within ${a} ms`))},a)}),_=(async()=>{for(let P=0;P<i;P++){if(c)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 d({type:x},{target:o,timeout:s})}catch(u){n(`[Pulse Tracker Proxy] Ack Request failed: ${u}`);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
|
package/dist/cjs/sps.d.ts
CHANGED
|
@@ -40,6 +40,11 @@ export type SpsOptions = {
|
|
|
40
40
|
* @defaultValue `"production"`
|
|
41
41
|
*/
|
|
42
42
|
environment?: Environment;
|
|
43
|
+
/**
|
|
44
|
+
* Domain to scope dismiss cookies to. When not set, dismiss cookies are scoped
|
|
45
|
+
* to the current host.
|
|
46
|
+
*/
|
|
47
|
+
cookieDomain?: string;
|
|
43
48
|
};
|
|
44
49
|
/**
|
|
45
50
|
* Options for {@link SPS.getPoster} and {@link SPS.getPosterByDecision}.
|
|
@@ -231,11 +236,13 @@ export declare class SPS {
|
|
|
231
236
|
endpoint: string;
|
|
232
237
|
/** The active environment this instance targets. */
|
|
233
238
|
environment: Environment;
|
|
239
|
+
/** The domain dismiss cookies set by this instance are scoped to, if configured. */
|
|
240
|
+
cookieDomain?: string;
|
|
234
241
|
/**
|
|
235
242
|
* Creates a new SPS SDK instance.
|
|
236
243
|
* @param options - Configuration options including publication, domain and environment.
|
|
237
244
|
*/
|
|
238
|
-
constructor({ publication, domain, environment }: SpsOptions);
|
|
245
|
+
constructor({ publication, domain, environment, cookieDomain, }: SpsOptions);
|
|
239
246
|
private validateClientEnvironment;
|
|
240
247
|
private validateServerEnvironment;
|
|
241
248
|
/**
|
package/dist/cjs/sps.js
CHANGED
|
@@ -18,13 +18,16 @@ class SPS {
|
|
|
18
18
|
endpoint;
|
|
19
19
|
/** The active environment this instance targets. */
|
|
20
20
|
environment;
|
|
21
|
+
/** The domain dismiss cookies set by this instance are scoped to, if configured. */
|
|
22
|
+
cookieDomain;
|
|
21
23
|
/**
|
|
22
24
|
* Creates a new SPS SDK instance.
|
|
23
25
|
* @param options - Configuration options including publication, domain and environment.
|
|
24
26
|
*/
|
|
25
|
-
constructor({ publication, domain = "schibsted.tech", environment = "production" }) {
|
|
27
|
+
constructor({ publication, domain = "schibsted.tech", environment = "production", cookieDomain, }) {
|
|
26
28
|
this.environment = environment;
|
|
27
29
|
this.publication = publication;
|
|
30
|
+
this.cookieDomain = cookieDomain;
|
|
28
31
|
this.endpoint = (0, _1.getEndpoint)(environment, domain);
|
|
29
32
|
}
|
|
30
33
|
async validateClientEnvironment() {
|
|
@@ -183,7 +186,7 @@ class SPS {
|
|
|
183
186
|
if (posterResponse.hideDuration) {
|
|
184
187
|
(0, dismiss_1.addDismiss)(placementType, iframeId, {
|
|
185
188
|
hideDuration: posterResponse.hideDuration ?? 86400000, // 24 hours in ms,
|
|
186
|
-
});
|
|
189
|
+
}, this.cookieDomain);
|
|
187
190
|
}
|
|
188
191
|
(0, consent_1.addConsentForwarding)(iframeId);
|
|
189
192
|
return {
|
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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"}
|
|
@@ -4,4 +4,4 @@ export declare const decodeDismissCount: (value: string) => {
|
|
|
4
4
|
count: number;
|
|
5
5
|
scheduleEndDate: number | null;
|
|
6
6
|
};
|
|
7
|
-
export declare const setDismissCookie: (type: string, pauseDuration: number, elementId: string) => void;
|
|
7
|
+
export declare const setDismissCookie: (type: string, pauseDuration: number, elementId: string, domain?: string) => void;
|
|
@@ -22,12 +22,13 @@ const decodeDismissCount = (value) => {
|
|
|
22
22
|
};
|
|
23
23
|
};
|
|
24
24
|
exports.decodeDismissCount = decodeDismissCount;
|
|
25
|
-
const setDismissCookie = (type, pauseDuration, elementId) => {
|
|
25
|
+
const setDismissCookie = (type, pauseDuration, elementId, domain) => {
|
|
26
26
|
if (typeof document === "undefined") {
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
29
29
|
const maxAge = Math.floor(pauseDuration / 1000);
|
|
30
|
-
|
|
30
|
+
const domainAttribute = domain ? `; Domain=${domain}` : "";
|
|
31
|
+
document.cookie = `${(0, exports.getDismissCookieName)(type, elementId)}=1; Max-Age=${maxAge}; Path=/; SameSite=Lax${domainAttribute}`;
|
|
31
32
|
};
|
|
32
33
|
exports.setDismissCookie = setDismissCookie;
|
|
33
34
|
//# sourceMappingURL=placementCookies.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"placementCookies.js","sourceRoot":"","sources":["../../../src/utils/placementCookies.ts"],"names":[],"mappings":";;;AAAA,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAEjC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,SAAiB,EAAU,EAAE,CAC9E,GAAG,cAAc,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC;AAD7B,QAAA,oBAAoB,wBACS;AAEnC,MAAM,YAAY,GAAG,CAAC,YAAoB,EAA0B,EAAE;IAC3E,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,CACvB,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,YAAY,gBAUvB;AAEK,MAAM,kBAAkB,GAAG,CAChC,KAAa,EACsC,EAAE;IACrD,MAAM,CAAC,QAAQ,GAAG,GAAG,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC7B,eAAe,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;KAChE,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,kBAAkB,sBAQ7B;AAEK,MAAM,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"placementCookies.js","sourceRoot":"","sources":["../../../src/utils/placementCookies.ts"],"names":[],"mappings":";;;AAAA,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAEjC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,SAAiB,EAAU,EAAE,CAC9E,GAAG,cAAc,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC;AAD7B,QAAA,oBAAoB,wBACS;AAEnC,MAAM,YAAY,GAAG,CAAC,YAAoB,EAA0B,EAAE;IAC3E,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,CACvB,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,YAAY,gBAUvB;AAEK,MAAM,kBAAkB,GAAG,CAChC,KAAa,EACsC,EAAE;IACrD,MAAM,CAAC,QAAQ,GAAG,GAAG,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC7B,eAAe,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;KAChE,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,kBAAkB,sBAQ7B;AAEK,MAAM,gBAAgB,GAAG,CAC9B,IAAY,EACZ,aAAqB,EACrB,SAAiB,EACjB,MAAe,EACT,EAAE;IACR,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAA,4BAAoB,EAAC,IAAI,EAAE,SAAS,CAAC,eAAe,MAAM,yBAAyB,eAAe,EAAE,CAAC;AAC5H,CAAC,CAAC;AAZW,QAAA,gBAAgB,oBAY3B"}
|
|
@@ -10,5 +10,5 @@ export interface AddDismissOptions {
|
|
|
10
10
|
*/
|
|
11
11
|
hideDuration: number;
|
|
12
12
|
}
|
|
13
|
-
export declare const addDismiss: (placementType: PlacementType, iframeId: string, options: AddDismissOptions) => void;
|
|
13
|
+
export declare const addDismiss: (placementType: PlacementType, iframeId: string, options: AddDismissOptions, domain?: string) => void;
|
|
14
14
|
export declare const getDismissScript: (placementType: PlacementTypeWithStringContent) => string;
|
|
@@ -9,7 +9,7 @@ export const isDismissed = (placementType, iframeId) => {
|
|
|
9
9
|
const cookieName = getDismissCookieName(placementType, iframeId || getDismissIframeId(placementType));
|
|
10
10
|
return cookieName in parseCookies(document.cookie);
|
|
11
11
|
};
|
|
12
|
-
export const addDismiss = (placementType, iframeId, options) => {
|
|
12
|
+
export const addDismiss = (placementType, iframeId, options, domain) => {
|
|
13
13
|
const key = `${placementType}:${iframeId}`;
|
|
14
14
|
const alreadyRegistered = dismissListenerKeys.has(key);
|
|
15
15
|
dismissListenerKeys.set(key, options);
|
|
@@ -23,7 +23,7 @@ export const addDismiss = (placementType, iframeId, options) => {
|
|
|
23
23
|
if (event.data.type === `${DISMISS_KEY}:${placementType}`) {
|
|
24
24
|
console.log("[SPS sdk] - Dismiss issued by user", event);
|
|
25
25
|
const currentOptions = dismissListenerKeys.get(key);
|
|
26
|
-
setDismissCookie(placementType, currentOptions.hideDuration, iframeId);
|
|
26
|
+
setDismissCookie(placementType, currentOptions.hideDuration, iframeId, domain);
|
|
27
27
|
document.getElementById(iframeId)?.remove();
|
|
28
28
|
}
|
|
29
29
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dismiss.js","sourceRoot":"","sources":["../../../src/actions/dismiss.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEjG,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAExC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAA6B,CAAC;AAEjE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,aAA4B,EAAU,EAAE,CACzE,OAAO,aAAa,SAAS,CAAC;AAEhC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,aAA4B,EAAE,QAAiB,EAAW,EAAE;IACtF,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,oBAAoB,CACrC,aAAa,EACb,QAAQ,IAAI,kBAAkB,CAAC,aAAa,CAAC,CAC9C,CAAC;IACF,OAAO,UAAU,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC,CAAC;AAYF,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,aAA4B,EAC5B,QAAgB,EAChB,OAA0B,
|
|
1
|
+
{"version":3,"file":"dismiss.js","sourceRoot":"","sources":["../../../src/actions/dismiss.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEjG,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAExC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAA6B,CAAC;AAEjE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,aAA4B,EAAU,EAAE,CACzE,OAAO,aAAa,SAAS,CAAC;AAEhC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,aAA4B,EAAE,QAAiB,EAAW,EAAE;IACtF,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,oBAAoB,CACrC,aAAa,EACb,QAAQ,IAAI,kBAAkB,CAAC,aAAa,CAAC,CAC9C,CAAC;IACF,OAAO,UAAU,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC,CAAC;AAYF,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,aAA4B,EAC5B,QAAgB,EAChB,OAA0B,EAC1B,MAAe,EACT,EAAE;IACR,MAAM,GAAG,GAAG,GAAG,aAAa,IAAI,QAAQ,EAAE,CAAC;IAC3C,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvD,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAEtC,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,KAAK;QAChD,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,WAAW,IAAI,aAAa,EAAE,EAAE,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,cAAc,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;YACrD,gBAAgB,CAAC,aAAa,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC/E,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,aAA6C,EAAU,EAAE,CACxF;;;;;;;;;qBASmB,WAAW,IAAI,aAAa;;;;;;GAM9C,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const PUBLIC_SCRIPTS_CONTENT: {
|
|
2
|
-
readonly "sps-pulse-helpers": "\"use strict\";var SpsPulseHelpersBundle=(()=>{var W=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var oe=Object.prototype.hasOwnProperty;var ne=(e,t,r,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of re(t))!oe.call(e,o)&&o!==r&&W(e,o,{get:()=>t[o],enumerable:!(n=te(t,o))||n.enumerable});return e};var se=e=>ne(W({},\"__esModule\",{value:!0}),e);var ge={};var y=\"pulse-tracker-proxy\",ae=`${y}:request`,Pe=`${y}:ack`,H=`${y}:invoke`,G=`${y}:return`,S=`${y}:return-error`,F=[\"trackAnonymousViewUIElement\",\"trackEngagementAd\",\"trackEngagementAffiliate\",\"trackEngagementAudio\",\"trackEngagementForm\",\"trackEngagementHealthUIElement\",\"trackEngagementOffer\",\"trackEngagementSportsUIElement\",\"trackEngagementTeaser\",\"trackEngagementTvModule\",\"trackEngagementUIElement\",\"trackEngagementVideo\",\"trackEngagementVideoAd\",\"trackEngagementWidget\",\"trackCompletedHealthAction\",\"trackImpressionAd\",\"trackImpressionAdSlot\",\"trackImpressionAffiliate\",\"trackImpressionForm\",\"trackImpressionHealthUIElement\",\"trackImpressionOffer\",\"trackImpressionPlayer\",\"trackImpressionSportsUIElement\",\"trackImpressionTeaser\",\"trackImpressionUIElement\",\"trackImpressionWidget\",\"trackLoadAd\",\"trackRequestAd\",\"trackLeaveArticle\",\"trackLeaveAudioPage\",\"trackLeaveError\",\"trackLeaveFrontpage\",\"trackLeaveLandingpage\",\"trackLeaveListing\",\"trackLeaveLockedArticle\",\"trackLeaveLockedAudioPage\",\"trackLeaveLockedPage\",\"trackLeaveLockedVideoPage\",\"trackLeavePage\",\"trackLeaveSportsPage\",\"trackLeaveVideoPage\",\"trackLeaveWeather\",\"trackViewArticle\",\"trackViewAudioPage\",\"trackViewError\",\"trackViewFrontpage\",\"trackViewHealthPage\",\"trackViewLandingpage\",\"trackViewListing\",\"trackViewLockedArticle\",\"trackViewLockedAudioPage\",\"trackViewLockedPage\",\"trackViewLockedVideoPage\",\"trackViewPage\",\"trackViewSportsPage\",\"trackViewTitle\",\"trackViewVideoPage\",\"trackViewWeather\",\"trackLegacyViewArticle\",\"trackLegacyViewLoginPoster\",\"trackLegacyViewSalesPoster\",\"trackLegacyViewListing\",\"trackLegacyViewFrontpage\",\"trackLegacyViewPage\",\"trackLegacyViewUIElement\",\"trackLegacyClickUIElement\"];function L(e){return e!==null&&typeof e==\"object\"&&\"type\"in e&&typeof e.type==\"string\"&&e.type.startsWith(y)}function I(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),!L(s.data)){n(\"[Pulse Tracker Proxy] Response was not a valid Proxy Message\",s.data);return}s.data.type===S&&(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 D=\"2.0.0-rc.18\";function C(e){let t=\"tracker\"in e&&typeof e.tracker==\"object\"?e.tracker:{};return{...e,tracker:{...t,proxyVersion:D}}}function O(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=C(n),a=O(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 I({type:H,payload:t},{target:this.target});if(!L(r))throw this.debug(\"[Pulse Tracker Proxy] Invalid response from proxy\",r),new Error(\"Invalid response from proxy\");if(r.type===S)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 ie=Object.fromEntries(F.map(e=>[e,function(...t){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",t);let[r,...n]=t,o=C(r),a=[O(o,this.component,this.componentVersion),...n];return this.invoke({method:e,args:a})}]));function ce(){return class extends v{constructor(e,t,r,n){super(e,t,r,n),n(\"[Pulse TPaaS Proxy] Initialized\"),Object.assign(this,ie)}}}var pe=ce();var le=e=>e===\"payment.schibsted.com\"||e.startsWith(\"bestilling.\")||e===\"pay.pre.schibsted.digital\"||e.startsWith(\"test-bestilling.\"),me=e=>e===\"login.schibsted.com\"||e===\"identity-pre.schibsted.com\",q=e=>{var t;try{let n=new URL((t=e.getAttribute(\"href\"))!=null?t:\"\").hostname;if(me(n))return\"Login\";if(le(n))return\"Purchase\"}catch{return}};var Y=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 V=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 K(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=\"\",w=0;function k(P){var T,x,E,_,M;try{let h=P.target,f=(T=h==null?void 0:h.closest)==null?void 0:T.call(h,\"a\");if(!f)return;let b=f.textContent||f.getAttribute(\"href\")||`${p} button`,U=`a|${b}`,$=Date.now();if(U===d&&$-w<g)return;d=U,w=$;let A=q(f),N=A===\"Purchase\"?Y(f):[];l.tpaas&&e.trackEngagementOffer({placement:{containerName:\"page\",offerPlacement:p},object:{objectId:n,objectSdrn:r,campaign:o,name:m,offerCodes:N,offerType:V(c)},...i?{experiments:[{experimentSdrn:`${r}:experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a||\"\"}]}:{},engagement:{action:\"Click\",elementName:b},page:{},provider:{stage:\"Pre\"},target:{info:{url:(x=f.getAttribute(\"href\"))!=null?x:\"\"}}}),l.legacy&&e.trackLegacyClickUIElement({object:{id:u(b),elementType:\"Button\",name:b,containerName:\"Page\",custom:{...s==null?void 0:s.offerData,offerCodes:N}},...s?{origin:s.pulseOrigin}:{},target:{url:(M=(_=(E=f.getAttribute(\"href\"))==null?void 0:E.split(\"?\"))==null?void 0:_[0])!=null?M:\"\"},...A?{intent:A}:{},...i?{experiments:[{id:`experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a}]}:{}})}catch{}}return document.addEventListener(\"click\",k,!0),()=>document.removeEventListener(\"click\",k,!0)}function B(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:V(a)},...s?{experiments:[{experimentSdrn:`${r}:experiment:${u(s)}`,name:s,platform:\"SPS\",variant:p||\"\"}]}:{},page:{},provider:{stage:\"Pre\"},target:{info:{}}}),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}:{}})}async function z(e,t,r){let{placementType:n,legacy:o,pulseEvents:c}=t,a=window.location.pathname,i=`landingpage-${n===\"campaignpage\"?\"CAMPAIGN\":\"STATIC\"}-${j(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:{},provider:{stage:\"Pre\"}},{leaveTracking:{objectElement:\"body\",pageElement:\"body\",objectResizable:!1}})}var R=e=>e===\"campaignpage\"||e===\"staticpage\";var X={name:\"@schibsted/sps-sdk\",version:\"4.12.1\",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.18\",\"@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\"},dependencies:{\"@schibsted/consent-url-utils\":\"^2.0.0\"}};var Q=!1,J=!1,Z=\"script[data-sps-pulse-config='true']\",u=e=>e.toLowerCase().replace(/ /g,\"-\").replace(/[^-a-z:0-9]/g,\"\"),j=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 ee(){if(console.log(\"[SPS-Pulse-Helpers] boot initiated\"),Q)return;Q=!0;let e=null;try{let t=document.querySelector(Z);if(!t){console.warn(`[SPS-Pulse-Helpers] Config script tag not found with selector ${Z}`);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=R(r)?j(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:X.version});K(i,e,a,p);let s=k=>{J||(J=!0,B(i,e,a,p,k))};if(R(r)){await z(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,w=new l(k=>{var E;let P=k[0],T=(E=P==null?void 0:P.intersectionRatio)!=null?E:0,x=(P==null?void 0:P.isIntersecting)&&T>=1/3;d&&(d=!1,g=x?\"Above\":\"Below\"),x&&(w.disconnect(),s(g))},{root:null,threshold:[0,1/3]});w.observe(m)}catch(t){console.warn(\"[SPS-Pulse-Helpers] boot failed\",t)}}ee();return se(ge);})();\n";
|
|
2
|
+
readonly "sps-pulse-helpers": "\"use strict\";var SpsPulseHelpersBundle=(()=>{var W=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var oe=Object.prototype.hasOwnProperty;var ne=(e,t,r,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of re(t))!oe.call(e,o)&&o!==r&&W(e,o,{get:()=>t[o],enumerable:!(n=te(t,o))||n.enumerable});return e};var se=e=>ne(W({},\"__esModule\",{value:!0}),e);var ge={};var y=\"pulse-tracker-proxy\",ae=`${y}:request`,Pe=`${y}:ack`,H=`${y}:invoke`,G=`${y}:return`,S=`${y}:return-error`,F=[\"trackAnonymousViewUIElement\",\"trackEngagementAd\",\"trackEngagementAffiliate\",\"trackEngagementAudio\",\"trackEngagementForm\",\"trackEngagementHealthUIElement\",\"trackEngagementOffer\",\"trackEngagementSportsUIElement\",\"trackEngagementTeaser\",\"trackEngagementTvModule\",\"trackEngagementUIElement\",\"trackEngagementVideo\",\"trackEngagementVideoAd\",\"trackEngagementWidget\",\"trackCompletedHealthAction\",\"trackImpressionAd\",\"trackImpressionAdSlot\",\"trackImpressionAffiliate\",\"trackImpressionForm\",\"trackImpressionHealthUIElement\",\"trackImpressionOffer\",\"trackImpressionPlayer\",\"trackImpressionSportsUIElement\",\"trackImpressionTeaser\",\"trackImpressionUIElement\",\"trackImpressionWidget\",\"trackLoadAd\",\"trackRequestAd\",\"trackLeaveArticle\",\"trackLeaveAudioPage\",\"trackLeaveError\",\"trackLeaveFrontpage\",\"trackLeaveLandingpage\",\"trackLeaveListing\",\"trackLeaveLockedArticle\",\"trackLeaveLockedAudioPage\",\"trackLeaveLockedPage\",\"trackLeaveLockedVideoPage\",\"trackLeavePage\",\"trackLeaveSportsPage\",\"trackLeaveVideoPage\",\"trackLeaveWeather\",\"trackViewArticle\",\"trackViewAudioPage\",\"trackViewError\",\"trackViewFrontpage\",\"trackViewHealthPage\",\"trackViewLandingpage\",\"trackViewListing\",\"trackViewLockedArticle\",\"trackViewLockedAudioPage\",\"trackViewLockedPage\",\"trackViewLockedVideoPage\",\"trackViewPage\",\"trackViewSportsPage\",\"trackViewTitle\",\"trackViewVideoPage\",\"trackViewWeather\",\"trackLegacyViewArticle\",\"trackLegacyViewLoginPoster\",\"trackLegacyViewSalesPoster\",\"trackLegacyViewListing\",\"trackLegacyViewFrontpage\",\"trackLegacyViewPage\",\"trackLegacyViewUIElement\",\"trackLegacyClickUIElement\"];function L(e){return e!==null&&typeof e==\"object\"&&\"type\"in e&&typeof e.type==\"string\"&&e.type.startsWith(y)}function I(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),!L(s.data)){n(\"[Pulse Tracker Proxy] Response was not a valid Proxy Message\",s.data);return}s.data.type===S&&(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 D=\"2.0.0-rc.18\";function C(e){let t=\"tracker\"in e&&typeof e.tracker==\"object\"?e.tracker:{};return{...e,tracker:{...t,proxyVersion:D}}}function O(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=C(n),a=O(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 I({type:H,payload:t},{target:this.target});if(!L(r))throw this.debug(\"[Pulse Tracker Proxy] Invalid response from proxy\",r),new Error(\"Invalid response from proxy\");if(r.type===S)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 ie=Object.fromEntries(F.map(e=>[e,function(...t){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",t);let[r,...n]=t,o=C(r),a=[O(o,this.component,this.componentVersion),...n];return this.invoke({method:e,args:a})}]));function ce(){return class extends v{constructor(e,t,r,n){super(e,t,r,n),n(\"[Pulse TPaaS Proxy] Initialized\"),Object.assign(this,ie)}}}var pe=ce();var le=e=>e===\"payment.schibsted.com\"||e.startsWith(\"bestilling.\")||e===\"pay.pre.schibsted.digital\"||e.startsWith(\"test-bestilling.\"),me=e=>e===\"login.schibsted.com\"||e===\"identity-pre.schibsted.com\",q=e=>{var t;try{let n=new URL((t=e.getAttribute(\"href\"))!=null?t:\"\").hostname;if(me(n))return\"Login\";if(le(n))return\"Purchase\"}catch{return}};var Y=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 V=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 K(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=\"\",w=0;function k(P){var T,x,E,_,M;try{let h=P.target,f=(T=h==null?void 0:h.closest)==null?void 0:T.call(h,\"a\");if(!f)return;let b=f.textContent||f.getAttribute(\"href\")||`${p} button`,U=`a|${b}`,$=Date.now();if(U===d&&$-w<g)return;d=U,w=$;let A=q(f),N=A===\"Purchase\"?Y(f):[];l.tpaas&&e.trackEngagementOffer({placement:{containerName:\"page\",offerPlacement:p},object:{objectId:n,objectSdrn:r,campaign:o,name:m,offerCodes:N,offerType:V(c)},...i?{experiments:[{experimentSdrn:`${r}:experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a||\"\"}]}:{},engagement:{action:\"Click\",elementName:b},page:{},provider:{stage:\"Pre\"},target:{info:{url:(x=f.getAttribute(\"href\"))!=null?x:\"\"}}}),l.legacy&&e.trackLegacyClickUIElement({object:{id:u(b),elementType:\"Button\",name:b,containerName:\"Page\",custom:{...s==null?void 0:s.offerData,offerCodes:N}},...s?{origin:s.pulseOrigin}:{},target:{url:(M=(_=(E=f.getAttribute(\"href\"))==null?void 0:E.split(\"?\"))==null?void 0:_[0])!=null?M:\"\"},...A?{intent:A}:{},...i?{experiments:[{id:`experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a}]}:{}})}catch{}}return document.addEventListener(\"click\",k,!0),()=>document.removeEventListener(\"click\",k,!0)}function B(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:V(a)},...s?{experiments:[{experimentSdrn:`${r}:experiment:${u(s)}`,name:s,platform:\"SPS\",variant:p||\"\"}]}:{},page:{},provider:{stage:\"Pre\"},target:{info:{}}}),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}:{}})}async function z(e,t,r){let{placementType:n,legacy:o,pulseEvents:c}=t,a=window.location.pathname,i=`landingpage-${n===\"campaignpage\"?\"CAMPAIGN\":\"STATIC\"}-${j(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:{},provider:{stage:\"Pre\"}},{leaveTracking:{objectElement:\"body\",pageElement:\"body\",objectResizable:!1}})}var R=e=>e===\"campaignpage\"||e===\"staticpage\";var X={name:\"@schibsted/sps-sdk\",version:\"4.13.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.18\",\"@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\"},dependencies:{\"@schibsted/consent-url-utils\":\"^2.0.0\"}};var Q=!1,J=!1,Z=\"script[data-sps-pulse-config='true']\",u=e=>e.toLowerCase().replace(/ /g,\"-\").replace(/[^-a-z:0-9]/g,\"\"),j=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 ee(){if(console.log(\"[SPS-Pulse-Helpers] boot initiated\"),Q)return;Q=!0;let e=null;try{let t=document.querySelector(Z);if(!t){console.warn(`[SPS-Pulse-Helpers] Config script tag not found with selector ${Z}`);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=R(r)?j(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:X.version});K(i,e,a,p);let s=k=>{J||(J=!0,B(i,e,a,p,k))};if(R(r)){await z(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,w=new l(k=>{var E;let P=k[0],T=(E=P==null?void 0:P.intersectionRatio)!=null?E:0,x=(P==null?void 0:P.isIntersecting)&&T>=1/3;d&&(d=!1,g=x?\"Above\":\"Below\"),x&&(w.disconnect(),s(g))},{root:null,threshold:[0,1/3]});w.observe(m)}catch(t){console.warn(\"[SPS-Pulse-Helpers] boot failed\",t)}}ee();return se(ge);})();\n";
|
|
3
3
|
readonly "pulse-tracker-proxy": "\"use strict\";var PulseTrackerProxyBundle=(()=>{var w=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var O=(e,r,t,o)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let a of M(r))!v.call(e,a)&&a!==t&&w(e,a,{get:()=>r[a],enumerable:!(o=R(r,a))||o.enumerable});return e};var U=e=>O(w({},\"__esModule\",{value:!0}),e);var G={};var k=\"pulse-tracker-proxy\",x=`${k}:request`,H=`${k}:ack`,T=`${k}:invoke`,f=`${k}:return`,l=`${k}:return-error`,h=[\"trackAnonymousViewUIElement\",\"trackEngagementAd\",\"trackEngagementAffiliate\",\"trackEngagementAudio\",\"trackEngagementForm\",\"trackEngagementHealthUIElement\",\"trackEngagementOffer\",\"trackEngagementSportsUIElement\",\"trackEngagementTeaser\",\"trackEngagementTvModule\",\"trackEngagementUIElement\",\"trackEngagementVideo\",\"trackEngagementVideoAd\",\"trackEngagementWidget\",\"trackCompletedHealthAction\",\"trackImpressionAd\",\"trackImpressionAdSlot\",\"trackImpressionAffiliate\",\"trackImpressionForm\",\"trackImpressionHealthUIElement\",\"trackImpressionOffer\",\"trackImpressionPlayer\",\"trackImpressionSportsUIElement\",\"trackImpressionTeaser\",\"trackImpressionUIElement\",\"trackImpressionWidget\",\"trackLoadAd\",\"trackRequestAd\",\"trackLeaveArticle\",\"trackLeaveAudioPage\",\"trackLeaveError\",\"trackLeaveFrontpage\",\"trackLeaveLandingpage\",\"trackLeaveListing\",\"trackLeaveLockedArticle\",\"trackLeaveLockedAudioPage\",\"trackLeaveLockedPage\",\"trackLeaveLockedVideoPage\",\"trackLeavePage\",\"trackLeaveSportsPage\",\"trackLeaveVideoPage\",\"trackLeaveWeather\",\"trackViewArticle\",\"trackViewAudioPage\",\"trackViewError\",\"trackViewFrontpage\",\"trackViewHealthPage\",\"trackViewLandingpage\",\"trackViewListing\",\"trackViewLockedArticle\",\"trackViewLockedAudioPage\",\"trackViewLockedPage\",\"trackViewLockedVideoPage\",\"trackViewPage\",\"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 d(e,{target:r,timeout:t,debug:o=()=>{}}){return new Promise((a,i)=>{let s=new MessageChannel,n=t?setTimeout(()=>{s.port1.close(),i(new Error(`Message of type ${e.type} timed out`))},t):void 0,p=c=>{if(o(\"[Pulse Tracker Proxy] Received the response on the MessageChannel\",c),!m(c.data)){o(\"[Pulse Tracker Proxy] Response was not a valid Proxy Message\",c.data);return}c.data.type===l&&(o(\"[Pulse Tracker Proxy] Received an return error response\",c.data.error),clearTimeout(n),s.port1.close(),i(new Error(c.data.error))),o(\"[Pulse Tracker Proxy] Received a valid response\",c.data),clearTimeout(n),s.port1.close(),a(c.data)};s.port1.onmessage=p,o(\"[Pulse Tracker Proxy] Sending message to target window\",e),r.postMessage(e,\"*\",[s.port2])})}var V=\"2.0.0-rc.18\";function E(e){let r=\"tracker\"in e&&typeof e.tracker==\"object\"?e.tracker:{};return{...e,tracker:{...r,proxyVersion:V}}}function y(e,r,t){let o=\"provider\"in e&&typeof e.provider==\"object\"?e.provider:{};return{...e,provider:{...o,component:r,componentVersion:t}}}var g=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=E(o),s=y(i,this.component,this.componentVersion),n=[t,s,...a];return this.invoke({method:\"track\",args:n})}async invoke(r){this.debug(\"[Pulse Tracker Proxy] Invoking remote function\",r);let t=await d({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===f)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(h.map(e=>[e,function(...r){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",r);let[t,...o]=r,a=E(t),s=[y(a,this.component,this.componentVersion),...o];return this.invoke({method:e,args:s})}]));function W(){return class extends g{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:s=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,c=!1,I=new Promise((P,u)=>{p=setTimeout(()=>{c=!0,n(\"[Pulse Tracker Proxy] Ack timeout. Sorry, target seems to not support the proxy.\"),u(new Error(`Pulse tracker proxy not found within ${a} ms`))},a)}),_=(async()=>{for(let P=0;P<i;P++){if(c)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 d({type:x},{target:o,timeout:s})}catch(u){n(`[Pulse Tracker Proxy] Ack Request failed: ${u}`);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 W=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var oe=Object.prototype.hasOwnProperty;var ne=(e,t,r,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of re(t))!oe.call(e,o)&&o!==r&&W(e,o,{get:()=>t[o],enumerable:!(n=te(t,o))||n.enumerable});return e};var se=e=>ne(W({},\"__esModule\",{value:!0}),e);var ge={};var y=\"pulse-tracker-proxy\",ae=`${y}:request`,Pe=`${y}:ack`,H=`${y}:invoke`,G=`${y}:return`,S=`${y}:return-error`,F=[\"trackAnonymousViewUIElement\",\"trackEngagementAd\",\"trackEngagementAffiliate\",\"trackEngagementAudio\",\"trackEngagementForm\",\"trackEngagementHealthUIElement\",\"trackEngagementOffer\",\"trackEngagementSportsUIElement\",\"trackEngagementTeaser\",\"trackEngagementTvModule\",\"trackEngagementUIElement\",\"trackEngagementVideo\",\"trackEngagementVideoAd\",\"trackEngagementWidget\",\"trackCompletedHealthAction\",\"trackImpressionAd\",\"trackImpressionAdSlot\",\"trackImpressionAffiliate\",\"trackImpressionForm\",\"trackImpressionHealthUIElement\",\"trackImpressionOffer\",\"trackImpressionPlayer\",\"trackImpressionSportsUIElement\",\"trackImpressionTeaser\",\"trackImpressionUIElement\",\"trackImpressionWidget\",\"trackLoadAd\",\"trackRequestAd\",\"trackLeaveArticle\",\"trackLeaveAudioPage\",\"trackLeaveError\",\"trackLeaveFrontpage\",\"trackLeaveLandingpage\",\"trackLeaveListing\",\"trackLeaveLockedArticle\",\"trackLeaveLockedAudioPage\",\"trackLeaveLockedPage\",\"trackLeaveLockedVideoPage\",\"trackLeavePage\",\"trackLeaveSportsPage\",\"trackLeaveVideoPage\",\"trackLeaveWeather\",\"trackViewArticle\",\"trackViewAudioPage\",\"trackViewError\",\"trackViewFrontpage\",\"trackViewHealthPage\",\"trackViewLandingpage\",\"trackViewListing\",\"trackViewLockedArticle\",\"trackViewLockedAudioPage\",\"trackViewLockedPage\",\"trackViewLockedVideoPage\",\"trackViewPage\",\"trackViewSportsPage\",\"trackViewTitle\",\"trackViewVideoPage\",\"trackViewWeather\",\"trackLegacyViewArticle\",\"trackLegacyViewLoginPoster\",\"trackLegacyViewSalesPoster\",\"trackLegacyViewListing\",\"trackLegacyViewFrontpage\",\"trackLegacyViewPage\",\"trackLegacyViewUIElement\",\"trackLegacyClickUIElement\"];function L(e){return e!==null&&typeof e==\"object\"&&\"type\"in e&&typeof e.type==\"string\"&&e.type.startsWith(y)}function I(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),!L(s.data)){n(\"[Pulse Tracker Proxy] Response was not a valid Proxy Message\",s.data);return}s.data.type===S&&(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 D=\"2.0.0-rc.18\";function C(e){let t=\"tracker\"in e&&typeof e.tracker==\"object\"?e.tracker:{};return{...e,tracker:{...t,proxyVersion:D}}}function O(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=C(n),a=O(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 I({type:H,payload:t},{target:this.target});if(!L(r))throw this.debug(\"[Pulse Tracker Proxy] Invalid response from proxy\",r),new Error(\"Invalid response from proxy\");if(r.type===S)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 ie=Object.fromEntries(F.map(e=>[e,function(...t){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",t);let[r,...n]=t,o=C(r),a=[O(o,this.component,this.componentVersion),...n];return this.invoke({method:e,args:a})}]));function ce(){return class extends v{constructor(e,t,r,n){super(e,t,r,n),n(\"[Pulse TPaaS Proxy] Initialized\"),Object.assign(this,ie)}}}var pe=ce();var le=e=>e===\"payment.schibsted.com\"||e.startsWith(\"bestilling.\")||e===\"pay.pre.schibsted.digital\"||e.startsWith(\"test-bestilling.\"),me=e=>e===\"login.schibsted.com\"||e===\"identity-pre.schibsted.com\",q=e=>{var t;try{let n=new URL((t=e.getAttribute(\"href\"))!=null?t:\"\").hostname;if(me(n))return\"Login\";if(le(n))return\"Purchase\"}catch{return}};var Y=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 V=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 K(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=\"\",w=0;function k(P){var T,x,E,_,M;try{let h=P.target,f=(T=h==null?void 0:h.closest)==null?void 0:T.call(h,\"a\");if(!f)return;let b=f.textContent||f.getAttribute(\"href\")||`${p} button`,U=`a|${b}`,$=Date.now();if(U===d&&$-w<g)return;d=U,w=$;let A=q(f),N=A===\"Purchase\"?Y(f):[];l.tpaas&&e.trackEngagementOffer({placement:{containerName:\"page\",offerPlacement:p},object:{objectId:n,objectSdrn:r,campaign:o,name:m,offerCodes:N,offerType:V(c)},...i?{experiments:[{experimentSdrn:`${r}:experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a||\"\"}]}:{},engagement:{action:\"Click\",elementName:b},page:{},provider:{stage:\"Pre\"},target:{info:{url:(x=f.getAttribute(\"href\"))!=null?x:\"\"}}}),l.legacy&&e.trackLegacyClickUIElement({object:{id:u(b),elementType:\"Button\",name:b,containerName:\"Page\",custom:{...s==null?void 0:s.offerData,offerCodes:N}},...s?{origin:s.pulseOrigin}:{},target:{url:(M=(_=(E=f.getAttribute(\"href\"))==null?void 0:E.split(\"?\"))==null?void 0:_[0])!=null?M:\"\"},...A?{intent:A}:{},...i?{experiments:[{id:`experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a}]}:{}})}catch{}}return document.addEventListener(\"click\",k,!0),()=>document.removeEventListener(\"click\",k,!0)}function B(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:V(a)},...s?{experiments:[{experimentSdrn:`${r}:experiment:${u(s)}`,name:s,platform:\"SPS\",variant:p||\"\"}]}:{},page:{},provider:{stage:\"Pre\"},target:{info:{}}}),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}:{}})}async function z(e,t,r){let{placementType:n,legacy:o,pulseEvents:c}=t,a=window.location.pathname,i=`landingpage-${n===\"campaignpage\"?\"CAMPAIGN\":\"STATIC\"}-${j(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:{},provider:{stage:\"Pre\"}},{leaveTracking:{objectElement:\"body\",pageElement:\"body\",objectResizable:!1}})}var R=e=>e===\"campaignpage\"||e===\"staticpage\";var X={name:\"@schibsted/sps-sdk\",version:\"4.12.1\",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.18\",\"@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\"},dependencies:{\"@schibsted/consent-url-utils\":\"^2.0.0\"}};var Q=!1,J=!1,Z=\"script[data-sps-pulse-config='true']\",u=e=>e.toLowerCase().replace(/ /g,\"-\").replace(/[^-a-z:0-9]/g,\"\"),j=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 ee(){if(console.log(\"[SPS-Pulse-Helpers] boot initiated\"),Q)return;Q=!0;let e=null;try{let t=document.querySelector(Z);if(!t){console.warn(`[SPS-Pulse-Helpers] Config script tag not found with selector ${Z}`);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=R(r)?j(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:X.version});K(i,e,a,p);let s=k=>{J||(J=!0,B(i,e,a,p,k))};if(R(r)){await z(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,w=new l(k=>{var E;let P=k[0],T=(E=P==null?void 0:P.intersectionRatio)!=null?E:0,x=(P==null?void 0:P.isIntersecting)&&T>=1/3;d&&(d=!1,g=x?\"Above\":\"Below\"),x&&(w.disconnect(),s(g))},{root:null,threshold:[0,1/3]});w.observe(m)}catch(t){console.warn(\"[SPS-Pulse-Helpers] boot failed\",t)}}ee();return se(ge);})();\n",
|
|
3
|
+
"sps-pulse-helpers": "\"use strict\";var SpsPulseHelpersBundle=(()=>{var W=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var oe=Object.prototype.hasOwnProperty;var ne=(e,t,r,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of re(t))!oe.call(e,o)&&o!==r&&W(e,o,{get:()=>t[o],enumerable:!(n=te(t,o))||n.enumerable});return e};var se=e=>ne(W({},\"__esModule\",{value:!0}),e);var ge={};var y=\"pulse-tracker-proxy\",ae=`${y}:request`,Pe=`${y}:ack`,H=`${y}:invoke`,G=`${y}:return`,S=`${y}:return-error`,F=[\"trackAnonymousViewUIElement\",\"trackEngagementAd\",\"trackEngagementAffiliate\",\"trackEngagementAudio\",\"trackEngagementForm\",\"trackEngagementHealthUIElement\",\"trackEngagementOffer\",\"trackEngagementSportsUIElement\",\"trackEngagementTeaser\",\"trackEngagementTvModule\",\"trackEngagementUIElement\",\"trackEngagementVideo\",\"trackEngagementVideoAd\",\"trackEngagementWidget\",\"trackCompletedHealthAction\",\"trackImpressionAd\",\"trackImpressionAdSlot\",\"trackImpressionAffiliate\",\"trackImpressionForm\",\"trackImpressionHealthUIElement\",\"trackImpressionOffer\",\"trackImpressionPlayer\",\"trackImpressionSportsUIElement\",\"trackImpressionTeaser\",\"trackImpressionUIElement\",\"trackImpressionWidget\",\"trackLoadAd\",\"trackRequestAd\",\"trackLeaveArticle\",\"trackLeaveAudioPage\",\"trackLeaveError\",\"trackLeaveFrontpage\",\"trackLeaveLandingpage\",\"trackLeaveListing\",\"trackLeaveLockedArticle\",\"trackLeaveLockedAudioPage\",\"trackLeaveLockedPage\",\"trackLeaveLockedVideoPage\",\"trackLeavePage\",\"trackLeaveSportsPage\",\"trackLeaveVideoPage\",\"trackLeaveWeather\",\"trackViewArticle\",\"trackViewAudioPage\",\"trackViewError\",\"trackViewFrontpage\",\"trackViewHealthPage\",\"trackViewLandingpage\",\"trackViewListing\",\"trackViewLockedArticle\",\"trackViewLockedAudioPage\",\"trackViewLockedPage\",\"trackViewLockedVideoPage\",\"trackViewPage\",\"trackViewSportsPage\",\"trackViewTitle\",\"trackViewVideoPage\",\"trackViewWeather\",\"trackLegacyViewArticle\",\"trackLegacyViewLoginPoster\",\"trackLegacyViewSalesPoster\",\"trackLegacyViewListing\",\"trackLegacyViewFrontpage\",\"trackLegacyViewPage\",\"trackLegacyViewUIElement\",\"trackLegacyClickUIElement\"];function L(e){return e!==null&&typeof e==\"object\"&&\"type\"in e&&typeof e.type==\"string\"&&e.type.startsWith(y)}function I(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),!L(s.data)){n(\"[Pulse Tracker Proxy] Response was not a valid Proxy Message\",s.data);return}s.data.type===S&&(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 D=\"2.0.0-rc.18\";function C(e){let t=\"tracker\"in e&&typeof e.tracker==\"object\"?e.tracker:{};return{...e,tracker:{...t,proxyVersion:D}}}function O(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=C(n),a=O(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 I({type:H,payload:t},{target:this.target});if(!L(r))throw this.debug(\"[Pulse Tracker Proxy] Invalid response from proxy\",r),new Error(\"Invalid response from proxy\");if(r.type===S)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 ie=Object.fromEntries(F.map(e=>[e,function(...t){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",t);let[r,...n]=t,o=C(r),a=[O(o,this.component,this.componentVersion),...n];return this.invoke({method:e,args:a})}]));function ce(){return class extends v{constructor(e,t,r,n){super(e,t,r,n),n(\"[Pulse TPaaS Proxy] Initialized\"),Object.assign(this,ie)}}}var pe=ce();var le=e=>e===\"payment.schibsted.com\"||e.startsWith(\"bestilling.\")||e===\"pay.pre.schibsted.digital\"||e.startsWith(\"test-bestilling.\"),me=e=>e===\"login.schibsted.com\"||e===\"identity-pre.schibsted.com\",q=e=>{var t;try{let n=new URL((t=e.getAttribute(\"href\"))!=null?t:\"\").hostname;if(me(n))return\"Login\";if(le(n))return\"Purchase\"}catch{return}};var Y=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 V=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 K(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=\"\",w=0;function k(P){var T,x,E,_,M;try{let h=P.target,f=(T=h==null?void 0:h.closest)==null?void 0:T.call(h,\"a\");if(!f)return;let b=f.textContent||f.getAttribute(\"href\")||`${p} button`,U=`a|${b}`,$=Date.now();if(U===d&&$-w<g)return;d=U,w=$;let A=q(f),N=A===\"Purchase\"?Y(f):[];l.tpaas&&e.trackEngagementOffer({placement:{containerName:\"page\",offerPlacement:p},object:{objectId:n,objectSdrn:r,campaign:o,name:m,offerCodes:N,offerType:V(c)},...i?{experiments:[{experimentSdrn:`${r}:experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a||\"\"}]}:{},engagement:{action:\"Click\",elementName:b},page:{},provider:{stage:\"Pre\"},target:{info:{url:(x=f.getAttribute(\"href\"))!=null?x:\"\"}}}),l.legacy&&e.trackLegacyClickUIElement({object:{id:u(b),elementType:\"Button\",name:b,containerName:\"Page\",custom:{...s==null?void 0:s.offerData,offerCodes:N}},...s?{origin:s.pulseOrigin}:{},target:{url:(M=(_=(E=f.getAttribute(\"href\"))==null?void 0:E.split(\"?\"))==null?void 0:_[0])!=null?M:\"\"},...A?{intent:A}:{},...i?{experiments:[{id:`experiment:${u(i)}`,name:i,platform:\"SPS\",variant:a}]}:{}})}catch{}}return document.addEventListener(\"click\",k,!0),()=>document.removeEventListener(\"click\",k,!0)}function B(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:V(a)},...s?{experiments:[{experimentSdrn:`${r}:experiment:${u(s)}`,name:s,platform:\"SPS\",variant:p||\"\"}]}:{},page:{},provider:{stage:\"Pre\"},target:{info:{}}}),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}:{}})}async function z(e,t,r){let{placementType:n,legacy:o,pulseEvents:c}=t,a=window.location.pathname,i=`landingpage-${n===\"campaignpage\"?\"CAMPAIGN\":\"STATIC\"}-${j(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:{},provider:{stage:\"Pre\"}},{leaveTracking:{objectElement:\"body\",pageElement:\"body\",objectResizable:!1}})}var R=e=>e===\"campaignpage\"||e===\"staticpage\";var X={name:\"@schibsted/sps-sdk\",version:\"4.13.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.18\",\"@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\"},dependencies:{\"@schibsted/consent-url-utils\":\"^2.0.0\"}};var Q=!1,J=!1,Z=\"script[data-sps-pulse-config='true']\",u=e=>e.toLowerCase().replace(/ /g,\"-\").replace(/[^-a-z:0-9]/g,\"\"),j=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 ee(){if(console.log(\"[SPS-Pulse-Helpers] boot initiated\"),Q)return;Q=!0;let e=null;try{let t=document.querySelector(Z);if(!t){console.warn(`[SPS-Pulse-Helpers] Config script tag not found with selector ${Z}`);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=R(r)?j(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:X.version});K(i,e,a,p);let s=k=>{J||(J=!0,B(i,e,a,p,k))};if(R(r)){await z(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,w=new l(k=>{var E;let P=k[0],T=(E=P==null?void 0:P.intersectionRatio)!=null?E:0,x=(P==null?void 0:P.isIntersecting)&&T>=1/3;d&&(d=!1,g=x?\"Above\":\"Below\"),x&&(w.disconnect(),s(g))},{root:null,threshold:[0,1/3]});w.observe(m)}catch(t){console.warn(\"[SPS-Pulse-Helpers] boot failed\",t)}}ee();return se(ge);})();\n",
|
|
4
4
|
"pulse-tracker-proxy": "\"use strict\";var PulseTrackerProxyBundle=(()=>{var w=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var O=(e,r,t,o)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let a of M(r))!v.call(e,a)&&a!==t&&w(e,a,{get:()=>r[a],enumerable:!(o=R(r,a))||o.enumerable});return e};var U=e=>O(w({},\"__esModule\",{value:!0}),e);var G={};var k=\"pulse-tracker-proxy\",x=`${k}:request`,H=`${k}:ack`,T=`${k}:invoke`,f=`${k}:return`,l=`${k}:return-error`,h=[\"trackAnonymousViewUIElement\",\"trackEngagementAd\",\"trackEngagementAffiliate\",\"trackEngagementAudio\",\"trackEngagementForm\",\"trackEngagementHealthUIElement\",\"trackEngagementOffer\",\"trackEngagementSportsUIElement\",\"trackEngagementTeaser\",\"trackEngagementTvModule\",\"trackEngagementUIElement\",\"trackEngagementVideo\",\"trackEngagementVideoAd\",\"trackEngagementWidget\",\"trackCompletedHealthAction\",\"trackImpressionAd\",\"trackImpressionAdSlot\",\"trackImpressionAffiliate\",\"trackImpressionForm\",\"trackImpressionHealthUIElement\",\"trackImpressionOffer\",\"trackImpressionPlayer\",\"trackImpressionSportsUIElement\",\"trackImpressionTeaser\",\"trackImpressionUIElement\",\"trackImpressionWidget\",\"trackLoadAd\",\"trackRequestAd\",\"trackLeaveArticle\",\"trackLeaveAudioPage\",\"trackLeaveError\",\"trackLeaveFrontpage\",\"trackLeaveLandingpage\",\"trackLeaveListing\",\"trackLeaveLockedArticle\",\"trackLeaveLockedAudioPage\",\"trackLeaveLockedPage\",\"trackLeaveLockedVideoPage\",\"trackLeavePage\",\"trackLeaveSportsPage\",\"trackLeaveVideoPage\",\"trackLeaveWeather\",\"trackViewArticle\",\"trackViewAudioPage\",\"trackViewError\",\"trackViewFrontpage\",\"trackViewHealthPage\",\"trackViewLandingpage\",\"trackViewListing\",\"trackViewLockedArticle\",\"trackViewLockedAudioPage\",\"trackViewLockedPage\",\"trackViewLockedVideoPage\",\"trackViewPage\",\"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 d(e,{target:r,timeout:t,debug:o=()=>{}}){return new Promise((a,i)=>{let s=new MessageChannel,n=t?setTimeout(()=>{s.port1.close(),i(new Error(`Message of type ${e.type} timed out`))},t):void 0,p=c=>{if(o(\"[Pulse Tracker Proxy] Received the response on the MessageChannel\",c),!m(c.data)){o(\"[Pulse Tracker Proxy] Response was not a valid Proxy Message\",c.data);return}c.data.type===l&&(o(\"[Pulse Tracker Proxy] Received an return error response\",c.data.error),clearTimeout(n),s.port1.close(),i(new Error(c.data.error))),o(\"[Pulse Tracker Proxy] Received a valid response\",c.data),clearTimeout(n),s.port1.close(),a(c.data)};s.port1.onmessage=p,o(\"[Pulse Tracker Proxy] Sending message to target window\",e),r.postMessage(e,\"*\",[s.port2])})}var V=\"2.0.0-rc.18\";function E(e){let r=\"tracker\"in e&&typeof e.tracker==\"object\"?e.tracker:{};return{...e,tracker:{...r,proxyVersion:V}}}function y(e,r,t){let o=\"provider\"in e&&typeof e.provider==\"object\"?e.provider:{};return{...e,provider:{...o,component:r,componentVersion:t}}}var g=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=E(o),s=y(i,this.component,this.componentVersion),n=[t,s,...a];return this.invoke({method:\"track\",args:n})}async invoke(r){this.debug(\"[Pulse Tracker Proxy] Invoking remote function\",r);let t=await d({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===f)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(h.map(e=>[e,function(...r){this.debug(\"[Pulse Tracker Proxy] Calling `track`\",r);let[t,...o]=r,a=E(t),s=[y(a,this.component,this.componentVersion),...o];return this.invoke({method:e,args:s})}]));function W(){return class extends g{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:s=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,c=!1,I=new Promise((P,u)=>{p=setTimeout(()=>{c=!0,n(\"[Pulse Tracker Proxy] Ack timeout. Sorry, target seems to not support the proxy.\"),u(new Error(`Pulse tracker proxy not found within ${a} ms`))},a)}),_=(async()=>{for(let P=0;P<i;P++){if(c)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 d({type:x},{target:o,timeout:s})}catch(u){n(`[Pulse Tracker Proxy] Ack Request failed: ${u}`);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
|
@@ -40,6 +40,11 @@ export type SpsOptions = {
|
|
|
40
40
|
* @defaultValue `"production"`
|
|
41
41
|
*/
|
|
42
42
|
environment?: Environment;
|
|
43
|
+
/**
|
|
44
|
+
* Domain to scope dismiss cookies to. When not set, dismiss cookies are scoped
|
|
45
|
+
* to the current host.
|
|
46
|
+
*/
|
|
47
|
+
cookieDomain?: string;
|
|
43
48
|
};
|
|
44
49
|
/**
|
|
45
50
|
* Options for {@link SPS.getPoster} and {@link SPS.getPosterByDecision}.
|
|
@@ -231,11 +236,13 @@ export declare class SPS {
|
|
|
231
236
|
endpoint: string;
|
|
232
237
|
/** The active environment this instance targets. */
|
|
233
238
|
environment: Environment;
|
|
239
|
+
/** The domain dismiss cookies set by this instance are scoped to, if configured. */
|
|
240
|
+
cookieDomain?: string;
|
|
234
241
|
/**
|
|
235
242
|
* Creates a new SPS SDK instance.
|
|
236
243
|
* @param options - Configuration options including publication, domain and environment.
|
|
237
244
|
*/
|
|
238
|
-
constructor({ publication, domain, environment }: SpsOptions);
|
|
245
|
+
constructor({ publication, domain, environment, cookieDomain, }: SpsOptions);
|
|
239
246
|
private validateClientEnvironment;
|
|
240
247
|
private validateServerEnvironment;
|
|
241
248
|
/**
|
package/dist/esm/sps.js
CHANGED
|
@@ -16,13 +16,16 @@ export class SPS {
|
|
|
16
16
|
endpoint;
|
|
17
17
|
/** The active environment this instance targets. */
|
|
18
18
|
environment;
|
|
19
|
+
/** The domain dismiss cookies set by this instance are scoped to, if configured. */
|
|
20
|
+
cookieDomain;
|
|
19
21
|
/**
|
|
20
22
|
* Creates a new SPS SDK instance.
|
|
21
23
|
* @param options - Configuration options including publication, domain and environment.
|
|
22
24
|
*/
|
|
23
|
-
constructor({ publication, domain = "schibsted.tech", environment = "production" }) {
|
|
25
|
+
constructor({ publication, domain = "schibsted.tech", environment = "production", cookieDomain, }) {
|
|
24
26
|
this.environment = environment;
|
|
25
27
|
this.publication = publication;
|
|
28
|
+
this.cookieDomain = cookieDomain;
|
|
26
29
|
this.endpoint = getEndpoint(environment, domain);
|
|
27
30
|
}
|
|
28
31
|
async validateClientEnvironment() {
|
|
@@ -181,7 +184,7 @@ export class SPS {
|
|
|
181
184
|
if (posterResponse.hideDuration) {
|
|
182
185
|
addDismiss(placementType, iframeId, {
|
|
183
186
|
hideDuration: posterResponse.hideDuration ?? 86400000, // 24 hours in ms,
|
|
184
|
-
});
|
|
187
|
+
}, this.cookieDomain);
|
|
185
188
|
}
|
|
186
189
|
addConsentForwarding(iframeId);
|
|
187
190
|
return {
|
package/dist/esm/sps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sps.js","sourceRoot":"","sources":["../../src/sps.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,GAOZ,MAAM,GAAG,CAAC;AACX,OAAO,EACL,oBAAoB,GAIrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,wBAAwB,EACxB,WAAW,GAIZ,MAAM,aAAa,CAAC;AAOrB,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"sps.js","sourceRoot":"","sources":["../../src/sps.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,4 +4,4 @@ export declare const decodeDismissCount: (value: string) => {
|
|
|
4
4
|
count: number;
|
|
5
5
|
scheduleEndDate: number | null;
|
|
6
6
|
};
|
|
7
|
-
export declare const setDismissCookie: (type: string, pauseDuration: number, elementId: string) => void;
|
|
7
|
+
export declare const setDismissCookie: (type: string, pauseDuration: number, elementId: string, domain?: string) => void;
|
|
@@ -16,11 +16,12 @@ export const decodeDismissCount = (value) => {
|
|
|
16
16
|
scheduleEndDate: rawDate != null ? parseInt(rawDate, 10) : null,
|
|
17
17
|
};
|
|
18
18
|
};
|
|
19
|
-
export const setDismissCookie = (type, pauseDuration, elementId) => {
|
|
19
|
+
export const setDismissCookie = (type, pauseDuration, elementId, domain) => {
|
|
20
20
|
if (typeof document === "undefined") {
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
23
23
|
const maxAge = Math.floor(pauseDuration / 1000);
|
|
24
|
-
|
|
24
|
+
const domainAttribute = domain ? `; Domain=${domain}` : "";
|
|
25
|
+
document.cookie = `${getDismissCookieName(type, elementId)}=1; Max-Age=${maxAge}; Path=/; SameSite=Lax${domainAttribute}`;
|
|
25
26
|
};
|
|
26
27
|
//# sourceMappingURL=placementCookies.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"placementCookies.js","sourceRoot":"","sources":["../../../src/utils/placementCookies.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAExC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,SAAiB,EAAU,EAAE,CAC9E,GAAG,cAAc,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC;AAE1C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,YAAoB,EAA0B,EAAE;IAC3E,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,CACvB,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAa,EACsC,EAAE;IACrD,MAAM,CAAC,QAAQ,GAAG,GAAG,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC7B,eAAe,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;KAChE,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"placementCookies.js","sourceRoot":"","sources":["../../../src/utils/placementCookies.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAExC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,SAAiB,EAAU,EAAE,CAC9E,GAAG,cAAc,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC;AAE1C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,YAAoB,EAA0B,EAAE;IAC3E,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,CACvB,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAa,EACsC,EAAE;IACrD,MAAM,CAAC,QAAQ,GAAG,GAAG,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC7B,eAAe,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;KAChE,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAY,EACZ,aAAqB,EACrB,SAAiB,EACjB,MAAe,EACT,EAAE;IACR,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,QAAQ,CAAC,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,EAAE,SAAS,CAAC,eAAe,MAAM,yBAAyB,eAAe,EAAE,CAAC;AAC5H,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var SpsPulseHelpersBundle=(()=>{var W=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var oe=Object.prototype.hasOwnProperty;var ne=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of re(t))!oe.call(e,o)&&o!==r&&W(e,o,{get:()=>t[o],enumerable:!(n=te(t,o))||n.enumerable});return e};var se=e=>ne(W({},"__esModule",{value:!0}),e);var ge={};var y="pulse-tracker-proxy",ae=`${y}:request`,Pe=`${y}:ack`,H=`${y}:invoke`,G=`${y}:return`,S=`${y}:return-error`,F=["trackAnonymousViewUIElement","trackEngagementAd","trackEngagementAffiliate","trackEngagementAudio","trackEngagementForm","trackEngagementHealthUIElement","trackEngagementOffer","trackEngagementSportsUIElement","trackEngagementTeaser","trackEngagementTvModule","trackEngagementUIElement","trackEngagementVideo","trackEngagementVideoAd","trackEngagementWidget","trackCompletedHealthAction","trackImpressionAd","trackImpressionAdSlot","trackImpressionAffiliate","trackImpressionForm","trackImpressionHealthUIElement","trackImpressionOffer","trackImpressionPlayer","trackImpressionSportsUIElement","trackImpressionTeaser","trackImpressionUIElement","trackImpressionWidget","trackLoadAd","trackRequestAd","trackLeaveArticle","trackLeaveAudioPage","trackLeaveError","trackLeaveFrontpage","trackLeaveLandingpage","trackLeaveListing","trackLeaveLockedArticle","trackLeaveLockedAudioPage","trackLeaveLockedPage","trackLeaveLockedVideoPage","trackLeavePage","trackLeaveSportsPage","trackLeaveVideoPage","trackLeaveWeather","trackViewArticle","trackViewAudioPage","trackViewError","trackViewFrontpage","trackViewHealthPage","trackViewLandingpage","trackViewListing","trackViewLockedArticle","trackViewLockedAudioPage","trackViewLockedPage","trackViewLockedVideoPage","trackViewPage","trackViewSportsPage","trackViewTitle","trackViewVideoPage","trackViewWeather","trackLegacyViewArticle","trackLegacyViewLoginPoster","trackLegacyViewSalesPoster","trackLegacyViewListing","trackLegacyViewFrontpage","trackLegacyViewPage","trackLegacyViewUIElement","trackLegacyClickUIElement"];function L(e){return e!==null&&typeof e=="object"&&"type"in e&&typeof e.type=="string"&&e.type.startsWith(y)}function I(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),!L(s.data)){n("[Pulse Tracker Proxy] Response was not a valid Proxy Message",s.data);return}s.data.type===S&&(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 D="2.0.0-rc.18";function C(e){let t="tracker"in e&&typeof e.tracker=="object"?e.tracker:{};return{...e,tracker:{...t,proxyVersion:D}}}function O(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=C(n),a=O(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 I({type:H,payload:t},{target:this.target});if(!L(r))throw this.debug("[Pulse Tracker Proxy] Invalid response from proxy",r),new Error("Invalid response from proxy");if(r.type===S)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 ie=Object.fromEntries(F.map(e=>[e,function(...t){this.debug("[Pulse Tracker Proxy] Calling `track`",t);let[r,...n]=t,o=C(r),a=[O(o,this.component,this.componentVersion),...n];return this.invoke({method:e,args:a})}]));function ce(){return class extends v{constructor(e,t,r,n){super(e,t,r,n),n("[Pulse TPaaS Proxy] Initialized"),Object.assign(this,ie)}}}var pe=ce();var le=e=>e==="payment.schibsted.com"||e.startsWith("bestilling.")||e==="pay.pre.schibsted.digital"||e.startsWith("test-bestilling."),me=e=>e==="login.schibsted.com"||e==="identity-pre.schibsted.com",q=e=>{var t;try{let n=new URL((t=e.getAttribute("href"))!=null?t:"").hostname;if(me(n))return"Login";if(le(n))return"Purchase"}catch{return}};var Y=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 V=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 K(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="",w=0;function k(P){var T,x,E,_,M;try{let h=P.target,f=(T=h==null?void 0:h.closest)==null?void 0:T.call(h,"a");if(!f)return;let b=f.textContent||f.getAttribute("href")||`${p} button`,U=`a|${b}`,$=Date.now();if(U===d&&$-w<g)return;d=U,w=$;let A=q(f),N=A==="Purchase"?Y(f):[];l.tpaas&&e.trackEngagementOffer({placement:{containerName:"page",offerPlacement:p},object:{objectId:n,objectSdrn:r,campaign:o,name:m,offerCodes:N,offerType:V(c)},...i?{experiments:[{experimentSdrn:`${r}:experiment:${u(i)}`,name:i,platform:"SPS",variant:a||""}]}:{},engagement:{action:"Click",elementName:b},page:{},provider:{stage:"Pre"},target:{info:{url:(x=f.getAttribute("href"))!=null?x:""}}}),l.legacy&&e.trackLegacyClickUIElement({object:{id:u(b),elementType:"Button",name:b,containerName:"Page",custom:{...s==null?void 0:s.offerData,offerCodes:N}},...s?{origin:s.pulseOrigin}:{},target:{url:(M=(_=(E=f.getAttribute("href"))==null?void 0:E.split("?"))==null?void 0:_[0])!=null?M:""},...A?{intent:A}:{},...i?{experiments:[{id:`experiment:${u(i)}`,name:i,platform:"SPS",variant:a}]}:{}})}catch{}}return document.addEventListener("click",k,!0),()=>document.removeEventListener("click",k,!0)}function B(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:V(a)},...s?{experiments:[{experimentSdrn:`${r}:experiment:${u(s)}`,name:s,platform:"SPS",variant:p||""}]}:{},page:{},provider:{stage:"Pre"},target:{info:{}}}),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}:{}})}async function z(e,t,r){let{placementType:n,legacy:o,pulseEvents:c}=t,a=window.location.pathname,i=`landingpage-${n==="campaignpage"?"CAMPAIGN":"STATIC"}-${j(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:{},provider:{stage:"Pre"}},{leaveTracking:{objectElement:"body",pageElement:"body",objectResizable:!1}})}var R=e=>e==="campaignpage"||e==="staticpage";var X={name:"@schibsted/sps-sdk",version:"4.12.1",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.18","@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"},dependencies:{"@schibsted/consent-url-utils":"^2.0.0"}};var Q=!1,J=!1,Z="script[data-sps-pulse-config='true']",u=e=>e.toLowerCase().replace(/ /g,"-").replace(/[^-a-z:0-9]/g,""),j=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 ee(){if(console.log("[SPS-Pulse-Helpers] boot initiated"),Q)return;Q=!0;let e=null;try{let t=document.querySelector(Z);if(!t){console.warn(`[SPS-Pulse-Helpers] Config script tag not found with selector ${Z}`);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=R(r)?j(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:X.version});K(i,e,a,p);let s=k=>{J||(J=!0,B(i,e,a,p,k))};if(R(r)){await z(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,w=new l(k=>{var E;let P=k[0],T=(E=P==null?void 0:P.intersectionRatio)!=null?E:0,x=(P==null?void 0:P.isIntersecting)&&T>=1/3;d&&(d=!1,g=x?"Above":"Below"),x&&(w.disconnect(),s(g))},{root:null,threshold:[0,1/3]});w.observe(m)}catch(t){console.warn("[SPS-Pulse-Helpers] boot failed",t)}}ee();return se(ge);})();
|
|
1
|
+
"use strict";var SpsPulseHelpersBundle=(()=>{var W=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var oe=Object.prototype.hasOwnProperty;var ne=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of re(t))!oe.call(e,o)&&o!==r&&W(e,o,{get:()=>t[o],enumerable:!(n=te(t,o))||n.enumerable});return e};var se=e=>ne(W({},"__esModule",{value:!0}),e);var ge={};var y="pulse-tracker-proxy",ae=`${y}:request`,Pe=`${y}:ack`,H=`${y}:invoke`,G=`${y}:return`,S=`${y}:return-error`,F=["trackAnonymousViewUIElement","trackEngagementAd","trackEngagementAffiliate","trackEngagementAudio","trackEngagementForm","trackEngagementHealthUIElement","trackEngagementOffer","trackEngagementSportsUIElement","trackEngagementTeaser","trackEngagementTvModule","trackEngagementUIElement","trackEngagementVideo","trackEngagementVideoAd","trackEngagementWidget","trackCompletedHealthAction","trackImpressionAd","trackImpressionAdSlot","trackImpressionAffiliate","trackImpressionForm","trackImpressionHealthUIElement","trackImpressionOffer","trackImpressionPlayer","trackImpressionSportsUIElement","trackImpressionTeaser","trackImpressionUIElement","trackImpressionWidget","trackLoadAd","trackRequestAd","trackLeaveArticle","trackLeaveAudioPage","trackLeaveError","trackLeaveFrontpage","trackLeaveLandingpage","trackLeaveListing","trackLeaveLockedArticle","trackLeaveLockedAudioPage","trackLeaveLockedPage","trackLeaveLockedVideoPage","trackLeavePage","trackLeaveSportsPage","trackLeaveVideoPage","trackLeaveWeather","trackViewArticle","trackViewAudioPage","trackViewError","trackViewFrontpage","trackViewHealthPage","trackViewLandingpage","trackViewListing","trackViewLockedArticle","trackViewLockedAudioPage","trackViewLockedPage","trackViewLockedVideoPage","trackViewPage","trackViewSportsPage","trackViewTitle","trackViewVideoPage","trackViewWeather","trackLegacyViewArticle","trackLegacyViewLoginPoster","trackLegacyViewSalesPoster","trackLegacyViewListing","trackLegacyViewFrontpage","trackLegacyViewPage","trackLegacyViewUIElement","trackLegacyClickUIElement"];function L(e){return e!==null&&typeof e=="object"&&"type"in e&&typeof e.type=="string"&&e.type.startsWith(y)}function I(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),!L(s.data)){n("[Pulse Tracker Proxy] Response was not a valid Proxy Message",s.data);return}s.data.type===S&&(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 D="2.0.0-rc.18";function C(e){let t="tracker"in e&&typeof e.tracker=="object"?e.tracker:{};return{...e,tracker:{...t,proxyVersion:D}}}function O(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=C(n),a=O(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 I({type:H,payload:t},{target:this.target});if(!L(r))throw this.debug("[Pulse Tracker Proxy] Invalid response from proxy",r),new Error("Invalid response from proxy");if(r.type===S)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 ie=Object.fromEntries(F.map(e=>[e,function(...t){this.debug("[Pulse Tracker Proxy] Calling `track`",t);let[r,...n]=t,o=C(r),a=[O(o,this.component,this.componentVersion),...n];return this.invoke({method:e,args:a})}]));function ce(){return class extends v{constructor(e,t,r,n){super(e,t,r,n),n("[Pulse TPaaS Proxy] Initialized"),Object.assign(this,ie)}}}var pe=ce();var le=e=>e==="payment.schibsted.com"||e.startsWith("bestilling.")||e==="pay.pre.schibsted.digital"||e.startsWith("test-bestilling."),me=e=>e==="login.schibsted.com"||e==="identity-pre.schibsted.com",q=e=>{var t;try{let n=new URL((t=e.getAttribute("href"))!=null?t:"").hostname;if(me(n))return"Login";if(le(n))return"Purchase"}catch{return}};var Y=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 V=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 K(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="",w=0;function k(P){var T,x,E,_,M;try{let h=P.target,f=(T=h==null?void 0:h.closest)==null?void 0:T.call(h,"a");if(!f)return;let b=f.textContent||f.getAttribute("href")||`${p} button`,U=`a|${b}`,$=Date.now();if(U===d&&$-w<g)return;d=U,w=$;let A=q(f),N=A==="Purchase"?Y(f):[];l.tpaas&&e.trackEngagementOffer({placement:{containerName:"page",offerPlacement:p},object:{objectId:n,objectSdrn:r,campaign:o,name:m,offerCodes:N,offerType:V(c)},...i?{experiments:[{experimentSdrn:`${r}:experiment:${u(i)}`,name:i,platform:"SPS",variant:a||""}]}:{},engagement:{action:"Click",elementName:b},page:{},provider:{stage:"Pre"},target:{info:{url:(x=f.getAttribute("href"))!=null?x:""}}}),l.legacy&&e.trackLegacyClickUIElement({object:{id:u(b),elementType:"Button",name:b,containerName:"Page",custom:{...s==null?void 0:s.offerData,offerCodes:N}},...s?{origin:s.pulseOrigin}:{},target:{url:(M=(_=(E=f.getAttribute("href"))==null?void 0:E.split("?"))==null?void 0:_[0])!=null?M:""},...A?{intent:A}:{},...i?{experiments:[{id:`experiment:${u(i)}`,name:i,platform:"SPS",variant:a}]}:{}})}catch{}}return document.addEventListener("click",k,!0),()=>document.removeEventListener("click",k,!0)}function B(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:V(a)},...s?{experiments:[{experimentSdrn:`${r}:experiment:${u(s)}`,name:s,platform:"SPS",variant:p||""}]}:{},page:{},provider:{stage:"Pre"},target:{info:{}}}),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}:{}})}async function z(e,t,r){let{placementType:n,legacy:o,pulseEvents:c}=t,a=window.location.pathname,i=`landingpage-${n==="campaignpage"?"CAMPAIGN":"STATIC"}-${j(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:{},provider:{stage:"Pre"}},{leaveTracking:{objectElement:"body",pageElement:"body",objectResizable:!1}})}var R=e=>e==="campaignpage"||e==="staticpage";var X={name:"@schibsted/sps-sdk",version:"4.13.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.18","@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"},dependencies:{"@schibsted/consent-url-utils":"^2.0.0"}};var Q=!1,J=!1,Z="script[data-sps-pulse-config='true']",u=e=>e.toLowerCase().replace(/ /g,"-").replace(/[^-a-z:0-9]/g,""),j=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 ee(){if(console.log("[SPS-Pulse-Helpers] boot initiated"),Q)return;Q=!0;let e=null;try{let t=document.querySelector(Z);if(!t){console.warn(`[SPS-Pulse-Helpers] Config script tag not found with selector ${Z}`);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=R(r)?j(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:X.version});K(i,e,a,p);let s=k=>{J||(J=!0,B(i,e,a,p,k))};if(R(r)){await z(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,w=new l(k=>{var E;let P=k[0],T=(E=P==null?void 0:P.intersectionRatio)!=null?E:0,x=(P==null?void 0:P.isIntersecting)&&T>=1/3;d&&(d=!1,g=x?"Above":"Below"),x&&(w.disconnect(),s(g))},{root:null,threshold:[0,1/3]});w.observe(m)}catch(t){console.warn("[SPS-Pulse-Helpers] boot failed",t)}}ee();return se(ge);})();
|