@temple-wallet/extension-ads 5.0.3 → 6.1.0
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/.editorconfig +9 -0
- package/dist/index.d.ts +13 -4
- package/dist/index.js +5 -5
- package/package.json +1 -1
- package/src/ads-actions/index.ts +2 -2
- package/src/ads-actions/process-providers-ads.ts +30 -23
- package/src/ads-meta.ts +2 -2
- package/src/render-ads-stack.ts +9 -1
- package/src/temple-wallet-api.ts +1 -1
- package/src/transform-raw-rules.ts +40 -21
- package/src/types/ads-rules.ts +1 -1
- package/src/types/temple-wallet-api.ts +1 -1
- package/.vscode/settings.json +0 -3
package/.editorconfig
ADDED
package/dist/index.d.ts
CHANGED
|
@@ -89,7 +89,10 @@ interface RawAdProvidersRule {
|
|
|
89
89
|
interface RawAllAdsRules {
|
|
90
90
|
adPlacesRulesForAllDomains: Record<string, RawAdPlacesRule[]>;
|
|
91
91
|
providersRulesForAllDomains: Record<string, RawAdProvidersRule[]>;
|
|
92
|
-
providersSelectors: Record<string, string
|
|
92
|
+
providersSelectors: Record<string, (string | {
|
|
93
|
+
selector: string;
|
|
94
|
+
parentDepth: number;
|
|
95
|
+
})[]>;
|
|
93
96
|
providersToReplaceAtAllSites: string[];
|
|
94
97
|
permanentAdPlacesRulesForAllDomains: Record<string, RawPermanentAdPlacesRule[]>;
|
|
95
98
|
permanentNativeAdPlacesRulesForAllDomains: Record<string, RawPermanentAdPlacesRule[]>;
|
|
@@ -159,11 +162,14 @@ interface PermanentAdPlacesRule extends Omit<RawPermanentAdPlacesRule, 'urlRegex
|
|
|
159
162
|
interface AdsRules {
|
|
160
163
|
adPlacesRules: Array<Omit<AdPlacesRule, 'urlRegexes'>>;
|
|
161
164
|
permanentAdPlacesRules: PermanentAdPlacesRule[];
|
|
162
|
-
|
|
165
|
+
providersSelectors: Array<{
|
|
166
|
+
selector: string;
|
|
167
|
+
parentDepth: number;
|
|
168
|
+
}>;
|
|
163
169
|
timestamp: number;
|
|
164
170
|
}
|
|
165
171
|
|
|
166
|
-
declare const getAdsActions: ({
|
|
172
|
+
declare const getAdsActions: ({ providersSelectors, adPlacesRules, permanentAdPlacesRules }: AdsRules) => Promise<AdAction[]>;
|
|
167
173
|
|
|
168
174
|
interface IAdsConfiguration {
|
|
169
175
|
hypelab: {
|
|
@@ -201,7 +207,10 @@ declare class TempleWalletApi {
|
|
|
201
207
|
getAdPlacesRulesForAllDomains: () => Promise<Record<string, RawAdPlacesRule[]>>;
|
|
202
208
|
getProvidersToReplaceAtAllSites: () => Promise<string[]>;
|
|
203
209
|
getProvidersRulesForAllDomains: () => Promise<Record<string, RawAdProvidersRule[]>>;
|
|
204
|
-
getSelectorsForAllProviders: () => Promise<Record<string, string
|
|
210
|
+
getSelectorsForAllProviders: () => Promise<Record<string, (string | {
|
|
211
|
+
selector: string;
|
|
212
|
+
parentDepth: number;
|
|
213
|
+
})[]>>;
|
|
205
214
|
getPermanentAdPlacesRulesForAllDomains: () => Promise<Record<string, RawPermanentAdPlacesRule[]>>;
|
|
206
215
|
getPermanentNativeAdPlacesRulesForAllDomains: () => Promise<Record<string, RawPermanentAdPlacesRule[]>>;
|
|
207
216
|
getAdsReplaceUrlsBlacklist: () => Promise<string[]>;
|
package/dist/index.js
CHANGED
|
@@ -4,19 +4,19 @@ var nanoid = require('nanoid');
|
|
|
4
4
|
var Fe = require('webextension-polyfill');
|
|
5
5
|
var cryptoJs = require('crypto-js');
|
|
6
6
|
var lodash = require('lodash');
|
|
7
|
-
var
|
|
8
|
-
var
|
|
7
|
+
var it = require('@vespaiach/axios-fetch-adapter');
|
|
8
|
+
var ot = require('axios');
|
|
9
9
|
|
|
10
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
11
|
|
|
12
12
|
var Fe__default = /*#__PURE__*/_interopDefault(Fe);
|
|
13
|
-
var st__default = /*#__PURE__*/_interopDefault(st);
|
|
14
13
|
var it__default = /*#__PURE__*/_interopDefault(it);
|
|
14
|
+
var ot__default = /*#__PURE__*/_interopDefault(ot);
|
|
15
15
|
|
|
16
|
-
var Ce=Object.defineProperty,Ne=Object.defineProperties;var We=Object.getOwnPropertyDescriptors;var $=Object.getOwnPropertySymbols;var Ee=Object.prototype.hasOwnProperty,he=Object.prototype.propertyIsEnumerable;var ue=(e,t,r)=>t in e?Ce(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,y=(e,t)=>{for(var r in t||(t={}))Ee.call(t,r)&&ue(e,r,t[r]);if($)for(var r of $(t))he.call(t,r)&&ue(e,r,t[r]);return e},P=(e,t)=>Ne(e,We(t));var T=(e,t)=>{var r={};for(var o in e)Ee.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&$)for(var o of $(e))t.indexOf(o)<0&&he.call(e,o)&&(r[o]=e[o]);return r};var R=(e,t,r)=>new Promise((o,n)=>{var s=m=>{try{i(r.next(m));}catch(l){n(l);}},a=m=>{try{i(r.throw(m));}catch(l){n(l);}},i=m=>m.done?o(m.value):Promise.resolve(m.value).then(s,a);i((r=r.apply(e,t)).next());});var fe=e=>!!e;var _=(e=300)=>new Promise(t=>setTimeout(t,e));var p=class{};p.HYPELAB_NATIVE_PLACEMENT_SLUG="",p.HYPELAB_SMALL_PLACEMENT_SLUG="",p.HYPELAB_HIGH_PLACEMENT_SLUG="",p.HYPELAB_WIDE_PLACEMENT_SLUG="",p.HYPELAB_ADS_WINDOW_URL="",p.TKEY_INPAGE_AD_URL="",p.SWAP_TKEY_URL="",p.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE="",p.getPersonaIframeURL=()=>"",p.getAdsStackIframeURL=()=>"";var Oe=e=>{let{hypelab:t,hypelabAdsWindowUrl:r,tkeyInpageAdUrl:o,swapTkeyUrl:n,externalAdsActivityMessageType:s,getPersonaIframeURL:a,getAdsStackIframeURL:i,extVersion:m,templePassphrase:l}=e,{native:c,small:A,regular:d,wide:u}=t;p.HYPELAB_NATIVE_PLACEMENT_SLUG=c,p.HYPELAB_SMALL_PLACEMENT_SLUG=A,p.HYPELAB_HIGH_PLACEMENT_SLUG=d,p.HYPELAB_WIDE_PLACEMENT_SLUG=u,p.HYPELAB_ADS_WINDOW_URL=r,p.TKEY_INPAGE_AD_URL=o,p.SWAP_TKEY_URL=n,p.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE=s,p.getPersonaIframeURL=a,p.getAdsStackIframeURL=i,p.EXTENSION_VERSION=m,p.TEMPLE_PASSPHRASE=l;};var b=[{source:{providerName:"HypeLab",native:!1,size:"wide"},dimensions:{width:728,height:90,minContainerWidth:701,minContainerHeight:60,maxContainerWidth:1/0,maxContainerHeight:300}},{source:{providerName:"Temple"},dimensions:{width:728,height:90,minContainerWidth:701,minContainerHeight:60,maxContainerWidth:1/0,maxContainerHeight:300}},{source:{providerName:"Persona",shape:"medium"},dimensions:{width:600,height:160,minContainerWidth:600,minContainerHeight:80,maxContainerWidth:800,maxContainerHeight:300}},{source:{providerName:"HypeLab",native:!1,size:"high"},dimensions:{width:300,height:250,minContainerWidth:300,minContainerHeight:170,maxContainerWidth:700,maxContainerHeight:1/0}},{source:{providerName:"Persona",shape:"squarish"},dimensions:{width:300,height:250,minContainerWidth:300,minContainerHeight:170,maxContainerWidth:700,maxContainerHeight:1/0}},{source:{providerName:"HypeLab",native:!1,size:"small",shouldNotUseStrictContainerLimits:!0},dimensions:{width:320,height:50,minContainerWidth:230,minContainerHeight:32,maxContainerWidth:420,maxContainerHeight:110}},{source:{providerName:"Persona",shape:"regular",shouldNotUseStrictContainerLimits:!0},dimensions:{width:321,height:101,minContainerWidth:230,minContainerHeight:32,maxContainerWidth:420,maxContainerHeight:110}}],Re=(e,t)=>({source:{providerName:"HypeLab",native:!0,slug:p.HYPELAB_NATIVE_PLACEMENT_SLUG},dimensions:{width:Math.max(160,e),height:Math.max(16,t),minContainerWidth:2,minContainerHeight:2,maxContainerWidth:1/0,maxContainerHeight:1/0}});var H="twa",z="twa-sibling-replacement";var q="adRenderStart",K="resize",C="ready",Y="error";var v=`iframe[${H}], div[${H}]`,N=e=>!!e.closest(v),W=e=>{var t;return !!((t=e.previousElementSibling)!=null&&t.getAttribute(z))},Q=e=>{let t=getComputedStyle(e),{x:r,right:o,width:n,height:s}=e.getBoundingClientRect(),a={width:n,height:s},i=["width","height"];for(let m of i){let l=t[m],A=e.getAttribute(m)||l;/\d+px/.test(A)&&(a[m]=Number(A.replace("px",""))),m==="width"&&r<0?a.width+=r:m==="width"&&o>window.innerWidth&&(a.width=window.innerWidth-r);}return a},L=(e,t,r=document)=>e?t?[...r.querySelectorAll(e)]:[r.querySelector(e)].filter(o=>!!o):[],F=(e,t)=>{let r=e;for(let o=0;o<t;o++){let n=r.parentElement;if(!n)return null;r=n;}return r},ge=b.length-2,ye=(e,t,r,o)=>e<2&&t<2?[]:o?[Re(e,t)]:b.reduce((n,{dimensions:s},a)=>{let{minContainerWidth:i,maxContainerWidth:m,minContainerHeight:l,maxContainerHeight:c,width:A}=s,d=!1;switch(r){case"permanent":d=a===ge||e>=A&&(t>=l||t<2);break;case"slot-replacement":d=a===ge||e>=i&&(t>=l||t<2);break;default:d=e>=i&&t>=l&&e<=m&&t<=c;}return d&&n.push(a),n},[]);var Se=(e,t,r)=>R(void 0,null,function*(){let{isMultiple:o,cssString:n,parentDepth:s}=e.parentSelector,a=L(n,o).map(i=>F(i,s)).filter(i=>!!i);return yield Promise.all(a.map(i=>R(void 0,null,function*(){yield _(0),Ue(i,e,t,r);}))),a}),Ue=(e,t,r,o)=>{var me;let{shouldUseDivWrapper:n,divWrapperStyle:s,elementStyle:a,adSelector:i,insertionIndex:m,insertBeforeSelector:l,insertAfterSelector:c,insertionsCount:A=1,elementToMeasureSelector:d,stylesOverrides:u,shouldHideOriginal:E=!1,isNative:f}=t,g=n?s:{display:"contents"},{isMultiple:w,cssString:I,parentDepth:M}=i,O=L(v,!0,e).reduce((h,x)=>h.some(B=>B.contains(x)||x.contains(B))?h:[...h,x],[]).length,S=A-O;if(L(I,w,e).map(h=>F(h,M)).filter(h=>fe(h)&&!N(h)).forEach(h=>{var B,ce;let x=window.getComputedStyle(h).display==="none";if(S<=0)(!E||!x)&&o.push({type:E?"hide-element":"remove-element",element:h});else {let J=((B=h.parentElement)==null?void 0:B.children.length)===1?h.parentElement:h;d&&(J=(ce=document.querySelector(d))!=null?ce:J);let He={type:"replace-element",element:h,divWrapperStyle:g,elementStyle:a,stylesOverrides:u},Ae={type:"hide-element",element:h},De={type:"simple-insert-ad",divWrapperStyle:g,elementStyle:a,parent:h.parentElement,insertionIndex:Array.from(h.parentElement.children).indexOf(h),isSiblingReplacement:!0,stylesOverrides:u},k=[],pe=W(h);E&&pe&&!x?k=[Ae]:E&&!pe?k=[Ae,De]:E||(k=[He]),k.length>0&&r(J,"permanent",f,...k)&&S--;}}),S<=0)return;let U=-1,le=e,j=e,de=l||c;if(de){let h=e.querySelector(de),x=h==null?void 0:h.parentElement;h&&x&&(le=x,U=Array.from(e.children).indexOf(h)+(l?0:1),j=d&&document.querySelector(d)||h);}else {let h=m!=null?m:0;U=h<0?Math.max(e.children.length+h,0):Math.min(h,e.children.length),j=d&&document.querySelector(d)||((me=e.children[U])!=null?me:e);}if(U!==-1){let h={type:"simple-insert-ad",divWrapperStyle:g,elementStyle:a,parent:le,insertionIndex:U,isSiblingReplacement:!1,stylesOverrides:u};r(j,"permanent",f,...Array(S).fill(h));}};var Be=["align-items","align-self","bottom","display","flex","flex-grow","flex-shrink","float","justify-content","justify-self","left","margin","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","padding","position","right","top","vertical-align","z-index"],Pe=(e,t,r)=>R(void 0,null,function*(){let o=L(e,!0).reduce((n,s)=>{let a=n.findIndex(d=>d.contains(s)),i=s.parentElement&&window.getComputedStyle(s.parentElement),{width:m,height:l}=Q(s),c=r.some(d=>{var u;return d.type==="replace-all-children"||d.type==="simple-insert-ad"?d.parent.contains(s)||s.contains(d.parent):((u=d.element.parentElement)==null?void 0:u.contains(s))||s.contains(d.element)}),A=(i==null?void 0:i.display)==="none"||(i==null?void 0:i.visibility)==="hidden";return c||m===0||l===0||A||(a>=0?n.splice(a,1,s):n.some(d=>d.contains(s))||n.push(s)),n},[]);yield Promise.all(o.map(n=>R(void 0,null,function*(){var i,m,l,c,A,d,u,E;yield _(0);let s=n.parentElement,a=(m=(i=s==null?void 0:s.closest("div, article, aside, footer, header"))!=null?i:(s==null?void 0:s.tagName.toLowerCase())==="body"?void 0:s)!=null?m:n;if(!N(n)&&!n.querySelector(v)&&!r.some(f=>f.type==="simple-insert-ad"?!1:f.type==="replace-all-children"?f.parent.contains(n):f.element===n)){let f=(l=n.getAttribute("style"))!=null?l:"",g=Object.fromEntries(f.split(";").filter(Boolean).map(S=>S.split(":").map(ae=>ae.trim())));if((c=g.width)!=null&&c.match(/^0[a-z]/)||(A=g.height)!=null&&A.match(/^0[a-z]/))return;let w=window.getComputedStyle(n),I=y(y({},Object.fromEntries(Be.map(S=>[S,w.getPropertyValue(S)]))),g),M={type:"hide-element",element:n},X={type:"simple-insert-ad",divWrapperStyle:I,parent:(d=n.parentElement)!=null?d:document.body,insertionIndex:Array.from((E=(u=n.parentElement)==null?void 0:u.children)!=null?E:[]).indexOf(n),isSiblingReplacement:!0},O=W(n)?window.getComputedStyle(n).display==="none"?[]:[M]:[M,X];t(a,"provider-replacement",!1,...O);}})));});var Te=(e,t,r)=>R(void 0,null,function*(){let{cssString:o,isMultiple:n}=e.selector,s=L(o,n);yield Promise.all(s.map(a=>R(void 0,null,function*(){yield _(0),ke(a,e,t,r);})));}),ke=(e,t,r,o)=>{let{selector:{shouldUseDivWrapper:n,parentDepth:s,divWrapperStyle:a},stylesOverrides:i,shouldHideOriginal:m}=t,l=F(e,s);if(!l||r.some(d=>d.contains(l))||N(l)||l.querySelector(v))return;let c={shouldUseDivWrapper:n,divWrapperStyle:a},A;if(n&&m){let d=l.parentElement,u=window.getComputedStyle(l).display==="none",E=y({type:"simple-insert-ad",parent:d,insertionIndex:Array.from(d.children).indexOf(l),stylesOverrides:i==null?void 0:i.map(w=>{var I=w,{parentDepth:f}=I,g=T(I,["parentDepth"]);return P(y({},g),{parentDepth:f-1})}),isSiblingReplacement:!0},c);A=[],u||A.push({type:"hide-element",element:l}),W(l)||A.push(E);}else if(n)A=[y({type:"replace-element",element:l,stylesOverrides:i==null?void 0:i.map(f=>{var g=f,{parentDepth:u}=g,E=T(g,["parentDepth"]);return P(y({},E),{parentDepth:u-1})})},c)];else if(m){let d={type:"simple-insert-ad",parent:l,insertionIndex:0,stylesOverrides:i,isSiblingReplacement:!0,divWrapperStyle:{display:"contents"}};A=Array.from(l.children).filter(u=>window.getComputedStyle(u).display!=="none").map(u=>({type:"hide-element",element:u})),l.querySelector(v)||A.push(d);}else A=[{type:"replace-all-children",parent:l,stylesOverrides:i,divWrapperStyle:{display:"contents"}}];A.length>0&&o(l,"slot-replacement",!1,...A);};var Ye=o=>R(void 0,[o],function*({providersSelector:e,adPlacesRules:t,permanentAdPlacesRules:r}){let n=[],s=(i,m,l,...c)=>{let{width:A,height:d}=Q(i),u=ye(A,d,m,l);return u.length?(n.push(...c.map(E=>E.type==="hide-element"||E.type==="remove-element"?E:P(y({},E),{adsMetadata:u}))),!0):!1},a=[];return yield Promise.all(r.map(i=>R(void 0,null,function*(){yield _(0),a=a.concat(yield Se(i,s,n));}))),yield Promise.all(t.map(i=>R(void 0,null,function*(){yield _(0),yield Te(i,a,s);}))),yield Pe(e,s,n),n});var ee=(n=>(n.Optimal="Optimal",n.HypeLab="HypeLab",n.Persona="Persona",n.Temple="Temple Wallet",n))(ee||{});var te=new Set,Ie=new Set,we=new Set,Ve=3e4,_e=e=>R(void 0,null,function*(){let t=e.id;if(!te.has(t))return te.add(t),new Promise((r,o)=>{setTimeout(()=>{window.removeEventListener("message",n),o(new Error(`Timeout exceeded for ${t}`));},Ve);let n=s=>{var a;if(s.source===e.contentWindow)try{let i=typeof s.data=="string"?JSON.parse(s.data):s.data;if(i.id!==t)return;switch(i.type){case C:r(i.adMetadata.source.providerName);break;case Y:window.removeEventListener("message",n),e.style.display="none",o(new Error((a=i.reason)!=null?a:"Unknown error"));break;case q:let{dimensions:m}=i.adMetadata,{width:l,height:c}=m;l>0&&c>0&&(e.style.width=`${m.width}px`,e.style.height=`${m.height}px`);break;case K:let{width:A,height:d}=i;e.style.width=`${A}px`,e.style.height=`${d}px`;}}catch(i){console.error("Observing error:",i);}};window.addEventListener("message",n);}).then(r=>{if(Ie.has(t))return;Ie.add(t),$e(e)?ve(t,r):Ge(e,r);}).catch(console.error).finally(()=>void te.delete(t))}),Ge=(e,t)=>{let r=new IntersectionObserver(o=>{o.some(n=>n.isIntersecting)&&(ve(e.id,t),r.disconnect());},{threshold:.5});r.observe(e);},ve=(e,t)=>{if(we.has(e))return;we.add(e);let r=window.parent.location.href;Fe__default.default.runtime.sendMessage({type:p.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE,url:r,provider:ee[t]}).catch(o=>void console.error(o));},$e=e=>{let t=e.getBoundingClientRect(),r=window.visualViewport;if(!r)return !1;let o=Math.min(Math.max(0,t.x),r.width),n=Math.min(Math.max(0,t.x+t.width),r.width),s=Math.min(Math.max(0,t.y),r.height),a=Math.min(Math.max(0,t.y+t.height),r.height),i=t.width*t.height;return (n-o)*(a-s)/i>=.5};var ne=(e,t)=>{for(let r in t)e.style.setProperty(r,t[r]);};var qe=(e,t)=>{["width","height"].forEach(o=>{var s;let n=(s=e.style[o])!=null?s:"";/^\d+(px)?$/.test(n)&&parseInt(n,10)<t[o]&&e.style.removeProperty(o);});},Ke=(e,t)=>R(void 0,null,function*(){let{elementStyle:r={},stylesOverrides:o=[]}=e;o.sort((c,A)=>c.parentDepth-A.parentDepth);let n,s=nanoid.nanoid(),a=document.createElement("iframe");a.src=p.getAdsStackIframeURL(s,e.adsMetadata,window.location.href),a.id=s;let i=e.adsMetadata[0],{dimensions:m}=typeof i=="number"?b[i]:i;a.style.width=`${m.width}px`,a.style.height=`${m.height}px`,a.style.border="none";for(let c in r)a.style.setProperty(c,r[c]);switch(a.setAttribute(H,"true"),qe(t,m),t.appendChild(a),e.type){case"replace-all-children":n=e.parent,e.parent.innerHTML="",e.parent.appendChild(t);break;case"replace-element":n=e.element.parentElement,e.element.replaceWith(t);break;default:e.isSiblingReplacement&&t.setAttribute(z,"true"),n=e.parent,e.parent.insertBefore(t,e.parent.children[e.insertionIndex]);break}_e(a);let l=0;o.forEach(({parentDepth:c,style:A})=>{for(;c>l&&n;)n=n.parentElement,l++;n&&ne(n,A);});}),Le=e=>R(void 0,null,function*(){let{divWrapperStyle:t={}}=e,r=document.createElement("div");r.setAttribute(H,"true"),ne(r,t),yield Ke(e,r).catch(o=>{console.error("Inserting an ad attempt error:",o);let n=document.createElement("div");throw n.setAttribute(H,"true"),n.style.display="none",r.replaceWith(n),o});});var Qe=e=>Promise.allSettled(e.map(t=>R(void 0,null,function*(){t.type==="remove-element"?t.element.remove():t.type==="hide-element"?t.element.style.setProperty("display","none"):yield Le(t);})));var re=(e,t)=>{let r=document.createElement("div");r.style.width=`${e}px`,r.style.height=`${t}px`;let o=document.createElement("div");o.style.width=`${e}px`,o.style.height=`${t}px`,r.appendChild(o);let n=document.createElement("a");n.href=p.SWAP_TKEY_URL,n.target="_blank",n.rel="noopener noreferrer",n.style.width="100%",n.style.height="100%",o.appendChild(n);let s=document.createElement("img");return s.src=p.TKEY_INPAGE_AD_URL,s.style.width="100%",s.style.height="100%",n.appendChild(s),{element:r}};var se=(e,t,r)=>{let{width:o,height:n}=t,s=document.createElement("iframe");return s.src=je(e,r,o,n,s.id),s.style.width=`${o}px`,s.style.height=`${n}px`,s.style.border="none",{element:s}},je=(e,t,r,o,n)=>{let s,a,i;if(e.native)i=p.HYPELAB_NATIVE_PLACEMENT_SLUG,s=360,a=110;else switch(e.size){case"small":s=320,a=50,i=p.HYPELAB_SMALL_PLACEMENT_SLUG;break;case"high":s=300,a=250,i=p.HYPELAB_HIGH_PLACEMENT_SLUG;break;case"wide":s=728,a=90,i=p.HYPELAB_WIDE_PLACEMENT_SLUG;break}let m=new URL(p.HYPELAB_ADS_WINDOW_URL);return m.searchParams.set("w",String(r!=null?r:s)),m.searchParams.set("h",String(o!=null?o:a)),m.searchParams.set("p",i),m.searchParams.set("o",Je(t)),n&&m.searchParams.set("id",n),m.toString()},Je=e=>cryptoJs.AES.encrypt(e,p.TEMPLE_PASSPHRASE).toString();var ie=(e,t,{width:r,height:o})=>{let n=document.createElement("iframe");return n.src=p.getPersonaIframeURL(e,t),n.id=e,n.style.width=`${r}px`,n.style.height=`${o}px`,n.style.border="none",{element:n}};var Ze=3e4,G=e=>window.parent.postMessage(JSON.stringify(e),"*"),Me=(e,t,r)=>R(void 0,null,function*(){if(t.length===0){G({id:e,type:Y,reason:"No more ads to render"});return}let[o,...n]=t,s=typeof o=="number"?b[o]:o;G({id:e,type:q,adMetadata:s});let{source:a,dimensions:i}=s,m;switch(a.providerName){case"Temple":m=re(i.width,i.height);break;case"HypeLab":m=se(a,i,r);break;default:m=ie(e,a.shape,i);}let{element:l}=m;if(document.body.replaceChildren(l),l instanceof HTMLIFrameElement)return new Promise((c,A)=>{setTimeout(()=>{window.removeEventListener("message",u),A(new Error(`Timeout exceeded for ${e}, ad source: ${JSON.stringify(a)}`));},Ze);let d=!1,u=E=>{var f;if(E.source===l.contentWindow)try{let g=typeof E.data=="string"?JSON.parse(E.data):E.data;switch(g.type){case C:d||(d=!0,G({id:e,type:C,adMetadata:s}),c());break;case Y:window.removeEventListener("message",u),A(new Error((f=g.reason)!=null?f:"Unknown error"));break;case K:let{width:w,height:I}=g;w>0&&I>0&&(l.style.width=`${w}px`,l.style.height=`${I}px`,G(P(y({},g),{id:e})));}}catch(g){console.error("Observing error:",g);}};window.addEventListener("message",u);}).catch(c=>(console.error(c),Me(e,n,r)));G({id:e,type:C,adMetadata:s});});var et=(e,t)=>{let{adPlacesRulesForAllDomains:r,providersRulesForAllDomains:o,providersSelectors:n,providersToReplaceAtAllSites:s,permanentAdPlacesRulesForAllDomains:a,permanentNativeAdPlacesRulesForAllDomains:i={},adsReplaceUrlsBlacklist:m=[],timestamp:l}=t,{hostname:c,href:A}=e;if(m.some(E=>new RegExp(E).test(A)))return {adPlacesRules:[],permanentAdPlacesRules:[],providersSelector:"",timestamp:l};let d=A.replace(/#.*$/,""),u=E=>{let f=E.source.includes("#")?A:d;return E.test(f)};return {adPlacesRules:tt(c,u,r),permanentAdPlacesRules:nt(c,u,a,i),providersSelector:rt(c,u,o,n,s),timestamp:l}},tt=(e,t,r)=>{var s;return ((s=r[e])!=null?s:[]).map(m=>{var l=m,{urlRegexes:a}=l,i=T(l,["urlRegexes"]);return P(y({},i),{urlRegexes:a.map(c=>new RegExp(c))})}).reduce((a,c)=>{var A=c,{urlRegexes:i,selector:m}=A,l=T(A,["urlRegexes","selector"]);if(!i.some(t))return a;let f=m,{cssString:d}=f,u=T(f,["cssString"]),E=a.findIndex(I=>{var M=I,{selector:g}=M,w=T(M,["selector"]);let S=g,O=T(S,["cssString"]);return lodash.isEqual(u,O)&&lodash.isEqual(l,w)});return E===-1?a.push(y({selector:m},l)):a[E].selector.cssString+=", ".concat(d),a},[])},nt=(e,t,r,o={})=>{var i,m;let n=(i=r[e])!=null?i:[],s=(m=o[e])!=null?m:[];return n.map(A=>{var d=A,{urlRegexes:l}=d,c=T(d,["urlRegexes"]);return P(y({},c),{urlRegexes:l.map(u=>new RegExp(u)),isNative:!1})}).concat(s.map(A=>{var d=A,{urlRegexes:l}=d,c=T(d,["urlRegexes"]);return P(y({},c),{urlRegexes:l.map(u=>new RegExp(u)),isNative:!0})})).filter(({urlRegexes:l})=>l.some(t))},rt=(e,t,r,o,n)=>{var A;let a=((A=r[e])!=null?A:[]).map(E=>{var f=E,{urlRegexes:d}=f,u=T(f,["urlRegexes"]);return P(y({},u),{urlRegexes:d.map(g=>new RegExp(g))})}).filter(({urlRegexes:d})=>d.some(t)),i=new Set,m=new Set,l=d=>{var E;if(i.has(d))return;((E=o[d])!=null?E:[]).forEach(f=>m.add(f)),i.add(d);};n.forEach(l),a.forEach(({providers:d})=>d.forEach(l));let c="";return m.forEach(d=>{c+=d+", ";}),c&&(c=c.slice(0,-2)),c};var D=e=>(...t)=>R(void 0,null,function*(){let{data:r}=yield e(...t);return r}),oe=class{constructor(t){this.getAdPlacesRulesForAllDomains=D(()=>this.api.get("/slise-ad-rules/ad-places",this.getAdVersionRequestConfig()));this.getProvidersToReplaceAtAllSites=D(()=>this.api.get("/slise-ad-rules/providers/all-sites"));this.getProvidersRulesForAllDomains=D(()=>this.api.get("/slise-ad-rules/providers/by-sites"));this.getSelectorsForAllProviders=D(()=>this.api.get("/slise-ad-rules/providers",this.getAdVersionRequestConfig()));this.getPermanentAdPlacesRulesForAllDomains=D(()=>this.api.get("/slise-ad-rules/ad-places/permanent",this.getAdVersionRequestConfig()));this.getPermanentNativeAdPlacesRulesForAllDomains=D(()=>this.api.get("/slise-ad-rules/ad-places/permanent-native",this.getAdVersionRequestConfig()));this.getAdsReplaceUrlsBlacklist=D(()=>this.api.get("/slise-ad-rules/replace-urls-blacklist",this.getAdVersionRequestConfig()));this.getAllRules=()=>R(this,null,function*(){let[t,r,o,n,s,a,i]=yield Promise.all([this.getAdPlacesRulesForAllDomains(),this.getProvidersRulesForAllDomains(),this.getSelectorsForAllProviders(),this.getProvidersToReplaceAtAllSites(),this.getPermanentAdPlacesRulesForAllDomains(),this.getPermanentNativeAdPlacesRulesForAllDomains(),this.getAdsReplaceUrlsBlacklist()]);return {adPlacesRulesForAllDomains:t,providersRulesForAllDomains:r,providersSelectors:o,providersToReplaceAtAllSites:n,permanentAdPlacesRulesForAllDomains:s,permanentNativeAdPlacesRulesForAllDomains:a,adsReplaceUrlsBlacklist:i,timestamp:Date.now()}});this.api=it__default.default.create({baseURL:new URL("/api",t).href,adapter:st__default.default});}getAdVersionRequestConfig(){return {params:{extVersion:p.EXTENSION_VERSION}}}};
|
|
16
|
+
var Ce=Object.defineProperty,Ne=Object.defineProperties;var We=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var he=Object.prototype.hasOwnProperty,Ee=Object.prototype.propertyIsEnumerable;var ue=(e,t,n)=>t in e?Ce(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,g=(e,t)=>{for(var n in t||(t={}))he.call(t,n)&&ue(e,n,t[n]);if(z)for(var n of z(t))Ee.call(t,n)&&ue(e,n,t[n]);return e},w=(e,t)=>Ne(e,We(t));var I=(e,t)=>{var n={};for(var s in e)he.call(e,s)&&t.indexOf(s)<0&&(n[s]=e[s]);if(e!=null&&z)for(var s of z(e))t.indexOf(s)<0&&Ee.call(e,s)&&(n[s]=e[s]);return n};var y=(e,t,n)=>new Promise((s,r)=>{var l=a=>{try{o(n.next(a));}catch(d){r(d);}},i=a=>{try{o(n.throw(a));}catch(d){r(d);}},o=a=>a.done?s(a.value):Promise.resolve(a.value).then(l,i);o((n=n.apply(e,t)).next());});var fe=e=>!!e;var _=(e=300)=>new Promise(t=>setTimeout(t,e));var p=class{};p.HYPELAB_NATIVE_PLACEMENT_SLUG="",p.HYPELAB_SMALL_PLACEMENT_SLUG="",p.HYPELAB_HIGH_PLACEMENT_SLUG="",p.HYPELAB_WIDE_PLACEMENT_SLUG="",p.HYPELAB_ADS_WINDOW_URL="",p.TKEY_INPAGE_AD_URL="",p.SWAP_TKEY_URL="",p.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE="",p.getPersonaIframeURL=()=>"",p.getAdsStackIframeURL=()=>"";var Be=e=>{let{hypelab:t,hypelabAdsWindowUrl:n,tkeyInpageAdUrl:s,swapTkeyUrl:r,externalAdsActivityMessageType:l,getPersonaIframeURL:i,getAdsStackIframeURL:o,extVersion:a,templePassphrase:d}=e,{native:c,small:m,regular:A,wide:u}=t;p.HYPELAB_NATIVE_PLACEMENT_SLUG=c,p.HYPELAB_SMALL_PLACEMENT_SLUG=m,p.HYPELAB_HIGH_PLACEMENT_SLUG=A,p.HYPELAB_WIDE_PLACEMENT_SLUG=u,p.HYPELAB_ADS_WINDOW_URL=n,p.TKEY_INPAGE_AD_URL=s,p.SWAP_TKEY_URL=r,p.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE=l,p.getPersonaIframeURL=i,p.getAdsStackIframeURL=o,p.EXTENSION_VERSION=a,p.TEMPLE_PASSPHRASE=d;};var H=[{source:{providerName:"HypeLab",native:!1,size:"wide"},dimensions:{width:728,height:90,minContainerWidth:701,minContainerHeight:60,maxContainerWidth:1/0,maxContainerHeight:300}},{source:{providerName:"Temple"},dimensions:{width:728,height:90,minContainerWidth:701,minContainerHeight:60,maxContainerWidth:1/0,maxContainerHeight:300}},{source:{providerName:"Persona",shape:"medium"},dimensions:{width:600,height:160,minContainerWidth:600,minContainerHeight:80,maxContainerWidth:800,maxContainerHeight:300}},{source:{providerName:"HypeLab",native:!1,size:"high"},dimensions:{width:300,height:250,minContainerWidth:300,minContainerHeight:170,maxContainerWidth:700,maxContainerHeight:1/0}},{source:{providerName:"Persona",shape:"squarish"},dimensions:{width:300,height:250,minContainerWidth:300,minContainerHeight:170,maxContainerWidth:700,maxContainerHeight:1/0}},{source:{providerName:"HypeLab",native:!1,size:"small",shouldNotUseStrictContainerLimits:!0},dimensions:{width:320,height:50,minContainerWidth:230,minContainerHeight:32,maxContainerWidth:420,maxContainerHeight:130}},{source:{providerName:"Persona",shape:"regular",shouldNotUseStrictContainerLimits:!0},dimensions:{width:321,height:101,minContainerWidth:230,minContainerHeight:32,maxContainerWidth:420,maxContainerHeight:130}}],Re=(e,t)=>({source:{providerName:"HypeLab",native:!0,slug:p.HYPELAB_NATIVE_PLACEMENT_SLUG},dimensions:{width:Math.max(160,e),height:Math.max(16,t),minContainerWidth:2,minContainerHeight:2,maxContainerWidth:1/0,maxContainerHeight:1/0}});var D="twa",q="twa-sibling-replacement";var K="adRenderStart",Q="resize",B="ready",V="error";var M=`iframe[${D}], div[${D}]`,O=e=>!!e.closest(M),U=e=>{var t;return !!((t=e.previousElementSibling)!=null&&t.getAttribute(q))},X=e=>{let t=getComputedStyle(e),{x:n,right:s,width:r,height:l}=e.getBoundingClientRect(),i={width:r,height:l},o=["width","height"];for(let a of o){let d=t[a],m=e.getAttribute(a)||d;/\d+px/.test(m)&&(i[a]=Number(m.replace("px",""))),a==="width"&&n<0?i.width+=n:a==="width"&&s>window.innerWidth&&(i.width=window.innerWidth-n);}return i},b=(e,t,n=document)=>e?t?[...n.querySelectorAll(e)]:[n.querySelector(e)].filter(s=>!!s):[],C=(e,t)=>{let n=e;for(let s=0;s<t;s++){let r=n.parentElement;if(!r)return null;n=r;}return n},ye=H.length-2,ge=(e,t,n,s)=>e<2&&t<2?[]:s?[Re(e,t)]:H.reduce((r,{dimensions:l},i)=>{let{minContainerWidth:o,maxContainerWidth:a,minContainerHeight:d,maxContainerHeight:c,width:m}=l,A=!1;switch(n){case"permanent":A=i===ye||e>=m&&(t>=d||t<2);break;case"slot-replacement":A=i===ye||e>=o&&(t>=d||t<2);break;default:A=e>=o&&t>=d&&e<=a&&t<=c;}return A&&r.push(i),r},[]);var Se=(e,t,n)=>y(void 0,null,function*(){let{isMultiple:s,cssString:r,parentDepth:l}=e.parentSelector,i=b(r,s).map(o=>C(o,l)).filter(o=>!!o);return yield Promise.all(i.map(o=>y(void 0,null,function*(){yield _(0),Oe(o,e,t,n);}))),i}),Oe=(e,t,n,s)=>{var me;let{shouldUseDivWrapper:r,divWrapperStyle:l,elementStyle:i,adSelector:o,insertionIndex:a,insertBeforeSelector:d,insertAfterSelector:c,insertionsCount:m=1,elementToMeasureSelector:A,stylesOverrides:u,shouldHideOriginal:h=!1,isNative:R}=t,E=r?l:{display:"contents"},{isMultiple:S,cssString:x,parentDepth:P}=o,L=b(M,!0,e).reduce((f,v)=>f.some(Y=>Y.contains(v)||v.contains(Y))?f:[...f,v],[]).length,T=m-L;if(b(x,S,e).map(f=>C(f,P)).filter(f=>fe(f)&&!O(f)).forEach(f=>{var Y,ce;let v=window.getComputedStyle(f).display==="none";if(T<=0)(!h||!v)&&s.push({type:h?"hide-element":"remove-element",element:f});else {let J=((Y=f.parentElement)==null?void 0:Y.children.length)===1?f.parentElement:f;A&&(J=(ce=document.querySelector(A))!=null?ce:J);let He={type:"replace-element",element:f,divWrapperStyle:E,elementStyle:i,stylesOverrides:u},Ae={type:"hide-element",element:f},De={type:"simple-insert-ad",divWrapperStyle:E,elementStyle:i,parent:f.parentElement,insertionIndex:Array.from(f.parentElement.children).indexOf(f),isSiblingReplacement:!0,stylesOverrides:u},F=[],pe=U(f);h&&pe&&!v?F=[Ae]:h&&!pe?F=[Ae,De]:h||(F=[He]),F.length>0&&n(J,"permanent",R,...F)&&T--;}}),T<=0)return;let k=-1,le=e,j=e,de=d||c;if(de){let f=e.querySelector(de),v=f==null?void 0:f.parentElement;f&&v&&(le=v,k=Array.from(e.children).indexOf(f)+(d?0:1),j=A&&document.querySelector(A)||f);}else {let f=a!=null?a:0;k=f<0?Math.max(e.children.length+f,0):Math.min(f,e.children.length),j=A&&document.querySelector(A)||((me=e.children[k])!=null?me:e);}if(k!==-1){let f={type:"simple-insert-ad",divWrapperStyle:E,elementStyle:i,parent:le,insertionIndex:k,isSiblingReplacement:!1,stylesOverrides:u};n(j,"permanent",R,...Array(T).fill(f));}};var Ue=["align-items","align-self","bottom","display","flex","flex-grow","flex-shrink","float","justify-content","justify-self","left","margin","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","padding","position","right","top","vertical-align","z-index"],Pe=(e,t,n)=>y(void 0,null,function*(){let s=e.map(({selector:r,parentDepth:l})=>b(r,!0).reduce((i,o)=>{var R;let a=(R=C(o,l))!=null?R:o,d=i.findIndex(E=>E.contains(a)),c=a.parentElement&&window.getComputedStyle(a.parentElement),{width:m,height:A}=X(a),u=n.some(E=>{var S;return E.type==="replace-all-children"||E.type==="simple-insert-ad"?E.parent.contains(a)||a.contains(E.parent):((S=E.element.parentElement)==null?void 0:S.contains(a))||a.contains(E.element)}),h=(c==null?void 0:c.display)==="none"||(c==null?void 0:c.visibility)==="hidden";return u||m===0||A===0||h||(d>=0?i.splice(d,1,a):i.some(E=>E.contains(a))||i.push(a)),i},[])).flat();yield Promise.all(s.map(r=>y(void 0,null,function*(){var o,a,d,c,m,A,u,h;yield _(0);let l=r.parentElement,i=(a=(o=l==null?void 0:l.closest("div, article, aside, footer, header"))!=null?o:(l==null?void 0:l.tagName.toLowerCase())==="body"?void 0:l)!=null?a:r;if(!O(r)&&!r.querySelector(M)&&!n.some(R=>R.type==="simple-insert-ad"?!1:R.type==="replace-all-children"?R.parent.contains(r):R.element===r)){let R=(d=r.getAttribute("style"))!=null?d:"",E=Object.fromEntries(R.split(";").filter(Boolean).map(T=>T.split(":").map(ae=>ae.trim())));if((c=E.width)!=null&&c.match(/^0[a-z]/)||(m=E.height)!=null&&m.match(/^0[a-z]/))return;let S=window.getComputedStyle(r),x=g(g({},Object.fromEntries(Ue.map(T=>[T,S.getPropertyValue(T)]))),E),P={type:"hide-element",element:r},W={type:"simple-insert-ad",divWrapperStyle:x,parent:(A=r.parentElement)!=null?A:document.body,insertionIndex:Array.from((h=(u=r.parentElement)==null?void 0:u.children)!=null?h:[]).indexOf(r),isSiblingReplacement:!0},L=U(r)?window.getComputedStyle(r).display==="none"?[]:[P]:[P,W];t(i,"provider-replacement",!1,...L);}})));});var Te=(e,t,n)=>y(void 0,null,function*(){let{cssString:s,isMultiple:r}=e.selector,l=b(s,r);yield Promise.all(l.map(i=>y(void 0,null,function*(){yield _(0),ke(i,e,t,n);})));}),ke=(e,t,n,s)=>{let{selector:{shouldUseDivWrapper:r,parentDepth:l,divWrapperStyle:i},stylesOverrides:o,shouldHideOriginal:a}=t,d=C(e,l);if(!d||n.some(A=>A.contains(d))||O(d)||d.querySelector(M))return;let c={shouldUseDivWrapper:r,divWrapperStyle:i},m;if(r&&a){let A=d.parentElement,u=window.getComputedStyle(d).display==="none",h=g({type:"simple-insert-ad",parent:A,insertionIndex:Array.from(A.children).indexOf(d),stylesOverrides:o==null?void 0:o.map(S=>{var x=S,{parentDepth:R}=x,E=I(x,["parentDepth"]);return w(g({},E),{parentDepth:R-1})}),isSiblingReplacement:!0},c);m=[],u||m.push({type:"hide-element",element:d}),U(d)||m.push(h);}else if(r)m=[g({type:"replace-element",element:d,stylesOverrides:o==null?void 0:o.map(R=>{var E=R,{parentDepth:u}=E,h=I(E,["parentDepth"]);return w(g({},h),{parentDepth:u-1})})},c)];else if(a){let A={type:"simple-insert-ad",parent:d,insertionIndex:0,stylesOverrides:o,isSiblingReplacement:!0,divWrapperStyle:{display:"contents"}};m=Array.from(d.children).filter(u=>window.getComputedStyle(u).display!=="none").map(u=>({type:"hide-element",element:u})),d.querySelector(M)||m.push(A);}else m=[{type:"replace-all-children",parent:d,stylesOverrides:o,divWrapperStyle:{display:"contents"}}];m.length>0&&s(d,"slot-replacement",!1,...m);};var Ye=s=>y(void 0,[s],function*({providersSelectors:e,adPlacesRules:t,permanentAdPlacesRules:n}){let r=[],l=(o,a,d,...c)=>{let{width:m,height:A}=X(o),u=ge(m,A,a,d);return u.length?(r.push(...c.map(h=>h.type==="hide-element"||h.type==="remove-element"?h:w(g({},h),{adsMetadata:u}))),!0):!1},i=[];return yield Promise.all(n.map(o=>y(void 0,null,function*(){yield _(0),i=i.concat(yield Se(o,l,r));}))),yield Promise.all(t.map(o=>y(void 0,null,function*(){yield _(0),yield Te(o,i,l);}))),yield Pe(e,l,r),r});var ee=(r=>(r.Optimal="Optimal",r.HypeLab="HypeLab",r.Persona="Persona",r.Temple="Temple Wallet",r))(ee||{});var te=new Set,we=new Set,Ie=new Set,Ve=3e4,ve=e=>y(void 0,null,function*(){let t=e.id;if(!te.has(t))return te.add(t),new Promise((n,s)=>{setTimeout(()=>{window.removeEventListener("message",r),s(new Error(`Timeout exceeded for ${t}`));},Ve);let r=l=>{var i;if(l.source===e.contentWindow)try{let o=typeof l.data=="string"?JSON.parse(l.data):l.data;if(o.id!==t)return;switch(o.type){case B:n(o.adMetadata.source.providerName);break;case V:window.removeEventListener("message",r),e.style.display="none",s(new Error((i=o.reason)!=null?i:"Unknown error"));break;case K:let{dimensions:a}=o.adMetadata,{width:d,height:c}=a;d>0&&c>0&&(e.style.width=`${a.width}px`,e.style.height=`${a.height}px`);break;case Q:let{width:m,height:A}=o;e.style.width=`${m}px`,e.style.height=`${A}px`;}}catch(o){console.error("Observing error:",o);}};window.addEventListener("message",r);}).then(n=>{if(we.has(t))return;we.add(t),$e(e)?_e(t,n):Ge(e,n);}).catch(console.error).finally(()=>void te.delete(t))}),Ge=(e,t)=>{let n=new IntersectionObserver(s=>{s.some(r=>r.isIntersecting)&&(_e(e.id,t),n.disconnect());},{threshold:.5});n.observe(e);},_e=(e,t)=>{if(Ie.has(e))return;Ie.add(e);let n=window.parent.location.href;Fe__default.default.runtime.sendMessage({type:p.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE,url:n,provider:ee[t]}).catch(s=>void console.error(s));},$e=e=>{let t=e.getBoundingClientRect(),n=window.visualViewport;if(!n)return !1;let s=Math.min(Math.max(0,t.x),n.width),r=Math.min(Math.max(0,t.x+t.width),n.width),l=Math.min(Math.max(0,t.y),n.height),i=Math.min(Math.max(0,t.y+t.height),n.height),o=t.width*t.height;return (r-s)*(i-l)/o>=.5};var ne=(e,t)=>{for(let n in t)e.style.setProperty(n,t[n]);};var qe=(e,t)=>{["width","height"].forEach(s=>{var l;let r=(l=e.style[s])!=null?l:"";/^\d+(px)?$/.test(r)&&parseInt(r,10)<t[s]&&e.style.removeProperty(s);});},Ke=(e,t)=>y(void 0,null,function*(){let{elementStyle:n={},stylesOverrides:s=[]}=e;s.sort((c,m)=>c.parentDepth-m.parentDepth);let r,l=nanoid.nanoid(),i=document.createElement("iframe");i.src=p.getAdsStackIframeURL(l,e.adsMetadata,window.location.href),i.id=l;let o=e.adsMetadata[0],{dimensions:a}=typeof o=="number"?H[o]:o;i.style.width=`${a.width}px`,i.style.height=`${a.height}px`,i.style.border="none";for(let c in n)i.style.setProperty(c,n[c]);switch(i.setAttribute(D,"true"),qe(t,a),t.appendChild(i),e.type){case"replace-all-children":r=e.parent,e.parent.innerHTML="",e.parent.appendChild(t);break;case"replace-element":r=e.element.parentElement,e.element.replaceWith(t);break;default:e.isSiblingReplacement&&t.setAttribute(q,"true"),r=e.parent,e.parent.insertBefore(t,e.parent.children[e.insertionIndex]);break}ve(i);let d=0;s.forEach(({parentDepth:c,style:m})=>{for(;c>d&&r;)r=r.parentElement,d++;r&&ne(r,m);});}),Le=e=>y(void 0,null,function*(){let{divWrapperStyle:t={}}=e,n=document.createElement("div");n.setAttribute(D,"true"),ne(n,t),yield Ke(e,n).catch(s=>{console.error("Inserting an ad attempt error:",s);let r=document.createElement("div");throw r.setAttribute(D,"true"),r.style.display="none",n.replaceWith(r),s});});var Qe=e=>Promise.allSettled(e.map(t=>y(void 0,null,function*(){t.type==="remove-element"?t.element.remove():t.type==="hide-element"?t.element.style.setProperty("display","none"):yield Le(t);})));var re=(e,t)=>{let n=document.createElement("div");n.style.width=`${e}px`,n.style.height=`${t}px`;let s=document.createElement("div");s.style.width=`${e}px`,s.style.height=`${t}px`,n.appendChild(s);let r=document.createElement("a");r.href=p.SWAP_TKEY_URL,r.target="_blank",r.rel="noopener noreferrer",r.style.width="100%",r.style.height="100%",s.appendChild(r);let l=document.createElement("img");return l.src=p.TKEY_INPAGE_AD_URL,l.style.width="100%",l.style.height="100%",r.appendChild(l),{element:n}};var se=(e,t,n)=>{let{width:s,height:r}=t,l=document.createElement("iframe");return l.src=je(e,n,s,r,l.id),l.style.width=`${s}px`,l.style.height=`${r}px`,l.style.border="none",{element:l}},je=(e,t,n,s,r)=>{let l,i,o;if(e.native)o=p.HYPELAB_NATIVE_PLACEMENT_SLUG,l=360,i=110;else switch(e.size){case"small":l=320,i=50,o=p.HYPELAB_SMALL_PLACEMENT_SLUG;break;case"high":l=300,i=250,o=p.HYPELAB_HIGH_PLACEMENT_SLUG;break;case"wide":l=728,i=90,o=p.HYPELAB_WIDE_PLACEMENT_SLUG;break}let a=new URL(p.HYPELAB_ADS_WINDOW_URL);return a.searchParams.set("w",String(n!=null?n:l)),a.searchParams.set("h",String(s!=null?s:i)),a.searchParams.set("p",o),a.searchParams.set("o",Je(t)),r&&a.searchParams.set("id",r),a.toString()},Je=e=>cryptoJs.AES.encrypt(e,p.TEMPLE_PASSPHRASE).toString();var ie=(e,t,{width:n,height:s})=>{let r=document.createElement("iframe");return r.src=p.getPersonaIframeURL(e,t),r.id=e,r.style.width=`${n}px`,r.style.height=`${s}px`,r.style.border="none",{element:r}};var Ze=3e4,$=e=>window.parent.postMessage(JSON.stringify(e),"*"),Me=(e,t,n)=>y(void 0,null,function*(){if(t.length===0){$({id:e,type:V,reason:"No more ads to render"});return}let[s,...r]=t,l=typeof s=="number"?H[s]:s;$({id:e,type:K,adMetadata:l});let{source:i,dimensions:o}=l,a,d=!0;switch(i.providerName){case"Temple":a=re(o.width,o.height);break;case"HypeLab":a=se(i,o,n),i.native&&(d=!1);break;default:a=ie(e,i.shape,o);}let{element:c}=a,m=document.getElementById("root"),A=document.getElementById("temple-label");if(m.replaceChildren(c),d?A.setAttribute("active",""):A.removeAttribute("active"),c instanceof HTMLIFrameElement)return new Promise((u,h)=>{setTimeout(()=>{window.removeEventListener("message",E),h(new Error(`Timeout exceeded for ${e}, ad source: ${JSON.stringify(i)}`));},Ze);let R=!1,E=S=>{var x;if(S.source===c.contentWindow)try{let P=typeof S.data=="string"?JSON.parse(S.data):S.data;switch(P.type){case B:R||(R=!0,$({id:e,type:B,adMetadata:l}),u());break;case V:window.removeEventListener("message",E),h(new Error((x=P.reason)!=null?x:"Unknown error"));break;case Q:let{width:W,height:L}=P;W>0&&L>0&&(c.style.width=`${W}px`,c.style.height=`${L}px`,$(w(g({},P),{id:e})));}}catch(P){console.error("Observing error:",P);}};window.addEventListener("message",E);}).catch(u=>(console.error(u),Me(e,r,n)));$({id:e,type:B,adMetadata:l});});var et=(e,t)=>{let{adPlacesRulesForAllDomains:n,providersRulesForAllDomains:s,providersSelectors:r,providersToReplaceAtAllSites:l,permanentAdPlacesRulesForAllDomains:i,permanentNativeAdPlacesRulesForAllDomains:o={},adsReplaceUrlsBlacklist:a=[],timestamp:d}=t,{hostname:c,href:m}=e;if(a.some(h=>new RegExp(h).test(m)))return {adPlacesRules:[],permanentAdPlacesRules:[],providersSelectors:[],timestamp:d};let A=m.replace(/#.*$/,""),u=h=>{let R=h.source.includes("#")?m:A;return h.test(R)};return {adPlacesRules:tt(c,u,n),permanentAdPlacesRules:nt(c,u,i,o),providersSelectors:st(c,u,s,r,l),timestamp:d}},tt=(e,t,n)=>{var l;return ((l=n[e])!=null?l:[]).map(a=>{var d=a,{urlRegexes:i}=d,o=I(d,["urlRegexes"]);return w(g({},o),{urlRegexes:i.map(c=>new RegExp(c))})}).reduce((i,c)=>{var m=c,{urlRegexes:o,selector:a}=m,d=I(m,["urlRegexes","selector"]);if(!o.some(t))return i;let R=a,{cssString:A}=R,u=I(R,["cssString"]),h=i.findIndex(x=>{var P=x,{selector:E}=P,S=I(P,["selector"]);let T=E,L=I(T,["cssString"]);return lodash.isEqual(u,L)&&lodash.isEqual(d,S)});return h===-1?i.push(g({selector:a},d)):i[h].selector.cssString+=", ".concat(A),i},[])},nt=(e,t,n,s={})=>{var o,a;let r=(o=n[e])!=null?o:[],l=(a=s[e])!=null?a:[];return r.map(m=>{var A=m,{urlRegexes:d}=A,c=I(A,["urlRegexes"]);return w(g({},c),{urlRegexes:d.map(u=>new RegExp(u)),isNative:!1})}).concat(l.map(m=>{var A=m,{urlRegexes:d}=A,c=I(A,["urlRegexes"]);return w(g({},c),{urlRegexes:d.map(u=>new RegExp(u)),isNative:!0})})).filter(({urlRegexes:d})=>d.some(t))};function rt(e){let t="";return e.forEach(n=>{t+=n+", ";}),t&&(t=t.slice(0,-2)),t}var st=(e,t,n,s,r)=>{var c;let i=((c=n[e])!=null?c:[]).map(u=>{var h=u,{urlRegexes:m}=h,A=I(h,["urlRegexes"]);return w(g({},A),{urlRegexes:m.map(R=>new RegExp(R))})}).filter(({urlRegexes:m})=>m.some(t)),o=new Set,a={},d=m=>{var u;if(o.has(m))return;((u=s[m])!=null?u:[]).forEach(h=>{let{selector:R,parentDepth:E}=typeof h=="string"?{selector:h,parentDepth:0}:h;a[E]||(a[E]=new Set),a[E].add(R);}),o.add(m);};return r.forEach(d),i.forEach(({providers:m})=>m.forEach(d)),Object.entries(a).map(([m,A])=>({parentDepth:Number(m),selector:rt(A)}))};var N=e=>(...t)=>y(void 0,null,function*(){let{data:n}=yield e(...t);return n}),oe=class{constructor(t){this.getAdPlacesRulesForAllDomains=N(()=>this.api.get("/slise-ad-rules/ad-places",this.getAdVersionRequestConfig()));this.getProvidersToReplaceAtAllSites=N(()=>this.api.get("/slise-ad-rules/providers/all-sites"));this.getProvidersRulesForAllDomains=N(()=>this.api.get("/slise-ad-rules/providers/by-sites"));this.getSelectorsForAllProviders=N(()=>this.api.get("/slise-ad-rules/providers",this.getAdVersionRequestConfig()));this.getPermanentAdPlacesRulesForAllDomains=N(()=>this.api.get("/slise-ad-rules/ad-places/permanent",this.getAdVersionRequestConfig()));this.getPermanentNativeAdPlacesRulesForAllDomains=N(()=>this.api.get("/slise-ad-rules/ad-places/permanent-native",this.getAdVersionRequestConfig()));this.getAdsReplaceUrlsBlacklist=N(()=>this.api.get("/slise-ad-rules/replace-urls-blacklist",this.getAdVersionRequestConfig()));this.getAllRules=()=>y(this,null,function*(){let[t,n,s,r,l,i,o]=yield Promise.all([this.getAdPlacesRulesForAllDomains(),this.getProvidersRulesForAllDomains(),this.getSelectorsForAllProviders(),this.getProvidersToReplaceAtAllSites(),this.getPermanentAdPlacesRulesForAllDomains(),this.getPermanentNativeAdPlacesRulesForAllDomains(),this.getAdsReplaceUrlsBlacklist()]);return {adPlacesRulesForAllDomains:t,providersRulesForAllDomains:n,providersSelectors:s,providersToReplaceAtAllSites:r,permanentAdPlacesRulesForAllDomains:l,permanentNativeAdPlacesRulesForAllDomains:i,adsReplaceUrlsBlacklist:o,timestamp:Date.now()}});this.api=ot__default.default.create({baseURL:new URL("/api",t).href,adapter:it__default.default});}getAdVersionRequestConfig(){return {params:{extVersion:p.EXTENSION_VERSION}}}};
|
|
17
17
|
|
|
18
18
|
exports.TempleWalletApi = oe;
|
|
19
|
-
exports.configureAds =
|
|
19
|
+
exports.configureAds = Be;
|
|
20
20
|
exports.executeAdsActions = Qe;
|
|
21
21
|
exports.getAdsActions = Ye;
|
|
22
22
|
exports.renderAdsStack = Me;
|
package/package.json
CHANGED
package/src/ads-actions/index.ts
CHANGED
|
@@ -15,7 +15,7 @@ import { processPermanentAdPlacesRule } from './process-permanent-rule';
|
|
|
15
15
|
import { processProvidersAds } from './process-providers-ads';
|
|
16
16
|
import { processAdPlacesRule } from './process-rule';
|
|
17
17
|
|
|
18
|
-
export const getAdsActions = async ({
|
|
18
|
+
export const getAdsActions = async ({ providersSelectors, adPlacesRules, permanentAdPlacesRules }: AdsRules) => {
|
|
19
19
|
const result: AdAction[] = [];
|
|
20
20
|
|
|
21
21
|
const addActionsIfAdResolutionAvailable: AddActionsIfAdResolutionAvailable = (
|
|
@@ -66,7 +66,7 @@ export const getAdsActions = async ({ providersSelector, adPlacesRules, permanen
|
|
|
66
66
|
})
|
|
67
67
|
);
|
|
68
68
|
|
|
69
|
-
await processProvidersAds(
|
|
69
|
+
await processProvidersAds(providersSelectors, addActionsIfAdResolutionAvailable, result);
|
|
70
70
|
|
|
71
71
|
return result;
|
|
72
72
|
};
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
OmitAdInAction,
|
|
8
8
|
SimpleInsertAdAction
|
|
9
9
|
} from 'src/types/ads-actions';
|
|
10
|
+
import { AdsRules } from 'src/types/ads-rules';
|
|
10
11
|
import { delay } from 'src/utils';
|
|
11
12
|
|
|
12
13
|
import {
|
|
@@ -14,7 +15,8 @@ import {
|
|
|
14
15
|
elementIsOurAd,
|
|
15
16
|
prevBannerSiblingIsReplacement,
|
|
16
17
|
getFinalSize,
|
|
17
|
-
ourAdQuerySelector
|
|
18
|
+
ourAdQuerySelector,
|
|
19
|
+
getParentOfDepth
|
|
18
20
|
} from './helpers';
|
|
19
21
|
|
|
20
22
|
const styleToAdjustProps = [
|
|
@@ -47,36 +49,41 @@ const styleToAdjustProps = [
|
|
|
47
49
|
] as const;
|
|
48
50
|
|
|
49
51
|
export const processProvidersAds = async (
|
|
50
|
-
|
|
52
|
+
providersSelectors: AdsRules['providersSelectors'],
|
|
51
53
|
addActionsIfAdResolutionAvailable: AddActionsIfAdResolutionAvailable,
|
|
52
54
|
result: AdAction[]
|
|
53
55
|
) => {
|
|
54
|
-
const bannersFromProviders =
|
|
55
|
-
|
|
56
|
+
const bannersFromProviders = providersSelectors
|
|
57
|
+
.map(({ selector: providersSelector, parentDepth }) => {
|
|
58
|
+
return applyQuerySelector(providersSelector, true).reduce<Element[]>((acc, foundElement) => {
|
|
59
|
+
const newBanner = getParentOfDepth(foundElement as HTMLElement, parentDepth) ?? foundElement;
|
|
60
|
+
const parentElementIndex = acc.findIndex(banner => banner.contains(newBanner));
|
|
56
61
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
const parentStyles = newBanner.parentElement && window.getComputedStyle(newBanner.parentElement);
|
|
63
|
+
const { width, height } = getFinalSize(newBanner);
|
|
64
|
+
const bannerIsTouchedByOtherActions = result.some(action => {
|
|
65
|
+
if (action.type === AdActionType.ReplaceAllChildren || action.type === AdActionType.SimpleInsertAd) {
|
|
66
|
+
return action.parent.contains(newBanner) || newBanner.contains(action.parent);
|
|
67
|
+
}
|
|
63
68
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
69
|
+
return action.element.parentElement?.contains(newBanner) || newBanner.contains(action.element);
|
|
70
|
+
});
|
|
71
|
+
const bannerIsHiddenByParent = parentStyles?.display === 'none' || parentStyles?.visibility === 'hidden';
|
|
67
72
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
73
|
+
if (bannerIsTouchedByOtherActions || width === 0 || height === 0 || bannerIsHiddenByParent) {
|
|
74
|
+
return acc;
|
|
75
|
+
}
|
|
71
76
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
+
if (parentElementIndex >= 0) {
|
|
78
|
+
acc.splice(parentElementIndex, 1, newBanner);
|
|
79
|
+
} else if (!acc.some(ancestorCandidate => ancestorCandidate.contains(newBanner))) {
|
|
80
|
+
acc.push(newBanner);
|
|
81
|
+
}
|
|
77
82
|
|
|
78
|
-
|
|
79
|
-
|
|
83
|
+
return acc;
|
|
84
|
+
}, []);
|
|
85
|
+
})
|
|
86
|
+
.flat();
|
|
80
87
|
|
|
81
88
|
await Promise.all(
|
|
82
89
|
bannersFromProviders.map(async banner => {
|
package/src/ads-meta.ts
CHANGED
|
@@ -100,7 +100,7 @@ export const BANNER_ADS_META: AdMetadata[] = [
|
|
|
100
100
|
minContainerWidth: 230,
|
|
101
101
|
minContainerHeight: 32,
|
|
102
102
|
maxContainerWidth: 420,
|
|
103
|
-
maxContainerHeight:
|
|
103
|
+
maxContainerHeight: 130
|
|
104
104
|
}
|
|
105
105
|
},
|
|
106
106
|
{
|
|
@@ -115,7 +115,7 @@ export const BANNER_ADS_META: AdMetadata[] = [
|
|
|
115
115
|
minContainerWidth: 230,
|
|
116
116
|
minContainerHeight: 32,
|
|
117
117
|
maxContainerWidth: 420,
|
|
118
|
-
maxContainerHeight:
|
|
118
|
+
maxContainerHeight: 130
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
];
|
package/src/render-ads-stack.ts
CHANGED
|
@@ -35,18 +35,26 @@ export const renderAdsStack = async (
|
|
|
35
35
|
|
|
36
36
|
const { source, dimensions } = adMetadata;
|
|
37
37
|
let adView: AdView;
|
|
38
|
+
let withTempleLabel = true;
|
|
38
39
|
switch (source.providerName) {
|
|
39
40
|
case 'Temple':
|
|
40
41
|
adView = makeTKeyAdView(dimensions.width, dimensions.height);
|
|
41
42
|
break;
|
|
42
43
|
case 'HypeLab':
|
|
43
44
|
adView = makeHypelabAdView(source, dimensions, origin);
|
|
45
|
+
if (source.native) withTempleLabel = false;
|
|
44
46
|
break;
|
|
45
47
|
default:
|
|
46
48
|
adView = makePersonaAdView(adId, source.shape, dimensions);
|
|
47
49
|
}
|
|
50
|
+
|
|
48
51
|
const { element } = adView;
|
|
49
|
-
document.
|
|
52
|
+
const rootElement = document.getElementById('root')!;
|
|
53
|
+
const templeLabelElement = document.getElementById('temple-label')!;
|
|
54
|
+
rootElement.replaceChildren(element);
|
|
55
|
+
|
|
56
|
+
if (withTempleLabel) templeLabelElement.setAttribute('active', '');
|
|
57
|
+
else templeLabelElement.removeAttribute('active');
|
|
50
58
|
|
|
51
59
|
if (element instanceof HTMLIFrameElement) {
|
|
52
60
|
return new Promise<void>((resolve, reject) => {
|
package/src/temple-wallet-api.ts
CHANGED
|
@@ -45,7 +45,7 @@ export class TempleWalletApi {
|
|
|
45
45
|
);
|
|
46
46
|
|
|
47
47
|
getSelectorsForAllProviders = withFetchDataExtraction(() =>
|
|
48
|
-
this.api.get<
|
|
48
|
+
this.api.get<RawAllAdsRules['providersSelectors']>('/slise-ad-rules/providers', this.getAdVersionRequestConfig())
|
|
49
49
|
);
|
|
50
50
|
|
|
51
51
|
getPermanentAdPlacesRulesForAllDomains = withFetchDataExtraction(() =>
|
|
@@ -20,7 +20,7 @@ export const transformRawRules = (location: Location, rules: RawAllAdsRules): Ad
|
|
|
20
20
|
return {
|
|
21
21
|
adPlacesRules: [],
|
|
22
22
|
permanentAdPlacesRules: [],
|
|
23
|
-
|
|
23
|
+
providersSelectors: [],
|
|
24
24
|
timestamp
|
|
25
25
|
};
|
|
26
26
|
}
|
|
@@ -41,7 +41,7 @@ export const transformRawRules = (location: Location, rules: RawAllAdsRules): Ad
|
|
|
41
41
|
permanentAdPlacesRulesForAllDomains,
|
|
42
42
|
permanentNativeAdPlacesRulesForAllDomains
|
|
43
43
|
),
|
|
44
|
-
|
|
44
|
+
providersSelectors: buildProvidersSelectors(
|
|
45
45
|
hostname,
|
|
46
46
|
hrefMatchPredicate,
|
|
47
47
|
providersRulesForAllDomains,
|
|
@@ -112,39 +112,58 @@ const buildPermanentAdPlacesRules = (
|
|
|
112
112
|
return permanentAdPlacesRules.filter(({ urlRegexes }) => urlRegexes.some(hrefMatchPredicate));
|
|
113
113
|
};
|
|
114
114
|
|
|
115
|
-
|
|
115
|
+
function quickJoinSelectors(selectors: Set<string>): string {
|
|
116
|
+
let result = '';
|
|
117
|
+
selectors.forEach(selector => {
|
|
118
|
+
result += selector + ', ';
|
|
119
|
+
});
|
|
120
|
+
if (result) {
|
|
121
|
+
result = result.slice(0, -2);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return result;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const buildProvidersSelectors = (
|
|
116
128
|
hostname: string,
|
|
117
129
|
hrefMatchPredicate: (regex: RegExp) => boolean,
|
|
118
130
|
providersRulesForAllDomains: RawAllAdsRules['providersRulesForAllDomains'],
|
|
119
131
|
providersSelectors: RawAllAdsRules['providersSelectors'],
|
|
120
132
|
providersToReplaceAtAllSites: RawAllAdsRules['providersToReplaceAtAllSites']
|
|
121
|
-
):
|
|
122
|
-
const
|
|
123
|
-
...restRuleProps
|
|
124
|
-
|
|
125
|
-
|
|
133
|
+
): AdsRules['providersSelectors'] => {
|
|
134
|
+
const providersRulesByHostname = (providersRulesForAllDomains[hostname] ?? []).map(
|
|
135
|
+
({ urlRegexes, ...restRuleProps }) => ({
|
|
136
|
+
...restRuleProps,
|
|
137
|
+
urlRegexes: urlRegexes.map(regex => new RegExp(regex))
|
|
138
|
+
})
|
|
139
|
+
);
|
|
126
140
|
|
|
127
|
-
const
|
|
141
|
+
const relatedProvidersRulesByUrl = providersRulesByHostname.filter(({ urlRegexes }) =>
|
|
142
|
+
urlRegexes.some(hrefMatchPredicate)
|
|
143
|
+
);
|
|
128
144
|
const alreadyProcessedProviders = new Set<string>();
|
|
129
|
-
const selectorsForProvidersToReplace
|
|
145
|
+
const selectorsForProvidersToReplace: Record<number, Set<string>> = {};
|
|
130
146
|
const handleProvider = (provider: string) => {
|
|
131
147
|
if (alreadyProcessedProviders.has(provider)) return;
|
|
132
148
|
|
|
133
149
|
const newSelectors = providersSelectors[provider] ?? [];
|
|
134
|
-
newSelectors.forEach(selector =>
|
|
150
|
+
newSelectors.forEach(selector => {
|
|
151
|
+
const { selector: cssString, parentDepth } =
|
|
152
|
+
typeof selector === 'string' ? { selector, parentDepth: 0 } : selector;
|
|
153
|
+
|
|
154
|
+
if (!selectorsForProvidersToReplace[parentDepth]) {
|
|
155
|
+
selectorsForProvidersToReplace[parentDepth] = new Set();
|
|
156
|
+
}
|
|
157
|
+
selectorsForProvidersToReplace[parentDepth].add(cssString);
|
|
158
|
+
});
|
|
135
159
|
alreadyProcessedProviders.add(provider);
|
|
136
160
|
};
|
|
137
161
|
|
|
138
162
|
providersToReplaceAtAllSites.forEach(handleProvider);
|
|
139
|
-
|
|
163
|
+
relatedProvidersRulesByUrl.forEach(({ providers }) => providers.forEach(handleProvider));
|
|
140
164
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
});
|
|
145
|
-
if (providersSelector) {
|
|
146
|
-
providersSelector = providersSelector.slice(0, -2);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
return providersSelector;
|
|
165
|
+
return Object.entries(selectorsForProvidersToReplace).map(([parentDepth, selectors]) => ({
|
|
166
|
+
parentDepth: Number(parentDepth),
|
|
167
|
+
selector: quickJoinSelectors(selectors)
|
|
168
|
+
}));
|
|
150
169
|
};
|
package/src/types/ads-rules.ts
CHANGED
|
@@ -12,6 +12,6 @@ export interface PermanentAdPlacesRule extends Omit<RawPermanentAdPlacesRule, 'u
|
|
|
12
12
|
export interface AdsRules {
|
|
13
13
|
adPlacesRules: Array<Omit<AdPlacesRule, 'urlRegexes'>>;
|
|
14
14
|
permanentAdPlacesRules: PermanentAdPlacesRule[];
|
|
15
|
-
|
|
15
|
+
providersSelectors: Array<{ selector: string; parentDepth: number }>;
|
|
16
16
|
timestamp: number;
|
|
17
17
|
}
|
|
@@ -48,7 +48,7 @@ export interface RawAdProvidersRule {
|
|
|
48
48
|
export interface RawAllAdsRules {
|
|
49
49
|
adPlacesRulesForAllDomains: Record<string, RawAdPlacesRule[]>;
|
|
50
50
|
providersRulesForAllDomains: Record<string, RawAdProvidersRule[]>;
|
|
51
|
-
providersSelectors: Record<string, string[]>;
|
|
51
|
+
providersSelectors: Record<string, (string | { selector: string; parentDepth: number })[]>;
|
|
52
52
|
providersToReplaceAtAllSites: string[];
|
|
53
53
|
permanentAdPlacesRulesForAllDomains: Record<string, RawPermanentAdPlacesRule[]>;
|
|
54
54
|
permanentNativeAdPlacesRulesForAllDomains: Record<string, RawPermanentAdPlacesRule[]>;
|
package/.vscode/settings.json
DELETED